@wormhole-foundation/wormhole-connect 0.3.19-beta.1-development → 0.3.19-beta.4-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.
Files changed (119) hide show
  1. package/dist/assets/{ccip-CC5KdnX-.js → ccip-fCzlhBBT.js} +1 -1
  2. package/dist/assets/cosmos-CZk6ggNU.js +37 -0
  3. package/dist/assets/{cosmwasm-D6dc3HhR.js → cosmwasm-BRgXJAEm.js} +3 -3
  4. package/dist/assets/{ens-validation.es6-JeiZhPFM.js → ens-validation.es6-CEldkK56.js} +1 -1
  5. package/dist/assets/{evm-scnxy1Tm.js → evm-zyz5dAmi.js} +4 -4
  6. package/dist/assets/{index-CfFB0O_w.js → index-2haya2pd.js} +1 -1
  7. package/dist/assets/{index-DdlsdoUO.js → index-BSZP2fsz.js} +1 -1
  8. package/dist/assets/{index-CYsDCGyL.js → index-BUfxN-fw.js} +1 -1
  9. package/dist/assets/{index-CZGBtcJ2.js → index-Cjisu-Ym.js} +1 -1
  10. package/dist/assets/index-CoAwWRVw.js +3 -0
  11. package/dist/assets/{index-DcrZhJuV.js → index-DYCDjsFo.js} +2 -2
  12. package/dist/assets/{index.es-CkKy_bC0.js → index.es-LrzWWyFt.js} +2 -2
  13. package/dist/assets/{solana-DJERwdo1.js → solana-ClUmAbQX.js} +2 -2
  14. package/dist/assets/{solanaEmbed.esm-CYzxDEiX.js → solanaEmbed.esm-BpCHncZo.js} +1 -1
  15. package/dist/assets/{unsignedTransaction-Bbs3hbtB.js → unsignedTransaction-C5QlrOSq.js} +1 -1
  16. package/dist/main.js +11 -11
  17. package/dist/src/components/ManualAddressInput.d.ts.map +1 -1
  18. package/dist/src/components/TokensModal.d.ts.map +1 -1
  19. package/dist/src/telemetry/types.d.ts +1 -0
  20. package/dist/src/telemetry/types.d.ts.map +1 -1
  21. package/dist/src/views/Bridge/Send.d.ts.map +1 -1
  22. package/lib/{algorand-Cn2ASQM8.mjs → algorand-BNtk5Zlz.mjs} +4 -4
  23. package/lib/{algorand-BEj3eMlU.js → algorand-BOA88Yi9.js} +1 -1
  24. package/lib/{aptos-C5usxwjg.js → aptos-09IlHhtG.js} +1 -1
  25. package/lib/{aptos-CgcrUUs6.js → aptos-2Xg1Y_0j.js} +2 -2
  26. package/lib/{aptos-r2dqWkwd.mjs → aptos-DsuCT57P.mjs} +4 -4
  27. package/lib/{aptos-B4K8HU4y.mjs → aptos-ofb4q2o1.mjs} +1 -1
  28. package/lib/{browser-CqNEk73A.mjs → browser-5rNYk7ew.mjs} +2 -2
  29. package/lib/{browser-9qSlzcs1.js → browser-CMlhlM7_.js} +1 -1
  30. package/lib/{ccip-DiTkor0v.js → ccip-BnSw75yc.js} +1 -1
  31. package/lib/{ccip-Cg8GiGjJ.mjs → ccip-rZCaMFot.mjs} +1 -1
  32. package/lib/{chain-CNimQoal.mjs → chain-BZjg2BoT.mjs} +1 -1
  33. package/lib/{chain-BS9tnRQF.js → chain-NLYiTi92.js} +1 -1
  34. package/lib/{cosmos-DAYdruCU.js → cosmos-DeEa4QWd.js} +1 -1
  35. package/lib/{cosmos-kdBLlX5J.mjs → cosmos-IWVkyjMV.mjs} +3 -3
  36. package/lib/{cosmwasm-t4y0gzD9.js → cosmwasm-BFtZD1Ru.js} +2 -2
  37. package/lib/{cosmwasm-BdmGrQe2.mjs → cosmwasm-CGR89px_.mjs} +6 -6
  38. package/lib/{create-BC4-6NQa.js → create-Bpjnlpg_.js} +1 -1
  39. package/lib/{create-Bh45gqri.mjs → create-PB82rGuQ.mjs} +1 -1
  40. package/lib/{ens-validation.es6-B5lcZ1z0.js → ens-validation.es6-BY6Eu6az.js} +1 -1
  41. package/lib/{ens-validation.es6-BBk1nSK3.mjs → ens-validation.es6-D6AE2QT0.mjs} +2 -2
  42. package/lib/{evm-BdLUkbt8.mjs → evm-DB1-WEEt.mjs} +6 -6
  43. package/lib/{evm-ByfaloPB.js → evm-DY9ovr2c.js} +2 -2
  44. package/lib/{evm-CI9jvgpD.mjs → evm-FMLhTUS9.mjs} +6 -6
  45. package/lib/{evm-Cplwt-Uu.js → evm-aLUoXBeT.js} +4 -4
  46. package/lib/{index-CeYAnGJU.js → index-6GqC5Hzz.js} +1 -1
  47. package/lib/{index-ClpF6w41.mjs → index-95lzn8zO.mjs} +5 -5
  48. package/lib/{index-DkHNYEwj.js → index-9SUIf5nS.js} +1 -1
  49. package/lib/{index-RHlQCTsY.js → index-B2IuVewp.js} +1 -1
  50. package/lib/{index-DonnLcua.mjs → index-B2JrUboW.mjs} +6 -6
  51. package/lib/{index-D10P63La.mjs → index-BAMSsTuN.mjs} +4 -4
  52. package/lib/{index-_ey36AjY.mjs → index-BEQsB526.mjs} +2 -2
  53. package/lib/{index-BTJEpkGu.mjs → index-BEjdY6hm.mjs} +5 -5
  54. package/lib/{index-CiNv_vqX.js → index-BG24T1GX.js} +1 -1
  55. package/lib/{index-CLqwNevH.mjs → index-BI-a425p.mjs} +1 -1
  56. package/lib/{index-CZM1nqSC.js → index-BQqBYm1C.js} +1 -1
  57. package/lib/{index-L-oyxcKw.mjs → index-BSpDXKq1.mjs} +4 -4
  58. package/lib/{index-BAfpfiMg.mjs → index-BULQb7l7.mjs} +4 -4
  59. package/lib/{index-DKqdtMJw.mjs → index-Bdzevkwx.mjs} +3 -3
  60. package/lib/{index-DVzNMQU2.mjs → index-BqGrE5rX.mjs} +4 -4
  61. package/lib/{index-BskUJ6-F.js → index-BwTYRqte.js} +1 -1
  62. package/lib/{index-DjJSdBO_.mjs → index-C1JlVOwd.mjs} +77 -63
  63. package/lib/{index-tFdU3m1V.js → index-C7pm5tV-.js} +1 -1
  64. package/lib/{index-DJoVr9ew.mjs → index-CFc6ua8j.mjs} +4 -4
  65. package/lib/{index-D05MUiKM.js → index-COcHH6cV.js} +1 -1
  66. package/lib/{index-dgxqH4Al.mjs → index-CPg2DDGG.mjs} +4 -4
  67. package/lib/{index-v5JYqN5T.js → index-CaF25_vp.js} +1 -1
  68. package/lib/{index-Vqfiz4gq.js → index-CefRPGIJ.js} +1 -1
  69. package/lib/{index-Cms5l5e9.mjs → index-CfOBXKOA.mjs} +2 -2
  70. package/lib/{index-D2283Eib.js → index-Clclaa8l.js} +1 -1
  71. package/lib/{index-6SYLbVVC.mjs → index-Cn3ZByEn.mjs} +5 -5
  72. package/lib/{index-DHNJ7dTI.mjs → index-CswKQSoP.mjs} +3 -3
  73. package/lib/{index-DULgLsXD.mjs → index-Cu-QZ2Yi.mjs} +4 -4
  74. package/lib/{index-DuPl6mJy.mjs → index-CxU-Gb5y.mjs} +4 -4
  75. package/lib/{index-D4polzlG.mjs → index-D0taDsGK.mjs} +4 -4
  76. package/lib/{index-DTYdWw1E.js → index-D1vD1x9T.js} +1 -1
  77. package/lib/{index-B11tXNbe.mjs → index-DHsWcdrI.mjs} +1 -1
  78. package/lib/{index-W5vGD3Jp.js → index-DIhwpM7p.js} +1 -1
  79. package/lib/{index-CyoAaX76.js → index-DRhnM5uA.js} +1 -1
  80. package/lib/{index-CitMOybO.js → index-D_ETBz6p.js} +1 -1
  81. package/lib/{index-Bjg2w3Jp.mjs → index-Df-PgrLd.mjs} +2 -2
  82. package/lib/{index-Cpfo_13K.js → index-DfYc88fY.js} +5 -5
  83. package/lib/{index-DWqHObYQ.js → index-Dph4RybI.js} +1 -1
  84. package/lib/{index-JCeZURsa.mjs → index-Dvg604_r.mjs} +3 -3
  85. package/lib/{index-LbkpxbxU.js → index-DzVxkotY.js} +1 -1
  86. package/lib/{index-DO9Aqf4O.js → index-LMP2SXjR.js} +1 -1
  87. package/lib/{index-D3leTI6y.js → index-M0F8WpQR.js} +1 -1
  88. package/lib/{index-BdZfdhLf.js → index-Na_--gcE.js} +1 -1
  89. package/lib/{index-DC95G-Xg.js → index-aCI_DUM-.js} +1 -1
  90. package/lib/{index-Cc-SRhQH.mjs → index-afsYF03s.mjs} +4 -4
  91. package/lib/{index--XOWHvs8.js → index-tMk2zWGF.js} +1 -1
  92. package/lib/{index.es-CE_sbvG3.mjs → index.es-DqS4HLZw.mjs} +4 -4
  93. package/lib/{index.es-D641bRIm.js → index.es-uerP6wyE.js} +2 -2
  94. package/lib/index.js +1 -1
  95. package/lib/index.mjs +1 -1
  96. package/lib/{libsodium-wrappers-DLsfT6wH.mjs → libsodium-wrappers-B78L643V.mjs} +1 -1
  97. package/lib/{libsodium-wrappers-Dv4avoYQ.js → libsodium-wrappers-DP3-RcK9.js} +1 -1
  98. package/lib/{sei-DSmG2Vzd.mjs → sei-CvQ5fq9U.mjs} +2 -2
  99. package/lib/{sei-BgefK64I.js → sei-D8YL8hcu.js} +1 -1
  100. package/lib/{solana--NAZIp_H.mjs → solana-DIKpxJ66.mjs} +3 -3
  101. package/lib/{solana-D-xykBVb.js → solana-PbyA60e9.js} +1 -1
  102. package/lib/{solana-cDD0Ny2l.js → solana-Q02Qu6Us.js} +2 -2
  103. package/lib/{solana-DGHdzU4Y.mjs → solana-eqcW3EUS.mjs} +6 -6
  104. package/lib/{solanaEmbed.esm-CvJOxxKf.mjs → solanaEmbed.esm-B35xqpi9.mjs} +2 -2
  105. package/lib/{solanaEmbed.esm-SQGeqX2v.js → solanaEmbed.esm-DAJICEjv.js} +1 -1
  106. package/lib/src/components/ManualAddressInput.d.ts.map +1 -1
  107. package/lib/src/components/TokensModal.d.ts.map +1 -1
  108. package/lib/src/telemetry/types.d.ts +1 -0
  109. package/lib/src/telemetry/types.d.ts.map +1 -1
  110. package/lib/src/views/Bridge/Send.d.ts.map +1 -1
  111. package/lib/{sui-CabK_MAW.mjs → sui-CmBrrkS9.mjs} +1 -1
  112. package/lib/{sui-CitobCk-.js → sui-Cz7TcwK6.js} +1 -1
  113. package/lib/{sui-CnL17qoE.mjs → sui-DWSLoSDK.mjs} +4 -4
  114. package/lib/{sui-Bn1nWU88.js → sui-YcpSM6BX.js} +2 -2
  115. package/lib/{unsignedTransaction-wkSutsdc.js → unsignedTransaction-CuG8xbiM.js} +1 -1
  116. package/lib/{unsignedTransaction-Bl6mVw94.mjs → unsignedTransaction-Dgrq3Lq3.mjs} +2 -2
  117. package/package.json +1 -1
  118. package/dist/assets/cosmos-CKUC0334.js +0 -37
  119. package/dist/assets/index-DTubKMVE.js +0 -3
