@wormhole-foundation/sdk-connect 0.5.0-alpha.2 → 0.5.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/cjs/circle-api.d.ts +16 -0
  2. package/dist/cjs/circle-api.d.ts.map +1 -0
  3. package/dist/cjs/circle-api.js +47 -0
  4. package/dist/cjs/circle-api.js.map +1 -0
  5. package/dist/cjs/common.d.ts +4 -0
  6. package/dist/cjs/common.d.ts.map +1 -0
  7. package/dist/cjs/common.js +40 -0
  8. package/dist/cjs/common.js.map +1 -0
  9. package/dist/cjs/config.d.ts +34 -0
  10. package/dist/cjs/config.d.ts.map +1 -0
  11. package/dist/cjs/config.js +52 -0
  12. package/dist/cjs/config.js.map +1 -0
  13. package/dist/cjs/index.d.ts +15 -0
  14. package/dist/cjs/index.d.ts.map +1 -0
  15. package/dist/cjs/index.js +45 -0
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/cjs/protocols/cctpTransfer.d.ts +42 -0
  18. package/dist/cjs/protocols/cctpTransfer.d.ts.map +1 -0
  19. package/dist/cjs/protocols/cctpTransfer.js +459 -0
  20. package/dist/cjs/protocols/cctpTransfer.js.map +1 -0
  21. package/dist/cjs/protocols/gatewayTransfer.d.ts +41 -0
  22. package/dist/cjs/protocols/gatewayTransfer.d.ts.map +1 -0
  23. package/dist/cjs/protocols/gatewayTransfer.js +406 -0
  24. package/dist/cjs/protocols/gatewayTransfer.js.map +1 -0
  25. package/dist/cjs/protocols/tokenTransfer.d.ts +42 -0
  26. package/dist/cjs/protocols/tokenTransfer.d.ts.map +1 -0
  27. package/dist/cjs/protocols/tokenTransfer.js +472 -0
  28. package/dist/cjs/protocols/tokenTransfer.js.map +1 -0
  29. package/dist/cjs/protocols/wormholeTransfer.d.ts +20 -0
  30. package/dist/cjs/protocols/wormholeTransfer.d.ts.map +1 -0
  31. package/dist/cjs/protocols/wormholeTransfer.js +3 -0
  32. package/dist/cjs/protocols/wormholeTransfer.js.map +1 -0
  33. package/dist/cjs/routes/cctp/automatic.d.ts +48 -0
  34. package/dist/cjs/routes/cctp/automatic.d.ts.map +1 -0
  35. package/dist/cjs/routes/cctp/automatic.js +135 -0
  36. package/dist/cjs/routes/cctp/automatic.js.map +1 -0
  37. package/dist/cjs/routes/cctp/index.d.ts +3 -0
  38. package/dist/cjs/routes/cctp/index.d.ts.map +1 -0
  39. package/dist/cjs/routes/cctp/index.js +19 -0
  40. package/dist/cjs/routes/cctp/index.js.map +1 -0
  41. package/dist/cjs/routes/cctp/manual.d.ts +45 -0
  42. package/dist/cjs/routes/cctp/manual.d.ts.map +1 -0
  43. package/dist/cjs/routes/cctp/manual.js +113 -0
  44. package/dist/cjs/routes/cctp/manual.js.map +1 -0
  45. package/dist/cjs/routes/common.d.ts +13 -0
  46. package/dist/cjs/routes/common.d.ts.map +1 -0
  47. package/dist/cjs/routes/common.js +45 -0
  48. package/dist/cjs/routes/common.js.map +1 -0
  49. package/dist/cjs/routes/index.d.ts +9 -0
  50. package/dist/cjs/routes/index.d.ts.map +1 -0
  51. package/dist/cjs/routes/index.js +25 -0
  52. package/dist/cjs/routes/index.js.map +1 -0
  53. package/dist/cjs/routes/portico/automatic.d.ts +70 -0
  54. package/dist/cjs/routes/portico/automatic.d.ts.map +1 -0
  55. package/dist/cjs/routes/portico/automatic.js +208 -0
  56. package/dist/cjs/routes/portico/automatic.js.map +1 -0
  57. package/dist/cjs/routes/portico/index.d.ts +3 -0
  58. package/dist/cjs/routes/portico/index.d.ts.map +1 -0
  59. package/dist/cjs/routes/portico/index.js +18 -0
  60. package/dist/cjs/routes/portico/index.js.map +1 -0
  61. package/dist/cjs/routes/portico/utils.d.ts +2 -0
  62. package/dist/cjs/routes/portico/utils.d.ts.map +1 -0
  63. package/dist/cjs/routes/portico/utils.js +3 -0
  64. package/dist/cjs/routes/portico/utils.js.map +1 -0
  65. package/dist/cjs/routes/request.d.ts +26 -0
  66. package/dist/cjs/routes/request.d.ts.map +1 -0
  67. package/dist/cjs/routes/request.js +65 -0
  68. package/dist/cjs/routes/request.js.map +1 -0
  69. package/dist/cjs/routes/resolver.d.ts +15 -0
  70. package/dist/cjs/routes/resolver.d.ts.map +1 -0
  71. package/dist/cjs/routes/resolver.js +87 -0
  72. package/dist/cjs/routes/resolver.js.map +1 -0
  73. package/dist/cjs/routes/route.d.ts +46 -0
  74. package/dist/cjs/routes/route.d.ts.map +1 -0
  75. package/dist/cjs/routes/route.js +34 -0
  76. package/dist/cjs/routes/route.js.map +1 -0
  77. package/dist/cjs/routes/token.d.ts +13 -0
  78. package/dist/cjs/routes/token.d.ts.map +1 -0
  79. package/dist/cjs/routes/token.js +37 -0
  80. package/dist/cjs/routes/token.js.map +1 -0
  81. package/dist/cjs/routes/tokenBridge/automatic.d.ts +48 -0
  82. package/dist/cjs/routes/tokenBridge/automatic.d.ts.map +1 -0
  83. package/dist/cjs/routes/tokenBridge/automatic.js +145 -0
  84. package/dist/cjs/routes/tokenBridge/automatic.js.map +1 -0
  85. package/dist/cjs/routes/tokenBridge/index.d.ts +3 -0
  86. package/dist/cjs/routes/tokenBridge/index.d.ts.map +1 -0
  87. package/dist/cjs/routes/tokenBridge/index.js +19 -0
  88. package/dist/cjs/routes/tokenBridge/index.js.map +1 -0
  89. package/dist/cjs/routes/tokenBridge/manual.d.ts +44 -0
  90. package/dist/cjs/routes/tokenBridge/manual.d.ts.map +1 -0
  91. package/dist/cjs/routes/tokenBridge/manual.js +87 -0
  92. package/dist/cjs/routes/tokenBridge/manual.js.map +1 -0
  93. package/dist/cjs/routes/types.d.ts +44 -0
  94. package/dist/cjs/routes/types.d.ts.map +1 -0
  95. package/dist/cjs/routes/types.js +3 -0
  96. package/dist/cjs/routes/types.js.map +1 -0
  97. package/dist/cjs/tasks.d.ts +7 -0
  98. package/dist/cjs/tasks.d.ts.map +1 -0
  99. package/dist/cjs/tasks.js +65 -0
  100. package/dist/cjs/tasks.js.map +1 -0
  101. package/dist/cjs/types.d.ts +73 -0
  102. package/dist/cjs/types.d.ts.map +1 -0
  103. package/dist/cjs/types.js +35 -0
  104. package/dist/cjs/types.js.map +1 -0
  105. package/dist/cjs/whscan-api.d.ts +173 -0
  106. package/dist/cjs/whscan-api.d.ts.map +1 -0
  107. package/dist/cjs/whscan-api.js +243 -0
  108. package/dist/cjs/whscan-api.js.map +1 -0
  109. package/dist/cjs/wormhole.d.ts +198 -0
  110. package/dist/cjs/wormhole.d.ts.map +1 -0
  111. package/dist/cjs/wormhole.js +324 -0
  112. package/dist/cjs/wormhole.js.map +1 -0
  113. package/dist/esm/index.d.ts +4 -6
  114. package/dist/esm/index.d.ts.map +1 -1
  115. package/dist/esm/index.js +4 -4
  116. package/dist/esm/index.js.map +1 -1
  117. package/dist/esm/routes/cctp/index.d.ts +2 -2
  118. package/dist/esm/routes/cctp/index.d.ts.map +1 -1
  119. package/dist/esm/routes/cctp/index.js +2 -2
  120. package/dist/esm/routes/cctp/index.js.map +1 -1
  121. package/dist/esm/routes/index.d.ts +8 -10
  122. package/dist/esm/routes/index.d.ts.map +1 -1
  123. package/dist/esm/routes/index.js +8 -7
  124. package/dist/esm/routes/index.js.map +1 -1
  125. package/dist/esm/routes/portico/index.d.ts +2 -2
  126. package/dist/esm/routes/portico/index.d.ts.map +1 -1
  127. package/dist/esm/routes/portico/index.js +1 -1
  128. package/dist/esm/routes/portico/index.js.map +1 -1
  129. package/dist/esm/routes/tokenBridge/index.d.ts +2 -2
  130. package/dist/esm/routes/tokenBridge/index.d.ts.map +1 -1
  131. package/dist/esm/routes/tokenBridge/index.js +2 -2
  132. package/dist/esm/routes/tokenBridge/index.js.map +1 -1
  133. package/package.json +14 -5
