@hyperlane-xyz/sdk 19.2.0 → 19.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/app/MultiProtocolApp.d.ts +2 -0
  2. package/dist/app/MultiProtocolApp.d.ts.map +1 -1
  3. package/dist/app/MultiProtocolApp.js +9 -3
  4. package/dist/app/MultiProtocolApp.js.map +1 -1
  5. package/dist/gas/adapters/SealevelIgpAdapter.d.ts +29 -2
  6. package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -1
  7. package/dist/gas/adapters/SealevelIgpAdapter.js +109 -5
  8. package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -1
  9. package/dist/gas/adapters/SealevelIgpAdapter.test.d.ts +2 -0
  10. package/dist/gas/adapters/SealevelIgpAdapter.test.d.ts.map +1 -0
  11. package/dist/gas/adapters/SealevelIgpAdapter.test.js +189 -0
  12. package/dist/gas/adapters/SealevelIgpAdapter.test.js.map +1 -0
  13. package/dist/gas/adapters/serialization.d.ts +69 -2
  14. package/dist/gas/adapters/serialization.d.ts.map +1 -1
  15. package/dist/gas/adapters/serialization.js +150 -15
  16. package/dist/gas/adapters/serialization.js.map +1 -1
  17. package/dist/index.d.ts +6 -5
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +5 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/ism/EvmIsmModule.d.ts +13 -1
  22. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  23. package/dist/ism/EvmIsmModule.js +92 -38
  24. package/dist/ism/EvmIsmModule.js.map +1 -1
  25. package/dist/ism/types.js +1 -1
  26. package/dist/ism/types.js.map +1 -1
  27. package/dist/signers/signers.d.ts.map +1 -1
  28. package/dist/signers/signers.js +2 -2
  29. package/dist/signers/signers.js.map +1 -1
  30. package/dist/signers/svm/solana-web3js.d.ts +74 -6
  31. package/dist/signers/svm/solana-web3js.d.ts.map +1 -1
  32. package/dist/signers/svm/solana-web3js.js +178 -30
  33. package/dist/signers/svm/solana-web3js.js.map +1 -1
  34. package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
  35. package/dist/token/EvmERC20WarpModule.hardhat-test.js +19 -17
  36. package/dist/token/EvmERC20WarpModule.hardhat-test.js.map +1 -1
  37. package/dist/token/EvmERC20WarpModule.js +12 -7
  38. package/dist/token/EvmERC20WarpModule.js.map +1 -1
  39. package/dist/token/config.d.ts +1 -1
  40. package/dist/token/config.js +1 -1
  41. package/dist/token/types.d.ts +1 -1
  42. package/dist/warp/WarpCore.js +1 -1
  43. package/package.json +7 -7
@@ -41,7 +41,9 @@ export declare class BaseSealevelAdapter extends BaseAppAdapter {
41
41
  readonly protocol: ProtocolType;
42
42
  getProvider(): SolanaWeb3Provider['provider'];
43
43
  static derivePda(seeds: Array<string | Buffer>, programId: string | PublicKey): PublicKey;
44
+ static derivePdaWithBump(seeds: Array<string | Buffer>, programId: string | PublicKey): [PublicKey, number];
44
45
  derivePda(seeds: Array<string | Buffer>, programId: string | PublicKey): PublicKey;
46
+ derivePdaWithBump(seeds: Array<string | Buffer>, programId: string | PublicKey): [PublicKey, number];
45
47
  }
