@hyperlane-xyz/deploy-sdk 0.2.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 (69) hide show
  1. package/dist/AltVMCoreModule.d.ts +94 -0
  2. package/dist/AltVMCoreModule.d.ts.map +1 -0
  3. package/dist/AltVMCoreModule.js +328 -0
  4. package/dist/AltVMCoreModule.js.map +1 -0
  5. package/dist/AltVMCoreReader.d.ts +17 -0
  6. package/dist/AltVMCoreReader.d.ts.map +1 -0
  7. package/dist/AltVMCoreReader.js +31 -0
  8. package/dist/AltVMCoreReader.js.map +1 -0
  9. package/dist/AltVMHookModule.d.ts +41 -0
  10. package/dist/AltVMHookModule.d.ts.map +1 -0
  11. package/dist/AltVMHookModule.js +176 -0
  12. package/dist/AltVMHookModule.js.map +1 -0
  13. package/dist/AltVMHookReader.d.ts +17 -0
  14. package/dist/AltVMHookReader.d.ts.map +1 -0
  15. package/dist/AltVMHookReader.js +76 -0
  16. package/dist/AltVMHookReader.js.map +1 -0
  17. package/dist/AltVMIsmModule.d.ts +41 -0
  18. package/dist/AltVMIsmModule.d.ts.map +1 -0
  19. package/dist/AltVMIsmModule.js +255 -0
  20. package/dist/AltVMIsmModule.js.map +1 -0
  21. package/dist/AltVMIsmReader.d.ts +19 -0
  22. package/dist/AltVMIsmReader.d.ts.map +1 -0
  23. package/dist/AltVMIsmReader.js +101 -0
  24. package/dist/AltVMIsmReader.js.map +1 -0
  25. package/dist/AltVMWarpDeployer.d.ts +14 -0
  26. package/dist/AltVMWarpDeployer.d.ts.map +1 -0
  27. package/dist/AltVMWarpDeployer.js +69 -0
  28. package/dist/AltVMWarpDeployer.js.map +1 -0
  29. package/dist/AltVMWarpModule.d.ts +96 -0
  30. package/dist/AltVMWarpModule.d.ts.map +1 -0
  31. package/dist/AltVMWarpModule.js +329 -0
  32. package/dist/AltVMWarpModule.js.map +1 -0
  33. package/dist/AltVMWarpModule.test.d.ts +2 -0
  34. package/dist/AltVMWarpModule.test.d.ts.map +1 -0
  35. package/dist/AltVMWarpModule.test.js +403 -0
  36. package/dist/AltVMWarpModule.test.js.map +1 -0
  37. package/dist/AltVMWarpRouteReader.d.ts +52 -0
  38. package/dist/AltVMWarpRouteReader.d.ts.map +1 -0
  39. package/dist/AltVMWarpRouteReader.js +145 -0
  40. package/dist/AltVMWarpRouteReader.js.map +1 -0
  41. package/dist/core-module.d.ts +5 -0
  42. package/dist/core-module.d.ts.map +1 -0
  43. package/dist/core-module.js +28 -0
  44. package/dist/core-module.js.map +1 -0
  45. package/dist/hook-module.d.ts +5 -0
  46. package/dist/hook-module.d.ts.map +1 -0
  47. package/dist/hook-module.js +35 -0
  48. package/dist/hook-module.js.map +1 -0
  49. package/dist/index.d.ts +16 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +16 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/ism-module.d.ts +5 -0
  54. package/dist/ism-module.d.ts.map +1 -0
  55. package/dist/ism-module.js +35 -0
  56. package/dist/ism-module.js.map +1 -0
  57. package/dist/protocol.d.ts +3 -0
  58. package/dist/protocol.d.ts.map +1 -0
  59. package/dist/protocol.js +23 -0
  60. package/dist/protocol.js.map +1 -0
  61. package/dist/utils/validation.d.ts +37 -0
  62. package/dist/utils/validation.d.ts.map +1 -0
  63. package/dist/utils/validation.js +66 -0
  64. package/dist/utils/validation.js.map +1 -0
  65. package/dist/warp-module.d.ts +5 -0
  66. package/dist/warp-module.d.ts.map +1 -0
  67. package/dist/warp-module.js +28 -0
  68. package/dist/warp-module.js.map +1 -0
  69. package/package.json +46 -0