@@ -0,0 +1,16 @@
1
+ export declare const CIRCLE_RETRY_INTERVAL = 2000;
2
+ export declare enum CircleAttestationStatus {
3
+ complete = "complete",
4
+ pending_confirmations = "pending_confirmations"
5
+ }
6
+ export interface CircleAttestationResponse {
7
+ attestation: string | null;
8
+ status: CircleAttestationStatus;
9
+ }
10
+ export interface Attestation {
11
+ message: string | null;
12
+ status: CircleAttestationStatus;
13
+ }
14
+ export declare function getCircleAttestation(circleApi: string, msgHash: string): Promise<string | null>;
15
+ export declare function getCircleAttestationWithRetry(circleApi: string, msgHash: string, timeout: number): Promise<string | null>;
16
+ //# sourceMappingURL=circle-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle-api.d.ts","sourceRoot":"","sources":["../../src/circle-api.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,oBAAY,uBAAuB;IACjC,QAAQ,aAAa;IACrB,qBAAqB,0BAA0B;CAChD;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,uBAAuB,CAAC;CACjC;AACD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAOD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBxB;AAED,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getCircleAttestationWithRetry = exports.getCircleAttestation = exports.CircleAttestationStatus = exports.CIRCLE_RETRY_INTERVAL = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const tasks_js_1 = require("./tasks.js");
9
+ // Note: mostly ripped off from https://github.com/circlefin/cctp-sample-app/blob/master/src/services/attestationService.ts
10
+ exports.CIRCLE_RETRY_INTERVAL = 2000;
11
+ var CircleAttestationStatus;
12
+ (function (CircleAttestationStatus) {
13
+ CircleAttestationStatus["complete"] = "complete";
14
+ CircleAttestationStatus["pending_confirmations"] = "pending_confirmations";
15
+ })(CircleAttestationStatus || (exports.CircleAttestationStatus = CircleAttestationStatus = {}));
16
+ const mapCircleAttestation = (attestationResponse) => ({
17
+ message: attestationResponse.attestation,
18
+ status: attestationResponse.status,
19
+ });
20
+ async function getCircleAttestation(circleApi, msgHash) {
21
+ const url = `${circleApi}/${msgHash}`;
22
+ try {
23
+ const response = await axios_1.default.get(url);
24
+ const attestation = mapCircleAttestation(response?.data);
25
+ return attestation.message === "PENDING" ? null : attestation.message;
26
+ }
27
+ catch (error) {
28
+ if (!error)
29
+ return null;
30
+ if (typeof error === "object") {
31
+ // A 404 error means the VAA is not yet available
32
+ // since its not available yet, we return null signaling it can be tried again
33
+ if (axios_1.default.isAxiosError(error) && error.response?.status === 404)
34
+ return null;
35
+ if ("status" in error && error.status === 404)
36
+ return null;
37
+ }
38
+ throw error;
39
+ }
40
+ }
41
+ exports.getCircleAttestation = getCircleAttestation;
42
+ async function getCircleAttestationWithRetry(circleApi, msgHash, timeout) {
43
+ const task = () => getCircleAttestation(circleApi, msgHash);
44
+ return (0, tasks_js_1.retry)(task, exports.CIRCLE_RETRY_INTERVAL, timeout, "Circle:GetAttestation");
45
+ }
46
+ exports.getCircleAttestationWithRetry = getCircleAttestationWithRetry;
47
+ //# sourceMappingURL=circle-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle-api.js","sourceRoot":"","sources":["../../src/circle-api.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yCAAmC;AAEnC,2HAA2H;AAC9G,QAAA,qBAAqB,GAAG,IAAI,CAAC;AAE1C,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,gDAAqB,CAAA;IACrB,0EAA+C,CAAA;AACjD,CAAC,EAHW,uBAAuB,uCAAvB,uBAAuB,QAGlC;AAWD,MAAM,oBAAoB,GAAG,CAAC,mBAA8C,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO,EAAE,mBAAmB,CAAC,WAAW;IACxC,MAAM,EAAE,mBAAmB,CAAC,MAAM;CACnC,CAAC,CAAC;AAEI,KAAK,UAAU,oBAAoB,CACxC,SAAiB,EACjB,OAAe;IAEf,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;IACtC,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAA4B,GAAG,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,WAAW,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;KACvE;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,iDAAiD;YACjD,8EAA8E;YAC9E,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YAC7E,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;SAC5D;QAED,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AApBD,oDAoBC;AAEM,KAAK,UAAU,6BAA6B,CACjD,SAAiB,EACjB,OAAe,EACf,OAAe;IAEf,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5D,OAAO,IAAA,gBAAK,EAAS,IAAI,EAAE,6BAAqB,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;AACtF,CAAC;AAPD,sEAOC"}
@@ -0,0 +1,4 @@
1
+ import type { Chain, Network } from "@wormhole-foundation/sdk-base";
2
+ import type { ChainContext, Signer, TransactionId, UnsignedTransaction } from "@wormhole-foundation/sdk-definitions";
3
+ export declare function signSendWait<N extends Network, C extends Chain>(chain: ChainContext<N, C>, xfer: AsyncGenerator<UnsignedTransaction<N, C>>, signer: Signer<N, C>): Promise<TransactionId[]>;
4
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,YAAY,EACZ,MAAM,EACN,aAAa,EAEb,mBAAmB,EACpB,MAAM,sCAAsC,CAAC;AAG9C,wBAAsB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,EACnE,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,IAAI,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC/C,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,OAAO,CAAC,aAAa,EAAE,CAAC,CAqC1B"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signSendWait = void 0;
4
+ const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
5
+ async function signSendWait(chain, xfer, signer) {
6
+ const txHashes = [];
7
+ if (!(0, sdk_definitions_1.isSigner)(signer))
8
+ throw new Error("Invalid signer, not SignAndSendSigner or SignOnlySigner");
9
+ const signSend = async (txns) => (0, sdk_definitions_1.isSignAndSendSigner)(signer)
10
+ ? signer.signAndSend(txns)
11
+ : chain.sendWait(await signer.sign(txns));
12
+ let txbuff = [];
13
+ for await (const tx of xfer) {
14
+ // buffer transactions as long as they are
15
+ // marked as parallelizable
16
+ if (tx.parallelizable) {
17
+ txbuff.push(tx);
18
+ }
19
+ else {
20
+ // if we find one is not parallelizable
21
+ // flush the buffer then sign and send the
22
+ // current tx
23
+ if (txbuff.length > 0) {
24
+ txHashes.push(...(await signSend(txbuff)));
25
+ txbuff = [];
26
+ }
27
+ // Note: it may be possible to group this tx with
28
+ // those in the buffer if there are any but
29
+ // the parallelizable flag alone is not enough to signal
30
+ // if this is safe
31
+ txHashes.push(...(await signSend([tx])));
32
+ }
33
+ }
34
+ if (txbuff.length > 0) {
35
+ txHashes.push(...(await signSend(txbuff)));
36
+ }
37
+ return txHashes.map((txid) => ({ chain: chain.chain, txid }));
38
+ }
39
+ exports.signSendWait = signSendWait;
40
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":";;;AAQA,0EAAqF;AAE9E,KAAK,UAAU,YAAY,CAChC,KAAyB,EACzB,IAA+C,EAC/C,MAAoB;IAEpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,IAAA,0BAAQ,EAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAElG,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAiC,EAAqB,EAAE,CAC9E,IAAA,qCAAmB,EAAC,MAAM,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9C,IAAI,MAAM,GAAgC,EAAE,CAAC;IAC7C,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;QAC3B,0CAA0C;QAC1C,2BAA2B;QAC3B,IAAI,EAAE,CAAC,cAAc,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACjB;aAAM;YACL,uCAAuC;YACvC,0CAA0C;YAC1C,aAAa;YACb,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,GAAG,EAAE,CAAC;aACb;YACD,iDAAiD;YACjD,2CAA2C;YAC3C,wDAAwD;YACxD,kBAAkB;YAClB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1C;KACF;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC5C;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC;AAzCD,oCAyCC"}
@@ -0,0 +1,34 @@
1
+ import type { Network, Platform } from "@wormhole-foundation/sdk-base";
2
+ import type { ChainsConfig } from "@wormhole-foundation/sdk-definitions";
3
+ export declare const DEFAULT_TASK_TIMEOUT: number;
4
+ export type WormholeConfig<N extends Network = Network, P extends Platform = Platform> = {
5
+ api: string;
6
+ circleAPI: string;
7
+ chains: ChainsConfig<N, P>;
8
+ };
9
+ type RecursivePartial<T> = {
10
+ [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];
11
+ };
12
+ export type ConfigOverrides = RecursivePartial<WormholeConfig>;
13
+ export declare const CONFIG: {
14
+ readonly Mainnet: {
15
+ readonly api: "https://api.wormholescan.io";
16
+ readonly circleAPI: "https://iris-api.circle.com/v1/attestations";
17
+ readonly chains: ChainsConfig<"Mainnet", "Evm" | "Solana" | "Cosmwasm" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near">;
18
+ };
19
+ readonly Testnet: {
20
+ readonly api: "https://api.testnet.wormholescan.io";
21
+ readonly circleAPI: "https://iris-api-sandbox.circle.com/v1/attestations";
22
+ readonly chains: ChainsConfig<"Testnet", "Evm" | "Solana" | "Cosmwasm" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near">;
23
+ };
24
+ readonly Devnet: {
25
+ readonly api: "http://guardian:7071";
26
+ readonly circleAPI: "";
27
+ readonly chains: ChainsConfig<"Devnet", "Evm" | "Solana" | "Cosmwasm" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near">;
28
+ };
29
+ };
30
+ export declare function networkPlatformConfigs<N extends Network, P extends Platform>(network: N, platform: P): ChainsConfig<N, P>;
31
+ export declare function applyOverrides<N extends Network>(network: N, overrides?: ConfigOverrides): WormholeConfig;
32
+ export declare const DEFAULT_NETWORK: Network;
33
+ export {};
34
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGzE,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAE9C,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI;IACvF,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC5B,CAAC;AAEF,KAAK,gBAAgB,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACrC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GACrB,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,GAC/B,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAE/D,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;CAgBiC,CAAC;AAErD,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,QAAQ,EAC1E,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,CAAC,GACV,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAMpB;AAGD,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAC9C,OAAO,EAAE,CAAC,EACV,SAAS,CAAC,EAAE,eAAe,GAC1B,cAAc,CAiBhB;AAGD,eAAO,MAAM,eAAe,EAAE,OACgC,CAAC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_NETWORK = exports.applyOverrides = exports.networkPlatformConfigs = exports.CONFIG = exports.DEFAULT_TASK_TIMEOUT = void 0;
4
+ const sdk_base_1 = require("@wormhole-foundation/sdk-base");
5
+ const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
6
+ exports.DEFAULT_TASK_TIMEOUT = 60 * 1000; // 1 minute in milliseconds
7
+ exports.CONFIG = {
8
+ Mainnet: {
9
+ api: "https://api.wormholescan.io",
10
+ circleAPI: sdk_base_1.circle.circleAPI("Mainnet"),
11
+ chains: (0, sdk_definitions_1.buildConfig)("Mainnet"),
12
+ },
13
+ Testnet: {
14
+ api: "https://api.testnet.wormholescan.io",
15
+ circleAPI: sdk_base_1.circle.circleAPI("Testnet"),
16
+ chains: (0, sdk_definitions_1.buildConfig)("Testnet"),
17
+ },
18
+ Devnet: {
19
+ api: "http://guardian:7071",
20
+ circleAPI: "",
21
+ chains: (0, sdk_definitions_1.buildConfig)("Devnet"),
22
+ },
23
+ };
24
+ function networkPlatformConfigs(network, platform) {
25
+ return Object.fromEntries(Object.entries(exports.CONFIG[network].chains).filter(([_, c]) => {
26
+ return c.platform == platform;
27
+ }));
28
+ }
29
+ exports.networkPlatformConfigs = networkPlatformConfigs;
30
+ // Apply any overrides to the base config
31
+ function applyOverrides(network, overrides) {
32
+ let base = exports.CONFIG[network];
33
+ if (!overrides)
34
+ return base;
35
+ // recurse through the overrides and apply them to the base config
36
+ function override(base, overrides) {
37
+ for (const [key, value] of Object.entries(overrides)) {
38
+ if (typeof value === "object" && !Array.isArray(value)) {
39
+ base[key] = override(base[key], value);
40
+ }
41
+ else {
42
+ base[key] = value;
43
+ }
44
+ }
45
+ return base;
46
+ }
47
+ return override(base, overrides);
48
+ }
49
+ exports.applyOverrides = applyOverrides;
50
+ const inNode = typeof process !== "undefined";
51
+ exports.DEFAULT_NETWORK = (inNode && process.env["NETWORK"]) || "Testnet";
52
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AACA,4DAAuD;AAEvD,0EAAmE;AAEtD,QAAA,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,2BAA2B;AAkB7D,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE;QACP,GAAG,EAAE,6BAA6B;QAClC,SAAS,EAAE,iBAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QACtC,MAAM,EAAE,IAAA,6BAAW,EAAC,SAAS,CAAC;KAC/B;IACD,OAAO,EAAE;QACP,GAAG,EAAE,qCAAqC;QAC1C,SAAS,EAAE,iBAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QACtC,MAAM,EAAE,IAAA,6BAAW,EAAC,SAAS,CAAC;KAC/B;IACD,MAAM,EAAE;QACN,GAAG,EAAE,sBAAsB;QAC3B,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,IAAA,6BAAW,EAAC,QAAQ,CAAC;KAC9B;CACiD,CAAC;AAErD,SAAgB,sBAAsB,CACpC,OAAU,EACV,QAAW;IAEX,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,cAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACvD,OAAO,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAChC,CAAC,CAAC,CACmB,CAAC;AAC1B,CAAC;AATD,wDASC;AAED,yCAAyC;AACzC,SAAgB,cAAc,CAC5B,OAAU,EACV,SAA2B;IAE3B,IAAI,IAAI,GAAG,cAAM,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,kEAAkE;IAClE,SAAS,QAAQ,CAAC,IAAS,EAAE,SAAc;QACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtD,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;aACxC;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACnB;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC;AApBD,wCAoBC;AAED,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC;AACjC,QAAA,eAAe,GAC1B,CAAC,MAAM,IAAK,OAAO,CAAC,GAAG,CAAC,SAAS,CAAa,CAAC,IAAI,SAAS,CAAC"}
@@ -0,0 +1,15 @@
1
+ export * from "./wormhole.js";
2
+ export * from "./config.js";
3
+ export * from "./common.js";
4
+ export * from "./types.js";
5
+ export * from "./protocols/wormholeTransfer.js";
6
+ export * from "./protocols/tokenTransfer.js";
7
+ export * from "./protocols/cctpTransfer.js";
8
+ export * from "./protocols/gatewayTransfer.js";
9
+ export * as tasks from "./tasks.js";
10
+ export * as circleApi from "./circle-api.js";
11
+ export * as api from "./whscan-api.js";
12
+ export * as routes from "./routes/index.js";
13
+ export * from "@wormhole-foundation/sdk-base";
14
+ export * from "@wormhole-foundation/sdk-definitions";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAE/C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAG5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC"}
@@ -0,0 +1,45 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.routes = exports.api = exports.circleApi = exports.tasks = void 0;
30
+ __exportStar(require("./wormhole.js"), exports);
31
+ __exportStar(require("./config.js"), exports);
32
+ __exportStar(require("./common.js"), exports);
33
+ __exportStar(require("./types.js"), exports);
34
+ __exportStar(require("./protocols/wormholeTransfer.js"), exports);
35
+ __exportStar(require("./protocols/tokenTransfer.js"), exports);
36
+ __exportStar(require("./protocols/cctpTransfer.js"), exports);
37
+ __exportStar(require("./protocols/gatewayTransfer.js"), exports);
38
+ exports.tasks = __importStar(require("./tasks.js"));
39
+ exports.circleApi = __importStar(require("./circle-api.js"));
40
+ exports.api = __importStar(require("./whscan-api.js"));
41
+ exports.routes = __importStar(require("./routes/index.js"));
42
+ // Re-export from core packages
43
+ __exportStar(require("@wormhole-foundation/sdk-base"), exports);
44
+ __exportStar(require("@wormhole-foundation/sdk-definitions"), exports);
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8CAA4B;AAC5B,8CAA4B;AAC5B,6CAA2B;AAE3B,kEAAgD;AAChD,+DAA6C;AAC7C,8DAA4C;AAC5C,iEAA+C;AAE/C,oDAAoC;AACpC,6DAA6C;AAC7C,uDAAuC;AAEvC,4DAA4C;AAE5C,+BAA+B;AAC/B,gEAA8C;AAC9C,uEAAqD"}
@@ -0,0 +1,42 @@
1
+ import type { Chain, Network } from "@wormhole-foundation/sdk-base";
2
+ import type { Attestation, AttestationId, AutomaticCircleBridge, ChainContext, CircleTransferDetails, Signer, TransactionId, TxHash, WormholeMessageId } from "@wormhole-foundation/sdk-definitions";
3
+ import type { AttestationReceipt, TransferQuote, TransferReceipt } from "../types.js";
4
+ import { TransferState } from "../types.js";
5
+ import { Wormhole } from "../wormhole.js";
6
+ import type { WormholeTransfer } from "./wormholeTransfer.js";
7
+ type CircleTransferProtocol = "CircleBridge" | "AutomaticCircleBridge";
8
+ export type CircleAttestationReceipt = AttestationReceipt<CircleTransferProtocol>;
9
+ export type CircleTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> = TransferReceipt<CircleAttestationReceipt, SC, DC>;
10
+ export declare class CircleTransfer<N extends Network = Network> implements WormholeTransfer<CircleTransferProtocol> {
11
+ private readonly wh;
12
+ fromChain: ChainContext<N, Chain>;
13
+ toChain: ChainContext<N, Chain>;
14
+ private _state;
15
+ transfer: CircleTransferDetails;
16
+ txids: TransactionId[];
17
+ attestations?: AttestationReceipt<CircleTransferProtocol>[];
18
+ private constructor();
19
+ getTransferState(): TransferState;
20
+ static from<N extends Network>(wh: Wormhole<N>, from: CircleTransferDetails, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<CircleTransfer<N>>;
21
+ static from<N extends Network>(wh: Wormhole<N>, from: WormholeMessageId, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<CircleTransfer<N>>;
22
+ static from<N extends Network>(wh: Wormhole<N>, from: string, // CircleMessage hex encoded
23
+ timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<CircleTransfer<N>>;
24
+ static from<N extends Network>(wh: Wormhole<N>, from: TransactionId, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<CircleTransfer<N>>;
25
+ private static fromWormholeMessageId;
26
+ private static fromCircleMessage;
27
+ private static fromTransaction;
28
+ initiateTransfer(signer: Signer): Promise<TxHash[]>;
29
+ static transfer<N extends Network, C extends Chain = Chain>(fromChain: ChainContext<N, C>, transfer: CircleTransferDetails, signer: Signer<N, Chain>): Promise<TransactionId[]>;
30
+ private _fetchWormholeAttestation;
31
+ private _fetchCircleAttestation;
32
+ fetchAttestation(timeout?: number): Promise<AttestationId[]>;
33
+ completeTransfer(signer: Signer): Promise<TxHash[]>;
34
+ static quoteTransfer<N extends Network>(srcChain: ChainContext<N, Chain>, dstChain: ChainContext<N, Chain>, transfer: CircleTransferDetails): Promise<TransferQuote>;
35
+ static isTransferComplete<N extends Network>(toChain: ChainContext<N, Chain>, attestation: Attestation<CircleTransferProtocol>): Promise<boolean>;
36
+ static getTransferVaa<N extends Network>(wh: Wormhole<N>, wormholeMessageId: WormholeMessageId, timeout?: number): Promise<AutomaticCircleBridge.VAA>;
37
+ static getTransferMessage<N extends Network>(fromChain: ChainContext<N, Chain>, txid: TxHash): Promise<import("@wormhole-foundation/sdk-definitions").CircleTransferMessage>;
38
+ static getReceipt<N extends Network>(xfer: CircleTransfer<N>): CircleTransferReceipt;
39
+ 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>>;
40
+ }
41
+ export {};
42
+ //# 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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"}