@wormhole-foundation/wormhole-connect 0.3.19-beta.3-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 (101) hide show
  1. package/dist/assets/{ccip-B8sh0red.js → ccip-fCzlhBBT.js} +1 -1
  2. package/dist/assets/{evm-B3YdeaCI.js → evm-zyz5dAmi.js} +4 -4
  3. package/dist/assets/{index-moDeJTxm.js → index-Cjisu-Ym.js} +1 -1
  4. package/dist/assets/{index-1ZJmfQkw.js → index-DYCDjsFo.js} +2 -2
  5. package/dist/assets/{index.es-CXmj0UJy.js → index.es-LrzWWyFt.js} +2 -2
  6. package/dist/main.js +5 -5
  7. package/dist/src/components/ManualAddressInput.d.ts.map +1 -1
  8. package/lib/{algorand-CNPRWbNB.mjs → algorand-BNtk5Zlz.mjs} +4 -4
  9. package/lib/{algorand-BDR3KPTJ.js → algorand-BOA88Yi9.js} +1 -1
  10. package/lib/{aptos-Br9Q1n2N.js → aptos-09IlHhtG.js} +1 -1
  11. package/lib/{aptos-tCZHrDAP.js → aptos-2Xg1Y_0j.js} +2 -2
  12. package/lib/{aptos-t3uXFwih.mjs → aptos-DsuCT57P.mjs} +4 -4
  13. package/lib/{aptos-BPs26BCC.mjs → aptos-ofb4q2o1.mjs} +1 -1
  14. package/lib/{browser-33Nc32cs.mjs → browser-5rNYk7ew.mjs} +2 -2
  15. package/lib/{browser-Cz60hQ-L.js → browser-CMlhlM7_.js} +1 -1
  16. package/lib/{ccip-CtmuOQGX.js → ccip-BnSw75yc.js} +1 -1
  17. package/lib/{ccip-CE49B2YD.mjs → ccip-rZCaMFot.mjs} +1 -1
  18. package/lib/{chain-CbwtJlkc.mjs → chain-BZjg2BoT.mjs} +1 -1
  19. package/lib/{chain-BT07YJHt.js → chain-NLYiTi92.js} +1 -1
  20. package/lib/cosmos-DeEa4QWd.js +37 -0
  21. package/lib/{cosmos-LlwNYP69.mjs → cosmos-IWVkyjMV.mjs} +6 -6
  22. package/lib/{cosmwasm-CiJ3I3AY.js → cosmwasm-BFtZD1Ru.js} +2 -2
  23. package/lib/{cosmwasm-CbTKetWD.mjs → cosmwasm-CGR89px_.mjs} +6 -6
  24. package/lib/{create-Chqnlpoq.js → create-Bpjnlpg_.js} +1 -1
  25. package/lib/{create-HNw0Emrd.mjs → create-PB82rGuQ.mjs} +1 -1
  26. package/lib/{ens-validation.es6-BaZUabxu.js → ens-validation.es6-BY6Eu6az.js} +1 -1
  27. package/lib/{ens-validation.es6-CyEOHc9J.mjs → ens-validation.es6-D6AE2QT0.mjs} +2 -2
  28. package/lib/{evm-lHNM4jqm.mjs → evm-DB1-WEEt.mjs} +6 -6
  29. package/lib/{evm-3AGyBI-h.js → evm-DY9ovr2c.js} +2 -2
  30. package/lib/{evm-CjvzIUCn.mjs → evm-FMLhTUS9.mjs} +6 -6
  31. package/lib/{evm-CNC7JHe1.js → evm-aLUoXBeT.js} +4 -4
  32. package/lib/{index-35qsyZLz.js → index-6GqC5Hzz.js} +1 -1
  33. package/lib/{index-DvUq-nIQ.mjs → index-95lzn8zO.mjs} +5 -5
  34. package/lib/{index-DrncQYMG.js → index-9SUIf5nS.js} +1 -1
  35. package/lib/{index-BqGvvv6N.js → index-B2IuVewp.js} +1 -1
  36. package/lib/{index-DJzhcNDU.mjs → index-B2JrUboW.mjs} +6 -6
  37. package/lib/{index-CokIAiMa.mjs → index-BAMSsTuN.mjs} +4 -4
  38. package/lib/{index-C4kvGnSA.mjs → index-BEQsB526.mjs} +2 -2
  39. package/lib/{index-BS1tjK_Z.mjs → index-BEjdY6hm.mjs} +5 -5
  40. package/lib/{index-abvwfKBf.js → index-BG24T1GX.js} +1 -1
  41. package/lib/{index-Cp5np38p.mjs → index-BI-a425p.mjs} +1 -1
  42. package/lib/{index-UOSBfEgg.js → index-BQqBYm1C.js} +1 -1
  43. package/lib/{index-zKUpU-3R.mjs → index-BSpDXKq1.mjs} +4 -4
  44. package/lib/{index-D1dHZqit.mjs → index-BULQb7l7.mjs} +4 -4
  45. package/lib/{index-BWsL77BI.mjs → index-Bdzevkwx.mjs} +3 -3
  46. package/lib/{index-DRTx-Ru8.mjs → index-BqGrE5rX.mjs} +4 -4
  47. package/lib/{index-DPNt5r2L.js → index-BwTYRqte.js} +1 -1
  48. package/lib/{index-CdSy2Lfd.mjs → index-C1JlVOwd.mjs} +128 -124
  49. package/lib/{index-BBtf8VGl.js → index-C7pm5tV-.js} +1 -1
  50. package/lib/{index-DfJLd65b.mjs → index-CFc6ua8j.mjs} +4 -4
  51. package/lib/{index-DVVJw5ml.js → index-COcHH6cV.js} +1 -1
  52. package/lib/{index-BCnyHegg.mjs → index-CPg2DDGG.mjs} +4 -4
  53. package/lib/{index-Bfw-brA6.js → index-CaF25_vp.js} +1 -1
  54. package/lib/{index-CACyup9A.js → index-CefRPGIJ.js} +1 -1
  55. package/lib/{index-DGRaAUXo.mjs → index-CfOBXKOA.mjs} +2 -2
  56. package/lib/{index-BpuXk_6h.js → index-Clclaa8l.js} +1 -1
  57. package/lib/{index-CbCfazgA.mjs → index-Cn3ZByEn.mjs} +5 -5
  58. package/lib/{index-BH5gBrJu.mjs → index-CswKQSoP.mjs} +3 -3
  59. package/lib/{index-CGLAoOXl.mjs → index-Cu-QZ2Yi.mjs} +4 -4
  60. package/lib/{index-B9L2kltl.mjs → index-CxU-Gb5y.mjs} +4 -4
  61. package/lib/{index-DVH-ZIP6.mjs → index-D0taDsGK.mjs} +4 -4
  62. package/lib/index-D1vD1x9T.js +3 -0
  63. package/lib/{index-CjyrCdi_.mjs → index-DHsWcdrI.mjs} +72 -72
  64. package/lib/{index-Cofatf_w.js → index-DIhwpM7p.js} +1 -1
  65. package/lib/{index-DCPwTd_i.js → index-DRhnM5uA.js} +1 -1
  66. package/lib/{index-0t31FGKV.js → index-D_ETBz6p.js} +1 -1
  67. package/lib/{index-B6m0ovID.mjs → index-Df-PgrLd.mjs} +2 -2
  68. package/lib/{index-Tl7zYqHL.js → index-DfYc88fY.js} +10 -10
  69. package/lib/{index-CO9tmWap.js → index-Dph4RybI.js} +1 -1
  70. package/lib/{index-Bk7wdRtH.mjs → index-Dvg604_r.mjs} +3 -3
  71. package/lib/{index-BCSt_UXY.js → index-DzVxkotY.js} +1 -1
  72. package/lib/{index-CYap2RXm.js → index-LMP2SXjR.js} +1 -1
  73. package/lib/{index-B9gw1I6s.js → index-M0F8WpQR.js} +1 -1
  74. package/lib/{index-ztQgUCWf.js → index-Na_--gcE.js} +1 -1
  75. package/lib/{index-Dbwiqljw.js → index-aCI_DUM-.js} +1 -1
  76. package/lib/{index-dJMYtBle.mjs → index-afsYF03s.mjs} +4 -4
  77. package/lib/{index-l_e-RUun.js → index-tMk2zWGF.js} +1 -1
  78. package/lib/{index.es-DnXnnX-i.mjs → index.es-DqS4HLZw.mjs} +4 -4
  79. package/lib/{index.es-494n2GDU.js → index.es-uerP6wyE.js} +2 -2
  80. package/lib/index.js +1 -1
  81. package/lib/index.mjs +1 -1
  82. package/lib/{libsodium-wrappers-9p7NdjLu.mjs → libsodium-wrappers-B78L643V.mjs} +1 -1
  83. package/lib/{libsodium-wrappers-Dechaffz.js → libsodium-wrappers-DP3-RcK9.js} +1 -1
  84. package/lib/{sei-SWKTnPTF.mjs → sei-CvQ5fq9U.mjs} +2 -2
  85. package/lib/{sei-DORxBQd-.js → sei-D8YL8hcu.js} +1 -1
  86. package/lib/{solana-DvbMa7B_.mjs → solana-DIKpxJ66.mjs} +3 -3
  87. package/lib/{solana-KhBV5LOd.js → solana-PbyA60e9.js} +1 -1
  88. package/lib/{solana-Bd9eRY8E.js → solana-Q02Qu6Us.js} +2 -2
  89. package/lib/{solana-T2pgCVfU.mjs → solana-eqcW3EUS.mjs} +6 -6
  90. package/lib/{solanaEmbed.esm-8eZSo5K2.mjs → solanaEmbed.esm-B35xqpi9.mjs} +2 -2
  91. package/lib/{solanaEmbed.esm-CnKFJhsj.js → solanaEmbed.esm-DAJICEjv.js} +1 -1
  92. package/lib/src/components/ManualAddressInput.d.ts.map +1 -1
  93. package/lib/{sui-CjRGl9Gg.mjs → sui-CmBrrkS9.mjs} +1 -1
  94. package/lib/{sui-B382sZz0.js → sui-Cz7TcwK6.js} +1 -1
  95. package/lib/{sui-DDu4a1uc.mjs → sui-DWSLoSDK.mjs} +4 -4
  96. package/lib/{sui-DwH1wYGH.js → sui-YcpSM6BX.js} +2 -2
  97. package/lib/{unsignedTransaction-mu6HJcHt.js → unsignedTransaction-CuG8xbiM.js} +1 -1
  98. package/lib/{unsignedTransaction-BbAfXtog.mjs → unsignedTransaction-Dgrq3Lq3.mjs} +2 -2
  99. package/package.json +1 -1
  100. package/lib/cosmos-t65H2NQC.js +0 -37
  101. package/lib/index-Bp0NhDcb.js +0 -3
