@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,459 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CircleTransfer = void 0;
|
|
4
|
+
const sdk_base_1 = require("@wormhole-foundation/sdk-base");
|
|
5
|
+
const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
|
|
6
|
+
const common_1 = require("../../common");
|
|
7
|
+
const config_1 = require("../../config");
|
|
8
|
+
const types_1 = require("../../types");
|
|
9
|
+
const wormhole_1 = require("../../wormhole");
|
|
10
|
+
class CircleTransfer {
|
|
11
|
+
wh;
|
|
12
|
+
fromChain;
|
|
13
|
+
toChain;
|
|
14
|
+
// state machine tracker
|
|
15
|
+
_state;
|
|
16
|
+
// transfer details
|
|
17
|
+
transfer;
|
|
18
|
+
// Populated after Initialized
|
|
19
|
+
txids = [];
|
|
20
|
+
attestations;
|
|
21
|
+
constructor(wh, transfer, fromChain, toChain) {
|
|
22
|
+
this._state = types_1.TransferState.Created;
|
|
23
|
+
this.wh = wh;
|
|
24
|
+
this.transfer = transfer;
|
|
25
|
+
this.fromChain = fromChain ?? wh.getChain(transfer.from.chain);
|
|
26
|
+
this.toChain = toChain ?? wh.getChain(transfer.to.chain);
|
|
27
|
+
}
|
|
28
|
+
getTransferState() {
|
|
29
|
+
return this._state;
|
|
30
|
+
}
|
|
31
|
+
static async from(wh, from, timeout = config_1.DEFAULT_TASK_TIMEOUT, fromChain, toChain) {
|
|
32
|
+
// This is a new transfer, just return the object
|
|
33
|
+
if ((0, sdk_definitions_1.isCircleTransferDetails)(from)) {
|
|
34
|
+
return new CircleTransfer(wh, from, fromChain, toChain);
|
|
35
|
+
}
|
|
36
|
+
// This is an existing transfer, fetch the details
|
|
37
|
+
let tt;
|
|
38
|
+
if ((0, sdk_definitions_1.isWormholeMessageId)(from)) {
|
|
39
|
+
tt = await CircleTransfer.fromWormholeMessageId(wh, from, timeout);
|
|
40
|
+
}
|
|
41
|
+
else if ((0, sdk_definitions_1.isTransactionIdentifier)(from)) {
|
|
42
|
+
tt = await CircleTransfer.fromTransaction(wh, from, timeout, fromChain);
|
|
43
|
+
}
|
|
44
|
+
else if ((0, sdk_definitions_1.isCircleMessageId)(from)) {
|
|
45
|
+
tt = await CircleTransfer.fromCircleMessage(wh, from);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new Error("Invalid `from` parameter for CircleTransfer");
|
|
49
|
+
}
|
|
50
|
+
tt.fromChain = fromChain ?? wh.getChain(tt.transfer.from.chain);
|
|
51
|
+
tt.toChain = toChain ?? wh.getChain(tt.transfer.to.chain);
|
|
52
|
+
await tt.fetchAttestation(timeout);
|
|
53
|
+
return tt;
|
|
54
|
+
}
|
|
55
|
+
// init from the seq id
|
|
56
|
+
static async fromWormholeMessageId(wh, from, timeout) {
|
|
57
|
+
const { chain, emitter } = from;
|
|
58
|
+
const vaa = await CircleTransfer.getTransferVaa(wh, from);
|
|
59
|
+
const rcvAddress = vaa.payload.mintRecipient;
|
|
60
|
+
const rcvChain = sdk_base_1.circle.toCircleChain(wh.network, vaa.payload.targetDomain);
|
|
61
|
+
// Check if its a payload 3 targeted at a relayer on the destination chain
|
|
62
|
+
const { wormholeRelayer } = wh.config.chains[rcvChain].contracts.cctp;
|
|
63
|
+
let automatic = false;
|
|
64
|
+
if (wormholeRelayer) {
|
|
65
|
+
const relayerAddress = wormhole_1.Wormhole.chainAddress(chain, wormholeRelayer).address.toUniversalAddress();
|
|
66
|
+
automatic = vaa.payloadName === "TransferWithRelay" && rcvAddress.equals(relayerAddress);
|
|
67
|
+
}
|
|
68
|
+
const details = {
|
|
69
|
+
from: { chain: from.chain, address: vaa.payload.caller },
|
|
70
|
+
to: { chain: rcvChain, address: rcvAddress },
|
|
71
|
+
amount: vaa.payload.token.amount,
|
|
72
|
+
automatic,
|
|
73
|
+
};
|
|
74
|
+
const tt = new CircleTransfer(wh, details);
|
|
75
|
+
tt.attestations = [{ id: { emitter, sequence: vaa.sequence, chain: chain }, attestation: vaa }];
|
|
76
|
+
tt._state = types_1.TransferState.Attested;
|
|
77
|
+
return tt;
|
|
78
|
+
}
|
|
79
|
+
static async fromCircleMessage(wh, message) {
|
|
80
|
+
const [msg, hash] = sdk_definitions_1.CircleBridge.deserialize(sdk_base_1.encoding.hex.decode(message));
|
|
81
|
+
const { payload: burnMessage } = msg;
|
|
82
|
+
const xferSender = burnMessage.messageSender;
|
|
83
|
+
const xferReceiver = burnMessage.mintRecipient;
|
|
84
|
+
const sendChain = sdk_base_1.circle.toCircleChain(wh.network, msg.sourceDomain);
|
|
85
|
+
const rcvChain = sdk_base_1.circle.toCircleChain(wh.network, msg.destinationDomain);
|
|
86
|
+
const details = {
|
|
87
|
+
from: { chain: sendChain, address: xferSender },
|
|
88
|
+
to: { chain: rcvChain, address: xferReceiver },
|
|
89
|
+
amount: burnMessage.amount,
|
|
90
|
+
automatic: false,
|
|
91
|
+
};
|
|
92
|
+
const xfer = new CircleTransfer(wh, details);
|
|
93
|
+
xfer.attestations = [{ id: { hash }, attestation: { message: msg } }];
|
|
94
|
+
xfer._state = types_1.TransferState.SourceInitiated;
|
|
95
|
+
return xfer;
|
|
96
|
+
}
|
|
97
|
+
// init from source tx hash
|
|
98
|
+
static async fromTransaction(wh, from, timeout, fromChain) {
|
|
99
|
+
const { chain, txid } = from;
|
|
100
|
+
fromChain = fromChain ?? wh.getChain(chain);
|
|
101
|
+
// First try to parse out a WormholeMessage
|
|
102
|
+
// If we get one or more, we assume its a Wormhole attested
|
|
103
|
+
// transfer
|
|
104
|
+
const msgIds = await fromChain.parseTransaction(txid);
|
|
105
|
+
// If we found a VAA message, use it
|
|
106
|
+
let ct;
|
|
107
|
+
if (msgIds.length > 0) {
|
|
108
|
+
ct = await CircleTransfer.fromWormholeMessageId(wh, msgIds[0], timeout);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// Otherwise try to parse out a circle message
|
|
112
|
+
const cb = await fromChain.getCircleBridge();
|
|
113
|
+
const circleMessage = await cb.parseTransactionDetails(txid);
|
|
114
|
+
const details = {
|
|
115
|
+
...circleMessage,
|
|
116
|
+
// Note: assuming automatic is false since we didn't find a VAA
|
|
117
|
+
automatic: false,
|
|
118
|
+
};
|
|
119
|
+
ct = new CircleTransfer(wh, details);
|
|
120
|
+
ct.attestations = [{ id: circleMessage.id, attestation: { message: circleMessage.message } }];
|
|
121
|
+
}
|
|
122
|
+
ct._state = types_1.TransferState.SourceInitiated;
|
|
123
|
+
ct.txids = [from];
|
|
124
|
+
return ct;
|
|
125
|
+
}
|
|
126
|
+
// start the WormholeTransfer by submitting transactions to the source chain
|
|
127
|
+
// returns a transaction hash
|
|
128
|
+
async initiateTransfer(signer) {
|
|
129
|
+
/*
|
|
130
|
+
0) check that the current `state` is valid to call this (eg: state == Created)
|
|
131
|
+
1) get a token transfer transaction for the token bridge given the context
|
|
132
|
+
2) sign it given the signer
|
|
133
|
+
3) submit it to chain
|
|
134
|
+
4) return transaction id
|
|
135
|
+
*/
|
|
136
|
+
if (this._state !== types_1.TransferState.Created)
|
|
137
|
+
throw new Error("Invalid state transition in `start`");
|
|
138
|
+
this.txids = await CircleTransfer.transfer(this.fromChain, this.transfer, signer);
|
|
139
|
+
this._state = types_1.TransferState.SourceInitiated;
|
|
140
|
+
return this.txids.map(({ txid }) => txid);
|
|
141
|
+
}
|
|
142
|
+
static async transfer(fromChain, transfer, signer) {
|
|
143
|
+
let xfer;
|
|
144
|
+
if (transfer.automatic) {
|
|
145
|
+
const cr = await fromChain.getAutomaticCircleBridge();
|
|
146
|
+
xfer = cr.transfer(transfer.from.address, { chain: transfer.to.chain, address: transfer.to.address }, transfer.amount, transfer.nativeGas);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
const cb = await fromChain.getCircleBridge();
|
|
150
|
+
xfer = cb.transfer(transfer.from.address, { chain: transfer.to.chain, address: transfer.to.address }, transfer.amount);
|
|
151
|
+
}
|
|
152
|
+
return await (0, common_1.signSendWait)(fromChain, xfer, signer);
|
|
153
|
+
}
|
|
154
|
+
async _fetchWormholeAttestation(timeout) {
|
|
155
|
+
let attestations = (this.attestations ?? []);
|
|
156
|
+
if (!attestations || attestations.length == 0)
|
|
157
|
+
throw new Error("No VAA details available");
|
|
158
|
+
// Check if we already have the VAA
|
|
159
|
+
for (const idx in attestations) {
|
|
160
|
+
if (attestations[idx].attestation)
|
|
161
|
+
continue;
|
|
162
|
+
attestations[idx].attestation = await CircleTransfer.getTransferVaa(this.wh, attestations[idx].id, timeout);
|
|
163
|
+
}
|
|
164
|
+
this.attestations = attestations;
|
|
165
|
+
return attestations.map((v) => v.id);
|
|
166
|
+
}
|
|
167
|
+
async _fetchCircleAttestation(timeout) {
|
|
168
|
+
let attestations = (this.attestations ?? []);
|
|
169
|
+
if (!attestations || attestations.length == 0) {
|
|
170
|
+
// If we dont have any circle attestations yet, we need to start by
|
|
171
|
+
// fetching the transaction details from the source chain
|
|
172
|
+
if (this.txids.length === 0)
|
|
173
|
+
throw new Error("No circle attestations or transactions to fetch");
|
|
174
|
+
// The last tx should be the circle transfer, its possible there was
|
|
175
|
+
// a contract spend approval transaction
|
|
176
|
+
const txid = this.txids[this.txids?.length - 1];
|
|
177
|
+
const fromChain = this.wh.getChain(this.transfer.from.chain);
|
|
178
|
+
const cb = await fromChain.getCircleBridge();
|
|
179
|
+
const circleMessage = await cb.parseTransactionDetails(txid.txid);
|
|
180
|
+
attestations = [{ id: circleMessage.id, attestation: { message: circleMessage.message } }];
|
|
181
|
+
}
|
|
182
|
+
for (const idx in attestations) {
|
|
183
|
+
const ca = attestations[idx];
|
|
184
|
+
if (ca.attestation?.attestation)
|
|
185
|
+
continue; // already got it
|
|
186
|
+
const attestation = await this.wh.getCircleAttestation(ca.id.hash, timeout);
|
|
187
|
+
if (attestation === null)
|
|
188
|
+
throw new Error("No attestation available after timeout exhausted");
|
|
189
|
+
attestations[idx].attestation.attestation = attestation;
|
|
190
|
+
}
|
|
191
|
+
this.attestations = attestations;
|
|
192
|
+
return attestations.map((v) => v.id);
|
|
193
|
+
}
|
|
194
|
+
// wait for the VAA to be ready
|
|
195
|
+
// returns the sequence number
|
|
196
|
+
async fetchAttestation(timeout) {
|
|
197
|
+
/*
|
|
198
|
+
0) check that the current `state` is valid to call this (eg: state == Started)
|
|
199
|
+
1) poll the api on an interval to check if the VAA is available
|
|
200
|
+
2) Once available, pull the VAA and parse it
|
|
201
|
+
3) return seq
|
|
202
|
+
*/
|
|
203
|
+
if (this._state < types_1.TransferState.SourceInitiated || this._state > types_1.TransferState.Attested)
|
|
204
|
+
throw new Error("Invalid state transition in `fetchAttestation`");
|
|
205
|
+
const ids = this.transfer.automatic
|
|
206
|
+
? (await Promise.all([
|
|
207
|
+
this._fetchWormholeAttestation(timeout),
|
|
208
|
+
this._fetchCircleAttestation(timeout),
|
|
209
|
+
])).flat()
|
|
210
|
+
: await this._fetchCircleAttestation(timeout);
|
|
211
|
+
this._state = types_1.TransferState.Attested;
|
|
212
|
+
return ids;
|
|
213
|
+
}
|
|
214
|
+
// finish the WormholeTransfer by submitting transactions to the destination chain
|
|
215
|
+
// returns a transaction hash
|
|
216
|
+
async completeTransfer(signer) {
|
|
217
|
+
/*
|
|
218
|
+
0) check that the current `state` is valid to call this (eg: state == Ready)
|
|
219
|
+
1) prepare the transactions and sign them given the signer
|
|
220
|
+
2) submit the VAA and transactions on chain
|
|
221
|
+
3) return txid of submission
|
|
222
|
+
*/
|
|
223
|
+
if (this._state < types_1.TransferState.Attested)
|
|
224
|
+
throw new Error("Invalid state transition in `finish`");
|
|
225
|
+
// If its automatic, this does not need to be called
|
|
226
|
+
if (this.transfer.automatic) {
|
|
227
|
+
if (!this.attestations)
|
|
228
|
+
throw new Error("No VAA details available");
|
|
229
|
+
const vaa = this.attestations.find((a) => (0, sdk_definitions_1.isWormholeMessageId)(a.id));
|
|
230
|
+
if (!vaa)
|
|
231
|
+
throw new Error("No VAA found");
|
|
232
|
+
//const tb = await toChain.getAutomaticCircleBridge();
|
|
233
|
+
//const xfer = tb.redeem(vaa);
|
|
234
|
+
//const txids = await signSendWait(toChain, xfer, signer);
|
|
235
|
+
throw new Error("No method to redeem auto circle bridge tx (yet)");
|
|
236
|
+
}
|
|
237
|
+
if (!this.attestations)
|
|
238
|
+
throw new Error("No Circle Attestations found");
|
|
239
|
+
const circleAttestations = this.attestations.filter((a) => (0, sdk_definitions_1.isCircleMessageId)(a.id));
|
|
240
|
+
if (circleAttestations.length > 1)
|
|
241
|
+
throw new Error(`Expected a single circle attestation, found ${circleAttestations.length}`);
|
|
242
|
+
const { id, attestation } = circleAttestations[0];
|
|
243
|
+
if (!attestation)
|
|
244
|
+
throw new Error(`No Circle Attestation for ${id.hash}`);
|
|
245
|
+
const { message, attestation: signatures } = attestation;
|
|
246
|
+
if (!signatures)
|
|
247
|
+
throw new Error(`No Circle Attestation for ${id.hash}`);
|
|
248
|
+
const tb = await this.toChain.getCircleBridge();
|
|
249
|
+
const xfer = tb.redeem(this.transfer.to.address, message, signatures);
|
|
250
|
+
const txids = await (0, common_1.signSendWait)(this.toChain, xfer, signer);
|
|
251
|
+
this.txids?.push(...txids);
|
|
252
|
+
return txids.map(({ txid }) => txid);
|
|
253
|
+
}
|
|
254
|
+
static async quoteTransfer(srcChain, dstChain, transfer) {
|
|
255
|
+
const dstUsdcAddress = sdk_base_1.circle.usdcContract.get(dstChain.network, dstChain.chain);
|
|
256
|
+
if (!dstUsdcAddress)
|
|
257
|
+
throw "Invalid transfer, no USDC contract on destination";
|
|
258
|
+
const srcUsdcAddress = sdk_base_1.circle.usdcContract.get(srcChain.network, srcChain.chain);
|
|
259
|
+
if (!srcUsdcAddress)
|
|
260
|
+
throw "Invalid transfer, no USDC contract on source";
|
|
261
|
+
const dstToken = wormhole_1.Wormhole.chainAddress(dstChain.chain, dstUsdcAddress);
|
|
262
|
+
const srcToken = wormhole_1.Wormhole.chainAddress(srcChain.chain, srcUsdcAddress);
|
|
263
|
+
if (!transfer.automatic) {
|
|
264
|
+
return {
|
|
265
|
+
sourceToken: { token: srcToken, amount: transfer.amount },
|
|
266
|
+
destinationToken: { token: dstToken, amount: transfer.amount },
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
// Otherwise automatic
|
|
270
|
+
let dstAmount = transfer.amount;
|
|
271
|
+
// If a native gas dropoff is requested, remove that from the amount they'll get
|
|
272
|
+
const _nativeGas = transfer.nativeGas ? transfer.nativeGas : 0n;
|
|
273
|
+
dstAmount -= _nativeGas;
|
|
274
|
+
// The fee is also removed from the amount transferred
|
|
275
|
+
// quoted on the source chain
|
|
276
|
+
const stb = await srcChain.getAutomaticCircleBridge();
|
|
277
|
+
const fee = await stb.getRelayerFee(dstChain.chain);
|
|
278
|
+
dstAmount -= fee;
|
|
279
|
+
// The expected destination gas can be pulled from the destination token bridge
|
|
280
|
+
let destinationNativeGas = 0n;
|
|
281
|
+
if (transfer.nativeGas) {
|
|
282
|
+
const dtb = await dstChain.getAutomaticTokenBridge();
|
|
283
|
+
destinationNativeGas = await dtb.nativeTokenAmount(dstToken.address, _nativeGas);
|
|
284
|
+
}
|
|
285
|
+
return {
|
|
286
|
+
sourceToken: {
|
|
287
|
+
token: srcToken,
|
|
288
|
+
amount: transfer.amount,
|
|
289
|
+
},
|
|
290
|
+
destinationToken: { token: dstToken, amount: dstAmount },
|
|
291
|
+
relayFee: { token: srcToken, amount: fee },
|
|
292
|
+
destinationNativeGas,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
static async isTransferComplete(toChain, attestation) {
|
|
296
|
+
if (!sdk_definitions_1.CircleBridge.isCircleAttestation(attestation))
|
|
297
|
+
throw new Error("Must check for completion with circle message");
|
|
298
|
+
const cb = await toChain.getCircleBridge();
|
|
299
|
+
return cb.isTransferCompleted(attestation.message);
|
|
300
|
+
}
|
|
301
|
+
static async getTransferVaa(wh, wormholeMessageId, timeout) {
|
|
302
|
+
const vaa = await wh.getVaa(wormholeMessageId, "AutomaticCircleBridge:TransferWithRelay", timeout);
|
|
303
|
+
if (!vaa)
|
|
304
|
+
throw new Error(`No VAA available after timeout exhausted`);
|
|
305
|
+
return vaa;
|
|
306
|
+
}
|
|
307
|
+
static async getTransferMessage(fromChain, txid) {
|
|
308
|
+
const cb = await fromChain.getCircleBridge();
|
|
309
|
+
const circleMessage = await cb.parseTransactionDetails(txid);
|
|
310
|
+
return circleMessage;
|
|
311
|
+
}
|
|
312
|
+
static getReceipt(xfer) {
|
|
313
|
+
const { from, to } = xfer.transfer;
|
|
314
|
+
// This attestation may be either the auto relay vaa or the circle attestation
|
|
315
|
+
// depending on the request
|
|
316
|
+
let receipt = {
|
|
317
|
+
from: from.chain,
|
|
318
|
+
to: to.chain,
|
|
319
|
+
state: types_1.TransferState.Created,
|
|
320
|
+
};
|
|
321
|
+
const originTxs = xfer.txids.filter((txid) => txid.chain === xfer.transfer.from.chain);
|
|
322
|
+
if (originTxs.length > 0) {
|
|
323
|
+
receipt = {
|
|
324
|
+
...receipt,
|
|
325
|
+
state: types_1.TransferState.SourceInitiated,
|
|
326
|
+
originTxs,
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
const att = xfer.attestations?.filter((a) => (0, sdk_definitions_1.isWormholeMessageId)(a.id)) ?? [];
|
|
330
|
+
const ctt = xfer.attestations?.filter((a) => (0, sdk_definitions_1.isCircleMessageId)(a.id)) ?? [];
|
|
331
|
+
const attestation = ctt.length > 0 ? ctt[0] : att.length > 0 ? att[0] : undefined;
|
|
332
|
+
if (attestation) {
|
|
333
|
+
if (attestation.id) {
|
|
334
|
+
receipt = {
|
|
335
|
+
...receipt,
|
|
336
|
+
state: types_1.TransferState.SourceFinalized,
|
|
337
|
+
attestation: attestation,
|
|
338
|
+
};
|
|
339
|
+
if (attestation.attestation) {
|
|
340
|
+
receipt = {
|
|
341
|
+
...receipt,
|
|
342
|
+
state: types_1.TransferState.Attested,
|
|
343
|
+
attestation: { id: attestation.id, attestation: attestation.attestation },
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
const destinationTxs = xfer.txids.filter((txid) => txid.chain === xfer.transfer.to.chain);
|
|
349
|
+
if (destinationTxs.length > 0) {
|
|
350
|
+
receipt = {
|
|
351
|
+
...receipt,
|
|
352
|
+
state: types_1.TransferState.DestinationInitiated,
|
|
353
|
+
destinationTxs,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
return receipt;
|
|
357
|
+
}
|
|
358
|
+
// AsyncGenerator fn that produces status updates through an async generator
|
|
359
|
+
// eventually producing a receipt
|
|
360
|
+
// can be called repeatedly so the receipt is updated as it moves through the
|
|
361
|
+
// steps of the transfer
|
|
362
|
+
static async *track(wh, receipt, timeout = config_1.DEFAULT_TASK_TIMEOUT,
|
|
363
|
+
// Optional parameters to override chain context (typically for custom rpc)
|
|
364
|
+
_fromChain, _toChain) {
|
|
365
|
+
const start = Date.now();
|
|
366
|
+
const leftover = (start, max) => Math.max(max - (Date.now() - start), 0);
|
|
367
|
+
_fromChain = _fromChain ?? wh.getChain(receipt.from);
|
|
368
|
+
_toChain = _toChain ?? wh.getChain(receipt.to);
|
|
369
|
+
// Check the source chain for initiation transaction
|
|
370
|
+
// and capture the message id
|
|
371
|
+
if ((0, types_1.isSourceInitiated)(receipt)) {
|
|
372
|
+
if (receipt.originTxs.length === 0)
|
|
373
|
+
throw "Invalid state transition: no originating transactions";
|
|
374
|
+
const initTx = receipt.originTxs[receipt.originTxs.length - 1];
|
|
375
|
+
const msg = await CircleTransfer.getTransferMessage(_fromChain, initTx.txid);
|
|
376
|
+
receipt = {
|
|
377
|
+
...receipt,
|
|
378
|
+
attestation: { id: msg.id, attestation: { message: msg.message } },
|
|
379
|
+
state: types_1.TransferState.SourceFinalized,
|
|
380
|
+
};
|
|
381
|
+
yield receipt;
|
|
382
|
+
}
|
|
383
|
+
if ((0, types_1.isSourceFinalized)(receipt)) {
|
|
384
|
+
if (!receipt.attestation)
|
|
385
|
+
throw "Invalid state transition: no attestation id";
|
|
386
|
+
if ((0, sdk_definitions_1.isWormholeMessageId)(receipt.attestation.id)) {
|
|
387
|
+
// Automatic tx
|
|
388
|
+
// we need to get the attestation so we can deliver it
|
|
389
|
+
// we can use the message id we parsed out of the logs, if we have them
|
|
390
|
+
// or try to fetch it from the last origin transaction
|
|
391
|
+
let vaa = receipt.attestation.attestation ? receipt.attestation.attestation : undefined;
|
|
392
|
+
if (!vaa) {
|
|
393
|
+
vaa = await CircleTransfer.getTransferVaa(wh, receipt.attestation.id, leftover(start, timeout));
|
|
394
|
+
receipt = {
|
|
395
|
+
...receipt,
|
|
396
|
+
attestation: { id: receipt.attestation.id, attestation: vaa },
|
|
397
|
+
state: types_1.TransferState.Attested,
|
|
398
|
+
};
|
|
399
|
+
yield receipt;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
else if ((0, sdk_definitions_1.isCircleMessageId)(receipt.attestation.id)) {
|
|
403
|
+
// Manual tx
|
|
404
|
+
const attestation = await wh.getCircleAttestation(receipt.attestation.id.hash, timeout);
|
|
405
|
+
const initTx = receipt.originTxs[receipt.originTxs.length - 1];
|
|
406
|
+
const cb = await _fromChain.getCircleBridge();
|
|
407
|
+
const message = await cb.parseTransactionDetails(initTx.txid);
|
|
408
|
+
if (attestation) {
|
|
409
|
+
receipt = {
|
|
410
|
+
...receipt,
|
|
411
|
+
attestation: {
|
|
412
|
+
id: receipt.attestation.id,
|
|
413
|
+
attestation: {
|
|
414
|
+
attestation,
|
|
415
|
+
message: message.message,
|
|
416
|
+
},
|
|
417
|
+
},
|
|
418
|
+
state: types_1.TransferState.Attested,
|
|
419
|
+
};
|
|
420
|
+
yield receipt;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
// First try to grab the tx status from the API
|
|
425
|
+
// Note: this requires a subsequent async step on the backend
|
|
426
|
+
// to have the dest txid populated, so it may be delayed by some time
|
|
427
|
+
if ((0, types_1.isAttested)(receipt) || (0, types_1.isSourceFinalized)(receipt)) {
|
|
428
|
+
if (!receipt.attestation)
|
|
429
|
+
throw "Invalid state transition";
|
|
430
|
+
if ((0, sdk_definitions_1.isWormholeMessageId)(receipt.attestation.id)) {
|
|
431
|
+
const txStatus = await wh.getTransactionStatus(receipt.attestation.id, leftover(start, timeout));
|
|
432
|
+
if (txStatus && txStatus.globalTx?.destinationTx?.txHash) {
|
|
433
|
+
const { chainId, txHash } = txStatus.globalTx.destinationTx;
|
|
434
|
+
receipt = {
|
|
435
|
+
...receipt,
|
|
436
|
+
destinationTxs: [{ chain: (0, sdk_base_1.toChain)(chainId), txid: txHash }],
|
|
437
|
+
state: types_1.TransferState.DestinationFinalized,
|
|
438
|
+
};
|
|
439
|
+
yield receipt;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
// Fall back to asking the destination chain if this VAA has been redeemed
|
|
444
|
+
// assuming we have the full attestation
|
|
445
|
+
if ((0, types_1.isAttested)(receipt)) {
|
|
446
|
+
const isComplete = await CircleTransfer.isTransferComplete(_toChain, receipt.attestation.attestation);
|
|
447
|
+
if (isComplete) {
|
|
448
|
+
receipt = {
|
|
449
|
+
...receipt,
|
|
450
|
+
state: types_1.TransferState.DestinationFinalized,
|
|
451
|
+
destinationTxs: [],
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
yield receipt;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
exports.CircleTransfer = CircleTransfer;
|
|
459
|
+
//# sourceMappingURL=cctpTransfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cctpTransfer.js","sourceRoot":"","sources":["../../../../src/protocols/cctp/cctpTransfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/protocols/cctp/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./cctpTransfer"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/protocols/cctp/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Chain, Network } from "@wormhole-foundation/sdk-base";
|
|
2
|
+
import { Attestation, AttestationId, AutomaticCircleBridge, ChainContext, CircleTransferDetails, Signer, 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
|
+
type CircleTransferProtocol = "CircleBridge" | "AutomaticCircleBridge";
|
|
7
|
+
export type CircleAttestationReceipt = AttestationReceipt<CircleTransferProtocol>;
|
|
8
|
+
export type CircleTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> = TransferReceipt<CircleAttestationReceipt, SC, DC>;
|
|
9
|
+
export declare class CircleTransfer<N extends Network = Network> implements WormholeTransfer<CircleTransferProtocol> {
|
|
10
|
+
private readonly wh;
|
|
11
|
+
fromChain: ChainContext<N, Chain>;
|
|
12
|
+
toChain: ChainContext<N, Chain>;
|
|
13
|
+
private _state;
|
|
14
|
+
transfer: CircleTransferDetails;
|
|
15
|
+
txids: TransactionId[];
|
|
16
|
+
attestations?: AttestationReceipt<CircleTransferProtocol>[];
|
|
17
|
+
private constructor();
|
|
18
|
+
getTransferState(): TransferState;
|
|
19
|
+
static from<N extends Network>(wh: Wormhole<N>, from: CircleTransferDetails, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<CircleTransfer<N>>;
|
|
20
|
+
static from<N extends Network>(wh: Wormhole<N>, from: WormholeMessageId, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<CircleTransfer<N>>;
|
|
21
|
+
static from<N extends Network>(wh: Wormhole<N>, from: string, // CircleMessage hex encoded
|
|
22
|
+
timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<CircleTransfer<N>>;
|
|
23
|
+
static from<N extends Network>(wh: Wormhole<N>, from: TransactionId, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<CircleTransfer<N>>;
|
|
24
|
+
private static fromWormholeMessageId;
|
|
25
|
+
private static fromCircleMessage;
|
|
26
|
+
private static fromTransaction;
|
|
27
|
+
initiateTransfer(signer: Signer): Promise<TxHash[]>;
|
|
28
|
+
static transfer<N extends Network, C extends Chain = Chain>(fromChain: ChainContext<N, C>, transfer: CircleTransferDetails, signer: Signer<N, Chain>): Promise<TransactionId[]>;
|
|
29
|
+
private _fetchWormholeAttestation;
|
|
30
|
+
private _fetchCircleAttestation;
|
|
31
|
+
fetchAttestation(timeout?: number): Promise<AttestationId[]>;
|
|
32
|
+
completeTransfer(signer: Signer): Promise<TxHash[]>;
|
|
33
|
+
static quoteTransfer<N extends Network>(srcChain: ChainContext<N, Chain>, dstChain: ChainContext<N, Chain>, transfer: CircleTransferDetails): Promise<TransferQuote>;
|
|
34
|
+
static isTransferComplete<N extends Network>(toChain: ChainContext<N, Chain>, attestation: Attestation<CircleTransferProtocol>): Promise<boolean>;
|
|
35
|
+
static getTransferVaa<N extends Network>(wh: Wormhole<N>, wormholeMessageId: WormholeMessageId, timeout?: number): Promise<AutomaticCircleBridge.VAA>;
|
|
36
|
+
static getTransferMessage<N extends Network>(fromChain: ChainContext<N, Chain>, txid: TxHash): Promise<import("@wormhole-foundation/sdk-definitions").CircleTransferMessage>;
|
|
37
|
+
static getReceipt<N extends Network>(xfer: CircleTransfer<N>): CircleTransferReceipt;
|
|
38
|
+
static track<N extends Network, SC extends Chain, DC extends Chain>(wh: Wormhole<N>, receipt: CircleTransferReceipt<SC, DC>, timeout?: number, _fromChain?: ChainContext<N, SC>, _toChain?: ChainContext<N, DC>): AsyncGenerator<CircleTransferReceipt<SC, DC>>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=cctpTransfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cctpTransfer.d.ts","sourceRoot":"","sources":["../../../src/protocols/cctpTransfer.ts"],"names":[],"mappings":"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"}
|