@@ -1,4 +1,4 @@
1
- import { bS as Tt, w as Mt, ab as xt } from "./index-DjJSdBO_.mjs";
1
+ import { bS as Tt, w as Mt, ab as xt } from "./index-C1JlVOwd.mjs";
2
2
  var Lt = {}, Me = {}, B = {}, _t = {};
3
3
  (function(e) {
4
4
  Object.defineProperty(e, "__esModule", { value: !0 });
@@ -1 +1 @@
1
- "use strict";var U=Object.defineProperty;var R=(T,n,e)=>n in T?U(T,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):T[n]=e;var A=(T,n,e)=>(R(T,typeof n!="symbol"?n+"":n,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./index-tFdU3m1V.js"),t=require("./index-Cpfo_13K.js"),c=require("./algorand-BEj3eMlU.js"),q=require("./chain-BS9tnRQF.js"),W=t.ABIMethod.fromSignature("portal_transfer(byte[])byte[]"),g=class g{constructor(n,e,r,s){A(this,"network");A(this,"chain");A(this,"connection");A(this,"contracts");A(this,"chainId");A(this,"coreBridge");A(this,"coreAppId");A(this,"coreAppAddress");A(this,"tokenBridgeAppId");A(this,"tokenBridgeAddress");if(this.network=n,this.chain=e,this.connection=r,this.contracts=s,this.chainId=t.toChainId(e),!s.coreBridge)throw new Error(`Core contract address for chain ${e} not found`);const i=BigInt(s.coreBridge);if(this.coreAppId=i,this.coreAppAddress=t.getApplicationAddress(i),this.coreBridge=new p.AlgorandWormholeCore(n,e,r,s),!s.tokenBridge)throw new Error(`TokenBridge contract address for chain ${e} not found`);const a=BigInt(s.tokenBridge);this.tokenBridgeAppId=a,this.tokenBridgeAddress=t.getApplicationAddress(a)}static async fromRpc(n,e){const[r,s]=await c.AlgorandPlatform.chainFromRpc(n),i=e[s];if(i.network!==r)throw new Error(`Network mismatch: ${i.network} != ${r}`);return new g(r,s,n,i.contracts)}async isWrappedAsset(n){const e=new c.AlgorandAddress(n).toInt();if(e===0)return!1;const r=await this.connection.getAssetByID(e).do(),i=t.Asset.from_obj_for_encoding(r).params.creator,a=await this.connection.accountInformation(i).exclude("all").do(),o=t.Account.from_obj_for_encoding(a);return(o==null?void 0:o.authAddr)===this.tokenBridgeAddress}async getOriginalAsset(n){const e=new c.AlgorandAddress(n).toInt(),r=await this.connection.getAssetByID(e).do(),s=t.Asset.from_obj_for_encoding(r),i=await p.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),o=t.toChain(t.bignum.decode(a)),l=new t.UniversalAddress(i.slice(60,92));return{chain:o,address:l}}async getWrappedAsset(n){const e=p.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,n),r=await p.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,e.address());if(r.length<8)throw new Error("Invalid wrapped asset data");return t.toNative(this.chain,t.bignum.decode(r.slice(0,8)).toString())}async hasWrappedAsset(n){try{return await this.getWrappedAsset(n),!0}catch{}return!1}async getWrappedNative(){return t.toNative(this.chain,"0")}async isTransferCompleted(n){const e=p.StorageLogicSig.forMessageId(this.tokenBridgeAppId,{sequence:n.sequence,chain:n.emitterChain,emitter:n.emitterAddress});try{return await p.StorageLogicSig.checkBitsSet(this.connection,this.tokenBridgeAppId,e.address(),n.sequence)}catch{}return!1}async*createAttestation(n,e){if(!e)throw new Error("Payer required to create attestation");const r=new c.AlgorandAddress(e).toString(),s=new c.AlgorandAddress(n).toInt(),i=[],a=await this.connection.getTransactionParams().do(),o=p.StorageLogicSig.forEmitter(this.coreAppId,new c.AlgorandAddress(this.tokenBridgeAddress).toUint8Array()),{accounts:[l],txs:x}=await p.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,r,this.coreAppId,o,a);i.push(...x);let f="",d;if(s!==0){const I=await this.connection.getAssetByID(s).do(),S=t.Asset.from_obj_for_encoding(I),C=await this.connection.accountInformation(S.params.creator).do();if(d=t.Account.from_obj_for_encoding(C),d.authAddr===this.tokenBridgeAddress.toString())throw new Error("Cannot re-attest wormhole assets")}const w=p.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,BigInt(s)),k=await p.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,r,this.tokenBridgeAppId,w);f=k.accounts[0],i.push(...k.txs);const u=t.makeApplicationCallTxnFromObject({from:r,appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:t.OnApplicationComplete.NoOpOC,appArgs:[g.noop],suggestedParams:a});i.push({tx:u});const m=await this.coreBridge.getMessageFee();if(m>BigInt(0)){const I=t.makePaymentTxnWithSuggestedParamsFromObject({from:r,suggestedParams:a,to:this.tokenBridgeAddress,amount:m});i.push({tx:I})}let b=[l,f,this.coreAppAddress];d&&b.push(d.address);let h=t.makeApplicationCallTxnFromObject({appArgs:[g.attestToken,t.bignum.toBytes(s,8)],accounts:b,appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),foreignApps:[c.safeBigIntToNumber(this.coreAppId)],foreignAssets:[s],from:r,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:a});m>BigInt(0)?h.fee*=3:h.fee*=2,i.push({tx:h});for(const I of i)yield this.createUnsignedTx(I,"TokenBridge.createAttestation",!0)}async*submitAttestation(n,e,r){if(!e)throw new Error("Sender required to submit attestation");r||(r=await this.connection.getTransactionParams().do());const s=e.toString(),a=p.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,n.payload.token).address(),o=[],l=[],x=await p.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,a);x.length>8&&l.push(new c.AlgorandAddress(x.slice(0,8)).toInt()),o.push({tx:t.makePaymentTxnWithSuggestedParamsFromObject({from:s,to:a,amount:1e5,suggestedParams:r})});let f=new Uint8Array(1);f[0]=1,o.push({tx:t.makeApplicationCallTxnFromObject({appArgs:[g.noop,f],appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),from:s,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:r})}),f=new Uint8Array(1),f[0]=2,o.push({tx:t.makeApplicationCallTxnFromObject({appArgs:[g.noop,f],appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),from:s,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:r})}),o.push({tx:t.makeApplicationCallTxnFromObject({accounts:[],appArgs:[g.receiveAttest,t.serialize(n)],appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),foreignAssets:l,from:s,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:r})}),o[o.length-1].tx.fee=o[o.length-1].tx.fee*2;for(const d of o)yield this.createUnsignedTx(d,"TokenBridge.submitAttestation",!0)}async*transfer(n,e,r,s,i){const a=n.toString(),o=t.isNative(r)?0:new c.AlgorandAddress(r).toInt(),l=s,x=t.toChainId(e.chain),f=e.address.toUniversalAddress().toUint8Array(),d=await this.connection.getTransactionParams().do(),w=BigInt(0),k=p.StorageLogicSig.fromData({appId:this.coreAppId,appAddress:t.decodeAddress(this.coreAppAddress).publicKey,idx:BigInt(0),address:t.decodeAddress(this.tokenBridgeAddress).publicKey}),u=[],{accounts:[m],txs:b}=await p.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,a,this.coreAppId,k,d);u.push(...b);let h="",I,S=!1;if(o!==0){const B=await this.connection.getAssetByID(o).do();h=t.Asset.from_obj_for_encoding(B).params.creator;const O=await this.connection.accountInformation(h).do();I=t.Account.from_obj_for_encoding(O),S=I.authAddr===this.tokenBridgeAddress.toString()}const C=await this.coreBridge.getMessageFee();if(C>0&&u.push({tx:t.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:this.tokenBridgeAddress,amount:C,suggestedParams:d})}),!S){const B=p.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,BigInt(o)),{accounts:[y],txs:O}=await p.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,a,this.tokenBridgeAppId,B,d);h=y,O.push(...O)}if(o!==0&&!await g.isOptedInToAsset(this.connection,h,o)){const B=t.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:h,amount:1e5,suggestedParams:d});let y=t.makeApplicationCallTxnFromObject({from:a,appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:t.OnApplicationComplete.NoOpOC,appArgs:[g.optIn,t.bigIntToBytes(o,8)],foreignAssets:[o],accounts:[h],suggestedParams:d});y.fee*=2,u.unshift({tx:B},{tx:y})}const P=t.makeApplicationCallTxnFromObject({from:a,appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:t.OnApplicationComplete.NoOpOC,appArgs:[g.noop],suggestedParams:d});u.push({tx:P});let j=[];if(o===0){const B=t.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:h,amount:l,suggestedParams:d});u.push({tx:B}),j=[m,h,h]}else{const B=t.makeAssetTransferTxnWithSuggestedParamsFromObject({from:a,to:h,amount:l,assetIndex:o,suggestedParams:d});u.push({tx:B}),j=I!=null&&I.address?[m,h,I.address]:[m,h]}const F=[g.sendTransfer,t.bignum.toBytes(o,8),t.bignum.toBytes(l,8),f,t.bignum.toBytes(x,8),t.bignum.toBytes(w,8)];i&&F.push(i);const L=t.makeApplicationCallTxnFromObject({from:a,appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:t.OnApplicationComplete.NoOpOC,appArgs:F,foreignApps:[c.safeBigIntToNumber(this.coreAppId)],foreignAssets:[o],accounts:j,suggestedParams:d});L.fee*=2,u.push({tx:L});for(const B of u)yield this.createUnsignedTx(B,"TokenBridge.transfer",!0)}async*redeem(n,e,r=!0,s){s||(s=await this.connection.getTransactionParams().do());const i=new c.AlgorandAddress(n).toString(),{accounts:a,txs:o}=await p.AlgorandWormholeCore.submitVAAHeader(this.connection,this.coreAppId,this.tokenBridgeAppId,e,i);let l,x="",f=[],d=0;if(e.payload.token.chain!==this.chain){l=p.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,e.payload.token),x=l.address();const m=await p.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,x);d=new c.AlgorandAddress(m.slice(0,8)).toInt()}else{const m=new c.AlgorandAddress(e.payload.token.address).toBigInt();l=p.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,m),x=l.address(),d=c.safeBigIntToNumber(m)}a.push(x);let w=0,k="";if(e.payloadName==="TransferWithPayload"?(w=new c.AlgorandAddress(e.payload.to.address).toInt(),k=t.getApplicationAddress(w)):k=new c.AlgorandAddress(e.payload.to.address.toUint8Array()).toString(),a.push(k),d!==0&&(f.push(d),!await g.isOptedInToAsset(this.connection,k,d))){if(i!=k)throw new Error("Cannot ASA optin for somebody else (asset "+d.toString()+")");o.unshift({tx:t.makeAssetTransferTxnWithSuggestedParamsFromObject({amount:0,assetIndex:d,from:i,suggestedParams:s,to:i})})}const u={accounts:a,appArgs:[g.completeTransfer,t.serialize(e)],appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),foreignAssets:f,from:i,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:s};o.push({tx:t.makeApplicationCallTxnFromObject(u)}),o[o.length-1].tx.fee=o[o.length-1].tx.fee*(e.payloadName==="Transfer"&&e.payload.fee!==void 0&&e.payload.fee===0n?2:3),e.payloadName==="TransferWithPayload"&&(o[o.length-1].tx.appForeignApps=[w],o.push({tx:t.makeApplicationCallTxnFromObject({appArgs:[W.getSelector(),W.args[0].type.encode(t.serialize(e))],appIndex:w,foreignAssets:f,from:i,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:s})}));for(const m of o)yield this.createUnsignedTx(m,"TokenBridge.redeem",!0)}static async isOptedInToAsset(n,e,r){var s;try{const i=await n.accountAssetInformation(e,r).do();return(((s=t.AccountAssetResponse.from_obj_for_encoding(i).assetHolding)==null?void 0:s.amount)??0)>0}catch{}return!1}createUnsignedTx(n,e,r=!0){return new p.AlgorandUnsignedTransaction(n,this.network,this.chain,e,r)}};A(g,"sendTransfer",t.bytes.encode("sendTransfer")),A(g,"attestToken",t.bytes.encode("attestToken")),A(g,"noop",t.bytes.encode("nop")),A(g,"optIn",t.bytes.encode("optin")),A(g,"completeTransfer",t.bytes.encode("completeTransfer")),A(g,"receiveAttest",t.bytes.encode("receiveAttest"));let N=g;q.registerProtocol(c._platform,"TokenBridge",N);exports.AlgorandTokenBridge=N;exports.TransferMethodSelector=W;
1
+ "use strict";var U=Object.defineProperty;var R=(T,n,e)=>n in T?U(T,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):T[n]=e;var A=(T,n,e)=>(R(T,typeof n!="symbol"?n+"":n,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./index-C7pm5tV-.js"),t=require("./index-DfYc88fY.js"),c=require("./algorand-BOA88Yi9.js"),q=require("./chain-NLYiTi92.js"),W=t.ABIMethod.fromSignature("portal_transfer(byte[])byte[]"),g=class g{constructor(n,e,r,s){A(this,"network");A(this,"chain");A(this,"connection");A(this,"contracts");A(this,"chainId");A(this,"coreBridge");A(this,"coreAppId");A(this,"coreAppAddress");A(this,"tokenBridgeAppId");A(this,"tokenBridgeAddress");if(this.network=n,this.chain=e,this.connection=r,this.contracts=s,this.chainId=t.toChainId(e),!s.coreBridge)throw new Error(`Core contract address for chain ${e} not found`);const i=BigInt(s.coreBridge);if(this.coreAppId=i,this.coreAppAddress=t.getApplicationAddress(i),this.coreBridge=new p.AlgorandWormholeCore(n,e,r,s),!s.tokenBridge)throw new Error(`TokenBridge contract address for chain ${e} not found`);const a=BigInt(s.tokenBridge);this.tokenBridgeAppId=a,this.tokenBridgeAddress=t.getApplicationAddress(a)}static async fromRpc(n,e){const[r,s]=await c.AlgorandPlatform.chainFromRpc(n),i=e[s];if(i.network!==r)throw new Error(`Network mismatch: ${i.network} != ${r}`);return new g(r,s,n,i.contracts)}async isWrappedAsset(n){const e=new c.AlgorandAddress(n).toInt();if(e===0)return!1;const r=await this.connection.getAssetByID(e).do(),i=t.Asset.from_obj_for_encoding(r).params.creator,a=await this.connection.accountInformation(i).exclude("all").do(),o=t.Account.from_obj_for_encoding(a);return(o==null?void 0:o.authAddr)===this.tokenBridgeAddress}async getOriginalAsset(n){const e=new c.AlgorandAddress(n).toInt(),r=await this.connection.getAssetByID(e).do(),s=t.Asset.from_obj_for_encoding(r),i=await p.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),o=t.toChain(t.bignum.decode(a)),l=new t.UniversalAddress(i.slice(60,92));return{chain:o,address:l}}async getWrappedAsset(n){const e=p.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,n),r=await p.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,e.address());if(r.length<8)throw new Error("Invalid wrapped asset data");return t.toNative(this.chain,t.bignum.decode(r.slice(0,8)).toString())}async hasWrappedAsset(n){try{return await this.getWrappedAsset(n),!0}catch{}return!1}async getWrappedNative(){return t.toNative(this.chain,"0")}async isTransferCompleted(n){const e=p.StorageLogicSig.forMessageId(this.tokenBridgeAppId,{sequence:n.sequence,chain:n.emitterChain,emitter:n.emitterAddress});try{return await p.StorageLogicSig.checkBitsSet(this.connection,this.tokenBridgeAppId,e.address(),n.sequence)}catch{}return!1}async*createAttestation(n,e){if(!e)throw new Error("Payer required to create attestation");const r=new c.AlgorandAddress(e).toString(),s=new c.AlgorandAddress(n).toInt(),i=[],a=await this.connection.getTransactionParams().do(),o=p.StorageLogicSig.forEmitter(this.coreAppId,new c.AlgorandAddress(this.tokenBridgeAddress).toUint8Array()),{accounts:[l],txs:x}=await p.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,r,this.coreAppId,o,a);i.push(...x);let f="",d;if(s!==0){const I=await this.connection.getAssetByID(s).do(),S=t.Asset.from_obj_for_encoding(I),C=await this.connection.accountInformation(S.params.creator).do();if(d=t.Account.from_obj_for_encoding(C),d.authAddr===this.tokenBridgeAddress.toString())throw new Error("Cannot re-attest wormhole assets")}const w=p.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,BigInt(s)),k=await p.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,r,this.tokenBridgeAppId,w);f=k.accounts[0],i.push(...k.txs);const u=t.makeApplicationCallTxnFromObject({from:r,appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:t.OnApplicationComplete.NoOpOC,appArgs:[g.noop],suggestedParams:a});i.push({tx:u});const m=await this.coreBridge.getMessageFee();if(m>BigInt(0)){const I=t.makePaymentTxnWithSuggestedParamsFromObject({from:r,suggestedParams:a,to:this.tokenBridgeAddress,amount:m});i.push({tx:I})}let b=[l,f,this.coreAppAddress];d&&b.push(d.address);let h=t.makeApplicationCallTxnFromObject({appArgs:[g.attestToken,t.bignum.toBytes(s,8)],accounts:b,appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),foreignApps:[c.safeBigIntToNumber(this.coreAppId)],foreignAssets:[s],from:r,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:a});m>BigInt(0)?h.fee*=3:h.fee*=2,i.push({tx:h});for(const I of i)yield this.createUnsignedTx(I,"TokenBridge.createAttestation",!0)}async*submitAttestation(n,e,r){if(!e)throw new Error("Sender required to submit attestation");r||(r=await this.connection.getTransactionParams().do());const s=e.toString(),a=p.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,n.payload.token).address(),o=[],l=[],x=await p.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,a);x.length>8&&l.push(new c.AlgorandAddress(x.slice(0,8)).toInt()),o.push({tx:t.makePaymentTxnWithSuggestedParamsFromObject({from:s,to:a,amount:1e5,suggestedParams:r})});let f=new Uint8Array(1);f[0]=1,o.push({tx:t.makeApplicationCallTxnFromObject({appArgs:[g.noop,f],appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),from:s,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:r})}),f=new Uint8Array(1),f[0]=2,o.push({tx:t.makeApplicationCallTxnFromObject({appArgs:[g.noop,f],appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),from:s,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:r})}),o.push({tx:t.makeApplicationCallTxnFromObject({accounts:[],appArgs:[g.receiveAttest,t.serialize(n)],appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),foreignAssets:l,from:s,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:r})}),o[o.length-1].tx.fee=o[o.length-1].tx.fee*2;for(const d of o)yield this.createUnsignedTx(d,"TokenBridge.submitAttestation",!0)}async*transfer(n,e,r,s,i){const a=n.toString(),o=t.isNative(r)?0:new c.AlgorandAddress(r).toInt(),l=s,x=t.toChainId(e.chain),f=e.address.toUniversalAddress().toUint8Array(),d=await this.connection.getTransactionParams().do(),w=BigInt(0),k=p.StorageLogicSig.fromData({appId:this.coreAppId,appAddress:t.decodeAddress(this.coreAppAddress).publicKey,idx:BigInt(0),address:t.decodeAddress(this.tokenBridgeAddress).publicKey}),u=[],{accounts:[m],txs:b}=await p.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,a,this.coreAppId,k,d);u.push(...b);let h="",I,S=!1;if(o!==0){const B=await this.connection.getAssetByID(o).do();h=t.Asset.from_obj_for_encoding(B).params.creator;const O=await this.connection.accountInformation(h).do();I=t.Account.from_obj_for_encoding(O),S=I.authAddr===this.tokenBridgeAddress.toString()}const C=await this.coreBridge.getMessageFee();if(C>0&&u.push({tx:t.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:this.tokenBridgeAddress,amount:C,suggestedParams:d})}),!S){const B=p.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,BigInt(o)),{accounts:[y],txs:O}=await p.AlgorandWormholeCore.maybeCreateStorageTx(this.connection,a,this.tokenBridgeAppId,B,d);h=y,O.push(...O)}if(o!==0&&!await g.isOptedInToAsset(this.connection,h,o)){const B=t.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:h,amount:1e5,suggestedParams:d});let y=t.makeApplicationCallTxnFromObject({from:a,appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:t.OnApplicationComplete.NoOpOC,appArgs:[g.optIn,t.bigIntToBytes(o,8)],foreignAssets:[o],accounts:[h],suggestedParams:d});y.fee*=2,u.unshift({tx:B},{tx:y})}const P=t.makeApplicationCallTxnFromObject({from:a,appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:t.OnApplicationComplete.NoOpOC,appArgs:[g.noop],suggestedParams:d});u.push({tx:P});let j=[];if(o===0){const B=t.makePaymentTxnWithSuggestedParamsFromObject({from:a,to:h,amount:l,suggestedParams:d});u.push({tx:B}),j=[m,h,h]}else{const B=t.makeAssetTransferTxnWithSuggestedParamsFromObject({from:a,to:h,amount:l,assetIndex:o,suggestedParams:d});u.push({tx:B}),j=I!=null&&I.address?[m,h,I.address]:[m,h]}const F=[g.sendTransfer,t.bignum.toBytes(o,8),t.bignum.toBytes(l,8),f,t.bignum.toBytes(x,8),t.bignum.toBytes(w,8)];i&&F.push(i);const L=t.makeApplicationCallTxnFromObject({from:a,appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),onComplete:t.OnApplicationComplete.NoOpOC,appArgs:F,foreignApps:[c.safeBigIntToNumber(this.coreAppId)],foreignAssets:[o],accounts:j,suggestedParams:d});L.fee*=2,u.push({tx:L});for(const B of u)yield this.createUnsignedTx(B,"TokenBridge.transfer",!0)}async*redeem(n,e,r=!0,s){s||(s=await this.connection.getTransactionParams().do());const i=new c.AlgorandAddress(n).toString(),{accounts:a,txs:o}=await p.AlgorandWormholeCore.submitVAAHeader(this.connection,this.coreAppId,this.tokenBridgeAppId,e,i);let l,x="",f=[],d=0;if(e.payload.token.chain!==this.chain){l=p.StorageLogicSig.forWrappedAsset(this.tokenBridgeAppId,e.payload.token),x=l.address();const m=await p.StorageLogicSig.decodeLocalState(this.connection,this.tokenBridgeAppId,x);d=new c.AlgorandAddress(m.slice(0,8)).toInt()}else{const m=new c.AlgorandAddress(e.payload.token.address).toBigInt();l=p.StorageLogicSig.forNativeAsset(this.tokenBridgeAppId,m),x=l.address(),d=c.safeBigIntToNumber(m)}a.push(x);let w=0,k="";if(e.payloadName==="TransferWithPayload"?(w=new c.AlgorandAddress(e.payload.to.address).toInt(),k=t.getApplicationAddress(w)):k=new c.AlgorandAddress(e.payload.to.address.toUint8Array()).toString(),a.push(k),d!==0&&(f.push(d),!await g.isOptedInToAsset(this.connection,k,d))){if(i!=k)throw new Error("Cannot ASA optin for somebody else (asset "+d.toString()+")");o.unshift({tx:t.makeAssetTransferTxnWithSuggestedParamsFromObject({amount:0,assetIndex:d,from:i,suggestedParams:s,to:i})})}const u={accounts:a,appArgs:[g.completeTransfer,t.serialize(e)],appIndex:c.safeBigIntToNumber(this.tokenBridgeAppId),foreignAssets:f,from:i,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:s};o.push({tx:t.makeApplicationCallTxnFromObject(u)}),o[o.length-1].tx.fee=o[o.length-1].tx.fee*(e.payloadName==="Transfer"&&e.payload.fee!==void 0&&e.payload.fee===0n?2:3),e.payloadName==="TransferWithPayload"&&(o[o.length-1].tx.appForeignApps=[w],o.push({tx:t.makeApplicationCallTxnFromObject({appArgs:[W.getSelector(),W.args[0].type.encode(t.serialize(e))],appIndex:w,foreignAssets:f,from:i,onComplete:t.OnApplicationComplete.NoOpOC,suggestedParams:s})}));for(const m of o)yield this.createUnsignedTx(m,"TokenBridge.redeem",!0)}static async isOptedInToAsset(n,e,r){var s;try{const i=await n.accountAssetInformation(e,r).do();return(((s=t.AccountAssetResponse.from_obj_for_encoding(i).assetHolding)==null?void 0:s.amount)??0)>0}catch{}return!1}createUnsignedTx(n,e,r=!0){return new p.AlgorandUnsignedTransaction(n,this.network,this.chain,e,r)}};A(g,"sendTransfer",t.bytes.encode("sendTransfer")),A(g,"attestToken",t.bytes.encode("attestToken")),A(g,"noop",t.bytes.encode("nop")),A(g,"optIn",t.bytes.encode("optin")),A(g,"completeTransfer",t.bytes.encode("completeTransfer")),A(g,"receiveAttest",t.bytes.encode("receiveAttest"));let N=g;q.registerProtocol(c._platform,"TokenBridge",N);exports.AlgorandTokenBridge=N;exports.TransferMethodSelector=W;
@@ -1,10 +1,10 @@
1
1
  var V = Object.defineProperty;
2
2
  var Q = (O, s, t) => s in O ? V(O, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : O[s] = t;
3
3
  var d = (O, s, t) => (Q(O, typeof s != "symbol" ? s + "" : s, t), t);
4
- import { A as S, S as g, a as X } from "./index-D4polzlG.mjs";
5
- import { cG as Y, b5 as C, bp as $, cv as q, cH as _, cy as D, c6 as Z, aC as b, au as tt, bO as z, cz as y, cA as k, cD as W, b_ as L, az as et, bG as H, cI as st, cJ as K, cK as ot } from "./index-DjJSdBO_.mjs";
6
- import { a as nt, A as l, s as u, _ as rt } from "./algorand-Cn2ASQM8.mjs";
7
- import { r as at } from "./chain-CNimQoal.mjs";
4
+ import { A as S, S as g, a as X } from "./index-D0taDsGK.mjs";
5
+ import { cG as Y, b5 as C, bp as $, cv as q, cH as _, cy as D, c6 as Z, aC as b, au as tt, bO as z, cz as y, cA as k, cD as W, b_ as L, az as et, bG as H, cI as st, cJ as K, cK as ot } from "./index-C1JlVOwd.mjs";
6
+ import { a as nt, A as l, s as u, _ as rt } from "./algorand-BNtk5Zlz.mjs";
7
+ import { r as at } from "./chain-BZjg2BoT.mjs";
8
8
  const G = Y.fromSignature("portal_transfer(byte[])byte[]"), c = class c {
9
9
  constructor(s, t, n, o) {
10
10
  d(this, "network");
@@ -1,10 +1,10 @@
1
1
  var d = Object.defineProperty;
2
2
  var h = (i, e, t) => e in i ? d(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
3
  var o = (i, e, t) => (h(i, typeof e != "symbol" ? e + "" : e, t), t);
4
- import { bp as w, au as p, at as g } from "./index-DjJSdBO_.mjs";
5
- import { A as u } from "./aptos-r2dqWkwd.mjs";
6
- import { c as l } from "./create-Bh45gqri.mjs";
7
- import { r as f } from "./chain-CNimQoal.mjs";
4
+ import { bp as w, au as p, at as g } from "./index-C1JlVOwd.mjs";
5
+ import { A as u } from "./aptos-DsuCT57P.mjs";
6
+ import { c as l } from "./create-PB82rGuQ.mjs";
7
+ import { r as f } from "./chain-BZjg2BoT.mjs";
8
8
  class c {
9
9
  constructor(e, t, r, s) {
10
10
  o(this, "network");
@@ -1,9 +1,9 @@
1
1
  var T = Object.defineProperty;
2
2
  var B = (i, e, t) => e in i ? T(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
3
  var a = (i, e, t) => (B(i, typeof e != "symbol" ? e + "" : e, t), t);
4
- import { cf as g, ck as b, b5 as I, cl as x, bp as A, c5 as v, c6 as S, au as U, bO as f, d as $, c7 as F, b_ as d, az as m, at as c, cm as E } from "./index-DjJSdBO_.mjs";
5
- import { a as h, A as C, c as O, b as k, d as w, i as W } from "./aptos-r2dqWkwd.mjs";
6
- import { r as R } from "./chain-CNimQoal.mjs";
4
+ import { cf as g, ck as b, b5 as I, cl as x, bp as A, c5 as v, c6 as S, au as U, bO as f, d as $, c7 as F, b_ as d, az as m, at as c, cm as E } from "./index-C1JlVOwd.mjs";
5
+ import { a as h, A as C, c as O, b as k, d as w, i as W } from "./aptos-DsuCT57P.mjs";
6
+ import { r as R } from "./chain-BZjg2BoT.mjs";
7
7
  class N {
8
8
  constructor(e, t, s, n, r = !1) {
9
9
  a(this, "transaction");
@@ -17,10 +17,10 @@ var qt = (r, e, t, n) => ({
17
17
  return b(r, e, n);
18
18
  }
19
19
  }), A = (r, e, t) => (It(r, e, "access private method"), t);
20
- import { r as w0 } from "./chain-CNimQoal.mjs";
21
- import { E as T0, a as Pt, b as E0, c as x0, _ as N0 } from "./evm-BdLUkbt8.mjs";
22
- import { c as v0 } from "./create-Bh45gqri.mjs";
23
- import { by as O0, c8 as A0, at as k0 } from "./index-DjJSdBO_.mjs";
20
+ import { r as w0 } from "./chain-BZjg2BoT.mjs";
21
+ import { E as T0, a as Pt, b as E0, c as x0, _ as N0 } from "./evm-DB1-WEEt.mjs";
22
+ import { c as v0 } from "./create-PB82rGuQ.mjs";
23
+ import { by as O0, c8 as A0, at as k0 } from "./index-C1JlVOwd.mjs";
24
24
  class I0 {
25
25
  constructor(e, t, n, s, i = !1) {
26
26
  u(this, "transaction");