@@ -1,4 +1,4 @@
1
- import { bS as Tt, w as Mt, ab as xt } from "./index-CdSy2Lfd.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-BBtf8VGl.js"),t=require("./index-Tl7zYqHL.js"),c=require("./algorand-BDR3KPTJ.js"),q=require("./chain-BT07YJHt.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-DVH-ZIP6.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-CdSy2Lfd.mjs";
6
- import { a as nt, A as l, s as u, _ as rt } from "./algorand-CNPRWbNB.mjs";
7
- import { r as at } from "./chain-CbwtJlkc.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-CdSy2Lfd.mjs";
5
- import { A as u } from "./aptos-t3uXFwih.mjs";
6
- import { c as l } from "./create-HNw0Emrd.mjs";
7
- import { r as f } from "./chain-CbwtJlkc.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-CdSy2Lfd.mjs";
5
- import { a as h, A as C, c as O, b as k, d as w, i as W } from "./aptos-t3uXFwih.mjs";
6
- import { r as R } from "./chain-CbwtJlkc.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-CbwtJlkc.mjs";
21
- import { E as T0, a as Pt, b as E0, c as x0, _ as N0 } from "./evm-lHNM4jqm.mjs";
22
- import { c as v0 } from "./create-HNw0Emrd.mjs";
23
- import { by as O0, c8 as A0, at as k0 } from "./index-CdSy2Lfd.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");