@wormhole-foundation/wormhole-connect 2.5.0-beta.6-development → 2.5.0-beta.7-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 (125) hide show
  1. package/dist/assets/{aptos-C1kJwF_9.js → aptos-B_l6-YSt.js} +2 -2
  2. package/dist/assets/{ccip-u-dcupj6.js → ccip-Clh7lDFd.js} +1 -1
  3. package/dist/assets/{create-CPwTP7kz.js → create-BrCILL-b.js} +1 -1
  4. package/dist/assets/events-Qrc8Qc0_.js +1 -0
  5. package/dist/assets/{evm-BsYn5oKw.js → evm-Dxka2v4f.js} +3 -3
  6. package/dist/assets/{evm-Dxzjrop9.js → evm-yUSNrxzF.js} +2 -2
  7. package/dist/assets/{index-CeaghD18.js → index-5IQaHp4s.js} +1 -1
  8. package/dist/assets/{index-ZIIwf20G.js → index-6HbyQ3jY.js} +1 -1
  9. package/dist/assets/{index-B9rs0U5M.js → index-BQuYDEQ6.js} +1 -1
  10. package/dist/assets/{index-CgFxnAZU.js → index-BcCKudwp.js} +2 -2
  11. package/dist/assets/{index-BH7tq5f6.js → index-BhIi21d2.js} +1 -1
  12. package/dist/assets/{index-DdnPSi37.js → index-CQTb26AL.js} +1 -1
  13. package/dist/assets/{index-DL0M3nJj.js → index-CTAjt_cp.js} +1 -1
  14. package/dist/assets/{index-B5MVX_TK.js → index-CVMIiUin.js} +1 -1
  15. package/dist/assets/{index-CCKwEjtb.js → index-CW9rA1zL.js} +1 -1
  16. package/dist/assets/{index-DNbxAEYp.js → index-CbV0zEo3.js} +1 -1
  17. package/dist/assets/{index-DtRRvCNn.js → index-CdW-fp8-.js} +1 -1
  18. package/dist/assets/{index-BjJiAUgL.js → index-CvMogzDh.js} +1 -1
  19. package/dist/assets/{index-CMzm2YRG.js → index-CxTqvuay.js} +1 -1
  20. package/dist/assets/{index-zq3lVwnm.js → index-DJS8zG6I.js} +1 -1
  21. package/dist/assets/{index-BVOiU4Pb.js → index-DUQ09nhZ.js} +1 -1
  22. package/dist/assets/{index-DCq08Jxr.js → index-DanTVZ2H.js} +1 -1
  23. package/dist/assets/{index-C1DsDrDL.js → index-DbuCffZl.js} +1 -1
  24. package/dist/assets/{index-DGS3sLO1.js → index-GUU3bnHw.js} +1 -1
  25. package/dist/assets/{index-B3ZaqhJg.js → index-VJdR0Vsp.js} +1 -1
  26. package/dist/assets/{index-DoiRS04H.js → index-XyUKebX5.js} +1 -1
  27. package/dist/assets/{index-Ci4biYvU.js → index-toVQVrsP.js} +1 -1
  28. package/dist/assets/{index.es-Cw18p-se.js → index.es-BK07yBK8.js} +6 -6
  29. package/dist/assets/{signer-C3DgLdvN.js → signer-Cqdo4YRC.js} +2 -2
  30. package/dist/assets/{solana-CGFN2NGX.js → solana-CeiXWtGd.js} +2 -2
  31. package/dist/assets/solana-DqfcEf7L.js +2 -0
  32. package/dist/assets/solanaEmbed.esm-BW4sfcDG.js +37 -0
  33. package/dist/assets/{sui-CnHcn_0B.js → sui-TntjpiE6.js} +2 -2
  34. package/dist/assets/{tokens-FDI1dtAz.js → tokens-wBpWq5l5.js} +1 -1
  35. package/dist/main.js +51 -51
  36. package/dist/src/config/tokens.d.ts +1 -2
  37. package/dist/src/config/tokens.d.ts.map +1 -1
  38. package/lib/{address-BOtk71bD.mjs → address-D74XlMdi.mjs} +1 -1
  39. package/lib/{address-BLzPWV-E.mjs → address-DXFbgyJW.mjs} +2 -2
  40. package/lib/{aptos-IOOei1no.mjs → aptos-BI_Iw81A.mjs} +3 -3
  41. package/lib/{aptos-VYpUdIbK.js → aptos-Bo2QKL_o.js} +2 -2
  42. package/lib/{aptos-BbiOuC0T.mjs → aptos-TMGaJnTR.mjs} +7 -7
  43. package/lib/{aptos-Cu3bovru.js → aptos-epuCDnon.js} +1 -1
  44. package/lib/{base64-DGCRk9J5.mjs → base64-DPCMLrON.mjs} +1 -1
  45. package/lib/{blake2b-m1jftOvW.mjs → blake2b-BmQx89Cf.mjs} +1 -1
  46. package/lib/{browser-ponyfill-P9fgAaV3.mjs → browser-ponyfill-Zjbs5ehD.mjs} +1 -1
  47. package/lib/{ccip-BwSVKpKT.js → ccip-B0XlsT4q.js} +1 -1
  48. package/lib/{ccip-BMIJyUMJ.mjs → ccip-O9JiAu3g.mjs} +1 -1
  49. package/lib/{chain-CT7ecDhV.mjs → chain-DaAd2Ztf.mjs} +1 -1
  50. package/lib/{chunk-IMTC3J2M-Cp_ALcg7.mjs → chunk-IMTC3J2M-Bn3rs7tb.mjs} +3 -3
  51. package/lib/{constants-Zb1SDoyk.js → constants-CRRDPpKq.js} +1 -1
  52. package/lib/{constants-CNaB7Vz0.mjs → constants-C_ygygtY.mjs} +2 -2
  53. package/lib/{contract-DMlP6-52.mjs → contract-BI_HDILr.mjs} +1 -1
  54. package/lib/{create-CjSkS1wx.mjs → create-CzWSWmF_.mjs} +1 -1
  55. package/lib/{evm-vs1nuIX9.js → evm-A_vVgbuq.js} +3 -3
  56. package/lib/{evm-BE8FQL2W.mjs → evm-B2vaKgl-.mjs} +9 -9
  57. package/lib/{evm-BnY3Xjp5.mjs → evm-BUp3X3u_.mjs} +9 -9
  58. package/lib/hosted.js +1 -1
  59. package/lib/hosted.mjs +1 -1
  60. package/lib/{index-TyTI1Rpd.mjs → index--QOOnO1S.mjs} +5 -5
  61. package/lib/{index-C-Sne3wZ.mjs → index-09ytttgm.mjs} +6 -6
  62. package/lib/{index-Bbko3kbd.mjs → index-5xE5bjpW.mjs} +1 -1
  63. package/lib/{index-DeaOcW3T.mjs → index-BLYjmYmu.mjs} +5 -5
  64. package/lib/{index-BX0NN4Gt.js → index-BLuX2qUK.js} +1 -1
  65. package/lib/{index-S9YvWjL2.mjs → index-BQwsEzas.mjs} +5 -5
  66. package/lib/{index-ZmrIUx4G.mjs → index-BYzONVwG.mjs} +7 -7
  67. package/lib/{index-VhZz7aDm.mjs → index-BbCcdl9J.mjs} +6 -6
  68. package/lib/{index-ClX6MswJ.mjs → index-BkHLwIMc.mjs} +1 -1
  69. package/lib/{index-R5pl_ZX0.mjs → index-Blt9MjZK.mjs} +1 -1
  70. package/lib/{index-BY3N1cHu.mjs → index-BtHKcrCx.mjs} +21865 -21889
  71. package/lib/{index-BeAbMbxI.mjs → index-BziywkBj.mjs} +5 -5
  72. package/lib/{index-CI0Gn3Tr.mjs → index-C2dc1ibN.mjs} +4 -4
  73. package/lib/{index-BoK8jtU6.mjs → index-C2jOUiub.mjs} +5 -5
  74. package/lib/{index-YiE0Zsh0.js → index-C6phwYcf.js} +1 -1
  75. package/lib/{index-D_8MTXNV.mjs → index-CGbZMLbJ.mjs} +3 -3
  76. package/lib/{index-B7vCK49k.js → index-CJ6ix-Ba.js} +1 -1
  77. package/lib/{index-BRxAbtLw.mjs → index-CJoOaE4V.mjs} +4 -4
  78. package/lib/{index-ByrxHjjX.mjs → index-C_dsyQjC.mjs} +1 -1
  79. package/lib/{index-v3wQXRCS.mjs → index-CdOqWihR.mjs} +4 -4
  80. package/lib/{index-lvBUAOOb.mjs → index-Cuu-xM0U.mjs} +5 -5
  81. package/lib/{index-vqUqbyTO.js → index-D1iGkVve.js} +1 -1
  82. package/lib/{index-BbhVOL8z.mjs → index-D527cJNU.mjs} +2 -2
  83. package/lib/{index-weOIpRUj.mjs → index-DQjqwKVk.mjs} +2 -2
  84. package/lib/{index-BWwLAsAv.js → index-Ds-8m9FJ.js} +1 -1
  85. package/lib/{index-B17gCPnx.mjs → index-DwNe7jw9.mjs} +4 -4
  86. package/lib/index-DyolZrtw.js +355 -0
  87. package/lib/{index-BnTn8Ra7.mjs → index-N9ZubIRF.mjs} +5 -5
  88. package/lib/{index-AcRpa_1A.js → index-OfCAPJfY.js} +1 -1
  89. package/lib/{index-XlKQRRY9.mjs → index-XFRw6zfV.mjs} +2 -2
  90. package/lib/{index-D65KCvoe.mjs → index-oV6GYK1F.mjs} +5 -5
  91. package/lib/{index-CFCr59i-.mjs → index-p5ykk6bd.mjs} +6 -6
  92. package/lib/{index-DqluC-QK.mjs → index-pjyIirVB.mjs} +2 -2
  93. package/lib/{index-B5e-iwF_.mjs → index-y9KziNii.mjs} +5 -5
  94. package/lib/{index.es-DnSeZgSJ.js → index.es-BqwtNmK3.js} +1 -1
  95. package/lib/{index.es-CdFzFJtS.mjs → index.es-CJSS5-PQ.mjs} +7 -7
  96. package/lib/index.js +1 -1
  97. package/lib/index.mjs +1 -1
  98. package/lib/mayan.mjs +10 -10
  99. package/lib/{mint-BHIE4XFB.mjs → mint-BjwZUbPm.mjs} +2 -2
  100. package/lib/ntt.mjs +10 -10
  101. package/lib/{platform-BsNmwXAy.mjs → platform-C-edrCmf.mjs} +4 -4
  102. package/lib/{platform-DOga68Bc.mjs → platform-pi9E7cPR.mjs} +4 -4
  103. package/lib/{provider-jsonrpc-BtYTlWkE.mjs → provider-jsonrpc-BjcoR80W.mjs} +2 -2
  104. package/lib/{sha3-CZwWmC3Q.mjs → sha3-B1KxiAa7.mjs} +1 -1
  105. package/lib/{signer-B1DCc2KI.mjs → signer-CgLO7fBA.mjs} +2 -2
  106. package/lib/{solana-Br8elCCP.mjs → solana-DEc3dpb3.mjs} +6 -6
  107. package/lib/{solana-C8zlP6_h.js → solana-RUZ7vSZb.js} +1 -1
  108. package/lib/solana-qHqB-cdc.mjs +18 -0
  109. package/lib/{solanaEmbed.esm-Caj_Jj25.js → solanaEmbed.esm-BF_4DBII.js} +1 -1
  110. package/lib/{solanaEmbed.esm-BF9ZsaBv.mjs → solanaEmbed.esm-y9UuVJCt.mjs} +3 -3
  111. package/lib/src/config/tokens.d.ts +1 -2
  112. package/lib/src/config/tokens.d.ts.map +1 -1
  113. package/lib/{sui-BSf2eNzs.js → sui-3nmolqRQ.js} +1 -1
  114. package/lib/{sui-BbWdjR65.mjs → sui-BDhyN78F.mjs} +3 -3
  115. package/lib/{sui-CCb2n4c-.mjs → sui-CuwmPzXZ.mjs} +8 -8
  116. package/lib/{tokens-Bn_yP9Gg.js → tokens-BKAVin7G.js} +1 -1
  117. package/lib/{tokens-BZX5r0x9.mjs → tokens-DKyJNITj.mjs} +4 -4
  118. package/lib/{units-B-syE-VK.mjs → units-YO78Cq5F.mjs} +2 -2
  119. package/lib/{unsignedTransaction-CO7Y1iWp.mjs → unsignedTransaction-Cj476rGh.mjs} +3 -3
  120. package/lib/{web3-CC6BgYUE.mjs → web3--AtxvLIy.mjs} +1 -1
  121. package/package.json +1 -1
  122. package/dist/assets/solana-D-RpLbqD.js +0 -2
  123. package/dist/assets/solanaEmbed.esm-BkAurkzW.js +0 -37
  124. package/lib/index-jd5KnKOn.js +0 -355
  125. package/lib/solana-Dz4VHyCV.mjs +0 -18
