@wormhole-foundation/wormhole-connect 2.5.0-beta.0-development → 2.5.0-beta.2-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 (133) hide show
  1. package/dist/assets/{aptos-t5JANz4b.js → aptos-BGyyK8mz.js} +3 -3
  2. package/dist/assets/{aptos-DvAOSqnD.js → aptos-Cepohe0c.js} +1 -1
  3. package/dist/assets/{blake2b-CzqSqyTv.js → blake2b-BwI-z5NJ.js} +1 -1
  4. package/dist/assets/{ccip-4EBcfi6P.js → ccip-BpjdU5zN.js} +1 -1
  5. package/dist/assets/{chunk-IMTC3J2M-Cms0K4gx.js → chunk-IMTC3J2M-CWE1FuDc.js} +1 -1
  6. package/dist/assets/events-6PekJgMN.js +1 -0
  7. package/dist/assets/{evm-8e-eySdo.js → evm-DS7RCBlt.js} +2 -2
  8. package/dist/assets/{evm-CYjbe4kH.js → evm-DvDOQf0K.js} +4 -4
  9. package/dist/assets/{index-M2j4uONF.js → index-5kmPKAJ_.js} +1 -1
  10. package/dist/assets/{index-DALVDBZq.js → index-BP8gdgNH.js} +1 -1
  11. package/dist/assets/{index-BgVVAYar.js → index-BXRb91Mn.js} +1 -1
  12. package/dist/assets/{index-SO_H3W5I.js → index-Bbr14gKC.js} +1 -1
  13. package/dist/assets/index-BjVbgKwL.js +1 -0
  14. package/dist/assets/{index-JtvUouOr.js → index-BwPu1wGj.js} +1 -1
  15. package/dist/assets/{index-CwGBYrGm.js → index-BxXKtU8j.js} +1 -1
  16. package/dist/assets/{index-BKj7Inys.js → index-BzNSt2uL.js} +1 -1
  17. package/dist/assets/{index-CSHmWPOV.js → index-C1f05Vbe.js} +1 -1
  18. package/dist/assets/{index-BcX-2q-J.js → index-C74fy0qh.js} +1 -1
  19. package/dist/assets/{index-Dl17aI3S.js → index-CCOom38X.js} +1 -1
  20. package/dist/assets/{index-C0rvraea.js → index-CHnF49kB.js} +1 -1
  21. package/dist/assets/{index-DmaqQuhH.js → index-CyxmcHOs.js} +1 -1
  22. package/dist/assets/{index-Chd_bwGM.js → index-D1MoRUWm.js} +1 -1
  23. package/dist/assets/{index-CqA1lXp5.js → index-D54DXHBu.js} +1 -1
  24. package/dist/assets/index-D8nnAO88.js +1 -0
  25. package/dist/assets/index-DpMc0uqY.js +1 -0
  26. package/dist/assets/{index-Ced_GF9G.js → index-FNyibGfB.js} +2 -2
  27. package/dist/assets/{index-D9U4BOHM.js → index-X7Qc-hll.js} +1 -1
  28. package/dist/assets/{index-CcMXeWAX.js → index-YqzS8F8M.js} +2 -2
  29. package/dist/assets/{index.es-Bzsluoyw.js → index.es-B2WvD5Rz.js} +6 -6
  30. package/dist/assets/{solana-BHeUantu.js → solana-Dj3oh4lV.js} +2 -2
  31. package/dist/assets/solana-DseaNtL0.js +2 -0
  32. package/dist/assets/solanaEmbed.esm-xl7iC7nm.js +37 -0
  33. package/dist/assets/sui-BdOrw1dc.js +2 -0
  34. package/dist/assets/{sui-CLrvrAHM.js → sui-Ck-FZzH_.js} +1 -1
  35. package/dist/assets/unsignedTransaction-arVvzoJx.js +1 -0
  36. package/dist/main.js +102 -102
  37. package/dist/src/AppRouter.d.ts.map +1 -1
  38. package/dist/src/utils/coingecko.d.ts.map +1 -1
  39. package/lib/{aptos-By3qLiAP.js → aptos-BHFBFxf9.js} +1 -1
  40. package/lib/{aptos-C3Ph4uY9.mjs → aptos-BusONhYq.mjs} +5 -5
  41. package/lib/{aptos-Cs46Nns5.mjs → aptos-DS0eK_De.mjs} +2 -2
  42. package/lib/{aptos-D7X5GMcO.js → aptos-Dqp93_ct.js} +2 -2
  43. package/lib/{base64-B-n8C-1n.js → base64-Cjk6rii_.js} +1 -1
  44. package/lib/{base64-DxqKuhqD.mjs → base64-Vgzj53Io.mjs} +1 -1
  45. package/lib/{ccip-BoG9ZHRV.js → ccip-BLUli_Dz.js} +1 -1
  46. package/lib/{ccip-DgwbitdX.mjs → ccip-FbY2UZlg.mjs} +1 -1
  47. package/lib/{chunk-IMTC3J2M-DfLEkM5Z.js → chunk-IMTC3J2M-6yduhw0s.js} +1 -1
  48. package/lib/{chunk-IMTC3J2M-w136PyXJ.mjs → chunk-IMTC3J2M-AkEA0_z6.mjs} +3 -3
  49. package/lib/{evm-Bta1KBsb.js → evm-BB0d_Gf4.js} +2 -2
  50. package/lib/{evm--NPB9x1d.mjs → evm-DAHEa0cY.mjs} +5 -5
  51. package/lib/{evm-BwXOj4Er.js → evm-DZww7tTt.js} +3 -3
  52. package/lib/{evm-OXQXmbRf.mjs → evm-gEzFFEsO.mjs} +6 -6
  53. package/lib/{index-C2jvFfvC.js → index-6m6Q8Vsa.js} +1 -1
  54. package/lib/{index-0m16n7L7.js → index-8STuBnQE.js} +1 -1
  55. package/lib/{index-hFtbBndd.js → index-B5i1j7Dy.js} +1 -1
  56. package/lib/{index-CoEGiDGu.js → index-BZh72NtL.js} +1 -1
  57. package/lib/{index-C86P0A0Y.mjs → index-BaMrMiTv.mjs} +1 -1
  58. package/lib/{index-BEHglvs0.js → index-BbxXJYWg.js} +1 -1
  59. package/lib/{index-ByicGRKs.mjs → index-Bcl7n3KD.mjs} +2 -2
  60. package/lib/{index-Bi6PAFR8.mjs → index-BeYO1LV3.mjs} +2 -2
  61. package/lib/{index-wsfzS6PN.js → index-Bhgci81L.js} +120 -120
  62. package/lib/{index-CWffCIQl.js → index-BuPKwE_4.js} +1 -1
  63. package/lib/{index-C5tynAhb.mjs → index-C27ZY3oS.mjs} +1 -1
  64. package/lib/{index-bDliG7yg.mjs → index-C6YOw6gB.mjs} +4 -4
  65. package/lib/{index-1WX3nZoM.mjs → index-CA09NOzo.mjs} +3 -3
  66. package/lib/index-CHaex8L3.mjs +75 -0
  67. package/lib/{index-B5z5oFY1.js → index-CSK3DRpf.js} +1 -1
  68. package/lib/{index-Cslbrg97.js → index-CT45reKG.js} +1 -1
  69. package/lib/{index-PnMJX4OC.mjs → index-CkXJo6xD.mjs} +1 -1
  70. package/lib/{index-FGc8swXY.mjs → index-Cs1dlfzD.mjs} +1 -1
  71. package/lib/{index-CKtZvS3X.mjs → index-CxTd6N-A.mjs} +2 -2
  72. package/lib/{index-CGbtcED2.mjs → index-D9hjnIst.mjs} +2 -2
  73. package/lib/{index-CksJcNrV.mjs → index-DDZaEBsC.mjs} +3 -3
  74. package/lib/{index-CDwpyfnd.mjs → index-DR-fv3uE.mjs} +2 -2
  75. package/lib/{index-BGqNMVpQ.js → index-DUC1gOTG.js} +1 -1
  76. package/lib/{index-Bpx_Rf1J.js → index-DUZnVNwZ.js} +1 -1
  77. package/lib/{index-DLiQpgMj.js → index-DXzXHly-.js} +1 -1
  78. package/lib/{index-MytorfyK.mjs → index-D_PIxJ0d.mjs} +2 -2
  79. package/lib/index-D_XBMeuk.js +1 -0
  80. package/lib/{index-DSejRtdA.js → index-DcYZkDfF.js} +1 -1
  81. package/lib/{index-cyTUScMF.js → index-DhR1_nfh.js} +1 -1
  82. package/lib/index-DhowVYVk.mjs +191 -0
  83. package/lib/{index-BLxoZ8qT.js → index-DlNp9VMO.js} +1 -1
  84. package/lib/{index-zMaT9P4V.mjs → index-DpeIjsSi.mjs} +1 -1
  85. package/lib/{index-B3smMSuW.js → index-Ds5QMWJr.js} +1 -1
  86. package/lib/{index-BXc3l4Br.mjs → index-Ds6Q5qfX.mjs} +2 -2
  87. package/lib/{index-DlW1-aGm.js → index-DtjJKYjA.js} +1 -1
  88. package/lib/{index-ILKgpNXM.js → index-FoZ3qnSm.js} +1 -1
  89. package/lib/{index-CoX_24Ky.mjs → index-GSQqQOXb.mjs} +1 -1
  90. package/lib/{index-m0543tB2.mjs → index-LdDD7AAy.mjs} +20959 -32801
  91. package/lib/index-OqOcvaDE.mjs +654 -0
  92. package/lib/{index-50mhIuON.mjs → index-QCqnETT_.mjs} +2 -2
  93. package/lib/index-j8CdhHvQ.js +1 -0
  94. package/lib/{index-Dt0J9sau.js → index-pWRTEePn.js} +1 -1
  95. package/lib/{index-DPM7TGSv.mjs → index-pg4EQbm-.mjs} +11 -2
  96. package/lib/index-s9pQs8eO.js +1 -0
  97. package/lib/{index-CANn2DFq.mjs → index-tI4rmxN8.mjs} +1 -1
  98. package/lib/{index-NTAse-vE.js → index-u05I0QmU.js} +1 -1
  99. package/lib/{index.es-DIL345_I.js → index.es-BeAVotPr.js} +2 -2
  100. package/lib/{index.es-Bh1QXm67.mjs → index.es-Z5ZsZIyC.mjs} +5 -5
  101. package/lib/index.js +1 -1
  102. package/lib/index.mjs +19 -19
  103. package/lib/{signer-CeNONJjb.mjs → signer-B0f07_6U.mjs} +1 -1
  104. package/lib/{signer-Br2-fgMa.js → signer-yr6Zpc2i.js} +1 -1
  105. package/lib/{solana-C5lAA_Eh.mjs → solana-C-LeRjT-.mjs} +4 -4
  106. package/lib/solana-Ci7N1M7R.js +1 -0
  107. package/lib/solana-DCefclYK.mjs +17 -0
  108. package/lib/{solana-Bwwk-8HE.js → solana-DWYDxAWP.js} +1 -1
  109. package/lib/{solanaEmbed.esm-_NPc8tZC.mjs → solanaEmbed.esm-CEtmCHNm.mjs} +1 -1
  110. package/lib/{solanaEmbed.esm-BMTrlSVI.js → solanaEmbed.esm-D5pFIuXZ.js} +1 -1
  111. package/lib/src/AppRouter.d.ts.map +1 -1
  112. package/lib/src/utils/coingecko.d.ts.map +1 -1
  113. package/lib/sui-756LVCZm.js +1 -0
  114. package/lib/{sui-zLYQBpSC.js → sui-BIUo4whG.js} +1 -1
  115. package/lib/sui-BuI3_sI0.mjs +585 -0
  116. package/lib/{sui-X62i5q3_.mjs → sui-naAV3r83.mjs} +1 -1
  117. package/package.json +17 -17
  118. package/dist/assets/index-BRtMY3at.js +0 -1
  119. package/dist/assets/index-BUlVFUMr.js +0 -1
  120. package/dist/assets/index-RBS_ALc7.js +0 -1
  121. package/dist/assets/solana-BEFCVrXa.js +0 -2
  122. package/dist/assets/solanaEmbed.esm-B7A7qKmk.js +0 -37
  123. package/dist/assets/sui-C1wbtvIC.js +0 -2
  124. package/lib/index-CNkTJOH_.js +0 -1
  125. package/lib/index-DN6dWOSB.js +0 -1
  126. package/lib/index-DUOnxuE_.mjs +0 -252
  127. package/lib/index-DqFY4i5u.js +0 -1
  128. package/lib/index-Eomc9IwB.mjs +0 -936
  129. package/lib/index-fkzogQYE.mjs +0 -376
  130. package/lib/solana-4Qcfxe9o.js +0 -1
  131. package/lib/solana-DM9nG3cQ.mjs +0 -17
  132. package/lib/sui-BvJu9wTN.mjs +0 -701
  133. package/lib/sui-pGBefbTJ.js +0 -1
@@ -1,7 +1,7 @@
1
1
  var J = Object.defineProperty;
