@wormhole-foundation/wormhole-connect 1.0.0-beta.4-development → 1.0.0-beta.6-development
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/assets/{ccip-Dn5z57Cx.js → ccip-HS3Cs5py.js} +1 -1
- package/dist/assets/{evm-Ci-t-8ei.js → evm-DyY55Fca.js} +4 -4
- package/dist/assets/{index-yInQCZK6.js → index-CeF-n8om.js} +1 -1
- package/dist/assets/{index-Da59NFoY.js → index-CqxhuXyT.js} +1 -1
- package/dist/assets/{index-DlyJ6Tua.js → index-CwoiJQ9y.js} +2 -2
- package/dist/assets/{index.es-DUffrgf3.js → index.es-BHZwRRXn.js} +2 -2
- package/dist/main.js +65 -65
- package/dist/src/AppRouter.d.ts.map +1 -1
- package/dist/src/consts/index.d.ts +0 -1
- package/dist/src/consts/index.d.ts.map +1 -1
- package/dist/src/routes/index.d.ts +0 -1
- package/dist/src/routes/index.d.ts.map +1 -1
- package/dist/src/sdklegacy/wormhole.d.ts +1 -38
- package/dist/src/sdklegacy/wormhole.d.ts.map +1 -1
- package/dist/src/store/redeem.d.ts +1 -4
- package/dist/src/store/redeem.d.ts.map +1 -1
- package/dist/src/telemetry/types.d.ts +2 -0
- package/dist/src/telemetry/types.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/transferValidation.d.ts +1 -2
- package/dist/src/utils/transferValidation.d.ts.map +1 -1
- package/dist/src/utils/wallet/index.d.ts +0 -1
- package/dist/src/utils/wallet/index.d.ts.map +1 -1
- package/dist/src/views/v2/Bridge/AmountInput/index.d.ts.map +1 -1
- package/dist/src/views/v2/Redeem/index.d.ts.map +1 -1
- package/lib/{algorand-BZfir-Gt.js → algorand-B3jpS4mY.js} +1 -1
- package/lib/{algorand-B9ai7AKk.mjs → algorand-CIOlvhGh.mjs} +3 -3
- package/lib/{aptos-CX7jOv1y.js → aptos-B7P6JL1S.js} +1 -1
- package/lib/{aptos-BiWZASIH.mjs → aptos-CKPSmGSC.mjs} +3 -3
- package/lib/{aptos-ZpPdNMHJ.mjs → aptos-CrnZjgsh.mjs} +1 -1
- package/lib/{aptos-D_w5IEUK.js → aptos-Cx4TaXYo.js} +2 -2
- package/lib/{ccip-CLMQ2RsP.js → ccip-B-q-r_A1.js} +1 -1
- package/lib/{ccip-lVzudYcQ.mjs → ccip-pU66-Jja.mjs} +1 -1
- package/lib/{cosmos-6rjmrhY_.js → cosmos-BDlV5WWM.js} +1 -1
- package/lib/{cosmos-B3YMB-qs.mjs → cosmos-mLLSK_Nm.mjs} +6 -6
- package/lib/{cosmwasm-SnVdtN68.mjs → cosmwasm-CGolR9gL.mjs} +7 -7
- package/lib/{cosmwasm-DMVssDjU.js → cosmwasm-CViLVch6.js} +2 -2
- package/lib/{events-t6i_QSEn.js → events-BSNN9qkd.js} +1 -1
- package/lib/{events-pgsgrP1S.mjs → events-Dzr-GrPB.mjs} +1 -1
- package/lib/{evm-Bd3DzKCY.mjs → evm-BILIyDaj.mjs} +7 -7
- package/lib/{evm-D7GRIPdg.js → evm-DMGYpAGT.js} +4 -4
- package/lib/{evm-DiQodX72.mjs → evm-DXAiSRNs.mjs} +5 -5
- package/lib/{evm-DFJuxSg1.js → evm-ronpaGiZ.js} +1 -1
- package/lib/{index-BAqClXT6.js → index-58isS1fK.js} +1 -1
- package/lib/{index-C_JBf5AE.js → index-AslWQnUt.js} +1 -1
- package/lib/{index-DJgWkkqj.mjs → index-BAErxF8G.mjs} +2 -2
- package/lib/{index-BZ7LatAr.js → index-BHGS0dw3.js} +6 -6
- package/lib/{index-B_FxM4qi.js → index-BJQjdDt-.js} +1 -1
- package/lib/{index-2LZtNZ5P.js → index-BKDeZ8n5.js} +1 -1
- package/lib/{index-D4-zCm-j.js → index-BN2lROi0.js} +1 -1
- package/lib/{index-BjpzXqrL.js → index-BO5ATVUH.js} +1 -1
- package/lib/{index-Dk2OkATw.js → index-BRdg8SSa.js} +1 -1
- package/lib/{index-0YCaekiF.mjs → index-BTS53_Aj.mjs} +2 -2
- package/lib/{index-Cl110Yt1.js → index-BVxqSkXh.js} +1 -1
- package/lib/{index-CkyGUP8I.mjs → index-BWe8c3sQ.mjs} +2 -2
- package/lib/{index-0QJFchou.mjs → index-BdINnTi7.mjs} +2 -2
- package/lib/{index-CdFX-OBR.mjs → index-Be-kzEHF.mjs} +4 -4
- package/lib/{index-C4NKqUWK.mjs → index-BvbKk4T6.mjs} +1 -1
- package/lib/{index-mAuqp4GD.js → index-Byr7P1JY.js} +1 -1
- package/lib/{index-DPq8nS1b.mjs → index-C1jcO7wH.mjs} +1 -1
- package/lib/{index-EhUlCH18.mjs → index-C2DCdxRC.mjs} +39 -122
- package/lib/{index-C9xfXphF.mjs → index-C2WFu8In.mjs} +2 -2
- package/lib/{index-BhrO8yNx.mjs → index-CAHXQCTs.mjs} +2 -2
- package/lib/{index-EPcXyhD3.js → index-CAcB_0Hd.js} +1 -1
- package/lib/{index-VI9qDjx0.js → index-CHAdrAO4.js} +1 -1
- package/lib/{index-hiGmsL0b.mjs → index-CMWEjIGj.mjs} +1 -1
- package/lib/{index-B64jLBfI.mjs → index-CSKSjjgt.mjs} +2 -2
- package/lib/{index-fPs98C_X.mjs → index-CZj2FglQ.mjs} +2 -2
- package/lib/{index-DWmEAYa2.js → index-Cd8xotiJ.js} +1 -1
- package/lib/{index-DUn9bDrk.mjs → index-Co1vTibS.mjs} +2 -2
- package/lib/{index-fD6yeQDw.mjs → index-CruftbOC.mjs} +7 -7
- package/lib/{index-CpM8O4af.mjs → index-D6u6ZlbM.mjs} +4 -4
- package/lib/{index-CE4mRmPN.js → index-DEAhtMw_.js} +1 -1
- package/lib/{index-CFVJznfe.js → index-DFZ0Ndqh.js} +1 -1
- package/lib/{index-DLXjX60f.js → index-DFa89Itc.js} +1 -1
- package/lib/{index-Bd6ExIDW.mjs → index-DWKvilYv.mjs} +4 -4
- package/lib/{index-BcbPoWss.mjs → index-DXCl1vFR.mjs} +3 -3
- package/lib/{index-DZbeM9gY.mjs → index-Da7Cxyq1.mjs} +2 -2
- package/lib/{index-B5TmFc4M.js → index-DbI4zYHg.js} +1 -1
- package/lib/{index-DVnPDtFx.mjs → index-DiF1ira9.mjs} +1 -1
- package/lib/{index-DllSkb9h.js → index-Dmko8wT8.js} +1 -1
- package/lib/{index-CvRFH7pa.js → index-Dpzov1Io.js} +1 -1
- package/lib/{index-BT7_dDgl.mjs → index-YNti7nIJ.mjs} +3 -3
- package/lib/{index-048e7Uvl.js → index-ZD733qpV.js} +1 -1
- package/lib/{index-QqzqKjF9.js → index-bdAItiPr.js} +1 -1
- package/lib/{index-DG5KwGj7.mjs → index-e3UZ_0nd.mjs} +3 -3
- package/lib/{index-BkyCouQJ.js → index-g3eZpZJ1.js} +1 -1
- package/lib/{index-B2aC_g_3.js → index-iXByZuY7.js} +1 -1
- package/lib/{index-BYv5Tbwe.mjs → index-mUmOCSLG.mjs} +1 -1
- package/lib/{index-bpVbPzFG.mjs → index-oMwdMcy1.mjs} +1 -1
- package/lib/{index-CcKxlhe-.js → index-wXdILngm.js} +1 -1
- package/lib/{index.es-WCp4WrVw.js → index.es-B6NnL7-2.js} +2 -2
- package/lib/{index.es-B4wQLKJO.mjs → index.es-DNGjs0VX.mjs} +5 -5
- package/lib/index.js +1 -1
- package/lib/index.mjs +1 -1
- package/lib/{libsodium-wrappers-BdZeVEOK.js → libsodium-wrappers-B21TAmoM.js} +1 -1
- package/lib/{libsodium-wrappers-DnY3rBzj.mjs → libsodium-wrappers-BKcruoKB.mjs} +1 -1
- package/lib/{pako.esm-doGHPq3v.mjs → pako.esm-C_3vjkSx.mjs} +3 -3
- package/lib/{pako.esm-CpOVp0Fg.js → pako.esm-x_RIwOhS.js} +1 -1
- package/lib/{pbkdf2-DRrUaAek.js → pbkdf2-BiOly-Fb.js} +1 -1
- package/lib/{pbkdf2-CR1mMO6P.mjs → pbkdf2-h3af_qT8.mjs} +1 -1
- package/lib/{sei-BHskcl2R.js → sei-CsiLK3q4.js} +1 -1
- package/lib/{sei-ReMraEM4.mjs → sei-J7Ndid0z.mjs} +4 -4
- package/lib/{signer-BwkEV8NR.mjs → signer-Bqq-7pmw.mjs} +1 -1
- package/lib/{signer-C5udfQih.js → signer-DqTjY4LV.js} +1 -1
- package/lib/solana-CRL9xy7K.mjs +16 -0
- package/lib/{solana-BWRzXH9-.js → solana-Ce3qepls.js} +1 -1
- package/lib/{solana-kr2Et-_M.mjs → solana-DoXIYwUz.mjs} +4 -4
- package/lib/solana-rhlzUaN7.js +1 -0
- package/lib/{solanaEmbed.esm-HLygiesN.mjs → solanaEmbed.esm-BDiuwARH.mjs} +4 -4
- package/lib/{solanaEmbed.esm-8hegnauD.js → solanaEmbed.esm-aEhVr3dz.js} +1 -1
- package/lib/src/AppRouter.d.ts.map +1 -1
- package/lib/src/consts/index.d.ts +0 -1
- package/lib/src/consts/index.d.ts.map +1 -1
- package/lib/src/routes/index.d.ts +0 -1
- package/lib/src/routes/index.d.ts.map +1 -1
- package/lib/src/sdklegacy/wormhole.d.ts +1 -38
- package/lib/src/sdklegacy/wormhole.d.ts.map +1 -1
- package/lib/src/store/redeem.d.ts +1 -4
- package/lib/src/store/redeem.d.ts.map +1 -1
- package/lib/src/telemetry/types.d.ts +2 -0
- package/lib/src/telemetry/types.d.ts.map +1 -1
- package/lib/src/utils/index.d.ts.map +1 -1
- package/lib/src/utils/transferValidation.d.ts +1 -2
- package/lib/src/utils/transferValidation.d.ts.map +1 -1
- package/lib/src/utils/wallet/index.d.ts +0 -1
- package/lib/src/utils/wallet/index.d.ts.map +1 -1
- package/lib/src/views/v2/Bridge/AmountInput/index.d.ts.map +1 -1
- package/lib/src/views/v2/Redeem/index.d.ts.map +1 -1
- package/lib/{sui-B6XCpe1d.mjs → sui-Bd2bm_yF.mjs} +1 -1
- package/lib/{sui-BWRqoTdl.js → sui-CNNdjXyR.js} +2 -2
- package/lib/{sui-BocrppL0.js → sui-CthAG5pi.js} +1 -1
- package/lib/{sui-BuZPAcI0.mjs → sui-sEkivVSe.mjs} +4 -4
- package/lib/{unsignedTransaction-oXk8lD5s.mjs → unsignedTransaction-CA2s3rKG.mjs} +2 -2
- package/lib/{unsignedTransaction-DSuqsGgb.js → unsignedTransaction-qKKmqcBf.js} +1 -1
- package/lib/{utils-SML27G4C.js → utils-Deb--_8V.js} +1 -1
- package/lib/{utils-fI-uXUZk.mjs → utils-OPA3b1An.mjs} +2 -2
- package/package.json +1 -1
- package/dist/src/routes/utils.d.ts +0 -2
- package/dist/src/routes/utils.d.ts.map +0 -1
- package/dist/src/utils/sdk.d.ts +0 -19
- package/dist/src/utils/sdk.d.ts.map +0 -1
- package/lib/solana-ci1dqiv5.mjs +0 -16
- package/lib/solana-gFEm46ZS.js +0 -1
- package/lib/src/routes/utils.d.ts +0 -2
- package/lib/src/routes/utils.d.ts.map +0 -1
- package/lib/src/utils/sdk.d.ts +0 -19
- package/lib/src/utils/sdk.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var m=Object.defineProperty;var w=(i,e,t)=>e in i?m(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var s=(i,e,t)=>w(i,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./index-
|
|
1
|
+
"use strict";var m=Object.defineProperty;var w=(i,e,t)=>e in i?m(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var s=(i,e,t)=>w(i,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./index-BHGS0dw3.js"),g=require("./aptos-Cx4TaXYo.js");class d{constructor(e,t,r,o){s(this,"network");s(this,"chain");s(this,"connection");s(this,"contracts");s(this,"chainId");s(this,"coreBridge");this.network=e,this.chain=t,this.connection=r,this.contracts=o,this.chainId=c.toChainId(t);const n=o.coreBridge;if(!n)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.coreBridge=n}getGuardianSet(e){throw new Error("Method not implemented.")}getGuardianSetIndex(){throw new Error("Method not implemented.")}getMessageFee(){throw new Error("Method not implemented.")}static async fromRpc(e,t){const[r,o]=await g.AptosPlatform.chainFromRpc(e),n=t[o];if(n.network!==r)throw new Error(`Network mismatch: ${n.network} !== ${r}`);return new d(r,o,e,n.contracts)}async*publishMessage(e,t){throw new Error("Method not implemented.")}async*verifyMessage(e,t){throw new Error("Not implemented.")}async parseTransaction(e){return(await this.parseMessages(e)).map(r=>({chain:r.emitterChain,emitter:r.emitterAddress,sequence:r.sequence}))}async parseMessages(e){const t=await this.connection.getTransactionByHash(e);if(t.type!=="user_transaction")throw new Error(`${e} is not a user_transaction`);const o=t.events.filter(n=>n.type.endsWith("WormholeMessage"));if(!o||o.length===0)throw new Error(`WormholeMessage not found for ${e}`);return o.map(n=>{const a=n.data,h=new c.UniversalAddress(BigInt(a.sender).toString(16).padStart(64,"0"));return c.createVAA("Uint8Array",{guardianSet:0,emitterChain:this.chain,emitterAddress:h,sequence:BigInt(a.sequence),timestamp:Number(a.timestamp),consistencyLevel:a.consistency_level,nonce:Number(a.nonce),signatures:[],payload:c.hex.decode(a.payload)})})}}c.registerProtocol("Aptos","WormholeCore",d);exports.AptosWormholeCore=d;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var b = Object.defineProperty;
|
|
2
2
|
var W = (h, t, e) => t in h ? b(h, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : h[t] = e;
|
|
3
3
|
var c = (h, t, e) => W(h, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
-
import "./index-
|
|
5
|
-
import { C as p, G as v } from "./cosmwasm-
|
|
6
|
-
import { b as o, c as g, C as x } from "./unsignedTransaction-
|
|
7
|
-
import { p as u, N as d, a8 as B, ce as S, a3 as a, c8 as E, c9 as q, bM as y, bR as I, a9 as D } from "./index-
|
|
4
|
+
import "./index-BTS53_Aj.mjs";
|
|
5
|
+
import { C as p, G as v } from "./cosmwasm-CGolR9gL.mjs";
|
|
6
|
+
import { b as o, c as g, C as x } from "./unsignedTransaction-CA2s3rKG.mjs";
|
|
7
|
+
import { p as u, N as d, a8 as B, ce as S, a3 as a, c8 as E, c9 as q, bM as y, bR as I, a9 as D } from "./index-C2DCdxRC.mjs";
|
|
8
8
|
class k {
|
|
9
9
|
constructor(t, e, r, s) {
|
|
10
10
|
c(this, "network");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var Q = Object.defineProperty;
|
|
2
2
|
var X = (O, e, t) => e in O ? Q(O, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : O[e] = t;
|
|
3
3
|
var d = (O, e, t) => X(O, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
-
import { A as b, S as g, a as Y } from "./index-
|
|
5
|
-
import { d9 as Z, a5 as C, a8 as $, da as _, an as I, db as v, dc as q, c8 as tt, cp as S, c9 as et, p as H, ce as K, dd as y, de as u, df as k, dg as U, bM as L, dh as z, di as st, dj as V, dk as ot, bR as nt, ak as rt } from "./index-
|
|
6
|
-
import { A as at } from "./algorand-
|
|
4
|
+
import { A as b, S as g, a as Y } from "./index-CZj2FglQ.mjs";
|
|
5
|
+
import { d9 as Z, a5 as C, a8 as $, da as _, an as I, db as v, dc as q, c8 as tt, cp as S, c9 as et, p as H, ce as K, dd as y, de as u, df as k, dg as U, bM as L, dh as z, di as st, dj as V, dk as ot, bR as nt, ak as rt } from "./index-C2DCdxRC.mjs";
|
|
6
|
+
import { A as at } from "./algorand-CIOlvhGh.mjs";
|
|
7
7
|
const G = Z.fromSignature("portal_transfer(byte[])byte[]"), c = class c {
|
|
8
8
|
constructor(e, t, n, o) {
|
|
9
9
|
d(this, "network");
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var d = Object.defineProperty;
|
|
2
2
|
var h = (i, e, r) => e in i ? d(i, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : i[e] = r;
|
|
3
3
|
var o = (i, e, r) => h(i, typeof e != "symbol" ? e + "" : e, r);
|
|
4
|
-
import { a8 as m, cL as w, Q as g, bR as p } from "./index-
|
|
5
|
-
import { S as u } from "./sui-
|
|
4
|
+
import { a8 as m, cL as w, Q as g, bR as p } from "./index-C2DCdxRC.mjs";
|
|
5
|
+
import { S as u } from "./sui-sEkivVSe.mjs";
|
|
6
6
|
class c {
|
|
7
7
|
constructor(e, r, t, n) {
|
|
8
8
|
o(this, "network");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var h=Object.defineProperty;var m=(a,e,r)=>e in a?h(a,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[e]=r;var o=(a,e,r)=>m(a,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./index-
|
|
1
|
+
"use strict";var h=Object.defineProperty;var m=(a,e,r)=>e in a?h(a,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[e]=r;var o=(a,e,r)=>m(a,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./index-BHGS0dw3.js"),u=require("./sui-CNNdjXyR.js");class d{constructor(e,r,t,n){o(this,"network");o(this,"chain");o(this,"provider");o(this,"contracts");o(this,"chainId");o(this,"coreBridgePackageId");this.network=e,this.chain=r,this.provider=t,this.contracts=n,this.chainId=c.toChainId(r);const s=n.coreBridge;if(!s)throw new Error(`CoreBridge contract Address for chain ${r} not found`);this.coreBridgePackageId=s}getGuardianSet(e){throw new Error("Method not implemented.")}getMessageFee(){throw new Error("Method not implemented.")}static async fromRpc(e,r){const[t,n]=await u.SuiPlatform.chainFromRpc(e),s=r[n];if(s.network!==t)throw new Error(`Network mismatch: ${s.network} !== ${t}`);return new d(t,n,e,s.contracts)}async*verifyMessage(e,r){throw new Error("Method not implemented.")}async*publishMessage(e,r){throw new Error("Method not implemented.")}async parseTransaction(e){return(await this.parseMessages(e)).map(t=>({emitter:t.emitterAddress,sequence:t.sequence,chain:this.chain}))}async getGuardianSetIndex(){throw new Error("Method not implemented.")}async parseMessages(e){var n;const t=(n=(await this.provider.getTransactionBlock({digest:e,options:{showEvents:!0,showEffects:!0,showInput:!0}})).events)==null?void 0:n.filter(s=>s.type.endsWith("WormholeMessage"));if(!t||t.length==0)throw new Error("WormholeMessage not found");return t.map(s=>{const i=s.parsedJson;return c.createVAA("Uint8Array",{emitterChain:this.chain,emitterAddress:new c.SuiAddress(i.sender).toUniversalAddress(),sequence:BigInt(i.sequence),guardianSet:0,timestamp:Number(i.timestamp),consistencyLevel:i.consistency_level,nonce:i.nonce,signatures:[],payload:new Uint8Array(i.payload)})})}}c.registerProtocol("Sui","WormholeCore",d);exports.SuiWormholeCore=d;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var $ = Object.defineProperty;
|
|
2
2
|
var V = (i, e, b) => e in i ? $(i, e, { enumerable: !0, configurable: !0, writable: !0, value: b }) : i[e] = b;
|
|
3
3
|
var d = (i, e, b) => V(i, typeof e != "symbol" ? e + "" : e, b);
|
|
4
|
-
import { aj as E, E as o, c7 as x, a8 as l, c8 as z, c9 as L, a as c, p as k, ca as j, cb as Q, bM as g, cc as W, cd as T, bL as s, ce as _, bP as P, bQ as N, c6 as F, bE as q, aA as D, bR as H, _ as O } from "./index-
|
|
4
|
+
import { aj as E, E as o, c7 as x, a8 as l, c8 as z, c9 as L, a as c, p as k, ca as j, cb as Q, bM as g, cc as W, cd as T, bL as s, ce as _, bP as P, bQ as N, c6 as F, bE as q, aA as D, bR as H, _ as O } from "./index-C2DCdxRC.mjs";
|
|
5
5
|
class B {
|
|
6
6
|
constructor(e, b, a, t) {
|
|
7
7
|
d(this, "network");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var P=Object.defineProperty;var U=(k,o,t)=>o in k?P(k,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):k[o]=t;var g=(k,o,t)=>U(k,typeof o!="symbol"?o+"":o,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./index-mAuqp4GD.js"),e=require("./index-BZ7LatAr.js"),v=require("./algorand-BZfir-Gt.js"),j=e.ABIMethod.fromSignature("portal_transfer(byte[])byte[]"),p=class p{constructor(o,t,r,s){g(this,"network");g(this,"chain");g(this,"connection");g(this,"contracts");g(this,"chainId");g(this,"coreBridge");g(this,"coreAppId");g(this,"coreAppAddress");g(this,"tokenBridgeAppId");g(this,"tokenBridgeAddress");if(this.network=o,this.chain=t,this.connection=r,this.contracts=s,this.chainId=e.toChainId(t),!s.coreBridge)throw new Error(`Core contract address for chain ${t} not found`);const i=BigInt(s.coreBridge);if(this.coreAppId=i,this.coreAppAddress=e.getApplicationAddress(i),this.coreBridge=new d.AlgorandWormholeCore(o,t,r,s),!s.tokenBridge)throw new Error(`TokenBridge contract address for chain ${t} not found`);const a=BigInt(s.tokenBridge);this.tokenBridgeAppId=a,this.tokenBridgeAddress=e.getApplicationAddress(a)}static async fromRpc(o,t){const[r,s]=await v.AlgorandPlatform.chainFromRpc(o),i=t[s];if(i.network!==r)throw new Error(`Network mismatch: ${i.network} != ${r}`);return new p(r,s,o,i.contracts)}async isWrappedAsset(o){const t=new e.AlgorandAddress(o).toInt();if(t===0)return!1;const r=await this.connection.getAssetByID(t).do(),i=e.Asset.from_obj_for_encoding(r).params.creator,a=await this.connection.accountInformation(i).exclude("all").do(),n=e.Account.from_obj_for_encoding(a);return(n==null?void 0:n.authAddr)===this.tokenBridgeAddress}async getOriginalAsset(o){const t=new e.AlgorandAddress(o).toInt(),r=await this.connection.getAssetByID(t).do(),s=e.Asset.from_obj_for_encoding(r),i=await d.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,s.params.creator);if(i.length<94)throw new Error("Invalid local state data");const a=i.slice(92,94),n=e.toChain(e.bignum.decode(a)),A=new e.UniversalAddress(i.slice(60,92));return{chain:n,address:A}}async getTokenUniversalAddress(o){return new e.AlgorandAddress(o).toUniversalAddress()}async getTokenNativeAddress(o,t){return new e.AlgorandAddress(t).toNative()}async getWrappedAsset(o){if(e.isNative(o.address))throw new Error("native asset cannot be a wrapped asset");const t=d.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,o),r=await d.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,t.address());if(r.length<8)throw new Error("Invalid wrapped asset data");return e.toNative(this.chain,e.bignum.decode(r.slice(0,8)).toString())}async hasWrappedAsset(o){try{return await this.getWrappedAsset(o),!0}catch{}return!1}async getWrappedNative(){return e.toNative(this.chain,"0")}async isTransferCompleted(o){const t=d.StorageLogicSig.forMessageId(this.tokenBridgeAppId,{sequence:o.sequence,chain:o.emitterChain,emitter:o.emitterAddress});try{return await d.StorageLogicSig.checkBitsSet(this.connection,this.tokenBridgeAppId,t.address(),o.sequence)}catch{}return!1}async*createAttestation(o,t){if(!t)throw new Error("Payer required to create attestation");const r=new e.AlgorandAddress(t).toString(),s=new e.AlgorandAddress(o).toInt(),i=[],a=await this.connection.getTransactionParams().do(),n=d.StorageLogicSig.forEmitter(this.coreAppId,new e.AlgorandAddress(this.tokenBridgeAddress).toUint8Array()),{accounts:[A],txs:I}=await d.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,r,this.coreAppId,n,a);i.push(...I);let h="",c;if(s!==0){const u=await this.connection.getAssetByID(s).do(),b=e.Asset.from_obj_for_encoding(u),S=await this.connection.accountInformation(b.params.creator).do();if(c=e.Account.from_obj_for_encoding(S),c.authAddr===this.tokenBridgeAddress.toString())throw new Error("Cannot re-attest wormhole assets")}const B=d.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,BigInt(s)),w=await d.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,r,this.tokenBridgeAppId,B);h=w.accounts[0],i.push(...w.txs);const m=e.makeApplicationCallTxnFromObject({from:r,appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:e.OnApplicationComplete.NoOpOC,appArgs:[p.noop],suggestedParams:a});i.push({tx:m});const f=await this.coreBridge.getMessageFee();if(f>BigInt(0)){const u=e.makePaymentTxnWithSuggestedParamsFromObject({from:r,suggestedParams:a,to:this.tokenBridgeAddress,amount:f});i.push({tx:u})}let y=[A,h,this.coreAppAddress];c&&y.push(c.address);let l=e.makeApplicationCallTxnFromObject({appArgs:[p.attestToken,e.bignum.toBytes(s,8)],accounts:y,appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),foreignApps:[e.safeBigIntToNumber(this.coreAppId)],foreignAssets:[s],from:r,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:a});f>BigInt(0)?l.fee*=3:l.fee*=2,i.push({tx:l});for(const u of i)yield this.createUnsignedTx(u,"TokenBridge.createAttestation",!0)}async*submitAttestation(o,t,r){if(!t)throw new Error("Sender required to submit attestation");r||(r=await this.connection.getTransactionParams().do());const s=t.toString(),a=d.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,o.payload.token).address(),n=[],A=[],I=await d.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,a);I.length>8&&A.push(new e.AlgorandAddress(I.slice(0,8)).toInt()),n.push({tx:e.makePaymentTxnWithSuggestedParamsFromObject({from:s,to:a,amount:1e5,suggestedParams:r})});let h=new Uint8Array(1);h[0]=1,n.push({tx:e.makeApplicationCallTxnFromObject({appArgs:[p.noop,h],appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),from:s,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:r})}),h=new Uint8Array(1),h[0]=2,n.push({tx:e.makeApplicationCallTxnFromObject({appArgs:[p.noop,h],appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),from:s,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:r})}),n.push({tx:e.makeApplicationCallTxnFromObject({accounts:[],appArgs:[p.receiveAttest,e.serialize(o)],appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),foreignAssets:A,from:s,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:r})}),n[n.length-1].tx.fee=n[n.length-1].tx.fee*2;for(const c of n)yield this.createUnsignedTx(c,"TokenBridge.submitAttestation",!0)}async*transfer(o,t,r,s,i){const a=o.toString(),n=e.isNative(r)?0:new e.AlgorandAddress(r).toInt(),A=s,I=e.toChainId(t.chain),h=t.address.toUniversalAddress().toUint8Array(),c=await this.connection.getTransactionParams().do(),B=BigInt(0),w=d.StorageLogicSig.fromData({appId:this.coreAppId,appAddress:e.decodeAddress(this.coreAppAddress).publicKey,idx:BigInt(0),address:e.decodeAddress(this.tokenBridgeAddress).publicKey}),m=[],{accounts:[f],txs:y}=await d.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,a,this.coreAppId,w,c);m.push(...y);let l="",u,b=!1;if(n!==0){const x=await this.connection.getAssetByID(n).do();l=e.Asset.from_obj_for_encoding(x).params.creator;const C=await this.connection.accountInformation(l).do();u=e.Account.from_obj_for_encoding(C),b=u.authAddr===this.tokenBridgeAddress.toString()}const S=await this.coreBridge.getMessageFee();if(S>0&&m.push({tx:e.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:this.tokenBridgeAddress,amount:S,suggestedParams:c})}),!b){const x=d.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,BigInt(n)),{accounts:[T],txs:C}=await d.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,a,this.tokenBridgeAppId,x,c);l=T,C.push(...C)}if(n!==0&&!await p.isOptedInToAsset(this.connection,l,n)){const x=e.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:l,amount:1e5,suggestedParams:c});let T=e.makeApplicationCallTxnFromObject({from:a,appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:e.OnApplicationComplete.NoOpOC,appArgs:[p.optIn,e.bigIntToBytes(n,8)],foreignAssets:[n],accounts:[l],suggestedParams:c});T.fee*=2,m.unshift({tx:x},{tx:T})}const L=e.makeApplicationCallTxnFromObject({from:a,appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:e.OnApplicationComplete.NoOpOC,appArgs:[p.noop],suggestedParams:c});m.push({tx:L});let N=[];if(n===0){const x=e.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:l,amount:A,suggestedParams:c});m.push({tx:x}),N=[f,l,l]}else{const x=e.makeAssetTransferTxnWithSuggestedParamsFromObject({from:a,to:l,amount:A,assetIndex:n,suggestedParams:c});m.push({tx:x}),N=u!=null&&u.address?[f,l,u.address]:[f,l]}const W=[p.sendTransfer,e.bignum.toBytes(n,8),e.bignum.toBytes(A,8),h,e.bignum.toBytes(I,8),e.bignum.toBytes(B,8)];i&&W.push(i);const F=e.makeApplicationCallTxnFromObject({from:a,appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:e.OnApplicationComplete.NoOpOC,appArgs:W,foreignApps:[e.safeBigIntToNumber(this.coreAppId)],foreignAssets:[n],accounts:N,suggestedParams:c});F.fee*=2,m.push({tx:F});for(const x of m)yield this.createUnsignedTx(x,"TokenBridge.transfer",!0)}async*redeem(o,t,r=!0,s){s||(s=await this.connection.getTransactionParams().do());const i=new e.AlgorandAddress(o).toString(),{accounts:a,txs:n}=await d.AlgorandWormholeCore.submitVAAHeader(this.connection,this.coreAppId,this.tokenBridgeAppId,t,i);let A,I="",h=[],c=0;if(t.payload.token.chain!==this.chain){A=d.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,t.payload.token),I=A.address();const f=await d.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,I);c=new e.AlgorandAddress(f.slice(0,8)).toInt()}else{const f=new e.AlgorandAddress(t.payload.token.address).toBigInt();A=d.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,f),I=A.address(),c=e.safeBigIntToNumber(f)}a.push(I);let B=0,w="";if(t.payloadName==="TransferWithPayload"?(B=new e.AlgorandAddress(t.payload.to.address).toInt(),w=e.getApplicationAddress(B)):w=new e.AlgorandAddress(t.payload.to.address.toUint8Array()).toString(),a.push(w),c!==0&&(h.push(c),!await p.isOptedInToAsset(this.connection,w,c))){if(i!=w)throw new Error("Cannot ASA optin for somebody else (asset "+c.toString()+")");n.unshift({tx:e.makeAssetTransferTxnWithSuggestedParamsFromObject({amount:0,assetIndex:c,from:i,suggestedParams:s,to:i})})}const m={accounts:a,appArgs:[p.completeTransfer,e.serialize(t)],appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),foreignAssets:h,from:i,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:s};n.push({tx:e.makeApplicationCallTxnFromObject(m)}),n[n.length-1].tx.fee=n[n.length-1].tx.fee*(t.payloadName==="Transfer"&&t.payload.fee!==void 0&&t.payload.fee===0n?2:3),t.payloadName==="TransferWithPayload"&&(n[n.length-1].tx.appForeignApps=[B],n.push({tx:e.makeApplicationCallTxnFromObject({appArgs:[j.getSelector(),j.args[0].type.encode(e.serialize(t))],appIndex:B,foreignAssets:h,from:i,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:s})}));for(const f of n)yield this.createUnsignedTx(f,"TokenBridge.redeem",!0)}static async isOptedInToAsset(o,t,r){var s;try{const i=await o.accountAssetInformation(t,r).do();return(((s=e.AccountAssetResponse.from_obj_for_encoding(i).assetHolding)==null?void 0:s.amount)??0)>0}catch{}return!1}createUnsignedTx(o,t,r=!0){return new d.AlgorandUnsignedTransaction(o,this.network,this.chain,t,r)}};g(p,"sendTransfer",e.bytes.encode("sendTransfer")),g(p,"attestToken",e.bytes.encode("attestToken")),g(p,"noop",e.bytes.encode("nop")),g(p,"optIn",e.bytes.encode("optin")),g(p,"completeTransfer",e.bytes.encode("completeTransfer")),g(p,"receiveAttest",e.bytes.encode("receiveAttest"));let O=p;e.registerProtocol(e._platform$4,"TokenBridge",O);exports.AlgorandTokenBridge=O;exports.TransferMethodSelector=j;
|
|
1
|
+
"use strict";var P=Object.defineProperty;var U=(k,o,t)=>o in k?P(k,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):k[o]=t;var g=(k,o,t)=>U(k,typeof o!="symbol"?o+"":o,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./index-Byr7P1JY.js"),e=require("./index-BHGS0dw3.js"),v=require("./algorand-B3jpS4mY.js"),j=e.ABIMethod.fromSignature("portal_transfer(byte[])byte[]"),p=class p{constructor(o,t,r,s){g(this,"network");g(this,"chain");g(this,"connection");g(this,"contracts");g(this,"chainId");g(this,"coreBridge");g(this,"coreAppId");g(this,"coreAppAddress");g(this,"tokenBridgeAppId");g(this,"tokenBridgeAddress");if(this.network=o,this.chain=t,this.connection=r,this.contracts=s,this.chainId=e.toChainId(t),!s.coreBridge)throw new Error(`Core contract address for chain ${t} not found`);const i=BigInt(s.coreBridge);if(this.coreAppId=i,this.coreAppAddress=e.getApplicationAddress(i),this.coreBridge=new d.AlgorandWormholeCore(o,t,r,s),!s.tokenBridge)throw new Error(`TokenBridge contract address for chain ${t} not found`);const a=BigInt(s.tokenBridge);this.tokenBridgeAppId=a,this.tokenBridgeAddress=e.getApplicationAddress(a)}static async fromRpc(o,t){const[r,s]=await v.AlgorandPlatform.chainFromRpc(o),i=t[s];if(i.network!==r)throw new Error(`Network mismatch: ${i.network} != ${r}`);return new p(r,s,o,i.contracts)}async isWrappedAsset(o){const t=new e.AlgorandAddress(o).toInt();if(t===0)return!1;const r=await this.connection.getAssetByID(t).do(),i=e.Asset.from_obj_for_encoding(r).params.creator,a=await this.connection.accountInformation(i).exclude("all").do(),n=e.Account.from_obj_for_encoding(a);return(n==null?void 0:n.authAddr)===this.tokenBridgeAddress}async getOriginalAsset(o){const t=new e.AlgorandAddress(o).toInt(),r=await this.connection.getAssetByID(t).do(),s=e.Asset.from_obj_for_encoding(r),i=await d.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,s.params.creator);if(i.length<94)throw new Error("Invalid local state data");const a=i.slice(92,94),n=e.toChain(e.bignum.decode(a)),A=new e.UniversalAddress(i.slice(60,92));return{chain:n,address:A}}async getTokenUniversalAddress(o){return new e.AlgorandAddress(o).toUniversalAddress()}async getTokenNativeAddress(o,t){return new e.AlgorandAddress(t).toNative()}async getWrappedAsset(o){if(e.isNative(o.address))throw new Error("native asset cannot be a wrapped asset");const t=d.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,o),r=await d.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,t.address());if(r.length<8)throw new Error("Invalid wrapped asset data");return e.toNative(this.chain,e.bignum.decode(r.slice(0,8)).toString())}async hasWrappedAsset(o){try{return await this.getWrappedAsset(o),!0}catch{}return!1}async getWrappedNative(){return e.toNative(this.chain,"0")}async isTransferCompleted(o){const t=d.StorageLogicSig.forMessageId(this.tokenBridgeAppId,{sequence:o.sequence,chain:o.emitterChain,emitter:o.emitterAddress});try{return await d.StorageLogicSig.checkBitsSet(this.connection,this.tokenBridgeAppId,t.address(),o.sequence)}catch{}return!1}async*createAttestation(o,t){if(!t)throw new Error("Payer required to create attestation");const r=new e.AlgorandAddress(t).toString(),s=new e.AlgorandAddress(o).toInt(),i=[],a=await this.connection.getTransactionParams().do(),n=d.StorageLogicSig.forEmitter(this.coreAppId,new e.AlgorandAddress(this.tokenBridgeAddress).toUint8Array()),{accounts:[A],txs:I}=await d.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,r,this.coreAppId,n,a);i.push(...I);let h="",c;if(s!==0){const u=await this.connection.getAssetByID(s).do(),b=e.Asset.from_obj_for_encoding(u),S=await this.connection.accountInformation(b.params.creator).do();if(c=e.Account.from_obj_for_encoding(S),c.authAddr===this.tokenBridgeAddress.toString())throw new Error("Cannot re-attest wormhole assets")}const B=d.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,BigInt(s)),w=await d.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,r,this.tokenBridgeAppId,B);h=w.accounts[0],i.push(...w.txs);const m=e.makeApplicationCallTxnFromObject({from:r,appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:e.OnApplicationComplete.NoOpOC,appArgs:[p.noop],suggestedParams:a});i.push({tx:m});const f=await this.coreBridge.getMessageFee();if(f>BigInt(0)){const u=e.makePaymentTxnWithSuggestedParamsFromObject({from:r,suggestedParams:a,to:this.tokenBridgeAddress,amount:f});i.push({tx:u})}let y=[A,h,this.coreAppAddress];c&&y.push(c.address);let l=e.makeApplicationCallTxnFromObject({appArgs:[p.attestToken,e.bignum.toBytes(s,8)],accounts:y,appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),foreignApps:[e.safeBigIntToNumber(this.coreAppId)],foreignAssets:[s],from:r,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:a});f>BigInt(0)?l.fee*=3:l.fee*=2,i.push({tx:l});for(const u of i)yield this.createUnsignedTx(u,"TokenBridge.createAttestation",!0)}async*submitAttestation(o,t,r){if(!t)throw new Error("Sender required to submit attestation");r||(r=await this.connection.getTransactionParams().do());const s=t.toString(),a=d.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,o.payload.token).address(),n=[],A=[],I=await d.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,a);I.length>8&&A.push(new e.AlgorandAddress(I.slice(0,8)).toInt()),n.push({tx:e.makePaymentTxnWithSuggestedParamsFromObject({from:s,to:a,amount:1e5,suggestedParams:r})});let h=new Uint8Array(1);h[0]=1,n.push({tx:e.makeApplicationCallTxnFromObject({appArgs:[p.noop,h],appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),from:s,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:r})}),h=new Uint8Array(1),h[0]=2,n.push({tx:e.makeApplicationCallTxnFromObject({appArgs:[p.noop,h],appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),from:s,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:r})}),n.push({tx:e.makeApplicationCallTxnFromObject({accounts:[],appArgs:[p.receiveAttest,e.serialize(o)],appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),foreignAssets:A,from:s,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:r})}),n[n.length-1].tx.fee=n[n.length-1].tx.fee*2;for(const c of n)yield this.createUnsignedTx(c,"TokenBridge.submitAttestation",!0)}async*transfer(o,t,r,s,i){const a=o.toString(),n=e.isNative(r)?0:new e.AlgorandAddress(r).toInt(),A=s,I=e.toChainId(t.chain),h=t.address.toUniversalAddress().toUint8Array(),c=await this.connection.getTransactionParams().do(),B=BigInt(0),w=d.StorageLogicSig.fromData({appId:this.coreAppId,appAddress:e.decodeAddress(this.coreAppAddress).publicKey,idx:BigInt(0),address:e.decodeAddress(this.tokenBridgeAddress).publicKey}),m=[],{accounts:[f],txs:y}=await d.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,a,this.coreAppId,w,c);m.push(...y);let l="",u,b=!1;if(n!==0){const x=await this.connection.getAssetByID(n).do();l=e.Asset.from_obj_for_encoding(x).params.creator;const C=await this.connection.accountInformation(l).do();u=e.Account.from_obj_for_encoding(C),b=u.authAddr===this.tokenBridgeAddress.toString()}const S=await this.coreBridge.getMessageFee();if(S>0&&m.push({tx:e.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:this.tokenBridgeAddress,amount:S,suggestedParams:c})}),!b){const x=d.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,BigInt(n)),{accounts:[T],txs:C}=await d.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,a,this.tokenBridgeAppId,x,c);l=T,C.push(...C)}if(n!==0&&!await p.isOptedInToAsset(this.connection,l,n)){const x=e.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:l,amount:1e5,suggestedParams:c});let T=e.makeApplicationCallTxnFromObject({from:a,appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:e.OnApplicationComplete.NoOpOC,appArgs:[p.optIn,e.bigIntToBytes(n,8)],foreignAssets:[n],accounts:[l],suggestedParams:c});T.fee*=2,m.unshift({tx:x},{tx:T})}const L=e.makeApplicationCallTxnFromObject({from:a,appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:e.OnApplicationComplete.NoOpOC,appArgs:[p.noop],suggestedParams:c});m.push({tx:L});let N=[];if(n===0){const x=e.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:l,amount:A,suggestedParams:c});m.push({tx:x}),N=[f,l,l]}else{const x=e.makeAssetTransferTxnWithSuggestedParamsFromObject({from:a,to:l,amount:A,assetIndex:n,suggestedParams:c});m.push({tx:x}),N=u!=null&&u.address?[f,l,u.address]:[f,l]}const W=[p.sendTransfer,e.bignum.toBytes(n,8),e.bignum.toBytes(A,8),h,e.bignum.toBytes(I,8),e.bignum.toBytes(B,8)];i&&W.push(i);const F=e.makeApplicationCallTxnFromObject({from:a,appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:e.OnApplicationComplete.NoOpOC,appArgs:W,foreignApps:[e.safeBigIntToNumber(this.coreAppId)],foreignAssets:[n],accounts:N,suggestedParams:c});F.fee*=2,m.push({tx:F});for(const x of m)yield this.createUnsignedTx(x,"TokenBridge.transfer",!0)}async*redeem(o,t,r=!0,s){s||(s=await this.connection.getTransactionParams().do());const i=new e.AlgorandAddress(o).toString(),{accounts:a,txs:n}=await d.AlgorandWormholeCore.submitVAAHeader(this.connection,this.coreAppId,this.tokenBridgeAppId,t,i);let A,I="",h=[],c=0;if(t.payload.token.chain!==this.chain){A=d.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,t.payload.token),I=A.address();const f=await d.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,I);c=new e.AlgorandAddress(f.slice(0,8)).toInt()}else{const f=new e.AlgorandAddress(t.payload.token.address).toBigInt();A=d.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,f),I=A.address(),c=e.safeBigIntToNumber(f)}a.push(I);let B=0,w="";if(t.payloadName==="TransferWithPayload"?(B=new e.AlgorandAddress(t.payload.to.address).toInt(),w=e.getApplicationAddress(B)):w=new e.AlgorandAddress(t.payload.to.address.toUint8Array()).toString(),a.push(w),c!==0&&(h.push(c),!await p.isOptedInToAsset(this.connection,w,c))){if(i!=w)throw new Error("Cannot ASA optin for somebody else (asset "+c.toString()+")");n.unshift({tx:e.makeAssetTransferTxnWithSuggestedParamsFromObject({amount:0,assetIndex:c,from:i,suggestedParams:s,to:i})})}const m={accounts:a,appArgs:[p.completeTransfer,e.serialize(t)],appIndex:e.safeBigIntToNumber(this.tokenBridgeAppId),foreignAssets:h,from:i,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:s};n.push({tx:e.makeApplicationCallTxnFromObject(m)}),n[n.length-1].tx.fee=n[n.length-1].tx.fee*(t.payloadName==="Transfer"&&t.payload.fee!==void 0&&t.payload.fee===0n?2:3),t.payloadName==="TransferWithPayload"&&(n[n.length-1].tx.appForeignApps=[B],n.push({tx:e.makeApplicationCallTxnFromObject({appArgs:[j.getSelector(),j.args[0].type.encode(e.serialize(t))],appIndex:B,foreignAssets:h,from:i,onComplete:e.OnApplicationComplete.NoOpOC,suggestedParams:s})}));for(const f of n)yield this.createUnsignedTx(f,"TokenBridge.redeem",!0)}static async isOptedInToAsset(o,t,r){var s;try{const i=await o.accountAssetInformation(t,r).do();return(((s=e.AccountAssetResponse.from_obj_for_encoding(i).assetHolding)==null?void 0:s.amount)??0)>0}catch{}return!1}createUnsignedTx(o,t,r=!0){return new d.AlgorandUnsignedTransaction(o,this.network,this.chain,t,r)}};g(p,"sendTransfer",e.bytes.encode("sendTransfer")),g(p,"attestToken",e.bytes.encode("attestToken")),g(p,"noop",e.bytes.encode("nop")),g(p,"optIn",e.bytes.encode("optin")),g(p,"completeTransfer",e.bytes.encode("completeTransfer")),g(p,"receiveAttest",e.bytes.encode("receiveAttest"));let O=p;e.registerProtocol(e._platform$4,"TokenBridge",O);exports.AlgorandTokenBridge=O;exports.TransferMethodSelector=j;
|