@hyperlane-xyz/sealevel-sdk 27.1.0 → 28.0.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 (41) hide show
  1. package/dist/clients/protocol.d.ts +4 -0
  2. package/dist/clients/protocol.d.ts.map +1 -1
  3. package/dist/clients/protocol.js +8 -0
  4. package/dist/clients/protocol.js.map +1 -1
  5. package/dist/testing/constants.d.ts +20 -0
  6. package/dist/testing/constants.d.ts.map +1 -0
  7. package/dist/testing/constants.js +16 -0
  8. package/dist/testing/constants.js.map +1 -0
  9. package/dist/testing/index.d.ts +1 -0
  10. package/dist/testing/index.d.ts.map +1 -1
  11. package/dist/testing/index.js +1 -0
  12. package/dist/testing/index.js.map +1 -1
  13. package/dist/testing/setup.d.ts +11 -2
  14. package/dist/testing/setup.d.ts.map +1 -1
  15. package/dist/testing/setup.js +35 -23
  16. package/dist/testing/setup.js.map +1 -1
  17. package/dist/testing/solana-container.d.ts +11 -9
  18. package/dist/testing/solana-container.d.ts.map +1 -1
  19. package/dist/testing/solana-container.js +68 -40
  20. package/dist/testing/solana-container.js.map +1 -1
  21. package/dist/tests/collateral-token.e2e-test.js +6 -20
  22. package/dist/tests/collateral-token.e2e-test.js.map +1 -1
  23. package/dist/tests/e2e-test.setup.d.ts +2 -0
  24. package/dist/tests/e2e-test.setup.d.ts.map +1 -0
  25. package/dist/tests/e2e-test.setup.js +44 -0
  26. package/dist/tests/e2e-test.setup.js.map +1 -0
  27. package/dist/tests/hook.e2e-test.js +5 -18
  28. package/dist/tests/hook.e2e-test.js.map +1 -1
  29. package/dist/tests/ism.e2e-test.js +5 -21
  30. package/dist/tests/ism.e2e-test.js.map +1 -1
  31. package/dist/tests/native-token.e2e-test.js +6 -20
  32. package/dist/tests/native-token.e2e-test.js.map +1 -1
  33. package/dist/tests/provider.e2e-test.js +3 -11
  34. package/dist/tests/provider.e2e-test.js.map +1 -1
  35. package/dist/tests/synthetic-token.e2e-test.js +6 -20
  36. package/dist/tests/synthetic-token.e2e-test.js.map +1 -1
  37. package/package.json +10 -15
  38. package/dist/tests/deploy.e2e-test.d.ts +0 -2
  39. package/dist/tests/deploy.e2e-test.d.ts.map +0 -1
  40. package/dist/tests/deploy.e2e-test.js +0 -76
  41. package/dist/tests/deploy.e2e-test.js.map +0 -1
@@ -4,6 +4,8 @@ import type { IRawHookArtifactManager } from '@hyperlane-xyz/provider-sdk/hook';
4
4
  import type { IRawIsmArtifactManager } from '@hyperlane-xyz/provider-sdk/ism';
5
5
  import type { AnnotatedTx, TxReceipt } from '@hyperlane-xyz/provider-sdk/module';
6
6
  import type { IRawWarpArtifactManager } from '@hyperlane-xyz/provider-sdk/warp';