@@ -1 +1 @@
1
- var V=Object.defineProperty;var _=(p,e,t)=>e in p?V(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t;var u=(p,e,t)=>_(p,typeof e!="symbol"?e+"":e,t);import{I as D,C as T}from"./contract-CiHLuMan.js";import{ai as b,aQ as I,c4 as S,J as B,ag as r,af as z,ak as F,c5 as f,bG as h,c6 as H,c7 as l,c8 as M,c9 as j,a3 as J,ca as Y,cb as K,ad as X}from"../main.js";import{E as Z,a as tt}from"./index-C1DsDrDL.js";import{EvmTokenBridge as et}from"./index-DCq08Jxr.js";import{E as y}from"./evm-Dxzjrop9.js";import{r as nt}from"./chain-CxM3TvYC.js";import"./create-CPwTP7kz.js";import"./provider-jsonrpc-B1nSkRdE.js";const v=new D(["function start((bytes32,address,address,address,address,address,uint256,uint256,uint256,uint256)) returns (address,uint16,uint64)","function receiveMessageAndSwap(bytes)"]),ot=new D(["function quoteExactInputSingle((address,address,uint256,uint24,uint160)) public view returns (uint256,uint160,uint32,uint256)"]),rt="https://gfx.relayers.xlabs.xyz/api/v1/swap/quote";class st{static async quoteRelayer(e,t,o){var i;if(b(t)||b(o))throw new Error("how did you get here tho?");const n=I.encode(t.toUniversalAddress().toUint8Array(),!1),s=I.encode(o.toUniversalAddress().toUint8Array(),!1),a={targetChain:S(e),sourceToken:n,targetToken:s};try{const c=await B.post(rt,a);return BigInt(c.data.fee)}catch(c){throw B.isAxiosError(c)?new Error(`Error getting relayer fee: ${(i=c.response)==null?void 0:i.statusText}`):c}}}const m=100,x={ETH:[r.tokenId("Arbitrum","native"),r.tokenId("Base","native"),r.tokenId("Ethereum","native"),r.tokenId("Optimism","native")],WETH:[r.tokenId("Arbitrum","0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"),r.tokenId("Avalanche","0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB"),r.tokenId("Base","0x4200000000000000000000000000000000000006"),r.tokenId("Bsc","0x2170Ed0880ac9A755fd29B2688956BD959F933F8"),r.tokenId("Ethereum","0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"),r.tokenId("Optimism","0x4200000000000000000000000000000000000006"),r.tokenId("Polygon","0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619")],wstETH:[r.tokenId("Arbitrum","0x5979D7b546E38E414F7E9822514be443A4800529"),r.tokenId("Base","0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452"),r.tokenId("Ethereum","0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"),r.tokenId("Optimism","0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb"),r.tokenId("Polygon","0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD")],USDT:[r.tokenId("Arbitrum","0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"),r.tokenId("Avalanche","0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7"),r.tokenId("Base","0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"),r.tokenId("Bsc","0x55d398326f99059fF775485246999027B3197955"),r.tokenId("Ethereum","0xdAC17F958D2ee523a2206206994597C13D831ec7"),r.tokenId("Optimism","0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"),r.tokenId("Polygon","0xc2132D05D31c914a87C6611C10748AEb04B58e8F"),r.tokenId("Celo","0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e")]};class A{constructor(e,t,o,n){u(this,"network");u(this,"chain");u(this,"provider");u(this,"contracts");u(this,"chainId");u(this,"core");u(this,"tokenBridge");if(this.network=e,this.chain=t,this.provider=o,this.contracts=n,!n.portico)throw new Error("Unsupported chain, no contract addresses for: "+t);this.core=new Z(e,t,o,n),this.tokenBridge=new et(e,t,o,n),this.chainId=z.get(e,t)}static async fromRpc(e,t){const[o,n]=await y.chainFromRpc(e),s=t[n];if(s.network!==o)throw new Error(`Network mismatch: ${s.network} != ${o}`);return new A(o,n,e,s.contracts)}async*transfer(e,t,o,n,s,d,a){const{minAmountStart:i,minAmountFinish:c}=a.swapAmounts;if(i===0n)throw new Error("Invalid min swap amount");if(c===0n)throw new Error("Invalid min swap amount");const w=new F(e).toString(),[k,E]=f(this.network,this.chain,o),[U,P]=f(this.network,t.chain,s),g=h(E),q=h(await this.getTransferrableToken(g)),R=h(t),N=h(P),O=new Date().valueOf()%2**4,Q=H.serializeFlagSet({flags:{shouldWrapNative:k,shouldUnwrapNative:U},recipientChain:S(t.chain),bridgeNonce:O,feeTierStart:m,feeTierFinish:m,padding:new Uint8Array(19)}),$=v.encodeFunctionData("start",[[Q,g.toLowerCase(),q,N.toLowerCase(),R,d,n.toString(),i.toString(),c.toString(),a.relayerFee.toString()]]),W=this.getTokenGroup(E.address.toString()),C=this.getPorticoAddress(W);k||(yield*this.approve(g,w,n,C));const G=await this.core.getMessageFee(),L={to:C,data:$,value:G+(k?n:0n)};yield this.createUnsignedTransaction(l(L,w),"PorticoBridge.Transfer")}async*redeem(e,t){const o=M(t.payload.payload.flagSet.recipientChain),n=t.payload.payload.finalTokenAddress.toNative(o).toString(),s=this.getTokenGroup(n),d=this.getPorticoAddress(s),i=await new T(d,v.fragments,this.provider).getFunction("receiveMessageAndSwap").populateTransaction(j(t)),c=new F(e).toString();yield this.createUnsignedTransaction(l(i,c),"PorticoBridge.Redeem")}async isTransferCompleted(e){return await this.tokenBridge.tokenBridge.isTransferCompleted(J(e.hash))}async quoteSwap(e,t,o,n){const[,s]=f(this.network,this.chain,e),[,d]=f(this.network,this.chain,t),a=h(s),i=h(d);if(Y(a,i))return n;const c=this.getQuoterAddress(o);return(await new T(c,ot.fragments,this.provider).getFunction("quoteExactInputSingle").staticCall([a,i,n,m,0]))[0]}async quoteRelay(e,t){return await st.quoteRelayer(this.chain,e,t)}async getTransferrableToken(e){const t=r.tokenId(this.chain,e),[,o]=f(this.network,this.chain,t);if(this.chain==="Ethereum")return o;const n=Object.values(x).find(a=>a.find(i=>i.chain===this.chain&&h(i)===h(o)));if(!n)throw new Error(`No token group found for ${e} on ${this.chain}`);const s=n.find(a=>a.chain==="Ethereum");if(!s)throw new Error(`No Ethereum origin token found for ${e} on ${this.chain}`);const d=await this.tokenBridge.getWrappedAsset(s);return r.tokenId(this.chain,d.toString())}supportedTokens(){const e=[];for(const[t,o]of Object.entries(x))for(const n of o)n.chain===this.chain&&e.push({group:t,token:n});return e}getTokenGroup(e){const o=this.supportedTokens().find(n=>h(n.token)===e);if(!o)throw new Error("Token not found");return o.group}async*approve(e,t,o,n){const s=y.getTokenImplementation(this.provider,e);if(await s.allowance(t,n)<o){const a=await s.approve.populateTransaction(n,o);yield this.createUnsignedTransaction(l(a,t),"PorticoBridge.Approve")}}createUnsignedTransaction(e,t){return new tt(K(e,this.chainId),this.network,this.chain,t,!1)}getPorticoAddress(e){const t=this.contracts.portico;return e==="USDT"&&t.porticoPancakeSwap||t.porticoUniswap}getQuoterAddress(e){const t=this.contracts.portico;return e==="USDT"&&t.pancakeSwapQuoterV2||t.uniswapQuoterV2}}nt(X,"PorticoBridge",A);export{A as EvmPorticoBridge};
1
+ var V=Object.defineProperty;var _=(p,e,t)=>e in p?V(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t;var u=(p,e,t)=>_(p,typeof e!="symbol"?e+"":e,t);import{I as D,C as T}from"./contract-CiHLuMan.js";import{ai as I,aQ as b,c3 as S,J as B,ag as r,af as z,ak as F,c4 as f,bG as h,c5 as H,c6 as l,c7 as M,c8 as j,a3 as J,c9 as Y,ca as K,ad as X}from"../main.js";import{E as Z,a as tt}from"./index-DbuCffZl.js";import{EvmTokenBridge as et}from"./index-DanTVZ2H.js";import{E as y}from"./evm-yUSNrxzF.js";import{r as nt}from"./chain-CxM3TvYC.js";import"./create-BrCILL-b.js";import"./provider-jsonrpc-B1nSkRdE.js";const v=new D(["function start((bytes32,address,address,address,address,address,uint256,uint256,uint256,uint256)) returns (address,uint16,uint64)","function receiveMessageAndSwap(bytes)"]),ot=new D(["function quoteExactInputSingle((address,address,uint256,uint24,uint160)) public view returns (uint256,uint160,uint32,uint256)"]),rt="https://gfx.relayers.xlabs.xyz/api/v1/swap/quote";class st{static async quoteRelayer(e,t,o){var i;if(I(t)||I(o))throw new Error("how did you get here tho?");const n=b.encode(t.toUniversalAddress().toUint8Array(),!1),s=b.encode(o.toUniversalAddress().toUint8Array(),!1),a={targetChain:S(e),sourceToken:n,targetToken:s};try{const c=await B.post(rt,a);return BigInt(c.data.fee)}catch(c){throw B.isAxiosError(c)?new Error(`Error getting relayer fee: ${(i=c.response)==null?void 0:i.statusText}`):c}}}const m=100,x={ETH:[r.tokenId("Arbitrum","native"),r.tokenId("Base","native"),r.tokenId("Ethereum","native"),r.tokenId("Optimism","native")],WETH:[r.tokenId("Arbitrum","0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"),r.tokenId("Avalanche","0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB"),r.tokenId("Base","0x4200000000000000000000000000000000000006"),r.tokenId("Bsc","0x2170Ed0880ac9A755fd29B2688956BD959F933F8"),r.tokenId("Ethereum","0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"),r.tokenId("Optimism","0x4200000000000000000000000000000000000006"),r.tokenId("Polygon","0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619")],wstETH:[r.tokenId("Arbitrum","0x5979D7b546E38E414F7E9822514be443A4800529"),r.tokenId("Base","0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452"),r.tokenId("Ethereum","0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"),r.tokenId("Optimism","0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb"),r.tokenId("Polygon","0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD")],USDT:[r.tokenId("Arbitrum","0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"),r.tokenId("Avalanche","0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7"),r.tokenId("Base","0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"),r.tokenId("Bsc","0x55d398326f99059fF775485246999027B3197955"),r.tokenId("Ethereum","0xdAC17F958D2ee523a2206206994597C13D831ec7"),r.tokenId("Optimism","0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"),r.tokenId("Polygon","0xc2132D05D31c914a87C6611C10748AEb04B58e8F"),r.tokenId("Celo","0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e")]};class A{constructor(e,t,o,n){u(this,"network");u(this,"chain");u(this,"provider");u(this,"contracts");u(this,"chainId");u(this,"core");u(this,"tokenBridge");if(this.network=e,this.chain=t,this.provider=o,this.contracts=n,!n.portico)throw new Error("Unsupported chain, no contract addresses for: "+t);this.core=new Z(e,t,o,n),this.tokenBridge=new et(e,t,o,n),this.chainId=z.get(e,t)}static async fromRpc(e,t){const[o,n]=await y.chainFromRpc(e),s=t[n];if(s.network!==o)throw new Error(`Network mismatch: ${s.network} != ${o}`);return new A(o,n,e,s.contracts)}async*transfer(e,t,o,n,s,d,a){const{minAmountStart:i,minAmountFinish:c}=a.swapAmounts;if(i===0n)throw new Error("Invalid min swap amount");if(c===0n)throw new Error("Invalid min swap amount");const w=new F(e).toString(),[k,E]=f(this.network,this.chain,o),[U,P]=f(this.network,t.chain,s),g=h(E),q=h(await this.getTransferrableToken(g)),R=h(t),N=h(P),O=new Date().valueOf()%2**4,Q=H.serializeFlagSet({flags:{shouldWrapNative:k,shouldUnwrapNative:U},recipientChain:S(t.chain),bridgeNonce:O,feeTierStart:m,feeTierFinish:m,padding:new Uint8Array(19)}),$=v.encodeFunctionData("start",[[Q,g.toLowerCase(),q,N.toLowerCase(),R,d,n.toString(),i.toString(),c.toString(),a.relayerFee.toString()]]),W=this.getTokenGroup(E.address.toString()),C=this.getPorticoAddress(W);k||(yield*this.approve(g,w,n,C));const G=await this.core.getMessageFee(),L={to:C,data:$,value:G+(k?n:0n)};yield this.createUnsignedTransaction(l(L,w),"PorticoBridge.Transfer")}async*redeem(e,t){const o=M(t.payload.payload.flagSet.recipientChain),n=t.payload.payload.finalTokenAddress.toNative(o).toString(),s=this.getTokenGroup(n),d=this.getPorticoAddress(s),i=await new T(d,v.fragments,this.provider).getFunction("receiveMessageAndSwap").populateTransaction(j(t)),c=new F(e).toString();yield this.createUnsignedTransaction(l(i,c),"PorticoBridge.Redeem")}async isTransferCompleted(e){return await this.tokenBridge.tokenBridge.isTransferCompleted(J(e.hash))}async quoteSwap(e,t,o,n){const[,s]=f(this.network,this.chain,e),[,d]=f(this.network,this.chain,t),a=h(s),i=h(d);if(Y(a,i))return n;const c=this.getQuoterAddress(o);return(await new T(c,ot.fragments,this.provider).getFunction("quoteExactInputSingle").staticCall([a,i,n,m,0]))[0]}async quoteRelay(e,t){return await st.quoteRelayer(this.chain,e,t)}async getTransferrableToken(e){const t=r.tokenId(this.chain,e),[,o]=f(this.network,this.chain,t);if(this.chain==="Ethereum")return o;const n=Object.values(x).find(a=>a.find(i=>i.chain===this.chain&&h(i)===h(o)));if(!n)throw new Error(`No token group found for ${e} on ${this.chain}`);const s=n.find(a=>a.chain==="Ethereum");if(!s)throw new Error(`No Ethereum origin token found for ${e} on ${this.chain}`);const d=await this.tokenBridge.getWrappedAsset(s);return r.tokenId(this.chain,d.toString())}supportedTokens(){const e=[];for(const[t,o]of Object.entries(x))for(const n of o)n.chain===this.chain&&e.push({group:t,token:n});return e}getTokenGroup(e){const o=this.supportedTokens().find(n=>h(n.token)===e);if(!o)throw new Error("Token not found");return o.group}async*approve(e,t,o,n){const s=y.getTokenImplementation(this.provider,e);if(await s.allowance(t,n)<o){const a=await s.approve.populateTransaction(n,o);yield this.createUnsignedTransaction(l(a,t),"PorticoBridge.Approve")}}createUnsignedTransaction(e,t){return new tt(K(e,this.chainId),this.network,this.chain,t,!1)}getPorticoAddress(e){const t=this.contracts.portico;return e==="USDT"&&t.porticoPancakeSwap||t.porticoUniswap}getQuoterAddress(e){const t=this.contracts.portico;return e==="USDT"&&t.pancakeSwapQuoterV2||t.uniswapQuoterV2}}nt(X,"PorticoBridge",A);export{A as EvmPorticoBridge};