46
48
  export declare class BaseStarknetAdapter extends BaseAppAdapter {
47
49
  readonly protocol: ProtocolType;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiProtocolApp.d.ts","sourceRoot":"","sources":["../../src/app/MultiProtocolApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiProtocolApp.d.ts","sourceRoot":"","sources":["../../src/app/MultiProtocolApp.ts"],"names":[],"mappings":"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"}
@@ -49,13 +49,19 @@ export class BaseSealevelAdapter extends BaseAppAdapter {
49
49
  return this.multiProvider.getSolanaWeb3Provider(this.chainName);
50
50
  }
51
51
  static derivePda(seeds, programId) {
52
- const [pda] = PublicKey.findProgramAddressSync(seeds.map((s) => Buffer.from(s)), new PublicKey(programId));
53
- return pda;
52
+ return this.derivePdaWithBump(seeds, programId)[0];
54
53
  }
55
- // An dynamic alias for static method above for convenience
54
+ static derivePdaWithBump(seeds, programId) {
55
+ const [pda, bump] = PublicKey.findProgramAddressSync(seeds.map((s) => Buffer.from(s)), new PublicKey(programId));
56
+ return [pda, bump];
57
+ }
58
+ // Dynamic aliases for static methods above for convenience
56
59
  derivePda(seeds, programId) {
57
60
  return BaseSealevelAdapter.derivePda(seeds, programId);
58
61
  }
62
+ derivePdaWithBump(seeds, programId) {
63
+ return BaseSealevelAdapter.derivePdaWithBump(seeds, programId);
64
+ }
59
65
  }
60
66
  export class BaseStarknetAdapter extends BaseAppAdapter {
61
67
  protocol = ProtocolType.Starknet;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiProtocolApp.js","sourceRoot":"","sources":["../../src/app/MultiProtocolApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiProtocolApp.js","sourceRoot":"","sources":["../../src/app/MultiProtocolApp.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { AccountMeta, PublicKey, Transaction } from '@solana/web3.js';
1
+ import { AccountMeta, PublicKey, Transaction, TransactionInstruction } from '@solana/web3.js';
2
2
  import { Address, Domain } from '@hyperlane-xyz/utils';
3
3
  import { BaseSealevelAdapter } from '../../app/MultiProtocolApp.js';
4
4
  import { MultiProtocolProvider } from '../../providers/MultiProtocolProvider.js';
5
5
  import { ChainName } from '../../types.js';
6
- import { SealevelIgpData, SealevelOverheadIgpData } from './serialization.js';
6
+ import { SealevelGasOracle, SealevelGasOracleConfig, SealevelGasOverheadConfig, SealevelIgpData, SealevelOverheadIgpData, SealevelRemoteGasData } from './serialization.js';
7
7
  export interface IgpPaymentKeys {
8
8
  programId: PublicKey;
9
9
  igpAccount: PublicKey;
@@ -23,6 +23,10 @@ export declare abstract class SealevelIgpProgramAdapter extends BaseSealevelAdap
23
23
  quoteGasPayment(destination: Domain, gasAmount: bigint, payerKey: PublicKey): Promise<bigint>;
24
24
  static deriveIgpProgramPda(igpProgramId: string | PublicKey): PublicKey;
25
25
  static deriveGasPaymentPda(igpProgramId: string | PublicKey, randomWalletPubKey: PublicKey): PublicKey;
26
+ static deriveIgpAccountPda(programId: string | PublicKey, salt: Uint8Array): PublicKey;
27
+ static deriveIgpAccountPdaWithBump(programId: string | PublicKey, salt: Uint8Array): [PublicKey, number];
28
+ static deriveOverheadIgpAccountPda(programId: string | PublicKey, salt: Uint8Array): PublicKey;
29
+ static deriveOverheadIgpAccountPdaWithBump(programId: string | PublicKey, salt: Uint8Array): [PublicKey, number];
26
30
  }
27
31
  export declare class SealevelIgpAdapter extends SealevelIgpProgramAdapter {
28
32
  readonly chainName: ChainName;
@@ -45,6 +49,21 @@ export declare class SealevelIgpAdapter extends SealevelIgpProgramAdapter {
45
49
  * @returns {Promise<TransactionInstruction>} The claim instruction.
46
50
  */
47
51
  populateClaimTx(beneficiary: PublicKey): Promise<Transaction>;
52
+ /**
53
+ * Create a SetGasOracleConfigs instruction
54
+ */
55
+ createSetGasOracleConfigsInstruction(igpAccount: PublicKey, owner: PublicKey, configs: SealevelGasOracleConfig[]): TransactionInstruction;
56
+ /**
57
+ * Create a gas oracle config from remote gas data
58
+ */
59
+ createGasOracleConfig(domain: number, remoteGasData: SealevelRemoteGasData | null): SealevelGasOracleConfig;
60
+ /**
61
+ * Check if gas oracle matches expected config
62
+ */
63
+ gasOracleMatches(currentOracle: SealevelGasOracle | undefined, expected: SealevelRemoteGasData): {
64
+ matches: boolean;
65
+ actual: SealevelRemoteGasData | null;
66
+ };
48
67
  }
49
68
  export declare class SealevelOverheadIgpAdapter extends SealevelIgpProgramAdapter {
50
69
  readonly chainName: ChainName;
@@ -60,5 +79,13 @@ export declare class SealevelOverheadIgpAdapter extends SealevelIgpProgramAdapte
60
79
  });
61
80
  getAccountInfo(): Promise<SealevelOverheadIgpData>;
62
81
  getPaymentKeys(): Promise<IgpPaymentKeys>;
82
+ /**
83
+ * Create a SetDestinationGasOverheads instruction
84
+ */
85
+ createSetDestinationGasOverheadsInstruction(overheadIgpAccount: PublicKey, owner: PublicKey, configs: SealevelGasOverheadConfig[]): TransactionInstruction;
86
+ /**
87
+ * Create a gas overhead config
88
+ */
89
+ createGasOverheadConfig(destination_domain: number, gas_overhead: bigint | null): SealevelGasOverheadConfig;
63
90
  }