@@ -0,0 +1,28 @@
1
+ import { AltVMCoreModule } from './AltVMCoreModule.js';
2
+ import { AltVMCoreReader } from './AltVMCoreReader.js';
3
+ class CoreModuleProvider {
4
+ chainLookup;
5
+ chainName;
6
+ constructor(chainLookup, chainName) {
7
+ this.chainLookup = chainLookup;
8
+ this.chainName = chainName;
9
+ }
10
+ async createModule(signer, config) {
11
+ return await AltVMCoreModule.create({
12
+ chainLookup: this.chainLookup,
13
+ chain: this.chainName,
14
+ signer,
15
+ config,
16
+ });
17
+ }
18
+ connectModule(signer, args) {
19
+ return new AltVMCoreModule(this.chainLookup, signer, args);
20
+ }
21
+ connectReader(provider) {
22
+ return new AltVMCoreReader(this.chainLookup, provider);
23
+ }
24
+ }
25
+ export function coreModuleProvider(chainLookup, chainName) {
26
+ return new CoreModuleProvider(chainLookup, chainName);
27
+ }
28
+ //# sourceMappingURL=core-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-module.js","sourceRoot":"","sources":["../src/core-module.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,kBAAkB;IAEZ;IACA;IAFV,YACU,WAAwB,EACxB,SAAiB;QADjB,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAQ;IACxB,CAAC;IAEJ,KAAK,CAAC,YAAY,CAChB,MAAuC,EACvC,MAAkB;QAElB,OAAO,MAAM,eAAe,CAAC,MAAM,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,MAAM;YACN,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CACX,MAAuC,EACvC,IAAmC;QAEnC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,QAAwB;QACpC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAChC,WAAwB,EACxB,SAAiB;IAEjB,OAAO,IAAI,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ChainLookup } from '@hyperlane-xyz/provider-sdk/chain';
2
+ import { HookModuleType } from '@hyperlane-xyz/provider-sdk/hook';
3
+ import { ModuleProvider } from '@hyperlane-xyz/provider-sdk/module';
4
+ export declare function hookModuleProvider(chainLookup: ChainLookup, chainName: string, mailboxAddress: string): ModuleProvider<HookModuleType>;
5
+ //# sourceMappingURL=hook-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-module.d.ts","sourceRoot":"","sources":["../src/hook-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAGL,cAAc,EACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAKL,cAAc,EAEf,MAAM,oCAAoC,CAAC;AA0C5C,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,cAAc,CAAC,CAEhC"}
@@ -0,0 +1,35 @@
1
+ import { AltVMHookModule } from './AltVMHookModule.js';
2
+ import { AltVMHookReader } from './AltVMHookReader.js';
3
+ class HookModuleProvider {
4
+ chainLookup;
5
+ chainName;
6
+ mailboxAddress;
7
+ constructor(chainLookup, chainName, mailboxAddress) {
8
+ this.chainLookup = chainLookup;
9
+ this.chainName = chainName;
10
+ this.mailboxAddress = mailboxAddress;
11
+ }
12
+ async createModule(signer, config) {
13
+ const addresses = {
14
+ deployedHook: '', // Will be populated by the module
15
+ mailbox: this.mailboxAddress,
16
+ };
17
+ return await AltVMHookModule.create({
18
+ chainLookup: this.chainLookup,
19
+ chain: this.chainName,
20
+ signer,
21
+ config,
22
+ addresses,
23
+ });
24
+ }
25
+ connectModule(signer, args) {
26
+ return new AltVMHookModule(this.chainLookup, args, signer);
27
+ }
28
+ connectReader(provider) {
29
+ return new AltVMHookReader(this.chainLookup.getChainMetadata, provider);
30
+ }
31
+ }
32
+ export function hookModuleProvider(chainLookup, chainName, mailboxAddress) {
33
+ return new HookModuleProvider(chainLookup, chainName, mailboxAddress);
34
+ }
35
+ //# sourceMappingURL=hook-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-module.js","sourceRoot":"","sources":["../src/hook-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,kBAAkB;IAEZ;IACA;IACA;IAHV,YACU,WAAwB,EACxB,SAAiB,EACjB,cAAsB;QAFtB,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAQ;QACjB,mBAAc,GAAd,cAAc,CAAQ;IAC7B,CAAC;IAEJ,KAAK,CAAC,YAAY,CAChB,MAAuC,EACvC,MAAkB;QAElB,MAAM,SAAS,GAAwB;YACrC,YAAY,EAAE,EAAE,EAAE,kCAAkC;YACpD,OAAO,EAAE,IAAI,CAAC,cAAc;SAC7B,CAAC;QAEF,OAAO,MAAM,eAAe,CAAC,MAAM,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,MAAM;YACN,MAAM;YACN,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CACX,MAAuC,EACvC,IAAmC;QAEnC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,QAAwB;QACpC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAC1E,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAChC,WAAwB,EACxB,SAAiB,EACjB,cAAsB;IAEtB,OAAO,IAAI,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AACxE,CAAC"}
@@ -0,0 +1,16 @@
1
+ export { AltVMCoreModule } from './AltVMCoreModule.js';
2
+ export { AltVMCoreReader } from './AltVMCoreReader.js';
3
+ export { AltVMHookModule } from './AltVMHookModule.js';
4
+ export { AltVMHookReader } from './AltVMHookReader.js';
5
+ export { AltVMIsmModule } from './AltVMIsmModule.js';
6
+ export { AltVMIsmReader } from './AltVMIsmReader.js';
7
+ export { AltVMWarpModule } from './AltVMWarpModule.js';
8
+ export { AltVMWarpRouteReader } from './AltVMWarpRouteReader.js';
9
+ export { AltVMDeployer } from './AltVMWarpDeployer.js';
10
+ export { coreModuleProvider } from './core-module.js';
11
+ export { hookModuleProvider } from './hook-module.js';
12
+ export { ismModuleProvider } from './ism-module.js';
13
+ export { warpModuleProvider } from './warp-module.js';
14
+ export { validateIsmConfig, validateIsmType, UnsupportedIsmTypeError, } from './utils/validation.js';
15
+ export { loadProtocolProviders } from './protocol.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ export { AltVMCoreModule } from './AltVMCoreModule.js';
2
+ export { AltVMCoreReader } from './AltVMCoreReader.js';
3
+ export { AltVMHookModule } from './AltVMHookModule.js';
4
+ export { AltVMHookReader } from './AltVMHookReader.js';
5
+ export { AltVMIsmModule } from './AltVMIsmModule.js';
6
+ export { AltVMIsmReader } from './AltVMIsmReader.js';
7
+ export { AltVMWarpModule } from './AltVMWarpModule.js';
8
+ export { AltVMWarpRouteReader } from './AltVMWarpRouteReader.js';
9
+ export { AltVMDeployer } from './AltVMWarpDeployer.js';
10
+ export { coreModuleProvider } from './core-module.js';
11
+ export { hookModuleProvider } from './hook-module.js';
12
+ export { ismModuleProvider } from './ism-module.js';
13
+ export { warpModuleProvider } from './warp-module.js';
14
+ export { validateIsmConfig, validateIsmType, UnsupportedIsmTypeError, } from './utils/validation.js';
15
+ export { loadProtocolProviders } from './protocol.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ChainLookup } from '@hyperlane-xyz/provider-sdk/chain';
2
+ import { IsmModuleType } from '@hyperlane-xyz/provider-sdk/ism';
3
+ import { ModuleProvider } from '@hyperlane-xyz/provider-sdk/module';
4
+ export declare function ismModuleProvider(chainLookup: ChainLookup, chainName: string, mailboxAddress: string): ModuleProvider<IsmModuleType>;
5
+ //# sourceMappingURL=ism-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism-module.d.ts","sourceRoot":"","sources":["../src/ism-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAGL,aAAa,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAKL,cAAc,EAEf,MAAM,oCAAoC,CAAC;AA0C5C,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,aAAa,CAAC,CAE/B"}
@@ -0,0 +1,35 @@
1
+ import { AltVMIsmModule } from './AltVMIsmModule.js';
2
+ import { AltVMIsmReader } from './AltVMIsmReader.js';
3
+ class IsmModuleProvider {
4
+ chainLookup;
5
+ chainName;
6
+ mailboxAddress;
7
+ constructor(chainLookup, chainName, mailboxAddress) {
8
+ this.chainLookup = chainLookup;
9
+ this.chainName = chainName;
10
+ this.mailboxAddress = mailboxAddress;
11
+ }
12
+ async createModule(signer, config) {
13
+ const addresses = {
14
+ deployedIsm: '', // Will be populated by the module
15
+ mailbox: this.mailboxAddress,
16
+ };
17
+ return await AltVMIsmModule.create({
18
+ chainLookup: this.chainLookup,
19
+ chain: this.chainName,
20
+ signer,
21
+ config,
22
+ addresses,
23
+ });
24
+ }
25
+ connectModule(signer, args) {
26
+ return new AltVMIsmModule(this.chainLookup, args, signer);
27
+ }
28
+ connectReader(provider) {
29
+ return new AltVMIsmReader(this.chainLookup.getChainName, provider);
30
+ }
31
+ }
32
+ export function ismModuleProvider(chainLookup, chainName, mailboxAddress) {
33
+ return new IsmModuleProvider(chainLookup, chainName, mailboxAddress);
34
+ }
35
+ //# sourceMappingURL=ism-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism-module.js","sourceRoot":"","sources":["../src/ism-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,iBAAiB;IAEX;IACA;IACA;IAHV,YACU,WAAwB,EACxB,SAAiB,EACjB,cAAsB;QAFtB,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAQ;QACjB,mBAAc,GAAd,cAAc,CAAQ;IAC7B,CAAC;IAEJ,KAAK,CAAC,YAAY,CAChB,MAAuC,EACvC,MAAiB;QAEjB,MAAM,SAAS,GAAuB;YACpC,WAAW,EAAE,EAAE,EAAE,kCAAkC;YACnD,OAAO,EAAE,IAAI,CAAC,cAAc;SAC7B,CAAC;QAEF,OAAO,MAAM,cAAc,CAAC,MAAM,CAAC;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,MAAM;YACN,MAAM;YACN,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CACX,MAAuC,EACvC,IAAkC;QAElC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa,CAAC,QAAwB;QACpC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAC/B,WAAwB,EACxB,SAAiB,EACjB,cAAsB;IAEtB,OAAO,IAAI,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ProtocolType } from '@hyperlane-xyz/provider-sdk';
2
+ export declare function loadProtocolProviders(neededProtocols: Set<ProtocolType>): Promise<void>;
3
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,6BAA6B,CAAC;AAGrC,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,iBAwBnC"}
@@ -0,0 +1,23 @@
1
+ import { ProtocolType, hasProtocol, registerProtocol, } from '@hyperlane-xyz/provider-sdk';
2
+ import { rootLogger } from '@hyperlane-xyz/utils';
3
+ export async function loadProtocolProviders(neededProtocols) {
4
+ for (const protocol of neededProtocols) {
5
+ if (hasProtocol(protocol)) {
6
+ rootLogger.debug(`${protocol} already loaded`);
7
+ continue;
8
+ }
9
+ switch (protocol) {
10
+ case ProtocolType.CosmosNative: {
11
+ const { CosmosNativeProtocolProvider } = await import('@hyperlane-xyz/cosmos-sdk');
12
+ registerProtocol(protocol, () => new CosmosNativeProtocolProvider());
13
+ break;
14
+ }
15
+ case ProtocolType.Radix: {
16
+ const { RadixProtocolProvider } = await import('@hyperlane-xyz/radix-sdk');
17
+ registerProtocol(protocol, () => new RadixProtocolProvider());
18
+ break;
19
+ }
20
+ }
21
+ }
22
+ }
23
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,eAAkC;IAElC,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,KAAK,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC/B,MAAM,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CACnD,2BAA2B,CAC5B,CAAC;gBACF,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;gBACrE,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAC5C,0BAA0B,CAC3B,CAAC;gBACF,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;gBAC9D,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Validation utilities for Alt-VM ISM configurations.
3
+ *
4
+ * The provider-sdk has a limited subset of ISM types compared to the full SDK.
5
+ * These utilities validate ISM configs and provide clear error messages for unsupported types.
6
+ */
7
+ import { IsmConfig } from '@hyperlane-xyz/provider-sdk/ism';
8
+ /**
9
+ * Validates that an ISM type is supported by provider-sdk.
10
+ *
11
+ * @param ismType - The ISM type string to validate
12
+ * @param chain - Chain name for error messages
13
+ * @param context - Context string for error messages (e.g., "warp route", "core")
14
+ * @throws UnsupportedIsmTypeError if ISM type is not supported
15
+ */
16
+ export declare function validateIsmType(ismType: string, chain: string, context?: string): void;
17
+ /**
18
+ * Validates that an ISM configuration is supported by provider-sdk.
19
+ *
20
+ * @param config - ISM configuration (can be string address or config object)
21
+ * @param chain - Chain name for error messages
22
+ * @param context - Context string for error messages (e.g., "warp route", "core")
23
+ * @throws UnsupportedIsmTypeError if ISM type is not supported
24
+ */
25
+ export declare function validateIsmConfig(config: IsmConfig | string, chain: string, context?: string): void;
26
+ /**
27
+ * Custom error class for unsupported ISM types.
28
+ * Provides concise error messages.
29
+ */
30
+ export declare class UnsupportedIsmTypeError extends Error {
31
+ readonly ismType: string;
32
+ readonly chain: string;
33
+ readonly context: string;
34
+ readonly supportedTypes: string;
35
+ constructor(ismType: string, chain: string, context: string, supportedTypes: string);
36
+ }
37
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAW,MAAM,iCAAiC,CAAC;AAarE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,MAAwB,GAChC,IAAI,CAKN;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,GAAG,MAAM,EAC1B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,MAAwB,GAChC,IAAI,CAmBN;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;aAE9B,OAAO,EAAE,MAAM;aACf,KAAK,EAAE,MAAM;aACb,OAAO,EAAE,MAAM;aACf,cAAc,EAAE,MAAM;gBAHtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM;CAQzC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * ISM types supported by provider-sdk for Alt-VM chains.
3
+ * These correspond to the types defined in provider-sdk/src/ism.ts
4
+ */
5
+ const SUPPORTED_ISM_TYPES = new Set([
6
+ 'domainRoutingIsm',
7
+ 'merkleRootMultisigIsm',
8
+ 'messageIdMultisigIsm',
9
+ 'testIsm',
10
+ ]);
11
+ /**
12
+ * Validates that an ISM type is supported by provider-sdk.
13
+ *
14
+ * @param ismType - The ISM type string to validate
15
+ * @param chain - Chain name for error messages
16
+ * @param context - Context string for error messages (e.g., "warp route", "core")
17
+ * @throws UnsupportedIsmTypeError if ISM type is not supported
18
+ */
19
+ export function validateIsmType(ismType, chain, context = 'configuration') {
20
+ if (!SUPPORTED_ISM_TYPES.has(ismType)) {
21
+ const supportedTypes = Array.from(SUPPORTED_ISM_TYPES).join(', ');
22
+ throw new UnsupportedIsmTypeError(ismType, chain, context, supportedTypes);
23
+ }
24
+ }
25
+ /**
26
+ * Validates that an ISM configuration is supported by provider-sdk.
27
+ *
28
+ * @param config - ISM configuration (can be string address or config object)
29
+ * @param chain - Chain name for error messages
30
+ * @param context - Context string for error messages (e.g., "warp route", "core")
31
+ * @throws UnsupportedIsmTypeError if ISM type is not supported
32
+ */
33
+ export function validateIsmConfig(config, chain, context = 'configuration') {
34
+ // If it's a string address, it's valid (pre-deployed ISM)
35
+ if (typeof config === 'string') {
36
+ return;
37
+ }
38
+ // Validate the ISM type
39
+ validateIsmType(config.type, chain, context);
40
+ // Recursively validate nested ISMs in routing configs
41
+ if (config.type === 'domainRoutingIsm') {
42
+ for (const [domain, domainConfig] of Object.entries(config.domains)) {
43
+ validateIsmConfig(domainConfig, chain, `${context} (domain routing for ${domain})`);
44
+ }
45
+ }
46
+ }
47
+ /**
48
+ * Custom error class for unsupported ISM types.
49
+ * Provides concise error messages.
50
+ */
51
+ export class UnsupportedIsmTypeError extends Error {
52
+ ismType;
53
+ chain;
54
+ context;
55
+ supportedTypes;
56
+ constructor(ismType, chain, context, supportedTypes) {
57
+ super(`Unsupported ISM type '${ismType}' for Alt-VM chain '${chain}' in ${context}. ` +
58
+ `Supported types: ${supportedTypes}`);
59
+ this.ismType = ismType;
60
+ this.chain = chain;
61
+ this.context = context;
62
+ this.supportedTypes = supportedTypes;
63
+ this.name = 'UnsupportedIsmTypeError';
64
+ }
65
+ }
66
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,MAAM,mBAAmB,GAAiB,IAAI,GAAG,CAAC;IAChD,kBAAkB;IAClB,uBAAuB;IACvB,sBAAsB;IACtB,SAAS;CACV,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,KAAa,EACb,UAAkB,eAAe;IAEjC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAkB,CAAC,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,IAAI,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA0B,EAC1B,KAAa,EACb,UAAkB,eAAe;IAEjC,0DAA0D;IAC1D,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAE7C,sDAAsD;IACtD,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACpE,iBAAiB,CACf,YAAY,EACZ,KAAK,EACL,GAAG,OAAO,wBAAwB,MAAM,GAAG,CAC5C,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAE9B;IACA;IACA;IACA;IAJlB,YACkB,OAAe,EACf,KAAa,EACb,OAAe,EACf,cAAsB;QAEtC,KAAK,CACH,yBAAyB,OAAO,uBAAuB,KAAK,QAAQ,OAAO,IAAI;YAC7E,oBAAoB,cAAc,EAAE,CACvC,CAAC;QARc,YAAO,GAAP,OAAO,CAAQ;QACf,UAAK,GAAL,KAAK,CAAQ;QACb,YAAO,GAAP,OAAO,CAAQ;QACf,mBAAc,GAAd,cAAc,CAAQ;QAMtC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import { ChainLookup } from '@hyperlane-xyz/provider-sdk/chain';
2
+ import { ModuleProvider } from '@hyperlane-xyz/provider-sdk/module';
3
+ import { TokenRouterModuleType } from '@hyperlane-xyz/provider-sdk/warp';
4
+ export declare function warpModuleProvider(chainLookup: ChainLookup, chainName: string): ModuleProvider<TokenRouterModuleType>;
5
+ //# sourceMappingURL=warp-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-module.d.ts","sourceRoot":"","sources":["../src/warp-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAKL,cAAc,EAEf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,qBAAqB,EAEtB,MAAM,kCAAkC,CAAC;AAmC1C,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GAChB,cAAc,CAAC,qBAAqB,CAAC,CAEvC"}
@@ -0,0 +1,28 @@
1
+ import { AltVMWarpModule } from './AltVMWarpModule.js';
2
+ import { AltVMWarpRouteReader } from './AltVMWarpRouteReader.js';
3
+ class WarpModuleProvider {
4
+ chainLookup;
5
+ chainName;
6
+ constructor(chainLookup, chainName) {
7
+ this.chainLookup = chainLookup;
8
+ this.chainName = chainName;
9
+ }
10
+ async createModule(signer, config) {
11
+ return await AltVMWarpModule.create({
12
+ chainLookup: this.chainLookup,
13
+ chain: this.chainName,
14
+ signer,
15
+ config,
16
+ });
17
+ }
18
+ connectModule(signer, args) {
19
+ return new AltVMWarpModule(this.chainLookup, signer, args);
20
+ }
21
+ connectReader(provider) {
22
+ return new AltVMWarpRouteReader(this.chainLookup, provider);
23
+ }
24
+ }
25
+ export function warpModuleProvider(chainLookup, chainName) {
26
+ return new WarpModuleProvider(chainLookup, chainName);
27
+ }
28
+ //# sourceMappingURL=warp-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-module.js","sourceRoot":"","sources":["../src/warp-module.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,kBAAkB;IAEZ;IACA;IAFV,YACU,WAAwB,EACxB,SAAiB;QADjB,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAQ;IACxB,CAAC;IAEJ,KAAK,CAAC,YAAY,CAChB,MAAuC,EACvC,MAAkB;QAElB,OAAO,MAAM,eAAe,CAAC,MAAM,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,MAAM;YACN,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CACX,MAAuC,EACvC,IAA0C;QAE1C,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,QAAwB;QACpC,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAChC,WAAwB,EACxB,SAAiB;IAEjB,OAAO,IAAI,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACxD,CAAC"}
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@hyperlane-xyz/deploy-sdk",
3
+ "version": "0.2.0",
4
+ "description": "Deployer SDK for the Hyperlane Protocol",
5
+ "repository": "https://github.com/hyperlane-xyz/hyperlane-monorepo",
6
+ "license": "Apache-2.0",
7
+ "type": "module",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ ".": "./dist/index.js"
13
+ },
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "check": "tsc --noEmit",
17
+ "dev": "tsc --watch",
18
+ "lint": "eslint",
19
+ "clean": "rm -rf ./dist",
20
+ "prettier": "prettier --write .",
21
+ "test": "mocha --config .mocharc.json './src/**/*.test.ts' --exit"
22
+ },
23
+ "dependencies": {
24
+ "@hyperlane-xyz/cosmos-sdk": "19.10.0",
25
+ "@hyperlane-xyz/provider-sdk": "0.2.0",
26
+ "@hyperlane-xyz/radix-sdk": "19.10.0",
27
+ "@hyperlane-xyz/utils": "19.10.0",
28
+ "zod": "^3.21.2"
29
+ },
30
+ "devDependencies": {
31
+ "@hyperlane-xyz/eslint-config": "workspace:^",
32
+ "@hyperlane-xyz/tsconfig": "workspace:^",
33
+ "@types/chai-as-promised": "^8",
34
+ "@types/mocha": "^10.0.1",
35
+ "@types/node": "^18.14.5",
36
+ "@types/sinon": "^17.0.1",
37
+ "@types/sinon-chai": "^3.2.12",
38
+ "chai": "^4.5.0",
39
+ "chai-as-promised": "^8.0.1",
40
+ "eslint": "^9.31.0",
41
+ "mocha": "^11.5.0",
42
+ "sinon": "^13.0.2",
43
+ "tsx": "^4.19.1",
44
+ "typescript": "5.3.3"
45
+ }
46
+ }