@wormhole-foundation/wormhole-connect 0.3.13-beta.0-development → 0.3.14-beta.0-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 (120) hide show
  1. package/README.md +1 -2
  2. package/dist/assets/{ccip-OOFnKthE.js → ccip-CiwWapsw.js} +1 -1
  3. package/dist/assets/{evm-DItqF4y9.js → evm-SQX7GUy3.js} +4 -4
  4. package/dist/assets/{index-DhiBnkGj.js → index-BIQdJ2Hq.js} +2 -2
  5. package/dist/assets/{index-DPMNShK9.js → index-DcVWUluz.js} +1 -1
  6. package/dist/assets/{index.es-C_PUYdAu.js → index.es-DtZOeBDR.js} +2 -2
  7. package/dist/main.js +6 -6
  8. package/dist/src/config/mainnet/chains.d.ts.map +1 -1
  9. package/dist/src/config/mainnet/gasEstimates.d.ts.map +1 -1
  10. package/dist/src/config/mainnet/rpcs.d.ts.map +1 -1
  11. package/dist/src/config/mainnet/tokens.d.ts.map +1 -1
  12. package/dist/src/config/testnet/chains.d.ts.map +1 -1
  13. package/dist/src/config/testnet/gasEstimates.d.ts.map +1 -1
  14. package/dist/src/config/testnet/rpcs.d.ts.map +1 -1
  15. package/dist/src/config/testnet/tokens.d.ts.map +1 -1
  16. package/dist/src/config/types.d.ts +2 -1
  17. package/dist/src/config/types.d.ts.map +1 -1
  18. package/dist/src/icons/TokenIcons.d.ts.map +1 -1
  19. package/lib/{algorand-Bg8JSyZc.mjs → algorand-Bd_uk5ty.mjs} +4 -4
  20. package/lib/{algorand-Bl2bjZ-6.js → algorand-SmbH_jTV.js} +1 -1
  21. package/lib/{aptos-DJ84G9fi.js → aptos-BKfgdGvV.js} +2 -2
  22. package/lib/{aptos-CR2gkPFr.js → aptos-BQYmbkvI.js} +1 -1
  23. package/lib/{aptos-C7Wu-1h4.mjs → aptos-Cuq-Ov9W.mjs} +1 -1
  24. package/lib/{aptos-CMMGNgpi.mjs → aptos-DPHWvHlk.mjs} +4 -4
  25. package/lib/{browser-CkDunXxD.js → browser-CQB2lMdG.js} +1 -1
  26. package/lib/{browser-ZXnp4FKs.mjs → browser-XQd2ks95.mjs} +2 -2
  27. package/lib/{ccip-DhCmkuPu.mjs → ccip-BBjt3olQ.mjs} +1 -1
  28. package/lib/{ccip-D-Pj74dK.js → ccip-Bs1f_-UL.js} +1 -1
  29. package/lib/{chain-CVIItqOT.mjs → chain-BiWuKs6u.mjs} +1 -1
  30. package/lib/{chain-Bwy1h3yo.js → chain-Do8Ik6-A.js} +1 -1
  31. package/lib/{cosmos-CmK1H6Y0.mjs → cosmos-CnHfTE6o.mjs} +3 -3
  32. package/lib/{cosmos-6GOVGAZN.js → cosmos-Xf_i-x40.js} +1 -1
  33. package/lib/{cosmwasm-Con1USCX.js → cosmwasm-3p_o8-Nq.js} +2 -2
  34. package/lib/{cosmwasm-MvfQhXNe.mjs → cosmwasm-DDvkgx7X.mjs} +6 -6
  35. package/lib/{create-BRdq6ZSm.mjs → create-C3UEfztz.mjs} +1 -1
  36. package/lib/{create-CDRecM8t.js → create-rbF6rEI3.js} +1 -1
  37. package/lib/{ens-validation.es6-CPiX5dlm.js → ens-validation.es6-CrIX-E9e.js} +1 -1
  38. package/lib/{ens-validation.es6-DApujkCb.mjs → ens-validation.es6-DprozbFd.mjs} +2 -2
  39. package/lib/{evm-UD1FtfQa.mjs → evm-ButCLf61.mjs} +6 -6
  40. package/lib/{evm-DS32wBN9.mjs → evm-C5UdXBpx.mjs} +6 -6
  41. package/lib/{evm-Cc4KRKsc.js → evm-DIgvtYGP.js} +2 -2
  42. package/lib/{evm-BJ032m_M.js → evm-DzNw1zeN.js} +4 -4
  43. package/lib/{index-DtwoCm8e.mjs → index-2aGXQlUx.mjs} +4 -4
  44. package/lib/{index-1n9fqp9v.mjs → index-4lijpjeY.mjs} +1 -1
  45. package/lib/{index-CqaNSRi8.mjs → index-84P2mXxJ.mjs} +152 -33
  46. package/lib/{index-mWfCnAaQ.js → index-B27q1OfP.js} +1 -1
  47. package/lib/{index-B-YY9GIv.mjs → index-B3JCQv-y.mjs} +4 -4
  48. package/lib/{index-eqTjyg7U.js → index-B3nGKc8Q.js} +1 -1
  49. package/lib/{index-BFGs_cKt.js → index-B3waKmRP.js} +1 -1
  50. package/lib/{index-mYo3ol_k.js → index-B4aaHrsy.js} +1 -1
  51. package/lib/{index-Z109VDLJ.js → index-B9-nO28U.js} +6 -6
  52. package/lib/{index-D70PNWdi.js → index-BAWLzdAh.js} +1 -1
  53. package/lib/{index-DRq96-rz.js → index-BCDo_6yU.js} +1 -1
  54. package/lib/{index-7j3-yEnt.mjs → index-BUrSQTmL.mjs} +1 -1
  55. package/lib/{index-DqQ___9y.js → index-BcncuB3T.js} +1 -1
  56. package/lib/{index-C8A6Lqgw.mjs → index-BvASMnC6.mjs} +3 -3
  57. package/lib/{index-CyiGY2nE.js → index-By-SK4U6.js} +1 -1
  58. package/lib/{index-IqeoAbGU.js → index-Bz_plxBJ.js} +1 -1
  59. package/lib/{index-DjCQ8uLP.js → index-C0Gpa7Do.js} +1 -1
  60. package/lib/{index-j4_UFrLd.js → index-C3YCI2l5.js} +1 -1
  61. package/lib/{index-DPR5REBL.mjs → index-C4cQZfxC.mjs} +3 -3
  62. package/lib/{index-CHQq3YQO.mjs → index-CLenatGt.mjs} +2 -2
  63. package/lib/{index-DL8RgEWe.js → index-CQjJ0e_k.js} +1 -1
  64. package/lib/{index-uGiYgmNv.mjs → index-CVKTjnHy.mjs} +4 -4
  65. package/lib/{index-CQ1ulNVi.js → index-CVz-6Ym8.js} +1 -1
  66. package/lib/{index-BwIRT-Wk.mjs → index-CaXF3dZX.mjs} +4 -4
  67. package/lib/{index-D2sZc5xv.mjs → index-CjW28YEL.mjs} +3 -3
  68. package/lib/{index-DZyYJrWL.mjs → index-CuVBsGuM.mjs} +4 -4
  69. package/lib/{index-BFG5RlAl.mjs → index-CwgM9BIO.mjs} +5 -5
  70. package/lib/{index-CRYmVHnM.js → index-CzLQutNJ.js} +1 -1
  71. package/lib/{index-DXyqUYq2.mjs → index-D43BwGxC.mjs} +4 -4
  72. package/lib/{index-CJmh4QE2.js → index-D71PT1GD.js} +1 -1
  73. package/lib/{index-BuDqNPcO.js → index-DAqI-Ew_.js} +1 -1
  74. package/lib/{index-DHJyF-pO.mjs → index-DIcxzZhK.mjs} +5 -5
  75. package/lib/{index-B24bqgIz.mjs → index-DW1ftkbL.mjs} +4 -4
  76. package/lib/{index-D4DDOeoI.js → index-DpJvOqHb.js} +1 -1
  77. package/lib/{index-hl4dntDw.js → index-Ds9QUCq_.js} +1 -1
  78. package/lib/{index-COFhlc-l.mjs → index-DtkVSV5H.mjs} +4 -4
  79. package/lib/{index-BJQon5qX.mjs → index-EEir2XIu.mjs} +4 -4
  80. package/lib/{index-D1b3883O.mjs → index-HU_7Ur7N.mjs} +4 -4
  81. package/lib/{index-DTS_3d8l.js → index-IiRMqP2i.js} +1 -1
  82. package/lib/{index-Di3sMEo7.js → index-IznDlDxH.js} +1 -1
  83. package/lib/{index-CvqS6-7r.mjs → index-Vi7u7-iV.mjs} +2 -2
  84. package/lib/{index-COvdHjEw.js → index-XI46bffs.js} +1 -1
  85. package/lib/{index-Yv4XR6FC.mjs → index-mcBHbGuw.mjs} +5 -5
  86. package/lib/{index-lbAFXIJn.js → index-oMBh8Dne.js} +1 -1
  87. package/lib/{index-BBqQFfdG.mjs → index-oTLnfDzP.mjs} +6 -6
  88. package/lib/{index-BCBG0qdU.mjs → index-oUiZ4VeZ.mjs} +2 -2
  89. package/lib/{index.es-CAK--miD.js → index.es-BeEuj9b9.js} +2 -2
  90. package/lib/{index.es-BjHm3oKE.mjs → index.es-DTJZ9tuK.mjs} +4 -4
  91. package/lib/index.js +1 -1
  92. package/lib/index.mjs +1 -1
  93. package/lib/{libsodium-wrappers-kbvVfw30.js → libsodium-wrappers-CMuAe95D.js} +1 -1
  94. package/lib/{libsodium-wrappers-BeOpJRQU.mjs → libsodium-wrappers-D1hSOCcz.mjs} +1 -1
  95. package/lib/{sei-CAQxpS0Z.mjs → sei-B7TjWxIw.mjs} +2 -2
  96. package/lib/{sei-BW-0gNsO.js → sei-SziAtn8k.js} +1 -1
  97. package/lib/{solana-C6-Nhw0r.js → solana-BP8qy_US.js} +1 -1
  98. package/lib/{solana-C935JrJy.js → solana-CMkgvEDT.js} +2 -2
  99. package/lib/{solana-BAw4p_wG.mjs → solana-Cb_oiWS0.mjs} +3 -3
  100. package/lib/{solana-BmZEcITF.mjs → solana-ClDkinjy.mjs} +6 -6
  101. package/lib/{solanaEmbed.esm-P8gWbyY6.js → solanaEmbed.esm-DTAJz_N9.js} +1 -1
  102. package/lib/{solanaEmbed.esm-ChgWwUf5.mjs → solanaEmbed.esm-Sgq-h9YE.mjs} +2 -2
  103. package/lib/src/config/mainnet/chains.d.ts.map +1 -1
  104. package/lib/src/config/mainnet/gasEstimates.d.ts.map +1 -1
  105. package/lib/src/config/mainnet/rpcs.d.ts.map +1 -1
  106. package/lib/src/config/mainnet/tokens.d.ts.map +1 -1
  107. package/lib/src/config/testnet/chains.d.ts.map +1 -1
  108. package/lib/src/config/testnet/gasEstimates.d.ts.map +1 -1
  109. package/lib/src/config/testnet/rpcs.d.ts.map +1 -1
  110. package/lib/src/config/testnet/tokens.d.ts.map +1 -1
  111. package/lib/src/config/types.d.ts +2 -1
  112. package/lib/src/config/types.d.ts.map +1 -1
  113. package/lib/src/icons/TokenIcons.d.ts.map +1 -1
  114. package/lib/{sui-B6rErTwb.mjs → sui-Da9wJTn3.mjs} +1 -1
  115. package/lib/{sui-LOtTZxFG.js → sui-L1XeF4pM.js} +2 -2
  116. package/lib/{sui-MwjLxOll.mjs → sui-MZyCHxqc.mjs} +4 -4
  117. package/lib/{sui-CaR22DH7.js → sui-XfnVse7Y.js} +1 -1
  118. package/lib/{unsignedTransaction-CybCHnDx.mjs → unsignedTransaction-DKcxxF0x.mjs} +2 -2
  119. package/lib/{unsignedTransaction-B5T303Id.js → unsignedTransaction-DWavCFla.js} +1 -1
  120. package/package.json +1 -1