7
+ import { type IRawMailboxArtifactManager } from '@hyperlane-xyz/provider-sdk/mailbox';
8
+ import { type IRawValidatorAnnounceArtifactManager } from '@hyperlane-xyz/provider-sdk/validator-announce';
7
9
  export declare class SvmProtocolProvider implements ProtocolProvider {
8
10
  createProvider(chainMetadata: ChainMetadataForAltVM): Promise<IProvider>;
9
11
  createSigner(chainMetadata: ChainMetadataForAltVM, config: SignerConfig): Promise<AltVM.ISigner<AnnotatedTx, TxReceipt>>;
@@ -15,6 +17,8 @@ export declare class SvmProtocolProvider implements ProtocolProvider {
15
17
  createWarpArtifactManager(chainMetadata: ChainMetadataForAltVM, _context?: {
16
18
  mailbox?: string;
17
19
  }): IRawWarpArtifactManager;
20
+ createMailboxArtifactManager(_chainMetadata: ChainMetadataForAltVM): IRawMailboxArtifactManager;
21
+ createValidatorAnnounceArtifactManager(_chainMetadata: ChainMetadataForAltVM): IRawValidatorAnnounceArtifactManager | null;
18
22
  getMinGas(): MinimumRequiredGasByAction;
19
23
  private getRpcUrls;
20
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/clients/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAWhF,qBAAa,mBAAoB,YAAW,gBAAgB;IAC1D,cAAc,CAAC,aAAa,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKlE,YAAY,CAChB,aAAa,EAAE,qBAAqB,EACpC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAKjD,eAAe,CAAC,OAAO,SAAS,0BAA0B,EACxD,cAAc,EAAE,qBAAqB,EACrC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,CAAC;IAIjC,wBAAwB,CACtB,aAAa,EAAE,qBAAqB,GACnC,sBAAsB;IAKzB,yBAAyB,CACvB,aAAa,EAAE,qBAAqB,EACpC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B,uBAAuB;IAQ1B,yBAAyB,CACvB,aAAa,EAAE,qBAAqB,EACpC,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,uBAAuB;IAK1B,SAAS,IAAI,0BAA0B;IAWvC,OAAO,CAAC,UAAU;CAOnB"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/clients/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAIhF,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,KAAK,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AAQ3G,qBAAa,mBAAoB,YAAW,gBAAgB;IAC1D,cAAc,CAAC,aAAa,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKlE,YAAY,CAChB,aAAa,EAAE,qBAAqB,EACpC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAKjD,eAAe,CAAC,OAAO,SAAS,0BAA0B,EACxD,cAAc,EAAE,qBAAqB,EACrC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,CAAC;IAIjC,wBAAwB,CACtB,aAAa,EAAE,qBAAqB,GACnC,sBAAsB;IAKzB,yBAAyB,CACvB,aAAa,EAAE,qBAAqB,EACpC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B,uBAAuB;IAQ1B,yBAAyB,CACvB,aAAa,EAAE,qBAAqB,EACpC,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,uBAAuB;IAK1B,4BAA4B,CAC1B,cAAc,EAAE,qBAAqB,GACpC,0BAA0B;IAK7B,sCAAsC,CACpC,cAAc,EAAE,qBAAqB,GACpC,oCAAoC,GAAG,IAAI;IAK9C,SAAS,IAAI,0BAA0B;IAWvC,OAAO,CAAC,UAAU;CAOnB"}
@@ -33,6 +33,14 @@ export class SvmProtocolProvider {
33
33
  const rpc = createRpc(this.getRpcUrls(chainMetadata)[0]);
34
34
  return new SvmWarpArtifactManager(rpc);
35
35
  }
36
+ createMailboxArtifactManager(_chainMetadata) {
37
+ // @TODO Implement in a follow up PR
38
+ throw Error('Not implemented');
39
+ }
40
+ createValidatorAnnounceArtifactManager(_chainMetadata) {
41
+ // @TODO Implement in a follow up PR
42
+ throw Error('Not implemented');
43
+ }
36
44
  getMinGas() {
37
45
  return {
38
46
  CORE_DEPLOY_GAS: 0n,
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/clients/protocol.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,OAAO,mBAAmB;IAC9B,cAAc,CAAC,aAAoC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC/C,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,aAAoC,EACpC,MAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,eAAe,CACb,cAAqC,EACrC,OAAgB;QAEhB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,wBAAwB,CACtB,aAAoC;QAEpC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,yBAAyB,CACvB,aAAoC,EACpC,OAA8B;QAE9B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO;YAC9B,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,IAAI,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,yBAAyB,CACvB,aAAoC,EACpC,QAA+B;QAE/B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,SAAS;QACP,OAAO;YACL,eAAe,EAAE,EAAE;YACnB,4EAA4E;YAC5E,eAAe,EAAE,WAAc;YAC/B,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,EAAE;SACnB,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,aAAoC;QACrD,MAAM,CACJ,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EACzD,kCAAkC,CACnC,CAAC;QACF,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/clients/protocol.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AAItD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,OAAO,mBAAmB;IAC9B,cAAc,CAAC,aAAoC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC/C,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,aAAoC,EACpC,MAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,eAAe,CACb,cAAqC,EACrC,OAAgB;QAEhB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,wBAAwB,CACtB,aAAoC;QAEpC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,yBAAyB,CACvB,aAAoC,EACpC,OAA8B;QAE9B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO;YAC9B,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,IAAI,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,yBAAyB,CACvB,aAAoC,EACpC,QAA+B;QAE/B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,4BAA4B,CAC1B,cAAqC;QAErC,oCAAoC;QACpC,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;IAED,sCAAsC,CACpC,cAAqC;QAErC,oCAAoC;QACpC,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;IAED,SAAS;QACP,OAAO;YACL,eAAe,EAAE,EAAE;YACnB,4EAA4E;YAC5E,eAAe,EAAE,WAAc;YAC/B,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,EAAE;SACnB,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,aAAoC;QACrD,MAAM,CACJ,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EACzD,kCAAkC,CACnC,CAAC;QACF,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import { ProtocolType } from '@hyperlane-xyz/provider-sdk';
2
+ export declare const AGAVE_VERSION = "v3.0.14";
3
+ export declare const TEST_SVM_CHAIN_METADATA: {
4
+ readonly name: "svmtest";
5
+ readonly protocol: ProtocolType.Sealevel;
6
+ readonly domainId: 1399811149;
7
+ readonly chainId: "1399811149";
8
+ readonly nativeToken: {
9
+ readonly decimals: 9;
10
+ readonly name: "SOL";
11
+ readonly symbol: "SOL";
12
+ };
13
+ readonly rpcUrls: [{
14
+ readonly http: "http://127.0.0.1:8899";
15
+ }];
16
+ readonly rpcPort: 8899;
17
+ readonly rpcUrl: "http://127.0.0.1:8899";
18
+ readonly restPort: 8899;
19
+ };
20
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/testing/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAK3D,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;CAUE,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { ProtocolType } from '@hyperlane-xyz/provider-sdk';
2
+ // Single source of truth for the Agave/Solana version used in tests.
3
+ // When bumping, also update the Dockerfile ARG + SHA256 and rebuild the image.
4
+ export const AGAVE_VERSION = 'v3.0.14';
5
+ export const TEST_SVM_CHAIN_METADATA = {
6
+ name: 'svmtest',
7
+ protocol: ProtocolType.Sealevel,
8
+ domainId: 1399811149,
9
+ chainId: '1399811149',
10
+ nativeToken: { decimals: 9, name: 'SOL', symbol: 'SOL' },
11
+ rpcUrls: [{ http: 'http://127.0.0.1:8899' }],
12
+ rpcPort: 8899,
13
+ rpcUrl: 'http://127.0.0.1:8899',
14
+ restPort: 8899,
15
+ };
16
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/testing/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,qEAAqE;AACrE,+EAA+E;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AAEvC,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,YAAY,CAAC,QAAQ;IAC/B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;IACxD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;IAC5C,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,IAAI;CACsB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './constants.js';
1
2
  export * from './setup.js';
2
3
  export * from './solana-container.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './constants.js';
1
2
  export * from './setup.js';
2
3
  export * from './solana-container.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC"}
@@ -2,7 +2,6 @@ import type { Address, Rpc, SolanaRpcApi } from '@solana/kit';
2
2
  import type { SvmSigner } from '../clients/signer.js';
3
3
  import type { SvmRpc } from '../types.js';
4
4
  import type { PreloadedProgram } from './solana-container.js';
5
- export declare const DEFAULT_PROGRAMS_PATH: string;
6
5
  export declare const TEST_PROGRAM_IDS: {
7
6
  readonly mailbox: Address;
8
7
  readonly igp: Address;
@@ -22,7 +21,17 @@ export declare const PROGRAM_BINARIES: {
22
21
  readonly tokenCollateral: "hyperlane_sealevel_token_collateral.so";
23
22
  };
24
23
  export type PreloadableProgram = keyof typeof PROGRAM_BINARIES & keyof typeof TEST_PROGRAM_IDS;
25
- export declare function getPreloadedPrograms(programs: Array<PreloadableProgram>, programsPath?: string): PreloadedProgram[];
24
+ /**
25
+ * Writes embedded program bytes to temp .so files for the test validator.
26
+ * The solana-test-validator CLI requires file paths for --bpf-program,
27
+ * so we materialize the embedded Uint8Array bytes to disk.
28
+ *
29
+ * Returns the programs array and a cleanup function to remove the temp dir.
30
+ */
31
+ export declare function getPreloadedPrograms(programs: Array<PreloadableProgram>): {
32
+ programs: PreloadedProgram[];
33
+ cleanup: () => void;
34
+ };
26
35
  export declare function airdropSol(rpc: Rpc<SolanaRpcApi>, address: Address, amount?: bigint): Promise<void>;
27
36
  export declare function getBalance(rpc: Rpc<SolanaRpcApi>, address: Address): Promise<number>;
28
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/testing/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAY9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAa9D,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AAEF,eAAO,MAAM,gBAAgB;sBACgC,OAAO;kBACX,OAAO;0BACC,OAAO;sBACX,OAAO;gCACG,OAAO;CACpE,CAAC;AAEX,eAAO,MAAM,6BAA6B,aAAe,CAAC;AAE1D,eAAO,MAAM,gBAAgB;;;;;;;;;CASnB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,gBAAgB,GAC5D,MAAM,OAAO,gBAAgB,CAAC;AAahC,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,EACnC,YAAY,GAAE,MAA8B,GAC3C,gBAAgB,EAAE,CAmBpB;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,MAAwB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAoClB"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/testing/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAc9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAOtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,eAAO,MAAM,gBAAgB;sBACgC,OAAO;kBACX,OAAO;0BACC,OAAO;sBACX,OAAO;gCACG,OAAO;CACpE,CAAC;AAEX,eAAO,MAAM,6BAA6B,aAAe,CAAC;AAE1D,eAAO,MAAM,gBAAgB;;;;;;;;;CASnB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,gBAAgB,GAC5D,MAAM,OAAO,gBAAgB,CAAC;AAahC;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG;IACzE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CA0CA;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,MAAwB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAoClB"}
@@ -3,21 +3,13 @@ import { lamports as brandLamports, generateKeyPairSigner, getAddressEncoder, }
3
3
  // eslint-disable-next-line import/no-nodejs-modules
4
4
  import * as fs from 'fs';
5
5
  // eslint-disable-next-line import/no-nodejs-modules
6
+ import * as os from 'os';
7
+ // eslint-disable-next-line import/no-nodejs-modules
6
8
  import * as path from 'path';
7
9
  import { assert, retryAsync } from '@hyperlane-xyz/utils';
8
10
  import { SPL_TOKEN_PROGRAM_ADDRESS, TOKEN_2022_PROGRAM_ADDRESS, } from '../constants.js';
11
+ import { HYPERLANE_SVM_PROGRAM_BYTES } from '../hyperlane/program-bytes.js';
9
12
  import { buildInstruction, writableAccount } from '../instructions/utils.js';
10
- function findMonorepoRoot() {
11
- let dir = process.cwd();
12
- while (dir !== '/') {
13
- if (fs.existsSync(path.join(dir, 'pnpm-workspace.yaml'))) {
14
- return dir;
15
- }
16
- dir = path.dirname(dir);
17
- }
18
- return process.cwd();
19
- }
20
- export const DEFAULT_PROGRAMS_PATH = path.join(findMonorepoRoot(), 'rust/sealevel/target/deploy');
21
13
  export const TEST_PROGRAM_IDS = {
22
14
  mailbox: '2Zvzyv2sstAhs9wu1xaLpH5X17dVouEb8zjkBRPKsSy5',
23
15
  igp: 'GZGLpeuMaUXUmBHh1EtgWQDufyUoHapAKFfgKb6u8o3h',
@@ -42,23 +34,43 @@ export const PROGRAM_BINARIES = {
42
34
  // See https://github.com/anza-xyz/agave/issues/9799
43
35
  // Binary source: https://github.com/solana-program/token-2022/releases/tag/program%40v10.0.0
44
36
  const TOKEN_2022_V10_SO_PATH = path.join(path.dirname(new URL(import.meta.url).pathname), 'fixtures', 'spl_token_2022_v10.so');
45
- export function getPreloadedPrograms(programs, programsPath = DEFAULT_PROGRAMS_PATH) {
37
+ /**
38
+ * Writes embedded program bytes to temp .so files for the test validator.
39
+ * The solana-test-validator CLI requires file paths for --bpf-program,
40
+ * so we materialize the embedded Uint8Array bytes to disk.
41
+ *
42
+ * Returns the programs array and a cleanup function to remove the temp dir.
43
+ */
44
+ export function getPreloadedPrograms(programs) {
45
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'svm-programs-'));
46
46
  const preloaded = programs.map((program) => {
47
47
  const programId = TEST_PROGRAM_IDS[program];
48
48
  assert(programId, `Program '${program}' not found in TEST_PROGRAM_IDS`);
49
- return {
50
- programId,
51
- soPath: path.join(programsPath, PROGRAM_BINARIES[program]),
52
- };
49
+ const bytes = HYPERLANE_SVM_PROGRAM_BYTES[program];
50
+ assert(bytes, `Program '${program}' not found in HYPERLANE_SVM_PROGRAM_BYTES`);
51
+ const soPath = path.join(tmpDir, PROGRAM_BINARIES[program]);
52
+ fs.writeFileSync(soPath, bytes);
53
+ return { programId, soPath };
53
54
  });
54
55
  // Override the built-in Token-2022 with v10.0.0 to fix realloc on v3.0+.
55
- if (fs.existsSync(TOKEN_2022_V10_SO_PATH)) {
56
- preloaded.push({
57
- programId: TOKEN_2022_PROGRAM_ADDRESS,
58
- soPath: TOKEN_2022_V10_SO_PATH,
59
- });
60
- }
61
- return preloaded;
56
+ // Copy to tmpDir so all .so files are in one directory for Docker bind-mount.
57
+ assert(fs.existsSync(TOKEN_2022_V10_SO_PATH), `Token-2022 v10 fixture not found at ${TOKEN_2022_V10_SO_PATH}. ` +
58
+ 'Without it, Agave v3.0+ will fail with InvalidRealloc errors.');
59
+ const destPath = path.join(tmpDir, 'spl_token_2022_v10.so');
60
+ fs.copyFileSync(TOKEN_2022_V10_SO_PATH, destPath);
61
+ preloaded.push({
62
+ programId: TOKEN_2022_PROGRAM_ADDRESS,
63
+ soPath: destPath,
64
+ });
65
+ const cleanup = () => {
66
+ try {
67
+ fs.rmSync(tmpDir, { recursive: true, force: true });
68
+ }
69
+ catch {
70
+ // Best-effort cleanup
71
+ }
72
+ };
73
+ return { programs: preloaded, cleanup };
62
74
  }
63
75
  export async function airdropSol(rpc, address, amount = 10000000000n) {
64
76
  const signature = await retryAsync(() => rpc.requestAirdrop(address, brandLamports(amount)).send());
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/testing/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/testing/setup.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type ChildProcess } from 'child_process';
2
+ import { type TestChainMetadata } from '@hyperlane-xyz/provider-sdk/chain';
2
3
  import { type StartedTestContainer } from 'testcontainers';
3
- export declare const SOLANA_VALIDATOR_IMAGE = "anzaxyz/agave:v3.0.14";
4
- export declare const SOLANA_RPC_PORT = 8899;
4
+ export declare const SOLANA_VALIDATOR_IMAGE = "ghcr.io/hyperlane-xyz/hyperlane-solana-validator:v3.0.14";
5
5
  export declare function isAppleSilicon(): boolean;
6
6
  export declare function findSolanaTestValidator(): string | null;
7
7
  export interface PreloadedProgram {
@@ -12,11 +12,9 @@ export interface SolanaValidatorConfig {
12
12
  image?: string;
13
13
  keepRunning?: boolean;
14
14
  validatorArgs?: string[];
15
- forceDocker?: boolean;
16
15
  binaryPath?: string;
17
- rpcPort?: number;
16
+ rpcPort: number;
18
17
  preloadedPrograms?: PreloadedProgram[];
19
- platform?: string;
20
18
  }
21
19
  export interface SolanaTestValidator {
22
20
  rpcUrl: string;
@@ -25,8 +23,12 @@ export interface SolanaTestValidator {
25
23
  container?: StartedTestContainer;
26
24
  process?: ChildProcess;
27
25
  }
28
- export type SolanaTestContainer = SolanaTestValidator;
29
- export declare function startSolanaTestValidator(config?: SolanaValidatorConfig): Promise<SolanaTestValidator>;
30
- export declare function waitForRpcReady(rpcUrl: string, maxAttempts?: number, delayMs?: number): Promise<void>;
31
- export declare const APPLE_SILICON_SKIP_MESSAGE: string;
26
+ /**
27
+ * Starts a Solana test validator and waits for the RPC to be ready.
28
+ * Uses a local binary if available, otherwise falls back to Docker (Linux only).
29
+ *
30
+ * @param chainMetadata - Test chain metadata (defaults to TEST_SVM_CHAIN_METADATA)
31
+ * @param preloadedPrograms - Programs to preload into the validator
32
+ */
33
+ export declare function runSolanaNode(chainMetadata?: TestChainMetadata, preloadedPrograms?: PreloadedProgram[]): Promise<SolanaTestValidator>;
32
34
  //# sourceMappingURL=solana-container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solana-container.d.ts","sourceRoot":"","sources":["../../src/testing/solana-container.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,eAAe,CAAC;AASvB,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,gBAAgB,CAAC;AAOxB,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAC9D,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,wBAAgB,cAAc,IAAI,OAAO,CAUxC;AA2CD,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CA2CvD;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAwLtD,wBAAsB,wBAAwB,CAC5C,MAAM,GAAE,qBAA0B,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA0B9B;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,WAAW,SAAK,EAChB,OAAO,SAAO,GACb,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED,eAAO,MAAM,0BAA0B,QAEW,CAAC"}
1
+ {"version":3,"file":"solana-container.d.ts","sourceRoot":"","sources":["../../src/testing/solana-container.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,eAAe,CAAC;AAQvB,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,gBAAgB,CAAC;AAyBxB,eAAO,MAAM,sBAAsB,6DAAsE,CAAC;AAE1G,wBAAgB,cAAc,IAAI,OAAO,CAUxC;AAiDD,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CA2CvD;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AA+ND;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,aAAa,GAAE,iBAA2C,EAC1D,iBAAiB,GAAE,gBAAgB,EAAO,GACzC,OAAO,CAAC,mBAAmB,CAAC,CAkC9B"}
@@ -6,15 +6,25 @@ import * as fs from 'fs';
6
6
  import * as os from 'os';
7
7
  // eslint-disable-next-line import/no-nodejs-modules
8
8
  import * as path from 'path';
9
- import { isNullish } from '@hyperlane-xyz/utils';
9
+ import { assert, isNullish, retryAsync } from '@hyperlane-xyz/utils';
10
10
  import { GenericContainer, Wait, } from 'testcontainers';
11
+ import { AGAVE_VERSION, TEST_SVM_CHAIN_METADATA } from './constants.js';
12
+ // Vendored Docker seccomp profile with io_uring syscalls pre-patched.
13
+ // Agave v2.0+ requires io_uring which Docker's default profile blocks.
14
+ // To update: fetch https://raw.githubusercontent.com/moby/profiles/main/seccomp/default.json,
15
+ // add io_uring_enter/io_uring_register/io_uring_setup to the main SCMP_ACT_ALLOW rule,
16
+ // and save to src/testing/fixtures/docker-seccomp.json.
17
+ // See https://github.com/moby/moby/issues/47532
18
+ const DOCKER_SECCOMP_PATH = path.join(path.dirname(new URL(import.meta.url).pathname), 'fixtures', 'docker-seccomp.json');
19
+ function getSeccompProfile() {
20
+ return fs.readFileSync(DOCKER_SECCOMP_PATH, 'utf-8');
21
+ }
11
22
  // Agave v3.0.x activates stricter_abi_and_runtime_constraints which rejects
12
23
  // the old Token-2022 program's non-zero-init realloc calls. The test setup
13
24
  // overrides the built-in Token-2022 with v10.0.0 (via --bpf-program) which
14
25
  // uses zero-init realloc and is compatible with the stricter runtime.
15
26
  // See https://github.com/anza-xyz/agave/issues/9799
16
- export const SOLANA_VALIDATOR_IMAGE = 'anzaxyz/agave:v3.0.14';
17
- export const SOLANA_RPC_PORT = 8899;
27
+ export const SOLANA_VALIDATOR_IMAGE = `ghcr.io/hyperlane-xyz/hyperlane-solana-validator:${AGAVE_VERSION}`;
18
28
  export function isAppleSilicon() {
19
29
  try {
20
30
  const arch = execSync('uname -m', { encoding: 'utf-8' }).trim();
@@ -55,9 +65,11 @@ function getValidatorVersion(binaryPath) {
55
65
  return null;
56
66
  }
57
67
  }
68
+ // Strip leading 'v' for the filesystem path (releases use bare semver).
69
+ const AGAVE_SEMVER = AGAVE_VERSION.replace(/^v/, '');
58
70
  const SOLANA_BINARY_PATHS = [
59
71
  path.join(os.homedir(), '.local/share/solana/install/active_release/bin'),
60
- path.join(os.homedir(), '.local/share/solana/install/releases/3.0.14/bin'),
72
+ path.join(os.homedir(), `.local/share/solana/install/releases/${AGAVE_SEMVER}/bin`),
61
73
  '/tmp/solana-release/bin',
62
74
  '/opt/homebrew/bin',
63
75
  '/usr/local/bin',
@@ -102,7 +114,7 @@ export function findSolanaTestValidator() {
102
114
  return candidates[0].path;
103
115
  }
104
116
  async function startLocalValidator(config) {
105
- const { binaryPath, keepRunning = false, validatorArgs = [], rpcPort = SOLANA_RPC_PORT, preloadedPrograms = [], } = config;
117
+ const { binaryPath, keepRunning = false, validatorArgs = [], rpcPort, preloadedPrograms = [], } = config;
106
118
  const solanaPath = binaryPath ?? findSolanaTestValidator();
107
119
  if (!solanaPath) {
108
120
  throw new Error('solana-test-validator binary not found. Install from https://docs.anza.xyz/cli/install');
@@ -176,7 +188,7 @@ async function startLocalValidator(config) {
176
188
  };
177
189
  }
178
190
  async function startDockerValidator(config) {
179
- const { image = SOLANA_VALIDATOR_IMAGE, keepRunning = false, validatorArgs = [], rpcPort = SOLANA_RPC_PORT, preloadedPrograms = [], platform, } = config;
191
+ const { image = SOLANA_VALIDATOR_IMAGE, keepRunning = false, validatorArgs = [], rpcPort, preloadedPrograms = [], } = config;
180
192
  const bpfProgramArgs = [];
181
193
  const hostDirToContainerDir = new Map();
182
194
  let mountIndex = 0;
@@ -193,8 +205,6 @@ async function startDockerValidator(config) {
193
205
  const command = [
194
206
  '--rpc-port',
195
207
  String(rpcPort),
196
- '--bind-address',
197
- '0.0.0.0',
198
208
  '--ledger',
199
209
  '/tmp/solana-ledger',
200
210
  '--reset',
@@ -202,16 +212,20 @@ async function startDockerValidator(config) {
202
212
  ...bpfProgramArgs,
203
213
  ...validatorArgs,
204
214
  ];
215
+ // Agave v2.0+ uses io_uring which Docker's default seccomp profile blocks.
216
+ // Use vendored seccomp profile with io_uring syscalls pre-patched.
217
+ // See https://github.com/moby/moby/issues/47532
218
+ const seccompProfile = getSeccompProfile();
205
219
  let builder = new GenericContainer(image)
206
220
  .withEntrypoint(entrypoint)
207
- .withExposedPorts(rpcPort)
221
+ .withExposedPorts({ container: rpcPort, host: rpcPort })
208
222
  .withCommand(command)
209
- .withWaitStrategy(Wait.forLogMessage(/Processed Slot:/, 1))
223
+ .withSecurityOpt(`seccomp=${seccompProfile}`)
224
+ .withWaitStrategy(Wait.forLogMessage(/rpc bound to/, 1))
210
225
  .withStartupTimeout(120_000);
211
- const effectivePlatform = platform ?? (isAppleSilicon() ? 'linux/amd64' : undefined);
212
- if (effectivePlatform) {
213
- builder = builder.withPlatform(effectivePlatform);
214
- }
226
+ assert(os.platform() === 'linux', 'Docker-based Solana validator requires Linux. ' +
227
+ 'Solana needs AVX instructions that cannot be emulated on other platforms. ' +
228
+ 'Install solana-test-validator locally: https://docs.anza.xyz/cli/install');
215
229
  const bindMounts = [...hostDirToContainerDir.entries()].map(([hostDir, containerDir]) => ({
216
230
  source: hostDir,
217
231
  target: containerDir,
@@ -220,7 +234,7 @@ async function startDockerValidator(config) {
220
234
  if (bindMounts.length > 0) {
221
235
  builder = builder.withBindMounts(bindMounts);
222
236
  }
223
- const container = await builder.start();
237
+ const container = await retryAsync(() => builder.start(), 3, 5000);
224
238
  const mappedPort = container.getMappedPort(rpcPort);
225
239
  const host = container.getHost();
226
240
  const rpcUrl = `http://${host}:${mappedPort}`;
@@ -235,29 +249,7 @@ async function startDockerValidator(config) {
235
249
  },
236
250
  };
237
251
  }
238
- export async function startSolanaTestValidator(config = {}) {
239
- const { forceDocker = false } = config;
240
- if (!forceDocker) {
241
- const localBinary = config.binaryPath ?? findSolanaTestValidator();
242
- if (localBinary) {
243
- // eslint-disable-next-line no-console
244
- console.log(`Using local solana-test-validator: ${localBinary}`);
245
- return startLocalValidator({ ...config, binaryPath: localBinary });
246
- }
247
- }
248
- if (isAppleSilicon()) {
249
- throw new Error('No local solana-test-validator found on Apple Silicon.\n' +
250
- 'Docker is not supported: Solana requires AVX instructions that Rosetta 2 cannot emulate.\n' +
251
- 'Install natively from: https://docs.anza.xyz/cli/install\n' +
252
- 'Or download directly:\n' +
253
- ' curl -L -o /tmp/solana.tar.bz2 https://github.com/anza-xyz/agave/releases/download/v3.0.14/solana-release-aarch64-apple-darwin.tar.bz2\n' +
254
- ' tar jxf /tmp/solana.tar.bz2 -C /tmp');
255
- }
256
- // eslint-disable-next-line no-console
257
- console.log('Using Docker for solana-test-validator');
258
- return startDockerValidator(config);
259
- }
260
- export async function waitForRpcReady(rpcUrl, maxAttempts = 30, delayMs = 1000) {
252
+ async function waitForRpcReady(rpcUrl, maxAttempts = 30, delayMs = 1000) {
261
253
  let lastError;
262
254
  for (let i = 0; i < maxAttempts; i++) {
263
255
  try {
@@ -284,6 +276,42 @@ export async function waitForRpcReady(rpcUrl, maxAttempts = 30, delayMs = 1000)
284
276
  }
285
277
  throw new Error(`RPC endpoint not ready after ${maxAttempts} attempts. Last error: ${lastError}`);
286
278
  }
287
- export const APPLE_SILICON_SKIP_MESSAGE = 'Skipping: No local solana-test-validator found and Docker unavailable. ' +
288
- 'Install from https://docs.anza.xyz/cli/install';
279
+ /**
280
+ * Starts a Solana test validator and waits for the RPC to be ready.
281
+ * Uses a local binary if available, otherwise falls back to Docker (Linux only).
282
+ *
283
+ * @param chainMetadata - Test chain metadata (defaults to TEST_SVM_CHAIN_METADATA)
284
+ * @param preloadedPrograms - Programs to preload into the validator
285
+ */
286
+ export async function runSolanaNode(chainMetadata = TEST_SVM_CHAIN_METADATA, preloadedPrograms = []) {
287
+ const config = {
288
+ rpcPort: chainMetadata.rpcPort,
289
+ preloadedPrograms,
290
+ };
291
+ let validator;
292
+ const localBinary = findSolanaTestValidator();
293
+ if (localBinary) {
294
+ // eslint-disable-next-line no-console
295
+ console.log(`Using local solana-test-validator: ${localBinary}`);
296
+ validator = await startLocalValidator({
297
+ ...config,
298
+ binaryPath: localBinary,
299
+ });
300
+ }
301
+ else if (isAppleSilicon()) {
302
+ throw new Error('No local solana-test-validator found on Apple Silicon.\n' +
303
+ 'Docker is not supported: Solana requires AVX instructions that Rosetta 2 cannot emulate.\n' +
304
+ 'Install natively from: https://docs.anza.xyz/cli/install\n' +
305
+ 'Or download directly:\n' +
306
+ ` curl -L -o /tmp/solana.tar.bz2 https://github.com/anza-xyz/agave/releases/download/${AGAVE_VERSION}/solana-release-aarch64-apple-darwin.tar.bz2\n` +
307
+ ' tar jxf /tmp/solana.tar.bz2 -C /tmp');
308
+ }
309
+ else {
310
+ // eslint-disable-next-line no-console
311
+ console.log('Using Docker for solana-test-validator');
312
+ validator = await startDockerValidator(config);
313
+ }
314
+ await waitForRpcReady(validator.rpcUrl);
315
+ return validator;
316
+ }
289
317
  //# sourceMappingURL=solana-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"solana-container.js","sourceRoot":"","sources":["../../src/testing/solana-container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana-container.js","sourceRoot":"","sources":["../../src/testing/solana-container.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { address } from '@solana/kit';
2
2
  import { expect } from 'chai';
3
- import { after, before, describe, it } from 'mocha';
3
+ import { before, describe, it } from 'mocha';
4
4
  import { HYPERLANE_SVM_PROGRAM_BYTES } from '../hyperlane/program-bytes.js';
5
5
  import { ArtifactState } from '@hyperlane-xyz/provider-sdk/artifact';
6
6
  import { TokenType } from '@hyperlane-xyz/provider-sdk/warp';
@@ -9,19 +9,13 @@ import { DEFAULT_IGP_SALT, SvmIgpHookWriter, } from '../hook/igp-hook.js';
9
9
  import { SvmTestIsmWriter } from '../ism/test-ism.js';
10
10
  import { deriveAtaPayerPda } from '../pda.js';
11
11
  import { createRpc } from '../rpc.js';
12
- import { TEST_ATA_PAYER_FUNDING_AMOUNT, TEST_PROGRAM_IDS, airdropSol, createSplMint, getPreloadedPrograms, } from '../testing/setup.js';
13
- import { startSolanaTestValidator, waitForRpcReady, } from '../testing/solana-container.js';
12
+ import { TEST_SVM_CHAIN_METADATA } from '../testing/constants.js';
13
+ import { TEST_ATA_PAYER_FUNDING_AMOUNT, TEST_PROGRAM_IDS, airdropSol, createSplMint, } from '../testing/setup.js';
14
14
  import { SvmCollateralTokenWriter } from '../warp/collateral-token.js';
15
15
  import { defineWarpTokenTests } from './warp-token-suite.js';
16
16
  const TEST_PRIVATE_KEY = '0x0000000000000000000000000000000000000000000000000000000000000001';
17
- const PRELOADED_PROGRAMS = [
18
- 'mailbox',
19
- 'igp',
20
- 'testIsm',
21
- ];
22
17
  describe('SVM Collateral Warp Token E2E Tests', function () {
23
18
  this.timeout(300_000);
24
- let solana;
25
19
  let rpc;
26
20
  let signer;
27
21
  let mailboxAddress;
@@ -30,11 +24,8 @@ describe('SVM Collateral Warp Token E2E Tests', function () {
30
24
  let testIsmAddress;
31
25
  let writer;
32
26
  before(async () => {
33
- const preloadedPrograms = getPreloadedPrograms(PRELOADED_PROGRAMS);
34
- solana = await startSolanaTestValidator({ preloadedPrograms });
35
- await waitForRpcReady(solana.rpcUrl);
36
- rpc = createRpc(solana.rpcUrl);
37
- signer = await SvmSigner.connectWithSigner([solana.rpcUrl], TEST_PRIVATE_KEY);
27
+ rpc = createRpc(TEST_SVM_CHAIN_METADATA.rpcUrl);
28
+ signer = await SvmSigner.connectWithSigner([TEST_SVM_CHAIN_METADATA.rpcUrl], TEST_PRIVATE_KEY);
38
29
  await airdropSol(rpc, address(signer.getSignerAddress()), 50000000000n);
39
30
  mailboxAddress = TEST_PROGRAM_IDS.mailbox;
40
31
  igpProgramId = TEST_PROGRAM_IDS.igp;
@@ -71,11 +62,6 @@ describe('SVM Collateral Warp Token E2E Tests', function () {
71
62
  ataPayerFundingAmount: TEST_ATA_PAYER_FUNDING_AMOUNT,
72
63
  }, rpc, signer);
73
64
  });
74
- after(async () => {
75
- if (solana) {
76
- await solana.stop();
77
- }
78
- });
79
65
  describe('Collateral Token', () => {
80
66
  let deployedProgramId;
81
67
  defineWarpTokenTests(() => ({
@@ -93,7 +79,7 @@ describe('SVM Collateral Warp Token E2E Tests', function () {
93
79
  testIsmAddress,
94
80
  signer,
95
81
  rpc,
96
- rpcUrl: solana.rpcUrl,
82
+ rpcUrl: TEST_SVM_CHAIN_METADATA.rpcUrl,
97
83
  }), (id) => {
98
84
  deployedProgramId = id;
99
85
  });