Skip to content

Commit a1c24db

Browse files
committed
Move to Java 25
1 parent 25eb168 commit a1c24db

File tree

6 files changed

+20
-14
lines changed

6 files changed

+20
-14
lines changed

gradle/sava.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ productDescription=GLAM Instruction Mapper
44
developerName="Jim"
55
developerId="jpe7s"
66
developerEmail="james@glam.systems"
7-
javaVersion=24
8-
solanaBOMVersion=24.2.6
7+
javaVersion=25
8+
solanaBOMVersion=25.0.1

gradle/wrapper/gradle-wrapper.jar

1.65 KB
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

gradlew

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ix-proxy/src/main/java/systems/glam/ix/proxy/ProgramMapConfig.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,18 @@
1717

1818
import static systems.comodal.jsoniter.JsonIterator.fieldEquals;
1919

20-
public record ProgramMapConfig(Collection<AccountMeta> programs,
20+
public record ProgramMapConfig(AccountMeta invokedProxyProgram,
21+
Collection<AccountMeta> programs,
2122
List<IxMapConfig> ixMapConfigs,
2223
int discriminatorLength) {
2324

2425
public boolean fixedLengthDiscriminator() {
2526
return discriminatorLength > 0;
2627
}
2728

28-
public <A> Collection<ProgramProxy<A>> createProgramProxies(final AccountMeta invokedProxyProgram,
29+
public <A> Collection<ProgramProxy<A>> createProgramProxies(final AccountMeta defaultInvokedProxyProgram,
2930
final Function<DynamicAccountConfig, DynamicAccount<A>> dynamicAccountFactory) {
31+
final var invokedProxyProgram = Objects.requireNonNullElse(this.invokedProxyProgram, defaultInvokedProxyProgram);
3032
if (fixedLengthDiscriminator()) {
3133
final var ixProxies = HashMap.<Discriminator, IxProxy<A>>newHashMap(ixMapConfigs.size());
3234
for (final var ixMapConfig : ixMapConfigs) {
@@ -48,12 +50,12 @@ public <A> Collection<ProgramProxy<A>> createProgramProxies(final AccountMeta in
4850
}
4951
}
5052

51-
public static <A> Map<PublicKey, ProgramProxy<A>> createProgramProxies(final AccountMeta invokedProxyProgram,
53+
public static <A> Map<PublicKey, ProgramProxy<A>> createProgramProxies(final AccountMeta defaultInvokedProxyProgram,
5254
final Function<DynamicAccountConfig, DynamicAccount<A>> dynamicAccountFactory,
5355
final List<ProgramMapConfig> programMapConfigs) {
5456
final var proxies = new HashMap<PublicKey, ProgramProxy<A>>(programMapConfigs.size());
5557
for (final var programMapConfig : programMapConfigs) {
56-
final var programProxies = programMapConfig.createProgramProxies(invokedProxyProgram, dynamicAccountFactory);
58+
final var programProxies = programMapConfig.createProgramProxies(defaultInvokedProxyProgram, dynamicAccountFactory);
5759
for (final var programProxy : programProxies) {
5860
proxies.put(programProxy.cpiProgram(), programProxy);
5961
}
@@ -62,7 +64,7 @@ public static <A> Map<PublicKey, ProgramProxy<A>> createProgramProxies(final Acc
6264
}
6365

6466
public static <A> void createProxies(final Path mappingFile,
65-
final AccountMeta invokedProxyProgram,
67+
final AccountMeta defaultInvokedProxyProgram,
6668
final Map<PublicKey, ProgramProxy<A>> programProxiesOutput,
6769
final Function<DynamicAccountConfig, DynamicAccount<A>> dynamicAccountFactory,
6870
final Map<AccountMeta, AccountMeta> accountMetaCache,
@@ -71,7 +73,7 @@ public static <A> void createProxies(final Path mappingFile,
7173
final var mappingJson = Files.readAllBytes(mappingFile);
7274
final var ji = JsonIterator.parse(mappingJson);
7375
final var programMapConfig = ProgramMapConfig.parseConfig(accountMetaCache, indexedAccountMetaCache, ji);
74-
final var programProxyCollection = programMapConfig.createProgramProxies(invokedProxyProgram, dynamicAccountFactory);
76+
final var programProxyCollection = programMapConfig.createProgramProxies(defaultInvokedProxyProgram, dynamicAccountFactory);
7577
for (final var proxy : programProxyCollection) {
7678
programProxiesOutput.put(proxy.cpiProgram(), proxy);
7779
}
@@ -95,6 +97,7 @@ private static final class Parser implements FieldBufferPredicate {
9597
private final Map<AccountMeta, AccountMeta> accountMetaCache;
9698
private final Map<IndexedAccountMeta, IndexedAccountMeta> indexedAccountMetaCache;
9799

100+
private PublicKey proxyProgram;
98101
private Collection<AccountMeta> programs;
99102
private List<IxMapConfig> ixMapConfigs;
100103

@@ -105,17 +108,18 @@ private Parser(final Map<AccountMeta, AccountMeta> accountMetaCache,
105108
}
106109

107110
private ProgramMapConfig create() {
111+
final var invokedProxyProgram = proxyProgram == null ? null : AccountMeta.createInvoked(proxyProgram);
108112
if (ixMapConfigs.isEmpty()) {
109-
return new ProgramMapConfig(programs, ixMapConfigs, 0);
113+
return new ProgramMapConfig(invokedProxyProgram, programs, ixMapConfigs, 0);
110114
} else {
111115
final var iterator = ixMapConfigs.iterator();
112116
final int discriminatorLength = iterator.next().cpiDiscriminator().length();
113117
while (iterator.hasNext()) {
114118
if (iterator.next().cpiDiscriminator().length() != discriminatorLength) {
115-
return new ProgramMapConfig(programs, ixMapConfigs, -1);
119+
return new ProgramMapConfig(invokedProxyProgram, programs, ixMapConfigs, -1);
116120
}
117121
}
118-
return new ProgramMapConfig(programs, ixMapConfigs, discriminatorLength);
122+
return new ProgramMapConfig(invokedProxyProgram, programs, ixMapConfigs, discriminatorLength);
119123
}
120124
}
121125

@@ -131,6 +135,8 @@ public boolean test(final char[] buf, final int offset, final int len, final Jso
131135
} else {
132136
this.programs = List.of(AccountMeta.createRead(ji.applyChars(PARSE_BASE58_PUBLIC_KEY)));
133137
}
138+
} else if (fieldEquals("proxy_program_id", buf, offset, len)) {
139+
this.proxyProgram = ji.applyChars(PARSE_BASE58_PUBLIC_KEY);
134140
} else if (fieldEquals("instructions", buf, offset, len)) {
135141
final var ixMapConfigs = new ArrayList<IxMapConfig>();
136142
while (ji.readArray()) {

settings.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pluginManagement {
1010
}
1111

1212
plugins {
13-
id("software.sava.build") version "0.1.27"
13+
id("software.sava.build") version "0.2.2"
1414
}
1515

1616
rootProject.name = "ix-proxy"

0 commit comments

Comments
 (0)