@@ -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-CqaNSRi8.mjs";
5
- import { A as u } from "./aptos-CMMGNgpi.mjs";
6
- import { c as l } from "./create-BRdq6ZSm.mjs";
7
- import { r as f } from "./chain-CVIItqOT.mjs";
4
+ import { bp as w, au as p, at as g } from "./index-84P2mXxJ.mjs";
5
+ import { A as u } from "./aptos-DPHWvHlk.mjs";
6
+ import { c as l } from "./create-C3UEfztz.mjs";
7
+ import { r as f } from "./chain-BiWuKs6u.mjs";
8
8
  class c {
9
9
  constructor(e, t, r, s) {
10
10
  o(this, "network");
@@ -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-CRYmVHnM.js"),t=require("./index-Z109VDLJ.js"),c=require("./algorand-Bl2bjZ-6.js"),q=require("./chain-Bwy1h3yo.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-CzLQutNJ.js"),t=require("./index-B9-nO28U.js"),c=require("./algorand-SmbH_jTV.js"),q=require("./chain-Do8Ik6-A.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 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./solana-C935JrJy.js"),e=require("./index-Z109VDLJ.js");class s extends Error{constructor(t){super(t)}}class n extends s{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const u=e.struct([e.u32("mintAuthorityOption"),e.publicKey("mintAuthority"),e.u64("supply"),e.u8("decimals"),e.bool("isInitialized"),e.u32("freezeAuthorityOption"),e.publicKey("freezeAuthority")]);u.span;async function f(o,t,i=!1,O=r.TOKEN_PROGRAM_ID,c=r.ASSOCIATED_TOKEN_PROGRAM_ID){if(!i&&!r.PublicKey.isOnCurve(t.toBuffer()))throw new n;const[a]=await r.PublicKey.findProgramAddress([t.toBuffer(),O.toBuffer(),o.toBuffer()],c);return a}exports.ASSOCIATED_TOKEN_PROGRAM_ID=r.ASSOCIATED_TOKEN_PROGRAM_ID;exports.TOKEN_PROGRAM_ID=r.TOKEN_PROGRAM_ID;exports.MintLayout=u;exports.TokenError=s;exports.TokenOwnerOffCurveError=n;exports.getAssociatedTokenAddress=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./solana-CMkgvEDT.js"),e=require("./index-B9-nO28U.js");class s extends Error{constructor(t){super(t)}}class n extends s{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const u=e.struct([e.u32("mintAuthorityOption"),e.publicKey("mintAuthority"),e.u64("supply"),e.u8("decimals"),e.bool("isInitialized"),e.u32("freezeAuthorityOption"),e.publicKey("freezeAuthority")]);u.span;async function f(o,t,i=!1,O=r.TOKEN_PROGRAM_ID,c=r.ASSOCIATED_TOKEN_PROGRAM_ID){if(!i&&!r.PublicKey.isOnCurve(t.toBuffer()))throw new n;const[a]=await r.PublicKey.findProgramAddress([t.toBuffer(),O.toBuffer(),o.toBuffer()],c);return a}exports.ASSOCIATED_TOKEN_PROGRAM_ID=r.ASSOCIATED_TOKEN_PROGRAM_ID;exports.TOKEN_PROGRAM_ID=r.TOKEN_PROGRAM_ID;exports.MintLayout=u;exports.TokenError=s;exports.TokenOwnerOffCurveError=n;exports.getAssociatedTokenAddress=f;
@@ -1,5 +1,5 @@
1
- import { P as e, T as f, A as c } from "./solana-BmZEcITF.mjs";
2
- import { aI as d, aJ as s, cb as o, c9 as A, aL as O, ca as p } from "./index-CqaNSRi8.mjs";
1
+ import { P as e, T as f, A as c } from "./solana-ClDkinjy.mjs";
2
+ import { aI as d, aJ as s, cb as o, c9 as A, aL as O, ca as p } from "./index-84P2mXxJ.mjs";
3
3
  class m extends Error {
4
4
  constructor(r) {
5
5
  super(r);
@@ -1 +1 @@
1
- "use strict";var y=Object.defineProperty;var g=(d,e,t)=>e in d?y(d,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):d[e]=t;var i=(d,e,t)=>(g(d,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-Z109VDLJ.js"),o=require("./aptos-DJ84G9fi.js"),f=require("./chain-Bwy1h3yo.js");class k{constructor(e,t,s,n,a=!1){i(this,"transaction");i(this,"network");i(this,"chain");i(this,"description");i(this,"parallelizable");this.transaction=e,this.network=t,this.chain=s,this.description=n,this.parallelizable=a}}const w=[{name:"tokenBridgeAddress",...r.universalAddressItem},{name:"chain",...r.chainItem()},{name:"domainSeparator",binary:"bytes",custom:r.bytes.encode(o.APTOS_SEPARATOR),omit:!0},{name:"tokenId",...r.universalAddressItem},{name:"domainSeparator",binary:"bytes",custom:new Uint8Array([255]),omit:!0}],m=d=>r.serializeLayout(w,d);class c{constructor(e,t,s,n){i(this,"network");i(this,"chain");i(this,"connection");i(this,"contracts");i(this,"chainId");i(this,"tokenBridgeAddress");this.network=e,this.chain=t,this.connection=s,this.contracts=n,this.chainId=r.toChainId(t);const a=n.tokenBridge;if(!a)throw new Error(`TokenBridge contract Address for chain ${t} not found`);this.tokenBridgeAddress=a}static async fromRpc(e,t){const[s,n]=await o.AptosPlatform.chainFromRpc(e),a=t[n];if(a.network!==s)throw new Error("Network mismatch "+a.network+" !== "+s);return new c(s,n,e,a.contracts)}async isWrappedAsset(e){try{return await this.getOriginalAsset(e),!0}catch{return!1}}async getOriginalAsset(e){const t=e.toString().split(o.APTOS_SEPARATOR);let s;if(s=(await this.connection.getAccountResource(t[0],`${this.tokenBridgeAddress}::state::OriginInfo`)).data,!s)throw r.ErrNotWrapped;const n=r.toChain(parseInt(s.token_chain.number)),a=new r.UniversalAddress(s.token_address.external_address);return{chain:n,address:a}}async hasWrappedAsset(e){try{return await this.getWrappedAsset(e),!0}catch{}return!1}async getWrappedAsset(e){const t=await this.getAssetFullyQualifiedType(e);if(!t)throw new Error("Invalid asset address.");return await this.connection.getAccountResource(o.coalesceModuleAddress(t),`${this.tokenBridgeAddress}::state::OriginInfo`),r.toNative(this.chain,t)}async isTransferCompleted(e){const s=(await this.connection.getAccountResource(this.tokenBridgeAddress,`${this.tokenBridgeAddress}::state::State`)).data.consumed_vaas.elems.handle;try{return await this.connection.getTableItem(s,{key_type:"vector<u8>",value_type:"u8",key:`0x${r.dist.Buffer.from(r.keccak_256(e.hash)).toString("hex")}`}),!0}catch{return!1}}async getWrappedNative(){return r.toNative(this.chain,o.APTOS_COIN)}async*createAttestation(e,t){const s={chain:this.chain,address:new o.AptosAddress(e)},n=await this.getAssetFullyQualifiedType(s);if(!n)throw new Error("Invalid asset address.");yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::attest_token::attest_token_entry`,type_arguments:[n],arguments:[]},"Aptos.AttestToken")}async*submitAttestation(e,t){yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::wrapped::create_wrapped_coin_type`,type_arguments:[],arguments:[r.serialize(e)]},"Aptos.CreateWrappedCoinType");const s=await this.getAssetFullyQualifiedType(e.payload.token);if(!s)throw new Error("Invalid asset address.");yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::wrapped::create_wrapped_coin`,type_arguments:[s],arguments:[r.serialize(e)]},"Aptos.CreateWrappedCoin")}async*transfer(e,t,s,n,a){const A=0n,h=0n,l=r.isNative(s)?o.APTOS_COIN:s.toString(),u=t.address.toUniversalAddress().toUint8Array(),p=r.toChainId(t.chain);a?yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::transfer_tokens::transfer_tokens_with_payload_entry`,type_arguments:[l],arguments:[n,p,u,h,a]},"Aptos.TransferTokensWithPayload"):yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::transfer_tokens::transfer_tokens_entry`,type_arguments:[l],arguments:[n,p,u,A,h]},"Aptos.TransferTokens")}async*redeem(e,t,s=!0){const n=t.payload.token.chain===this.chain?await this.getTypeFromExternalAddress(t.payload.token.address.toString()):await this.getAssetFullyQualifiedType(t.payload.token);if(!n)throw new Error("Invalid asset address.");yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::complete_transfer::submit_vaa_and_register_entry`,type_arguments:[n],arguments:[r.serialize(t)]},"Aptos.CompleteTransfer")}async getAssetFullyQualifiedType(e){return e.chain===this.chain?o.isValidAptosType(e.address.toString())?e.address.toString():null:`${c.getForeignAssetAddress(this.chain,this.tokenBridgeAddress,e)}::coin::T`}async getTypeFromExternalAddress(e){try{const t=(await this.connection.getAccountResource(this.tokenBridgeAddress,`${this.tokenBridgeAddress}::state::State`)).data,{handle:s}=t.native_infos,n=await this.connection.getTableItem(s,{key_type:`${this.tokenBridgeAddress}::token_hash::TokenHash`,value_type:"0x1::type_info::TypeInfo",key:{hash:e}});return n?[n.account_address,r.hex.decode(n.module_name),r.hex.decode(n.struct_name)].join(o.APTOS_SEPARATOR):null}catch{return null}}static getForeignAssetAddress(e,t,s){if(r.isNative(s.address))throw new Error("Invalid token address");const n=m({chain:s.chain,tokenBridgeAddress:new o.AptosAddress(t).toUniversalAddress(),tokenId:s.address.toUniversalAddress()});return r.hex.encode(r.sha3_256(n),!0)}createUnsignedTx(e,t,s=!1){return new k(e,this.network,this.chain,t,s)}}f.registerProtocol("Aptos","TokenBridge",c);exports.AptosTokenBridge=c;
1
+ "use strict";var y=Object.defineProperty;var g=(d,e,t)=>e in d?y(d,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):d[e]=t;var i=(d,e,t)=>(g(d,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-B9-nO28U.js"),o=require("./aptos-BKfgdGvV.js"),f=require("./chain-Do8Ik6-A.js");class k{constructor(e,t,s,n,a=!1){i(this,"transaction");i(this,"network");i(this,"chain");i(this,"description");i(this,"parallelizable");this.transaction=e,this.network=t,this.chain=s,this.description=n,this.parallelizable=a}}const w=[{name:"tokenBridgeAddress",...r.universalAddressItem},{name:"chain",...r.chainItem()},{name:"domainSeparator",binary:"bytes",custom:r.bytes.encode(o.APTOS_SEPARATOR),omit:!0},{name:"tokenId",...r.universalAddressItem},{name:"domainSeparator",binary:"bytes",custom:new Uint8Array([255]),omit:!0}],m=d=>r.serializeLayout(w,d);class c{constructor(e,t,s,n){i(this,"network");i(this,"chain");i(this,"connection");i(this,"contracts");i(this,"chainId");i(this,"tokenBridgeAddress");this.network=e,this.chain=t,this.connection=s,this.contracts=n,this.chainId=r.toChainId(t);const a=n.tokenBridge;if(!a)throw new Error(`TokenBridge contract Address for chain ${t} not found`);this.tokenBridgeAddress=a}static async fromRpc(e,t){const[s,n]=await o.AptosPlatform.chainFromRpc(e),a=t[n];if(a.network!==s)throw new Error("Network mismatch "+a.network+" !== "+s);return new c(s,n,e,a.contracts)}async isWrappedAsset(e){try{return await this.getOriginalAsset(e),!0}catch{return!1}}async getOriginalAsset(e){const t=e.toString().split(o.APTOS_SEPARATOR);let s;if(s=(await this.connection.getAccountResource(t[0],`${this.tokenBridgeAddress}::state::OriginInfo`)).data,!s)throw r.ErrNotWrapped;const n=r.toChain(parseInt(s.token_chain.number)),a=new r.UniversalAddress(s.token_address.external_address);return{chain:n,address:a}}async hasWrappedAsset(e){try{return await this.getWrappedAsset(e),!0}catch{}return!1}async getWrappedAsset(e){const t=await this.getAssetFullyQualifiedType(e);if(!t)throw new Error("Invalid asset address.");return await this.connection.getAccountResource(o.coalesceModuleAddress(t),`${this.tokenBridgeAddress}::state::OriginInfo`),r.toNative(this.chain,t)}async isTransferCompleted(e){const s=(await this.connection.getAccountResource(this.tokenBridgeAddress,`${this.tokenBridgeAddress}::state::State`)).data.consumed_vaas.elems.handle;try{return await this.connection.getTableItem(s,{key_type:"vector<u8>",value_type:"u8",key:`0x${r.dist.Buffer.from(r.keccak_256(e.hash)).toString("hex")}`}),!0}catch{return!1}}async getWrappedNative(){return r.toNative(this.chain,o.APTOS_COIN)}async*createAttestation(e,t){const s={chain:this.chain,address:new o.AptosAddress(e)},n=await this.getAssetFullyQualifiedType(s);if(!n)throw new Error("Invalid asset address.");yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::attest_token::attest_token_entry`,type_arguments:[n],arguments:[]},"Aptos.AttestToken")}async*submitAttestation(e,t){yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::wrapped::create_wrapped_coin_type`,type_arguments:[],arguments:[r.serialize(e)]},"Aptos.CreateWrappedCoinType");const s=await this.getAssetFullyQualifiedType(e.payload.token);if(!s)throw new Error("Invalid asset address.");yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::wrapped::create_wrapped_coin`,type_arguments:[s],arguments:[r.serialize(e)]},"Aptos.CreateWrappedCoin")}async*transfer(e,t,s,n,a){const A=0n,h=0n,l=r.isNative(s)?o.APTOS_COIN:s.toString(),u=t.address.toUniversalAddress().toUint8Array(),p=r.toChainId(t.chain);a?yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::transfer_tokens::transfer_tokens_with_payload_entry`,type_arguments:[l],arguments:[n,p,u,h,a]},"Aptos.TransferTokensWithPayload"):yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::transfer_tokens::transfer_tokens_entry`,type_arguments:[l],arguments:[n,p,u,A,h]},"Aptos.TransferTokens")}async*redeem(e,t,s=!0){const n=t.payload.token.chain===this.chain?await this.getTypeFromExternalAddress(t.payload.token.address.toString()):await this.getAssetFullyQualifiedType(t.payload.token);if(!n)throw new Error("Invalid asset address.");yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::complete_transfer::submit_vaa_and_register_entry`,type_arguments:[n],arguments:[r.serialize(t)]},"Aptos.CompleteTransfer")}async getAssetFullyQualifiedType(e){return e.chain===this.chain?o.isValidAptosType(e.address.toString())?e.address.toString():null:`${c.getForeignAssetAddress(this.chain,this.tokenBridgeAddress,e)}::coin::T`}async getTypeFromExternalAddress(e){try{const t=(await this.connection.getAccountResource(this.tokenBridgeAddress,`${this.tokenBridgeAddress}::state::State`)).data,{handle:s}=t.native_infos,n=await this.connection.getTableItem(s,{key_type:`${this.tokenBridgeAddress}::token_hash::TokenHash`,value_type:"0x1::type_info::TypeInfo",key:{hash:e}});return n?[n.account_address,r.hex.decode(n.module_name),r.hex.decode(n.struct_name)].join(o.APTOS_SEPARATOR):null}catch{return null}}static getForeignAssetAddress(e,t,s){if(r.isNative(s.address))throw new Error("Invalid token address");const n=m({chain:s.chain,tokenBridgeAddress:new o.AptosAddress(t).toUniversalAddress(),tokenId:s.address.toUniversalAddress()});return r.hex.encode(r.sha3_256(n),!0)}createUnsignedTx(e,t,s=!1){return new k(e,this.network,this.chain,t,s)}}f.registerProtocol("Aptos","TokenBridge",c);exports.AptosTokenBridge=c;
@@ -1,11 +1,11 @@
1
1
  var N = Object.defineProperty;
2
2
  var W = (h, t, e) => t in h ? N(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), e);
4
- import "./index-uGiYgmNv.mjs";
5
- import { C as p, a as i, G as v, _ as x } from "./cosmwasm-MvfQhXNe.mjs";
6
- import { b as o, c as g, C as E } from "./unsignedTransaction-CybCHnDx.mjs";
7
- import { az as u, b4 as d, bp as B, bO as S, c6 as q, au as I, b_ as y } from "./index-CqaNSRi8.mjs";
8
- import { r as D } from "./chain-CVIItqOT.mjs";
4
+ import "./index-CVKTjnHy.mjs";
5
+ import { C as p, a as i, G as v, _ as x } from "./cosmwasm-DDvkgx7X.mjs";
6
+ import { b as o, c as g, C as E } from "./unsignedTransaction-DKcxxF0x.mjs";
7
+ import { az as u, b4 as d, bp as B, bO as S, c6 as q, au as I, b_ as y } from "./index-84P2mXxJ.mjs";
8
+ import { r as D } from "./chain-BiWuKs6u.mjs";
9
9
  class k {
10
10
  constructor(t, e, r, s) {
11
11
  c(this, "network");