Skip to content

Commit 994300d

Browse files
committed
account for patch versions
1 parent 8ddc0ba commit 994300d

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

solana/ts/lib/ntt.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ export namespace NTT {
268268
pdas?: Pdas
269269
) {
270270
// if the program is < major version 2.x.x, we don't need to initialize the LUT
271-
const [major, ,] = parseVersion(program.idl.version);
271+
const [major, , ,] = parseVersion(program.idl.version);
272272
if (major < 2) return;
273273

274274
pdas = pdas ?? NTT.pdas(program.programId);
@@ -997,7 +997,7 @@ export namespace NTT {
997997
program: Program<NttBindings.NativeTokenTransfer<IdlVersion>>,
998998
pdas?: Pdas
999999
): Promise<AddressLookupTableAccount | null> {
1000-
const [major, ,] = parseVersion(program.idl.version);
1000+
const [major, , ,] = parseVersion(program.idl.version);
10011001
if (major < 2) return null;
10021002

10031003
pdas = pdas ?? NTT.pdas(program.programId);

solana/ts/lib/utils.ts

+13-3
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,20 @@ export function programDataAddress(programId: PublicKeyInitData) {
1818
)[0];
1919
}
2020

21-
export function parseVersion(version: string): [number, number, number] {
21+
export function parseVersion(
22+
version: string
23+
): [number, number, number, string] {
2224
const components = version.split(".");
23-
if (components.length !== 3) throw new Error("Invalid version string");
24-
return [Number(components[0]), Number(components[1]), Number(components[2])];
25+
if (components.length < 3) throw new Error("Invalid version string");
26+
const patchVersion = components[2]!;
27+
const patchNumber = patchVersion.split(/[^0-9]/)[0]!;
28+
const patchLabel = patchVersion.slice(patchNumber.length);
29+
return [
30+
Number(components[0]),
31+
Number(components[1]),
32+
Number(patchNumber),
33+
patchLabel,
34+
];
2535
}
2636

2737
export const pubKeyConversion = {

solana/ts/sdk/ntt.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -639,10 +639,8 @@ export class SolanaNtt<N extends Network, C extends SolanaChains>
639639
useCache = true
640640
): Promise<AddressLookupTableAccount> {
641641
if (!useCache || !this.addressLookupTable) {
642-
this.addressLookupTable = await NTT.getAddressLookupTable(
643-
this.program,
644-
this.pdas
645-
);
642+
const alut = await NTT.getAddressLookupTable(this.program, this.pdas);
643+
if (alut) this.addressLookupTable = alut;
646644
}
647645

648646
if (!this.addressLookupTable)

0 commit comments

Comments
 (0)