64
91
  //# sourceMappingURL=SealevelIgpAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SealevelIgpAdapter.d.ts","sourceRoot":"","sources":["../../../src/gas/adapters/SealevelIgpAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAGX,SAAS,EAET,WAAW,EAGZ,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAU,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM3C,OAAO,EAEL,eAAe,EAMf,uBAAuB,EAExB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,kBAAkB,CAAC,EAAE,SAAS,CAAC;CAChC;AAED,8BAAsB,yBAA0B,SAAQ,mBAAmB;aAIvD,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE;IALnD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;gBAGtB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE;IAOnD,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;IAG5C,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,SAAS,GAClB,OAAO,CAAC,MAAM,CAAC;IAmElB,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAQvE,MAAM,CAAC,mBAAmB,CACxB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,kBAAkB,EAAE,SAAS,GAC5B,SAAS;CAMb;AAED,qBAAa,kBAAmB,SAAQ,yBAAyB;aAI7C,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IALjE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;gBAGhB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IAOlD,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;IAOlD,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC;IAgBhD,0BAA0B,CAAC,WAAW,EAAE,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;IAWtE;;;;OAIG;IACG,eAAe,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;CAgCpE;AAED,qBAAa,0BAA2B,SAAQ,yBAAyB;aAIrD,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IALzE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;gBAGxB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IAOnE,cAAc,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAezC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;CAQzD"}
