@wormhole-foundation/sdk-connect 0.5.0-beta.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/dist/cjs/circle-api.d.ts +16 -0
- package/dist/cjs/circle-api.d.ts.map +1 -0
- package/dist/cjs/circle-api.js +47 -0
- package/dist/cjs/circle-api.js.map +1 -0
- package/dist/cjs/common.d.ts +4 -0
- package/dist/cjs/common.d.ts.map +1 -0
- package/dist/cjs/common.js +40 -0
- package/dist/cjs/common.js.map +1 -0
- package/dist/cjs/config.d.ts +34 -0
- package/dist/cjs/config.d.ts.map +1 -0
- package/dist/cjs/config.js +52 -0
- package/dist/cjs/config.js.map +1 -0
- package/dist/cjs/index.d.ts +15 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +45 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/protocols/cctp/cctpTransfer.d.ts +41 -0
- package/dist/cjs/protocols/cctp/cctpTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/cctp/cctpTransfer.js +459 -0
- package/dist/cjs/protocols/cctp/cctpTransfer.js.map +1 -0
- package/dist/cjs/protocols/cctp/index.d.ts +2 -0
- package/dist/cjs/protocols/cctp/index.d.ts.map +1 -0
- package/dist/cjs/protocols/cctp/index.js +18 -0
- package/dist/cjs/protocols/cctp/index.js.map +1 -0
- package/dist/cjs/protocols/cctpTransfer.d.ts +41 -0
- package/dist/cjs/protocols/cctpTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/cctpTransfer.js +459 -0
- package/dist/cjs/protocols/cctpTransfer.js.map +1 -0
- package/dist/cjs/protocols/gateway/gatewayTransfer.d.ts +38 -0
- package/dist/cjs/protocols/gateway/gatewayTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/gateway/gatewayTransfer.js +360 -0
- package/dist/cjs/protocols/gateway/gatewayTransfer.js.map +1 -0
- package/dist/cjs/protocols/gateway/index.d.ts +2 -0
- package/dist/cjs/protocols/gateway/index.d.ts.map +1 -0
- package/dist/cjs/protocols/gateway/index.js +18 -0
- package/dist/cjs/protocols/gateway/index.js.map +1 -0
- package/dist/cjs/protocols/gatewayTransfer.d.ts +40 -0
- package/dist/cjs/protocols/gatewayTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/gatewayTransfer.js +406 -0
- package/dist/cjs/protocols/gatewayTransfer.js.map +1 -0
- package/dist/cjs/protocols/index.d.ts +5 -0
- package/dist/cjs/protocols/index.d.ts.map +1 -0
- package/dist/cjs/protocols/index.js +21 -0
- package/dist/cjs/protocols/index.js.map +1 -0
- package/dist/cjs/protocols/tokenBridge/automatic.d.ts +16 -0
- package/dist/cjs/protocols/tokenBridge/automatic.d.ts.map +1 -0
- package/dist/cjs/protocols/tokenBridge/automatic.js +77 -0
- package/dist/cjs/protocols/tokenBridge/automatic.js.map +1 -0
- package/dist/cjs/protocols/tokenBridge/index.d.ts +5 -0
- package/dist/cjs/protocols/tokenBridge/index.d.ts.map +1 -0
- package/dist/cjs/protocols/tokenBridge/index.js +21 -0
- package/dist/cjs/protocols/tokenBridge/index.js.map +1 -0
- package/dist/cjs/protocols/tokenBridge/manual.d.ts +16 -0
- package/dist/cjs/protocols/tokenBridge/manual.d.ts.map +1 -0
- package/dist/cjs/protocols/tokenBridge/manual.js +77 -0
- package/dist/cjs/protocols/tokenBridge/manual.js.map +1 -0
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.d.ts +20 -0
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.js +24 -0
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.js.map +1 -0
- package/dist/cjs/protocols/tokenBridge/utils.d.ts +25 -0
- package/dist/cjs/protocols/tokenBridge/utils.d.ts.map +1 -0
- package/dist/cjs/protocols/tokenBridge/utils.js +331 -0
- package/dist/cjs/protocols/tokenBridge/utils.js.map +1 -0
- package/dist/cjs/protocols/tokenTransfer.d.ts +40 -0
- package/dist/cjs/protocols/tokenTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/tokenTransfer.js +472 -0
- package/dist/cjs/protocols/tokenTransfer.js.map +1 -0
- package/dist/cjs/protocols/tokenbridge/automatic.d.ts +16 -0
- package/dist/cjs/protocols/tokenbridge/automatic.d.ts.map +1 -0
- package/dist/cjs/protocols/tokenbridge/automatic.js +76 -0
- package/dist/cjs/protocols/tokenbridge/automatic.js.map +1 -0
- package/dist/cjs/protocols/tokenbridge/index.d.ts +2 -0
- package/dist/cjs/protocols/tokenbridge/index.d.ts.map +1 -0
- package/dist/cjs/protocols/tokenbridge/index.js +18 -0
- package/dist/cjs/protocols/tokenbridge/index.js.map +1 -0
- package/dist/cjs/protocols/tokenbridge/manual.d.ts +16 -0
- package/dist/cjs/protocols/tokenbridge/manual.d.ts.map +1 -0
- package/dist/cjs/protocols/tokenbridge/manual.js +76 -0
- package/dist/cjs/protocols/tokenbridge/manual.js.map +1 -0
- package/dist/cjs/protocols/tokenbridge/tokenTransfer.d.ts +37 -0
- package/dist/cjs/protocols/tokenbridge/tokenTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/tokenbridge/tokenTransfer.js +345 -0
- package/dist/cjs/protocols/tokenbridge/tokenTransfer.js.map +1 -0
- package/dist/cjs/protocols/wormholeTransfer.d.ts +20 -0
- package/dist/cjs/protocols/wormholeTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/wormholeTransfer.js +3 -0
- package/dist/cjs/protocols/wormholeTransfer.js.map +1 -0
- package/dist/cjs/quote.d.ts +17 -0
- package/dist/cjs/quote.d.ts.map +1 -0
- package/dist/cjs/quote.js +3 -0
- package/dist/cjs/quote.js.map +1 -0
- package/dist/cjs/receipt.d.ts +51 -0
- package/dist/cjs/receipt.d.ts.map +1 -0
- package/dist/cjs/receipt.js +31 -0
- package/dist/cjs/receipt.js.map +1 -0
- package/dist/cjs/routes/automaticTokenBridgeRoute.d.ts +28 -0
- package/dist/cjs/routes/automaticTokenBridgeRoute.d.ts.map +1 -0
- package/dist/cjs/routes/automaticTokenBridgeRoute.js +82 -0
- package/dist/cjs/routes/automaticTokenBridgeRoute.js.map +1 -0
- package/dist/cjs/routes/cctp/automatic.d.ts +46 -0
- package/dist/cjs/routes/cctp/automatic.d.ts.map +1 -0
- package/dist/cjs/routes/cctp/automatic.js +135 -0
- package/dist/cjs/routes/cctp/automatic.js.map +1 -0
- package/dist/cjs/routes/cctp/index.d.ts +3 -0
- package/dist/cjs/routes/cctp/index.d.ts.map +1 -0
- package/dist/cjs/routes/cctp/index.js +19 -0
- package/dist/cjs/routes/cctp/index.js.map +1 -0
- package/dist/cjs/routes/cctp/manual.d.ts +43 -0
- package/dist/cjs/routes/cctp/manual.d.ts.map +1 -0
- package/dist/cjs/routes/cctp/manual.js +113 -0
- package/dist/cjs/routes/cctp/manual.js.map +1 -0
- package/dist/cjs/routes/common.d.ts +13 -0
- package/dist/cjs/routes/common.d.ts.map +1 -0
- package/dist/cjs/routes/common.js +45 -0
- package/dist/cjs/routes/common.js.map +1 -0
- package/dist/cjs/routes/index.d.ts +9 -0
- package/dist/cjs/routes/index.d.ts.map +1 -0
- package/dist/cjs/routes/index.js +25 -0
- package/dist/cjs/routes/index.js.map +1 -0
- package/dist/cjs/routes/mock/automatic.d.ts +25 -0
- package/dist/cjs/routes/mock/automatic.d.ts.map +1 -0
- package/dist/cjs/routes/mock/automatic.js +88 -0
- package/dist/cjs/routes/mock/automatic.js.map +1 -0
- package/dist/cjs/routes/mock/index.d.ts +3 -0
- package/dist/cjs/routes/mock/index.d.ts.map +1 -0
- package/dist/cjs/routes/mock/index.js +19 -0
- package/dist/cjs/routes/mock/index.js.map +1 -0
- package/dist/cjs/routes/mock/manual.d.ts +24 -0
- package/dist/cjs/routes/mock/manual.d.ts.map +1 -0
- package/dist/cjs/routes/mock/manual.js +87 -0
- package/dist/cjs/routes/mock/manual.js.map +1 -0
- package/dist/cjs/routes/portico/automatic.d.ts +68 -0
- package/dist/cjs/routes/portico/automatic.d.ts.map +1 -0
- package/dist/cjs/routes/portico/automatic.js +208 -0
- package/dist/cjs/routes/portico/automatic.js.map +1 -0
- package/dist/cjs/routes/portico/index.d.ts +2 -0
- package/dist/cjs/routes/portico/index.d.ts.map +1 -0
- package/dist/cjs/routes/portico/index.js +18 -0
- package/dist/cjs/routes/portico/index.js.map +1 -0
- package/dist/cjs/routes/portico/manual.d.ts +61 -0
- package/dist/cjs/routes/portico/manual.d.ts.map +1 -0
- package/dist/cjs/routes/portico/manual.js +141 -0
- package/dist/cjs/routes/portico/manual.js.map +1 -0
- package/dist/cjs/routes/portico/porticoRoute.d.ts +56 -0
- package/dist/cjs/routes/portico/porticoRoute.d.ts.map +1 -0
- package/dist/cjs/routes/portico/porticoRoute.js +160 -0
- package/dist/cjs/routes/portico/porticoRoute.js.map +1 -0
- package/dist/cjs/routes/portico/protocol/abis.d.ts +4 -0
- package/dist/cjs/routes/portico/protocol/abis.d.ts.map +1 -0
- package/dist/cjs/routes/portico/protocol/abis.js +12 -0
- package/dist/cjs/routes/portico/protocol/abis.js.map +1 -0
- package/dist/cjs/routes/portico/protocol/consts.d.ts +18 -0
- package/dist/cjs/routes/portico/protocol/consts.d.ts.map +1 -0
- package/dist/cjs/routes/portico/protocol/consts.js +48 -0
- package/dist/cjs/routes/portico/protocol/consts.js.map +1 -0
- package/dist/cjs/routes/portico/protocol/porticoBridge.d.ts +17 -0
- package/dist/cjs/routes/portico/protocol/porticoBridge.d.ts.map +1 -0
- package/dist/cjs/routes/portico/protocol/porticoBridge.js +119 -0
- package/dist/cjs/routes/portico/protocol/porticoBridge.js.map +1 -0
- package/dist/cjs/routes/portico/protocol/types.d.ts +88 -0
- package/dist/cjs/routes/portico/protocol/types.d.ts.map +1 -0
- package/dist/cjs/routes/portico/protocol/types.js +3 -0
- package/dist/cjs/routes/portico/protocol/types.js.map +1 -0
- package/dist/cjs/routes/portico/protocol/utils.d.ts +18 -0
- package/dist/cjs/routes/portico/protocol/utils.d.ts.map +1 -0
- package/dist/cjs/routes/portico/protocol/utils.js +167 -0
- package/dist/cjs/routes/portico/protocol/utils.js.map +1 -0
- package/dist/cjs/routes/portico/utils.d.ts +1 -0
- package/dist/cjs/routes/portico/utils.d.ts.map +1 -0
- package/dist/cjs/routes/portico/utils.js +2 -0
- package/dist/cjs/routes/portico/utils.js.map +1 -0
- package/dist/cjs/routes/request.d.ts +25 -0
- package/dist/cjs/routes/request.d.ts.map +1 -0
- package/dist/cjs/routes/request.js +65 -0
- package/dist/cjs/routes/request.js.map +1 -0
- package/dist/cjs/routes/resolver.d.ts +15 -0
- package/dist/cjs/routes/resolver.d.ts.map +1 -0
- package/dist/cjs/routes/resolver.js +87 -0
- package/dist/cjs/routes/resolver.js.map +1 -0
- package/dist/cjs/routes/route.d.ts +46 -0
- package/dist/cjs/routes/route.d.ts.map +1 -0
- package/dist/cjs/routes/route.js +34 -0
- package/dist/cjs/routes/route.js.map +1 -0
- package/dist/cjs/routes/token.d.ts +12 -0
- package/dist/cjs/routes/token.d.ts.map +1 -0
- package/dist/cjs/routes/token.js +37 -0
- package/dist/cjs/routes/token.js.map +1 -0
- package/dist/cjs/routes/tokenBridge/automatic.d.ts +46 -0
- package/dist/cjs/routes/tokenBridge/automatic.d.ts.map +1 -0
- package/dist/cjs/routes/tokenBridge/automatic.js +145 -0
- package/dist/cjs/routes/tokenBridge/automatic.js.map +1 -0
- package/dist/cjs/routes/tokenBridge/index.d.ts +3 -0
- package/dist/cjs/routes/tokenBridge/index.d.ts.map +1 -0
- package/dist/cjs/routes/tokenBridge/index.js +19 -0
- package/dist/cjs/routes/tokenBridge/index.js.map +1 -0
- package/dist/cjs/routes/tokenBridge/manual.d.ts +42 -0
- package/dist/cjs/routes/tokenBridge/manual.d.ts.map +1 -0
- package/dist/cjs/routes/tokenBridge/manual.js +87 -0
- package/dist/cjs/routes/tokenBridge/manual.js.map +1 -0
- package/dist/cjs/routes/tokenBridgeRoute.d.ts +25 -0
- package/dist/cjs/routes/tokenBridgeRoute.d.ts.map +1 -0
- package/dist/cjs/routes/tokenBridgeRoute.js +78 -0
- package/dist/cjs/routes/tokenBridgeRoute.js.map +1 -0
- package/dist/cjs/routes/types.d.ts +44 -0
- package/dist/cjs/routes/types.d.ts.map +1 -0
- package/dist/cjs/routes/types.js +3 -0
- package/dist/cjs/routes/types.js.map +1 -0
- package/dist/cjs/tasks.d.ts +7 -0
- package/dist/cjs/tasks.d.ts.map +1 -0
- package/dist/cjs/tasks.js +65 -0
- package/dist/cjs/tasks.js.map +1 -0
- package/dist/cjs/types.d.ts +73 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +35 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/whscan-api.d.ts +172 -0
- package/dist/cjs/whscan-api.d.ts.map +1 -0
- package/dist/cjs/whscan-api.js +243 -0
- package/dist/cjs/whscan-api.js.map +1 -0
- package/dist/cjs/wormhole.d.ts +198 -0
- package/dist/cjs/wormhole.d.ts.map +1 -0
- package/dist/cjs/wormhole.js +324 -0
- package/dist/cjs/wormhole.js.map +1 -0
- package/dist/cjs/wormholeTransfer.d.ts +78 -0
- package/dist/cjs/wormholeTransfer.d.ts.map +1 -0
- package/dist/cjs/wormholeTransfer.js +27 -0
- package/dist/cjs/wormholeTransfer.js.map +1 -0
- package/dist/esm/circle-api.d.ts +16 -0
- package/dist/esm/circle-api.d.ts.map +1 -0
- package/dist/esm/circle-api.js +39 -0
- package/dist/esm/circle-api.js.map +1 -0
- package/dist/esm/common.d.ts +4 -0
- package/dist/esm/common.d.ts.map +1 -0
- package/dist/esm/common.js +36 -0
- package/dist/esm/common.js.map +1 -0
- package/dist/esm/config.d.ts +34 -0
- package/dist/esm/config.d.ts.map +1 -0
- package/dist/esm/config.js +47 -0
- package/dist/esm/config.js.map +1 -0
- package/dist/esm/index.d.ts +15 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/protocols/cctp/cctpTransfer.d.ts +41 -0
- package/dist/esm/protocols/cctp/cctpTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/cctp/cctpTransfer.js +455 -0
- package/dist/esm/protocols/cctp/cctpTransfer.js.map +1 -0
- package/dist/esm/protocols/cctp/index.d.ts +2 -0
- package/dist/esm/protocols/cctp/index.d.ts.map +1 -0
- package/dist/esm/protocols/cctp/index.js +2 -0
- package/dist/esm/protocols/cctp/index.js.map +1 -0
- package/dist/esm/protocols/cctpTransfer.d.ts +41 -0
- package/dist/esm/protocols/cctpTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/cctpTransfer.js +455 -0
- package/dist/esm/protocols/cctpTransfer.js.map +1 -0
- package/dist/esm/protocols/gateway/gatewayTransfer.d.ts +38 -0
- package/dist/esm/protocols/gateway/gatewayTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/gateway/gatewayTransfer.js +356 -0
- package/dist/esm/protocols/gateway/gatewayTransfer.js.map +1 -0
- package/dist/esm/protocols/gateway/index.d.ts +2 -0
- package/dist/esm/protocols/gateway/index.d.ts.map +1 -0
- package/dist/esm/protocols/gateway/index.js +2 -0
- package/dist/esm/protocols/gateway/index.js.map +1 -0
- package/dist/esm/protocols/gatewayTransfer.d.ts +40 -0
- package/dist/esm/protocols/gatewayTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/gatewayTransfer.js +402 -0
- package/dist/esm/protocols/gatewayTransfer.js.map +1 -0
- package/dist/esm/protocols/index.d.ts +5 -0
- package/dist/esm/protocols/index.d.ts.map +1 -0
- package/dist/esm/protocols/index.js +5 -0
- package/dist/esm/protocols/index.js.map +1 -0
- package/dist/esm/protocols/tokenBridge/automatic.d.ts +16 -0
- package/dist/esm/protocols/tokenBridge/automatic.d.ts.map +1 -0
- package/dist/esm/protocols/tokenBridge/automatic.js +73 -0
- package/dist/esm/protocols/tokenBridge/automatic.js.map +1 -0
- package/dist/esm/protocols/tokenBridge/index.d.ts +5 -0
- package/dist/esm/protocols/tokenBridge/index.d.ts.map +1 -0
- package/dist/esm/protocols/tokenBridge/index.js +5 -0
- package/dist/esm/protocols/tokenBridge/index.js.map +1 -0
- package/dist/esm/protocols/tokenBridge/manual.d.ts +16 -0
- package/dist/esm/protocols/tokenBridge/manual.d.ts.map +1 -0
- package/dist/esm/protocols/tokenBridge/manual.js +73 -0
- package/dist/esm/protocols/tokenBridge/manual.js.map +1 -0
- package/dist/esm/protocols/tokenBridge/tokenTransfer.d.ts +20 -0
- package/dist/esm/protocols/tokenBridge/tokenTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/tokenBridge/tokenTransfer.js +20 -0
- package/dist/esm/protocols/tokenBridge/tokenTransfer.js.map +1 -0
- package/dist/esm/protocols/tokenBridge/utils.d.ts +25 -0
- package/dist/esm/protocols/tokenBridge/utils.d.ts.map +1 -0
- package/dist/esm/protocols/tokenBridge/utils.js +323 -0
- package/dist/esm/protocols/tokenBridge/utils.js.map +1 -0
- package/dist/esm/protocols/tokenTransfer.d.ts +40 -0
- package/dist/esm/protocols/tokenTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/tokenTransfer.js +468 -0
- package/dist/esm/protocols/tokenTransfer.js.map +1 -0
- package/dist/esm/protocols/tokenbridge/automatic.d.ts +16 -0
- package/dist/esm/protocols/tokenbridge/automatic.d.ts.map +1 -0
- package/dist/esm/protocols/tokenbridge/automatic.js +72 -0
- package/dist/esm/protocols/tokenbridge/automatic.js.map +1 -0
- package/dist/esm/protocols/tokenbridge/index.d.ts +2 -0
- package/dist/esm/protocols/tokenbridge/index.d.ts.map +1 -0
- package/dist/esm/protocols/tokenbridge/index.js +2 -0
- package/dist/esm/protocols/tokenbridge/index.js.map +1 -0
- package/dist/esm/protocols/tokenbridge/manual.d.ts +16 -0
- package/dist/esm/protocols/tokenbridge/manual.d.ts.map +1 -0
- package/dist/esm/protocols/tokenbridge/manual.js +72 -0
- package/dist/esm/protocols/tokenbridge/manual.js.map +1 -0
- package/dist/esm/protocols/tokenbridge/tokenTransfer.d.ts +37 -0
- package/dist/esm/protocols/tokenbridge/tokenTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/tokenbridge/tokenTransfer.js +337 -0
- package/dist/esm/protocols/tokenbridge/tokenTransfer.js.map +1 -0
- package/dist/esm/protocols/wormholeTransfer.d.ts +20 -0
- package/dist/esm/protocols/wormholeTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/wormholeTransfer.js +2 -0
- package/dist/esm/protocols/wormholeTransfer.js.map +1 -0
- package/dist/esm/routes/automaticTokenBridgeRoute.d.ts +28 -0
- package/dist/esm/routes/automaticTokenBridgeRoute.d.ts.map +1 -0
- package/dist/esm/routes/automaticTokenBridgeRoute.js +78 -0
- package/dist/esm/routes/automaticTokenBridgeRoute.js.map +1 -0
- package/dist/esm/routes/cctp/automatic.d.ts +46 -0
- package/dist/esm/routes/cctp/automatic.d.ts.map +1 -0
- package/dist/esm/routes/cctp/automatic.js +131 -0
- package/dist/esm/routes/cctp/automatic.js.map +1 -0
- package/dist/esm/routes/cctp/index.d.ts +3 -0
- package/dist/esm/routes/cctp/index.d.ts.map +1 -0
- package/dist/esm/routes/cctp/index.js +3 -0
- package/dist/esm/routes/cctp/index.js.map +1 -0
- package/dist/esm/routes/cctp/manual.d.ts +43 -0
- package/dist/esm/routes/cctp/manual.d.ts.map +1 -0
- package/dist/esm/routes/cctp/manual.js +109 -0
- package/dist/esm/routes/cctp/manual.js.map +1 -0
- package/dist/esm/routes/common.d.ts +13 -0
- package/dist/esm/routes/common.d.ts.map +1 -0
- package/dist/esm/routes/common.js +41 -0
- package/dist/esm/routes/common.js.map +1 -0
- package/dist/esm/routes/index.d.ts +9 -0
- package/dist/esm/routes/index.d.ts.map +1 -0
- package/dist/esm/routes/index.js +9 -0
- package/dist/esm/routes/index.js.map +1 -0
- package/dist/esm/routes/mock/automatic.d.ts +25 -0
- package/dist/esm/routes/mock/automatic.d.ts.map +1 -0
- package/dist/esm/routes/mock/automatic.js +84 -0
- package/dist/esm/routes/mock/automatic.js.map +1 -0
- package/dist/esm/routes/mock/index.d.ts +3 -0
- package/dist/esm/routes/mock/index.d.ts.map +1 -0
- package/dist/esm/routes/mock/index.js +3 -0
- package/dist/esm/routes/mock/index.js.map +1 -0
- package/dist/esm/routes/mock/manual.d.ts +24 -0
- package/dist/esm/routes/mock/manual.d.ts.map +1 -0
- package/dist/esm/routes/mock/manual.js +83 -0
- package/dist/esm/routes/mock/manual.js.map +1 -0
- package/dist/esm/routes/portico/automatic.d.ts +68 -0
- package/dist/esm/routes/portico/automatic.d.ts.map +1 -0
- package/dist/esm/routes/portico/automatic.js +204 -0
- package/dist/esm/routes/portico/automatic.js.map +1 -0
- package/dist/esm/routes/portico/index.d.ts +2 -0
- package/dist/esm/routes/portico/index.d.ts.map +1 -0
- package/dist/esm/routes/portico/index.js +2 -0
- package/dist/esm/routes/portico/index.js.map +1 -0
- package/dist/esm/routes/portico/manual.d.ts +61 -0
- package/dist/esm/routes/portico/manual.d.ts.map +1 -0
- package/dist/esm/routes/portico/manual.js +137 -0
- package/dist/esm/routes/portico/manual.js.map +1 -0
- package/dist/esm/routes/portico/utils.d.ts +1 -0
- package/dist/esm/routes/portico/utils.d.ts.map +1 -0
- package/dist/esm/routes/portico/utils.js +2 -0
- package/dist/esm/routes/portico/utils.js.map +1 -0
- package/dist/esm/routes/request.d.ts +25 -0
- package/dist/esm/routes/request.d.ts.map +1 -0
- package/dist/esm/routes/request.js +61 -0
- package/dist/esm/routes/request.js.map +1 -0
- package/dist/esm/routes/resolver.d.ts +15 -0
- package/dist/esm/routes/resolver.d.ts.map +1 -0
- package/dist/esm/routes/resolver.js +83 -0
- package/dist/esm/routes/resolver.js.map +1 -0
- package/dist/esm/routes/route.d.ts +46 -0
- package/dist/esm/routes/route.d.ts.map +1 -0
- package/dist/esm/routes/route.js +26 -0
- package/dist/esm/routes/route.js.map +1 -0
- package/dist/esm/routes/token.d.ts +12 -0
- package/dist/esm/routes/token.d.ts.map +1 -0
- package/dist/esm/routes/token.js +31 -0
- package/dist/esm/routes/token.js.map +1 -0
- package/dist/esm/routes/tokenBridge/automatic.d.ts +46 -0
- package/dist/esm/routes/tokenBridge/automatic.d.ts.map +1 -0
- package/dist/esm/routes/tokenBridge/automatic.js +141 -0
- package/dist/esm/routes/tokenBridge/automatic.js.map +1 -0
- package/dist/esm/routes/tokenBridge/index.d.ts +3 -0
- package/dist/esm/routes/tokenBridge/index.d.ts.map +1 -0
- package/dist/esm/routes/tokenBridge/index.js +3 -0
- package/dist/esm/routes/tokenBridge/index.js.map +1 -0
- package/dist/esm/routes/tokenBridge/manual.d.ts +42 -0
- package/dist/esm/routes/tokenBridge/manual.d.ts.map +1 -0
- package/dist/esm/routes/tokenBridge/manual.js +83 -0
- package/dist/esm/routes/tokenBridge/manual.js.map +1 -0
- package/dist/esm/routes/tokenBridgeRoute.d.ts +25 -0
- package/dist/esm/routes/tokenBridgeRoute.d.ts.map +1 -0
- package/dist/esm/routes/tokenBridgeRoute.js +74 -0
- package/dist/esm/routes/tokenBridgeRoute.js.map +1 -0
- package/dist/esm/routes/types.d.ts +44 -0
- package/dist/esm/routes/types.d.ts.map +1 -0
- package/dist/esm/routes/types.js +2 -0
- package/dist/esm/routes/types.js.map +1 -0
- package/dist/esm/tasks.d.ts +7 -0
- package/dist/esm/tasks.d.ts.map +1 -0
- package/dist/esm/tasks.js +59 -0
- package/dist/esm/tasks.js.map +1 -0
- package/dist/esm/types.d.ts +73 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +27 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/whscan-api.d.ts +172 -0
- package/dist/esm/whscan-api.d.ts.map +1 -0
- package/dist/esm/whscan-api.js +222 -0
- package/dist/esm/whscan-api.js.map +1 -0
- package/dist/esm/wormhole.d.ts +198 -0
- package/dist/esm/wormhole.d.ts.map +1 -0
- package/dist/esm/wormhole.js +320 -0
- package/dist/esm/wormhole.js.map +1 -0
- package/dist/esm/wormholeTransfer.d.ts +78 -0
- package/dist/esm/wormholeTransfer.d.ts.map +1 -0
- package/dist/esm/wormholeTransfer.js +21 -0
- package/dist/esm/wormholeTransfer.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ManualTokenTransfer = void 0;
|
|
4
|
+
const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
|
|
5
|
+
const common_1 = require("../../common");
|
|
6
|
+
const types_1 = require("../../types");
|
|
7
|
+
const tokenTransfer_1 = require("./tokenTransfer");
|
|
8
|
+
const utils_1 = require("./utils");
|
|
9
|
+
class ManualTokenTransfer extends tokenTransfer_1.TokenTransfer {
|
|
10
|
+
getTransferState() {
|
|
11
|
+
return this.receipt.state;
|
|
12
|
+
}
|
|
13
|
+
async initiateTransfer(signer) {
|
|
14
|
+
if (!(0, types_1.isCreated)(this.receipt))
|
|
15
|
+
throw (0, types_1.ErrInvalidStateTransition)("Expected transfer details to be created");
|
|
16
|
+
const originTxs = await ManualTokenTransfer.transfer(this.fromChain, this.transfer, signer);
|
|
17
|
+
const state = types_1.TransferState.SourceInitiated;
|
|
18
|
+
this.receipt = { ...this.receipt, state, originTxs };
|
|
19
|
+
return originTxs.map(({ txid }) => txid);
|
|
20
|
+
}
|
|
21
|
+
async fetchAttestation(timeout) {
|
|
22
|
+
if (!(0, types_1.hasSourceInitiated)(this.receipt))
|
|
23
|
+
throw (0, types_1.ErrInvalidStateTransition)("Expected source to be initiated");
|
|
24
|
+
// We already have it, just return it
|
|
25
|
+
if ((0, types_1.hasAttested)(this.receipt))
|
|
26
|
+
return [this.receipt.attestation.id];
|
|
27
|
+
// We dont have the message id yet, grab it
|
|
28
|
+
if (!(0, types_1.hasSourceFinalized)(this.receipt)) {
|
|
29
|
+
const { originTxs } = this.receipt;
|
|
30
|
+
const txid = originTxs[originTxs.length - 1];
|
|
31
|
+
const msgId = await utils_1.TokenTransferUtils.getTransferMessage(this.fromChain, txid.txid, timeout);
|
|
32
|
+
this.receipt = {
|
|
33
|
+
...this.receipt,
|
|
34
|
+
state: types_1.TransferState.SourceFinalized,
|
|
35
|
+
attestation: { id: msgId },
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// No signed attestation yet, try to grab it
|
|
39
|
+
if (!(0, types_1.hasAttested)(this.receipt)) {
|
|
40
|
+
const vaa = await utils_1.TokenTransferUtils.getTransferVaa(this.wh, this.receipt.attestation.id, timeout);
|
|
41
|
+
this.receipt = {
|
|
42
|
+
...this.receipt,
|
|
43
|
+
state: types_1.TransferState.Attested,
|
|
44
|
+
attestation: { id: this.receipt.attestation.id, attestation: vaa },
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return [this.receipt.attestation.id];
|
|
48
|
+
}
|
|
49
|
+
// finish the WormholeTransfer by submitting transactions to the destination chain
|
|
50
|
+
// returns a transaction hash
|
|
51
|
+
async completeTransfer(signer) {
|
|
52
|
+
if (!(0, types_1.isAttested)(this.receipt))
|
|
53
|
+
throw (0, types_1.ErrInvalidStateTransition)("Expected transfer to be attested");
|
|
54
|
+
const { attestation: { attestation: vaa }, } = this.receipt;
|
|
55
|
+
const destinationTxs = await ManualTokenTransfer.redeem(this.toChain, vaa, signer);
|
|
56
|
+
this.receipt = {
|
|
57
|
+
...this.receipt,
|
|
58
|
+
state: types_1.TransferState.DestinationInitiated,
|
|
59
|
+
destinationTxs,
|
|
60
|
+
};
|
|
61
|
+
return this.receipt.destinationTxs.map(({ txid }) => txid);
|
|
62
|
+
}
|
|
63
|
+
static async transfer(chainCtx, transfer, signer) {
|
|
64
|
+
const senderAddress = (0, sdk_definitions_1.toNative)(signer.chain(), signer.address());
|
|
65
|
+
const tb = await chainCtx.getTokenBridge();
|
|
66
|
+
const xfer = tb.transfer(senderAddress, transfer.to, transfer.token.address, transfer.amount, transfer.payload);
|
|
67
|
+
return (0, common_1.signSendWait)(chainCtx, xfer, signer);
|
|
68
|
+
}
|
|
69
|
+
static async redeem(toChain, vaa, signer) {
|
|
70
|
+
const signerAddress = (0, sdk_definitions_1.toNative)(signer.chain(), signer.address());
|
|
71
|
+
const tb = await toChain.getTokenBridge();
|
|
72
|
+
const xfer = tb.redeem(signerAddress, vaa);
|
|
73
|
+
return (0, common_1.signSendWait)(toChain, xfer, signer);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.ManualTokenTransfer = ManualTokenTransfer;
|
|
77
|
+
//# sourceMappingURL=manual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual.js","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/manual.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Chain, Network, Platform } from "@wormhole-foundation/sdk-base";
|
|
2
|
+
import { AttestationId, AutomaticTokenBridge, ChainContext, ProtocolName, Signer, TokenBridge, TokenTransferDetails, TxHash } from "@wormhole-foundation/sdk-definitions";
|
|
3
|
+
import { AttestationReceipt, TransferReceipt } from "../../types";
|
|
4
|
+
import { Wormhole } from "../../wormhole";
|
|
5
|
+
export type TokenTransferProtocol = "TokenBridge" | "AutomaticTokenBridge";
|
|
6
|
+
export type TokenTransferVAA = TokenBridge.TransferVAA | AutomaticTokenBridge.VAA;
|
|
7
|
+
export type TokenTransferAttestationReceipt = AttestationReceipt<TokenTransferProtocol>;
|
|
8
|
+
export type TokenTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> = TransferReceipt<TokenTransferAttestationReceipt, SC, DC>;
|
|
9
|
+
export declare abstract class TokenTransfer<N extends Network = Network, PN extends ProtocolName = ProtocolName> {
|
|
10
|
+
wh: Wormhole<N>;
|
|
11
|
+
fromChain: ChainContext<N, Platform, Chain>;
|
|
12
|
+
toChain: ChainContext<N, Platform, Chain>;
|
|
13
|
+
transfer: TokenTransferDetails;
|
|
14
|
+
receipt: TransferReceipt<AttestationReceipt<PN>>;
|
|
15
|
+
constructor(wh: Wormhole<N>, transfer: TokenTransferDetails, fromChain?: ChainContext<N, Platform, Chain>, toChain?: ChainContext<N, Platform, Chain>);
|
|
16
|
+
abstract initiateTransfer(signer: Signer): Promise<TxHash[]>;
|
|
17
|
+
abstract fetchAttestation(timeout?: number): Promise<AttestationId[]>;
|
|
18
|
+
abstract completeTransfer(signer: Signer): Promise<TxHash[]>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=tokenTransfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransfer.d.ts","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/tokenTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,WAAW,EACX,oBAAoB,EACpB,MAAM,EACP,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAiB,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,sBAAsB,CAAC;AAC3E,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC;AAElF,MAAM,MAAM,+BAA+B,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;AACxF,MAAM,MAAM,oBAAoB,CAC9B,EAAE,SAAS,KAAK,GAAG,KAAK,EACxB,EAAE,SAAS,KAAK,GAAG,KAAK,IACtB,eAAe,CAAC,+BAA+B,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAE7D,8BAAsB,aAAa,CACjC,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,EAAE,SAAS,YAAY,GAAG,YAAY;IAEtC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChB,SAAS,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE1C,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAG/C,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC5C,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC;IAe5C,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5D,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACrE,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAC7D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TokenTransfer = void 0;
|
|
4
|
+
const types_1 = require("../../types");
|
|
5
|
+
class TokenTransfer {
|
|
6
|
+
wh;
|
|
7
|
+
fromChain;
|
|
8
|
+
toChain;
|
|
9
|
+
transfer;
|
|
10
|
+
receipt;
|
|
11
|
+
constructor(wh, transfer, fromChain, toChain) {
|
|
12
|
+
this.wh = wh;
|
|
13
|
+
this.transfer = transfer;
|
|
14
|
+
this.fromChain = fromChain ?? wh.getChain(transfer.from.chain);
|
|
15
|
+
this.toChain = toChain ?? wh.getChain(transfer.to.chain);
|
|
16
|
+
this.receipt = {
|
|
17
|
+
from: transfer.from.chain,
|
|
18
|
+
to: transfer.to.chain,
|
|
19
|
+
state: types_1.TransferState.Created,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.TokenTransfer = TokenTransfer;
|
|
24
|
+
//# sourceMappingURL=tokenTransfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransfer.js","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/tokenTransfer.ts"],"names":[],"mappings":";;;AAWA,uCAAiF;AAYjF,MAAsB,aAAa;IAIjC,EAAE,CAAc;IAChB,SAAS,CAAmC;IAC5C,OAAO,CAAmC;IAE1C,QAAQ,CAAuB;IAC/B,OAAO,CAA0C;IAEjD,YACE,EAAe,EACf,QAA8B,EAC9B,SAA4C,EAC5C,OAA0C;QAE1C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAEzD,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;YACzB,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK;YACrB,KAAK,EAAE,qBAAa,CAAC,OAAO;SAC7B,CAAC;IACJ,CAAC;CAKF;AAjCD,sCAiCC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Chain, ChainToPlatform, Network, Platform } from "@wormhole-foundation/sdk-base";
|
|
2
|
+
import { ChainContext, TokenId, TokenTransferDetails, TransactionId, TxHash, WormholeMessageId } from "@wormhole-foundation/sdk-definitions";
|
|
3
|
+
import { AttestationReceipt, TransferQuote, TransferReceipt } from "../../types";
|
|
4
|
+
import { Wormhole } from "../../wormhole";
|
|
5
|
+
import { TokenTransfer, TokenTransferProtocol, TokenTransferReceipt, TokenTransferVAA } from "./tokenTransfer";
|
|
6
|
+
export declare const truncate: (amt: bigint, decimals: bigint) => bigint;
|
|
7
|
+
export declare const scale: (amt: bigint, decimals: bigint) => bigint;
|
|
8
|
+
export declare const _dedust: (decimals: bigint) => (amt: bigint) => bigint;
|
|
9
|
+
export declare const _mintable: (srcDecimals: bigint, dstDecimals: bigint) => (amt: bigint) => bigint;
|
|
10
|
+
export declare class TokenTransferUtils {
|
|
11
|
+
static from<N extends Network>(wh: Wormhole<N>, from: TokenTransferDetails, timeout?: number, fromChain?: ChainContext<N, Platform, Chain>, toChain?: ChainContext<N, Platform, Chain>): Promise<TokenTransfer<N>>;
|
|
12
|
+
static from<N extends Network>(wh: Wormhole<N>, from: WormholeMessageId, timeout?: number, fromChain?: ChainContext<N, Platform, Chain>, toChain?: ChainContext<N, Platform, Chain>): Promise<TokenTransfer<N>>;
|
|
13
|
+
static from<N extends Network>(wh: Wormhole<N>, from: TransactionId, timeout?: number, fromChain?: ChainContext<N, Platform, Chain>, toChain?: ChainContext<N, Platform, Chain>): Promise<TokenTransfer<N>>;
|
|
14
|
+
private static fromIdentifier;
|
|
15
|
+
private static fromTransaction;
|
|
16
|
+
static getTransferMessage<N extends Network>(chain: ChainContext<N, Platform, Chain>, txid: TxHash, timeout?: number): Promise<WormholeMessageId>;
|
|
17
|
+
static getTransferVaa<N extends Network>(wh: Wormhole<N>, key: WormholeMessageId | TxHash, timeout?: number): Promise<TokenTransferVAA>;
|
|
18
|
+
static lookupDestinationToken<N extends Network, SC extends Chain, DC extends Chain>(srcChain: ChainContext<N, ChainToPlatform<SC>, SC>, dstChain: ChainContext<N, ChainToPlatform<DC>, DC>, token: TokenId<SC>): Promise<TokenId<DC>>;
|
|
19
|
+
static validateTransferDetails<N extends Network>(wh: Wormhole<N>, transfer: TokenTransferDetails, fromChain?: ChainContext<N, Platform, Chain>, toChain?: ChainContext<N, Platform, Chain>): void;
|
|
20
|
+
static quoteTransfer<N extends Network>(srcChain: ChainContext<N, Platform, Chain>, dstChain: ChainContext<N, Platform, Chain>, transfer: TokenTransferDetails): Promise<TransferQuote>;
|
|
21
|
+
static isTransferComplete<N extends Network>(toChain: ChainContext<N, Platform, Chain>, receipt: TransferReceipt<AttestationReceipt<TokenTransferProtocol>>): Promise<boolean>;
|
|
22
|
+
static track<N extends Network, SC extends Chain, DC extends Chain>(wh: Wormhole<N>, receipt: TokenTransferReceipt<SC, DC>, timeout?: number, fromChain?: ChainContext<N, ChainToPlatform<SC>, SC>, toChain?: ChainContext<N, ChainToPlatform<DC>, DC>): AsyncGenerator<TokenTransferReceipt<SC, DC>>;
|
|
23
|
+
static destinationOverrides<N extends Network>(srcChain: ChainContext<N, Platform, Chain>, dstChain: ChainContext<N, Platform, Chain>, transfer: TokenTransferDetails): Promise<TokenTransferDetails>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,eAAe,EACf,OAAO,EACP,QAAQ,EAGT,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,YAAY,EAEZ,OAAO,EACP,oBAAoB,EACpB,aAAa,EACb,MAAM,EACN,iBAAiB,EAQlB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,kBAAkB,EAMlB,aAAa,EACb,eAAe,EAKhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,OAAO,EACL,aAAa,EAEb,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,QAAQ,QAAS,MAAM,YAAY,MAAM,WACH,CAAC;AAEpD,eAAO,MAAM,KAAK,QAAS,MAAM,YAAY,MAAM,WACA,CAAC;AAIpD,eAAO,MAAM,OAAO,aAAc,MAAM,WAAW,MAAM,WACf,CAAC;AAG3C,eAAO,MAAM,SAAS,gBAAiB,MAAM,eAAe,MAAM,WAAW,MAAM,WACnC,CAAC;AACjD,qBAAa,kBAAkB;WAEhB,IAAI,CAAC,CAAC,SAAS,OAAO,EACjC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,oBAAoB,EAC1B,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC5C,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,GACzC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;WAEf,IAAI,CAAC,CAAC,SAAS,OAAO,EACjC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC5C,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,GACzC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;WACf,IAAI,CAAC,CAAC,SAAS,OAAO,EACjC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC5C,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,GACzC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;mBA6CP,cAAc;mBAiDd,eAAe;WAWvB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAC/C,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EACvC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC;WAMhB,cAAc,CAAC,CAAC,SAAS,OAAO,EAC3C,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,GAAG,EAAE,iBAAiB,GAAG,MAAM,EAC/B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC;WAwBf,sBAAsB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,KAAK,EACvF,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAClD,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAClD,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,GACjB,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IA4BvB,MAAM,CAAC,uBAAuB,CAAC,CAAC,SAAS,OAAO,EAC9C,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC5C,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,GACzC,IAAI;WAiCM,aAAa,CAAC,CAAC,SAAS,OAAO,EAC1C,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC1C,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC1C,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC;WAqDZ,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAC/C,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EACzC,OAAO,EAAE,eAAe,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,GAClE,OAAO,CAAC,OAAO,CAAC;WAeL,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,KAAK,EACvE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,OAAO,EAAE,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,EACrC,OAAO,GAAE,MAA6B,EACtC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EACpD,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GACjD,cAAc,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;WA2ElC,oBAAoB,CAAC,CAAC,SAAS,OAAO,EACjD,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC1C,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC1C,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,oBAAoB,CAAC;CAsCjC"}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TokenTransferUtils = exports._mintable = exports._dedust = exports.scale = exports.truncate = void 0;
|
|
4
|
+
const sdk_base_1 = require("@wormhole-foundation/sdk-base");
|
|
5
|
+
const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
|
|
6
|
+
const config_1 = require("../../config");
|
|
7
|
+
const types_1 = require("../../types");
|
|
8
|
+
const wormhole_1 = require("../../wormhole");
|
|
9
|
+
const automatic_1 = require("./automatic");
|
|
10
|
+
const manual_1 = require("./manual");
|
|
11
|
+
// truncate the amount for over-the-wire max representation
|
|
12
|
+
const truncate = (amt, decimals) => decimals > 8 ? amt / 10n ** (decimals - 8n) : amt;
|
|
13
|
+
exports.truncate = truncate;
|
|
14
|
+
// scale by number of decimals, pair with truncate
|
|
15
|
+
const scale = (amt, decimals) => decimals > 8 ? amt * 10n ** (decimals - 8n) : amt;
|
|
16
|
+
exports.scale = scale;
|
|
17
|
+
// dedust for source using the number of decimals on the source chain
|
|
18
|
+
// but scale back to original decimals
|
|
19
|
+
const _dedust = (decimals) => (amt) => (0, exports.scale)((0, exports.truncate)(amt, decimals), decimals);
|
|
20
|
+
exports._dedust = _dedust;
|
|
21
|
+
// truncate and rescale to fit destination token
|
|
22
|
+
const _mintable = (srcDecimals, dstDecimals) => (amt) => (0, exports.scale)((0, exports.truncate)(amt, srcDecimals), dstDecimals);
|
|
23
|
+
exports._mintable = _mintable;
|
|
24
|
+
class TokenTransferUtils {
|
|
25
|
+
static async from(wh, from, timeout = 6000, fromChain, toChain) {
|
|
26
|
+
if ((0, sdk_definitions_1.isTokenTransferDetails)(from)) {
|
|
27
|
+
fromChain = fromChain ?? wh.getChain(from.from.chain);
|
|
28
|
+
toChain = toChain ?? wh.getChain(from.to.chain);
|
|
29
|
+
// throws if invalid
|
|
30
|
+
this.validateTransferDetails(wh, from, fromChain, toChain);
|
|
31
|
+
// Apply hackery
|
|
32
|
+
from = {
|
|
33
|
+
...from,
|
|
34
|
+
...(await this.destinationOverrides(fromChain, toChain, from)),
|
|
35
|
+
};
|
|
36
|
+
if (from.automatic) {
|
|
37
|
+
return new automatic_1.AutomaticTokenTransfer(wh, from, fromChain, toChain);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return new manual_1.ManualTokenTransfer(wh, from, fromChain, toChain);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
let tt;
|
|
44
|
+
if ((0, sdk_definitions_1.isWormholeMessageId)(from)) {
|
|
45
|
+
tt = await this.fromIdentifier(wh, from, timeout);
|
|
46
|
+
}
|
|
47
|
+
else if ((0, sdk_definitions_1.isTransactionIdentifier)(from)) {
|
|
48
|
+
tt = await this.fromTransaction(wh, from, timeout, fromChain);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
throw new Error("Invalid `from` parameter for TokenTransfer");
|
|
52
|
+
}
|
|
53
|
+
tt.fromChain = fromChain ?? wh.getChain(tt.transfer.from.chain);
|
|
54
|
+
tt.toChain = toChain ?? wh.getChain(tt.transfer.to.chain);
|
|
55
|
+
await tt.fetchAttestation(timeout);
|
|
56
|
+
return tt;
|
|
57
|
+
}
|
|
58
|
+
// init from the seq id
|
|
59
|
+
static async fromIdentifier(wh, id, timeout) {
|
|
60
|
+
const vaa = await this.getTransferVaa(wh, id, timeout);
|
|
61
|
+
const automatic = vaa.protocolName === "AutomaticTokenBridge";
|
|
62
|
+
// TODO: the `from.address` here is a lie, but we don't
|
|
63
|
+
// immediately have enough info to get the _correct_ one
|
|
64
|
+
let from = { chain: vaa.emitterChain, address: vaa.emitterAddress };
|
|
65
|
+
let { token, to } = vaa.payload;
|
|
66
|
+
const rescale = (amt, decimals) => decimals > 8 ? amt * 10n ** (decimals - 8n) : amt;
|
|
67
|
+
const amount = rescale(token.amount, await wh.getDecimals(token.chain, token.address));
|
|
68
|
+
let nativeGasAmount = 0n;
|
|
69
|
+
if (automatic) {
|
|
70
|
+
nativeGasAmount = vaa.payload.payload.toNativeTokenAmount;
|
|
71
|
+
from = { chain: vaa.emitterChain, address: vaa.payload.from };
|
|
72
|
+
to = { chain: vaa.payload.to.chain, address: vaa.payload.payload.targetRecipient };
|
|
73
|
+
}
|
|
74
|
+
const details = {
|
|
75
|
+
token,
|
|
76
|
+
amount,
|
|
77
|
+
from,
|
|
78
|
+
to,
|
|
79
|
+
automatic,
|
|
80
|
+
nativeGas: nativeGasAmount,
|
|
81
|
+
};
|
|
82
|
+
let tt;
|
|
83
|
+
if (automatic) {
|
|
84
|
+
tt = new automatic_1.AutomaticTokenTransfer(wh, details);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
tt = new manual_1.ManualTokenTransfer(wh, details);
|
|
88
|
+
}
|
|
89
|
+
tt.receipt = {
|
|
90
|
+
...tt.receipt,
|
|
91
|
+
state: types_1.TransferState.Attested,
|
|
92
|
+
attestation: { id: id, attestation: vaa },
|
|
93
|
+
};
|
|
94
|
+
return tt;
|
|
95
|
+
}
|
|
96
|
+
static async fromTransaction(wh, from, timeout, fromChain) {
|
|
97
|
+
fromChain = fromChain ?? wh.getChain(from.chain);
|
|
98
|
+
const msg = await this.getTransferMessage(fromChain, from.txid, timeout);
|
|
99
|
+
return await this.fromIdentifier(wh, msg, timeout);
|
|
100
|
+
}
|
|
101
|
+
static async getTransferMessage(chain, txid, timeout) {
|
|
102
|
+
const whm = await wormhole_1.Wormhole.parseMessageFromTx(chain, txid, timeout);
|
|
103
|
+
if (whm.length !== 1)
|
|
104
|
+
throw new Error("Expected a single Wormhole Message, got: " + whm.length);
|
|
105
|
+
return whm[0];
|
|
106
|
+
}
|
|
107
|
+
static async getTransferVaa(wh, key, timeout) {
|
|
108
|
+
const vaa = typeof key === "string"
|
|
109
|
+
? await wh.getVaaByTxHash(key, sdk_definitions_1.TokenBridge.getTransferDiscriminator(), timeout)
|
|
110
|
+
: await wh.getVaa(key, sdk_definitions_1.TokenBridge.getTransferDiscriminator(), timeout);
|
|
111
|
+
if (!vaa)
|
|
112
|
+
throw new Error(`No VAA available after retries exhausted`);
|
|
113
|
+
// Check if its automatic and re-de-serialize
|
|
114
|
+
if (vaa.payloadName === "TransferWithPayload") {
|
|
115
|
+
const { chain, address } = vaa.payload.to;
|
|
116
|
+
const { tokenBridgeRelayer } = wh.config.chains[chain].contracts;
|
|
117
|
+
const relayerAddress = tokenBridgeRelayer ? (0, sdk_definitions_1.toUniversal)(chain, tokenBridgeRelayer) : null;
|
|
118
|
+
// If the target address is the relayer address, expect its an automatic token bridge vaa
|
|
119
|
+
if (!!relayerAddress && address.equals(relayerAddress)) {
|
|
120
|
+
return (0, sdk_definitions_1.deserialize)("AutomaticTokenBridge:TransferWithRelay", (0, sdk_definitions_1.serialize)(vaa));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return vaa;
|
|
124
|
+
}
|
|
125
|
+
// Lookup the token id for the destination chain given the source chain
|
|
126
|
+
// and token id
|
|
127
|
+
static async lookupDestinationToken(srcChain, dstChain, token) {
|
|
128
|
+
// that will be minted when the transfer is redeemed
|
|
129
|
+
let lookup;
|
|
130
|
+
if ((0, sdk_definitions_1.isNative)(token.address)) {
|
|
131
|
+
// if native, get the wrapped asset id
|
|
132
|
+
lookup = await srcChain.getNativeWrappedTokenId();
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
try {
|
|
136
|
+
const tb = await srcChain.getTokenBridge();
|
|
137
|
+
// otherwise, check to see if it is a wrapped token locally
|
|
138
|
+
lookup = await tb.getOriginalAsset(token.address);
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
// not a from-chain native wormhole-wrapped one
|
|
142
|
+
lookup = token;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// if the token id is actually native to the destination, return it
|
|
146
|
+
if (lookup.chain === dstChain.chain) {
|
|
147
|
+
return lookup;
|
|
148
|
+
}
|
|
149
|
+
// otherwise, figure out what the token address representing the wormhole-wrapped token we're transferring
|
|
150
|
+
const dstTb = await dstChain.getTokenBridge();
|
|
151
|
+
const dstAddress = await dstTb.getWrappedAsset(lookup);
|
|
152
|
+
return { chain: dstChain.chain, address: dstAddress };
|
|
153
|
+
}
|
|
154
|
+
static validateTransferDetails(wh, transfer, fromChain, toChain) {
|
|
155
|
+
if (transfer.amount === 0n)
|
|
156
|
+
throw new Error("Amount cannot be 0");
|
|
157
|
+
if (transfer.from.chain === transfer.to.chain)
|
|
158
|
+
throw new Error("Cannot transfer to the same chain");
|
|
159
|
+
fromChain = fromChain ?? wh.getChain(transfer.from.chain);
|
|
160
|
+
toChain = toChain ?? wh.getChain(transfer.to.chain);
|
|
161
|
+
if (transfer.automatic) {
|
|
162
|
+
if (transfer.payload)
|
|
163
|
+
throw new Error("Payload with automatic delivery is not supported");
|
|
164
|
+
if (!fromChain.supportsAutomaticTokenBridge())
|
|
165
|
+
throw new Error(`Automatic Token Bridge not supported on ${transfer.from.chain}`);
|
|
166
|
+
if (!toChain.supportsAutomaticTokenBridge())
|
|
167
|
+
throw new Error(`Automatic Token Bridge not supported on ${transfer.to.chain}`);
|
|
168
|
+
const nativeGas = transfer.nativeGas ?? 0n;
|
|
169
|
+
if (nativeGas > transfer.amount)
|
|
170
|
+
throw new Error(`Native gas amount > amount (${nativeGas} > ${transfer.amount})`);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
if (transfer.nativeGas)
|
|
174
|
+
throw new Error("Gas Dropoff is only supported for automatic transfers");
|
|
175
|
+
if (!fromChain.supportsTokenBridge())
|
|
176
|
+
throw new Error(`Token Bridge not supported on ${transfer.from.chain}`);
|
|
177
|
+
if (!toChain.supportsTokenBridge())
|
|
178
|
+
throw new Error(`Token Bridge not supported on ${transfer.to.chain}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
static async quoteTransfer(srcChain, dstChain, transfer) {
|
|
182
|
+
const dstToken = await this.lookupDestinationToken(srcChain, dstChain, transfer.token);
|
|
183
|
+
const srcToken = (0, sdk_definitions_1.isNative)(transfer.token.address)
|
|
184
|
+
? await srcChain.getNativeWrappedTokenId()
|
|
185
|
+
: transfer.token;
|
|
186
|
+
const dstDecimals = await dstChain.getDecimals(dstToken.address);
|
|
187
|
+
const srcDecimals = await srcChain.getDecimals(srcToken.address);
|
|
188
|
+
const dedust = (0, exports._dedust)(srcDecimals);
|
|
189
|
+
const mintable = (0, exports._mintable)(srcDecimals, dstDecimals);
|
|
190
|
+
// dedust for transfer over the bridge which truncates to 8 decimals
|
|
191
|
+
let srcAmount = dedust(transfer.amount);
|
|
192
|
+
let dstAmount = mintable(transfer.amount);
|
|
193
|
+
if (!transfer.automatic) {
|
|
194
|
+
return {
|
|
195
|
+
sourceToken: { token: srcToken, amount: srcAmount },
|
|
196
|
+
destinationToken: { token: dstToken, amount: dstAmount },
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
// Otherwise automatic
|
|
200
|
+
// If a native gas dropoff is requested, remove that from the amount they'll get
|
|
201
|
+
const _nativeGas = transfer.nativeGas ? mintable(transfer.nativeGas) : 0n;
|
|
202
|
+
dstAmount -= _nativeGas;
|
|
203
|
+
// The fee is also removed from the amount transferred
|
|
204
|
+
// quoted on the source chain
|
|
205
|
+
const stb = await srcChain.getAutomaticTokenBridge();
|
|
206
|
+
const fee = await stb.getRelayerFee(transfer.from.address, transfer.to, srcToken.address);
|
|
207
|
+
dstAmount -= mintable(fee);
|
|
208
|
+
// The expected destination gas can be pulled from the destination token bridge
|
|
209
|
+
let destinationNativeGas = 0n;
|
|
210
|
+
if (transfer.nativeGas) {
|
|
211
|
+
const dtb = await dstChain.getAutomaticTokenBridge();
|
|
212
|
+
destinationNativeGas = await dtb.nativeTokenAmount(dstToken.address, _nativeGas);
|
|
213
|
+
}
|
|
214
|
+
return {
|
|
215
|
+
sourceToken: {
|
|
216
|
+
token: srcToken,
|
|
217
|
+
amount: srcAmount,
|
|
218
|
+
},
|
|
219
|
+
destinationToken: { token: dstToken, amount: dstAmount },
|
|
220
|
+
relayFee: { token: srcToken, amount: fee },
|
|
221
|
+
destinationNativeGas,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
static async isTransferComplete(toChain, receipt) {
|
|
225
|
+
if (!(0, types_1.isAttested)(receipt))
|
|
226
|
+
return false;
|
|
227
|
+
const vaa = (0, sdk_definitions_1.deserialize)("TokenBridge:TransferWithPayload", (0, sdk_definitions_1.serialize)(receipt.attestation.attestation));
|
|
228
|
+
const tb = await toChain.getTokenBridge();
|
|
229
|
+
return tb.isTransferCompleted(vaa);
|
|
230
|
+
}
|
|
231
|
+
// AsyncGenerator fn that produces status updates through an async generator
|
|
232
|
+
// eventually producing a receipt
|
|
233
|
+
// can be called repeatedly so the receipt is updated as it moves through the
|
|
234
|
+
// steps of the transfer
|
|
235
|
+
static async *track(wh, receipt, timeout = config_1.DEFAULT_TASK_TIMEOUT, fromChain, toChain) {
|
|
236
|
+
const start = Date.now();
|
|
237
|
+
const leftover = (start, max) => Math.max(max - (Date.now() - start), 0);
|
|
238
|
+
fromChain = fromChain ?? wh.getChain(receipt.from);
|
|
239
|
+
toChain = toChain ?? wh.getChain(receipt.to);
|
|
240
|
+
// Check the source chain for initiation transaction
|
|
241
|
+
// and capture the message id
|
|
242
|
+
if ((0, types_1.isSourceInitiated)(receipt)) {
|
|
243
|
+
if (receipt.originTxs.length === 0)
|
|
244
|
+
throw "Origin transactions required to fetch message id";
|
|
245
|
+
const { txid } = receipt.originTxs[receipt.originTxs.length - 1];
|
|
246
|
+
const msg = await this.getTransferMessage(fromChain, txid, leftover(start, timeout));
|
|
247
|
+
receipt = {
|
|
248
|
+
...receipt,
|
|
249
|
+
state: types_1.TransferState.SourceFinalized,
|
|
250
|
+
attestation: { id: msg },
|
|
251
|
+
};
|
|
252
|
+
yield receipt;
|
|
253
|
+
}
|
|
254
|
+
// If the source is finalized, we need to fetch the signed attestation
|
|
255
|
+
// so that we may deliver it to the destination chain
|
|
256
|
+
// or at least track the transfer through its progress
|
|
257
|
+
if ((0, types_1.isSourceFinalized)(receipt)) {
|
|
258
|
+
if (!receipt.attestation.id)
|
|
259
|
+
throw "Attestation id required to fetch attestation";
|
|
260
|
+
const { id } = receipt.attestation;
|
|
261
|
+
const attestation = await this.getTransferVaa(wh, id, leftover(start, timeout));
|
|
262
|
+
receipt = {
|
|
263
|
+
...receipt,
|
|
264
|
+
attestation: { id, attestation },
|
|
265
|
+
state: types_1.TransferState.Attested,
|
|
266
|
+
};
|
|
267
|
+
yield receipt;
|
|
268
|
+
}
|
|
269
|
+
// First try to grab the tx status from the API
|
|
270
|
+
// Note: this requires a subsequent async step on the backend
|
|
271
|
+
// to have the dest txid populated, so it may be delayed by some time
|
|
272
|
+
if ((0, types_1.isAttested)(receipt) || (0, types_1.isSourceFinalized)(receipt)) {
|
|
273
|
+
if (!receipt.attestation.id)
|
|
274
|
+
throw "Attestation id required to fetch redeem tx";
|
|
275
|
+
const { id } = receipt.attestation;
|
|
276
|
+
const txStatus = await wh.getTransactionStatus(id, leftover(start, timeout));
|
|
277
|
+
if (txStatus && txStatus.globalTx?.destinationTx?.txHash) {
|
|
278
|
+
const { chainId, txHash } = txStatus.globalTx.destinationTx;
|
|
279
|
+
receipt = {
|
|
280
|
+
...receipt,
|
|
281
|
+
destinationTxs: [{ chain: (0, sdk_base_1.toChain)(chainId), txid: txHash }],
|
|
282
|
+
state: types_1.TransferState.DestinationFinalized,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
yield receipt;
|
|
286
|
+
}
|
|
287
|
+
// Fall back to asking the destination chain if this VAA has been redeemed
|
|
288
|
+
// Note: We do not get any destinationTxs with this method
|
|
289
|
+
if ((0, types_1.isAttested)(receipt)) {
|
|
290
|
+
if (!receipt.attestation.attestation)
|
|
291
|
+
throw (0, types_1.ErrInvalidStateTransition)("Signed Attestation required to check for redeem");
|
|
292
|
+
let isComplete = await this.isTransferComplete(toChain, receipt);
|
|
293
|
+
if (isComplete) {
|
|
294
|
+
receipt = {
|
|
295
|
+
...receipt,
|
|
296
|
+
state: types_1.TransferState.DestinationFinalized,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
yield receipt;
|
|
300
|
+
}
|
|
301
|
+
yield receipt;
|
|
302
|
+
}
|
|
303
|
+
static async destinationOverrides(srcChain, dstChain, transfer) {
|
|
304
|
+
const _transfer = { ...transfer };
|
|
305
|
+
// Bit of (temporary) hackery until solana contracts support being
|
|
306
|
+
// sent a VAA with the primary address
|
|
307
|
+
// Note: Do _not_ override if automatic or if the destination token is native
|
|
308
|
+
// gas token
|
|
309
|
+
if (transfer.to.chain === "Solana" && !_transfer.automatic) {
|
|
310
|
+
const destinationToken = await this.lookupDestinationToken(srcChain, dstChain, _transfer.token);
|
|
311
|
+
// TODO: If the token is native, no need to overwrite the destination address check for native
|
|
312
|
+
//if (!destinationToken.address.equals((await dstChain.getNativeWrappedTokenId()).address))
|
|
313
|
+
_transfer.to = await dstChain.getTokenAccount(_transfer.to.address, destinationToken.address);
|
|
314
|
+
}
|
|
315
|
+
if (_transfer.to.chain === "Sei") {
|
|
316
|
+
if (_transfer.to.chain === "Sei" && _transfer.payload)
|
|
317
|
+
throw new Error("Arbitrary payloads unsupported for Sei");
|
|
318
|
+
// For sei, we reserve the payload for a token transfer through the sei bridge.
|
|
319
|
+
_transfer.payload = sdk_base_1.encoding.bytes.encode(JSON.stringify({
|
|
320
|
+
basic_recipient: {
|
|
321
|
+
recipient: sdk_base_1.encoding.b64.encode(_transfer.to.address.toString()),
|
|
322
|
+
},
|
|
323
|
+
}));
|
|
324
|
+
_transfer.to = wormhole_1.Wormhole.chainAddress(_transfer.to.chain, dstChain.config.contracts.translator);
|
|
325
|
+
}
|
|
326
|
+
return _transfer;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
exports.TokenTransferUtils = TokenTransferUtils;
|
|
330
|
+
TokenTransferUtils;
|
|
331
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Chain, Network } from "@wormhole-foundation/sdk-base";
|
|
2
|
+
import { AttestationId, AutomaticTokenBridge, ChainContext, Signer, TokenBridge, TokenId, TokenTransferDetails, TransactionId, TxHash, WormholeMessageId } from "@wormhole-foundation/sdk-definitions";
|
|
3
|
+
import { AttestationReceipt, TransferQuote, TransferReceipt, TransferState } from "../types";
|
|
4
|
+
import { Wormhole } from "../wormhole";
|
|
5
|
+
import { WormholeTransfer } from "./wormholeTransfer";
|
|
6
|
+
export type TokenTransferProtocol = "TokenBridge" | "AutomaticTokenBridge";
|
|
7
|
+
export type TokenTransferVAA = TokenBridge.TransferVAA | AutomaticTokenBridge.VAA;
|
|
8
|
+
export type TokenTransferAttestationReceipt = AttestationReceipt<TokenTransferProtocol>;
|
|
9
|
+
export type TokenTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> = TransferReceipt<TokenTransferAttestationReceipt, SC, DC>;
|
|
10
|
+
export declare class TokenTransfer<N extends Network = Network> implements WormholeTransfer<TokenTransferProtocol> {
|
|
11
|
+
private readonly wh;
|
|
12
|
+
fromChain: ChainContext<N, Chain>;
|
|
13
|
+
toChain: ChainContext<N, Chain>;
|
|
14
|
+
private _state;
|
|
15
|
+
transfer: TokenTransferDetails;
|
|
16
|
+
txids: TransactionId[];
|
|
17
|
+
attestations?: AttestationReceipt<TokenTransferProtocol>[];
|
|
18
|
+
private constructor();
|
|
19
|
+
getTransferState(): TransferState;
|
|
20
|
+
static from<N extends Network>(wh: Wormhole<N>, from: TokenTransferDetails, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<TokenTransfer<N>>;
|
|
21
|
+
static from<N extends Network>(wh: Wormhole<N>, from: WormholeMessageId, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<TokenTransfer<N>>;
|
|
22
|
+
static from<N extends Network>(wh: Wormhole<N>, from: TransactionId, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<TokenTransfer<N>>;
|
|
23
|
+
private static fromIdentifier;
|
|
24
|
+
private static fromTransaction;
|
|
25
|
+
initiateTransfer(signer: Signer): Promise<TxHash[]>;
|
|
26
|
+
fetchAttestation(timeout?: number): Promise<AttestationId[]>;
|
|
27
|
+
completeTransfer(signer: Signer): Promise<TxHash[]>;
|
|
28
|
+
static transfer<N extends Network>(fromChain: ChainContext<N, Chain>, transfer: TokenTransferDetails, signer: Signer<N, Chain>): Promise<TransactionId[]>;
|
|
29
|
+
static redeem<N extends Network>(toChain: ChainContext<N, Chain>, vaa: TokenTransferVAA, signer: Signer<N, Chain>): Promise<TransactionId[]>;
|
|
30
|
+
static isTransferComplete<N extends Network, C extends Chain>(toChain: ChainContext<N, C>, vaa: TokenTransferVAA): Promise<boolean>;
|
|
31
|
+
static getTransferMessage<N extends Network, C extends Chain>(chain: ChainContext<N, C>, txid: TxHash, timeout?: number): Promise<WormholeMessageId>;
|
|
32
|
+
static getTransferVaa<N extends Network>(wh: Wormhole<N>, key: WormholeMessageId | TxHash, timeout?: number): Promise<TokenTransferVAA>;
|
|
33
|
+
static lookupDestinationToken<N extends Network, SC extends Chain, DC extends Chain>(srcChain: ChainContext<N, SC>, dstChain: ChainContext<N, DC>, token: TokenId<SC>): Promise<TokenId<DC>>;
|
|
34
|
+
static validateTransferDetails<N extends Network>(wh: Wormhole<N>, transfer: TokenTransferDetails, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): void;
|
|
35
|
+
static quoteTransfer<N extends Network>(wh: Wormhole<N>, srcChain: ChainContext<N, Chain>, dstChain: ChainContext<N, Chain>, transfer: TokenTransferDetails): Promise<TransferQuote>;
|
|
36
|
+
static destinationOverrides<N extends Network>(srcChain: ChainContext<N, Chain>, dstChain: ChainContext<N, Chain>, transfer: TokenTransferDetails): Promise<TokenTransferDetails>;
|
|
37
|
+
static getReceipt<N extends Network>(xfer: TokenTransfer<N>): TokenTransferReceipt;
|
|
38
|
+
static track<N extends Network, SC extends Chain, DC extends Chain>(wh: Wormhole<N>, receipt: TokenTransferReceipt<SC, DC>, timeout?: number, fromChain?: ChainContext<N, SC>, toChain?: ChainContext<N, DC>): AsyncGenerator<TokenTransferReceipt<SC, DC>>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=tokenTransfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransfer.d.ts","sourceRoot":"","sources":["../../../src/protocols/tokenTransfer.ts"],"names":[],"mappings":"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"}
|