@hyperlane-xyz/sealevel-sdk 27.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.
- package/LICENSE.md +193 -0
- package/dist/accounts/mint.d.ts +43 -0
- package/dist/accounts/mint.d.ts.map +1 -0
- package/dist/accounts/mint.js +159 -0
- package/dist/accounts/mint.js.map +1 -0
- package/dist/accounts/multisig-ism-message-id.d.ts +14 -0
- package/dist/accounts/multisig-ism-message-id.d.ts.map +1 -0
- package/dist/accounts/multisig-ism-message-id.js +32 -0
- package/dist/accounts/multisig-ism-message-id.js.map +1 -0
- package/dist/accounts/test-ism.d.ts +5 -0
- package/dist/accounts/test-ism.d.ts.map +1 -0
- package/dist/accounts/test-ism.js +8 -0
- package/dist/accounts/test-ism.js.map +1 -0
- package/dist/accounts/token.d.ts +60 -0
- package/dist/accounts/token.d.ts.map +1 -0
- package/dist/accounts/token.js +127 -0
- package/dist/accounts/token.js.map +1 -0
- package/dist/clients/protocol.d.ts +21 -0
- package/dist/clients/protocol.d.ts.map +1 -0
- package/dist/clients/protocol.js +51 -0
- package/dist/clients/protocol.js.map +1 -0
- package/dist/clients/provider.d.ts +66 -0
- package/dist/clients/provider.d.ts.map +1 -0
- package/dist/clients/provider.js +237 -0
- package/dist/clients/provider.js.map +1 -0
- package/dist/clients/signer.d.ts +61 -0
- package/dist/clients/signer.d.ts.map +1 -0
- package/dist/clients/signer.js +314 -0
- package/dist/clients/signer.js.map +1 -0
- package/dist/codecs/account-data.d.ts +8 -0
- package/dist/codecs/account-data.d.ts.map +1 -0
- package/dist/codecs/account-data.js +20 -0
- package/dist/codecs/account-data.js.map +1 -0
- package/dist/codecs/binary.d.ts +34 -0
- package/dist/codecs/binary.d.ts.map +1 -0
- package/dist/codecs/binary.js +165 -0
- package/dist/codecs/binary.js.map +1 -0
- package/dist/codecs/shared.d.ts +81 -0
- package/dist/codecs/shared.d.ts.map +1 -0
- package/dist/codecs/shared.js +241 -0
- package/dist/codecs/shared.js.map +1 -0
- package/dist/constants.d.ts +13 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +21 -0
- package/dist/constants.js.map +1 -0
- package/dist/deploy/program-deployer.d.ts +51 -0
- package/dist/deploy/program-deployer.d.ts.map +1 -0
- package/dist/deploy/program-deployer.js +176 -0
- package/dist/deploy/program-deployer.js.map +1 -0
- package/dist/deploy/resolve-program.d.ts +9 -0
- package/dist/deploy/resolve-program.d.ts.map +1 -0
- package/dist/deploy/resolve-program.js +24 -0
- package/dist/deploy/resolve-program.js.map +1 -0
- package/dist/generated/core-addresses.d.ts +14 -0
- package/dist/generated/core-addresses.d.ts.map +1 -0
- package/dist/generated/core-addresses.js +55 -0
- package/dist/generated/core-addresses.js.map +1 -0
- package/dist/hook/hook-artifact-manager.d.ts +17 -0
- package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
- package/dist/hook/hook-artifact-manager.js +58 -0
- package/dist/hook/hook-artifact-manager.js.map +1 -0
- package/dist/hook/hook-query.d.ts +25 -0
- package/dist/hook/hook-query.d.ts.map +1 -0
- package/dist/hook/hook-query.js +46 -0
- package/dist/hook/hook-query.js.map +1 -0
- package/dist/hook/igp-hook.d.ts +28 -0
- package/dist/hook/igp-hook.d.ts.map +1 -0
- package/dist/hook/igp-hook.js +242 -0
- package/dist/hook/igp-hook.js.map +1 -0
- package/dist/hook/merkle-tree-hook.d.ts +23 -0
- package/dist/hook/merkle-tree-hook.d.ts.map +1 -0
- package/dist/hook/merkle-tree-hook.js +46 -0
- package/dist/hook/merkle-tree-hook.js.map +1 -0
- package/dist/hyperlane/program-bytes.d.ts +20 -0
- package/dist/hyperlane/program-bytes.d.ts.map +1 -0
- package/dist/hyperlane/program-bytes.js +80534 -0
- package/dist/hyperlane/program-bytes.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions/igp.d.ts +66 -0
- package/dist/instructions/igp.d.ts.map +1 -0
- package/dist/instructions/igp.js +168 -0
- package/dist/instructions/igp.js.map +1 -0
- package/dist/instructions/interfaces.d.ts +52 -0
- package/dist/instructions/interfaces.d.ts.map +1 -0
- package/dist/instructions/interfaces.js +126 -0
- package/dist/instructions/interfaces.js.map +1 -0
- package/dist/instructions/loader.d.ts +11 -0
- package/dist/instructions/loader.d.ts.map +1 -0
- package/dist/instructions/loader.js +24 -0
- package/dist/instructions/loader.js.map +1 -0
- package/dist/instructions/multisig-ism-message-id.d.ts +32 -0
- package/dist/instructions/multisig-ism-message-id.d.ts.map +1 -0
- package/dist/instructions/multisig-ism-message-id.js +105 -0
- package/dist/instructions/multisig-ism-message-id.js.map +1 -0
- package/dist/instructions/test-ism.d.ts +16 -0
- package/dist/instructions/test-ism.d.ts.map +1 -0
- package/dist/instructions/test-ism.js +47 -0
- package/dist/instructions/test-ism.js.map +1 -0
- package/dist/instructions/token.d.ts +62 -0
- package/dist/instructions/token.d.ts.map +1 -0
- package/dist/instructions/token.js +257 -0
- package/dist/instructions/token.js.map +1 -0
- package/dist/instructions/utils.d.ts +19 -0
- package/dist/instructions/utils.d.ts.map +1 -0
- package/dist/instructions/utils.js +36 -0
- package/dist/instructions/utils.js.map +1 -0
- package/dist/ism/ism-artifact-manager.d.ts +14 -0
- package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
- package/dist/ism/ism-artifact-manager.js +49 -0
- package/dist/ism/ism-artifact-manager.js.map +1 -0
- package/dist/ism/ism-query.d.ts +22 -0
- package/dist/ism/ism-query.d.ts.map +1 -0
- package/dist/ism/ism-query.js +53 -0
- package/dist/ism/ism-query.js.map +1 -0
- package/dist/ism/multisig-ism.d.ts +33 -0
- package/dist/ism/multisig-ism.d.ts.map +1 -0
- package/dist/ism/multisig-ism.js +113 -0
- package/dist/ism/multisig-ism.js.map +1 -0
- package/dist/ism/test-ism.d.ts +20 -0
- package/dist/ism/test-ism.d.ts.map +1 -0
- package/dist/ism/test-ism.js +57 -0
- package/dist/ism/test-ism.js.map +1 -0
- package/dist/pda.d.ts +17 -0
- package/dist/pda.d.ts.map +1 -0
- package/dist/pda.js +118 -0
- package/dist/pda.js.map +1 -0
- package/dist/rpc.d.ts +9 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +21 -0
- package/dist/rpc.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +3 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/setup.d.ts +33 -0
- package/dist/testing/setup.d.ts.map +1 -0
- package/dist/testing/setup.js +120 -0
- package/dist/testing/setup.js.map +1 -0
- package/dist/testing/solana-container.d.ts +32 -0
- package/dist/testing/solana-container.d.ts.map +1 -0
- package/dist/testing/solana-container.js +289 -0
- package/dist/testing/solana-container.js.map +1 -0
- package/dist/tests/collateral-token.e2e-test.d.ts +2 -0
- package/dist/tests/collateral-token.e2e-test.d.ts.map +1 -0
- package/dist/tests/collateral-token.e2e-test.js +112 -0
- package/dist/tests/collateral-token.e2e-test.js.map +1 -0
- package/dist/tests/deploy.e2e-test.d.ts +2 -0
- package/dist/tests/deploy.e2e-test.d.ts.map +1 -0
- package/dist/tests/deploy.e2e-test.js +76 -0
- package/dist/tests/deploy.e2e-test.js.map +1 -0
- package/dist/tests/hook.e2e-test.d.ts +2 -0
- package/dist/tests/hook.e2e-test.d.ts.map +1 -0
- package/dist/tests/hook.e2e-test.js +176 -0
- package/dist/tests/hook.e2e-test.js.map +1 -0
- package/dist/tests/ism.e2e-test.d.ts +2 -0
- package/dist/tests/ism.e2e-test.d.ts.map +1 -0
- package/dist/tests/ism.e2e-test.js +167 -0
- package/dist/tests/ism.e2e-test.js.map +1 -0
- package/dist/tests/native-token.e2e-test.d.ts +2 -0
- package/dist/tests/native-token.e2e-test.d.ts.map +1 -0
- package/dist/tests/native-token.e2e-test.js +93 -0
- package/dist/tests/native-token.e2e-test.js.map +1 -0
- package/dist/tests/provider.e2e-test.d.ts +2 -0
- package/dist/tests/provider.e2e-test.d.ts.map +1 -0
- package/dist/tests/provider.e2e-test.js +87 -0
- package/dist/tests/provider.e2e-test.js.map +1 -0
- package/dist/tests/read-token.e2e-test.d.ts +2 -0
- package/dist/tests/read-token.e2e-test.d.ts.map +1 -0
- package/dist/tests/read-token.e2e-test.js +79 -0
- package/dist/tests/read-token.e2e-test.js.map +1 -0
- package/dist/tests/scale.unit-test.d.ts +2 -0
- package/dist/tests/scale.unit-test.d.ts.map +1 -0
- package/dist/tests/scale.unit-test.js +65 -0
- package/dist/tests/scale.unit-test.js.map +1 -0
- package/dist/tests/synthetic-token.e2e-test.d.ts +2 -0
- package/dist/tests/synthetic-token.e2e-test.d.ts.map +1 -0
- package/dist/tests/synthetic-token.e2e-test.js +115 -0
- package/dist/tests/synthetic-token.e2e-test.js.map +1 -0
- package/dist/tests/warp-token-suite.d.ts +26 -0
- package/dist/tests/warp-token-suite.d.ts.map +1 -0
- package/dist/tests/warp-token-suite.js +208 -0
- package/dist/tests/warp-token-suite.js.map +1 -0
- package/dist/tx.d.ts +23 -0
- package/dist/tx.d.ts.map +1 -0
- package/dist/tx.js +43 -0
- package/dist/tx.js.map +1 -0
- package/dist/types.d.ts +50 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/warp/collateral-token.d.ts +21 -0
- package/dist/warp/collateral-token.d.ts.map +1 -0
- package/dist/warp/collateral-token.js +129 -0
- package/dist/warp/collateral-token.js.map +1 -0
- package/dist/warp/native-token.d.ts +21 -0
- package/dist/warp/native-token.d.ts.map +1 -0
- package/dist/warp/native-token.js +99 -0
- package/dist/warp/native-token.js.map +1 -0
- package/dist/warp/synthetic-token.d.ts +21 -0
- package/dist/warp/synthetic-token.d.ts.map +1 -0
- package/dist/warp/synthetic-token.js +180 -0
- package/dist/warp/synthetic-token.js.map +1 -0
- package/dist/warp/types.d.ts +16 -0
- package/dist/warp/types.d.ts.map +1 -0
- package/dist/warp/types.js +2 -0
- package/dist/warp/types.js.map +1 -0
- package/dist/warp/warp-artifact-manager.d.ts +14 -0
- package/dist/warp/warp-artifact-manager.d.ts.map +1 -0
- package/dist/warp/warp-artifact-manager.js +52 -0
- package/dist/warp/warp-artifact-manager.js.map +1 -0
- package/dist/warp/warp-query.d.ts +30 -0
- package/dist/warp/warp-query.d.ts.map +1 -0
- package/dist/warp/warp-query.js +66 -0
- package/dist/warp/warp-query.js.map +1 -0
- package/dist/warp/warp-tx.d.ts +64 -0
- package/dist/warp/warp-tx.d.ts.map +1 -0
- package/dist/warp/warp-tx.js +291 -0
- package/dist/warp/warp-tx.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warp-token-suite.js","sourceRoot":"","sources":["../../src/tests/warp-token-suite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAOrE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAoBjD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAiC,EACjC,mBAAyC;IAEzC,IAAI,iBAAyB,CAAC;IAC9B,IAAI,uBAA+B,CAAC;IAEpC,KAAK,UAAU,gBAAgB,CAC7B,GAA6D;QAE7D,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QAChC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,GAAG,CAAC;QACtB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE7D,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9C,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAEvC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAE7C,oCAAoC;QACpC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAChE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;QAC1E,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,UAAU,CAAC;gBACjB,IAAI,EAAE;oBACJ,aAAa,EAAE,aAAa,CAAC,SAAS;oBACtC,QAAQ,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;iBACpC;gBACD,wBAAwB,EAAE;oBACxB,aAAa,EAAE,aAAa,CAAC,SAAS;oBACtC,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;iBACtC;aACF,CAAC;SACH,CAAC,CAAC;QACH,uBAAuB,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAEpD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CACvE,cAAc,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAErC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACpC,GAAG,OAAO;YACV,MAAM,EAAE,UAAU,CAAC;gBACjB,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,wBAAwB;aAClE,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAEzD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACpC,GAAG,OAAO;YACV,MAAM,EAAE,UAAU,EAAE;SACrB,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAE5C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACpC,GAAG,OAAO;YACV,MAAM,EAAE,UAAU,CAAC;gBACjB,IAAI,EAAE;oBACJ,aAAa,EAAE,aAAa,CAAC,SAAS;oBACtC,QAAQ,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;iBACpC;aACF,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAEhE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACpC,GAAG,OAAO;YACV,MAAM,EAAE,UAAU,CAAC;gBACjB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;gBACzB,wBAAwB,EAAE;oBACxB,aAAa,EAAE,aAAa,CAAC,SAAS;oBACtC,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;iBACtC;aACF,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CACzE,cAAc,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACpC,GAAG,OAAO;YACV,MAAM,EAAE,UAAU,CAAC;gBACjB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;gBACzB,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,wBAAwB;gBACjE,aAAa,EAAE;oBACb,CAAC,EAAE;wBACD,OAAO,EACL,oEAAoE;qBACvE;oBACD,CAAC,EAAE;wBACD,OAAO,EACL,oEAAoE;qBACvE;iBACF;gBACD,cAAc,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE;aAC7C,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CACvD,oEAAoE,CACrE,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CACvD,oEAAoE,CACrE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACpC,GAAG,OAAO;YACV,MAAM,EAAE,UAAU,CAAC;gBACjB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;gBACzB,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,wBAAwB;gBACjE,aAAa,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACrD,cAAc,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;aACxD,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QAEzE,mDAAmD;QACnD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,iBAAiB,CACtD,CAAC,MAAM,CAAC,EACR,oEAAoE,CACrE,CAAC;QAEF,MAAM,UAAU,CACd,GAAG,EACH,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,EAC1C,YAAe,CAChB,CAAC;QAEF,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACtC,GAAG,OAAO;YACV,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,gBAAgB,EAAE,EAAE,CAAC;SACjE,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEpC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3D,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CACzC,cAAc,CAAC,gBAAgB,EAAE,CAClC,CAAC;QAEF,gEAAgE;QAChE,MAAM,gBAAgB,GAAG,MAAM,0BAA0B,CACvD,GAAG,EACH,OAAO,CAAC,iBAAiB,CAAC,CAC3B,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAErE,0EAA0E;QAC1E,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACpC,GAAG,aAAa;YAChB,MAAM,EAAE,UAAU,CAAC;gBACjB,KAAK,EAAE,cAAc,CAAC,gBAAgB,EAAE;gBACxC,wBAAwB,EAAE;oBACxB,aAAa,EAAE,aAAa,CAAC,SAAS;oBACtC,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;iBACtC;aACF,CAAC;SACH,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAE9C,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CACzE,cAAc,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/tx.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Blockhash, type Instruction, type TransactionSigner } from '@solana/kit';
|
|
2
|
+
import type { SvmInstruction, SvmTransaction } from './types.js';
|
|
3
|
+
export declare const DEFAULT_COMPUTE_UNITS = 400000;
|
|
4
|
+
export declare const DEFAULT_WRITE_CHUNK_SIZE = 880;
|
|
5
|
+
export declare const DEFAULT_PRIORITY_FEE_MICRO_LAMPORTS = 1;
|
|
6
|
+
export declare function getComputeBudgetInstructions(units?: number, microLamports?: number): SvmInstruction[];
|
|
7
|
+
export declare function buildTransactionMessage(params: {
|
|
8
|
+
instructions: SvmInstruction[];
|
|
9
|
+
feePayer: TransactionSigner;
|
|
10
|
+
recentBlockhash: Blockhash;
|
|
11
|
+
lastValidBlockHeight: bigint;
|
|
12
|
+
computeUnits?: number;
|
|
13
|
+
priorityFeeMicroLamports?: number;
|
|
14
|
+
}): Omit<import("@solana/kit").ExcludeTransactionMessageWithinSizeLimit<Omit<Omit<Omit<Readonly<{
|
|
15
|
+
instructions: readonly Instruction<string, readonly (import("@solana/kit").AccountLookupMeta<string, string> | import("@solana/kit").AccountMeta<string>)[]>[];
|
|
16
|
+
version: 0;
|
|
17
|
+
}>, "instructions"> & import("@solana/kit").TransactionMessageWithinSizeLimit & {
|
|
18
|
+
instructions: readonly [];
|
|
19
|
+
}, "feePayer"> & import("@solana/kit").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/kit").TransactionMessageWithBlockhashLifetime>, "instructions"> & {
|
|
20
|
+
readonly instructions: readonly SvmInstruction[];
|
|
21
|
+
};
|
|
22
|
+
export declare function transactionToInstructions(tx: SvmTransaction): SvmInstruction[];
|
|
23
|
+
//# sourceMappingURL=tx.d.ts.map
|
package/dist/tx.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../src/tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAKvB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,eAAO,MAAM,qBAAqB,SAAU,CAAC;AAC7C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAyBrD,wBAAgB,4BAA4B,CAC1C,KAAK,GAAE,MAA8B,EACrC,aAAa,CAAC,EAAE,MAAM,GACrB,cAAc,EAAE,CAUlB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,eAAe,EAAE,SAAS,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;;;;;;;EAuBA;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,cAAc,GACjB,cAAc,EAAE,CAIlB"}
|
package/dist/tx.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { appendTransactionMessageInstructions, createTransactionMessage, setTransactionMessageFeePayerSigner, setTransactionMessageLifetimeUsingBlockhash, } from '@solana/kit';
|
|
2
|
+
export const DEFAULT_COMPUTE_UNITS = 400_000;
|
|
3
|
+
export const DEFAULT_WRITE_CHUNK_SIZE = 880;
|
|
4
|
+
export const DEFAULT_PRIORITY_FEE_MICRO_LAMPORTS = 1;
|
|
5
|
+
// Hand-rolled to avoid adding @solana-program/compute-budget as a dependency
|
|
6
|
+
// for two trivial instruction encoders.
|
|
7
|
+
const COMPUTE_BUDGET_PROGRAM_ID = 'ComputeBudget111111111111111111111111111111';
|
|
8
|
+
function createSetComputeUnitLimitInstruction(units) {
|
|
9
|
+
const data = new Uint8Array(5);
|
|
10
|
+
data[0] = 2;
|
|
11
|
+
new DataView(data.buffer).setUint32(1, units, true);
|
|
12
|
+
return { programAddress: COMPUTE_BUDGET_PROGRAM_ID, accounts: [], data };
|
|
13
|
+
}
|
|
14
|
+
function createSetComputeUnitPriceInstruction(microLamports) {
|
|
15
|
+
const data = new Uint8Array(9);
|
|
16
|
+
data[0] = 3;
|
|
17
|
+
new DataView(data.buffer).setBigUint64(1, microLamports, true);
|
|
18
|
+
return { programAddress: COMPUTE_BUDGET_PROGRAM_ID, accounts: [], data };
|
|
19
|
+
}
|
|
20
|
+
export function getComputeBudgetInstructions(units = DEFAULT_COMPUTE_UNITS, microLamports) {
|
|
21
|
+
const instructions = [
|
|
22
|
+
createSetComputeUnitLimitInstruction(units),
|
|
23
|
+
];
|
|
24
|
+
if (microLamports !== undefined && microLamports > 0) {
|
|
25
|
+
instructions.push(createSetComputeUnitPriceInstruction(BigInt(microLamports)));
|
|
26
|
+
}
|
|
27
|
+
return instructions;
|
|
28
|
+
}
|
|
29
|
+
export function buildTransactionMessage(params) {
|
|
30
|
+
const { instructions, feePayer, recentBlockhash, lastValidBlockHeight, computeUnits = DEFAULT_COMPUTE_UNITS, priorityFeeMicroLamports, } = params;
|
|
31
|
+
const computeBudgetIxs = getComputeBudgetInstructions(computeUnits, priorityFeeMicroLamports);
|
|
32
|
+
const allInstructions = [...computeBudgetIxs, ...instructions];
|
|
33
|
+
const txMessage = createTransactionMessage({ version: 0 });
|
|
34
|
+
const withFeePayer = setTransactionMessageFeePayerSigner(feePayer, txMessage);
|
|
35
|
+
const withLifetime = setTransactionMessageLifetimeUsingBlockhash({ blockhash: recentBlockhash, lastValidBlockHeight }, withFeePayer);
|
|
36
|
+
return appendTransactionMessageInstructions(allInstructions, withLifetime);
|
|
37
|
+
}
|
|
38
|
+
export function transactionToInstructions(tx) {
|
|
39
|
+
const computeUnits = tx.computeUnits ?? DEFAULT_COMPUTE_UNITS;
|
|
40
|
+
const computeBudgetIxs = getComputeBudgetInstructions(computeUnits);
|
|
41
|
+
return [...computeBudgetIxs, ...tx.instructions];
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=tx.js.map
|
package/dist/tx.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx.js","sourceRoot":"","sources":["../src/tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,oCAAoC,EACpC,wBAAwB,EACxB,mCAAmC,EACnC,2CAA2C,GAC5C,MAAM,aAAa,CAAC;AAIrB,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAC5C,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC;AAErD,6EAA6E;AAC7E,wCAAwC;AACxC,MAAM,yBAAyB,GAC7B,6CAAwD,CAAC;AAE3D,SAAS,oCAAoC,CAC3C,KAAa;IAEb,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACZ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,oCAAoC,CAC3C,aAAqB;IAErB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACZ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAC/D,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAAgB,qBAAqB,EACrC,aAAsB;IAEtB,MAAM,YAAY,GAAqB;QACrC,oCAAoC,CAAC,KAAK,CAAC;KAC5C,CAAC;IACF,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACrD,YAAY,CAAC,IAAI,CACf,oCAAoC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAOvC;IACC,MAAM,EACJ,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,YAAY,GAAG,qBAAqB,EACpC,wBAAwB,GACzB,GAAG,MAAM,CAAC;IAEX,MAAM,gBAAgB,GAAG,4BAA4B,CACnD,YAAY,EACZ,wBAAwB,CACzB,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,YAAY,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,wBAAwB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,mCAAmC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,2CAA2C,CAC9D,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,EACpD,YAAY,CACb,CAAC;IACF,OAAO,oCAAoC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,EAAkB;IAElB,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,IAAI,qBAAqB,CAAC;IAC9D,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,YAAY,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,gBAAgB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;AACnD,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Address, Instruction, ProgramDerivedAddress, Rpc, SolanaRpcApi, TransactionSigner } from '@solana/kit';
|
|
2
|
+
import type { DeployedHookAddress } from '@hyperlane-xyz/provider-sdk/hook';
|
|
3
|
+
import type { DeployedIsmAddress } from '@hyperlane-xyz/provider-sdk/ism';
|
|
4
|
+
export type SvmInstruction = Instruction;
|
|
5
|
+
export type SvmRpc = Rpc<SolanaRpcApi>;
|
|
6
|
+
export interface SvmTransaction {
|
|
7
|
+
instructions: SvmInstruction[];
|
|
8
|
+
computeUnits?: number;
|
|
9
|
+
additionalSigners?: TransactionSigner[];
|
|
10
|
+
/** Skip preflight simulation.
|
|
11
|
+
* Some transactions that include account creation might fail the simulation check.
|
|
12
|
+
*/
|
|
13
|
+
skipPreflight?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface SvmReceipt {
|
|
16
|
+
signature: string;
|
|
17
|
+
slot?: bigint;
|
|
18
|
+
}
|
|
19
|
+
export type AnnotatedSvmTransaction = SvmTransaction & {
|
|
20
|
+
annotation?: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Specifies how to obtain a deployed program address:
|
|
24
|
+
* - `{ programId }` — use an already-deployed program
|
|
25
|
+
* - `{ programBytes }` — deploy a fresh binary via BPF Loader v3
|
|
26
|
+
*/
|
|
27
|
+
export type SvmProgramTarget = {
|
|
28
|
+
programId: Address;
|
|
29
|
+
} | {
|
|
30
|
+
programBytes: Uint8Array;
|
|
31
|
+
};
|
|
32
|
+
/** ISM deployed data — the address IS the program. */
|
|
33
|
+
export interface SvmDeployedIsm extends DeployedIsmAddress {
|
|
34
|
+
programId: Address;
|
|
35
|
+
}
|
|
36
|
+
/** Base hook deployed data — references the owning program. */
|
|
37
|
+
export interface SvmDeployedHook extends DeployedHookAddress {
|
|
38
|
+
programId: Address;
|
|
39
|
+
}
|
|
40
|
+
/** IGP hook deployed data — account-level artifact within an IGP program. */
|
|
41
|
+
export interface SvmDeployedIgpHook extends SvmDeployedHook {
|
|
42
|
+
igpPda: Address;
|
|
43
|
+
overheadIgpPda?: Address;
|
|
44
|
+
}
|
|
45
|
+
export interface PdaWithBump {
|
|
46
|
+
pda: ProgramDerivedAddress;
|
|
47
|
+
address: Address;
|
|
48
|
+
bump: number;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,qBAAqB,EACrB,GAAG,EACH,YAAY,EACZ,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC;AAEzC,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACxC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,GACtB;IAAE,YAAY,EAAE,UAAU,CAAA;CAAE,CAAC;AAEjC,sDAAsD;AACtD,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,+DAA+D;AAC/D,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,qBAAqB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
2
|
+
import { type DeployedWarpAddress, type RawCollateralWarpArtifactConfig } from '@hyperlane-xyz/provider-sdk/warp';
|
|
3
|
+
import type { SvmSigner } from '../clients/signer.js';
|
|
4
|
+
import type { AnnotatedSvmTransaction, SvmReceipt, SvmRpc } from '../types.js';
|
|
5
|
+
import type { SvmWarpTokenConfig } from './types.js';
|
|
6
|
+
export declare class SvmCollateralTokenReader implements ArtifactReader<RawCollateralWarpArtifactConfig, DeployedWarpAddress> {
|
|
7
|
+
protected readonly rpc: SvmRpc;
|
|
8
|
+
constructor(rpc: SvmRpc);
|
|
9
|
+
read(programAddress: string): Promise<ArtifactDeployed<RawCollateralWarpArtifactConfig, DeployedWarpAddress>>;
|
|
10
|
+
}
|
|
11
|
+
export declare class SvmCollateralTokenWriter extends SvmCollateralTokenReader implements ArtifactWriter<RawCollateralWarpArtifactConfig, DeployedWarpAddress> {
|
|
12
|
+
private readonly config;
|
|
13
|
+
private readonly svmSigner;
|
|
14
|
+
constructor(config: SvmWarpTokenConfig, rpc: SvmRpc, svmSigner: SvmSigner);
|
|
15
|
+
create(artifact: ArtifactNew<RawCollateralWarpArtifactConfig>): Promise<[
|
|
16
|
+
ArtifactDeployed<RawCollateralWarpArtifactConfig, DeployedWarpAddress>,
|
|
17
|
+
SvmReceipt[]
|
|
18
|
+
]>;
|
|
19
|
+
update(artifact: ArtifactDeployed<RawCollateralWarpArtifactConfig, DeployedWarpAddress>): Promise<AnnotatedSvmTransaction[]>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=collateral-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collateral-token.d.ts","sourceRoot":"","sources":["../../src/warp/collateral-token.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACrC,MAAM,kCAAkC,CAAC;AAU1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAUtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAYrD,qBAAa,wBAAyB,YAAW,cAAc,CAC7D,+BAA+B,EAC/B,mBAAmB,CACpB;IACa,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAEpC,IAAI,CACR,cAAc,EAAE,MAAM,GACrB,OAAO,CACR,gBAAgB,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,CACvE;CA2DF;AAED,qBAAa,wBACX,SAAQ,wBACR,YACE,cAAc,CAAC,+BAA+B,EAAE,mBAAmB,CAAC;IAGpE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,MAAM,EAAE,kBAAkB,EAC3C,GAAG,EAAE,MAAM,EACM,SAAS,EAAE,SAAS;IAKjC,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,+BAA+B,CAAC,GACrD,OAAO,CACR;QACE,gBAAgB,CAAC,+BAA+B,EAAE,mBAAmB,CAAC;QACtE,UAAU,EAAE;KACb,CACF;IAgGK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CACxB,+BAA+B,EAC/B,mBAAmB,CACpB,GACA,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAkBtC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { address as parseAddress } from '@solana/kit';
|
|
2
|
+
import { ArtifactState, } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
3
|
+
import { TokenType, } from '@hyperlane-xyz/provider-sdk/warp';
|
|
4
|
+
import { ZERO_ADDRESS_HEX_32, assert, isNullish, isZeroishAddress, } from '@hyperlane-xyz/utils';
|
|
5
|
+
import { fetchMintMetadata, getMintDecimals } from '../accounts/mint.js';
|
|
6
|
+
import { decodeCollateralPlugin } from '../accounts/token.js';
|
|
7
|
+
import { RENT_SYSVAR_ADDRESS, SPL_TOKEN_PROGRAM_ADDRESS, TOKEN_2022_PROGRAM_ADDRESS, } from '../constants.js';
|
|
8
|
+
import { resolveProgram } from '../deploy/resolve-program.js';
|
|
9
|
+
import { getTokenInitInstruction } from '../instructions/token.js';
|
|
10
|
+
import { readonlyAccount, writableAccount } from '../instructions/utils.js';
|
|
11
|
+
import { deriveAtaPayerPda, deriveEscrowPda } from '../pda.js';
|
|
12
|
+
import { fetchTokenAccount, routerBytesToHex } from './warp-query.js';
|
|
13
|
+
import { applyPostInitConfig, assertLocalDecimals, buildBaseInitData, buildFundAtaPayerInstruction, computeWarpTokenUpdateInstructions, remoteDecimalsToScale, scaleToRemoteDecimals, } from './warp-tx.js';
|
|
14
|
+
export class SvmCollateralTokenReader {
|
|
15
|
+
rpc;
|
|
16
|
+
constructor(rpc) {
|
|
17
|
+
this.rpc = rpc;
|
|
18
|
+
}
|
|
19
|
+
async read(programAddress) {
|
|
20
|
+
const programId = parseAddress(programAddress);
|
|
21
|
+
const token = await fetchTokenAccount(this.rpc, programId);
|
|
22
|
+
assert(!isNullish(token), `Collateral token not initialized at ${programId}`);
|
|
23
|
+
const plugin = decodeCollateralPlugin(token.pluginData);
|
|
24
|
+
const remoteRouters = {};
|
|
25
|
+
for (const [domain, router] of token.remoteRouters.entries()) {
|
|
26
|
+
remoteRouters[domain] = { address: routerBytesToHex(router) };
|
|
27
|
+
}
|
|
28
|
+
const destinationGas = {};
|
|
29
|
+
for (const [domain, gas] of token.destinationGas.entries()) {
|
|
30
|
+
destinationGas[domain] = gas.toString();
|
|
31
|
+
}
|
|
32
|
+
const metadata = await fetchMintMetadata(this.rpc, plugin.mint);
|
|
33
|
+
assert(token.decimals === metadata.decimals, `Decimals mismatch for collateral token ${programId}: ` +
|
|
34
|
+
`warp route initialized with ${token.decimals} but mint reports ${metadata.decimals}`);
|
|
35
|
+
const config = {
|
|
36
|
+
type: TokenType.collateral,
|
|
37
|
+
owner: token.owner ?? ZERO_ADDRESS_HEX_32,
|
|
38
|
+
mailbox: token.mailbox,
|
|
39
|
+
token: plugin.mint,
|
|
40
|
+
name: metadata.name,
|
|
41
|
+
symbol: metadata.symbol,
|
|
42
|
+
decimals: token.decimals,
|
|
43
|
+
interchainSecurityModule: token.interchainSecurityModule
|
|
44
|
+
? {
|
|
45
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
46
|
+
deployed: { address: token.interchainSecurityModule },
|
|
47
|
+
}
|
|
48
|
+
: undefined,
|
|
49
|
+
hook: token.interchainGasPaymaster
|
|
50
|
+
? {
|
|
51
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
52
|
+
deployed: { address: token.interchainGasPaymaster.programId },
|
|
53
|
+
}
|
|
54
|
+
: undefined,
|
|
55
|
+
remoteRouters,
|
|
56
|
+
destinationGas,
|
|
57
|
+
scale: remoteDecimalsToScale(token.decimals, token.remoteDecimals),
|
|
58
|
+
};
|
|
59
|
+
return {
|
|
60
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
61
|
+
config,
|
|
62
|
+
deployed: { address: programId },
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export class SvmCollateralTokenWriter extends SvmCollateralTokenReader {
|
|
67
|
+
config;
|
|
68
|
+
svmSigner;
|
|
69
|
+
constructor(config, rpc, svmSigner) {
|
|
70
|
+
super(rpc);
|
|
71
|
+
this.config = config;
|
|
72
|
+
this.svmSigner = svmSigner;
|
|
73
|
+
}
|
|
74
|
+
async create(artifact) {
|
|
75
|
+
const receipts = [];
|
|
76
|
+
const tokenConfig = artifact.config;
|
|
77
|
+
// Validate the collateral mint before deploying
|
|
78
|
+
const collateralMint = parseAddress(tokenConfig.token);
|
|
79
|
+
const mintInfo = await this.rpc
|
|
80
|
+
.getAccountInfo(collateralMint, { encoding: 'base64' })
|
|
81
|
+
.send();
|
|
82
|
+
assert(!isNullish(mintInfo.value), `Mint account not found: ${collateralMint}`);
|
|
83
|
+
const splProgram = parseAddress(mintInfo.value.owner);
|
|
84
|
+
assert(splProgram === SPL_TOKEN_PROGRAM_ADDRESS ||
|
|
85
|
+
splProgram === TOKEN_2022_PROGRAM_ADDRESS, `Mint ${collateralMint} is not owned by SPL Token or Token-2022 (owner: ${splProgram})`);
|
|
86
|
+
const mintRawData = Buffer.from(mintInfo.value.data[0], 'base64');
|
|
87
|
+
const localDecimals = getMintDecimals(mintRawData);
|
|
88
|
+
assertLocalDecimals(localDecimals);
|
|
89
|
+
const remoteDecimals = scaleToRemoteDecimals(localDecimals, tokenConfig.scale);
|
|
90
|
+
// Deploy
|
|
91
|
+
const { programAddress, receipts: deployReceipts } = await resolveProgram(this.config.program, this.svmSigner, this.rpc, true);
|
|
92
|
+
receipts.push(...deployReceipts);
|
|
93
|
+
const { address: escrowPda } = await deriveEscrowPda(programAddress);
|
|
94
|
+
const { address: ataPayerPda } = await deriveAtaPayerPda(programAddress);
|
|
95
|
+
const initData = await buildBaseInitData(tokenConfig, localDecimals, remoteDecimals);
|
|
96
|
+
const initIx = await getTokenInitInstruction(programAddress, this.svmSigner.signer, initData, [
|
|
97
|
+
readonlyAccount(splProgram),
|
|
98
|
+
readonlyAccount(collateralMint),
|
|
99
|
+
readonlyAccount(RENT_SYSVAR_ADDRESS),
|
|
100
|
+
writableAccount(escrowPda),
|
|
101
|
+
writableAccount(ataPayerPda),
|
|
102
|
+
]);
|
|
103
|
+
receipts.push(await this.svmSigner.send({
|
|
104
|
+
instructions: [initIx],
|
|
105
|
+
computeUnits: 400_000,
|
|
106
|
+
skipPreflight: true,
|
|
107
|
+
}));
|
|
108
|
+
const fundAtaPayerIx = await buildFundAtaPayerInstruction(this.rpc, this.svmSigner.signer.address, programAddress, this.config.ataPayerFundingAmount);
|
|
109
|
+
if (fundAtaPayerIx) {
|
|
110
|
+
receipts.push(await this.svmSigner.send({ instructions: [fundAtaPayerIx] }));
|
|
111
|
+
}
|
|
112
|
+
receipts.push(...(await applyPostInitConfig(this.svmSigner, programAddress, tokenConfig)));
|
|
113
|
+
return [
|
|
114
|
+
{
|
|
115
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
116
|
+
config: { ...tokenConfig, decimals: localDecimals },
|
|
117
|
+
deployed: { address: programAddress },
|
|
118
|
+
},
|
|
119
|
+
receipts,
|
|
120
|
+
];
|
|
121
|
+
}
|
|
122
|
+
async update(artifact) {
|
|
123
|
+
const programId = parseAddress(artifact.deployed.address);
|
|
124
|
+
const current = await this.read(programId);
|
|
125
|
+
assert(!isZeroishAddress(current.config.owner), `Cannot update collateral token ${programId}: token has no owner`);
|
|
126
|
+
return computeWarpTokenUpdateInstructions(current.config, artifact.config, programId, parseAddress(current.config.owner), this.rpc, `collateral token ${programId}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=collateral-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collateral-token.js","sourceRoot":"","sources":["../../src/warp/collateral-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
2
|
+
import { type DeployedWarpAddress, type RawNativeWarpArtifactConfig } from '@hyperlane-xyz/provider-sdk/warp';
|
|
3
|
+
import type { SvmSigner } from '../clients/signer.js';
|
|
4
|
+
import type { AnnotatedSvmTransaction, SvmReceipt, SvmRpc } from '../types.js';
|
|
5
|
+
import type { SvmWarpTokenConfig } from './types.js';
|
|
6
|
+
export declare class SvmNativeTokenReader implements ArtifactReader<RawNativeWarpArtifactConfig, DeployedWarpAddress> {
|
|
7
|
+
protected readonly rpc: SvmRpc;
|
|
8
|
+
constructor(rpc: SvmRpc);
|
|
9
|
+
read(programAddress: string): Promise<ArtifactDeployed<RawNativeWarpArtifactConfig, DeployedWarpAddress>>;
|
|
10
|
+
}
|
|
11
|
+
export declare class SvmNativeTokenWriter extends SvmNativeTokenReader implements ArtifactWriter<RawNativeWarpArtifactConfig, DeployedWarpAddress> {
|
|
12
|
+
private readonly config;
|
|
13
|
+
private readonly svmSigner;
|
|
14
|
+
constructor(config: SvmWarpTokenConfig, rpc: SvmRpc, svmSigner: SvmSigner);
|
|
15
|
+
create(artifact: ArtifactNew<RawNativeWarpArtifactConfig>): Promise<[
|
|
16
|
+
ArtifactDeployed<RawNativeWarpArtifactConfig, DeployedWarpAddress>,
|
|
17
|
+
SvmReceipt[]
|
|
18
|
+
]>;
|
|
19
|
+
update(artifact: ArtifactDeployed<RawNativeWarpArtifactConfig, DeployedWarpAddress>): Promise<AnnotatedSvmTransaction[]>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=native-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-token.d.ts","sourceRoot":"","sources":["../../src/warp/native-token.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EACjC,MAAM,kCAAkC,CAAC;AAQ1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAcrD,qBAAa,oBAAqB,YAAW,cAAc,CACzD,2BAA2B,EAC3B,mBAAmB,CACpB;IACa,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAEpC,IAAI,CACR,cAAc,EAAE,MAAM,GACrB,OAAO,CACR,gBAAgB,CAAC,2BAA2B,EAAE,mBAAmB,CAAC,CACnE;CA2CF;AAED,qBAAa,oBACX,SAAQ,oBACR,YAAW,cAAc,CAAC,2BAA2B,EAAE,mBAAmB,CAAC;IAGzE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,MAAM,EAAE,kBAAkB,EAC3C,GAAG,EAAE,MAAM,EACM,SAAS,EAAE,SAAS;IAKjC,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,2BAA2B,CAAC,GACjD,OAAO,CACR;QACE,gBAAgB,CAAC,2BAA2B,EAAE,mBAAmB,CAAC;QAClE,UAAU,EAAE;KACb,CACF;IA6DK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CACxB,2BAA2B,EAC3B,mBAAmB,CACpB,GACA,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAkBtC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { address as parseAddress } from '@solana/kit';
|
|
2
|
+
import { ArtifactState, } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
3
|
+
import { TokenType, } from '@hyperlane-xyz/provider-sdk/warp';
|
|
4
|
+
import { ZERO_ADDRESS_HEX_32, assert, isNullish, isZeroishAddress, } from '@hyperlane-xyz/utils';
|
|
5
|
+
import { resolveProgram } from '../deploy/resolve-program.js';
|
|
6
|
+
import { getTokenInitInstruction } from '../instructions/token.js';
|
|
7
|
+
import { writableAccount } from '../instructions/utils.js';
|
|
8
|
+
import { deriveNativeCollateralPda } from '../pda.js';
|
|
9
|
+
import { fetchTokenAccount, routerBytesToHex } from './warp-query.js';
|
|
10
|
+
import { applyPostInitConfig, assertLocalDecimals, buildBaseInitData, computeWarpTokenUpdateInstructions, remoteDecimalsToScale, scaleToRemoteDecimals, } from './warp-tx.js';
|
|
11
|
+
/** Native SOL decimal precision. */
|
|
12
|
+
const SOL_DECIMALS = 9;
|
|
13
|
+
export class SvmNativeTokenReader {
|
|
14
|
+
rpc;
|
|
15
|
+
constructor(rpc) {
|
|
16
|
+
this.rpc = rpc;
|
|
17
|
+
}
|
|
18
|
+
async read(programAddress) {
|
|
19
|
+
const programId = parseAddress(programAddress);
|
|
20
|
+
const token = await fetchTokenAccount(this.rpc, programId);
|
|
21
|
+
assert(!isNullish(token), `Native token not initialized at ${programId}`);
|
|
22
|
+
const remoteRouters = {};
|
|
23
|
+
for (const [domain, router] of token.remoteRouters.entries()) {
|
|
24
|
+
remoteRouters[domain] = { address: routerBytesToHex(router) };
|
|
25
|
+
}
|
|
26
|
+
const destinationGas = {};
|
|
27
|
+
for (const [domain, gas] of token.destinationGas.entries()) {
|
|
28
|
+
destinationGas[domain] = gas.toString();
|
|
29
|
+
}
|
|
30
|
+
const config = {
|
|
31
|
+
type: TokenType.native,
|
|
32
|
+
owner: token.owner ?? ZERO_ADDRESS_HEX_32,
|
|
33
|
+
mailbox: token.mailbox,
|
|
34
|
+
interchainSecurityModule: token.interchainSecurityModule
|
|
35
|
+
? {
|
|
36
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
37
|
+
deployed: { address: token.interchainSecurityModule },
|
|
38
|
+
}
|
|
39
|
+
: undefined,
|
|
40
|
+
hook: token.interchainGasPaymaster
|
|
41
|
+
? {
|
|
42
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
43
|
+
deployed: { address: token.interchainGasPaymaster.programId },
|
|
44
|
+
}
|
|
45
|
+
: undefined,
|
|
46
|
+
remoteRouters,
|
|
47
|
+
destinationGas,
|
|
48
|
+
decimals: token.decimals,
|
|
49
|
+
scale: remoteDecimalsToScale(token.decimals, token.remoteDecimals),
|
|
50
|
+
};
|
|
51
|
+
return {
|
|
52
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
53
|
+
config,
|
|
54
|
+
deployed: { address: programId },
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export class SvmNativeTokenWriter extends SvmNativeTokenReader {
|
|
59
|
+
config;
|
|
60
|
+
svmSigner;
|
|
61
|
+
constructor(config, rpc, svmSigner) {
|
|
62
|
+
super(rpc);
|
|
63
|
+
this.config = config;
|
|
64
|
+
this.svmSigner = svmSigner;
|
|
65
|
+
}
|
|
66
|
+
async create(artifact) {
|
|
67
|
+
const receipts = [];
|
|
68
|
+
const tokenConfig = artifact.config;
|
|
69
|
+
const localDecimals = tokenConfig.decimals ?? SOL_DECIMALS;
|
|
70
|
+
assertLocalDecimals(localDecimals);
|
|
71
|
+
const remoteDecimals = scaleToRemoteDecimals(localDecimals, tokenConfig.scale);
|
|
72
|
+
const { programAddress, receipts: deployReceipts } = await resolveProgram(this.config.program, this.svmSigner, this.rpc, true);
|
|
73
|
+
receipts.push(...deployReceipts);
|
|
74
|
+
const { address: nativeCollateralPda } = await deriveNativeCollateralPda(programAddress);
|
|
75
|
+
const initData = await buildBaseInitData(tokenConfig, localDecimals, remoteDecimals);
|
|
76
|
+
const initIx = await getTokenInitInstruction(programAddress, this.svmSigner.signer, initData, [writableAccount(nativeCollateralPda)]);
|
|
77
|
+
receipts.push(await this.svmSigner.send({
|
|
78
|
+
instructions: [initIx],
|
|
79
|
+
computeUnits: 400_000,
|
|
80
|
+
skipPreflight: true,
|
|
81
|
+
}));
|
|
82
|
+
receipts.push(...(await applyPostInitConfig(this.svmSigner, programAddress, tokenConfig)));
|
|
83
|
+
return [
|
|
84
|
+
{
|
|
85
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
86
|
+
config: { ...tokenConfig, decimals: localDecimals },
|
|
87
|
+
deployed: { address: programAddress },
|
|
88
|
+
},
|
|
89
|
+
receipts,
|
|
90
|
+
];
|
|
91
|
+
}
|
|
92
|
+
async update(artifact) {
|
|
93
|
+
const programId = parseAddress(artifact.deployed.address);
|
|
94
|
+
const current = await this.read(programId);
|
|
95
|
+
assert(!isZeroishAddress(current.config.owner), `Cannot update native token ${programId}: token has no owner`);
|
|
96
|
+
return computeWarpTokenUpdateInstructions(current.config, artifact.config, programId, parseAddress(current.config.owner), this.rpc, `native token ${programId}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=native-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-token.js","sourceRoot":"","sources":["../../src/warp/native-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
2
|
+
import { type DeployedWarpAddress, type RawSyntheticWarpArtifactConfig } from '@hyperlane-xyz/provider-sdk/warp';
|
|
3
|
+
import type { SvmSigner } from '../clients/signer.js';
|
|
4
|
+
import type { AnnotatedSvmTransaction, SvmReceipt, SvmRpc } from '../types.js';
|
|
5
|
+
import type { SvmWarpTokenConfig } from './types.js';
|
|
6
|
+
export declare class SvmSyntheticTokenReader implements ArtifactReader<RawSyntheticWarpArtifactConfig, DeployedWarpAddress> {
|
|
7
|
+
protected readonly rpc: SvmRpc;
|
|
8
|
+
constructor(rpc: SvmRpc);
|
|
9
|
+
read(programAddress: string): Promise<ArtifactDeployed<RawSyntheticWarpArtifactConfig, DeployedWarpAddress>>;
|
|
10
|
+
}
|
|
11
|
+
export declare class SvmSyntheticTokenWriter extends SvmSyntheticTokenReader implements ArtifactWriter<RawSyntheticWarpArtifactConfig, DeployedWarpAddress> {
|
|
12
|
+
private readonly config;
|
|
13
|
+
private readonly svmSigner;
|
|
14
|
+
constructor(config: SvmWarpTokenConfig, rpc: SvmRpc, svmSigner: SvmSigner);
|
|
15
|
+
create(artifact: ArtifactNew<RawSyntheticWarpArtifactConfig>): Promise<[
|
|
16
|
+
ArtifactDeployed<RawSyntheticWarpArtifactConfig, DeployedWarpAddress>,
|
|
17
|
+
SvmReceipt[]
|
|
18
|
+
]>;
|
|
19
|
+
update(artifact: ArtifactDeployed<RawSyntheticWarpArtifactConfig, DeployedWarpAddress>): Promise<AnnotatedSvmTransaction[]>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=synthetic-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synthetic-token.d.ts","sourceRoot":"","sources":["../../src/warp/synthetic-token.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACpC,MAAM,kCAAkC,CAAC;AAe1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAiBtD,OAAO,KAAK,EACV,uBAAuB,EAEvB,UAAU,EACV,MAAM,EACP,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA+GrD,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,8BAA8B,EAC9B,mBAAmB,CACpB;IACa,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAEpC,IAAI,CACR,cAAc,EAAE,MAAM,GACrB,OAAO,CACR,gBAAgB,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,CACtE;CAoDF;AAED,qBAAa,uBACX,SAAQ,uBACR,YAAW,cAAc,CAAC,8BAA8B,EAAE,mBAAmB,CAAC;IAG5E,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,MAAM,EAAE,kBAAkB,EAC3C,GAAG,EAAE,MAAM,EACM,SAAS,EAAE,SAAS;IAKjC,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,8BAA8B,CAAC,GACpD,OAAO,CACR;QACE,gBAAgB,CAAC,8BAA8B,EAAE,mBAAmB,CAAC;QACrE,UAAU,EAAE;KACb,CACF;IAuIK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CACxB,8BAA8B,EAC9B,mBAAmB,CACpB,GACA,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAkBtC"}
|