1
+ {"version":3,"file":"SealevelIgpAdapter.d.ts","sourceRoot":"","sources":["../../../src/gas/adapters/SealevelIgpAdapter.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { assert } from '@hyperlane-xyz/utils';
4
4
  import { BaseSealevelAdapter } from '../../app/MultiProtocolApp.js';
5
5
  import { SEALEVEL_PRIORITY_FEES } from '../../consts/sealevel.js';
6
6
  import { SealevelAccountDataWrapper, SealevelInstructionWrapper, } from '../../utils/sealevelSerialization.js';
7
- import { SealeveIgpInstruction, SealevelIgpDataSchema, SealevelIgpQuoteGasPaymentInstruction, SealevelIgpQuoteGasPaymentResponse, SealevelIgpQuoteGasPaymentResponseSchema, SealevelIgpQuoteGasPaymentSchema, SealevelOverheadIgpDataSchema, } from './serialization.js';
7
+ import { SealevelGasOracle, SealevelGasOracleConfig, SealevelGasOracleType, SealevelGasOverheadConfig, SealevelIgpDataSchema, SealevelIgpInstruction, SealevelIgpQuoteGasPaymentInstruction, SealevelIgpQuoteGasPaymentResponse, SealevelIgpQuoteGasPaymentResponseSchema, SealevelIgpQuoteGasPaymentSchema, SealevelOverheadIgpDataSchema, SealevelSetDestinationGasOverheadsInstruction, SealevelSetDestinationGasOverheadsInstructionSchema, SealevelSetGasOracleConfigsInstruction, SealevelSetGasOracleConfigsInstructionSchema, } from './serialization.js';
8
8
  export class SealevelIgpProgramAdapter extends BaseSealevelAdapter {
9
9
  chainName;
10
10
  multiProvider;
@@ -39,7 +39,7 @@ export class SealevelIgpProgramAdapter extends BaseSealevelAdapter {
39
39
  });
40
40
  }
41
41
  const value = new SealevelInstructionWrapper({
42
- instruction: SealeveIgpInstruction.QuoteGasPayment,
42
+ instruction: SealevelIgpInstruction.QuoteGasPayment,
43
43
  data: new SealevelIgpQuoteGasPaymentInstruction({
44
44
  destination_domain: destination,
45
45
  gas_amount: BigInt(gasAmount),
@@ -78,6 +78,22 @@ export class SealevelIgpProgramAdapter extends BaseSealevelAdapter {
78
78
  static deriveGasPaymentPda(igpProgramId, randomWalletPubKey) {
79
79
  return super.derivePda(['hyperlane_igp', '-', 'gas_payment', '-', randomWalletPubKey.toBuffer()], igpProgramId);
80
80
  }
81
+ // https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/rust/sealevel/programs/hyperlane-sealevel-igp/src/pda_seeds.rs
82
+ static deriveIgpAccountPda(programId, salt) {
83
+ return this.deriveIgpAccountPdaWithBump(programId, salt)[0];
84
+ }
85
+ static deriveIgpAccountPdaWithBump(programId, salt) {
86
+ const programIdKey = typeof programId === 'string' ? new PublicKey(programId) : programId;
87
+ return super.derivePdaWithBump(['hyperlane_igp', '-', 'igp', '-', Buffer.from(salt)], programIdKey);
88
+ }
89
+ // https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/rust/sealevel/programs/hyperlane-sealevel-igp/src/pda_seeds.rs
90
+ static deriveOverheadIgpAccountPda(programId, salt) {
91
+ return this.deriveOverheadIgpAccountPdaWithBump(programId, salt)[0];
92
+ }
93
+ static deriveOverheadIgpAccountPdaWithBump(programId, salt) {
94
+ const programIdKey = typeof programId === 'string' ? new PublicKey(programId) : programId;
95
+ return super.derivePdaWithBump(['hyperlane_igp', '-', 'overhead_igp', '-', Buffer.from(salt)], programIdKey);
96
+ }
81
97
  }
82
98
  export class SealevelIgpAdapter extends SealevelIgpProgramAdapter {
83
99
  chainName;
@@ -101,7 +117,7 @@ export class SealevelIgpAdapter extends SealevelIgpProgramAdapter {
101
117
  const address = this.addresses.igp;
102
118
  const connection = this.getProvider();
103
119
  const accountInfo = await connection.getAccountInfo(new PublicKey(address));
104
- assert(accountInfo, `No account info found for ${address}}`);
120
+ assert(accountInfo, `No account info found for ${address}`);
105
121
  const accountData = deserializeUnchecked(SealevelIgpDataSchema, SealevelAccountDataWrapper, accountInfo.data);
106
122
  return accountData.data;
107
123
  }
@@ -128,7 +144,7 @@ export class SealevelIgpAdapter extends SealevelIgpProgramAdapter {
128
144
  throw new Error('Beneficiary account mismatch');
129
145
  }
130
146
  const keys = this.getClaimInstructionKeyList(beneficiary);
131
- const data = Buffer.from([SealeveIgpInstruction.Claim]);
147
+ const data = Buffer.from([SealevelIgpInstruction.Claim]);
132
148
  const claimIgpInstruction = new TransactionInstruction({
133
149
  keys,
134
150
  programId: this.programId,
@@ -148,6 +164,68 @@ export class SealevelIgpAdapter extends SealevelIgpProgramAdapter {
148
164
  transaction.add(claimIgpInstruction);
149
165
  return transaction;
150
166
  }
167
+ /**
168
+ * Create a SetGasOracleConfigs instruction
169
+ */
170
+ createSetGasOracleConfigsInstruction(igpAccount, owner, configs) {
171
+ const keys = [
172
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
173
+ { pubkey: igpAccount, isSigner: false, isWritable: true },
174
+ { pubkey: owner, isSigner: true, isWritable: true },
175
+ ];
176
+ const value = new SealevelInstructionWrapper({
177
+ instruction: SealevelIgpInstruction.SetGasOracleConfigs,
178
+ data: new SealevelSetGasOracleConfigsInstruction(configs),
179
+ });
180
+ const data = Buffer.from(serialize(SealevelSetGasOracleConfigsInstructionSchema, value));
181
+ return new TransactionInstruction({
182
+ keys,
183
+ programId: this.programId,
184
+ data,
185
+ });
186
+ }
187
+ /**
188
+ * Create a gas oracle config from remote gas data
189
+ */
190
+ createGasOracleConfig(domain, remoteGasData) {
191
+ const gasOracle = remoteGasData
192
+ ? new SealevelGasOracle({
193
+ type: SealevelGasOracleType.RemoteGasData,
194
+ data: remoteGasData,
195
+ })
196
+ : null;
197
+ return new SealevelGasOracleConfig(domain, gasOracle);
198
+ }
199
+ /**
200
+ * Check if gas oracle matches expected config
201
+ */
202
+ gasOracleMatches(currentOracle, expected) {
203
+ if (!currentOracle) {
204
+ return { matches: false, actual: null };
205
+ }
206
+ // Guard: only proceed if currentOracle is the remote-gas variant (type 0)
207
+ if (currentOracle.type !== SealevelGasOracleType.RemoteGasData) {
208
+ return { matches: false, actual: null };
209
+ }
210
+ const actual = currentOracle.data;
211
+ // Ensure BigInt comparison works correctly (Borsh might deserialize as different types)
212
+ const actualExchangeRate = typeof actual.token_exchange_rate === 'bigint'
213
+ ? actual.token_exchange_rate
214
+ : BigInt(actual.token_exchange_rate);
215
+ const actualGasPrice = typeof actual.gas_price === 'bigint'
216
+ ? actual.gas_price
217
+ : BigInt(actual.gas_price);
218
+ const expectedExchangeRate = typeof expected.token_exchange_rate === 'bigint'
219
+ ? expected.token_exchange_rate
220
+ : BigInt(expected.token_exchange_rate);
221
+ const expectedGasPrice = typeof expected.gas_price === 'bigint'
222
+ ? expected.gas_price
223
+ : BigInt(expected.gas_price);
224
+ const matches = actualExchangeRate === expectedExchangeRate &&
225
+ actualGasPrice === expectedGasPrice &&
226
+ actual.token_decimals === expected.token_decimals;
227
+ return { matches, actual };
228
+ }
151
229
  }
152
230
  export class SealevelOverheadIgpAdapter extends SealevelIgpProgramAdapter {
153
231
  chainName;
@@ -165,7 +243,7 @@ export class SealevelOverheadIgpAdapter extends SealevelIgpProgramAdapter {
165
243
  const address = this.addresses.overheadIgp;
166
244
  const connection = this.getProvider();
167
245
  const accountInfo = await connection.getAccountInfo(new PublicKey(address));
168
- assert(accountInfo, `No account info found for ${address}}`);
246
+ assert(accountInfo, `No account info found for ${address}`);
169
247
  const accountData = deserializeUnchecked(SealevelOverheadIgpDataSchema, SealevelAccountDataWrapper, accountInfo.data);
170
248
  return accountData.data;
171
249
  }
@@ -177,5 +255,31 @@ export class SealevelOverheadIgpAdapter extends SealevelIgpProgramAdapter {
177
255
  overheadIgpAccount: this.overheadIgp,
178
256
  };
179
257
  }
258
+ /**
259
+ * Create a SetDestinationGasOverheads instruction
260
+ */
261
+ createSetDestinationGasOverheadsInstruction(overheadIgpAccount, owner, configs) {
262
+ const keys = [
263
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
264
+ { pubkey: overheadIgpAccount, isSigner: false, isWritable: true },
265
+ { pubkey: owner, isSigner: true, isWritable: true },
266
+ ];
267
+ const value = new SealevelInstructionWrapper({
268
+ instruction: SealevelIgpInstruction.SetDestinationGasOverheads,
269
+ data: new SealevelSetDestinationGasOverheadsInstruction(configs),
270
+ });
271
+ const data = Buffer.from(serialize(SealevelSetDestinationGasOverheadsInstructionSchema, value));
272
+ return new TransactionInstruction({
273
+ keys,
274
+ programId: this.programId,
275
+ data,
276
+ });
277
+ }
278
+ /**
279
+ * Create a gas overhead config
280
+ */
281
+ createGasOverheadConfig(destination_domain, gas_overhead) {
282
+ return new SealevelGasOverheadConfig(destination_domain, gas_overhead);
283
+ }
180
284
  }
181
285
  //# sourceMappingURL=SealevelIgpAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SealevelIgpAdapter.js","sourceRoot":"","sources":["../../../src/gas/adapters/SealevelIgpAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SealevelIgpAdapter.js","sourceRoot":"","sources":["../../../src/gas/adapters/SealevelIgpAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SealevelIgpAdapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SealevelIgpAdapter.test.d.ts","sourceRoot":"","sources":["../../../src/gas/adapters/SealevelIgpAdapter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,189 @@
1
+ import { expect } from 'chai';
2
+ import { TestChainName, testChainMetadata } from '../../consts/testChains.js';
3
+ import { MultiProtocolProvider } from '../../providers/MultiProtocolProvider.js';
4
+ import { SealevelIgpAdapter } from './SealevelIgpAdapter.js';
5
+ import { SealevelGasOracle, SealevelGasOracleType, SealevelRemoteGasData, } from './serialization.js';
6
+ describe('SealevelIgpAdapter', () => {
7
+ let adapter;
8
+ let multiProvider;
9
+ beforeEach(() => {
10
+ multiProvider = new MultiProtocolProvider(testChainMetadata);
11
+ adapter = new SealevelIgpAdapter(TestChainName.test1, multiProvider, {
12
+ igp: '11111111111111111111111111111111',
13
+ programId: '11111111111111111111111111111111',
14
+ });
15
+ });
16
+ describe('gasOracleMatches', () => {
17
+ const createMockRemoteGasData = (tokenExchangeRate, gasPrice, tokenDecimals) => {
18
+ return new SealevelRemoteGasData({
19
+ token_exchange_rate: tokenExchangeRate,
20
+ gas_price: gasPrice,
21
+ token_decimals: tokenDecimals,
22
+ });
23
+ };
24
+ const createMockGasOracle = (remoteGasData) => {
25
+ return new SealevelGasOracle({
26
+ type: SealevelGasOracleType.RemoteGasData,
27
+ data: remoteGasData,
28
+ });
29
+ };
30
+ describe('when currentOracle is undefined', () => {
31
+ it('should return matches: false and actual: null', () => {
32
+ const expected = createMockRemoteGasData(1000n, 2000n, 18);
33
+ const result = adapter.gasOracleMatches(undefined, expected);
34
+ expect(result.matches).to.be.false;
35
+ expect(result.actual).to.be.null;
36
+ });
37
+ });
38
+ describe('when currentOracle matches expected exactly', () => {
39
+ it('should return matches: true with correct actual data', () => {
40
+ const expected = createMockRemoteGasData(1000n, 2000n, 18);
41
+ const currentOracle = createMockGasOracle(expected);
42
+ const result = adapter.gasOracleMatches(currentOracle, expected);
43
+ expect(result.matches).to.be.true;
44
+ expect(result.actual).to.deep.equal(expected);
45
+ });
46
+ it('should work with number types instead of BigInt', () => {
47
+ const expected = createMockRemoteGasData(1000, 2000, 18);
48
+ const currentOracle = createMockGasOracle(expected);
49
+ const result = adapter.gasOracleMatches(currentOracle, expected);
50
+ expect(result.matches).to.be.true;
51
+ expect(result.actual).to.deep.equal(expected);
52
+ });
53
+ });
54
+ describe('when token_exchange_rate differs', () => {
55
+ it('should return matches: false', () => {
56
+ const expected = createMockRemoteGasData(1000n, 2000n, 18);
57
+ const actual = createMockRemoteGasData(1500n, 2000n, 18);
58
+ const currentOracle = createMockGasOracle(actual);
59
+ const result = adapter.gasOracleMatches(currentOracle, expected);
60
+ expect(result.matches).to.be.false;
61
+ expect(result.actual).to.deep.equal(actual);
62
+ });
63
+ it('should work with mixed BigInt and number types', () => {
64
+ const expected = createMockRemoteGasData(1000n, 2000n, 18);
65
+ const actual = createMockRemoteGasData(1000, 2000n, 18);
66
+ const currentOracle = createMockGasOracle(actual);
67
+ const result = adapter.gasOracleMatches(currentOracle, expected);
68
+ expect(result.matches).to.be.true;
69
+ expect(result.actual).to.deep.equal(actual);
70
+ });
71
+ });
72
+ describe('when gas_price differs', () => {
73
+ it('should return matches: false', () => {
74
+ const expected = createMockRemoteGasData(1000n, 2000n, 18);
75
+ const actual = createMockRemoteGasData(1000n, 2500n, 18);
76
+ const currentOracle = createMockGasOracle(actual);
77
+ const result = adapter.gasOracleMatches(currentOracle, expected);
78
+ expect(result.matches).to.be.false;
79
+ expect(result.actual).to.deep.equal(actual);
80
+ });
81
+ it('should work with mixed BigInt and number types', () => {
82
+ const expected = createMockRemoteGasData(1000n, 2000, 18);
83
+ const actual = createMockRemoteGasData(1000n, 2000n, 18);
84
+ const currentOracle = createMockGasOracle(actual);
85
+ const result = adapter.gasOracleMatches(currentOracle, expected);
86
+ expect(result.matches).to.be.true;
87
+ expect(result.actual).to.deep.equal(actual);
88
+ });
89
+ });
90
+ describe('when token_decimals differs', () => {
91
+ it('should return matches: false', () => {
92
+ const expected = createMockRemoteGasData(1000n, 2000n, 18);
93
+ const actual = createMockRemoteGasData(1000n, 2000n, 6);
94
+ const currentOracle = createMockGasOracle(actual);
95
+ const result = adapter.gasOracleMatches(currentOracle, expected);
96
+ expect(result.matches).to.be.false;
97
+ expect(result.actual).to.deep.equal(actual);
98
+ });
99
+ });
100
+ describe('BigInt type conversion handling', () => {
101
+ it('should handle BigInt to number conversion for token_exchange_rate', () => {
102
+ const expected = createMockRemoteGasData(1000, 2000n, 18);
103
+ const actual = createMockRemoteGasData(1000n, 2000n, 18);
104
+ const currentOracle = createMockGasOracle(actual);
105
+ const result = adapter.gasOracleMatches(currentOracle, expected);
106
+ expect(result.matches).to.be.true;
107
+ expect(result.actual).to.deep.equal(actual);
108
+ });
109
+ it('should handle BigInt to number conversion for gas_price', () => {
110
+ const expected = createMockRemoteGasData(1000n, 2000, 18);
111
+ const actual = createMockRemoteGasData(1000n, 2000n, 18);
112
+ const currentOracle = createMockGasOracle(actual);
113
+ const result = adapter.gasOracleMatches(currentOracle, expected);
114
+ expect(result.matches).to.be.true;
115
+ expect(result.actual).to.deep.equal(actual);
116
+ });
117
+ it('should handle number to BigInt conversion for token_exchange_rate', () => {
118
+ const expected = createMockRemoteGasData(1000n, 2000n, 18);
119
+ const actual = createMockRemoteGasData(1000, 2000n, 18);
120
+ const currentOracle = createMockGasOracle(actual);
121
+ const result = adapter.gasOracleMatches(currentOracle, expected);
122
+ expect(result.matches).to.be.true;
123
+ expect(result.actual).to.deep.equal(actual);
124
+ });
125
+ it('should handle number to BigInt conversion for gas_price', () => {
126
+ const expected = createMockRemoteGasData(1000n, 2000n, 18);
127
+ const actual = createMockRemoteGasData(1000n, 2000, 18);
128
+ const currentOracle = createMockGasOracle(actual);
129
+ const result = adapter.gasOracleMatches(currentOracle, expected);
130
+ expect(result.matches).to.be.true;
131
+ expect(result.actual).to.deep.equal(actual);
132
+ });
133
+ });
134
+ describe('edge cases', () => {
135
+ it('should handle zero values correctly', () => {
136
+ const expected = createMockRemoteGasData(0n, 0n, 0);
137
+ const actual = createMockRemoteGasData(0n, 0n, 0);
138
+ const currentOracle = createMockGasOracle(actual);
139
+ const result = adapter.gasOracleMatches(currentOracle, expected);
140
+ expect(result.matches).to.be.true;
141
+ expect(result.actual).to.deep.equal(actual);
142
+ });
143
+ it('should handle very large BigInt values', () => {
144
+ const largeValue = BigInt('999999999999999999999999999999999999');
145
+ const expected = createMockRemoteGasData(largeValue, largeValue, 18);
146
+ const actual = createMockRemoteGasData(largeValue, largeValue, 18);
147
+ const currentOracle = createMockGasOracle(actual);
148
+ const result = adapter.gasOracleMatches(currentOracle, expected);
149
+ expect(result.matches).to.be.true;
150
+ expect(result.actual).to.deep.equal(actual);
151
+ });
152
+ it('should handle mixed zero and non-zero values', () => {
153
+ const expected = createMockRemoteGasData(0n, 1000n, 18);
154
+ const actual = createMockRemoteGasData(0n, 1000n, 18);
155
+ const currentOracle = createMockGasOracle(actual);
156
+ const result = adapter.gasOracleMatches(currentOracle, expected);
157
+ expect(result.matches).to.be.true;
158
+ expect(result.actual).to.deep.equal(actual);
159
+ });
160
+ it('should fail when zero values differ from non-zero', () => {
161
+ const expected = createMockRemoteGasData(0n, 1000n, 18);
162
+ const actual = createMockRemoteGasData(1000n, 0n, 18);
163
+ const currentOracle = createMockGasOracle(actual);
164
+ const result = adapter.gasOracleMatches(currentOracle, expected);
165
+ expect(result.matches).to.be.false;
166
+ expect(result.actual).to.deep.equal(actual);
167
+ });
168
+ });
169
+ describe('comprehensive type mixing scenarios', () => {
170
+ it('should handle all combinations of BigInt and number types', () => {
171
+ const testCases = [
172
+ { expected: [1000n, 2000n], actual: [1000, 2000] },
173
+ { expected: [1000, 2000n], actual: [1000n, 2000] },
174
+ { expected: [1000n, 2000], actual: [1000, 2000n] },
175
+ { expected: [1000, 2000], actual: [1000n, 2000n] },
176
+ ];
177
+ testCases.forEach(({ expected, actual }) => {
178
+ const expectedData = createMockRemoteGasData(expected[0], expected[1], 18);
179
+ const actualData = createMockRemoteGasData(actual[0], actual[1], 18);
180
+ const currentOracle = createMockGasOracle(actualData);
181
+ const result = adapter.gasOracleMatches(currentOracle, expectedData);
182
+ expect(result.matches).to.be.true;
183
+ expect(result.actual).to.deep.equal(actualData);
184
+ });
185
+ });
186
+ });
187
+ });
188
+ });
189
+ //# sourceMappingURL=SealevelIgpAdapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SealevelIgpAdapter.test.js","sourceRoot":"","sources":["../../../src/gas/adapters/SealevelIgpAdapter.test.ts"],"names":[],"mappings":"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"}