2
2
  var Y = (t, e, s) => e in t ? J(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
3
3
  var y = (t, e, s) => Y(t, typeof e != "symbol" ? e + "" : e, s);
4
- import { aM as u, bw as j, bx as I, by as x, bz as ee, bA as ne, bB as se, at as M, c7 as O, c8 as ae, c9 as E, ca as N, cb as B, cc as _, bW as U, aa as te, Y as b, X as ie, bX as D, aQ as T, bV as re, a_ as me, bY as R, cd as oe, bQ as ue, Z as le } from "./index-m0543tB2.mjs";
4
+ import { aM as u, bw as j, bx as I, by as x, bz as ee, bA as ne, bB as se, at as M, c7 as O, c8 as ae, c9 as E, ca as N, cb as B, cc as _, bW as U, aa as te, Y as b, X as ie, bX as D, aQ as T, bV as re, a_ as me, bY as R, cd as oe, bQ as ue, Z as le } from "./index-LdDD7AAy.mjs";
5
5
  const h = new u("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");
6
6
  new u("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");
7
7
  const A = new u("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");
@@ -3369,5 +3369,14 @@ const V = {
3369
3369
  };
3370
3370
  export {
3371
3371
  w as SolanaCircleBridge,
3372
- V as idl
3372
+ z as calculateFirstNonce,
3373
+ ke as createDepositForBurnInstruction,
3374
+ L as createMessageTransmitterProgramInterface,
3375
+ Se as createReadOnlyMessageTransmitterProgramInterface,
3376
+ Me as createReadOnlyTokenMessengerProgramInterface,
3377
+ he as createReceiveMessageInstruction,
3378
+ W as createTokenMessengerProgramInterface,
3379
+ o as findProgramAddress,
3380
+ V as idl,
3381
+ F as nonceAccount
3373
3382
  };
@@ -0,0 +1 @@
1
+ "use strict";var h=Object.defineProperty;var m=(a,e,r)=>e in a?h(a,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[e]=r;var o=(a,e,r)=>m(a,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./index-Bhgci81L.js");class d{constructor(e,r,t,n){o(this,"network");o(this,"chain");o(this,"provider");o(this,"contracts");o(this,"chainId");o(this,"coreBridgePackageId");this.network=e,this.chain=r,this.provider=t,this.contracts=n,this.chainId=c.toChainId(r);const s=n.coreBridge;if(!s)throw new Error(`CoreBridge contract Address for chain ${r} not found`);this.coreBridgePackageId=s}getGuardianSet(e){throw new Error("Method not implemented.")}getMessageFee(){throw new Error("Method not implemented.")}static async fromRpc(e,r){const[t,n]=await c.SuiPlatform.chainFromRpc(e),s=r[n];if(s.network!==t)throw new Error(`Network mismatch: ${s.network} !== ${t}`);return new d(t,n,e,s.contracts)}async*verifyMessage(e,r){throw new Error("Method not implemented.")}async*publishMessage(e,r){throw new Error("Method not implemented.")}async parseTransaction(e){return(await this.parseMessages(e)).map(t=>({emitter:t.emitterAddress,sequence:t.sequence,chain:this.chain}))}async getGuardianSetIndex(){throw new Error("Method not implemented.")}async parseMessages(e){var n;const t=(n=(await this.provider.getTransactionBlock({digest:e,options:{showEvents:!0,showEffects:!0,showInput:!0}})).events)==null?void 0:n.filter(s=>s.type.endsWith("WormholeMessage"));if(!t||t.length==0)throw new Error("WormholeMessage not found");return t.map(s=>{const i=s.parsedJson;return c.createVAA("Uint8Array",{emitterChain:this.chain,emitterAddress:new c.SuiAddress(i.sender).toUniversalAddress(),sequence:BigInt(i.sequence),guardianSet:0,timestamp:Number(i.timestamp),consistencyLevel:i.consistency_level,nonce:i.nonce,signatures:[],payload:new Uint8Array(i.payload)})})}}c.registerProtocol("Sui","WormholeCore",d);exports.SuiWormholeCore=d;
@@ -1,4 +1,4 @@
1
- import { bg as g, bq as L, br as F, bs as k, bt as h, ak as P, al as T } from "./index-m0543tB2.mjs";
1
+ import { bg as g, bq as L, br as F, bs as k, bt as h, ak as P, al as T } from "./index-LdDD7AAy.mjs";
2
2
  function D(n, t, e, s) {
3
3
  L(n);
4
4
  const i = F({ dkLen: 32, asyncTick: 10 }, s), { c: u, dkLen: c, asyncTick: o } = i;
@@ -1 +1 @@
1
- "use strict";var G=Object.defineProperty;var V=(n,i,t)=>i in n?G(n,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[i]=t;var c=(n,i,t)=>V(n,typeof i!="symbol"?i+"":i,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-wsfzS6PN.js"),d=require("./index-BEHglvs0.js"),U={version:"0.1.0",name:"wormhole_gateway",instructions:[{name:"initialize",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!1,isSigner:!1,docs:["TBTC Program's mint PDA address bump is saved in this program's config. Ordinarily, we would","not have to deserialize this account. But we do in this case to make sure the TBTC program","has been initialized before this program."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"mintingLimit",type:"u64"}]},{name:"changeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1}],args:[]},{name:"cancelAuthorityChange",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[]},{name:"takeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"pendingAuthority",isMut:!1,isSigner:!0}],args:[]},{name:"updateGatewayAddress",accounts:[{name:"custodian",isMut:!1,isSigner:!1},{name:"gatewayInfo",isMut:!0,isSigner:!1},{name:"authority",isMut:!0,isSigner:!0},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateGatewayAddressArgs"}}]},{name:"updateMintingLimit",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[{name:"newLimit",type:"u64"}]},{name:"receiveTbtc",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"postedVaa",isMut:!1,isSigner:!1},{name:"tokenBridgeClaim",isMut:!0,isSigner:!1,docs:["transfer. By checking whether this account exists is a short-circuit way of bailing out","early if this transfer has already been redeemed (as opposed to letting the Token Bridge","instruction fail)."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1,docs:["Token account for minted tBTC.","","NOTE: Because the recipient is encoded in the transfer message payload, we can check the","authority from the deserialized VAA. But we should still check whether the authority is the","zero address in access control."]},{name:"recipient",isMut:!1,isSigner:!1,docs:["be created for him."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1,docs:["The gateway will create an associated token account for the recipient if it doesn't exist.","","NOTE: When the minting limit increases, the recipient can use this token account to mint","tBTC using the deposit_wormhole_tbtc instruction."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeRegisteredEmitter",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeMintAuthority",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"messageHash",type:{array:["u8",32]}}]},{name:"sendTbtcGateway",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"gatewayInfo",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcGatewayArgs"}}]},{name:"sendTbtcWrapped",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcWrappedArgs"}}]},{name:"depositWormholeTbtc",accounts:[{name:"custodian",isMut:!0,isSigner:!1,docs:["NOTE: This account also acts as a minter for the TBTC program."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["This token account is owned by this program, whose mint is the wrapped TBTC mint. This PDA","address is stored in the custodian account."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the TBTC program. This PDA address is stored in the custodian account."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1},{name:"recipient",isMut:!1,isSigner:!0,docs:["This program requires that the owner of the TBTC token account sign for TBTC being minted","into his account."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]}],accounts:[{name:"custodian",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"authority",type:"publicKey"},{name:"pendingAuthority",type:{option:"publicKey"}},{name:"tbtcMint",type:"publicKey"},{name:"wrappedTbtcMint",type:"publicKey"},{name:"wrappedTbtcToken",type:"publicKey"},{name:"tokenBridgeSender",type:"publicKey"},{name:"tokenBridgeSenderBump",type:"u8"},{name:"mintingLimit",type:"u64"},{name:"mintedAmount",type:"u64"}]}},{name:"GatewayInfo",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}}],types:[{name:"UpdateGatewayAddressArgs",type:{kind:"struct",fields:[{name:"chain",type:"u16"},{name:"address",type:{array:["u8",32]}}]}},{name:"SendTbtcGatewayArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"nonce",type:"u32"}]}},{name:"SendTbtcWrappedArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"arbiterFee",type:"u64"},{name:"nonce",type:"u32"}]}}],events:[{name:"WormholeTbtcReceived",fields:[{name:"receiver",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"WormholeTbtcSent",fields:[{name:"amount",type:"u64",index:!1},{name:"recipientChain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1},{name:"recipient",type:{array:["u8",32]},index:!1},{name:"arbiterFee",type:"u64",index:!1},{name:"nonce",type:"u32",index:!1}]},{name:"WormholeTbtcDeposited",fields:[{name:"depositor",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"GatewayAddressUpdated",fields:[{name:"chain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1}]},{name:"MintingLimitUpdated",fields:[{name:"mintingLimit",type:"u64",index:!1}]}],errors:[{code:6016,name:"MintingLimitExceeded",msg:"Cannot mint more than the minting limit"},{code:6032,name:"IsNotAuthority",msg:"Only custodian authority is permitted for this action"},{code:6034,name:"IsNotPendingAuthority",msg:"Not valid pending authority to take authority"},{code:6036,name:"NoPendingAuthorityChange",msg:"No pending authority"},{code:6048,name:"ZeroRecipient",msg:"0x0 recipient not allowed"},{code:6064,name:"NotEnoughWrappedTbtc",msg:"Not enough wormhole tBTC in the gateway to bridge"},{code:6080,name:"ZeroAmount",msg:"Amount must not be 0"},{code:6112,name:"TransferAlreadyRedeemed",msg:"Token Bridge transfer already redeemed"},{code:6128,name:"InvalidEthereumTbtc",msg:"Token chain and address do not match Ethereum's tBTC"},{code:6144,name:"NoTbtcTransferred",msg:"No tBTC transferred"},{code:6160,name:"RecipientZeroAddress",msg:"0x0 receiver not allowed"},{code:6176,name:"MintedAmountUnderflow",msg:"Not enough minted by the gateway to satisfy sending tBTC"},{code:6178,name:"MintedAmountOverflow",msg:"Minted amount after deposit exceeds u64"}]};function I(n){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("redeemer")],new e.PublicKey(n))[0]}function q(n,i){const t=e.dist.Buffer.alloc(8);return t.writeBigUInt64LE(i),e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("msg"),t],new e.PublicKey(n))[0]}function L(n,i){const t=e.dist.Buffer.alloc(2);return t.writeUInt16LE(e.toChainId(i)),e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("gateway-info"),t],new e.PublicKey(n))[0]}const T=new e.PublicKey("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function D(){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("config")],T)[0]}function _(n){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("minter-info"),n.toBuffer()],T)[0]}const B=new e.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new e.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const b=new e.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new e.PublicKey("So11111111111111111111111111111111111111112");new e.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class F extends Error{constructor(i){super(i)}}class z extends F{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const Y=e.struct([e.u32$1("mintAuthorityOption"),e.publicKey("mintAuthority"),e.u64("supply"),e.u8("decimals"),e.bool("isInitialized"),e.u32$1("freezeAuthorityOption"),e.publicKey("freezeAuthority")]);Y.span;async function M(n,i,t=!1,a=B,s=b){if(!t&&!e.PublicKey.isOnCurve(i.toBuffer()))throw new z;const[r]=await e.PublicKey.findProgramAddress([i.toBuffer(),a.toBuffer(),n.toBuffer()],s);return r}function $(n,i,t,a,s=B,r=b){return H(n,i,t,a,e.dist.Buffer.alloc(0),s,r)}function H(n,i,t,a,s,r=B,o=b){const u=[{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:e.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1}];return new e.TransactionInstruction({keys:u,programId:o,data:s})}class h{constructor(i,t,a,s){c(this,"network");c(this,"chain");c(this,"connection");c(this,"contracts");c(this,"gateway");c(this,"tokenBridgeId");c(this,"coreBridgeId");if(this.network=i,this.chain=t,this.connection=a,this.contracts=s,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");if(!this.contracts.tokenBridge)throw new Error("TokenBridge contract address is required");if(!this.contracts.coreBridge)throw new Error("CoreBridge contract address is required");this.gateway=new e.Program(U,this.contracts.tbtc,{connection:a}),this.tokenBridgeId=new e.PublicKey(this.contracts.tokenBridge),this.coreBridgeId=new e.PublicKey(this.contracts.coreBridge)}static async fromRpc(i,t){const[a,s]=await e.SolanaPlatform.chainFromRpc(i),r=t[s];if(r.network!==a)throw new Error(`Network mismatch: ${r.network} != ${a}`);return new h(a,s,i,r.contracts)}async*transfer(i,t,a){const s=new e.SolanaAddress(i).unwrap(),r=I(this.gateway.programId),{tbtcMint:o,wrappedTbtcToken:u,wrappedTbtcMint:g}=await this.gateway.account.custodian.fetch(r),p=d.deriveWrappedMetaKey(this.tokenBridgeId,g),m=d.deriveTokenBridgeConfigKey(this.tokenBridgeId),l=d.deriveAuthoritySignerKey(this.tokenBridgeId),A=e.deriveFeeCollectorKey(this.coreBridgeId),{sequence:y}=await e.getProgramSequenceTracker(this.connection,this.tokenBridgeId,this.coreBridgeId),S=q(this.gateway.programId,y),w=e.deriveWormholeBridgeDataKey(this.coreBridgeId),f=e.deriveWormholeEmitterKey(this.tokenBridgeId),k=e.deriveEmitterSequenceKey(f,this.coreBridgeId),K=L(this.gateway.programId,t.chain),E=d.deriveSenderAccountKey(this.gateway.programId),P={amount:new e.bnExports.BN(a.toString()),recipientChain:e.toChainId(t.chain),recipient:[...t.address.toUniversalAddress().toUint8Array()],nonce:0},W=await M(o,s),x=e.tbtc.get(this.network,t.chain),C={custodian:r,wrappedTbtcToken:u,wrappedTbtcMint:g,tbtcMint:o,senderToken:W,sender:s,tokenBridgeConfig:m,tokenBridgeWrappedAsset:p,tokenBridgeTransferAuthority:l,coreBridgeData:w,coreMessage:S,tokenBridgeCoreEmitter:f,coreEmitterSequence:k,coreFeeCollector:A,clock:e.SYSVAR_CLOCK_PUBKEY,rent:e.SYSVAR_RENT_PUBKEY,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId},v=x?await this.gateway.methods.sendTbtcGateway({...P}).accounts({...C,gatewayInfo:K,tokenBridgeSender:E}).instruction():await this.gateway.methods.sendTbtcWrapped({...P,arbiterFee:new e.bnExports.BN(0)}).accounts(C).instruction(),{blockhash:N}=await this.connection.getLatestBlockhash(),O=e.MessageV0.compile({instructions:[v],payerKey:s,recentBlockhash:N}),R=new e.VersionedTransaction(O);yield this.createUnsignedTransaction({transaction:R},"TBTCBridge.Send")}async*redeem(i,t){if(t.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");yield*new e.SolanaWormholeCore(this.network,this.chain,this.connection,this.contracts).postVaa(i,t);const s=[],r=new e.SolanaAddress(i).unwrap(),o=t.payload.payload.recipient.toNative(this.chain).unwrap(),u=I(this.gateway.programId),{tbtcMint:g,wrappedTbtcToken:p,wrappedTbtcMint:m}=await this.gateway.account.custodian.fetch(u),l=await M(g,o);await this.connection.getAccountInfo(l)||s.push($(r,l,o,g));const y=d.deriveWrappedMetaKey(this.tokenBridgeId,m),S=await M(m,o);s.push(await this.gateway.methods.receiveTbtc([...t.hash]).accounts({payer:r,custodian:u,postedVaa:e.derivePostedVaaKey(this.coreBridgeId,e.dist.Buffer.from(t.hash)),tokenBridgeClaim:e.deriveClaimKey(this.tokenBridgeId,t.emitterAddress.toUint8Array(),e.toChainId(t.emitterChain),t.sequence),wrappedTbtcToken:p,wrappedTbtcMint:m,tbtcMint:g,recipientToken:l,recipient:o,recipientWrappedToken:S,tbtcConfig:D(),tbtcMinterInfo:_(u),tokenBridgeConfig:d.deriveTokenBridgeConfigKey(this.tokenBridgeId),tokenBridgeRegisteredEmitter:d.deriveEndpointKey(this.tokenBridgeId,e.toChainId(t.emitterChain),t.emitterAddress.toUint8Array()),tokenBridgeWrappedAsset:y,tokenBridgeMintAuthority:d.deriveMintAuthorityKey(this.tokenBridgeId),rent:e.SYSVAR_RENT_PUBKEY,tbtcProgram:T,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId}).instruction());const{blockhash:w}=await this.connection.getLatestBlockhash(),f=e.MessageV0.compile({instructions:s,payerKey:r,recentBlockhash:w}),k=new e.VersionedTransaction(f);yield this.createUnsignedTransaction({transaction:k},"TBTCBridge.Send")}createUnsignedTransaction(i,t){return new e.SolanaUnsignedTransaction(i,this.network,this.chain,t,!1)}}e.registerProtocol(e._platform$1,"TBTCBridge",h);exports.SolanaTBTCBridge=h;
1
+ "use strict";var G=Object.defineProperty;var V=(n,i,t)=>i in n?G(n,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[i]=t;var c=(n,i,t)=>V(n,typeof i!="symbol"?i+"":i,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-Bhgci81L.js"),d=require("./index-BbxXJYWg.js"),U={version:"0.1.0",name:"wormhole_gateway",instructions:[{name:"initialize",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!1,isSigner:!1,docs:["TBTC Program's mint PDA address bump is saved in this program's config. Ordinarily, we would","not have to deserialize this account. But we do in this case to make sure the TBTC program","has been initialized before this program."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"mintingLimit",type:"u64"}]},{name:"changeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1}],args:[]},{name:"cancelAuthorityChange",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[]},{name:"takeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"pendingAuthority",isMut:!1,isSigner:!0}],args:[]},{name:"updateGatewayAddress",accounts:[{name:"custodian",isMut:!1,isSigner:!1},{name:"gatewayInfo",isMut:!0,isSigner:!1},{name:"authority",isMut:!0,isSigner:!0},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateGatewayAddressArgs"}}]},{name:"updateMintingLimit",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[{name:"newLimit",type:"u64"}]},{name:"receiveTbtc",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"postedVaa",isMut:!1,isSigner:!1},{name:"tokenBridgeClaim",isMut:!0,isSigner:!1,docs:["transfer. By checking whether this account exists is a short-circuit way of bailing out","early if this transfer has already been redeemed (as opposed to letting the Token Bridge","instruction fail)."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1,docs:["Token account for minted tBTC.","","NOTE: Because the recipient is encoded in the transfer message payload, we can check the","authority from the deserialized VAA. But we should still check whether the authority is the","zero address in access control."]},{name:"recipient",isMut:!1,isSigner:!1,docs:["be created for him."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1,docs:["The gateway will create an associated token account for the recipient if it doesn't exist.","","NOTE: When the minting limit increases, the recipient can use this token account to mint","tBTC using the deposit_wormhole_tbtc instruction."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeRegisteredEmitter",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeMintAuthority",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"messageHash",type:{array:["u8",32]}}]},{name:"sendTbtcGateway",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"gatewayInfo",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcGatewayArgs"}}]},{name:"sendTbtcWrapped",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcWrappedArgs"}}]},{name:"depositWormholeTbtc",accounts:[{name:"custodian",isMut:!0,isSigner:!1,docs:["NOTE: This account also acts as a minter for the TBTC program."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["This token account is owned by this program, whose mint is the wrapped TBTC mint. This PDA","address is stored in the custodian account."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the TBTC program. This PDA address is stored in the custodian account."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1},{name:"recipient",isMut:!1,isSigner:!0,docs:["This program requires that the owner of the TBTC token account sign for TBTC being minted","into his account."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]}],accounts:[{name:"custodian",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"authority",type:"publicKey"},{name:"pendingAuthority",type:{option:"publicKey"}},{name:"tbtcMint",type:"publicKey"},{name:"wrappedTbtcMint",type:"publicKey"},{name:"wrappedTbtcToken",type:"publicKey"},{name:"tokenBridgeSender",type:"publicKey"},{name:"tokenBridgeSenderBump",type:"u8"},{name:"mintingLimit",type:"u64"},{name:"mintedAmount",type:"u64"}]}},{name:"GatewayInfo",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}}],types:[{name:"UpdateGatewayAddressArgs",type:{kind:"struct",fields:[{name:"chain",type:"u16"},{name:"address",type:{array:["u8",32]}}]}},{name:"SendTbtcGatewayArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"nonce",type:"u32"}]}},{name:"SendTbtcWrappedArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"arbiterFee",type:"u64"},{name:"nonce",type:"u32"}]}}],events:[{name:"WormholeTbtcReceived",fields:[{name:"receiver",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"WormholeTbtcSent",fields:[{name:"amount",type:"u64",index:!1},{name:"recipientChain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1},{name:"recipient",type:{array:["u8",32]},index:!1},{name:"arbiterFee",type:"u64",index:!1},{name:"nonce",type:"u32",index:!1}]},{name:"WormholeTbtcDeposited",fields:[{name:"depositor",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"GatewayAddressUpdated",fields:[{name:"chain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1}]},{name:"MintingLimitUpdated",fields:[{name:"mintingLimit",type:"u64",index:!1}]}],errors:[{code:6016,name:"MintingLimitExceeded",msg:"Cannot mint more than the minting limit"},{code:6032,name:"IsNotAuthority",msg:"Only custodian authority is permitted for this action"},{code:6034,name:"IsNotPendingAuthority",msg:"Not valid pending authority to take authority"},{code:6036,name:"NoPendingAuthorityChange",msg:"No pending authority"},{code:6048,name:"ZeroRecipient",msg:"0x0 recipient not allowed"},{code:6064,name:"NotEnoughWrappedTbtc",msg:"Not enough wormhole tBTC in the gateway to bridge"},{code:6080,name:"ZeroAmount",msg:"Amount must not be 0"},{code:6112,name:"TransferAlreadyRedeemed",msg:"Token Bridge transfer already redeemed"},{code:6128,name:"InvalidEthereumTbtc",msg:"Token chain and address do not match Ethereum's tBTC"},{code:6144,name:"NoTbtcTransferred",msg:"No tBTC transferred"},{code:6160,name:"RecipientZeroAddress",msg:"0x0 receiver not allowed"},{code:6176,name:"MintedAmountUnderflow",msg:"Not enough minted by the gateway to satisfy sending tBTC"},{code:6178,name:"MintedAmountOverflow",msg:"Minted amount after deposit exceeds u64"}]};function I(n){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("redeemer")],new e.PublicKey(n))[0]}function q(n,i){const t=e.dist.Buffer.alloc(8);return t.writeBigUInt64LE(i),e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("msg"),t],new e.PublicKey(n))[0]}function L(n,i){const t=e.dist.Buffer.alloc(2);return t.writeUInt16LE(e.toChainId(i)),e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("gateway-info"),t],new e.PublicKey(n))[0]}const T=new e.PublicKey("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function D(){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("config")],T)[0]}function _(n){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("minter-info"),n.toBuffer()],T)[0]}const B=new e.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new e.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const b=new e.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new e.PublicKey("So11111111111111111111111111111111111111112");new e.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class F extends Error{constructor(i){super(i)}}class z extends F{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const Y=e.struct([e.u32$1("mintAuthorityOption"),e.publicKey("mintAuthority"),e.u64("supply"),e.u8("decimals"),e.bool("isInitialized"),e.u32$1("freezeAuthorityOption"),e.publicKey("freezeAuthority")]);Y.span;async function M(n,i,t=!1,a=B,s=b){if(!t&&!e.PublicKey.isOnCurve(i.toBuffer()))throw new z;const[r]=await e.PublicKey.findProgramAddress([i.toBuffer(),a.toBuffer(),n.toBuffer()],s);return r}function $(n,i,t,a,s=B,r=b){return H(n,i,t,a,e.dist.Buffer.alloc(0),s,r)}function H(n,i,t,a,s,r=B,o=b){const u=[{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:e.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1}];return new e.TransactionInstruction({keys:u,programId:o,data:s})}class h{constructor(i,t,a,s){c(this,"network");c(this,"chain");c(this,"connection");c(this,"contracts");c(this,"gateway");c(this,"tokenBridgeId");c(this,"coreBridgeId");if(this.network=i,this.chain=t,this.connection=a,this.contracts=s,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");if(!this.contracts.tokenBridge)throw new Error("TokenBridge contract address is required");if(!this.contracts.coreBridge)throw new Error("CoreBridge contract address is required");this.gateway=new e.Program(U,this.contracts.tbtc,{connection:a}),this.tokenBridgeId=new e.PublicKey(this.contracts.tokenBridge),this.coreBridgeId=new e.PublicKey(this.contracts.coreBridge)}static async fromRpc(i,t){const[a,s]=await e.SolanaPlatform.chainFromRpc(i),r=t[s];if(r.network!==a)throw new Error(`Network mismatch: ${r.network} != ${a}`);return new h(a,s,i,r.contracts)}async*transfer(i,t,a){const s=new e.SolanaAddress(i).unwrap(),r=I(this.gateway.programId),{tbtcMint:o,wrappedTbtcToken:u,wrappedTbtcMint:g}=await this.gateway.account.custodian.fetch(r),p=d.deriveWrappedMetaKey(this.tokenBridgeId,g),m=d.deriveTokenBridgeConfigKey(this.tokenBridgeId),l=d.deriveAuthoritySignerKey(this.tokenBridgeId),A=e.deriveFeeCollectorKey(this.coreBridgeId),{sequence:y}=await e.getProgramSequenceTracker(this.connection,this.tokenBridgeId,this.coreBridgeId),S=q(this.gateway.programId,y),w=e.deriveWormholeBridgeDataKey(this.coreBridgeId),f=e.deriveWormholeEmitterKey(this.tokenBridgeId),k=e.deriveEmitterSequenceKey(f,this.coreBridgeId),K=L(this.gateway.programId,t.chain),E=d.deriveSenderAccountKey(this.gateway.programId),P={amount:new e.bnExports.BN(a.toString()),recipientChain:e.toChainId(t.chain),recipient:[...t.address.toUniversalAddress().toUint8Array()],nonce:0},W=await M(o,s),x=e.tbtc.get(this.network,t.chain),C={custodian:r,wrappedTbtcToken:u,wrappedTbtcMint:g,tbtcMint:o,senderToken:W,sender:s,tokenBridgeConfig:m,tokenBridgeWrappedAsset:p,tokenBridgeTransferAuthority:l,coreBridgeData:w,coreMessage:S,tokenBridgeCoreEmitter:f,coreEmitterSequence:k,coreFeeCollector:A,clock:e.SYSVAR_CLOCK_PUBKEY,rent:e.SYSVAR_RENT_PUBKEY,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId},v=x?await this.gateway.methods.sendTbtcGateway({...P}).accounts({...C,gatewayInfo:K,tokenBridgeSender:E}).instruction():await this.gateway.methods.sendTbtcWrapped({...P,arbiterFee:new e.bnExports.BN(0)}).accounts(C).instruction(),{blockhash:N}=await this.connection.getLatestBlockhash(),O=e.MessageV0.compile({instructions:[v],payerKey:s,recentBlockhash:N}),R=new e.VersionedTransaction(O);yield this.createUnsignedTransaction({transaction:R},"TBTCBridge.Send")}async*redeem(i,t){if(t.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");yield*new e.SolanaWormholeCore(this.network,this.chain,this.connection,this.contracts).postVaa(i,t);const s=[],r=new e.SolanaAddress(i).unwrap(),o=t.payload.payload.recipient.toNative(this.chain).unwrap(),u=I(this.gateway.programId),{tbtcMint:g,wrappedTbtcToken:p,wrappedTbtcMint:m}=await this.gateway.account.custodian.fetch(u),l=await M(g,o);await this.connection.getAccountInfo(l)||s.push($(r,l,o,g));const y=d.deriveWrappedMetaKey(this.tokenBridgeId,m),S=await M(m,o);s.push(await this.gateway.methods.receiveTbtc([...t.hash]).accounts({payer:r,custodian:u,postedVaa:e.derivePostedVaaKey(this.coreBridgeId,e.dist.Buffer.from(t.hash)),tokenBridgeClaim:e.deriveClaimKey(this.tokenBridgeId,t.emitterAddress.toUint8Array(),e.toChainId(t.emitterChain),t.sequence),wrappedTbtcToken:p,wrappedTbtcMint:m,tbtcMint:g,recipientToken:l,recipient:o,recipientWrappedToken:S,tbtcConfig:D(),tbtcMinterInfo:_(u),tokenBridgeConfig:d.deriveTokenBridgeConfigKey(this.tokenBridgeId),tokenBridgeRegisteredEmitter:d.deriveEndpointKey(this.tokenBridgeId,e.toChainId(t.emitterChain),t.emitterAddress.toUint8Array()),tokenBridgeWrappedAsset:y,tokenBridgeMintAuthority:d.deriveMintAuthorityKey(this.tokenBridgeId),rent:e.SYSVAR_RENT_PUBKEY,tbtcProgram:T,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId}).instruction());const{blockhash:w}=await this.connection.getLatestBlockhash(),f=e.MessageV0.compile({instructions:s,payerKey:r,recentBlockhash:w}),k=new e.VersionedTransaction(f);yield this.createUnsignedTransaction({transaction:k},"TBTCBridge.Send")}createUnsignedTransaction(i,t){return new e.SolanaUnsignedTransaction(i,this.network,this.chain,t,!1)}}e.registerProtocol(e._platform$1,"TBTCBridge",h);exports.SolanaTBTCBridge=h;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("./index-wsfzS6PN.js"),ze=require("./evm-BwXOj4Er.js"),j=require("./index-0m16n7L7.js"),E=require("./index-DlW1-aGm.js");var ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.getLocalStorage=ne.getLocalStorageOrThrow=ne.getCrypto=ne.getCryptoOrThrow=ne.getLocation=ne.getLocationOrThrow=ne.getNavigator=ne.getNavigatorOrThrow=ne.getDocument=ne.getDocumentOrThrow=ne.getFromWindowOrThrow=ne.getFromWindow=void 0;function sr(a){let t;return typeof window<"u"&&typeof window[a]<"u"&&(t=window[a]),t}ne.getFromWindow=sr;function Cr(a){const t=sr(a);if(!t)throw new Error(`${a} is not defined in Window`);return t}ne.getFromWindowOrThrow=Cr;function tw(){return Cr("document")}ne.getDocumentOrThrow=tw;function rw(){return sr("document")}ne.getDocument=rw;function iw(){return Cr("navigator")}ne.getNavigatorOrThrow=iw;function sw(){return sr("navigator")}ne.getNavigator=sw;function nw(){return Cr("location")}ne.getLocationOrThrow=nw;function ow(){return sr("location")}ne.getLocation=ow;function aw(){return Cr("crypto")}ne.getCryptoOrThrow=aw;function cw(){return sr("crypto")}ne.getCrypto=cw;function uw(){return Cr("localStorage")}ne.getLocalStorageOrThrow=uw;function hw(){return sr("localStorage")}ne.getLocalStorage=hw;var bo={};Object.defineProperty(bo,"__esModule",{value:!0});bo.getWindowMetadata=void 0;const lu=ne;function lw(){let a,t;try{a=lu.getDocumentOrThrow(),t=lu.getLocationOrThrow()}catch{return null}function r(){const O=a.getElementsByTagName("link"),N=[];for(let q=0;q<O.length;q++){const x=O[q],B=x.getAttribute("rel");if(B&&B.toLowerCase().indexOf("icon")>-1){const D=x.getAttribute("href");if(D)if(D.toLowerCase().indexOf("https:")===-1&&D.toLowerCase().indexOf("http:")===-1&&D.indexOf("//")!==0){let Q=t.protocol+"//"+t.host;if(D.indexOf("/")===0)Q+=D;else{const fe=t.pathname.split("/");fe.pop();const Z=fe.join("/");Q+=Z+"/"+D}N.push(Q)}else if(D.indexOf("//")===0){const Q=t.protocol+D;N.push(Q)}else N.push(D)}}return N}function s(...O){const N=a.getElementsByTagName("meta");for(let q=0;q<N.length;q++){const x=N[q],B=["itemprop","property","name"].map(D=>x.getAttribute(D)).filter(D=>D?O.includes(D):!1);if(B.length&&B){const D=x.getAttribute("content");if(D)return D}}return""}function o(){let O=s("name","og:site_name","og:title","twitter:title");return O||(O=a.title),O}function u(){return s("description","og:description","twitter:description","keywords")}const l=o(),g=u(),w=t.origin,b=r();return{description:g,url:w,icons:b,name:l}}bo.getWindowMetadata=lw;function pw(a,t=[]){const r=[];return Object.keys(a).forEach(s=>{if(t.length&&!t.includes(s))return;const o=a[s];r.push(...o.accounts)}),r}const fw={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}};function dw(a,t){const{message:r,code:s}=fw[a];return{message:r,code:s}}function co(a,t){return!!Array.isArray(a)}var $r={};/*! *****************************************************************************
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("./index-Bhgci81L.js"),ze=require("./evm-DZww7tTt.js"),j=require("./index-8STuBnQE.js"),E=require("./index-DtjJKYjA.js");var ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.getLocalStorage=ne.getLocalStorageOrThrow=ne.getCrypto=ne.getCryptoOrThrow=ne.getLocation=ne.getLocationOrThrow=ne.getNavigator=ne.getNavigatorOrThrow=ne.getDocument=ne.getDocumentOrThrow=ne.getFromWindowOrThrow=ne.getFromWindow=void 0;function sr(a){let t;return typeof window<"u"&&typeof window[a]<"u"&&(t=window[a]),t}ne.getFromWindow=sr;function Cr(a){const t=sr(a);if(!t)throw new Error(`${a} is not defined in Window`);return t}ne.getFromWindowOrThrow=Cr;function tw(){return Cr("document")}ne.getDocumentOrThrow=tw;function rw(){return sr("document")}ne.getDocument=rw;function iw(){return Cr("navigator")}ne.getNavigatorOrThrow=iw;function sw(){return sr("navigator")}ne.getNavigator=sw;function nw(){return Cr("location")}ne.getLocationOrThrow=nw;function ow(){return sr("location")}ne.getLocation=ow;function aw(){return Cr("crypto")}ne.getCryptoOrThrow=aw;function cw(){return sr("crypto")}ne.getCrypto=cw;function uw(){return Cr("localStorage")}ne.getLocalStorageOrThrow=uw;function hw(){return sr("localStorage")}ne.getLocalStorage=hw;var bo={};Object.defineProperty(bo,"__esModule",{value:!0});bo.getWindowMetadata=void 0;const lu=ne;function lw(){let a,t;try{a=lu.getDocumentOrThrow(),t=lu.getLocationOrThrow()}catch{return null}function r(){const O=a.getElementsByTagName("link"),N=[];for(let q=0;q<O.length;q++){const x=O[q],B=x.getAttribute("rel");if(B&&B.toLowerCase().indexOf("icon")>-1){const D=x.getAttribute("href");if(D)if(D.toLowerCase().indexOf("https:")===-1&&D.toLowerCase().indexOf("http:")===-1&&D.indexOf("//")!==0){let Q=t.protocol+"//"+t.host;if(D.indexOf("/")===0)Q+=D;else{const fe=t.pathname.split("/");fe.pop();const Z=fe.join("/");Q+=Z+"/"+D}N.push(Q)}else if(D.indexOf("//")===0){const Q=t.protocol+D;N.push(Q)}else N.push(D)}}return N}function s(...O){const N=a.getElementsByTagName("meta");for(let q=0;q<N.length;q++){const x=N[q],B=["itemprop","property","name"].map(D=>x.getAttribute(D)).filter(D=>D?O.includes(D):!1);if(B.length&&B){const D=x.getAttribute("content");if(D)return D}}return""}function o(){let O=s("name","og:site_name","og:title","twitter:title");return O||(O=a.title),O}function u(){return s("description","og:description","twitter:description","keywords")}const l=o(),g=u(),w=t.origin,b=r();return{description:g,url:w,icons:b,name:l}}bo.getWindowMetadata=lw;function pw(a,t=[]){const r=[];return Object.keys(a).forEach(s=>{if(t.length&&!t.includes(s))return;const o=a[s];r.push(...o.accounts)}),r}const fw={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}};function dw(a,t){const{message:r,code:s}=fw[a];return{message:r,code:s}}function co(a,t){return!!Array.isArray(a)}var $r={};/*! *****************************************************************************
2
2
  Copyright (c) Microsoft Corporation.
3
3
 
4
4
  Permission to use, copy, modify, and/or distribute this software for any
@@ -43,4 +43,4 @@ __p += '`),Y&&(R+=`' +
43
43
  function print() { __p += __j.call(arguments, '') }
44
44
  `:`;
45
45
  `)+R+`return __p
46
- }`;var K=cu(function(){return X(f,F+"return "+R).apply(r,d)});if(K.source=R,Un(K))throw K;return K}function cm(e){return te(e).toLowerCase()}function um(e){return te(e).toUpperCase()}function hm(e,i,n){if(e=te(e),e&&(n||i===r))return va(e);if(!e||!(i=Ke(i)))return e;var c=at(e),h=at(i),f=ma(c,h),d=wa(c,h)+1;return Lt(c,f,d).join("")}function lm(e,i,n){if(e=te(e),e&&(n||i===r))return e.slice(0,ba(e)+1);if(!e||!(i=Ke(i)))return e;var c=at(e),h=wa(c,at(i))+1;return Lt(c,0,h).join("")}function pm(e,i,n){if(e=te(e),e&&(n||i===r))return e.replace(qs,"");if(!e||!(i=Ke(i)))return e;var c=at(e),h=ma(c,at(i));return Lt(c,h).join("")}function fm(e,i){var n=nl,c=ol;if(le(i)){var h="separator"in i?i.separator:h;n="length"in i?V(i.length):n,c="omission"in i?Ke(i.omission):c}e=te(e);var f=e.length;if(fr(e)){var d=at(e);f=d.length}if(n>=f)return e;var y=n-dr(c);if(y<1)return c;var m=d?Lt(d,0,y).join(""):e.slice(0,y);if(h===r)return m+c;if(d&&(y+=m.length-y),Mn(h)){if(e.slice(y).search(h)){var P,S=m;for(h.global||(h=en(h.source,te(Mo.exec(h))+"g")),h.lastIndex=0;P=h.exec(S);)var R=P.index;m=m.slice(0,R===r?y:R)}}else if(e.indexOf(Ke(h),y)!=y){var T=m.lastIndexOf(h);T>-1&&(m=m.slice(0,T))}return m+c}function dm(e){return e=te(e),e&&Pl.test(e)?e.replace(jo,zp):e}var gm=br(function(e,i,n){return e+(n?" ":"")+i.toUpperCase()}),zn=uc("toUpperCase");function au(e,i,n){return e=te(e),i=n?r:i,i===r?qp(e)?Kp(e):Np(e):e.match(i)||[]}var cu=W(function(e,i){try{return He(e,r,i)}catch(n){return Un(n)?n:new z(n)}}),ym=It(function(e,i){return Ye(i,function(n){n=yt(n),bt(e,n,jn(e[n],e))}),e});function vm(e){var i=e==null?0:e.length,n=M();return e=i?ce(e,function(c){if(typeof c[1]!="function")throw new Ze(l);return[n(c[0]),c[1]]}):[],W(function(c){for(var h=-1;++h<i;){var f=e[h];if(He(f[0],this,c))return He(f[1],this,c)}})}function mm(e){return Hf(et(e,O))}function Hn(e){return function(){return e}}function wm(e,i){return e==null||e!==e?i:e}var _m=lc(),bm=lc(!0);function Me(e){return e}function Vn(e){return ka(typeof e=="function"?e:et(e,O))}function Em(e){return Ha(et(e,O))}function Im(e,i){return Va(e,et(i,O))}var Pm=W(function(e,i){return function(n){return Qr(n,e,i)}}),Sm=W(function(e,i){return function(n){return Qr(e,n,i)}});function Kn(e,i,n){var c=be(i),h=Bi(i,c);n==null&&!(le(i)&&(h.length||!c.length))&&(n=i,i=e,e=this,h=Bi(i,be(i)));var f=!(le(n)&&"chain"in n)||!!n.chain,d=St(e);return Ye(h,function(y){var m=i[y];e[y]=m,d&&(e.prototype[y]=function(){var P=this.__chain__;if(f||P){var S=e(this.__wrapped__),R=S.__actions__=je(this.__actions__);return R.push({func:m,args:arguments,thisArg:e}),S.__chain__=P,S}return m.apply(e,Dt([this.value()],arguments))})}),e}function Om(){return Ie._===this&&(Ie._=Yp),this}function Bn(){}function Rm(e){return e=V(e),W(function(i){return Ka(i,e)})}var Nm=In(ce),Cm=In(pa),$m=In(Ws);function uu(e){return $n(e)?Js(yt(e)):od(e)}function Tm(e){return function(i){return e==null?r:Yt(e,i)}}var Am=fc(),xm=fc(!0);function Wn(){return[]}function Jn(){return!1}function Dm(){return{}}function Fm(){return""}function jm(){return!0}function qm(e,i){if(e=V(e),e<1||e>cr)return[];var n=ft,c=Oe(e,ft);i=M(i),e-=ft;for(var h=Ys(c,i);++n<e;)i(n);return h}function Um(e){return H(e)?ce(e,yt):Be(e)?[e]:je(Cc(te(e)))}function Mm(e){var i=++Gp;return te(e)+i}var Lm=Zi(function(e,i){return e+i},0),km=Pn("ceil"),zm=Zi(function(e,i){return e/i},1),Hm=Pn("floor");function Vm(e){return e&&e.length?Ki(e,Me,un):r}function Km(e,i){return e&&e.length?Ki(e,M(i,2),un):r}function Bm(e){return ga(e,Me)}function Wm(e,i){return ga(e,M(i,2))}function Jm(e){return e&&e.length?Ki(e,Me,fn):r}function Gm(e,i){return e&&e.length?Ki(e,M(i,2),fn):r}var Qm=Zi(function(e,i){return e*i},1),Ym=Pn("round"),Zm=Zi(function(e,i){return e-i},0);function Xm(e){return e&&e.length?Qs(e,Me):0}function ew(e,i){return e&&e.length?Qs(e,M(i,2)):0}return p.after=Ey,p.ary=Lc,p.assign=uv,p.assignIn=eu,p.assignInWith=ls,p.assignWith=hv,p.at=lv,p.before=kc,p.bind=jn,p.bindAll=ym,p.bindKey=zc,p.castArray=Dy,p.chain=qc,p.chunk=Hd,p.compact=Vd,p.concat=Kd,p.cond=vm,p.conforms=mm,p.constant=Hn,p.countBy=Xg,p.create=pv,p.curry=Hc,p.curryRight=Vc,p.debounce=Kc,p.defaults=fv,p.defaultsDeep=dv,p.defer=Iy,p.delay=Py,p.difference=Bd,p.differenceBy=Wd,p.differenceWith=Jd,p.drop=Gd,p.dropRight=Qd,p.dropRightWhile=Yd,p.dropWhile=Zd,p.fill=Xd,p.filter=ty,p.flatMap=sy,p.flatMapDeep=ny,p.flatMapDepth=oy,p.flatten=xc,p.flattenDeep=eg,p.flattenDepth=tg,p.flip=Sy,p.flow=_m,p.flowRight=bm,p.fromPairs=rg,p.functions=bv,p.functionsIn=Ev,p.groupBy=ay,p.initial=sg,p.intersection=ng,p.intersectionBy=og,p.intersectionWith=ag,p.invert=Pv,p.invertBy=Sv,p.invokeMap=uy,p.iteratee=Vn,p.keyBy=hy,p.keys=be,p.keysIn=Ue,p.map=ns,p.mapKeys=Rv,p.mapValues=Nv,p.matches=Em,p.matchesProperty=Im,p.memoize=as,p.merge=Cv,p.mergeWith=tu,p.method=Pm,p.methodOf=Sm,p.mixin=Kn,p.negate=cs,p.nthArg=Rm,p.omit=$v,p.omitBy=Tv,p.once=Oy,p.orderBy=ly,p.over=Nm,p.overArgs=Ry,p.overEvery=Cm,p.overSome=$m,p.partial=qn,p.partialRight=Bc,p.partition=py,p.pick=Av,p.pickBy=ru,p.property=uu,p.propertyOf=Tm,p.pull=lg,p.pullAll=Fc,p.pullAllBy=pg,p.pullAllWith=fg,p.pullAt=dg,p.range=Am,p.rangeRight=xm,p.rearg=Ny,p.reject=gy,p.remove=gg,p.rest=Cy,p.reverse=Dn,p.sampleSize=vy,p.set=Dv,p.setWith=Fv,p.shuffle=my,p.slice=yg,p.sortBy=by,p.sortedUniq=Ig,p.sortedUniqBy=Pg,p.split=sm,p.spread=$y,p.tail=Sg,p.take=Og,p.takeRight=Rg,p.takeRightWhile=Ng,p.takeWhile=Cg,p.tap=Vg,p.throttle=Ty,p.thru=ss,p.toArray=Yc,p.toPairs=iu,p.toPairsIn=su,p.toPath=Um,p.toPlainObject=Xc,p.transform=jv,p.unary=Ay,p.union=$g,p.unionBy=Tg,p.unionWith=Ag,p.uniq=xg,p.uniqBy=Dg,p.uniqWith=Fg,p.unset=qv,p.unzip=Fn,p.unzipWith=jc,p.update=Uv,p.updateWith=Mv,p.values=Pr,p.valuesIn=Lv,p.without=jg,p.words=au,p.wrap=xy,p.xor=qg,p.xorBy=Ug,p.xorWith=Mg,p.zip=Lg,p.zipObject=kg,p.zipObjectDeep=zg,p.zipWith=Hg,p.entries=iu,p.entriesIn=su,p.extend=eu,p.extendWith=ls,Kn(p,p),p.add=Lm,p.attempt=cu,p.camelCase=Vv,p.capitalize=nu,p.ceil=km,p.clamp=kv,p.clone=Fy,p.cloneDeep=qy,p.cloneDeepWith=Uy,p.cloneWith=jy,p.conformsTo=My,p.deburr=ou,p.defaultTo=wm,p.divide=zm,p.endsWith=Kv,p.eq=ut,p.escape=Bv,p.escapeRegExp=Wv,p.every=ey,p.find=ry,p.findIndex=Tc,p.findKey=gv,p.findLast=iy,p.findLastIndex=Ac,p.findLastKey=yv,p.floor=Hm,p.forEach=Uc,p.forEachRight=Mc,p.forIn=vv,p.forInRight=mv,p.forOwn=wv,p.forOwnRight=_v,p.get=Ln,p.gt=Ly,p.gte=ky,p.has=Iv,p.hasIn=kn,p.head=Dc,p.identity=Me,p.includes=cy,p.indexOf=ig,p.inRange=zv,p.invoke=Ov,p.isArguments=er,p.isArray=H,p.isArrayBuffer=zy,p.isArrayLike=qe,p.isArrayLikeObject=ge,p.isBoolean=Hy,p.isBuffer=kt,p.isDate=Vy,p.isElement=Ky,p.isEmpty=By,p.isEqual=Wy,p.isEqualWith=Jy,p.isError=Un,p.isFinite=Gy,p.isFunction=St,p.isInteger=Wc,p.isLength=us,p.isMap=Jc,p.isMatch=Qy,p.isMatchWith=Yy,p.isNaN=Zy,p.isNative=Xy,p.isNil=tv,p.isNull=ev,p.isNumber=Gc,p.isObject=le,p.isObjectLike=pe,p.isPlainObject=ri,p.isRegExp=Mn,p.isSafeInteger=rv,p.isSet=Qc,p.isString=hs,p.isSymbol=Be,p.isTypedArray=Ir,p.isUndefined=iv,p.isWeakMap=sv,p.isWeakSet=nv,p.join=cg,p.kebabCase=Jv,p.last=rt,p.lastIndexOf=ug,p.lowerCase=Gv,p.lowerFirst=Qv,p.lt=ov,p.lte=av,p.max=Vm,p.maxBy=Km,p.mean=Bm,p.meanBy=Wm,p.min=Jm,p.minBy=Gm,p.stubArray=Wn,p.stubFalse=Jn,p.stubObject=Dm,p.stubString=Fm,p.stubTrue=jm,p.multiply=Qm,p.nth=hg,p.noConflict=Om,p.noop=Bn,p.now=os,p.pad=Yv,p.padEnd=Zv,p.padStart=Xv,p.parseInt=em,p.random=Hv,p.reduce=fy,p.reduceRight=dy,p.repeat=tm,p.replace=rm,p.result=xv,p.round=Ym,p.runInContext=v,p.sample=yy,p.size=wy,p.snakeCase=im,p.some=_y,p.sortedIndex=vg,p.sortedIndexBy=mg,p.sortedIndexOf=wg,p.sortedLastIndex=_g,p.sortedLastIndexBy=bg,p.sortedLastIndexOf=Eg,p.startCase=nm,p.startsWith=om,p.subtract=Zm,p.sum=Xm,p.sumBy=ew,p.template=am,p.times=qm,p.toFinite=Ot,p.toInteger=V,p.toLength=Zc,p.toLower=cm,p.toNumber=it,p.toSafeInteger=cv,p.toString=te,p.toUpper=um,p.trim=hm,p.trimEnd=lm,p.trimStart=pm,p.truncate=fm,p.unescape=dm,p.uniqueId=Mm,p.upperCase=gm,p.upperFirst=zn,p.each=Uc,p.eachRight=Mc,p.first=Dc,Kn(p,function(){var e={};return dt(p,function(i,n){re.call(p.prototype,n)||(e[n]=i)}),e}(),{chain:!1}),p.VERSION=s,Ye(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){p[e].placeholder=p}),Ye(["drop","take"],function(e,i){G.prototype[e]=function(n){n=n===r?1:_e(V(n),0);var c=this.__filtered__&&!i?new G(this):this.clone();return c.__filtered__?c.__takeCount__=Oe(n,c.__takeCount__):c.__views__.push({size:Oe(n,ft),type:e+(c.__dir__<0?"Right":"")}),c},G.prototype[e+"Right"]=function(n){return this.reverse()[e](n).reverse()}}),Ye(["filter","map","takeWhile"],function(e,i){var n=i+1,c=n==xo||n==hl;G.prototype[e]=function(h){var f=this.clone();return f.__iteratees__.push({iteratee:M(h,3),type:n}),f.__filtered__=f.__filtered__||c,f}}),Ye(["head","last"],function(e,i){var n="take"+(i?"Right":"");G.prototype[e]=function(){return this[n](1).value()[0]}}),Ye(["initial","tail"],function(e,i){var n="drop"+(i?"":"Right");G.prototype[e]=function(){return this.__filtered__?new G(this):this[n](1)}}),G.prototype.compact=function(){return this.filter(Me)},G.prototype.find=function(e){return this.filter(e).head()},G.prototype.findLast=function(e){return this.reverse().find(e)},G.prototype.invokeMap=W(function(e,i){return typeof e=="function"?new G(this):this.map(function(n){return Qr(n,e,i)})}),G.prototype.reject=function(e){return this.filter(cs(M(e)))},G.prototype.slice=function(e,i){e=V(e);var n=this;return n.__filtered__&&(e>0||i<0)?new G(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),i!==r&&(i=V(i),n=i<0?n.dropRight(-i):n.take(i-e)),n)},G.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},G.prototype.toArray=function(){return this.take(ft)},dt(G.prototype,function(e,i){var n=/^(?:filter|find|map|reject)|While$/.test(i),c=/^(?:head|last)$/.test(i),h=p[c?"take"+(i=="last"?"Right":""):i],f=c||/^find/.test(i);h&&(p.prototype[i]=function(){var d=this.__wrapped__,y=c?[1]:arguments,m=d instanceof G,P=y[0],S=m||H(d),R=function(J){var Y=h.apply(p,Dt([J],y));return c&&T?Y[0]:Y};S&&n&&typeof P=="function"&&P.length!=1&&(m=S=!1);var T=this.__chain__,F=!!this.__actions__.length,L=f&&!T,K=m&&!F;if(!f&&S){d=K?d:new G(this);var k=e.apply(d,y);return k.__actions__.push({func:ss,args:[R],thisArg:r}),new Xe(k,T)}return L&&K?e.apply(this,y):(k=this.thru(R),L?c?k.value()[0]:k.value():k)})}),Ye(["pop","push","shift","sort","splice","unshift"],function(e){var i=$i[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",c=/^(?:pop|shift)$/.test(e);p.prototype[e]=function(){var h=arguments;if(c&&!this.__chain__){var f=this.value();return i.apply(H(f)?f:[],h)}return this[n](function(d){return i.apply(H(d)?d:[],h)})}}),dt(G.prototype,function(e,i){var n=p[i];if(n){var c=n.name+"";re.call(mr,c)||(mr[c]=[]),mr[c].push({name:i,func:n})}}),mr[Yi(r,Q).name]=[{name:"wrapper",func:r}],G.prototype.clone=df,G.prototype.reverse=gf,G.prototype.value=yf,p.prototype.at=Kg,p.prototype.chain=Bg,p.prototype.commit=Wg,p.prototype.next=Jg,p.prototype.plant=Qg,p.prototype.reverse=Yg,p.prototype.toJSON=p.prototype.valueOf=p.prototype.value=Zg,p.prototype.first=p.prototype.head,Hr&&(p.prototype[Hr]=Gg),p},gr=Bp();Bt?((Bt.exports=gr)._=gr,Hs._=gr):Ie._=gr}).call(ui)})(_o,_o.exports);var ME=Object.defineProperty,LE=Object.defineProperties,kE=Object.getOwnPropertyDescriptors,hh=Object.getOwnPropertySymbols,zE=Object.prototype.hasOwnProperty,HE=Object.prototype.propertyIsEnumerable,lh=(a,t,r)=>t in a?ME(a,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[t]=r,ds=(a,t)=>{for(var r in t||(t={}))zE.call(t,r)&&lh(a,r,t[r]);if(hh)for(var r of hh(t))HE.call(t,r)&&lh(a,r,t[r]);return a},VE=(a,t)=>LE(a,kE(t));function Vt(a,t,r){var s;const o=p_(a);return((s=t.rpcMap)==null?void 0:s[o.reference])||`${UE}?chainId=${o.namespace}:${o.reference}&projectId=${r}`}function ar(a){return a.includes(":")?a.split(":")[1]:a}function tl(a){return a.map(t=>`${t.split(":")[0]}:${t.split(":")[1]}`)}function KE(a,t){const r=Object.keys(t.namespaces).filter(o=>o.includes(a));if(!r.length)return[];const s=[];return r.forEach(o=>{const u=t.namespaces[o].accounts;s.push(...u)}),s}function BE(a={},t={}){const r=ph(a),s=ph(t);return _o.exports.merge(r,s)}function ph(a){var t,r,s,o;const u={};if(!Nr(a))return u;for(const[l,g]of Object.entries(a)){const w=No(l)?[l]:g.chains,b=g.methods||[],C=g.events||[],O=g.rpcMap||{},N=hi(l);u[N]=VE(ds(ds({},u[N]),g),{chains:Yn(w,(t=u[N])==null?void 0:t.chains),methods:Yn(b,(r=u[N])==null?void 0:r.methods),events:Yn(C,(s=u[N])==null?void 0:s.events),rpcMap:ds(ds({},O),(o=u[N])==null?void 0:o.rpcMap)})}return u}function WE(a){return a.includes(":")?a.split(":")[2]:a}function JE(a){const t={};for(const[r,s]of Object.entries(a)){const o=s.methods||[],u=s.events||[],l=s.accounts||[],g=No(r)?[r]:s.chains?s.chains:tl(s.accounts);t[r]={chains:g,methods:o,events:u,accounts:l}}return t}function so(a){return typeof a=="number"?a:a.includes("0x")?parseInt(a,16):a.includes(":")?Number(a.split(":")[1]):Number(a)}const rl={},ue=a=>rl[a],no=(a,t)=>{rl[a]=t};class GE{constructor(t){this.name="polkadot",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=ar(r);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class QE{constructor(t){this.name="eip155",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(t){switch(t.request.method){case"eth_requestAccounts":return this.getAccounts();case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return await this.handleSwitchChain(t);case"eth_chainId":return parseInt(this.getDefaultChain())}return this.namespace.methods.includes(t.request.method)?await this.client.request(t):this.getHttpProvider().request(t.request)}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(parseInt(t),r),this.chainId=parseInt(t),this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}createHttpProvider(t,r){const s=r||Vt(`${this.name}:${t}`,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=parseInt(ar(r));t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}getHttpProvider(){const t=this.chainId,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}async handleSwitchChain(t){var r,s;let o=t.request.params?(r=t.request.params[0])==null?void 0:r.chainId:"0x0";o=o.startsWith("0x")?o:`0x${o}`;const u=parseInt(o,16);if(this.isChainApproved(u))this.setDefaultChain(`${u}`);else if(this.namespace.methods.includes("wallet_switchEthereumChain"))await this.client.request({topic:t.topic,request:{method:t.request.method,params:[{chainId:o}]},chainId:(s=this.namespace.chains)==null?void 0:s[0]}),this.setDefaultChain(`${u}`);else throw new Error(`Failed to switch to chain 'eip155:${u}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(t){return this.namespace.chains.includes(`${this.name}:${t}`)}}class YE{constructor(t){this.name="solana",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=ar(r);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class ZE{constructor(t){this.name="cosmos",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=ar(r);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class XE{constructor(t){this.name="cip34",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{const s=this.getCardanoRPCUrl(r),o=ar(r);t[o]=this.createHttpProvider(o,s)}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}getCardanoRPCUrl(t){const r=this.namespace.rpcMap;if(r)return r[t]}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||this.getCardanoRPCUrl(t);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class eI{constructor(t){this.name="elrond",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=ar(r);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class tI{constructor(t){this.name="multiversx",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=ar(r);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class rI{constructor(t){this.name="near",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){if(this.chainId=t,!this.httpProviders[t]){const s=r||Vt(`${this.name}:${t}`,this.namespace);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);this.setHttpProvider(t,s)}this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;t[r]=this.createHttpProvider(r,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace);return typeof s>"u"?void 0:new $t(new Kt(s,ue("disableProviderPing")))}}var iI=Object.defineProperty,sI=Object.defineProperties,nI=Object.getOwnPropertyDescriptors,fh=Object.getOwnPropertySymbols,oI=Object.prototype.hasOwnProperty,aI=Object.prototype.propertyIsEnumerable,dh=(a,t,r)=>t in a?iI(a,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[t]=r,gs=(a,t)=>{for(var r in t||(t={}))oI.call(t,r)&&dh(a,r,t[r]);if(fh)for(var r of fh(t))aI.call(t,r)&&dh(a,r,t[r]);return a},oo=(a,t)=>sI(a,nI(t));class Ao{constructor(t){this.events=new U.ss,this.rpcProviders={},this.shouldAbortPairingAttempt=!1,this.maxPairingAttempts=10,this.disableProviderPing=!1,this.providerOpts=t,this.logger=typeof(t==null?void 0:t.logger)<"u"&&typeof(t==null?void 0:t.logger)!="string"?t.logger:E.Tt(E.k({level:(t==null?void 0:t.logger)||ch})),this.disableProviderPing=(t==null?void 0:t.disableProviderPing)||!1}static async init(t){const r=new Ao(t);return await r.initialize(),r}async request(t,r){const[s,o]=this.validateChain(r);if(!this.session)throw new Error("Please call connect() before request()");return await this.getProvider(s).request({request:gs({},t),chainId:`${s}:${o}`,topic:this.session.topic})}sendAsync(t,r,s){const o=new Date().getTime();this.request(t,s).then(u=>r(null,E.formatJsonRpcResult(o,u))).catch(u=>r(u,void 0))}async enable(){if(!this.client)throw new Error("Sign Client not initialized");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties}),await this.requestAccounts()}async disconnect(){var t;if(!this.session)throw new Error("Please call connect() before enable()");await this.client.disconnect({topic:(t=this.session)==null?void 0:t.topic,reason:ve("USER_DISCONNECTED")}),await this.cleanup()}async connect(t){if(!this.client)throw new Error("Sign Client not initialized");if(this.setNamespaces(t),await this.cleanupPendingPairings(),!t.skipPairing)return await this.pair(t.pairingTopic)}on(t,r){this.events.on(t,r)}once(t,r){this.events.once(t,r)}removeListener(t,r){this.events.removeListener(t,r)}off(t,r){this.events.off(t,r)}get isWalletConnect(){return!0}async pair(t){this.shouldAbortPairingAttempt=!1;let r=0;do{if(this.shouldAbortPairingAttempt)throw new Error("Pairing aborted");if(r>=this.maxPairingAttempts)throw new Error("Max auto pairing attempts reached");const{uri:s,approval:o}=await this.client.connect({pairingTopic:t,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties});s&&(this.uri=s,this.events.emit("display_uri",s)),await o().then(u=>{this.session=u,this.namespaces||(this.namespaces=JE(u.namespaces),this.persist("namespaces",this.namespaces))}).catch(u=>{if(u.message!==Xh)throw u;r++})}while(!this.session);return this.onConnect(),this.session}setDefaultChain(t,r){try{if(!this.session)return;const[s,o]=this.validateChain(t);this.getProvider(s).setDefaultChain(o,r)}catch(s){if(!/Please call connect/.test(s.message))throw s}}async cleanupPendingPairings(t={}){this.logger.info("Cleaning up inactive pairings...");const r=this.client.pairing.getAll();if(ir(r)){for(const s of r)t.deletePairings?this.client.core.expirer.set(s.topic,0):await this.client.core.relayer.subscriber.unsubscribe(s.topic);this.logger.info(`Inactive pairings cleared: ${r.length}`)}}abortPairingAttempt(){this.shouldAbortPairingAttempt=!0}async checkStorage(){if(this.namespaces=await this.getFromStore("namespaces"),this.optionalNamespaces=await this.getFromStore("optionalNamespaces")||{},this.client.session.length){const t=this.client.session.keys.length-1;this.session=this.client.session.get(this.client.session.keys[t]),this.createProviders()}}async initialize(){this.logger.trace("Initialized"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){this.client=this.providerOpts.client||await PE.init({logger:this.providerOpts.logger||ch,relayUrl:this.providerOpts.relayUrl||FE,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name}),this.logger.trace("SignClient Initialized")}createProviders(){if(!this.client)throw new Error("Sign Client not initialized");if(!this.session)throw new Error("Session not initialized. Please call connect() before enable()");const t=[...new Set(Object.keys(this.session.namespaces).map(r=>hi(r)))];no("client",this.client),no("events",this.events),no("disableProviderPing",this.disableProviderPing),t.forEach(r=>{if(!this.session)return;const s=KE(r,this.session),o=tl(s),u=BE(this.namespaces,this.optionalNamespaces),l=oo(gs({},u[r]),{accounts:s,chains:o});switch(r){case"eip155":this.rpcProviders[r]=new QE({namespace:l});break;case"solana":this.rpcProviders[r]=new YE({namespace:l});break;case"cosmos":this.rpcProviders[r]=new ZE({namespace:l});break;case"polkadot":this.rpcProviders[r]=new GE({namespace:l});break;case"cip34":this.rpcProviders[r]=new XE({namespace:l});break;case"elrond":this.rpcProviders[r]=new eI({namespace:l});break;case"multiversx":this.rpcProviders[r]=new tI({namespace:l});break;case"near":this.rpcProviders[r]=new rI({namespace:l});break}})}registerEventListeners(){if(typeof this.client>"u")throw new Error("Sign Client is not initialized");this.client.on("session_ping",t=>{this.events.emit("session_ping",t)}),this.client.on("session_event",t=>{const{params:r}=t,{event:s}=r;if(s.name==="accountsChanged"){const o=s.data;o&&ir(o)&&this.events.emit("accountsChanged",o.map(WE))}else if(s.name==="chainChanged"){const o=r.chainId,u=r.event.data,l=hi(o),g=so(o)!==so(u)?`${l}:${so(u)}`:o;this.onChainChanged(g)}else this.events.emit(s.name,s.data);this.events.emit("session_event",t)}),this.client.on("session_update",({topic:t,params:r})=>{var s;const{namespaces:o}=r,u=(s=this.client)==null?void 0:s.session.get(t);this.session=oo(gs({},u),{namespaces:o}),this.onSessionUpdate(),this.events.emit("session_update",{topic:t,params:r})}),this.client.on("session_delete",async t=>{await this.cleanup(),this.events.emit("session_delete",t),this.events.emit("disconnect",oo(gs({},ve("USER_DISCONNECTED")),{data:t.topic}))}),this.on(Tt.DEFAULT_CHAIN_CHANGED,t=>{this.onChainChanged(t,!0)})}getProvider(t){if(!this.rpcProviders[t])throw new Error(`Provider not found: ${t}`);return this.rpcProviders[t]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(t=>{var r;this.getProvider(t).updateNamespace((r=this.session)==null?void 0:r.namespaces[t])})}setNamespaces(t){const{namespaces:r,optionalNamespaces:s,sessionProperties:o}=t;r&&Object.keys(r).length&&(this.namespaces=r),s&&Object.keys(s).length&&(this.optionalNamespaces=s),this.sessionProperties=o,this.persist("namespaces",r),this.persist("optionalNamespaces",s)}validateChain(t){const[r,s]=(t==null?void 0:t.split(":"))||["",""];if(!this.namespaces||!Object.keys(this.namespaces).length)return[r,s];if(r&&!Object.keys(this.namespaces||{}).map(l=>hi(l)).includes(r))throw new Error(`Namespace '${r}' is not configured. Please call connect() first with namespace config.`);if(r&&s)return[r,s];const o=hi(Object.keys(this.namespaces)[0]),u=this.rpcProviders[o].getDefaultChain();return[o,u]}async requestAccounts(){const[t]=this.validateChain();return await this.getProvider(t).requestAccounts()}onChainChanged(t,r=!1){var s;if(!this.namespaces)return;const[o,u]=this.validateChain(t);r||this.getProvider(o).setDefaultChain(u),((s=this.namespaces[o])!=null?s:this.namespaces[`${o}:${u}`]).defaultChain=u,this.persist("namespaces",this.namespaces),this.events.emit("chainChanged",u)}onConnect(){this.createProviders(),this.events.emit("connect",{session:this.session})}async cleanup(){this.session=void 0,this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,this.persist("namespaces",void 0),this.persist("optionalNamespaces",void 0),this.persist("sessionProperties",void 0),await this.cleanupPendingPairings({deletePairings:!0})}persist(t,r){this.client.core.storage.setItem(`${uh}/${t}`,r)}async getFromStore(t){return await this.client.core.storage.getItem(`${uh}/${t}`)}}const cI=Ao,uI="wc",hI="ethereum_provider",lI=`${uI}@2:${hI}:`,pI="https://rpc.walletconnect.com/v1/",_s=["eth_sendTransaction","personal_sign"],il=["eth_accounts","eth_requestAccounts","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","eth_sendTransaction","personal_sign","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode"],bs=["chainChanged","accountsChanged"],sl=["chainChanged","accountsChanged","message","disconnect","connect"];var fI=Object.defineProperty,dI=Object.defineProperties,gI=Object.getOwnPropertyDescriptors,gh=Object.getOwnPropertySymbols,yI=Object.prototype.hasOwnProperty,vI=Object.prototype.propertyIsEnumerable,yh=(a,t,r)=>t in a?fI(a,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[t]=r,pi=(a,t)=>{for(var r in t||(t={}))yI.call(t,r)&&yh(a,r,t[r]);if(gh)for(var r of gh(t))vI.call(t,r)&&yh(a,r,t[r]);return a},vh=(a,t)=>dI(a,gI(t));function Es(a){return Number(a[0].split(":")[1])}function ao(a){return`0x${a.toString(16)}`}function mI(a){const{chains:t,optionalChains:r,methods:s,optionalMethods:o,events:u,optionalEvents:l,rpcMap:g}=a;if(!co(t))throw new Error("Invalid chains");const w={chains:t,methods:s||_s,events:u||bs,rpcMap:pi({},t.length?{[Es(t)]:g[Es(t)]}:{})},b=u==null?void 0:u.filter(q=>!bs.includes(q)),C=s==null?void 0:s.filter(q=>!_s.includes(q));if(!r&&!l&&!o&&!(b!=null&&b.length)&&!(C!=null&&C.length))return{required:t.length?w:void 0};const O=(b==null?void 0:b.length)&&(C==null?void 0:C.length)||!r,N={chains:[...new Set(O?w.chains.concat(r||[]):r)],methods:[...new Set(w.methods.concat(o!=null&&o.length?o:il))],events:[...new Set(w.events.concat(l!=null&&l.length?l:sl))],rpcMap:g};return{required:t.length?w:void 0,optional:r.length?N:void 0}}class Os{constructor(){this.events=new U.eventsExports.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.STORAGE_KEY=lI,this.on=(t,r)=>(this.events.on(t,r),this),this.once=(t,r)=>(this.events.once(t,r),this),this.removeListener=(t,r)=>(this.events.removeListener(t,r),this),this.off=(t,r)=>(this.events.off(t,r),this),this.parseAccount=t=>this.isCompatibleChainId(t)?this.parseAccountId(t).address:t,this.signer={},this.rpc={}}static async init(t){const r=new Os;return await r.initialize(t),r}async request(t){return await this.signer.request(t,this.formatChainId(this.chainId))}sendAsync(t,r){this.signer.sendAsync(t,r,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(t){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(t);const{required:r,optional:s}=mI(this.rpc);try{const o=await new Promise(async(l,g)=>{var w;this.rpc.showQrModal&&((w=this.modal)==null||w.subscribeModal(b=>{!b.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),g(new Error("Connection request reset. Please try again.")))})),await this.signer.connect(vh(pi({namespaces:pi({},r&&{[this.namespace]:r})},s&&{optionalNamespaces:{[this.namespace]:s}}),{pairingTopic:t==null?void 0:t.pairingTopic})).then(b=>{l(b)}).catch(b=>{g(new Error(b.message))})});if(!o)return;const u=pw(o.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:u),this.setAccounts(u),this.events.emit("connect",{chainId:ao(this.chainId)})}catch(o){throw this.signer.logger.error(o),o}finally{this.modal&&this.modal.closeModal()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",t=>{const{params:r}=t,{event:s}=r;s.name==="accountsChanged"?(this.accounts=this.parseAccounts(s.data),this.events.emit("accountsChanged",this.accounts)):s.name==="chainChanged"?this.setChainId(this.formatChainId(s.data)):this.events.emit(s.name,s.data),this.events.emit("session_event",t)}),this.signer.on("chainChanged",t=>{const r=parseInt(t);this.chainId=r,this.events.emit("chainChanged",ao(this.chainId)),this.persist()}),this.signer.on("session_update",t=>{this.events.emit("session_update",t)}),this.signer.on("session_delete",t=>{this.reset(),this.events.emit("session_delete",t),this.events.emit("disconnect",vh(pi({},dw("USER_DISCONNECTED")),{data:t.topic,name:"USER_DISCONNECTED"}))}),this.signer.on("display_uri",t=>{var r,s;this.rpc.showQrModal&&((r=this.modal)==null||r.closeModal(),(s=this.modal)==null||s.openModal({uri:t})),this.events.emit("display_uri",t)})}switchEthereumChain(t){this.request({method:"wallet_switchEthereumChain",params:[{chainId:t.toString(16)}]})}isCompatibleChainId(t){return typeof t=="string"?t.startsWith(`${this.namespace}:`):!1}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(":")[1])}setChainIds(t){const r=t.filter(s=>this.isCompatibleChainId(s)).map(s=>this.parseChainId(s));r.length&&(this.chainId=r[0],this.events.emit("chainChanged",ao(this.chainId)),this.persist())}setChainId(t){if(this.isCompatibleChainId(t)){const r=this.parseChainId(t);this.chainId=r,this.switchEthereumChain(r)}}parseAccountId(t){const[r,s,o]=t.split(":");return{chainId:`${r}:${s}`,address:o}}setAccounts(t){this.accounts=t.filter(r=>this.parseChainId(this.parseAccountId(r).chainId)===this.chainId).map(r=>this.parseAccountId(r).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(t){var r,s;const o=(r=t==null?void 0:t.chains)!=null?r:[],u=(s=t==null?void 0:t.optionalChains)!=null?s:[],l=o.concat(u);if(!l.length)throw new Error("No chains specified in either `chains` or `optionalChains`");const g=o.length?(t==null?void 0:t.methods)||_s:[],w=o.length?(t==null?void 0:t.events)||bs:[],b=(t==null?void 0:t.optionalMethods)||[],C=(t==null?void 0:t.optionalEvents)||[],O=(t==null?void 0:t.rpcMap)||this.buildRpcMap(l,t.projectId),N=(t==null?void 0:t.qrModalOptions)||void 0;return{chains:o==null?void 0:o.map(q=>this.formatChainId(q)),optionalChains:u.map(q=>this.formatChainId(q)),methods:g,events:w,optionalMethods:b,optionalEvents:C,rpcMap:O,showQrModal:!!(t!=null&&t.showQrModal),qrModalOptions:N,projectId:t.projectId,metadata:t.metadata}}buildRpcMap(t,r){const s={};return t.forEach(o=>{s[o]=this.getRpcUrl(o,r)}),s}async initialize(t){if(this.rpc=this.getRpcConfig(t),this.chainId=this.rpc.chains.length?Es(this.rpc.chains):Es(this.rpc.optionalChains),this.signer=await cI.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:t.disableProviderPing,relayUrl:t.relayUrl,storageOptions:t.storageOptions}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let r;try{const{WalletConnectModal:s}=await Promise.resolve().then(()=>require("./index-CoEGiDGu.js")).then(o=>o.index);r=s}catch{throw new Error("To use QR modal, please install @walletconnect/modal package")}if(r)try{this.modal=new r(pi({projectId:this.rpc.projectId},this.rpc.qrModalOptions))}catch(s){throw this.signer.logger.error(s),new Error("Could not generate WalletConnectModal Instance")}}}loadConnectOpts(t){if(!t)return;const{chains:r,optionalChains:s,rpcMap:o}=t;r&&co(r)&&(this.rpc.chains=r.map(u=>this.formatChainId(u)),r.forEach(u=>{this.rpc.rpcMap[u]=(o==null?void 0:o[u])||this.getRpcUrl(u)})),s&&co(s)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=s==null?void 0:s.map(u=>this.formatChainId(u)),s.forEach(u=>{this.rpc.rpcMap[u]=(o==null?void 0:o[u])||this.getRpcUrl(u)}))}getRpcUrl(t,r){var s;return((s=this.rpc.rpcMap)==null?void 0:s[t])||`${pI}?chainId=eip155:${t}&projectId=${r||this.rpc.projectId}`}async loadPersistedSession(){if(!this.session)return;const t=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),r=this.session.namespaces[`${this.namespace}:${t}`]?this.session.namespaces[`${this.namespace}:${t}`]:this.session.namespaces[this.namespace];this.setChainIds(t?[this.formatChainId(t)]:r==null?void 0:r.accounts),this.setAccounts(r==null?void 0:r.accounts)}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(t){return typeof t=="string"||t instanceof String?[this.parseAccount(t)]:t.map(r=>this.parseAccount(r))}}const wI=Os;exports.EthereumProvider=wI;exports.OPTIONAL_EVENTS=sl;exports.OPTIONAL_METHODS=il;exports.REQUIRED_EVENTS=bs;exports.REQUIRED_METHODS=_s;exports.default=Os;
46
+ }`;var K=cu(function(){return X(f,F+"return "+R).apply(r,d)});if(K.source=R,Un(K))throw K;return K}function cm(e){return te(e).toLowerCase()}function um(e){return te(e).toUpperCase()}function hm(e,i,n){if(e=te(e),e&&(n||i===r))return va(e);if(!e||!(i=Ke(i)))return e;var c=at(e),h=at(i),f=ma(c,h),d=wa(c,h)+1;return Lt(c,f,d).join("")}function lm(e,i,n){if(e=te(e),e&&(n||i===r))return e.slice(0,ba(e)+1);if(!e||!(i=Ke(i)))return e;var c=at(e),h=wa(c,at(i))+1;return Lt(c,0,h).join("")}function pm(e,i,n){if(e=te(e),e&&(n||i===r))return e.replace(qs,"");if(!e||!(i=Ke(i)))return e;var c=at(e),h=ma(c,at(i));return Lt(c,h).join("")}function fm(e,i){var n=nl,c=ol;if(le(i)){var h="separator"in i?i.separator:h;n="length"in i?V(i.length):n,c="omission"in i?Ke(i.omission):c}e=te(e);var f=e.length;if(fr(e)){var d=at(e);f=d.length}if(n>=f)return e;var y=n-dr(c);if(y<1)return c;var m=d?Lt(d,0,y).join(""):e.slice(0,y);if(h===r)return m+c;if(d&&(y+=m.length-y),Mn(h)){if(e.slice(y).search(h)){var P,S=m;for(h.global||(h=en(h.source,te(Mo.exec(h))+"g")),h.lastIndex=0;P=h.exec(S);)var R=P.index;m=m.slice(0,R===r?y:R)}}else if(e.indexOf(Ke(h),y)!=y){var T=m.lastIndexOf(h);T>-1&&(m=m.slice(0,T))}return m+c}function dm(e){return e=te(e),e&&Pl.test(e)?e.replace(jo,zp):e}var gm=br(function(e,i,n){return e+(n?" ":"")+i.toUpperCase()}),zn=uc("toUpperCase");function au(e,i,n){return e=te(e),i=n?r:i,i===r?qp(e)?Kp(e):Np(e):e.match(i)||[]}var cu=W(function(e,i){try{return He(e,r,i)}catch(n){return Un(n)?n:new z(n)}}),ym=It(function(e,i){return Ye(i,function(n){n=yt(n),bt(e,n,jn(e[n],e))}),e});function vm(e){var i=e==null?0:e.length,n=M();return e=i?ce(e,function(c){if(typeof c[1]!="function")throw new Ze(l);return[n(c[0]),c[1]]}):[],W(function(c){for(var h=-1;++h<i;){var f=e[h];if(He(f[0],this,c))return He(f[1],this,c)}})}function mm(e){return Hf(et(e,O))}function Hn(e){return function(){return e}}function wm(e,i){return e==null||e!==e?i:e}var _m=lc(),bm=lc(!0);function Me(e){return e}function Vn(e){return ka(typeof e=="function"?e:et(e,O))}function Em(e){return Ha(et(e,O))}function Im(e,i){return Va(e,et(i,O))}var Pm=W(function(e,i){return function(n){return Qr(n,e,i)}}),Sm=W(function(e,i){return function(n){return Qr(e,n,i)}});function Kn(e,i,n){var c=be(i),h=Bi(i,c);n==null&&!(le(i)&&(h.length||!c.length))&&(n=i,i=e,e=this,h=Bi(i,be(i)));var f=!(le(n)&&"chain"in n)||!!n.chain,d=St(e);return Ye(h,function(y){var m=i[y];e[y]=m,d&&(e.prototype[y]=function(){var P=this.__chain__;if(f||P){var S=e(this.__wrapped__),R=S.__actions__=je(this.__actions__);return R.push({func:m,args:arguments,thisArg:e}),S.__chain__=P,S}return m.apply(e,Dt([this.value()],arguments))})}),e}function Om(){return Ie._===this&&(Ie._=Yp),this}function Bn(){}function Rm(e){return e=V(e),W(function(i){return Ka(i,e)})}var Nm=In(ce),Cm=In(pa),$m=In(Ws);function uu(e){return $n(e)?Js(yt(e)):od(e)}function Tm(e){return function(i){return e==null?r:Yt(e,i)}}var Am=fc(),xm=fc(!0);function Wn(){return[]}function Jn(){return!1}function Dm(){return{}}function Fm(){return""}function jm(){return!0}function qm(e,i){if(e=V(e),e<1||e>cr)return[];var n=ft,c=Oe(e,ft);i=M(i),e-=ft;for(var h=Ys(c,i);++n<e;)i(n);return h}function Um(e){return H(e)?ce(e,yt):Be(e)?[e]:je(Cc(te(e)))}function Mm(e){var i=++Gp;return te(e)+i}var Lm=Zi(function(e,i){return e+i},0),km=Pn("ceil"),zm=Zi(function(e,i){return e/i},1),Hm=Pn("floor");function Vm(e){return e&&e.length?Ki(e,Me,un):r}function Km(e,i){return e&&e.length?Ki(e,M(i,2),un):r}function Bm(e){return ga(e,Me)}function Wm(e,i){return ga(e,M(i,2))}function Jm(e){return e&&e.length?Ki(e,Me,fn):r}function Gm(e,i){return e&&e.length?Ki(e,M(i,2),fn):r}var Qm=Zi(function(e,i){return e*i},1),Ym=Pn("round"),Zm=Zi(function(e,i){return e-i},0);function Xm(e){return e&&e.length?Qs(e,Me):0}function ew(e,i){return e&&e.length?Qs(e,M(i,2)):0}return p.after=Ey,p.ary=Lc,p.assign=uv,p.assignIn=eu,p.assignInWith=ls,p.assignWith=hv,p.at=lv,p.before=kc,p.bind=jn,p.bindAll=ym,p.bindKey=zc,p.castArray=Dy,p.chain=qc,p.chunk=Hd,p.compact=Vd,p.concat=Kd,p.cond=vm,p.conforms=mm,p.constant=Hn,p.countBy=Xg,p.create=pv,p.curry=Hc,p.curryRight=Vc,p.debounce=Kc,p.defaults=fv,p.defaultsDeep=dv,p.defer=Iy,p.delay=Py,p.difference=Bd,p.differenceBy=Wd,p.differenceWith=Jd,p.drop=Gd,p.dropRight=Qd,p.dropRightWhile=Yd,p.dropWhile=Zd,p.fill=Xd,p.filter=ty,p.flatMap=sy,p.flatMapDeep=ny,p.flatMapDepth=oy,p.flatten=xc,p.flattenDeep=eg,p.flattenDepth=tg,p.flip=Sy,p.flow=_m,p.flowRight=bm,p.fromPairs=rg,p.functions=bv,p.functionsIn=Ev,p.groupBy=ay,p.initial=sg,p.intersection=ng,p.intersectionBy=og,p.intersectionWith=ag,p.invert=Pv,p.invertBy=Sv,p.invokeMap=uy,p.iteratee=Vn,p.keyBy=hy,p.keys=be,p.keysIn=Ue,p.map=ns,p.mapKeys=Rv,p.mapValues=Nv,p.matches=Em,p.matchesProperty=Im,p.memoize=as,p.merge=Cv,p.mergeWith=tu,p.method=Pm,p.methodOf=Sm,p.mixin=Kn,p.negate=cs,p.nthArg=Rm,p.omit=$v,p.omitBy=Tv,p.once=Oy,p.orderBy=ly,p.over=Nm,p.overArgs=Ry,p.overEvery=Cm,p.overSome=$m,p.partial=qn,p.partialRight=Bc,p.partition=py,p.pick=Av,p.pickBy=ru,p.property=uu,p.propertyOf=Tm,p.pull=lg,p.pullAll=Fc,p.pullAllBy=pg,p.pullAllWith=fg,p.pullAt=dg,p.range=Am,p.rangeRight=xm,p.rearg=Ny,p.reject=gy,p.remove=gg,p.rest=Cy,p.reverse=Dn,p.sampleSize=vy,p.set=Dv,p.setWith=Fv,p.shuffle=my,p.slice=yg,p.sortBy=by,p.sortedUniq=Ig,p.sortedUniqBy=Pg,p.split=sm,p.spread=$y,p.tail=Sg,p.take=Og,p.takeRight=Rg,p.takeRightWhile=Ng,p.takeWhile=Cg,p.tap=Vg,p.throttle=Ty,p.thru=ss,p.toArray=Yc,p.toPairs=iu,p.toPairsIn=su,p.toPath=Um,p.toPlainObject=Xc,p.transform=jv,p.unary=Ay,p.union=$g,p.unionBy=Tg,p.unionWith=Ag,p.uniq=xg,p.uniqBy=Dg,p.uniqWith=Fg,p.unset=qv,p.unzip=Fn,p.unzipWith=jc,p.update=Uv,p.updateWith=Mv,p.values=Pr,p.valuesIn=Lv,p.without=jg,p.words=au,p.wrap=xy,p.xor=qg,p.xorBy=Ug,p.xorWith=Mg,p.zip=Lg,p.zipObject=kg,p.zipObjectDeep=zg,p.zipWith=Hg,p.entries=iu,p.entriesIn=su,p.extend=eu,p.extendWith=ls,Kn(p,p),p.add=Lm,p.attempt=cu,p.camelCase=Vv,p.capitalize=nu,p.ceil=km,p.clamp=kv,p.clone=Fy,p.cloneDeep=qy,p.cloneDeepWith=Uy,p.cloneWith=jy,p.conformsTo=My,p.deburr=ou,p.defaultTo=wm,p.divide=zm,p.endsWith=Kv,p.eq=ut,p.escape=Bv,p.escapeRegExp=Wv,p.every=ey,p.find=ry,p.findIndex=Tc,p.findKey=gv,p.findLast=iy,p.findLastIndex=Ac,p.findLastKey=yv,p.floor=Hm,p.forEach=Uc,p.forEachRight=Mc,p.forIn=vv,p.forInRight=mv,p.forOwn=wv,p.forOwnRight=_v,p.get=Ln,p.gt=Ly,p.gte=ky,p.has=Iv,p.hasIn=kn,p.head=Dc,p.identity=Me,p.includes=cy,p.indexOf=ig,p.inRange=zv,p.invoke=Ov,p.isArguments=er,p.isArray=H,p.isArrayBuffer=zy,p.isArrayLike=qe,p.isArrayLikeObject=ge,p.isBoolean=Hy,p.isBuffer=kt,p.isDate=Vy,p.isElement=Ky,p.isEmpty=By,p.isEqual=Wy,p.isEqualWith=Jy,p.isError=Un,p.isFinite=Gy,p.isFunction=St,p.isInteger=Wc,p.isLength=us,p.isMap=Jc,p.isMatch=Qy,p.isMatchWith=Yy,p.isNaN=Zy,p.isNative=Xy,p.isNil=tv,p.isNull=ev,p.isNumber=Gc,p.isObject=le,p.isObjectLike=pe,p.isPlainObject=ri,p.isRegExp=Mn,p.isSafeInteger=rv,p.isSet=Qc,p.isString=hs,p.isSymbol=Be,p.isTypedArray=Ir,p.isUndefined=iv,p.isWeakMap=sv,p.isWeakSet=nv,p.join=cg,p.kebabCase=Jv,p.last=rt,p.lastIndexOf=ug,p.lowerCase=Gv,p.lowerFirst=Qv,p.lt=ov,p.lte=av,p.max=Vm,p.maxBy=Km,p.mean=Bm,p.meanBy=Wm,p.min=Jm,p.minBy=Gm,p.stubArray=Wn,p.stubFalse=Jn,p.stubObject=Dm,p.stubString=Fm,p.stubTrue=jm,p.multiply=Qm,p.nth=hg,p.noConflict=Om,p.noop=Bn,p.now=os,p.pad=Yv,p.padEnd=Zv,p.padStart=Xv,p.parseInt=em,p.random=Hv,p.reduce=fy,p.reduceRight=dy,p.repeat=tm,p.replace=rm,p.result=xv,p.round=Ym,p.runInContext=v,p.sample=yy,p.size=wy,p.snakeCase=im,p.some=_y,p.sortedIndex=vg,p.sortedIndexBy=mg,p.sortedIndexOf=wg,p.sortedLastIndex=_g,p.sortedLastIndexBy=bg,p.sortedLastIndexOf=Eg,p.startCase=nm,p.startsWith=om,p.subtract=Zm,p.sum=Xm,p.sumBy=ew,p.template=am,p.times=qm,p.toFinite=Ot,p.toInteger=V,p.toLength=Zc,p.toLower=cm,p.toNumber=it,p.toSafeInteger=cv,p.toString=te,p.toUpper=um,p.trim=hm,p.trimEnd=lm,p.trimStart=pm,p.truncate=fm,p.unescape=dm,p.uniqueId=Mm,p.upperCase=gm,p.upperFirst=zn,p.each=Uc,p.eachRight=Mc,p.first=Dc,Kn(p,function(){var e={};return dt(p,function(i,n){re.call(p.prototype,n)||(e[n]=i)}),e}(),{chain:!1}),p.VERSION=s,Ye(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){p[e].placeholder=p}),Ye(["drop","take"],function(e,i){G.prototype[e]=function(n){n=n===r?1:_e(V(n),0);var c=this.__filtered__&&!i?new G(this):this.clone();return c.__filtered__?c.__takeCount__=Oe(n,c.__takeCount__):c.__views__.push({size:Oe(n,ft),type:e+(c.__dir__<0?"Right":"")}),c},G.prototype[e+"Right"]=function(n){return this.reverse()[e](n).reverse()}}),Ye(["filter","map","takeWhile"],function(e,i){var n=i+1,c=n==xo||n==hl;G.prototype[e]=function(h){var f=this.clone();return f.__iteratees__.push({iteratee:M(h,3),type:n}),f.__filtered__=f.__filtered__||c,f}}),Ye(["head","last"],function(e,i){var n="take"+(i?"Right":"");G.prototype[e]=function(){return this[n](1).value()[0]}}),Ye(["initial","tail"],function(e,i){var n="drop"+(i?"":"Right");G.prototype[e]=function(){return this.__filtered__?new G(this):this[n](1)}}),G.prototype.compact=function(){return this.filter(Me)},G.prototype.find=function(e){return this.filter(e).head()},G.prototype.findLast=function(e){return this.reverse().find(e)},G.prototype.invokeMap=W(function(e,i){return typeof e=="function"?new G(this):this.map(function(n){return Qr(n,e,i)})}),G.prototype.reject=function(e){return this.filter(cs(M(e)))},G.prototype.slice=function(e,i){e=V(e);var n=this;return n.__filtered__&&(e>0||i<0)?new G(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),i!==r&&(i=V(i),n=i<0?n.dropRight(-i):n.take(i-e)),n)},G.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},G.prototype.toArray=function(){return this.take(ft)},dt(G.prototype,function(e,i){var n=/^(?:filter|find|map|reject)|While$/.test(i),c=/^(?:head|last)$/.test(i),h=p[c?"take"+(i=="last"?"Right":""):i],f=c||/^find/.test(i);h&&(p.prototype[i]=function(){var d=this.__wrapped__,y=c?[1]:arguments,m=d instanceof G,P=y[0],S=m||H(d),R=function(J){var Y=h.apply(p,Dt([J],y));return c&&T?Y[0]:Y};S&&n&&typeof P=="function"&&P.length!=1&&(m=S=!1);var T=this.__chain__,F=!!this.__actions__.length,L=f&&!T,K=m&&!F;if(!f&&S){d=K?d:new G(this);var k=e.apply(d,y);return k.__actions__.push({func:ss,args:[R],thisArg:r}),new Xe(k,T)}return L&&K?e.apply(this,y):(k=this.thru(R),L?c?k.value()[0]:k.value():k)})}),Ye(["pop","push","shift","sort","splice","unshift"],function(e){var i=$i[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",c=/^(?:pop|shift)$/.test(e);p.prototype[e]=function(){var h=arguments;if(c&&!this.__chain__){var f=this.value();return i.apply(H(f)?f:[],h)}return this[n](function(d){return i.apply(H(d)?d:[],h)})}}),dt(G.prototype,function(e,i){var n=p[i];if(n){var c=n.name+"";re.call(mr,c)||(mr[c]=[]),mr[c].push({name:i,func:n})}}),mr[Yi(r,Q).name]=[{name:"wrapper",func:r}],G.prototype.clone=df,G.prototype.reverse=gf,G.prototype.value=yf,p.prototype.at=Kg,p.prototype.chain=Bg,p.prototype.commit=Wg,p.prototype.next=Jg,p.prototype.plant=Qg,p.prototype.reverse=Yg,p.prototype.toJSON=p.prototype.valueOf=p.prototype.value=Zg,p.prototype.first=p.prototype.head,Hr&&(p.prototype[Hr]=Gg),p},gr=Bp();Bt?((Bt.exports=gr)._=gr,Hs._=gr):Ie._=gr}).call(ui)})(_o,_o.exports);var ME=Object.defineProperty,LE=Object.defineProperties,kE=Object.getOwnPropertyDescriptors,hh=Object.getOwnPropertySymbols,zE=Object.prototype.hasOwnProperty,HE=Object.prototype.propertyIsEnumerable,lh=(a,t,r)=>t in a?ME(a,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[t]=r,ds=(a,t)=>{for(var r in t||(t={}))zE.call(t,r)&&lh(a,r,t[r]);if(hh)for(var r of hh(t))HE.call(t,r)&&lh(a,r,t[r]);return a},VE=(a,t)=>LE(a,kE(t));function Vt(a,t,r){var s;const o=p_(a);return((s=t.rpcMap)==null?void 0:s[o.reference])||`${UE}?chainId=${o.namespace}:${o.reference}&projectId=${r}`}function ar(a){return a.includes(":")?a.split(":")[1]:a}function tl(a){return a.map(t=>`${t.split(":")[0]}:${t.split(":")[1]}`)}function KE(a,t){const r=Object.keys(t.namespaces).filter(o=>o.includes(a));if(!r.length)return[];const s=[];return r.forEach(o=>{const u=t.namespaces[o].accounts;s.push(...u)}),s}function BE(a={},t={}){const r=ph(a),s=ph(t);return _o.exports.merge(r,s)}function ph(a){var t,r,s,o;const u={};if(!Nr(a))return u;for(const[l,g]of Object.entries(a)){const w=No(l)?[l]:g.chains,b=g.methods||[],C=g.events||[],O=g.rpcMap||{},N=hi(l);u[N]=VE(ds(ds({},u[N]),g),{chains:Yn(w,(t=u[N])==null?void 0:t.chains),methods:Yn(b,(r=u[N])==null?void 0:r.methods),events:Yn(C,(s=u[N])==null?void 0:s.events),rpcMap:ds(ds({},O),(o=u[N])==null?void 0:o.rpcMap)})}return u}function WE(a){return a.includes(":")?a.split(":")[2]:a}function JE(a){const t={};for(const[r,s]of Object.entries(a)){const o=s.methods||[],u=s.events||[],l=s.accounts||[],g=No(r)?[r]:s.chains?s.chains:tl(s.accounts);t[r]={chains:g,methods:o,events:u,accounts:l}}return t}function so(a){return typeof a=="number"?a:a.includes("0x")?parseInt(a,16):a.includes(":")?Number(a.split(":")[1]):Number(a)}const rl={},ue=a=>rl[a],no=(a,t)=>{rl[a]=t};class GE{constructor(t){this.name="polkadot",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=ar(r);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class QE{constructor(t){this.name="eip155",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(t){switch(t.request.method){case"eth_requestAccounts":return this.getAccounts();case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return await this.handleSwitchChain(t);case"eth_chainId":return parseInt(this.getDefaultChain())}return this.namespace.methods.includes(t.request.method)?await this.client.request(t):this.getHttpProvider().request(t.request)}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(parseInt(t),r),this.chainId=parseInt(t),this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}createHttpProvider(t,r){const s=r||Vt(`${this.name}:${t}`,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=parseInt(ar(r));t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}getHttpProvider(){const t=this.chainId,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}async handleSwitchChain(t){var r,s;let o=t.request.params?(r=t.request.params[0])==null?void 0:r.chainId:"0x0";o=o.startsWith("0x")?o:`0x${o}`;const u=parseInt(o,16);if(this.isChainApproved(u))this.setDefaultChain(`${u}`);else if(this.namespace.methods.includes("wallet_switchEthereumChain"))await this.client.request({topic:t.topic,request:{method:t.request.method,params:[{chainId:o}]},chainId:(s=this.namespace.chains)==null?void 0:s[0]}),this.setDefaultChain(`${u}`);else throw new Error(`Failed to switch to chain 'eip155:${u}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(t){return this.namespace.chains.includes(`${this.name}:${t}`)}}class YE{constructor(t){this.name="solana",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=ar(r);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class ZE{constructor(t){this.name="cosmos",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=ar(r);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class XE{constructor(t){this.name="cip34",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{const s=this.getCardanoRPCUrl(r),o=ar(r);t[o]=this.createHttpProvider(o,s)}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}getCardanoRPCUrl(t){const r=this.namespace.rpcMap;if(r)return r[t]}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||this.getCardanoRPCUrl(t);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class eI{constructor(t){this.name="elrond",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=ar(r);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class tI{constructor(t){this.name="multiversx",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){this.httpProviders[t]||this.setHttpProvider(t,r),this.chainId=t,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;const o=ar(r);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new $t(new Kt(s,ue("disableProviderPing")))}}class rI{constructor(t){this.name="near",this.namespace=t.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,r){if(this.chainId=t,!this.httpProviders[t]){const s=r||Vt(`${this.name}:${t}`,this.namespace);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);this.setHttpProvider(t,s)}this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(r=>{var s;t[r]=this.createHttpProvider(r,(s=this.namespace.rpcMap)==null?void 0:s[r])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,r=this.httpProviders[t];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return r}setHttpProvider(t,r){const s=this.createHttpProvider(t,r);s&&(this.httpProviders[t]=s)}createHttpProvider(t,r){const s=r||Vt(t,this.namespace);return typeof s>"u"?void 0:new $t(new Kt(s,ue("disableProviderPing")))}}var iI=Object.defineProperty,sI=Object.defineProperties,nI=Object.getOwnPropertyDescriptors,fh=Object.getOwnPropertySymbols,oI=Object.prototype.hasOwnProperty,aI=Object.prototype.propertyIsEnumerable,dh=(a,t,r)=>t in a?iI(a,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[t]=r,gs=(a,t)=>{for(var r in t||(t={}))oI.call(t,r)&&dh(a,r,t[r]);if(fh)for(var r of fh(t))aI.call(t,r)&&dh(a,r,t[r]);return a},oo=(a,t)=>sI(a,nI(t));class Ao{constructor(t){this.events=new U.ss,this.rpcProviders={},this.shouldAbortPairingAttempt=!1,this.maxPairingAttempts=10,this.disableProviderPing=!1,this.providerOpts=t,this.logger=typeof(t==null?void 0:t.logger)<"u"&&typeof(t==null?void 0:t.logger)!="string"?t.logger:E.Tt(E.k({level:(t==null?void 0:t.logger)||ch})),this.disableProviderPing=(t==null?void 0:t.disableProviderPing)||!1}static async init(t){const r=new Ao(t);return await r.initialize(),r}async request(t,r){const[s,o]=this.validateChain(r);if(!this.session)throw new Error("Please call connect() before request()");return await this.getProvider(s).request({request:gs({},t),chainId:`${s}:${o}`,topic:this.session.topic})}sendAsync(t,r,s){const o=new Date().getTime();this.request(t,s).then(u=>r(null,E.formatJsonRpcResult(o,u))).catch(u=>r(u,void 0))}async enable(){if(!this.client)throw new Error("Sign Client not initialized");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties}),await this.requestAccounts()}async disconnect(){var t;if(!this.session)throw new Error("Please call connect() before enable()");await this.client.disconnect({topic:(t=this.session)==null?void 0:t.topic,reason:ve("USER_DISCONNECTED")}),await this.cleanup()}async connect(t){if(!this.client)throw new Error("Sign Client not initialized");if(this.setNamespaces(t),await this.cleanupPendingPairings(),!t.skipPairing)return await this.pair(t.pairingTopic)}on(t,r){this.events.on(t,r)}once(t,r){this.events.once(t,r)}removeListener(t,r){this.events.removeListener(t,r)}off(t,r){this.events.off(t,r)}get isWalletConnect(){return!0}async pair(t){this.shouldAbortPairingAttempt=!1;let r=0;do{if(this.shouldAbortPairingAttempt)throw new Error("Pairing aborted");if(r>=this.maxPairingAttempts)throw new Error("Max auto pairing attempts reached");const{uri:s,approval:o}=await this.client.connect({pairingTopic:t,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties});s&&(this.uri=s,this.events.emit("display_uri",s)),await o().then(u=>{this.session=u,this.namespaces||(this.namespaces=JE(u.namespaces),this.persist("namespaces",this.namespaces))}).catch(u=>{if(u.message!==Xh)throw u;r++})}while(!this.session);return this.onConnect(),this.session}setDefaultChain(t,r){try{if(!this.session)return;const[s,o]=this.validateChain(t);this.getProvider(s).setDefaultChain(o,r)}catch(s){if(!/Please call connect/.test(s.message))throw s}}async cleanupPendingPairings(t={}){this.logger.info("Cleaning up inactive pairings...");const r=this.client.pairing.getAll();if(ir(r)){for(const s of r)t.deletePairings?this.client.core.expirer.set(s.topic,0):await this.client.core.relayer.subscriber.unsubscribe(s.topic);this.logger.info(`Inactive pairings cleared: ${r.length}`)}}abortPairingAttempt(){this.shouldAbortPairingAttempt=!0}async checkStorage(){if(this.namespaces=await this.getFromStore("namespaces"),this.optionalNamespaces=await this.getFromStore("optionalNamespaces")||{},this.client.session.length){const t=this.client.session.keys.length-1;this.session=this.client.session.get(this.client.session.keys[t]),this.createProviders()}}async initialize(){this.logger.trace("Initialized"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){this.client=this.providerOpts.client||await PE.init({logger:this.providerOpts.logger||ch,relayUrl:this.providerOpts.relayUrl||FE,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name}),this.logger.trace("SignClient Initialized")}createProviders(){if(!this.client)throw new Error("Sign Client not initialized");if(!this.session)throw new Error("Session not initialized. Please call connect() before enable()");const t=[...new Set(Object.keys(this.session.namespaces).map(r=>hi(r)))];no("client",this.client),no("events",this.events),no("disableProviderPing",this.disableProviderPing),t.forEach(r=>{if(!this.session)return;const s=KE(r,this.session),o=tl(s),u=BE(this.namespaces,this.optionalNamespaces),l=oo(gs({},u[r]),{accounts:s,chains:o});switch(r){case"eip155":this.rpcProviders[r]=new QE({namespace:l});break;case"solana":this.rpcProviders[r]=new YE({namespace:l});break;case"cosmos":this.rpcProviders[r]=new ZE({namespace:l});break;case"polkadot":this.rpcProviders[r]=new GE({namespace:l});break;case"cip34":this.rpcProviders[r]=new XE({namespace:l});break;case"elrond":this.rpcProviders[r]=new eI({namespace:l});break;case"multiversx":this.rpcProviders[r]=new tI({namespace:l});break;case"near":this.rpcProviders[r]=new rI({namespace:l});break}})}registerEventListeners(){if(typeof this.client>"u")throw new Error("Sign Client is not initialized");this.client.on("session_ping",t=>{this.events.emit("session_ping",t)}),this.client.on("session_event",t=>{const{params:r}=t,{event:s}=r;if(s.name==="accountsChanged"){const o=s.data;o&&ir(o)&&this.events.emit("accountsChanged",o.map(WE))}else if(s.name==="chainChanged"){const o=r.chainId,u=r.event.data,l=hi(o),g=so(o)!==so(u)?`${l}:${so(u)}`:o;this.onChainChanged(g)}else this.events.emit(s.name,s.data);this.events.emit("session_event",t)}),this.client.on("session_update",({topic:t,params:r})=>{var s;const{namespaces:o}=r,u=(s=this.client)==null?void 0:s.session.get(t);this.session=oo(gs({},u),{namespaces:o}),this.onSessionUpdate(),this.events.emit("session_update",{topic:t,params:r})}),this.client.on("session_delete",async t=>{await this.cleanup(),this.events.emit("session_delete",t),this.events.emit("disconnect",oo(gs({},ve("USER_DISCONNECTED")),{data:t.topic}))}),this.on(Tt.DEFAULT_CHAIN_CHANGED,t=>{this.onChainChanged(t,!0)})}getProvider(t){if(!this.rpcProviders[t])throw new Error(`Provider not found: ${t}`);return this.rpcProviders[t]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(t=>{var r;this.getProvider(t).updateNamespace((r=this.session)==null?void 0:r.namespaces[t])})}setNamespaces(t){const{namespaces:r,optionalNamespaces:s,sessionProperties:o}=t;r&&Object.keys(r).length&&(this.namespaces=r),s&&Object.keys(s).length&&(this.optionalNamespaces=s),this.sessionProperties=o,this.persist("namespaces",r),this.persist("optionalNamespaces",s)}validateChain(t){const[r,s]=(t==null?void 0:t.split(":"))||["",""];if(!this.namespaces||!Object.keys(this.namespaces).length)return[r,s];if(r&&!Object.keys(this.namespaces||{}).map(l=>hi(l)).includes(r))throw new Error(`Namespace '${r}' is not configured. Please call connect() first with namespace config.`);if(r&&s)return[r,s];const o=hi(Object.keys(this.namespaces)[0]),u=this.rpcProviders[o].getDefaultChain();return[o,u]}async requestAccounts(){const[t]=this.validateChain();return await this.getProvider(t).requestAccounts()}onChainChanged(t,r=!1){var s;if(!this.namespaces)return;const[o,u]=this.validateChain(t);r||this.getProvider(o).setDefaultChain(u),((s=this.namespaces[o])!=null?s:this.namespaces[`${o}:${u}`]).defaultChain=u,this.persist("namespaces",this.namespaces),this.events.emit("chainChanged",u)}onConnect(){this.createProviders(),this.events.emit("connect",{session:this.session})}async cleanup(){this.session=void 0,this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,this.persist("namespaces",void 0),this.persist("optionalNamespaces",void 0),this.persist("sessionProperties",void 0),await this.cleanupPendingPairings({deletePairings:!0})}persist(t,r){this.client.core.storage.setItem(`${uh}/${t}`,r)}async getFromStore(t){return await this.client.core.storage.getItem(`${uh}/${t}`)}}const cI=Ao,uI="wc",hI="ethereum_provider",lI=`${uI}@2:${hI}:`,pI="https://rpc.walletconnect.com/v1/",_s=["eth_sendTransaction","personal_sign"],il=["eth_accounts","eth_requestAccounts","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","eth_sendTransaction","personal_sign","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode"],bs=["chainChanged","accountsChanged"],sl=["chainChanged","accountsChanged","message","disconnect","connect"];var fI=Object.defineProperty,dI=Object.defineProperties,gI=Object.getOwnPropertyDescriptors,gh=Object.getOwnPropertySymbols,yI=Object.prototype.hasOwnProperty,vI=Object.prototype.propertyIsEnumerable,yh=(a,t,r)=>t in a?fI(a,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[t]=r,pi=(a,t)=>{for(var r in t||(t={}))yI.call(t,r)&&yh(a,r,t[r]);if(gh)for(var r of gh(t))vI.call(t,r)&&yh(a,r,t[r]);return a},vh=(a,t)=>dI(a,gI(t));function Es(a){return Number(a[0].split(":")[1])}function ao(a){return`0x${a.toString(16)}`}function mI(a){const{chains:t,optionalChains:r,methods:s,optionalMethods:o,events:u,optionalEvents:l,rpcMap:g}=a;if(!co(t))throw new Error("Invalid chains");const w={chains:t,methods:s||_s,events:u||bs,rpcMap:pi({},t.length?{[Es(t)]:g[Es(t)]}:{})},b=u==null?void 0:u.filter(q=>!bs.includes(q)),C=s==null?void 0:s.filter(q=>!_s.includes(q));if(!r&&!l&&!o&&!(b!=null&&b.length)&&!(C!=null&&C.length))return{required:t.length?w:void 0};const O=(b==null?void 0:b.length)&&(C==null?void 0:C.length)||!r,N={chains:[...new Set(O?w.chains.concat(r||[]):r)],methods:[...new Set(w.methods.concat(o!=null&&o.length?o:il))],events:[...new Set(w.events.concat(l!=null&&l.length?l:sl))],rpcMap:g};return{required:t.length?w:void 0,optional:r.length?N:void 0}}class Os{constructor(){this.events=new U.eventsExports.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.STORAGE_KEY=lI,this.on=(t,r)=>(this.events.on(t,r),this),this.once=(t,r)=>(this.events.once(t,r),this),this.removeListener=(t,r)=>(this.events.removeListener(t,r),this),this.off=(t,r)=>(this.events.off(t,r),this),this.parseAccount=t=>this.isCompatibleChainId(t)?this.parseAccountId(t).address:t,this.signer={},this.rpc={}}static async init(t){const r=new Os;return await r.initialize(t),r}async request(t){return await this.signer.request(t,this.formatChainId(this.chainId))}sendAsync(t,r){this.signer.sendAsync(t,r,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(t){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(t);const{required:r,optional:s}=mI(this.rpc);try{const o=await new Promise(async(l,g)=>{var w;this.rpc.showQrModal&&((w=this.modal)==null||w.subscribeModal(b=>{!b.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),g(new Error("Connection request reset. Please try again.")))})),await this.signer.connect(vh(pi({namespaces:pi({},r&&{[this.namespace]:r})},s&&{optionalNamespaces:{[this.namespace]:s}}),{pairingTopic:t==null?void 0:t.pairingTopic})).then(b=>{l(b)}).catch(b=>{g(new Error(b.message))})});if(!o)return;const u=pw(o.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:u),this.setAccounts(u),this.events.emit("connect",{chainId:ao(this.chainId)})}catch(o){throw this.signer.logger.error(o),o}finally{this.modal&&this.modal.closeModal()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",t=>{const{params:r}=t,{event:s}=r;s.name==="accountsChanged"?(this.accounts=this.parseAccounts(s.data),this.events.emit("accountsChanged",this.accounts)):s.name==="chainChanged"?this.setChainId(this.formatChainId(s.data)):this.events.emit(s.name,s.data),this.events.emit("session_event",t)}),this.signer.on("chainChanged",t=>{const r=parseInt(t);this.chainId=r,this.events.emit("chainChanged",ao(this.chainId)),this.persist()}),this.signer.on("session_update",t=>{this.events.emit("session_update",t)}),this.signer.on("session_delete",t=>{this.reset(),this.events.emit("session_delete",t),this.events.emit("disconnect",vh(pi({},dw("USER_DISCONNECTED")),{data:t.topic,name:"USER_DISCONNECTED"}))}),this.signer.on("display_uri",t=>{var r,s;this.rpc.showQrModal&&((r=this.modal)==null||r.closeModal(),(s=this.modal)==null||s.openModal({uri:t})),this.events.emit("display_uri",t)})}switchEthereumChain(t){this.request({method:"wallet_switchEthereumChain",params:[{chainId:t.toString(16)}]})}isCompatibleChainId(t){return typeof t=="string"?t.startsWith(`${this.namespace}:`):!1}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(":")[1])}setChainIds(t){const r=t.filter(s=>this.isCompatibleChainId(s)).map(s=>this.parseChainId(s));r.length&&(this.chainId=r[0],this.events.emit("chainChanged",ao(this.chainId)),this.persist())}setChainId(t){if(this.isCompatibleChainId(t)){const r=this.parseChainId(t);this.chainId=r,this.switchEthereumChain(r)}}parseAccountId(t){const[r,s,o]=t.split(":");return{chainId:`${r}:${s}`,address:o}}setAccounts(t){this.accounts=t.filter(r=>this.parseChainId(this.parseAccountId(r).chainId)===this.chainId).map(r=>this.parseAccountId(r).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(t){var r,s;const o=(r=t==null?void 0:t.chains)!=null?r:[],u=(s=t==null?void 0:t.optionalChains)!=null?s:[],l=o.concat(u);if(!l.length)throw new Error("No chains specified in either `chains` or `optionalChains`");const g=o.length?(t==null?void 0:t.methods)||_s:[],w=o.length?(t==null?void 0:t.events)||bs:[],b=(t==null?void 0:t.optionalMethods)||[],C=(t==null?void 0:t.optionalEvents)||[],O=(t==null?void 0:t.rpcMap)||this.buildRpcMap(l,t.projectId),N=(t==null?void 0:t.qrModalOptions)||void 0;return{chains:o==null?void 0:o.map(q=>this.formatChainId(q)),optionalChains:u.map(q=>this.formatChainId(q)),methods:g,events:w,optionalMethods:b,optionalEvents:C,rpcMap:O,showQrModal:!!(t!=null&&t.showQrModal),qrModalOptions:N,projectId:t.projectId,metadata:t.metadata}}buildRpcMap(t,r){const s={};return t.forEach(o=>{s[o]=this.getRpcUrl(o,r)}),s}async initialize(t){if(this.rpc=this.getRpcConfig(t),this.chainId=this.rpc.chains.length?Es(this.rpc.chains):Es(this.rpc.optionalChains),this.signer=await cI.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:t.disableProviderPing,relayUrl:t.relayUrl,storageOptions:t.storageOptions}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let r;try{const{WalletConnectModal:s}=await Promise.resolve().then(()=>require("./index-BZh72NtL.js")).then(o=>o.index);r=s}catch{throw new Error("To use QR modal, please install @walletconnect/modal package")}if(r)try{this.modal=new r(pi({projectId:this.rpc.projectId},this.rpc.qrModalOptions))}catch(s){throw this.signer.logger.error(s),new Error("Could not generate WalletConnectModal Instance")}}}loadConnectOpts(t){if(!t)return;const{chains:r,optionalChains:s,rpcMap:o}=t;r&&co(r)&&(this.rpc.chains=r.map(u=>this.formatChainId(u)),r.forEach(u=>{this.rpc.rpcMap[u]=(o==null?void 0:o[u])||this.getRpcUrl(u)})),s&&co(s)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=s==null?void 0:s.map(u=>this.formatChainId(u)),s.forEach(u=>{this.rpc.rpcMap[u]=(o==null?void 0:o[u])||this.getRpcUrl(u)}))}getRpcUrl(t,r){var s;return((s=this.rpc.rpcMap)==null?void 0:s[t])||`${pI}?chainId=eip155:${t}&projectId=${r||this.rpc.projectId}`}async loadPersistedSession(){if(!this.session)return;const t=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),r=this.session.namespaces[`${this.namespace}:${t}`]?this.session.namespaces[`${this.namespace}:${t}`]:this.session.namespaces[this.namespace];this.setChainIds(t?[this.formatChainId(t)]:r==null?void 0:r.accounts),this.setAccounts(r==null?void 0:r.accounts)}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(t){return typeof t=="string"||t instanceof String?[this.parseAccount(t)]:t.map(r=>this.parseAccount(r))}}const wI=Os;exports.EthereumProvider=wI;exports.OPTIONAL_EVENTS=sl;exports.OPTIONAL_METHODS=il;exports.REQUIRED_EVENTS=bs;exports.REQUIRED_METHODS=_s;exports.default=Os;
@@ -1,7 +1,7 @@
1
- import { d3 as xo, d4 as ot, at as Z, au as Ow, d5 as Do, c$ as $u } from "./index-m0543tB2.mjs";
2
- import { s as Fo, x as Lh, r as kh, H as Rw, c as zh, q as Ss } from "./evm--NPB9x1d.mjs";
3
- import { c as F } from "./index-FGc8swXY.mjs";
4
- import { I as ur, f as gt, t as nt, c as Cu, C as $w, d as Cw, r as Nw, a as xr, g as Hh, i as bt, b as Cs, e as Nu, h as Tw, j as Aw, k as Ns, p as Vh, T as Ts, l as As, E as ke, m as xw, y as Qe, P as Tu, Q as Dw, n as Fw, o as qo, q as xs, s as Bt, _ as qw, u as jw, v as Au } from "./index-Bi6PAFR8.mjs";
1
+ import { dm as xo, dn as ot, at as Z, au as Ow, dp as Do, di as $u } from "./index-LdDD7AAy.mjs";
2
+ import { s as Fo, x as Lh, r as kh, H as Rw, c as zh, q as Ss } from "./evm-DAHEa0cY.mjs";
3
+ import { c as F } from "./index-Cs1dlfzD.mjs";
4
+ import { I as ur, f as gt, t as nt, c as Cu, C as $w, d as Cw, r as Nw, a as xr, g as Hh, i as bt, b as Cs, e as Nu, h as Tw, j as Aw, k as Ns, p as Vh, T as Ts, l as As, E as ke, m as xw, y as Qe, P as Tu, Q as Dw, n as Fw, o as qo, q as xs, s as Bt, _ as qw, u as jw, v as Au } from "./index-BeYO1LV3.mjs";
5
5
  var se = {};
6
6
  Object.defineProperty(se, "__esModule", { value: !0 });
7
7
  se.getLocalStorage = se.getLocalStorageOrThrow = se.getCrypto = se.getCryptoOrThrow = se.getLocation = se.getLocationOrThrow = se.getNavigator = se.getNavigatorOrThrow = se.getDocument = se.getDocumentOrThrow = se.getFromWindowOrThrow = se.getFromWindow = void 0;
@@ -7673,7 +7673,7 @@ class Qo {
7673
7673
  if (this.rpc = this.getRpcConfig(t), this.chainId = this.rpc.chains.length ? $s(this.rpc.chains) : $s(this.rpc.optionalChains), this.signer = await KI.init({ projectId: this.rpc.projectId, metadata: this.rpc.metadata, disableProviderPing: t.disableProviderPing, relayUrl: t.relayUrl, storageOptions: t.storageOptions }), this.registerEventListeners(), await this.loadPersistedSession(), this.rpc.showQrModal) {
7674
7674
  let r;
7675
7675
  try {
7676
- const { WalletConnectModal: s } = await import("./index-C5tynAhb.mjs").then((o) => o.i);
7676
+ const { WalletConnectModal: s } = await import("./index-C27ZY3oS.mjs").then((o) => o.i);
7677
7677
  r = s;
7678
7678
  } catch {
7679
7679
  throw new Error("To use QR modal, please install @walletconnect/modal package");
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const R=require("./index-wsfzS6PN.js");exports.AutomaticCCTPRoute=R.AutomaticCCTPRoute;exports.AutomaticPorticoRoute=R.AutomaticPorticoRoute;exports.AutomaticTokenBridgeRoute=R.AutomaticTokenBridgeRoute;exports.CCTPRoute=R.CCTPRoute;exports.DEFAULT_ROUTES=R.DEFAULT_ROUTES;exports.ERR_AMOUNT_TOO_LARGE=R.ERR_AMOUNT_TOO_LARGE;exports.ERR_AMOUNT_TOO_SMALL=R.ERR_AMOUNT_TOO_SMALL;exports.ERR_DESTINATION_CONTRACT_PAUSED=R.ERR_DESTINATION_CONTRACT_PAUSED;exports.ERR_INSUFFICIENT_ALLOWANCE=R.ERR_INSUFFICIENT_ALLOWANCE;exports.ERR_INSUFFICIENT_GAS=R.ERR_INSUFFICIENT_GAS;exports.ERR_NOT_ENOUGH_CAPACITY=R.ERR_NOT_ENOUGH_CAPACITY;exports.ERR_SOURCE_CONTRACT_PAUSED=R.ERR_SOURCE_CONTRACT_PAUSED;exports.ERR_TIMEOUT=R.ERR_TIMEOUT;exports.ERR_UNKNOWN=R.ERR_UNKNOWN;exports.ERR_UNSUPPORTED_ABI_VERSION=R.ERR_UNSUPPORTED_ABI_VERSION;exports.ERR_USER_REJECTED=R.ERR_USER_REJECTED;exports.MAINNET=R.MAINNET;exports.MayanRoute=R.MayanRoute;exports.MayanRouteMCTP=R.MayanRouteMCTP;exports.MayanRouteSHUTTLE=R.MayanRouteSHUTTLE;exports.MayanRouteSWIFT=R.MayanRouteSWIFT;exports.MayanRouteWH=R.MayanRouteWH;exports.TESTNET=R.TESTNET;exports.Token=R.Token;exports.TokenBridgeRoute=R.TokenBridgeRoute;exports.buildConfig=R.buildConfig;exports.default=R.WormholeConnect;exports.getTokenDetails=R.getTokenDetails;exports.getTransferDetails=R.getTransferDetails;exports.nttAutomaticRoute=R.nttAutomaticRoute;exports.nttManualRoute=R.nttManualRoute;exports.nttRoutes=R.nttRoutes;exports.wormholeConnectHosted=R.wormholeConnectHosted;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const R=require("./index-Bhgci81L.js");exports.AutomaticCCTPRoute=R.AutomaticCCTPRoute;exports.AutomaticPorticoRoute=R.AutomaticPorticoRoute;exports.AutomaticTokenBridgeRoute=R.AutomaticTokenBridgeRoute;exports.CCTPRoute=R.CCTPRoute;exports.DEFAULT_ROUTES=R.DEFAULT_ROUTES;exports.ERR_AMOUNT_TOO_LARGE=R.ERR_AMOUNT_TOO_LARGE;exports.ERR_AMOUNT_TOO_SMALL=R.ERR_AMOUNT_TOO_SMALL;exports.ERR_DESTINATION_CONTRACT_PAUSED=R.ERR_DESTINATION_CONTRACT_PAUSED;exports.ERR_INSUFFICIENT_ALLOWANCE=R.ERR_INSUFFICIENT_ALLOWANCE;exports.ERR_INSUFFICIENT_GAS=R.ERR_INSUFFICIENT_GAS;exports.ERR_NOT_ENOUGH_CAPACITY=R.ERR_NOT_ENOUGH_CAPACITY;exports.ERR_SOURCE_CONTRACT_PAUSED=R.ERR_SOURCE_CONTRACT_PAUSED;exports.ERR_TIMEOUT=R.ERR_TIMEOUT;exports.ERR_UNKNOWN=R.ERR_UNKNOWN;exports.ERR_UNSUPPORTED_ABI_VERSION=R.ERR_UNSUPPORTED_ABI_VERSION;exports.ERR_USER_REJECTED=R.ERR_USER_REJECTED;exports.MAINNET=R.MAINNET;exports.MayanRoute=R.MayanRoute;exports.MayanRouteMCTP=R.MayanRouteMCTP;exports.MayanRouteSHUTTLE=R.MayanRouteSHUTTLE;exports.MayanRouteSWIFT=R.MayanRouteSWIFT;exports.MayanRouteWH=R.MayanRouteWH;exports.TESTNET=R.TESTNET;exports.Token=R.Token;exports.TokenBridgeRoute=R.TokenBridgeRoute;exports.buildConfig=R.buildConfig;exports.default=R.WormholeConnect;exports.getTokenDetails=R.getTokenDetails;exports.getTransferDetails=R.getTransferDetails;exports.nttAutomaticRoute=R.nttAutomaticRoute;exports.nttManualRoute=R.nttManualRoute;exports.nttRoutes=R.nttRoutes;exports.wormholeConnectHosted=R.wormholeConnectHosted;
package/lib/index.mjs CHANGED
@@ -1,36 +1,36 @@
1
- import { dw as s, dy as d, du as t, dx as T, dq as E, dN as o, dO as e, dK as _, dH as A, dM as N, dI as u, dJ as C, dQ as O, dR as n, dL as U, dP as I, dl as S, dz as M, dB as i, dD as P, dC as r, dA as D, dm as L, dp as l, dv as m, dn as F, dk as c, dF as y, dG as g, ds as k, dt as H, dr as f, dE as B } from "./index-m0543tB2.mjs";
1
+ import { dP as e, dR as s, dN as t, dQ as T, dJ as E, e4 as o, e5 as d, e1 as _, d_ as N, e3 as A, d$ as u, e0 as O, e7 as C, e8 as n, e2 as U, e6 as S, dF as I, dS as M, dU as i, dW as P, dV as r, dT as D, dG as L, dI as F, dO as c, dH as l, dE as m, dY as g, dZ as y, dL as H, dM as W, dK as f, dX as k } from "./index-LdDD7AAy.mjs";
2
2
  export {
3
- s as AutomaticCCTPRoute,
4
- d as AutomaticPorticoRoute,
3
+ e as AutomaticCCTPRoute,
4
+ s as AutomaticPorticoRoute,
5
5
  t as AutomaticTokenBridgeRoute,
6
6
  T as CCTPRoute,
7
7
  E as DEFAULT_ROUTES,
8
8
  o as ERR_AMOUNT_TOO_LARGE,
9
- e as ERR_AMOUNT_TOO_SMALL,
9
+ d as ERR_AMOUNT_TOO_SMALL,
10
10
  _ as ERR_DESTINATION_CONTRACT_PAUSED,
11
- A as ERR_INSUFFICIENT_ALLOWANCE,
12
- N as ERR_INSUFFICIENT_GAS,
11
+ N as ERR_INSUFFICIENT_ALLOWANCE,
12
+ A as ERR_INSUFFICIENT_GAS,
13
13
  u as ERR_NOT_ENOUGH_CAPACITY,
14
- C as ERR_SOURCE_CONTRACT_PAUSED,
15
- O as ERR_TIMEOUT,
14
+ O as ERR_SOURCE_CONTRACT_PAUSED,
15
+ C as ERR_TIMEOUT,
16
16
  n as ERR_UNKNOWN,
17
17
  U as ERR_UNSUPPORTED_ABI_VERSION,
18
- I as ERR_USER_REJECTED,
19
- S as MAINNET,
18
+ S as ERR_USER_REJECTED,
19
+ I as MAINNET,
20
20
  M as MayanRoute,
21
21
  i as MayanRouteMCTP,
22
22
  P as MayanRouteSHUTTLE,
23
23
  r as MayanRouteSWIFT,
24
24
  D as MayanRouteWH,
25
25
  L as TESTNET,
26
- l as Token,
27
- m as TokenBridgeRoute,
28
- F as buildConfig,
29
- c as default,
30
- y as getTokenDetails,
31
- g as getTransferDetails,
32
- k as nttAutomaticRoute,
33
- H as nttManualRoute,
26
+ F as Token,
27
+ c as TokenBridgeRoute,
28
+ l as buildConfig,
29
+ m as default,
30
+ g as getTokenDetails,
31
+ y as getTransferDetails,
32
+ H as nttAutomaticRoute,
33
+ W as nttManualRoute,
34
34
  f as nttRoutes,
35
- B as wormholeConnectHosted
35
+ k as wormholeConnectHosted
36
36
  };
@@ -1,7 +1,7 @@
1
1
  var S = Object.defineProperty;
2
2
  var x = (i, t, e) => t in i ? S(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;
3
3
  var m = (i, t, e) => x(i, typeof t != "symbol" ? t + "" : t, e);
4
- import { aY as I, aZ as R, aR as y, X as _, a_ as A, a$ as M, b0 as L, b1 as U, aS as O, aT as w, aa as C } from "./index-m0543tB2.mjs";
4
+ import { aY as I, aZ as R, aR as y, X as _, a_ as A, a$ as M, b0 as L, b1 as U, aS as O, aT as w, aa as C } from "./index-LdDD7AAy.mjs";
5
5
  const b = 0.5, F = 1, E = 1, T = 1e8, k = 5, D = 25e4;
6
6
  async function N(i, t, e) {
7
7
  const [s, r] = await _.chainFromRpc(i), n = typeof t == "string" ? A.fromSecretKey(M.decode(t)) : t;
@@ -1 +1 @@
1
- "use strict";var k=Object.defineProperty;var B=(i,t,e)=>t in i?k(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var f=(i,t,e)=>B(i,typeof t!="symbol"?t+"":t,e);const a=require("./index-wsfzS6PN.js"),y=.5,F=1,b=1,E=1e8,T=5,x=25e4;async function I(i,t,e){const[n,r]=await a.SolanaPlatform.chainFromRpc(i),s=typeof t=="string"?a.Keypair.fromSecretKey(a.b58.decode(t)):t;if(e!=null&&e.priorityFee&&e.priorityFee.percentile&&e.priorityFee.percentile>1)throw new Error("priorityFeePercentile must be a number between 0 and 1");return new R(i,r,s,(e==null?void 0:e.debug)??!1,(e==null?void 0:e.priorityFee)??{},(e==null?void 0:e.retries)??T,e==null?void 0:e.sendOpts)}class R{constructor(t,e,n,r=!1,s,c=T,d){f(this,"_rpc");f(this,"_chain");f(this,"_keypair");f(this,"_debug");f(this,"_priorityFee");f(this,"_maxResubmits");f(this,"_sendOpts");this._rpc=t,this._chain=e,this._keypair=n,this._debug=r,this._priorityFee=s,this._maxResubmits=c,this._sendOpts=d,this._sendOpts=this._sendOpts??{preflightCommitment:this._rpc.commitment}}chain(){return this._chain}address(){return this._keypair.publicKey.toBase58()}retryable(t){var n;if(t instanceof a.TransactionExpiredBlockheightExceededError)return!0;if(!(t instanceof a.SendTransactionError)||!t.message.includes("Transaction simulation failed"))return!1;if(t.message.includes("Blockhash not found"))return!0;const e=(n=t.logs)==null?void 0:n.find(r=>r.startsWith("Program log: Error: "));return e?!!(e.includes("Not enough bytes")||e.includes("Unexpected length of input")):!1}async signAndSend(t){var d;let{blockhash:e,lastValidBlockHeight:n}=await a.SolanaPlatform.latestBlock(this._rpc);const r=[];for(const l of t){const{description:g,transaction:{transaction:o,signers:u}}=l;this._debug&&console.log(`Signing: ${g} for ${this.address()}`);let h;(d=this._priorityFee)!=null&&d.percentile&&this._priorityFee.percentile>0&&(h=await M(this._rpc,o,this._priorityFee.percentile,this._priorityFee.percentileMultiple,this._priorityFee.min,this._priorityFee.max)),this._debug&&A(o);for(let m=0;m<this._maxResubmits;m++)try{if(a.isVersionedTransaction(o)){if(h&&m===0){const _=a.TransactionMessage.decompile(o.message);_.instructions.push(...h),o.message=_.compileToV0Message()}o.message.recentBlockhash=e,o.sign([this._keypair,...u??[]])}else h&&m===0&&o.add(...h),o.recentBlockhash=e,o.lastValidBlockHeight=n,o.partialSign(this._keypair,...u??[]);this._debug&&console.log("Submitting transactions ");const{signature:p}=await a.SolanaPlatform.sendTxWithRetry(this._rpc,o.serialize(),this._sendOpts);r.push(p);break}catch(p){if(m===this._maxResubmits-1||!this.retryable(p))throw p;this._debug&&console.log(`Failed to send transaction on attempt ${m}, retrying: `,p);const{blockhash:_,lastValidBlockHeight:S}=await a.SolanaPlatform.latestBlock(this._rpc);n=S,e=_}}this._debug&&console.log("Waiting for confirmation for: ",r);const c=(await Promise.all(r.map(async l=>{try{return await this._rpc.confirmTransaction({signature:l,blockhash:e,lastValidBlockHeight:n},this._rpc.commitment)}catch(g){throw console.error("Failed to confirm transaction: ",g),g}}))).filter(l=>l.value.err).map(l=>l.value.err);if(c.length>0)throw new Error(`Failed to confirm transaction: ${c}`);return r}}function A(i){if(a.isVersionedTransaction(i)){console.log(i.signatures);const t=i.message,e=t.getAccountKeys();t.compiledInstructions.forEach(n=>{console.log("Program",e.get(n.programIdIndex).toBase58()),console.log("Data: ",a.hex.encode(n.data)),console.log("Keys: ",n.accountKeyIndexes.map(r=>[r,e.get(r).toBase58()]))})}else console.log(i.signatures),console.log(i.feePayer),i.instructions.forEach(t=>{console.log("Program",t.programId.toBase58()),console.log("Data: ",t.data.toString("hex")),console.log("Keys: ",t.keys.map(e=>[e,e.pubkey.toBase58()]))})}async function M(i,t,e=y,n=F,r=b,s=E){const[c,d]=await Promise.all([L(i,t),P(i,t,e,n,r,s)]);return[a.ComputeBudgetProgram.setComputeUnitLimit({units:c}),a.ComputeBudgetProgram.setComputeUnitPrice({microLamports:d})]}async function L(i,t){var n;let e=x;try{const r=await(a.isVersionedTransaction(t),i.simulateTransaction(t));r.value.err&&console.error(`Error simulating Solana transaction: ${r.value.err}`),(n=r==null?void 0:r.value)!=null&&n.unitsConsumed&&(e=Math.round(r.value.unitsConsumed*1.2))}catch(r){console.error(`Failed to calculate compute unit limit for Solana transaction: ${r}`)}return e}async function w(i,t){if(a.isVersionedTransaction(t)){const e=(await Promise.all(t.message.addressTableLookups.map(s=>i.getAddressLookupTable(s.accountKey)))).map(s=>s.value).filter(s=>s!==null),n=t.message,r=n.getAccountKeys({addressLookupTableAccounts:e??void 0});return n.compiledInstructions.flatMap(s=>s.accountKeyIndexes).map(s=>n.isAccountWritable(s)?r.get(s):null).filter(Boolean)}else return t.instructions.flatMap(e=>e.keys).map(e=>e.isWritable?e.pubkey:null).filter(Boolean)}async function P(i,t,e=y,n=F,r=b,s=E){let c=r;const d=await w(i,t);try{const l=await i.getRecentPrioritizationFees({lockedWritableAccounts:d});if(l){const g=l.map(u=>u.prioritizationFee).sort((u,h)=>u-h),o=Math.ceil(g.length*e);if(g.length>o){let u=g[o];n>0&&(u*=n),c=Math.max(c,u)}}}catch(l){console.error("Error fetching Solana recent fees",l)}return Math.min(Math.max(c,r),s)}async function U(i,t,e=y,n=F,r=b,s=E){const c=e*1e4;if(c<1||c>1e4)throw new Error("percentile must be between 0.0001 and 1");const d=i._rpcRequest,g=[await w(i,t),{percentile:c}],o=await d("getRecentPrioritizationFees",g);if(o.error)throw new Error(o.error);const u=o.result.map(m=>m.prioritizationFee);if(u.length===0)return r;const h=Math.floor(a.median(u)*(n>0?n:1));return a.bound(h,r,s)}exports.determinePriorityFee=P;exports.determinePriorityFeeTritonOne=U;exports.getSolanaSignAndSendSigner=I;
1
+ "use strict";var k=Object.defineProperty;var B=(i,t,e)=>t in i?k(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var f=(i,t,e)=>B(i,typeof t!="symbol"?t+"":t,e);const a=require("./index-Bhgci81L.js"),y=.5,F=1,b=1,E=1e8,T=5,x=25e4;async function I(i,t,e){const[n,r]=await a.SolanaPlatform.chainFromRpc(i),s=typeof t=="string"?a.Keypair.fromSecretKey(a.b58.decode(t)):t;if(e!=null&&e.priorityFee&&e.priorityFee.percentile&&e.priorityFee.percentile>1)throw new Error("priorityFeePercentile must be a number between 0 and 1");return new R(i,r,s,(e==null?void 0:e.debug)??!1,(e==null?void 0:e.priorityFee)??{},(e==null?void 0:e.retries)??T,e==null?void 0:e.sendOpts)}class R{constructor(t,e,n,r=!1,s,c=T,d){f(this,"_rpc");f(this,"_chain");f(this,"_keypair");f(this,"_debug");f(this,"_priorityFee");f(this,"_maxResubmits");f(this,"_sendOpts");this._rpc=t,this._chain=e,this._keypair=n,this._debug=r,this._priorityFee=s,this._maxResubmits=c,this._sendOpts=d,this._sendOpts=this._sendOpts??{preflightCommitment:this._rpc.commitment}}chain(){return this._chain}address(){return this._keypair.publicKey.toBase58()}retryable(t){var n;if(t instanceof a.TransactionExpiredBlockheightExceededError)return!0;if(!(t instanceof a.SendTransactionError)||!t.message.includes("Transaction simulation failed"))return!1;if(t.message.includes("Blockhash not found"))return!0;const e=(n=t.logs)==null?void 0:n.find(r=>r.startsWith("Program log: Error: "));return e?!!(e.includes("Not enough bytes")||e.includes("Unexpected length of input")):!1}async signAndSend(t){var d;let{blockhash:e,lastValidBlockHeight:n}=await a.SolanaPlatform.latestBlock(this._rpc);const r=[];for(const l of t){const{description:g,transaction:{transaction:o,signers:u}}=l;this._debug&&console.log(`Signing: ${g} for ${this.address()}`);let h;(d=this._priorityFee)!=null&&d.percentile&&this._priorityFee.percentile>0&&(h=await M(this._rpc,o,this._priorityFee.percentile,this._priorityFee.percentileMultiple,this._priorityFee.min,this._priorityFee.max)),this._debug&&A(o);for(let m=0;m<this._maxResubmits;m++)try{if(a.isVersionedTransaction(o)){if(h&&m===0){const _=a.TransactionMessage.decompile(o.message);_.instructions.push(...h),o.message=_.compileToV0Message()}o.message.recentBlockhash=e,o.sign([this._keypair,...u??[]])}else h&&m===0&&o.add(...h),o.recentBlockhash=e,o.lastValidBlockHeight=n,o.partialSign(this._keypair,...u??[]);this._debug&&console.log("Submitting transactions ");const{signature:p}=await a.SolanaPlatform.sendTxWithRetry(this._rpc,o.serialize(),this._sendOpts);r.push(p);break}catch(p){if(m===this._maxResubmits-1||!this.retryable(p))throw p;this._debug&&console.log(`Failed to send transaction on attempt ${m}, retrying: `,p);const{blockhash:_,lastValidBlockHeight:S}=await a.SolanaPlatform.latestBlock(this._rpc);n=S,e=_}}this._debug&&console.log("Waiting for confirmation for: ",r);const c=(await Promise.all(r.map(async l=>{try{return await this._rpc.confirmTransaction({signature:l,blockhash:e,lastValidBlockHeight:n},this._rpc.commitment)}catch(g){throw console.error("Failed to confirm transaction: ",g),g}}))).filter(l=>l.value.err).map(l=>l.value.err);if(c.length>0)throw new Error(`Failed to confirm transaction: ${c}`);return r}}function A(i){if(a.isVersionedTransaction(i)){console.log(i.signatures);const t=i.message,e=t.getAccountKeys();t.compiledInstructions.forEach(n=>{console.log("Program",e.get(n.programIdIndex).toBase58()),console.log("Data: ",a.hex.encode(n.data)),console.log("Keys: ",n.accountKeyIndexes.map(r=>[r,e.get(r).toBase58()]))})}else console.log(i.signatures),console.log(i.feePayer),i.instructions.forEach(t=>{console.log("Program",t.programId.toBase58()),console.log("Data: ",t.data.toString("hex")),console.log("Keys: ",t.keys.map(e=>[e,e.pubkey.toBase58()]))})}async function M(i,t,e=y,n=F,r=b,s=E){const[c,d]=await Promise.all([L(i,t),P(i,t,e,n,r,s)]);return[a.ComputeBudgetProgram.setComputeUnitLimit({units:c}),a.ComputeBudgetProgram.setComputeUnitPrice({microLamports:d})]}async function L(i,t){var n;let e=x;try{const r=await(a.isVersionedTransaction(t),i.simulateTransaction(t));r.value.err&&console.error(`Error simulating Solana transaction: ${r.value.err}`),(n=r==null?void 0:r.value)!=null&&n.unitsConsumed&&(e=Math.round(r.value.unitsConsumed*1.2))}catch(r){console.error(`Failed to calculate compute unit limit for Solana transaction: ${r}`)}return e}async function w(i,t){if(a.isVersionedTransaction(t)){const e=(await Promise.all(t.message.addressTableLookups.map(s=>i.getAddressLookupTable(s.accountKey)))).map(s=>s.value).filter(s=>s!==null),n=t.message,r=n.getAccountKeys({addressLookupTableAccounts:e??void 0});return n.compiledInstructions.flatMap(s=>s.accountKeyIndexes).map(s=>n.isAccountWritable(s)?r.get(s):null).filter(Boolean)}else return t.instructions.flatMap(e=>e.keys).map(e=>e.isWritable?e.pubkey:null).filter(Boolean)}async function P(i,t,e=y,n=F,r=b,s=E){let c=r;const d=await w(i,t);try{const l=await i.getRecentPrioritizationFees({lockedWritableAccounts:d});if(l){const g=l.map(u=>u.prioritizationFee).sort((u,h)=>u-h),o=Math.ceil(g.length*e);if(g.length>o){let u=g[o];n>0&&(u*=n),c=Math.max(c,u)}}}catch(l){console.error("Error fetching Solana recent fees",l)}return Math.min(Math.max(c,r),s)}async function U(i,t,e=y,n=F,r=b,s=E){const c=e*1e4;if(c<1||c>1e4)throw new Error("percentile must be between 0.0001 and 1");const d=i._rpcRequest,g=[await w(i,t),{percentile:c}],o=await d("getRecentPrioritizationFees",g);if(o.error)throw new Error(o.error);const u=o.result.map(m=>m.prioritizationFee);if(u.length===0)return r;const h=Math.floor(a.median(u)*(n>0?n:1));return a.bound(h,r,s)}exports.determinePriorityFee=P;exports.determinePriorityFeeTritonOne=U;exports.getSolanaSignAndSendSigner=I;
@@ -1,7 +1,7 @@
1
- import { au as Zt, aM as O, aN as st, aw as Yt, aO as It, aA as Nt, aF as $, aP as ht, aQ as wt, aR as ct, aS as Qt, aK as dt, aT as Dt, aL as Z, aU as Ut, aV as kt, aW as St, aX as Wt } from "./index-m0543tB2.mjs";
1
+ import { au as Zt, aM as O, aN as st, aw as Yt, aO as It, aA as Nt, aF as $, aP as ht, aQ as wt, aR as ct, aS as Qt, aK as dt, aT as Dt, aL as Z, aU as Ut, aV as kt, aW as St, aX as Wt } from "./index-LdDD7AAy.mjs";
2
2
  import { a as Gt } from "./util--bw7gFPs.mjs";
3
3
  import { g as _t } from "./wallets-B2tqS5lZ.mjs";
4
- import { d as vt, a as Pt } from "./signer-CeNONJjb.mjs";
4
+ import { d as vt, a as Pt } from "./signer-B0f07_6U.mjs";
5
5
  var xt = { exports: {} };
6
6
  (function(s) {
7
7
  var e = Object.prototype.hasOwnProperty, t = "~";
@@ -769,7 +769,7 @@ class oe extends q {
769
769
  this._connecting = !0;
770
770
  let e;
771
771
  try {
772
- e = (await import("./solanaEmbed.esm-_NPc8tZC.mjs")).default;
772
+ e = (await import("./solanaEmbed.esm-CEtmCHNm.mjs")).default;
773
773
  } catch (a) {
774
774
  throw new Et(a == null ? void 0 : a.message, a);
775
775
  }
@@ -925,7 +925,7 @@ class ge extends gt {
925
925
  this._connecting = !0;
926
926
  let e, t;
927
927
  try {
928
- ({ WalletConnectWallet: e, WalletConnectChainID: t } = await import("./index-bDliG7yg.mjs"));
928
+ ({ WalletConnectWallet: e, WalletConnectChainID: t } = await import("./index-C6YOw6gB.mjs"));
929
929
  } catch (a) {
930
930
  throw new Et(a == null ? void 0 : a.message, a);
931
931
  }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-Bhgci81L.js"),i=require("./signer-yr6Zpc2i.js"),a={Address:e.SolanaAddress,Platform:e.SolanaPlatform,getSigner:i.getSolanaSignAndSendSigner,protocols:{WormholeCore:()=>Promise.resolve().then(()=>require("./index-Bhgci81L.js")).then(r=>r.index$2),TokenBridge:()=>Promise.resolve().then(()=>require("./index-BbxXJYWg.js")),CircleBridge:()=>Promise.resolve().then(()=>require("./index-DhR1_nfh.js")),TBTCBridge:()=>Promise.resolve().then(()=>require("./index-u05I0QmU.js"))},getChain:(r,o,n)=>new e.SolanaChain(o,new e.SolanaPlatform(r,e.applyChainsConfigConfigOverrides(r,e._platform$1,{[o]:n})))};exports.default=a;
@@ -0,0 +1,17 @@
1
+ import { W as i, X as r, Y as n, U as s, Z as t } from "./index-LdDD7AAy.mjs";
2
+ import { g as l } from "./signer-B0f07_6U.mjs";
3
+ const d = {
4
+ Address: n,
5
+ Platform: r,
6
+ getSigner: l,
7
+ protocols: {
8
+ WormholeCore: () => import("./index-LdDD7AAy.mjs").then((o) => o.ea),
9
+ TokenBridge: () => import("./index-DpeIjsSi.mjs"),
10
+ CircleBridge: () => import("./index-pg4EQbm-.mjs"),
11
+ TBTCBridge: () => import("./index-Ds6Q5qfX.mjs")
12
+ },
13
+ getChain: (o, a, e) => new i(a, new r(o, s(o, t, { [a]: e })))
14
+ };
15
+ export {
16
+ d as default
17
+ };