@lombard.finance/sdk 4.7.1-canary.6 → 4.7.2

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 (123) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/api.cjs +1 -1
  3. package/dist/api.js +5 -5
  4. package/dist/bridge.cjs +1 -1
  5. package/dist/bridge.js +1 -1
  6. package/dist/btc.cjs +1 -1
  7. package/dist/btc.js +2 -2
  8. package/dist/chunks/{BtcActions-CMFXrlT4.js → BtcActions-Ds6YrAKZ.js} +7 -7
  9. package/dist/chunks/{BtcActions-CMFXrlT4.js.map → BtcActions-Ds6YrAKZ.js.map} +1 -1
  10. package/dist/chunks/{BtcActions-CZJLVea4.cjs → BtcActions-DywyNv3O.cjs} +2 -2
  11. package/dist/chunks/{BtcActions-CZJLVea4.cjs.map → BtcActions-DywyNv3O.cjs.map} +1 -1
  12. package/dist/chunks/{EvmActions-CMOMtNt3.js → EvmActions-BDk1vvRY.js} +9 -9
  13. package/dist/chunks/{EvmActions-CMOMtNt3.js.map → EvmActions-BDk1vvRY.js.map} +1 -1
  14. package/dist/chunks/{EvmActions-B6BLY1vg.cjs → EvmActions-BzlEACJk.cjs} +2 -2
  15. package/dist/chunks/{EvmActions-B6BLY1vg.cjs.map → EvmActions-BzlEACJk.cjs.map} +1 -1
  16. package/dist/chunks/{ReferralsClient-W-0-383w.js → ReferralsClient-DT3qvRXP.js} +4 -4
  17. package/dist/chunks/{ReferralsClient-W-0-383w.js.map → ReferralsClient-DT3qvRXP.js.map} +1 -1
  18. package/dist/chunks/{ReferralsClient-D8dHEk_X.cjs → ReferralsClient-o-3AUm7s.cjs} +2 -2
  19. package/dist/chunks/{ReferralsClient-D8dHEk_X.cjs.map → ReferralsClient-o-3AUm7s.cjs.map} +1 -1
  20. package/dist/chunks/{approveLBTC-BMC4cZEk.cjs → approveLBTC-BBl3KcT2.cjs} +2 -2
  21. package/dist/chunks/{approveLBTC-BMC4cZEk.cjs.map → approveLBTC-BBl3KcT2.cjs.map} +1 -1
  22. package/dist/chunks/{approveLBTC-BkdT1N3V.js → approveLBTC-DZQpza0E.js} +3 -3
  23. package/dist/chunks/{approveLBTC-BkdT1N3V.js.map → approveLBTC-DZQpza0E.js.map} +1 -1
  24. package/dist/chunks/{blockchain-identifier-BLPnwbIN.js → blockchain-identifier-C2GkWxmw.js} +2 -2
  25. package/dist/chunks/{blockchain-identifier-BLPnwbIN.js.map → blockchain-identifier-C2GkWxmw.js.map} +1 -1
  26. package/dist/chunks/{blockchain-identifier-Bp-LTIdG.cjs → blockchain-identifier-DWfC3Es2.cjs} +2 -2
  27. package/dist/chunks/{blockchain-identifier-Bp-LTIdG.cjs.map → blockchain-identifier-DWfC3Es2.cjs.map} +1 -1
  28. package/dist/chunks/{bridge-DbB23m2a.js → bridge-62Nuzkt6.js} +4 -4
  29. package/dist/chunks/{bridge-DbB23m2a.js.map → bridge-62Nuzkt6.js.map} +1 -1
  30. package/dist/chunks/{bridge-7Eq_Jmi2.cjs → bridge-DZp5x4Yb.cjs} +2 -2
  31. package/dist/chunks/{bridge-7Eq_Jmi2.cjs.map → bridge-DZp5x4Yb.cjs.map} +1 -1
  32. package/dist/chunks/{config-ow9X5H0c.cjs → config-8IroHCdP.cjs} +2 -2
  33. package/dist/chunks/{config-ow9X5H0c.cjs.map → config-8IroHCdP.cjs.map} +1 -1
  34. package/dist/chunks/{config-C8BfN_9P.js → config-ej-tsP3s.js} +2 -2
  35. package/dist/chunks/{config-C8BfN_9P.js.map → config-ej-tsP3s.js.map} +1 -1
  36. package/dist/chunks/{defi-registry-CD8EUcNu.js → defi-registry-DLP7nuRn.js} +3 -3
  37. package/dist/chunks/{defi-registry-CD8EUcNu.js.map → defi-registry-DLP7nuRn.js.map} +1 -1
  38. package/dist/chunks/{defi-registry-B8V6dRVB.cjs → defi-registry-QwFZR4oK.cjs} +2 -2
  39. package/dist/chunks/{defi-registry-B8V6dRVB.cjs.map → defi-registry-QwFZR4oK.cjs.map} +1 -1
  40. package/dist/chunks/{depositStatus-BJA7tNqc.cjs → depositStatus-B9P1YXEU.cjs} +2 -2
  41. package/dist/chunks/{depositStatus-BJA7tNqc.cjs.map → depositStatus-B9P1YXEU.cjs.map} +1 -1
  42. package/dist/chunks/{depositStatus-HosfExLl.js → depositStatus-DMDUj1Zi.js} +5 -5
  43. package/dist/chunks/{depositStatus-HosfExLl.js.map → depositStatus-DMDUj1Zi.js.map} +1 -1
  44. package/dist/chunks/{events-hLogK8sf.cjs → events-DADaEsss.cjs} +2 -2
  45. package/dist/chunks/{events-hLogK8sf.cjs.map → events-DADaEsss.cjs.map} +1 -1
  46. package/dist/chunks/{events-DfUOUxwA.js → events-DmrU6jV2.js} +12 -12
  47. package/dist/chunks/{events-DfUOUxwA.js.map → events-DmrU6jV2.js.map} +1 -1
  48. package/dist/chunks/{get-exchange-ratio-t1PW8I6_.cjs → get-exchange-ratio-DGztGO7i.cjs} +2 -2
  49. package/dist/chunks/{get-exchange-ratio-t1PW8I6_.cjs.map → get-exchange-ratio-DGztGO7i.cjs.map} +1 -1
  50. package/dist/chunks/{get-exchange-ratio-Bl6pt546.js → get-exchange-ratio-D_5R035-.js} +2 -2
  51. package/dist/chunks/{get-exchange-ratio-Bl6pt546.js.map → get-exchange-ratio-D_5R035-.js.map} +1 -1
  52. package/dist/chunks/{get-positions-summary-DdZvBmCN.cjs → get-positions-summary-CC7BDtlY.cjs} +2 -2
  53. package/dist/chunks/{get-positions-summary-DdZvBmCN.cjs.map → get-positions-summary-CC7BDtlY.cjs.map} +1 -1
  54. package/dist/chunks/{get-positions-summary-CaX2BCHp.js → get-positions-summary-CSTG4Ni0.js} +2 -2
  55. package/dist/chunks/{get-positions-summary-CaX2BCHp.js.map → get-positions-summary-CSTG4Ni0.js.map} +1 -1
  56. package/dist/chunks/{get-vault-tvl-DZ-xzehy.cjs → get-vault-tvl-D6XcYucx.cjs} +2 -2
  57. package/dist/chunks/{get-vault-tvl-DZ-xzehy.cjs.map → get-vault-tvl-D6XcYucx.cjs.map} +1 -1
  58. package/dist/chunks/{get-vault-tvl-CihHEkqK.js → get-vault-tvl-DwdB1FA1.js} +4 -4
  59. package/dist/chunks/{get-vault-tvl-CihHEkqK.js.map → get-vault-tvl-DwdB1FA1.js.map} +1 -1
  60. package/dist/chunks/{get-vault-withdrawals-QJOdxB5Z.js → get-vault-withdrawals-BLwcsT0Q.js} +3 -3
  61. package/dist/chunks/{get-vault-withdrawals-QJOdxB5Z.js.map → get-vault-withdrawals-BLwcsT0Q.js.map} +1 -1
  62. package/dist/chunks/{get-vault-withdrawals-DLwFMQEB.cjs → get-vault-withdrawals-CuSwGy0M.cjs} +2 -2
  63. package/dist/chunks/{get-vault-withdrawals-DLwFMQEB.cjs.map → get-vault-withdrawals-CuSwGy0M.cjs.map} +1 -1
  64. package/dist/chunks/{getUserStakeAndBakeSignature-CqlrwA0t.js → getUserStakeAndBakeSignature-Bqp_BTOt.js} +4 -4
  65. package/dist/chunks/{getUserStakeAndBakeSignature-CqlrwA0t.js.map → getUserStakeAndBakeSignature-Bqp_BTOt.js.map} +1 -1
  66. package/dist/chunks/{getUserStakeAndBakeSignature-BmY5j0OM.cjs → getUserStakeAndBakeSignature-VlC_GHmz.cjs} +2 -2
  67. package/dist/chunks/{getUserStakeAndBakeSignature-BmY5j0OM.cjs.map → getUserStakeAndBakeSignature-VlC_GHmz.cjs.map} +1 -1
  68. package/dist/chunks/{lbtc-addresses-BlyGFWnW.js → lbtc-addresses-BzalXq8D.js} +2 -2
  69. package/dist/chunks/{lbtc-addresses-BlyGFWnW.js.map → lbtc-addresses-BzalXq8D.js.map} +1 -1
  70. package/dist/chunks/{lbtc-addresses-DjsipX5Q.cjs → lbtc-addresses-D3jG1VUC.cjs} +2 -2
  71. package/dist/chunks/{lbtc-addresses-DjsipX5Q.cjs.map → lbtc-addresses-D3jG1VUC.cjs.map} +1 -1
  72. package/dist/chunks/statusConstants-C4MCQQX7.cjs +2 -0
  73. package/dist/chunks/{statusConstants-vBPE_3ql.cjs.map → statusConstants-C4MCQQX7.cjs.map} +1 -1
  74. package/dist/chunks/{statusConstants-DU7rpNgN.js → statusConstants-DAn1Atsp.js} +4 -4
  75. package/dist/chunks/{statusConstants-DU7rpNgN.js.map → statusConstants-DAn1Atsp.js.map} +1 -1
  76. package/dist/chunks/{storeNetworkFeeSignature-tprCigR1.js → storeNetworkFeeSignature-B4xx2WLI.js} +2 -2
  77. package/dist/chunks/{storeNetworkFeeSignature-tprCigR1.js.map → storeNetworkFeeSignature-B4xx2WLI.js.map} +1 -1
  78. package/dist/chunks/{storeNetworkFeeSignature-CLm8I2pf.cjs → storeNetworkFeeSignature-DJgBfZp7.cjs} +2 -2
  79. package/dist/chunks/{storeNetworkFeeSignature-CLm8I2pf.cjs.map → storeNetworkFeeSignature-DJgBfZp7.cjs.map} +1 -1
  80. package/dist/chunks/token-addresses-C7H9E4qz.cjs +2 -0
  81. package/dist/chunks/token-addresses-C7H9E4qz.cjs.map +1 -0
  82. package/dist/chunks/{token-addresses-Ddar0FyS.js → token-addresses-J-EuQVP6.js} +14 -14
  83. package/dist/chunks/token-addresses-J-EuQVP6.js.map +1 -0
  84. package/dist/chunks/{tokens-HhVpKe3K.js → tokens-CwbSzyK9.js} +2 -2
  85. package/dist/chunks/{tokens-HhVpKe3K.js.map → tokens-CwbSzyK9.js.map} +1 -1
  86. package/dist/chunks/{tokens-CBsz6l_2.cjs → tokens-DEYY7W7O.cjs} +2 -2
  87. package/dist/chunks/{tokens-CBsz6l_2.cjs.map → tokens-DEYY7W7O.cjs.map} +1 -1
  88. package/dist/chunks/{unstakeLBTC-Bg8OsAMV.js → unstakeLBTC-CEqb4N-_.js} +5 -5
  89. package/dist/chunks/{unstakeLBTC-Bg8OsAMV.js.map → unstakeLBTC-CEqb4N-_.js.map} +1 -1
  90. package/dist/chunks/{unstakeLBTC-BmHvDxBN.cjs → unstakeLBTC-DMI79XHm.cjs} +2 -2
  91. package/dist/chunks/{unstakeLBTC-BmHvDxBN.cjs.map → unstakeLBTC-DMI79XHm.cjs.map} +1 -1
  92. package/dist/chunks/{withdraw-kf8mYbYH.js → withdraw-CYUXQ9HY.js} +4 -4
  93. package/dist/chunks/{withdraw-kf8mYbYH.js.map → withdraw-CYUXQ9HY.js.map} +1 -1
  94. package/dist/chunks/{withdraw-Bkp5-2dG.cjs → withdraw-D-FlPc10.cjs} +2 -2
  95. package/dist/chunks/{withdraw-Bkp5-2dG.cjs.map → withdraw-D-FlPc10.cjs.map} +1 -1
  96. package/dist/chunks/{wrapToBtce-DDeIlv3d.cjs → wrapToBtce-D-TaAhqb.cjs} +2 -2
  97. package/dist/chunks/{wrapToBtce-DDeIlv3d.cjs.map → wrapToBtce-D-TaAhqb.cjs.map} +1 -1
  98. package/dist/chunks/{wrapToBtce-By2mh503.js → wrapToBtce-yEQfbDAw.js} +5 -5
  99. package/dist/chunks/{wrapToBtce-By2mh503.js.map → wrapToBtce-yEQfbDAw.js.map} +1 -1
  100. package/dist/common/chains.d.ts +1 -1
  101. package/dist/common/chains.d.ts.map +1 -1
  102. package/dist/contracts.cjs +1 -1
  103. package/dist/contracts.js +3 -3
  104. package/dist/core.cjs +1 -1
  105. package/dist/core.js +7 -7
  106. package/dist/defi.cjs +1 -1
  107. package/dist/defi.js +2 -2
  108. package/dist/entries/evm.d.ts.map +1 -1
  109. package/dist/evm.cjs +1 -1
  110. package/dist/evm.js +4 -4
  111. package/dist/index.cjs +1 -1
  112. package/dist/index.js +23 -23
  113. package/dist/metrics.cjs +1 -1
  114. package/dist/metrics.js +1 -1
  115. package/dist/utils.cjs +1 -1
  116. package/dist/utils.js +4 -4
  117. package/dist/vaults.cjs +1 -1
  118. package/dist/vaults.js +7 -7
  119. package/package.json +2 -2
  120. package/dist/chunks/statusConstants-vBPE_3ql.cjs +0 -2
  121. package/dist/chunks/token-addresses-Ddar0FyS.js.map +0 -1
  122. package/dist/chunks/token-addresses-DvY-Mw7b.cjs +0 -2
  123. package/dist/chunks/token-addresses-DvY-Mw7b.cjs.map +0 -1
package/dist/vaults.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("./chunks/config-ow9X5H0c.cjs"),E=require("./chunks/withdraw-Bkp5-2dG.cjs"),A=require("./chunks/get-vault-tvl-DZ-xzehy.cjs"),a=require("./chunks/tokens-CBsz6l_2.cjs"),e=require("./chunks/token-addresses-DvY-Mw7b.cjs"),q=require("./chunks/get-vault-withdrawals-DLwFMQEB.cjs"),S=require("bignumber.js"),y=require("./chunks/numbers-3LtmxfD8.cjs");async function W({vaultKey:f,token:n=e.Token.LBTC,chainId:r=e.ChainId.ethereum,rpcUrl:u,env:m}){const o=b.VAULTS[f];if(!o)throw new Error(`Unknown vault key: ${f}`);if(!b.isVedaVaultChain(r))throw new Error(`Unsupported chain id: ${r}. Supported chains: ${o.chains.join(", ")}`);const s=o.tokens[n];if(!s||!s.includes(r))throw new Error(`Token ${n} is not supported on chain ${r} for vault ${f}`);let c,l;if(r===e.ChainId.ethereum){const t=await a.getTokenInfo(n,e.ChainId.ethereum,m,u);if(!t)throw new Error(`Could not resolve token info for ${n} on Ethereum`);c=t.address,l=t.decimals}else{const t=await a.getTokenInfo(n,e.ChainId.ethereum,m);if(!t)throw new Error(`Cannot determine minimum deposit for ${n}: token not available on Ethereum. The Lens and Accountant contracts are Ethereum-only.`);c=t.address,l=t.decimals}const d=a.makePublicClient({chainId:e.ChainId.ethereum,rpcUrl:r===e.ChainId.ethereum?u:void 0,env:m}),h=o.vaultContract.address,w=o.accountantContract.address,p=o.lensContract.address,g=o.lensContract.abi,T=o.accountantContract.abi,[C,V]=await d.multicall({contracts:[{address:w,abi:T,functionName:"getRateInQuote",args:[c]},{address:p,abi:g,functionName:"previewDeposit",args:[c,1n,h,w]}]});if(C.status!=="success")throw new Error(`Failed to get exchange rate for ${n}: ${C.error}`);if(V.status!=="success")throw new Error(`Failed to preview deposit for ${n}: ${V.error}`);if(V.result>0n)return a.fromBaseDenomination("1",l);const $=C.result,i=BigInt(10)**BigInt(o.decimals),D=($+i-1n)/i;if(await d.readContract({address:p,abi:g,functionName:"previewDeposit",args:[c,D,h,w]})>0n)return a.fromBaseDenomination(D.toString(),l);const I=10,k=Array.from({length:I},(t,v)=>D+BigInt(v+1)),B=await d.multicall({contracts:k.map(t=>({address:p,abi:g,functionName:"previewDeposit",args:[c,t,h,w]}))});for(let t=0;t<B.length;t++){const v=B[t];if(v.status==="success"&&v.result>0n)return a.fromBaseDenomination(k[t].toString(),l)}throw new Error(`Could not determine minimum deposit amount for ${n} after ${I} attempts`)}async function L({amount:f,vaultKey:n,token:r=e.Token.LBTC,chainId:u=e.ChainId.ethereum,rpcUrl:m,env:o}){const s=b.VAULTS[n];if(!s)throw new Error(`Unknown vault key: ${n}`);if(!b.isVedaVaultChain(u))throw new Error(`Unsupported chain id: ${u}. Supported chains: ${s.chains.join(", ")}`);const c=s.tokens[r];if(!c||!c.includes(u))throw new Error(`Token ${r} is not supported on chain ${u} for vault ${n}`);const l=S(f);if(l.isNegative()||l.isZero())throw new Error("Deposit amount must be greater than zero");let d,h;if(u===e.ChainId.ethereum){const i=await a.getTokenInfo(r,e.ChainId.ethereum,o,m);if(!i)throw new Error(`Could not resolve token info for ${r} on Ethereum`);d=i.address,h=i.decimals}else{const i=await a.getTokenInfo(r,e.ChainId.ethereum,o);if(!i)throw new Error(`Cannot preview deposit for ${r}: token not available on Ethereum. The Lens contract is Ethereum-only.`);d=i.address,h=i.decimals}const w=y.toBigInt(a.toBaseDenomination(l,h)),p=a.makePublicClient({chainId:e.ChainId.ethereum,rpcUrl:u===e.ChainId.ethereum?m:void 0,env:o}),g=s.vaultContract.address,T=s.accountantContract.address,C=s.lensContract.address,V=s.lensContract.abi,$=await p.readContract({address:C,abi:V,functionName:"previewDeposit",args:[d,w,g,T]});return a.fromBaseDenomination($.toString(),s.decimals)}exports.Vault=b.Vault;exports.cancelWithdraw=E.cancelWithdraw;exports.deposit=E.deposit;exports.queueWithdraw=E.queueWithdraw;exports.getVaultApy=A.getVaultApy;exports.getVaultDeposits=A.getVaultDeposits;exports.getVaultDepositsAllChains=A.getVaultDepositsAllChains;exports.getVaultPoints=A.getVaultPoints;exports.getVaultTVL=A.getVaultTVL;exports.getVaultWithdrawals=q.getVaultWithdrawals;exports.getVaultWithdrawalsAllChains=q.getVaultWithdrawalsAllChains;exports.getVaultMinimumDeposit=W;exports.previewVaultDeposit=L;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("./chunks/config-8IroHCdP.cjs"),E=require("./chunks/withdraw-D-FlPc10.cjs"),A=require("./chunks/get-vault-tvl-D6XcYucx.cjs"),a=require("./chunks/tokens-DEYY7W7O.cjs"),e=require("./chunks/token-addresses-C7H9E4qz.cjs"),q=require("./chunks/get-vault-withdrawals-CuSwGy0M.cjs"),S=require("bignumber.js"),y=require("./chunks/numbers-3LtmxfD8.cjs");async function W({vaultKey:f,token:n=e.Token.LBTC,chainId:r=e.ChainId.ethereum,rpcUrl:u,env:m}){const o=b.VAULTS[f];if(!o)throw new Error(`Unknown vault key: ${f}`);if(!b.isVedaVaultChain(r))throw new Error(`Unsupported chain id: ${r}. Supported chains: ${o.chains.join(", ")}`);const s=o.tokens[n];if(!s||!s.includes(r))throw new Error(`Token ${n} is not supported on chain ${r} for vault ${f}`);let c,l;if(r===e.ChainId.ethereum){const t=await a.getTokenInfo(n,e.ChainId.ethereum,m,u);if(!t)throw new Error(`Could not resolve token info for ${n} on Ethereum`);c=t.address,l=t.decimals}else{const t=await a.getTokenInfo(n,e.ChainId.ethereum,m);if(!t)throw new Error(`Cannot determine minimum deposit for ${n}: token not available on Ethereum. The Lens and Accountant contracts are Ethereum-only.`);c=t.address,l=t.decimals}const d=a.makePublicClient({chainId:e.ChainId.ethereum,rpcUrl:r===e.ChainId.ethereum?u:void 0,env:m}),h=o.vaultContract.address,w=o.accountantContract.address,p=o.lensContract.address,g=o.lensContract.abi,T=o.accountantContract.abi,[C,V]=await d.multicall({contracts:[{address:w,abi:T,functionName:"getRateInQuote",args:[c]},{address:p,abi:g,functionName:"previewDeposit",args:[c,1n,h,w]}]});if(C.status!=="success")throw new Error(`Failed to get exchange rate for ${n}: ${C.error}`);if(V.status!=="success")throw new Error(`Failed to preview deposit for ${n}: ${V.error}`);if(V.result>0n)return a.fromBaseDenomination("1",l);const $=C.result,i=BigInt(10)**BigInt(o.decimals),D=($+i-1n)/i;if(await d.readContract({address:p,abi:g,functionName:"previewDeposit",args:[c,D,h,w]})>0n)return a.fromBaseDenomination(D.toString(),l);const I=10,k=Array.from({length:I},(t,v)=>D+BigInt(v+1)),B=await d.multicall({contracts:k.map(t=>({address:p,abi:g,functionName:"previewDeposit",args:[c,t,h,w]}))});for(let t=0;t<B.length;t++){const v=B[t];if(v.status==="success"&&v.result>0n)return a.fromBaseDenomination(k[t].toString(),l)}throw new Error(`Could not determine minimum deposit amount for ${n} after ${I} attempts`)}async function L({amount:f,vaultKey:n,token:r=e.Token.LBTC,chainId:u=e.ChainId.ethereum,rpcUrl:m,env:o}){const s=b.VAULTS[n];if(!s)throw new Error(`Unknown vault key: ${n}`);if(!b.isVedaVaultChain(u))throw new Error(`Unsupported chain id: ${u}. Supported chains: ${s.chains.join(", ")}`);const c=s.tokens[r];if(!c||!c.includes(u))throw new Error(`Token ${r} is not supported on chain ${u} for vault ${n}`);const l=S(f);if(l.isNegative()||l.isZero())throw new Error("Deposit amount must be greater than zero");let d,h;if(u===e.ChainId.ethereum){const i=await a.getTokenInfo(r,e.ChainId.ethereum,o,m);if(!i)throw new Error(`Could not resolve token info for ${r} on Ethereum`);d=i.address,h=i.decimals}else{const i=await a.getTokenInfo(r,e.ChainId.ethereum,o);if(!i)throw new Error(`Cannot preview deposit for ${r}: token not available on Ethereum. The Lens contract is Ethereum-only.`);d=i.address,h=i.decimals}const w=y.toBigInt(a.toBaseDenomination(l,h)),p=a.makePublicClient({chainId:e.ChainId.ethereum,rpcUrl:u===e.ChainId.ethereum?m:void 0,env:o}),g=s.vaultContract.address,T=s.accountantContract.address,C=s.lensContract.address,V=s.lensContract.abi,$=await p.readContract({address:C,abi:V,functionName:"previewDeposit",args:[d,w,g,T]});return a.fromBaseDenomination($.toString(),s.decimals)}exports.Vault=b.Vault;exports.cancelWithdraw=E.cancelWithdraw;exports.deposit=E.deposit;exports.queueWithdraw=E.queueWithdraw;exports.getVaultApy=A.getVaultApy;exports.getVaultDeposits=A.getVaultDeposits;exports.getVaultDepositsAllChains=A.getVaultDepositsAllChains;exports.getVaultPoints=A.getVaultPoints;exports.getVaultTVL=A.getVaultTVL;exports.getVaultWithdrawals=q.getVaultWithdrawals;exports.getVaultWithdrawalsAllChains=q.getVaultWithdrawalsAllChains;exports.getVaultMinimumDeposit=W;exports.previewVaultDeposit=L;
2
2
  //# sourceMappingURL=vaults.cjs.map
package/dist/vaults.js CHANGED
@@ -1,10 +1,10 @@
1
- import { isVedaVaultChain as B, VAULTS as x } from "./chunks/config-C8BfN_9P.js";
2
- import { Vault as O } from "./chunks/config-C8BfN_9P.js";
3
- import { cancelWithdraw as _, deposit as G, queueWithdraw as H } from "./chunks/withdraw-kf8mYbYH.js";
4
- import { getVaultApy as X, getVaultDeposits as Y, getVaultDepositsAllChains as K, getVaultPoints as tt, getVaultTVL as et } from "./chunks/get-vault-tvl-CihHEkqK.js";
5
- import { getTokenInfo as b, makePublicClient as N, fromBaseDenomination as E, toBaseDenomination as y } from "./chunks/tokens-HhVpKe3K.js";
6
- import { ChainId as n, Token as S } from "./chunks/token-addresses-Ddar0FyS.js";
7
- import { getVaultWithdrawals as ot, getVaultWithdrawalsAllChains as nt } from "./chunks/get-vault-withdrawals-QJOdxB5Z.js";
1
+ import { isVedaVaultChain as B, VAULTS as x } from "./chunks/config-ej-tsP3s.js";
2
+ import { Vault as O } from "./chunks/config-ej-tsP3s.js";
3
+ import { cancelWithdraw as _, deposit as G, queueWithdraw as H } from "./chunks/withdraw-CYUXQ9HY.js";
4
+ import { getVaultApy as X, getVaultDeposits as Y, getVaultDepositsAllChains as K, getVaultPoints as tt, getVaultTVL as et } from "./chunks/get-vault-tvl-DwdB1FA1.js";
5
+ import { getTokenInfo as b, makePublicClient as N, fromBaseDenomination as E, toBaseDenomination as y } from "./chunks/tokens-CwbSzyK9.js";
6
+ import { ChainId as n, Token as S } from "./chunks/token-addresses-J-EuQVP6.js";
7
+ import { getVaultWithdrawals as ot, getVaultWithdrawalsAllChains as nt } from "./chunks/get-vault-withdrawals-BLwcsT0Q.js";
8
8
  import L from "bignumber.js";
9
9
  import { toBigInt as R } from "./chunks/numbers-CclN2Ohk.js";
10
10
  async function M({
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@lombard.finance/sdk",
3
- "version": "4.7.1-canary.6",
3
+ "version": "4.7.2",
4
4
  "description": "TypeScript SDK for the Lombard protocol - stake BTC, mint LBTC, and interact with DeFi",
5
5
  "dependencies": {
6
- "@lombard.finance/sdk-common": "4.0.0-canary.6",
6
+ "@lombard.finance/sdk-common": "4.0.0",
7
7
  "isows": "^1.0.7"
8
8
  },
9
9
  "devDependencies": {
@@ -1,2 +0,0 @@
1
- "use strict";var nt=Object.defineProperty;var st=(n,e,t)=>e in n?nt(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var I=(n,e,t)=>st(n,typeof e!="symbol"?e+"":e,t);const _=require("./index-BKzxeh1Y.cjs"),F=require("./defi-registry-B8V6dRVB.cjs"),M=require("./token-addresses-DvY-Mw7b.cjs"),rt=require("bitcoinjs-lib"),at=require("./constants-ueShGH9R.cjs");function it(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const ye=it(rt),Be="4.7.1-canary.6",ot="@lombard.finance/sdk",ct=typeof window<"u"&&typeof window.document<"u"?"browser":typeof process<"u"&&process.versions&&process.versions.node?"node":"unknown";var Me=(n=>(n.UNKNOWN_ERROR="unknown-error",n.INVALID_CONFIGURATION="invalid-configuration",n.OPERATION_TIMEOUT="operation-timeout",n.OPERATION_CANCELLED="operation-cancelled",n))(Me||{}),Ve=(n=>(n.PROVIDER_MISSING="provider-missing",n.PROVIDER_INITIALIZATION_FAILED="provider-initialization-failed",n.PROVIDER_CALL_FAILED="provider-call-failed",n.SIGNER_MISSING="signer-missing",n.USER_REJECTED="user-rejected",n.NETWORK_MISMATCH="network-mismatch",n))(Ve||{}),Ue=(n=>(n.ROUTE_NOT_FOUND="route-not-found",n.INVALID_ROUTE_DEFINITION="invalid-route-definition",n.UNSUPPORTED_CHAIN="unsupported-chain",n.UNSUPPORTED_ASSET="unsupported-asset",n.INCOMPATIBLE_ROUTE="incompatible-route",n.ENVIRONMENT_MISMATCH="environment-mismatch",n))(Ue||{}),P=(n=>(n.INVALID_ADDRESS="invalid-address",n.INVALID_AMOUNT="invalid-amount",n.AMOUNT_TOO_SMALL="amount-too-small",n.AMOUNT_TOO_LARGE="amount-too-large",n.INSUFFICIENT_BALANCE="insufficient-balance",n.INVALID_PARAMETER="invalid-parameter",n.MISSING_REQUIRED_PARAMETER="missing-required-parameter",n.INVALID_CHAIN="invalid-chain",n.INVALID_STATE="invalid-state",n.INVALID_ASSET="invalid-asset",n))(P||{}),Ze=(n=>(n.CONTRACT_CALL_FAILED="contract-call-failed",n.TRANSACTION_FAILED="transaction-failed",n.TRANSACTION_REVERTED="transaction-reverted",n.APPROVAL_FAILED="approval-failed",n.INSUFFICIENT_ALLOWANCE="insufficient-allowance",n.GAS_ESTIMATION_FAILED="gas-estimation-failed",n))(Ze||{}),$e=(n=>(n.INSUFFICIENT_SHARES="withdraw-insufficient-shares",n.INVALID_AMOUNT="withdraw-invalid-amount",n.NO_PENDING_WITHDRAWAL="withdraw-no-pending",n.WITHDRAWAL_ALREADY_FULFILLED="withdraw-already-fulfilled",n.WITHDRAWAL_EXPIRED="withdraw-expired",n.WITHDRAWAL_NOT_FOUND="withdraw-not-found",n.PROTOCOL_NOT_SUPPORTED="withdraw-protocol-not-supported",n.INSUFFICIENT_LIQUIDITY="withdraw-insufficient-liquidity",n))($e||{});class T extends Error{constructor(t,s,r){super(s);I(this,"code");I(this,"metadata");I(this,"sdkVersion",Be);I(this,"timestamp",new Date().toISOString());this.name="LombardError",this.code=t,this.metadata=r,Error.captureStackTrace&&Error.captureStackTrace(this,T)}toJSON(){return{name:this.name,code:this.code,message:this.message,sdkVersion:this.sdkVersion,timestamp:this.timestamp,...this.metadata&&{metadata:this.metadata},...this.stack&&{stack:this.stack}}}toSentryContext(){return{"sdk.version":this.sdkVersion,"error.code":this.code,"error.timestamp":this.timestamp,...this.metadata}}static invalidConfiguration(t){return new T("invalid-configuration",t)}static providerMissing(t,s){return new T("provider-missing",`${s} provider not configured for chain ${t}. Please provide a provider via SDK initialization.`,{chain:t,providerType:s})}static moduleMissing(t){return new T("invalid-parameter",`Module "${t}" is not registered. Install and register the corresponding package via createConfig({ modules: [...] }).`,{moduleId:t})}static providerCallFailed(t,s){const r=s instanceof Error?s.message:s;return new T("provider-call-failed",`Provider method ${t} failed: ${r}`,{method:t,cause:r})}static userRejected(t){return new T("user-rejected",`User rejected ${t}. Please try again and approve the transaction in your wallet.`,{operation:t})}static routeNotFound(t){return new T("route-not-found","No route found matching the provided parameters. Please verify the asset and chain combination is supported.",t)}static invalidRouteDefinition(t){return new T("invalid-route-definition",`Invalid route definition: ${t}`,{reason:t})}static unsupportedChain(t){return new T("unsupported-chain",`Chain ${t} is not supported in the current environment.`,{chain:t})}static invalidParameter(t,s){return new T("invalid-parameter",s,{parameter:t})}static invalidAddress(t,s){return new T("invalid-address",`Invalid address format: ${t}${s?` for chain ${s}`:""}`,{address:t,chain:s})}static invalidAmount(t){return new T("invalid-amount",t,{reason:t})}static amountTooSmall(t,s,r){return new T("amount-too-small",`Amount ${t} is below minimum ${s} ${r}`,{amount:t,minimum:s,asset:r})}static insufficientBalance(t,s,r){return new T("insufficient-balance",`Insufficient ${r} balance. Required: ${t}, Available: ${s}`,{required:t,available:s,asset:r})}static missingParameter(t){return new T("missing-required-parameter",`Required parameter "${t}" is missing`,{parameterName:t})}static transactionFailed(t,s){return new T("transaction-failed",`Transaction failed: ${s}`,{txHash:t,reason:s})}static transactionReverted(t,s){return new T("transaction-reverted",`Transaction reverted${s?`: ${s}`:""}`,{txHash:t,revertReason:s})}static approvalFailed(t,s){return new T("approval-failed",`Failed to approve ${t} for spender ${s}`,{token:t,spender:s})}}function Fe(n){return n instanceof T}function de(n){return Fe(n)?n:n instanceof Error?new T("unknown-error",n.message,{originalError:n.stack}):new T("unknown-error",String(n),{originalValue:n})}const p={BIP122:"bip122",EIP155:"eip155",SOLANA:"solana",STARKNET:"starknet",SUI:"sui",ZCASH:"zcash",RIPPLE:"ripple",DOGECOIN:"dogecoin",HYPERLIQUID:"hyperliquid"},oe=":",y=(n,e)=>`${n}${oe}${e}`,c={BITCOIN_MAINNET:y(p.BIP122,"000000000019d6689c085ae165831e93"),BITCOIN_SIGNET:y(p.BIP122,"00000008819873e925422c1ff0f99f7c"),ETHEREUM:y(p.EIP155,1),BASE:y(p.EIP155,8453),BASE_SEPOLIA:y(p.EIP155,84532),OPTIMISM:y(p.EIP155,10),POLYGON:y(p.EIP155,137),BSC:y(p.EIP155,56),BSC_TESTNET:y(p.EIP155,97),AVALANCHE:y(p.EIP155,43114),AVALANCHE_FUJI:y(p.EIP155,43113),BERACHAIN:y(p.EIP155,80094),BERACHAIN_BARTIO:y(p.EIP155,80084),BOB:y(p.EIP155,60808),CORN:y(p.EIP155,21e6),ETHERLINK:y(p.EIP155,42793),KATANA:y(p.EIP155,747474),MORPH:y(p.EIP155,2818),SONIC:y(p.EIP155,146),SONIC_TESTNET:y(p.EIP155,57054),SONIC_BLAZE_TESTNET:y(p.EIP155,57054),SWELL:y(p.EIP155,1923),TAC:y(p.EIP155,239),SEPOLIA:y(p.EIP155,11155111),HOLESKY:y(p.EIP155,17e3),MEGAETH:y(p.EIP155,4326),MONAD:y(p.EIP155,143),STABLE:y(p.EIP155,988),SOLANA_MAINNET:y(p.SOLANA,"5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"),SOLANA_DEVNET:y(p.SOLANA,"EtWTRABZaYq6iMfeYKouRu166VU2xqa1"),SOLANA_TESTNET:y(p.SOLANA,"4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z"),SUI_MAINNET:y(p.SUI,"mainnet"),SUI_TESTNET:y(p.SUI,"testnet"),SUI_DEVNET:y(p.SUI,"devnet"),STARKNET_MAINNET:y(p.STARKNET,"SN_MAIN"),STARKNET_SEPOLIA:y(p.STARKNET,"SN_SEPOLIA"),ZCASH_MAINNET:y(p.ZCASH,"mainnet"),ZCASH_TESTNET:y(p.ZCASH,"testnet"),RIPPLE_MAINNET:y(p.RIPPLE,"mainnet"),RIPPLE_TESTNET:y(p.RIPPLE,"testnet"),DOGECOIN_MAINNET:y(p.DOGECOIN,"mainnet"),DOGECOIN_TESTNET:y(p.DOGECOIN,"testnet"),HYPERLIQUID:y(p.HYPERLIQUID,"mainnet")};function dt(n){return Object.keys(c).find(e=>c[e]===n)??""}function ut(n){return typeof n=="string"&&Object.values(c).includes(n)}const $={[c.BITCOIN_MAINNET]:{name:"Bitcoin",type:"bitcoin",isTestnet:!1,explorerUrl:"https://mempool.space",nativeCurrency:"BTC",badgeVariant:"warning"},[c.BITCOIN_SIGNET]:{name:"Bitcoin Signet",type:"bitcoin",isTestnet:!0,explorerUrl:"https://mempool.space/signet",nativeCurrency:"BTC",badgeVariant:"warning"},[c.ETHEREUM]:{name:"Ethereum",type:"evm",isTestnet:!1,explorerUrl:"https://etherscan.io",nativeCurrency:"ETH",badgeVariant:"info"},[c.BASE]:{name:"Base",type:"evm",isTestnet:!1,explorerUrl:"https://basescan.org",nativeCurrency:"ETH",badgeVariant:"info"},[c.OPTIMISM]:{name:"Optimism",type:"evm",isTestnet:!1,explorerUrl:"https://optimistic.etherscan.io",nativeCurrency:"ETH",badgeVariant:"info"},[c.POLYGON]:{name:"Polygon",type:"evm",isTestnet:!1,explorerUrl:"https://polygonscan.com",nativeCurrency:"MATIC",badgeVariant:"info"},[c.BSC]:{name:"BNB Chain",type:"evm",isTestnet:!1,explorerUrl:"https://bscscan.com",nativeCurrency:"BNB",badgeVariant:"info"},[c.AVALANCHE]:{name:"Avalanche",type:"evm",isTestnet:!1,explorerUrl:"https://snowtrace.io",nativeCurrency:"AVAX",badgeVariant:"info"},[c.BERACHAIN]:{name:"Berachain",type:"evm",isTestnet:!1,explorerUrl:"https://beratrail.io",nativeCurrency:"BERA",badgeVariant:"info"},[c.BOB]:{name:"BOB",type:"evm",isTestnet:!1,explorerUrl:"https://explorer.gobob.xyz",nativeCurrency:"ETH",badgeVariant:"info"},[c.CORN]:{name:"Corn",type:"evm",isTestnet:!1,explorerUrl:"https://cornscan.io",nativeCurrency:"BTCN",badgeVariant:"info"},[c.ETHERLINK]:{name:"Etherlink",type:"evm",isTestnet:!1,explorerUrl:"https://explorer.etherlink.com",nativeCurrency:"XTZ",badgeVariant:"info"},[c.KATANA]:{name:"Katana",type:"evm",isTestnet:!1,explorerUrl:"https://explorer.katanarpc.com",nativeCurrency:"BTC.b",badgeVariant:"info"},[c.MORPH]:{name:"Morph",type:"evm",isTestnet:!1,explorerUrl:"https://explorer.morphl2.io",nativeCurrency:"ETH",badgeVariant:"info"},[c.SONIC]:{name:"Sonic",type:"evm",isTestnet:!1,explorerUrl:"https://sonicscan.org",nativeCurrency:"S",badgeVariant:"info"},[c.SWELL]:{name:"Swell",type:"evm",isTestnet:!1,explorerUrl:"https://explorer.swellnetwork.io",nativeCurrency:"ETH",badgeVariant:"info"},[c.TAC]:{name:"TAC",type:"evm",isTestnet:!1,explorerUrl:"https://explorer.tac.build",nativeCurrency:"TAC",badgeVariant:"info"},[c.MEGAETH]:{name:"MegaETH",type:"evm",isTestnet:!1,explorerUrl:"https://megaeth.blockscout.com",nativeCurrency:"ETH",badgeVariant:"info"},[c.MONAD]:{name:"Monad",type:"evm",isTestnet:!1,explorerUrl:"https://monadvision.com",nativeCurrency:"MONAD",badgeVariant:"info"},[c.STABLE]:{name:"Stable",type:"evm",isTestnet:!1,explorerUrl:"https://stablescan.xyz",nativeCurrency:"USD",badgeVariant:"info"},[c.BASE_SEPOLIA]:{name:"Base Sepolia",type:"evm",isTestnet:!0,explorerUrl:"https://sepolia.basescan.org",nativeCurrency:"ETH",badgeVariant:"secondary"},[c.BSC_TESTNET]:{name:"BNB Testnet",type:"evm",isTestnet:!0,explorerUrl:"https://testnet.bscscan.com",nativeCurrency:"BNB",badgeVariant:"secondary"},[c.AVALANCHE_FUJI]:{name:"Avalanche Fuji",type:"evm",isTestnet:!0,explorerUrl:"https://testnet.snowtrace.io",nativeCurrency:"AVAX",badgeVariant:"secondary"},[c.BERACHAIN_BARTIO]:{name:"Berachain Bartio",type:"evm",isTestnet:!0,explorerUrl:"https://bartio.beratrail.io",nativeCurrency:"BERA",badgeVariant:"secondary"},[c.SONIC_TESTNET]:{name:"Sonic Blaze Testnet",type:"evm",isTestnet:!0,explorerUrl:"https://testnet.sonicscan.org",nativeCurrency:"S",badgeVariant:"secondary"},[c.SEPOLIA]:{name:"Sepolia",type:"evm",isTestnet:!0,explorerUrl:"https://sepolia.etherscan.io",nativeCurrency:"ETH",badgeVariant:"secondary"},[c.HOLESKY]:{name:"Holesky",type:"evm",isTestnet:!0,explorerUrl:"https://holesky.etherscan.io",nativeCurrency:"ETH",badgeVariant:"secondary"},[c.SOLANA_MAINNET]:{name:"Solana",type:"solana",isTestnet:!1,explorerUrl:"https://solscan.io",nativeCurrency:"SOL",badgeVariant:"success"},[c.SOLANA_DEVNET]:{name:"Solana Devnet",type:"solana",isTestnet:!0,explorerUrl:"https://solscan.io?cluster=devnet",nativeCurrency:"SOL",badgeVariant:"secondary"},[c.SOLANA_TESTNET]:{name:"Solana Testnet",type:"solana",isTestnet:!0,explorerUrl:"https://solscan.io?cluster=testnet",nativeCurrency:"SOL",badgeVariant:"secondary"},[c.SUI_MAINNET]:{name:"Sui",type:"sui",isTestnet:!1,explorerUrl:"https://suiscan.xyz",nativeCurrency:"SUI",badgeVariant:"info"},[c.SUI_TESTNET]:{name:"Sui Testnet",type:"sui",isTestnet:!0,explorerUrl:"https://suiscan.xyz/testnet",nativeCurrency:"SUI",badgeVariant:"secondary"},[c.SUI_DEVNET]:{name:"Sui Devnet",type:"sui",isTestnet:!0,explorerUrl:"https://suiscan.xyz/devnet",nativeCurrency:"SUI",badgeVariant:"secondary"},[c.STARKNET_MAINNET]:{name:"Starknet",type:"starknet",isTestnet:!1,explorerUrl:"https://starkscan.co",nativeCurrency:"ETH",badgeVariant:"info"},[c.STARKNET_SEPOLIA]:{name:"Starknet Sepolia",type:"starknet",isTestnet:!0,explorerUrl:"https://sepolia.starkscan.co",nativeCurrency:"ETH",badgeVariant:"secondary"},[c.ZCASH_MAINNET]:{name:"Zcash",type:"zcash",isTestnet:!1,explorerUrl:"https://zcashblockexplorer.com",nativeCurrency:"ZEC",badgeVariant:"warning"},[c.ZCASH_TESTNET]:{name:"Zcash Testnet",type:"zcash",isTestnet:!0,nativeCurrency:"ZEC",badgeVariant:"secondary"},[c.RIPPLE_MAINNET]:{name:"XRP Ledger",type:"ripple",isTestnet:!1,explorerUrl:"https://xrpscan.com",nativeCurrency:"XRP",badgeVariant:"secondary"},[c.RIPPLE_TESTNET]:{name:"XRP Testnet",type:"ripple",isTestnet:!0,nativeCurrency:"XRP",badgeVariant:"secondary"},[c.DOGECOIN_MAINNET]:{name:"Dogecoin",type:"dogecoin",isTestnet:!1,explorerUrl:"https://dogechain.info",nativeCurrency:"DOGE",badgeVariant:"warning"},[c.DOGECOIN_TESTNET]:{name:"Dogecoin Testnet",type:"dogecoin",isTestnet:!0,nativeCurrency:"DOGE",badgeVariant:"secondary"},[c.HYPERLIQUID]:{name:"Hyperliquid",type:"hyperliquid",isTestnet:!1,nativeCurrency:"USDC",badgeVariant:"secondary"}},lt={"5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":M.SOLANA_MAINNET_CHAIN,EtWTRABZaYq6iMfeYKouRu166VU2xqa1:M.SOLANA_DEVNET_CHAIN,"4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z":M.SOLANA_TESTNET_CHAIN},ft={SN_MAIN:M.STARKNET_MAINNET_CHAIN,SN_SEPOLIA:M.STARKNET_SEPOLIA_CHAIN};function ht(n){return ft[n]}function mt(n){return $[n]}function pt(n){return $[n].name}function gt(n){return $[n].type}function vt(n){return $[n].isTestnet}function yt(n){return!$[n].isTestnet}function pe(n){return $[n].type==="evm"}function _t(n,e){const{explorerUrl:t}=$[n];if(t)return`${t}/tx/${e}`}const ee=n=>`${n}${oe}`;function At(n){const e=ee(p.EIP155);if(n.startsWith(e)){const a=Number.parseInt(n.slice(e.length),10);if(M.isValidChain(a))return a;throw new T(P.INVALID_CHAIN,`Invalid EVM chain: ${n}`)}const t=ee(p.SOLANA);if(n.startsWith(t)){const a=n.slice(t.length),i=`solana:${a}`;if(M.isSolanaChain(i))return i;const o=lt[a];if(o)return o;throw new T(P.INVALID_CHAIN,`Invalid Solana chain: ${n}`)}const s=ee(p.SUI);if(n.startsWith(s)){if(M.isSuiChain(n))return n;throw new T(P.INVALID_CHAIN,`Invalid Sui chain: ${n}`)}const r=ee(p.STARKNET);if(n.startsWith(r)){const a=n.slice(r.length),i=ht(a);if(i)return i;throw new T(P.INVALID_CHAIN,`Invalid Starknet chain: ${n}`)}throw new T(P.INVALID_CHAIN,`Invalid chain: ${n}`)}function Et(n){return`${p.EIP155}${oe}${n}`}const N={version:"1.0.0",assets:{[F.AssetId.LBTC]:{decimals:8,symbol:"LBTC",name:"Lombard BTC",deployments:[{env:_.r.prod,chain:c.ETHEREUM,address:"0x8236a87084f8b84306f72007f36f2618a5634494"},{env:_.r.prod,chains:[c.BASE,c.BSC,c.BERACHAIN,c.CORN,c.KATANA,c.MORPH,c.SONIC,c.SWELL,c.TAC,c.MONAD,c.STABLE],address:"0xecAc9C5F704e954931349Da37F60E39f515c11c1"},{env:_.r.prod,chain:c.BOB,address:"0xA45d4121b3D47719FF57a947A9d961539Ba33204"},{env:_.r.prod,chain:c.SOLANA_MAINNET,address:"LBTCgU4b3wsFKsPwBn1rRZDx5DoFutM6RPiEt1TPDsY"},{env:_.r.prod,chain:c.SUI_MAINNET,address:"0x3e8e9423d80e1774a7ca128fccd8bf5f1f7753be658c5e645929037f7c819040"},{env:_.r.prod,chain:c.STARKNET_MAINNET,address:"0x036834a40984312f7f7de8d31e3f6305b325389eaeea5b1c0664b2fb936461a4",assetRouter:"0x05b1886d0f844ab930fc0ee066f1655a873437f15a5d2c41ee3e884fd5299976"},{env:_.r.testnet,chain:c.SEPOLIA,address:"0xc47e4b3124597fdf8dd07843d4a7052f2ee80c30"},{env:_.r.testnet,chains:[c.AVALANCHE_FUJI,c.BASE_SEPOLIA,c.BSC_TESTNET],address:"0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5"},{env:_.r.testnet,chain:c.SOLANA_DEVNET,address:"1BTCPX3qyFtBvhQvJaHntfzZfB8qcJmJXfoRnD3vAgh"},{env:_.r.testnet,chain:c.SUI_TESTNET,address:"0x50454d0b0fbad1288a6ab74f2e8ce0905a3317870673ab7787ebcf6f322b45fa"},{env:_.r.testnet,chain:c.STARKNET_SEPOLIA,address:"0x00456a829ab75ba5e97534dc70d7fc617cfda244f8dcda47b11624de67c6e70c",assetRouter:"0x063b7b5c8b114ebd5b9602fbd5d0ffd2cc3a598f1d91c6904cc0997cd8fea760"},{env:_.r.stage,chains:[c.BASE_SEPOLIA,c.BSC_TESTNET,c.SEPOLIA],address:"0x731eFa688F3679688cf60A3993b8658138953ED6"},{env:_.r.dev,chain:c.SOLANA_DEVNET,address:"LBTCojyVJ63rsEED2DLEGWMzSxWJyQynXE91LMLgV1J"},{env:_.r.stage,chain:c.SOLANA_DEVNET,address:"1btcyoWK7d99iosES4eXQGhhooCscKGigV5wHfvzueX"},{env:_.r.stage,chain:c.SUI_TESTNET,address:"0x2d66430a27565b912f21be970e5ae1e8c0359f0b518c3235b751c75976791ce0"},{env:_.r.stage,chain:c.STARKNET_SEPOLIA,address:"0x00b442f5420860e937a99659326e81a97e07bfd538b3cee65b90029c9da38a5f",assetRouter:"0x01d27f156092746d0d7cd9d9deec5e937f27c3c7c1c28365e9e5efac459880b3"},{env:_.r.dev,chain:c.SEPOLIA,address:"0x93283b6B889C591893dB0dc93baD71656D5d8923"},{env:_.r.dev,chains:[c.AVALANCHE_FUJI,c.BASE_SEPOLIA,c.BERACHAIN_BARTIO,c.BSC_TESTNET],address:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30"},{env:_.r.dev,chain:c.STARKNET_SEPOLIA,address:"0x0723de0c550b7bfbb5051dade72966d71a08bef952c0197462a5244497eb57c1",assetRouter:"0x04838a05c798dc57e01e85526979841c84f1f3c732a525cff53adb3e8bee3d24"}]},[F.AssetId.BTCb]:{decimals:8,symbol:"BTC.b",name:"BTC.b",deployments:[{env:_.r.prod,chains:[c.KATANA,c.MEGAETH,c.MONAD,c.STABLE],address:"0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072"},{env:_.r.prod,chain:c.AVALANCHE,address:"0x152b9d0FdC40C096757F570A51E494bd4b943E50",bridgeAdapter:"0x85D1D52e11290F174444d21C2a167bEDBE36e4d2"},{env:_.r.prod,chain:c.SOLANA_MAINNET,address:"BTCbKVgfW4xMqTWEmxVwc6pzg2c5YtQWxSpBuQDhUrpu"},{env:_.r.testnet,chain:c.SEPOLIA,address:"0x20eA7b8ABb4B583788F1DFC738C709a2d9675681"},{env:_.r.testnet,chain:c.AVALANCHE_FUJI,address:"0x7FbdC44BfEBDe80C970ba622B678daB36cee31f6",bridgeAdapter:"0x0A65C37d07c32E5eA8ea40495b7f249cdE26935e"},{env:_.r.testnet,chain:c.SOLANA_DEVNET,address:"BTCb1Xy55DzwPMog9d3ztPau4nqXp6BhUrdGHjTrMYCn"},{env:_.r.stage,chain:c.SEPOLIA,address:"0x600e4006278EB11FA1691cA0FE6C5fcfC4992d58"},{env:_.r.dev,chain:c.SOLANA_DEVNET,address:"BTCB3ripBAut19jM8kDPVbJHb2ZdR2GcZvGZkCmFPtV8"},{env:_.r.stage,chain:c.SOLANA_DEVNET,address:"BTCGPAHQSsS9RYcL2Z4B5z6YyAXLatNcnaEwYdczsMZw"},{env:_.r.dev,chain:c.SEPOLIA,address:"0x195219A262423d209E126BD21cf4F4F9AA796927"},{env:_.r.dev,chain:c.BSC_TESTNET,address:"0xea3F66E5f2928dB9673103BfA01a2153A57a8050"},{env:_.r.dev,chain:c.AVALANCHE_FUJI,address:"0x7FbdC44BfEBDe80C970ba622B678daB36cee31f6",bridgeAdapter:"0x0A65C37d07c32E5eA8ea40495b7f249cdE26935e"},{env:_.r.ibc,chain:c.AVALANCHE_FUJI,address:"0x71ba2b8dc58e7ca1b6d81a60729e31aefa37ae02",bridgeAdapter:"0x1391f9AC408cf13214DDB71d359002658eaF9ebb"}]},[F.AssetId.BTCBinance]:{decimals:18,symbol:"BTCB",name:"Binance-Peg BTCB",deployments:[{env:_.r.prod,chain:c.BSC,address:"0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c",publicMarketMaker:"0xE4ff44a615dF38e37cdF475833c1d57774CC9D4A"},{env:_.r.testnet,chain:c.BSC_TESTNET,address:"0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c",publicMarketMaker:"0x63749Acfc2527A8406E8BC8c93A80f29FDD75e27"},{env:_.r.stage,chain:c.BSC_TESTNET,address:"0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c",publicMarketMaker:"0x440362b55D4a255EBA3c27C650d2dC1a91Db85bA"},{env:_.r.dev,chain:c.BSC_TESTNET,address:"0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c",publicMarketMaker:"0x440362b55D4a255EBA3c27C650d2dC1a91Db85bA"}]},[F.AssetId.cbBTC]:{decimals:8,symbol:"cbBTC",name:"Coinbase Wrapped BTC",deployments:[{env:_.r.prod,chains:[c.ETHEREUM,c.BASE],address:"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",publicMarketMaker:"0x92c01FC0F59857c6E920EdFf1139904b2Bb74c7c"}]},[F.AssetId.eBTC]:{decimals:8,symbol:"eBTC",deployments:[{env:_.r.prod,chain:c.ETHEREUM,address:"0x657e8c867d8b37dcc18fa4caead9c45eb088c642"}]},[F.AssetId.WBTC]:{decimals:8,symbol:"WBTC",deployments:[{env:_.r.prod,chain:c.ETHEREUM,address:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}]},[F.AssetId.WBTCN]:{decimals:8,symbol:"wBTCN",deployments:[{env:_.r.prod,chain:c.CORN,address:"0xda5dDd7270381A7C2717aD10D1c0ecB19e3CDFb2"}]}}},Tt=8;function J(n,e,t,s){const r=n.assets[e];if(r)return r.deployments.find(a=>{var i;return a.env===t&&(a.chain===s||((i=a.chains)==null?void 0:i.includes(s)))})}function bt(n,e,t,s=N){var r;return(r=J(s,n,e,t))==null?void 0:r.address}function xt(n,e=N){var t;return((t=e.assets[n])==null?void 0:t.decimals)??Tt}function St(n,e,t,s=N){var r;return(r=J(s,n,e,t))==null?void 0:r.assetRouter}function Nt(n,e,t,s=N){var r;return!!((r=J(s,n,e,t))!=null&&r.assetRouter)}function It(n,e,t,s=N){var r;return(r=J(s,n,e,t))==null?void 0:r.bridgeAdapter}function Ct(n,e,t,s=N){var r;return(r=J(s,n,e,t))==null?void 0:r.publicMarketMaker}function kt(n,e,t,s=N){return!!J(s,n,e,t)}function Ot(n,e,t,s=N){const r=n.toLowerCase();for(const[a,i]of Object.entries(s.assets)){if(!i)continue;if(i.deployments.find(u=>{var h;return u.env===e&&(u.chain===t||((h=u.chains)==null?void 0:h.includes(t)))&&u.address.toLowerCase()===r}))return a}}function wt(n,e,t=N){const s=t.assets[n];if(!s)return[];const r=[];for(const a of s.deployments)a.env===e&&(a.chain&&r.push(a.chain),a.chains&&r.push(...a.chains));return r}function Rt(n,e,t=N){var a;const s=t.assets[n];if(!s)return[];const r=new Set;for(const i of s.deployments)(i.chain===e||(a=i.chains)!=null&&a.includes(e))&&r.add(i.env);return Array.from(r)}function Dt(n=N){return Object.keys(n.assets)}function Lt(n,e=N){const t=e.assets[n];if(!t)return[];const s=new Set;for(const r of t.deployments)r.chain&&s.add(r.chain),r.chains&&r.chains.forEach(a=>s.add(a));return Array.from(s)}function te(n,e,t=N){const s=t.assets[n];if(!s)return[];const r=new Set;for(const a of s.deployments)e.includes(a.env)&&(a.chain&&r.add(a.chain),a.chains&&a.chains.forEach(i=>r.add(i)));return Array.from(r)}function Pt(n,e=N){const t=e.assets[n];if(t)return{decimals:t.decimals,symbol:t.symbol,name:t.name}}function Bt(n,e,t=N){return te(n,e,t).filter(s=>pe(s))}function Mt(n,e,t=N){if(n.length===0)return[];const s=new Set(te(n[0],e,t));for(let r=1;r<n.length;r++){const a=new Set(te(n[r],e,t));for(const i of s)a.has(i)||s.delete(i)}return Array.from(s)}function Vt(n,e,t=N){return Mt(n,e,t).filter(s=>pe(s))}class je{constructor(e){I(this,"config");this.config=e}getPartnerId(){var e;return(e=this.config)==null?void 0:e.partnerId}isConfigured(){return this.config!==void 0}update(e){this.config=e}clear(){this.config=void 0}}function ge(n,e){let t;switch(e){case"evm":t=n.evm;break;case"bitcoin":t=n.bitcoin;break;case"solana":t=n.solana;break;case"sui":t=n.sui;break;case"starknet":t=n.starknet;break;default:t=void 0}return t}class He{constructor(e,t){I(this,"modules",new Map);I(this,"services",new Map);I(this,"shared",new Map);this.config=t,e.forEach(s=>this.modules.set(s.id,s))}require(e){const t=this.modules.get(e);if(!t)throw T.moduleMissing(e);return this.services.has(t.id)||this.services.set(t.id,t.register(this.createContext())),this.services.get(t.id)}optional(e){const t=this.modules.get(e);return t?(this.services.has(t.id)||this.services.set(t.id,t.register(this.createContext())),this.services.get(t.id)):null}createContext(){return{env:this.config.env,getProvider:async e=>{const t=ge(this.config.providers,e);if(t)return await t()},getShared:e=>this.shared.get(e),setShared:(e,t)=>{this.shared.set(e,t)}}}}function Ut(n){return async e=>{const t=ge(n.providers,e);if(t)return t()}}const _e=new WeakMap;function ze(n){let e=_e.get(n);return e||(e=new He(n.modules,n),_e.set(n,e)),e}function qe(n){return{env:n.env,partner:new je(n.partner),getProvider:Ut(n),logger:void 0}}function Zt(n){const e=qe(n),t=ze(n),s=t.require("btc"),r=t.require("api");return{...e,btc:s,api:r,capabilities:t}}function $t(n){const e=qe(n),s=ze(n).require("evm");return{...e,evm:s}}const Ft={IDLE:"idle",PREPARING:"preparing",READY:"ready",EXECUTING:"executing",COMPLETED:"completed",FAILED:"failed"},jt={IDLE:"idle",PENDING:"pending",COMPLETE:"complete",FAILED:"failed"};var x;(function(n){n.assertEqual=r=>{};function e(r){}n.assertIs=e;function t(r){throw new Error}n.assertNever=t,n.arrayToEnum=r=>{const a={};for(const i of r)a[i]=i;return a},n.getValidEnumValues=r=>{const a=n.objectKeys(r).filter(o=>typeof r[r[o]]!="number"),i={};for(const o of a)i[o]=r[o];return n.objectValues(i)},n.objectValues=r=>n.objectKeys(r).map(function(a){return r[a]}),n.objectKeys=typeof Object.keys=="function"?r=>Object.keys(r):r=>{const a=[];for(const i in r)Object.prototype.hasOwnProperty.call(r,i)&&a.push(i);return a},n.find=(r,a)=>{for(const i of r)if(a(i))return i},n.isInteger=typeof Number.isInteger=="function"?r=>Number.isInteger(r):r=>typeof r=="number"&&Number.isFinite(r)&&Math.floor(r)===r;function s(r,a=" | "){return r.map(i=>typeof i=="string"?`'${i}'`:i).join(a)}n.joinValues=s,n.jsonStringifyReplacer=(r,a)=>typeof a=="bigint"?a.toString():a})(x||(x={}));var Ae;(function(n){n.mergeShapes=(e,t)=>({...e,...t})})(Ae||(Ae={}));const f=x.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),L=n=>{switch(typeof n){case"undefined":return f.undefined;case"string":return f.string;case"number":return Number.isNaN(n)?f.nan:f.number;case"boolean":return f.boolean;case"function":return f.function;case"bigint":return f.bigint;case"symbol":return f.symbol;case"object":return Array.isArray(n)?f.array:n===null?f.null:n.then&&typeof n.then=="function"&&n.catch&&typeof n.catch=="function"?f.promise:typeof Map<"u"&&n instanceof Map?f.map:typeof Set<"u"&&n instanceof Set?f.set:typeof Date<"u"&&n instanceof Date?f.date:f.object;default:return f.unknown}},d=x.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class D extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(a){return a.message},s={_errors:[]},r=a=>{for(const i of a.issues)if(i.code==="invalid_union")i.unionErrors.map(r);else if(i.code==="invalid_return_type")r(i.returnTypeError);else if(i.code==="invalid_arguments")r(i.argumentsError);else if(i.path.length===0)s._errors.push(t(i));else{let o=s,u=0;for(;u<i.path.length;){const h=i.path[u];u===i.path.length-1?(o[h]=o[h]||{_errors:[]},o[h]._errors.push(t(i))):o[h]=o[h]||{_errors:[]},o=o[h],u++}}};return r(this),s}static assert(e){if(!(e instanceof D))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,x.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},s=[];for(const r of this.issues)if(r.path.length>0){const a=r.path[0];t[a]=t[a]||[],t[a].push(e(r))}else s.push(e(r));return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}}D.create=n=>new D(n);const ue=(n,e)=>{let t;switch(n.code){case d.invalid_type:n.received===f.undefined?t="Required":t=`Expected ${n.expected}, received ${n.received}`;break;case d.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(n.expected,x.jsonStringifyReplacer)}`;break;case d.unrecognized_keys:t=`Unrecognized key(s) in object: ${x.joinValues(n.keys,", ")}`;break;case d.invalid_union:t="Invalid input";break;case d.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${x.joinValues(n.options)}`;break;case d.invalid_enum_value:t=`Invalid enum value. Expected ${x.joinValues(n.options)}, received '${n.received}'`;break;case d.invalid_arguments:t="Invalid function arguments";break;case d.invalid_return_type:t="Invalid function return type";break;case d.invalid_date:t="Invalid date";break;case d.invalid_string:typeof n.validation=="object"?"includes"in n.validation?(t=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${n.validation.position}`)):"startsWith"in n.validation?t=`Invalid input: must start with "${n.validation.startsWith}"`:"endsWith"in n.validation?t=`Invalid input: must end with "${n.validation.endsWith}"`:x.assertNever(n.validation):n.validation!=="regex"?t=`Invalid ${n.validation}`:t="Invalid";break;case d.too_small:n.type==="array"?t=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`:n.type==="string"?t=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`:n.type==="number"?t=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="bigint"?t=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="date"?t=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`:t="Invalid input";break;case d.too_big:n.type==="array"?t=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`:n.type==="string"?t=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`:n.type==="number"?t=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="bigint"?t=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="date"?t=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`:t="Invalid input";break;case d.custom:t="Invalid input";break;case d.invalid_intersection_types:t="Intersection results could not be merged";break;case d.not_multiple_of:t=`Number must be a multiple of ${n.multipleOf}`;break;case d.not_finite:t="Number must be finite";break;default:t=e.defaultError,x.assertNever(n)}return{message:t}};let Ht=ue;function zt(){return Ht}const qt=n=>{const{data:e,path:t,errorMaps:s,issueData:r}=n,a=[...t,...r.path||[]],i={...r,path:a};if(r.message!==void 0)return{...r,path:a,message:r.message};let o="";const u=s.filter(h=>!!h).slice().reverse();for(const h of u)o=h(i,{data:e,defaultError:o}).message;return{...r,path:a,message:o}};function l(n,e){const t=zt(),s=qt({issueData:e,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,t,t===ue?void 0:ue].filter(r=>!!r)});n.common.issues.push(s)}class C{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const s=[];for(const r of t){if(r.status==="aborted")return g;r.status==="dirty"&&e.dirty(),s.push(r.value)}return{status:e.value,value:s}}static async mergeObjectAsync(e,t){const s=[];for(const r of t){const a=await r.key,i=await r.value;s.push({key:a,value:i})}return C.mergeObjectSync(e,s)}static mergeObjectSync(e,t){const s={};for(const r of t){const{key:a,value:i}=r;if(a.status==="aborted"||i.status==="aborted")return g;a.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof i.value<"u"||r.alwaysSet)&&(s[a.value]=i.value)}return{status:e.value,value:s}}}const g=Object.freeze({status:"aborted"}),X=n=>({status:"dirty",value:n}),k=n=>({status:"valid",value:n}),Ee=n=>n.status==="aborted",Te=n=>n.status==="dirty",z=n=>n.status==="valid",ne=n=>typeof Promise<"u"&&n instanceof Promise;var m;(function(n){n.errToObj=e=>typeof e=="string"?{message:e}:e||{},n.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(m||(m={}));class U{constructor(e,t,s,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=s,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const be=(n,e)=>{if(z(e))return{success:!0,data:e.value};if(!n.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new D(n.common.issues);return this._error=t,this._error}}};function A(n){if(!n)return{};const{errorMap:e,invalid_type_error:t,required_error:s,description:r}=n;if(e&&(t||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(i,o)=>{const{message:u}=n;return i.code==="invalid_enum_value"?{message:u??o.defaultError}:typeof o.data>"u"?{message:u??s??o.defaultError}:i.code!=="invalid_type"?{message:o.defaultError}:{message:u??t??o.defaultError}},description:r}}class b{get description(){return this._def.description}_getType(e){return L(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:L(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new C,ctx:{common:e.parent.common,data:e.data,parsedType:L(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(ne(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const s=this.safeParse(e,t);if(s.success)return s.data;throw s.error}safeParse(e,t){const s={common:{issues:[],async:(t==null?void 0:t.async)??!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:L(e)},r=this._parseSync({data:e,path:s.path,parent:s});return be(s,r)}"~validate"(e){var s,r;const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:L(e)};if(!this["~standard"].async)try{const a=this._parseSync({data:e,path:[],parent:t});return z(a)?{value:a.value}:{issues:t.common.issues}}catch(a){(r=(s=a==null?void 0:a.message)==null?void 0:s.toLowerCase())!=null&&r.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(a=>z(a)?{value:a.value}:{issues:t.common.issues})}async parseAsync(e,t){const s=await this.safeParseAsync(e,t);if(s.success)return s.data;throw s.error}async safeParseAsync(e,t){const s={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:L(e)},r=this._parse({data:e,path:s.path,parent:s}),a=await(ne(r)?r:Promise.resolve(r));return be(s,a)}refine(e,t){const s=r=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(r):t;return this._refinement((r,a)=>{const i=e(r),o=()=>a.addIssue({code:d.custom,...s(r)});return typeof Promise<"u"&&i instanceof Promise?i.then(u=>u?!0:(o(),!1)):i?!0:(o(),!1)})}refinement(e,t){return this._refinement((s,r)=>e(s)?!0:(r.addIssue(typeof t=="function"?t(s,r):t),!1))}_refinement(e){return new K({schema:this,typeName:v.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return V.create(this,this._def)}nullable(){return Y.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return w.create(this)}promise(){return ie.create(this,this._def)}or(e){return re.create([this,e],this._def)}and(e){return ae.create(this,e,this._def)}transform(e){return new K({...A(this._def),schema:this,typeName:v.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new fe({...A(this._def),innerType:this,defaultValue:t,typeName:v.ZodDefault})}brand(){return new gn({typeName:v.ZodBranded,type:this,...A(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new he({...A(this._def),innerType:this,catchValue:t,typeName:v.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return ve.create(this,e)}readonly(){return me.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Wt=/^c[^\s-]{8,}$/i,Gt=/^[0-9a-z]+$/,Kt=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Yt=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Jt=/^[a-z0-9_-]{21}$/i,Xt=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Qt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,en=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,tn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let ce;const nn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,sn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,rn=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,an=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,on=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,cn=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,We="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dn=new RegExp(`^${We}$`);function Ge(n){let e="[0-5]\\d";n.precision?e=`${e}\\.\\d{${n.precision}}`:n.precision==null&&(e=`${e}(\\.\\d+)?`);const t=n.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function un(n){return new RegExp(`^${Ge(n)}$`)}function ln(n){let e=`${We}T${Ge(n)}`;const t=[];return t.push(n.local?"Z?":"Z"),n.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function fn(n,e){return!!((e==="v4"||!e)&&nn.test(n)||(e==="v6"||!e)&&rn.test(n))}function hn(n,e){if(!Xt.test(n))return!1;try{const[t]=n.split(".");if(!t)return!1;const s=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),r=JSON.parse(atob(s));return!(typeof r!="object"||r===null||"typ"in r&&(r==null?void 0:r.typ)!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function mn(n,e){return!!((e==="v4"||!e)&&sn.test(n)||(e==="v6"||!e)&&an.test(n))}class B extends b{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==f.string){const a=this._getOrReturnCtx(e);return l(a,{code:d.invalid_type,expected:f.string,received:a.parsedType}),g}const s=new C;let r;for(const a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(r=this._getOrReturnCtx(e,r),l(r,{code:d.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),s.dirty());else if(a.kind==="max")e.data.length>a.value&&(r=this._getOrReturnCtx(e,r),l(r,{code:d.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),s.dirty());else if(a.kind==="length"){const i=e.data.length>a.value,o=e.data.length<a.value;(i||o)&&(r=this._getOrReturnCtx(e,r),i?l(r,{code:d.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):o&&l(r,{code:d.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),s.dirty())}else if(a.kind==="email")en.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"email",code:d.invalid_string,message:a.message}),s.dirty());else if(a.kind==="emoji")ce||(ce=new RegExp(tn,"u")),ce.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"emoji",code:d.invalid_string,message:a.message}),s.dirty());else if(a.kind==="uuid")Yt.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"uuid",code:d.invalid_string,message:a.message}),s.dirty());else if(a.kind==="nanoid")Jt.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"nanoid",code:d.invalid_string,message:a.message}),s.dirty());else if(a.kind==="cuid")Wt.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"cuid",code:d.invalid_string,message:a.message}),s.dirty());else if(a.kind==="cuid2")Gt.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"cuid2",code:d.invalid_string,message:a.message}),s.dirty());else if(a.kind==="ulid")Kt.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"ulid",code:d.invalid_string,message:a.message}),s.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),l(r,{validation:"url",code:d.invalid_string,message:a.message}),s.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"regex",code:d.invalid_string,message:a.message}),s.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(r=this._getOrReturnCtx(e,r),l(r,{code:d.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),s.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(r=this._getOrReturnCtx(e,r),l(r,{code:d.invalid_string,validation:{startsWith:a.value},message:a.message}),s.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(r=this._getOrReturnCtx(e,r),l(r,{code:d.invalid_string,validation:{endsWith:a.value},message:a.message}),s.dirty()):a.kind==="datetime"?ln(a).test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{code:d.invalid_string,validation:"datetime",message:a.message}),s.dirty()):a.kind==="date"?dn.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{code:d.invalid_string,validation:"date",message:a.message}),s.dirty()):a.kind==="time"?un(a).test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{code:d.invalid_string,validation:"time",message:a.message}),s.dirty()):a.kind==="duration"?Qt.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"duration",code:d.invalid_string,message:a.message}),s.dirty()):a.kind==="ip"?fn(e.data,a.version)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"ip",code:d.invalid_string,message:a.message}),s.dirty()):a.kind==="jwt"?hn(e.data,a.alg)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"jwt",code:d.invalid_string,message:a.message}),s.dirty()):a.kind==="cidr"?mn(e.data,a.version)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"cidr",code:d.invalid_string,message:a.message}),s.dirty()):a.kind==="base64"?on.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"base64",code:d.invalid_string,message:a.message}),s.dirty()):a.kind==="base64url"?cn.test(e.data)||(r=this._getOrReturnCtx(e,r),l(r,{validation:"base64url",code:d.invalid_string,message:a.message}),s.dirty()):x.assertNever(a);return{status:s.value,value:e.data}}_regex(e,t,s){return this.refinement(r=>e.test(r),{validation:t,code:d.invalid_string,...m.errToObj(s)})}_addCheck(e){return new B({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...m.errToObj(e)})}url(e){return this._addCheck({kind:"url",...m.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...m.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...m.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...m.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...m.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...m.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...m.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...m.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...m.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...m.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...m.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...m.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...m.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...m.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...m.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...m.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...m.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...m.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...m.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...m.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...m.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...m.errToObj(t)})}nonempty(e){return this.min(1,m.errToObj(e))}trim(){return new B({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new B({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new B({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}B.create=n=>new B({checks:[],typeName:v.ZodString,coerce:(n==null?void 0:n.coerce)??!1,...A(n)});function pn(n,e){const t=(n.toString().split(".")[1]||"").length,s=(e.toString().split(".")[1]||"").length,r=t>s?t:s,a=Number.parseInt(n.toFixed(r).replace(".","")),i=Number.parseInt(e.toFixed(r).replace(".",""));return a%i/10**r}class q extends b{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==f.number){const a=this._getOrReturnCtx(e);return l(a,{code:d.invalid_type,expected:f.number,received:a.parsedType}),g}let s;const r=new C;for(const a of this._def.checks)a.kind==="int"?x.isInteger(e.data)||(s=this._getOrReturnCtx(e,s),l(s,{code:d.invalid_type,expected:"integer",received:"float",message:a.message}),r.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(s=this._getOrReturnCtx(e,s),l(s,{code:d.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(s=this._getOrReturnCtx(e,s),l(s,{code:d.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()):a.kind==="multipleOf"?pn(e.data,a.value)!==0&&(s=this._getOrReturnCtx(e,s),l(s,{code:d.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(s=this._getOrReturnCtx(e,s),l(s,{code:d.not_finite,message:a.message}),r.dirty()):x.assertNever(a);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,m.toString(t))}gt(e,t){return this.setLimit("min",e,!1,m.toString(t))}lte(e,t){return this.setLimit("max",e,!0,m.toString(t))}lt(e,t){return this.setLimit("max",e,!1,m.toString(t))}setLimit(e,t,s,r){return new q({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:m.toString(r)}]})}_addCheck(e){return new q({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:m.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:m.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:m.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:m.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:m.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:m.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:m.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:m.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:m.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&x.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(t===null||s.value>t)&&(t=s.value):s.kind==="max"&&(e===null||s.value<e)&&(e=s.value)}return Number.isFinite(t)&&Number.isFinite(e)}}q.create=n=>new q({checks:[],typeName:v.ZodNumber,coerce:(n==null?void 0:n.coerce)||!1,...A(n)});class W extends b{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==f.bigint)return this._getInvalidInput(e);let s;const r=new C;for(const a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(s=this._getOrReturnCtx(e,s),l(s,{code:d.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(s=this._getOrReturnCtx(e,s),l(s,{code:d.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(s=this._getOrReturnCtx(e,s),l(s,{code:d.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):x.assertNever(a);return{status:r.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return l(t,{code:d.invalid_type,expected:f.bigint,received:t.parsedType}),g}gte(e,t){return this.setLimit("min",e,!0,m.toString(t))}gt(e,t){return this.setLimit("min",e,!1,m.toString(t))}lte(e,t){return this.setLimit("max",e,!0,m.toString(t))}lt(e,t){return this.setLimit("max",e,!1,m.toString(t))}setLimit(e,t,s,r){return new W({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:m.toString(r)}]})}_addCheck(e){return new W({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:m.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:m.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:m.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:m.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:m.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}W.create=n=>new W({checks:[],typeName:v.ZodBigInt,coerce:(n==null?void 0:n.coerce)??!1,...A(n)});class xe extends b{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==f.boolean){const s=this._getOrReturnCtx(e);return l(s,{code:d.invalid_type,expected:f.boolean,received:s.parsedType}),g}return k(e.data)}}xe.create=n=>new xe({typeName:v.ZodBoolean,coerce:(n==null?void 0:n.coerce)||!1,...A(n)});class se extends b{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==f.date){const a=this._getOrReturnCtx(e);return l(a,{code:d.invalid_type,expected:f.date,received:a.parsedType}),g}if(Number.isNaN(e.data.getTime())){const a=this._getOrReturnCtx(e);return l(a,{code:d.invalid_date}),g}const s=new C;let r;for(const a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(r=this._getOrReturnCtx(e,r),l(r,{code:d.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),s.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(r=this._getOrReturnCtx(e,r),l(r,{code:d.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),s.dirty()):x.assertNever(a);return{status:s.value,value:new Date(e.data.getTime())}}_addCheck(e){return new se({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:m.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:m.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}se.create=n=>new se({checks:[],coerce:(n==null?void 0:n.coerce)||!1,typeName:v.ZodDate,...A(n)});class Se extends b{_parse(e){if(this._getType(e)!==f.symbol){const s=this._getOrReturnCtx(e);return l(s,{code:d.invalid_type,expected:f.symbol,received:s.parsedType}),g}return k(e.data)}}Se.create=n=>new Se({typeName:v.ZodSymbol,...A(n)});class Ne extends b{_parse(e){if(this._getType(e)!==f.undefined){const s=this._getOrReturnCtx(e);return l(s,{code:d.invalid_type,expected:f.undefined,received:s.parsedType}),g}return k(e.data)}}Ne.create=n=>new Ne({typeName:v.ZodUndefined,...A(n)});class Ie extends b{_parse(e){if(this._getType(e)!==f.null){const s=this._getOrReturnCtx(e);return l(s,{code:d.invalid_type,expected:f.null,received:s.parsedType}),g}return k(e.data)}}Ie.create=n=>new Ie({typeName:v.ZodNull,...A(n)});class Ce extends b{constructor(){super(...arguments),this._any=!0}_parse(e){return k(e.data)}}Ce.create=n=>new Ce({typeName:v.ZodAny,...A(n)});class ke extends b{constructor(){super(...arguments),this._unknown=!0}_parse(e){return k(e.data)}}ke.create=n=>new ke({typeName:v.ZodUnknown,...A(n)});class Z extends b{_parse(e){const t=this._getOrReturnCtx(e);return l(t,{code:d.invalid_type,expected:f.never,received:t.parsedType}),g}}Z.create=n=>new Z({typeName:v.ZodNever,...A(n)});class Oe extends b{_parse(e){if(this._getType(e)!==f.undefined){const s=this._getOrReturnCtx(e);return l(s,{code:d.invalid_type,expected:f.void,received:s.parsedType}),g}return k(e.data)}}Oe.create=n=>new Oe({typeName:v.ZodVoid,...A(n)});class w extends b{_parse(e){const{ctx:t,status:s}=this._processInputParams(e),r=this._def;if(t.parsedType!==f.array)return l(t,{code:d.invalid_type,expected:f.array,received:t.parsedType}),g;if(r.exactLength!==null){const i=t.data.length>r.exactLength.value,o=t.data.length<r.exactLength.value;(i||o)&&(l(t,{code:i?d.too_big:d.too_small,minimum:o?r.exactLength.value:void 0,maximum:i?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),s.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(l(t,{code:d.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),s.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(l(t,{code:d.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),s.dirty()),t.common.async)return Promise.all([...t.data].map((i,o)=>r.type._parseAsync(new U(t,i,t.path,o)))).then(i=>C.mergeArray(s,i));const a=[...t.data].map((i,o)=>r.type._parseSync(new U(t,i,t.path,o)));return C.mergeArray(s,a)}get element(){return this._def.type}min(e,t){return new w({...this._def,minLength:{value:e,message:m.toString(t)}})}max(e,t){return new w({...this._def,maxLength:{value:e,message:m.toString(t)}})}length(e,t){return new w({...this._def,exactLength:{value:e,message:m.toString(t)}})}nonempty(e){return this.min(1,e)}}w.create=(n,e)=>new w({type:n,minLength:null,maxLength:null,exactLength:null,typeName:v.ZodArray,...A(e)});function H(n){if(n instanceof S){const e={};for(const t in n.shape){const s=n.shape[t];e[t]=V.create(H(s))}return new S({...n._def,shape:()=>e})}else return n instanceof w?new w({...n._def,type:H(n.element)}):n instanceof V?V.create(H(n.unwrap())):n instanceof Y?Y.create(H(n.unwrap())):n instanceof j?j.create(n.items.map(e=>H(e))):n}class S extends b{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=x.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==f.object){const h=this._getOrReturnCtx(e);return l(h,{code:d.invalid_type,expected:f.object,received:h.parsedType}),g}const{status:s,ctx:r}=this._processInputParams(e),{shape:a,keys:i}=this._getCached(),o=[];if(!(this._def.catchall instanceof Z&&this._def.unknownKeys==="strip"))for(const h in r.data)i.includes(h)||o.push(h);const u=[];for(const h of i){const E=a[h],O=r.data[h];u.push({key:{status:"valid",value:h},value:E._parse(new U(r,O,r.path,h)),alwaysSet:h in r.data})}if(this._def.catchall instanceof Z){const h=this._def.unknownKeys;if(h==="passthrough")for(const E of o)u.push({key:{status:"valid",value:E},value:{status:"valid",value:r.data[E]}});else if(h==="strict")o.length>0&&(l(r,{code:d.unrecognized_keys,keys:o}),s.dirty());else if(h!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const h=this._def.catchall;for(const E of o){const O=r.data[E];u.push({key:{status:"valid",value:E},value:h._parse(new U(r,O,r.path,E)),alwaysSet:E in r.data})}}return r.common.async?Promise.resolve().then(async()=>{const h=[];for(const E of u){const O=await E.key,tt=await E.value;h.push({key:O,value:tt,alwaysSet:E.alwaysSet})}return h}).then(h=>C.mergeObjectSync(s,h)):C.mergeObjectSync(s,u)}get shape(){return this._def.shape()}strict(e){return m.errToObj,new S({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,s)=>{var a,i;const r=((i=(a=this._def).errorMap)==null?void 0:i.call(a,t,s).message)??s.defaultError;return t.code==="unrecognized_keys"?{message:m.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new S({...this._def,unknownKeys:"strip"})}passthrough(){return new S({...this._def,unknownKeys:"passthrough"})}extend(e){return new S({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new S({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:v.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new S({...this._def,catchall:e})}pick(e){const t={};for(const s of x.objectKeys(e))e[s]&&this.shape[s]&&(t[s]=this.shape[s]);return new S({...this._def,shape:()=>t})}omit(e){const t={};for(const s of x.objectKeys(this.shape))e[s]||(t[s]=this.shape[s]);return new S({...this._def,shape:()=>t})}deepPartial(){return H(this)}partial(e){const t={};for(const s of x.objectKeys(this.shape)){const r=this.shape[s];e&&!e[s]?t[s]=r:t[s]=r.optional()}return new S({...this._def,shape:()=>t})}required(e){const t={};for(const s of x.objectKeys(this.shape))if(e&&!e[s])t[s]=this.shape[s];else{let a=this.shape[s];for(;a instanceof V;)a=a._def.innerType;t[s]=a}return new S({...this._def,shape:()=>t})}keyof(){return Ke(x.objectKeys(this.shape))}}S.create=(n,e)=>new S({shape:()=>n,unknownKeys:"strip",catchall:Z.create(),typeName:v.ZodObject,...A(e)});S.strictCreate=(n,e)=>new S({shape:()=>n,unknownKeys:"strict",catchall:Z.create(),typeName:v.ZodObject,...A(e)});S.lazycreate=(n,e)=>new S({shape:n,unknownKeys:"strip",catchall:Z.create(),typeName:v.ZodObject,...A(e)});class re extends b{_parse(e){const{ctx:t}=this._processInputParams(e),s=this._def.options;function r(a){for(const o of a)if(o.result.status==="valid")return o.result;for(const o of a)if(o.result.status==="dirty")return t.common.issues.push(...o.ctx.common.issues),o.result;const i=a.map(o=>new D(o.ctx.common.issues));return l(t,{code:d.invalid_union,unionErrors:i}),g}if(t.common.async)return Promise.all(s.map(async a=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await a._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(r);{let a;const i=[];for(const u of s){const h={...t,common:{...t.common,issues:[]},parent:null},E=u._parseSync({data:t.data,path:t.path,parent:h});if(E.status==="valid")return E;E.status==="dirty"&&!a&&(a={result:E,ctx:h}),h.common.issues.length&&i.push(h.common.issues)}if(a)return t.common.issues.push(...a.ctx.common.issues),a.result;const o=i.map(u=>new D(u));return l(t,{code:d.invalid_union,unionErrors:o}),g}}get options(){return this._def.options}}re.create=(n,e)=>new re({options:n,typeName:v.ZodUnion,...A(e)});function le(n,e){const t=L(n),s=L(e);if(n===e)return{valid:!0,data:n};if(t===f.object&&s===f.object){const r=x.objectKeys(e),a=x.objectKeys(n).filter(o=>r.indexOf(o)!==-1),i={...n,...e};for(const o of a){const u=le(n[o],e[o]);if(!u.valid)return{valid:!1};i[o]=u.data}return{valid:!0,data:i}}else if(t===f.array&&s===f.array){if(n.length!==e.length)return{valid:!1};const r=[];for(let a=0;a<n.length;a++){const i=n[a],o=e[a],u=le(i,o);if(!u.valid)return{valid:!1};r.push(u.data)}return{valid:!0,data:r}}else return t===f.date&&s===f.date&&+n==+e?{valid:!0,data:n}:{valid:!1}}class ae extends b{_parse(e){const{status:t,ctx:s}=this._processInputParams(e),r=(a,i)=>{if(Ee(a)||Ee(i))return g;const o=le(a.value,i.value);return o.valid?((Te(a)||Te(i))&&t.dirty(),{status:t.value,value:o.data}):(l(s,{code:d.invalid_intersection_types}),g)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([a,i])=>r(a,i)):r(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}}ae.create=(n,e,t)=>new ae({left:n,right:e,typeName:v.ZodIntersection,...A(t)});class j extends b{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==f.array)return l(s,{code:d.invalid_type,expected:f.array,received:s.parsedType}),g;if(s.data.length<this._def.items.length)return l(s,{code:d.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),g;!this._def.rest&&s.data.length>this._def.items.length&&(l(s,{code:d.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...s.data].map((i,o)=>{const u=this._def.items[o]||this._def.rest;return u?u._parse(new U(s,i,s.path,o)):null}).filter(i=>!!i);return s.common.async?Promise.all(a).then(i=>C.mergeArray(t,i)):C.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new j({...this._def,rest:e})}}j.create=(n,e)=>{if(!Array.isArray(n))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new j({items:n,typeName:v.ZodTuple,rest:null,...A(e)})};class we extends b{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==f.map)return l(s,{code:d.invalid_type,expected:f.map,received:s.parsedType}),g;const r=this._def.keyType,a=this._def.valueType,i=[...s.data.entries()].map(([o,u],h)=>({key:r._parse(new U(s,o,s.path,[h,"key"])),value:a._parse(new U(s,u,s.path,[h,"value"]))}));if(s.common.async){const o=new Map;return Promise.resolve().then(async()=>{for(const u of i){const h=await u.key,E=await u.value;if(h.status==="aborted"||E.status==="aborted")return g;(h.status==="dirty"||E.status==="dirty")&&t.dirty(),o.set(h.value,E.value)}return{status:t.value,value:o}})}else{const o=new Map;for(const u of i){const h=u.key,E=u.value;if(h.status==="aborted"||E.status==="aborted")return g;(h.status==="dirty"||E.status==="dirty")&&t.dirty(),o.set(h.value,E.value)}return{status:t.value,value:o}}}}we.create=(n,e,t)=>new we({valueType:e,keyType:n,typeName:v.ZodMap,...A(t)});class Q extends b{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==f.set)return l(s,{code:d.invalid_type,expected:f.set,received:s.parsedType}),g;const r=this._def;r.minSize!==null&&s.data.size<r.minSize.value&&(l(s,{code:d.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&s.data.size>r.maxSize.value&&(l(s,{code:d.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const a=this._def.valueType;function i(u){const h=new Set;for(const E of u){if(E.status==="aborted")return g;E.status==="dirty"&&t.dirty(),h.add(E.value)}return{status:t.value,value:h}}const o=[...s.data.values()].map((u,h)=>a._parse(new U(s,u,s.path,h)));return s.common.async?Promise.all(o).then(u=>i(u)):i(o)}min(e,t){return new Q({...this._def,minSize:{value:e,message:m.toString(t)}})}max(e,t){return new Q({...this._def,maxSize:{value:e,message:m.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}Q.create=(n,e)=>new Q({valueType:n,minSize:null,maxSize:null,typeName:v.ZodSet,...A(e)});class Re extends b{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}Re.create=(n,e)=>new Re({getter:n,typeName:v.ZodLazy,...A(e)});class De extends b{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return l(t,{received:t.data,code:d.invalid_literal,expected:this._def.value}),g}return{status:"valid",value:e.data}}get value(){return this._def.value}}De.create=(n,e)=>new De({value:n,typeName:v.ZodLiteral,...A(e)});function Ke(n,e){return new G({values:n,typeName:v.ZodEnum,...A(e)})}class G extends b{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),s=this._def.values;return l(t,{expected:x.joinValues(s),received:t.parsedType,code:d.invalid_type}),g}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),s=this._def.values;return l(t,{received:t.data,code:d.invalid_enum_value,options:s}),g}return k(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return G.create(e,{...this._def,...t})}exclude(e,t=this._def){return G.create(this.options.filter(s=>!e.includes(s)),{...this._def,...t})}}G.create=Ke;class Le extends b{_parse(e){const t=x.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==f.string&&s.parsedType!==f.number){const r=x.objectValues(t);return l(s,{expected:x.joinValues(r),received:s.parsedType,code:d.invalid_type}),g}if(this._cache||(this._cache=new Set(x.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=x.objectValues(t);return l(s,{received:s.data,code:d.invalid_enum_value,options:r}),g}return k(e.data)}get enum(){return this._def.values}}Le.create=(n,e)=>new Le({values:n,typeName:v.ZodNativeEnum,...A(e)});class ie extends b{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==f.promise&&t.common.async===!1)return l(t,{code:d.invalid_type,expected:f.promise,received:t.parsedType}),g;const s=t.parsedType===f.promise?t.data:Promise.resolve(t.data);return k(s.then(r=>this._def.type.parseAsync(r,{path:t.path,errorMap:t.common.contextualErrorMap})))}}ie.create=(n,e)=>new ie({type:n,typeName:v.ZodPromise,...A(e)});class K extends b{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===v.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:s}=this._processInputParams(e),r=this._def.effect||null,a={addIssue:i=>{l(s,i),i.fatal?t.abort():t.dirty()},get path(){return s.path}};if(a.addIssue=a.addIssue.bind(a),r.type==="preprocess"){const i=r.transform(s.data,a);if(s.common.async)return Promise.resolve(i).then(async o=>{if(t.value==="aborted")return g;const u=await this._def.schema._parseAsync({data:o,path:s.path,parent:s});return u.status==="aborted"?g:u.status==="dirty"||t.value==="dirty"?X(u.value):u});{if(t.value==="aborted")return g;const o=this._def.schema._parseSync({data:i,path:s.path,parent:s});return o.status==="aborted"?g:o.status==="dirty"||t.value==="dirty"?X(o.value):o}}if(r.type==="refinement"){const i=o=>{const u=r.refinement(o,a);if(s.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(s.common.async===!1){const o=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return o.status==="aborted"?g:(o.status==="dirty"&&t.dirty(),i(o.value),{status:t.value,value:o.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(o=>o.status==="aborted"?g:(o.status==="dirty"&&t.dirty(),i(o.value).then(()=>({status:t.value,value:o.value}))))}if(r.type==="transform")if(s.common.async===!1){const i=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!z(i))return g;const o=r.transform(i.value,a);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:o}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(i=>z(i)?Promise.resolve(r.transform(i.value,a)).then(o=>({status:t.value,value:o})):g);x.assertNever(r)}}K.create=(n,e,t)=>new K({schema:n,typeName:v.ZodEffects,effect:e,...A(t)});K.createWithPreprocess=(n,e,t)=>new K({schema:e,effect:{type:"preprocess",transform:n},typeName:v.ZodEffects,...A(t)});class V extends b{_parse(e){return this._getType(e)===f.undefined?k(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}V.create=(n,e)=>new V({innerType:n,typeName:v.ZodOptional,...A(e)});class Y extends b{_parse(e){return this._getType(e)===f.null?k(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Y.create=(n,e)=>new Y({innerType:n,typeName:v.ZodNullable,...A(e)});class fe extends b{_parse(e){const{ctx:t}=this._processInputParams(e);let s=t.data;return t.parsedType===f.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}fe.create=(n,e)=>new fe({innerType:n,typeName:v.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...A(e)});class he extends b{_parse(e){const{ctx:t}=this._processInputParams(e),s={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return ne(r)?r.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new D(s.common.issues)},input:s.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new D(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}}he.create=(n,e)=>new he({innerType:n,typeName:v.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...A(e)});class Pe extends b{_parse(e){if(this._getType(e)!==f.nan){const s=this._getOrReturnCtx(e);return l(s,{code:d.invalid_type,expected:f.nan,received:s.parsedType}),g}return{status:"valid",value:e.data}}}Pe.create=n=>new Pe({typeName:v.ZodNaN,...A(n)});class gn extends b{_parse(e){const{ctx:t}=this._processInputParams(e),s=t.data;return this._def.type._parse({data:s,path:t.path,parent:t})}unwrap(){return this._def.type}}class ve extends b{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return(async()=>{const a=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return a.status==="aborted"?g:a.status==="dirty"?(t.dirty(),X(a.value)):this._def.out._parseAsync({data:a.value,path:s.path,parent:s})})();{const r=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return r.status==="aborted"?g:r.status==="dirty"?(t.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:s.path,parent:s})}}static create(e,t){return new ve({in:e,out:t,typeName:v.ZodPipeline})}}class me extends b{_parse(e){const t=this._def.innerType._parse(e),s=r=>(z(r)&&(r.value=Object.freeze(r.value)),r);return ne(t)?t.then(r=>s(r)):s(t)}unwrap(){return this._def.innerType}}me.create=(n,e)=>new me({innerType:n,typeName:v.ZodReadonly,...A(e)});var v;(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(v||(v={}));const R=B.create,vn=q.create,yn=W.create;Z.create;w.create;const Ye=S.create,_n=re.create;ae.create;j.create;G.create;ie.create;V.create;Y.create;function An(){const n=new Map;return{on(e,t){let s=n.get(e);return s||(s=new Set,n.set(e,s)),s.add(t),()=>{s==null||s.delete(t),s&&s.size===0&&n.delete(e)}},emit(e,...t){const s=n.get(e);if(!(!s||s.size===0))for(const r of s)try{r(...t)}catch(a){console.error(`Error in event handler for "${String(e)}":`,a)}},off(e,t){const s=n.get(e);s&&(s.delete(t),s.size===0&&n.delete(e))},clear(){n.clear()}}}class En{constructor(e,t){I(this,"eventEmitter");I(this,"_status");I(this,"_error",null);I(this,"_isLoading",!1);I(this,"logger");I(this,"_timing",new Map);this.eventEmitter=An(),this._status=e,this.logger=t}log(e,t,s){if(!this.logger)return;const r={action:this.constructor.name,status:this._status,...s};switch(e){case"debug":this.logger.debug(t,r);break;case"info":this.logger.info(t,r);break;case"warn":this.logger.warn(t,r);break;case"error":this.logger.error(t,r);break}}getTiming(e){return this._timing.get(e)}getAllTimings(){return Object.fromEntries(this._timing)}recordTiming(e,t){this._timing.set(e,t)}get status(){return this._status}get error(){return this._error}get isFailed(){return this._error!==null}get isLoading(){return this._isLoading}updateStatus(e){this._status=e,this.emitStatusChange(e)}assertStatus(e,t){const s=Array.isArray(e)?e:[e];if(!s.includes(this._status))throw new T(P.INVALID_STATE,`Cannot ${t} while status is ${this._status}, allowed: ${s.join(", ")}`)}clearError(){this._error=null}handleFailure(e){throw this._error=e instanceof T?e:de(e),this.emitError(this._error),this.emitFailed(),this._error}setLoading(e){this._isLoading=e,this.emitLoading(e)}async act(e,t){const s=performance.now(),r=t??"operation";this.log("debug",`Starting ${r}`,{step:String(r)}),this.clearError(),this.setLoading(!0);try{const a=await e(),i=performance.now()-s;return this.recordTiming(String(r),i),this.log("info",`Completed ${r}`,{step:String(r),duration:Math.round(i)}),t!==void 0&&this.updateStatus(t),a}catch(a){const i=performance.now()-s,o=a instanceof T?a:de(a);return this.recordTiming(String(r),i),this.log("error",`Failed ${r}`,{step:String(r),duration:Math.round(i),errorCode:o.code,errorMessage:o.message}),this.handleFailure(a)}finally{this.setLoading(!1)}}on(e,t){return this.eventEmitter.on(e,t)}emitProgress(e){this.eventEmitter.emit("progress",e)}emitStatusChange(e){this.eventEmitter.emit("status-change",e)}emitCompleted(){this.eventEmitter.emit("completed")}emitFailed(){this.eventEmitter.emit("failed")}emitError(e){this.eventEmitter.emit("error",e)}emitLoading(e){this.eventEmitter.emit("loading",e)}clearListeners(){this.eventEmitter.clear()}}function Tn(n){if(!n||typeof n!="string")return!1;if(n.startsWith("bc1")||n.startsWith("tb1"))try{return ye.address.fromBech32(n),!0}catch{return!1}try{return ye.address.fromBase58Check(n),!0}catch{return!1}}function bn(n){const e=/^[1-9A-HJ-NP-Za-km-z]+$/;if(!n||typeof n!="string"||!e.test(n)||n.length<32||n.length>44)return!1;try{return xn(n).length===32}catch{return!1}}function xn(n){const e="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",t={};for(let u=0;u<e.length;u++)t[e[u]]=u;if(n.length===0)return new Uint8Array(0);let s=0;for(let u=0;u<n.length&&n[u]==="1";u++)s++;const r=Math.ceil(n.length*Math.log(58)/Math.log(256)),a=new Uint8Array(r);for(let u=s;u<n.length;u++){const h=t[n[u]];if(h===void 0)throw new Error(`Invalid base58 character: ${n[u]}`);let E=h;for(let O=r-1;O>=0;O--)E+=58*a[O],a[O]=E%256,E=Math.floor(E/256)}let i=0;for(;i<a.length&&a[i]===0;)i++;const o=new Uint8Array(s+(a.length-i));return o.fill(0,0,s),o.set(a.subarray(i),s),o}function Je(n){const e=R({message:"Amount is required"}).min(1,"Amount is required").refine(t=>t!=="0",{message:"Amount must be greater than 0"}).refine(t=>{const s=Number.parseFloat(t);return!Number.isNaN(s)&&s>0},{message:"Invalid amount format"});return n!==void 0&&n>0?e.refine(t=>Number.parseFloat(t)>=n,{message:`Amount must be at least ${n}`}):e}const Xe=Je(),Qe=Je(at.MIN_STAKE_AMOUNT_BTC),Sn=Xe;_n([yn(),vn()]).refine(n=>n>0,{message:"Amount must be greater than 0"});const Nn=R({message:"Address is required"}).regex(/^0x[a-fA-F0-9]{40}$/,"Invalid EVM address format"),In=R({message:"Address is required"}).refine(bn,{message:"Invalid Solana address format"}),Cn=R({message:"Address is required"}).regex(/^0x[a-fA-F0-9]{64}$/,"Invalid Sui address format"),kn=R({message:"Address is required"}).regex(/^0x[a-fA-F0-9]{1,64}$/,"Invalid Starknet address format"),On=R({message:"Address is required"}).refine(Tn,{message:"Invalid Bitcoin address format"}),et=R().optional();R().regex(/^0x[a-fA-F0-9]{64}$/,"Invalid transaction hash");Ye({amount:Qe,recipient:R({message:"Recipient is required"}).min(1,"Recipient is required"),referralCode:et});function wn(n,e,t={}){const s=n.safeParse(e);if(!s.success){const r=s.error.issues[0],a=r==null?void 0:r.path[0],i=(r==null?void 0:r.message)??"Invalid parameter";throw a==="amount"?T.invalidAmount(i):a==="recipient"?T.invalidAddress(e==null?void 0:e.recipient,t.destChain):T.invalidParameter(String(a),i)}return s.data}const Rn={IDLE:"idle",NEEDS_FEE_AUTHORIZATION:"needs_fee_authorization",NEEDS_ADDRESS_CONFIRMATION:"needs_address_confirmation",NEEDS_DEPLOY_AUTHORIZATION:"needs_deploy_authorization",READY:"ready",ADDRESS_READY:"address_ready"},Dn={IDLE:"idle",NEEDS_FEE_AUTHORIZATION:"needs_fee_authorization",NEEDS_APPROVAL:"needs-approval",READY:"ready",CONFIRMING:"confirming",COMPLETED:"completed"},Ln={IDLE:"idle",READY:"ready",CONFIRMING:"confirming",COMPLETED:"completed"};exports.ASSET_CATALOG=N;exports.BaseAction=En;exports.BtcActionStatus=Rn;exports.CAIP2_SEPARATOR=oe;exports.CHAIN_CATALOG=$;exports.CHAIN_PREFIXES=p;exports.CapabilityRegistry=He;exports.Chain=c;exports.ContractErrorCode=Ze;exports.ErrorCode=Me;exports.EvmOperationStatus=Dn;exports.LombardError=T;exports.NonEvmOperationStatus=Ln;exports.PartnerConfiguration=je;exports.ProviderErrorCode=Ve;exports.RegistryErrorCode=Ue;exports.SDK_NAME=ot;exports.SDK_RUNTIME=ct;exports.SDK_VERSION=Be;exports.StepStatus=jt;exports.StrategyStatus=Ft;exports.ValidationErrorCode=P;exports.WithdrawErrorCode=$e;exports.amountSchema=Xe;exports.bitcoinAddressSchema=On;exports.btcStakeAmountSchema=Qe;exports.chainValueToKey=dt;exports.createBtcCoreContext=Zt;exports.createEvmCoreContext=$t;exports.evmAddressSchema=Nn;exports.evmAmountSchema=Sn;exports.evmChainIdToChain=Et;exports.getAllAssetChains=Lt;exports.getAssetAddress=bt;exports.getAssetByAddress=Ot;exports.getAssetChains=wt;exports.getAssetChainsForEnvs=te;exports.getAssetDecimals=xt;exports.getAssetEnvironments=Rt;exports.getAssetMetadata=Pt;exports.getAssetRouter=St;exports.getBridgeAdapter=It;exports.getChainMetadata=mt;exports.getChainName=pt;exports.getChainType=gt;exports.getEvmAssetChains=Bt;exports.getEvmChainsWithAllAssets=Vt;exports.getExplorerTxUrl=_t;exports.getProviderGetter=ge;exports.getPublicMarketMaker=Ct;exports.getSupportedAssets=Dt;exports.isAssetDeployed=kt;exports.isChain=ut;exports.isEvmChain=pe;exports.isLombardError=Fe;exports.isMainnet=yt;exports.isTestnet=vt;exports.objectType=Ye;exports.parseChainIdentifier=At;exports.referralCodeSchema=et;exports.solanaAddressSchema=In;exports.starknetAddressSchema=kn;exports.stringType=R;exports.suiAddressSchema=Cn;exports.usesAssetRouter=Nt;exports.validatePrepareParams=wn;exports.wrapError=de;
2
- //# sourceMappingURL=statusConstants-vBPE_3ql.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-addresses-Ddar0FyS.js","sources":["../../src/clients/wallet-client.ts","../../src/common/chains.ts","../../src/tokens/types.ts","../../src/tokens/token-addresses.ts"],"sourcesContent":["import {\n createWalletClient,\n custom,\n EIP1193Provider,\n WalletClient,\n} from 'viem';\n\nimport { CHAIN_ID_TO_VIEM_CHAIN_MAP, ChainId } from '../common/chains';\n\ntype MakeClientParameters = {\n provider: EIP1193Provider;\n chainId: ChainId;\n};\n\n/**\n * Creates the client for specified `chainId`.\n * @param chainId - The chain id\n * @param rpcUrl - The overridden RPC url for specified chain id.\n * @returns The public client instance\n */\nexport function makeWalletClient({\n provider,\n chainId,\n}: MakeClientParameters): WalletClient {\n const chain = CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId];\n const transport = custom(provider);\n\n const client = createWalletClient({\n chain,\n transport,\n });\n\n return client as WalletClient<typeof transport>;\n}\n","import { defineChain, type EIP1193Provider, extractChain } from 'viem';\nimport { addChain as viem_addChain } from 'viem/actions';\nimport * as viem_chains from 'viem/chains';\n\nimport { makeWalletClient } from '../clients/wallet-client';\nimport { featureConfig } from './feature-config';\n\nconst {\n avalanche,\n avalancheFuji,\n base,\n baseSepolia,\n berachain,\n berachainTestnetbArtio,\n bsc,\n bscTestnet,\n corn,\n etherlink,\n holesky,\n mainnet,\n morph,\n morphHolesky,\n sepolia,\n sonic,\n sonicBlazeTestnet,\n swellchain,\n} = viem_chains;\n\n// FIXME: Remove this custom chain definition once katana is supported by viem\nexport const katana = defineChain({\n id: 747474,\n name: 'Katana',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: ['https://rpc.katana.network'],\n webSocket: ['wss://rpc.katana.network'],\n },\n },\n blockExplorers: {\n default: { name: 'Katana Explorer', url: 'https://explorer.katanarpc.com' },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 1898013, // TODO: Confirm this\n },\n },\n});\n\n// FIXME: Remove this custom chain definition once TAC is supported by viem\nexport const tac = defineChain({\n id: 239,\n name: 'TAC',\n nativeCurrency: {\n decimals: 18,\n name: 'TAC',\n symbol: 'TAC',\n },\n rpcUrls: {\n default: {\n http: ['https://rpc.tac.build'],\n },\n },\n blockExplorers: {\n default: { name: 'TAC Explorer', url: 'https://explorer.tac.build' },\n },\n});\n\nexport const bob = defineChain({\n id: 60808,\n name: 'BOB',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: ['https://rpc.gobob.xyz'],\n },\n },\n blockExplorers: {\n default: { name: 'BOB Explorer', url: 'https://explorer.gobob.xyz' },\n },\n});\n\nexport const bobSepolia = defineChain({\n id: 808813,\n name: 'BOB Sepolia',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: ['https://bob-sepolia.rpc.gobob.xyz'],\n },\n },\n blockExplorers: {\n default: {\n name: 'BOB Sepolia Explorer',\n url: 'https://bob-sepolia.explorer.gobob.xyz/',\n },\n },\n});\n\nexport const monad = defineChain({\n id: 143,\n name: 'Monad',\n nativeCurrency: {\n decimals: 18,\n name: 'Monad',\n symbol: 'MONAD',\n },\n rpcUrls: {\n default: {\n http: ['https://monad-mainnet.drpc.org'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Monad Explorer',\n url: 'https://monadvision.com',\n },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 9248132,\n },\n },\n});\n\nexport const stable = defineChain({\n id: 988,\n name: 'Stable',\n nativeCurrency: {\n decimals: 18,\n name: 'gUSDT',\n symbol: 'gUSDT',\n },\n rpcUrls: {\n default: {\n http: [\n 'https://partners-rpc.stable.xyz/lombard.075830647a2c30190712a9d102011ffe5a2a01d24ff3405f711d6ea8aca10baf',\n ],\n }, // TODO: Update with the correct RPC URL once the stable network is live\n },\n blockExplorers: {\n default: {\n name: 'Stable Explorer',\n url: 'https://stablescan.xyz',\n },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 1,\n },\n },\n});\n\nexport const megaeth = defineChain({\n id: 4326,\n name: 'MegaETH',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: ['https://mainnet.megaeth.com/rpc'],\n },\n },\n blockExplorers: {\n default: {\n name: 'MegaETH Explorer',\n url: 'https://megaeth.blockscout.com',\n },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 2591807, // TODO: Confirm this\n },\n },\n});\n\nexport const allChains: Record<string, viem_chains.Chain> = {\n ...viem_chains,\n katana,\n tac,\n monad,\n stable,\n megaeth,\n};\n\nexport const SUI_DEVNET_CHAIN = 'sui:devnet' as const;\nexport const SUI_TESTNET_CHAIN = 'sui:testnet' as const;\nexport const SUI_LOCALNET_CHAIN = 'sui:localnet' as const;\nexport const SUI_MAINNET_CHAIN = 'sui:mainnet' as const;\n\nexport type SuiChain =\n | typeof SUI_DEVNET_CHAIN\n | typeof SUI_TESTNET_CHAIN\n | typeof SUI_LOCALNET_CHAIN\n | typeof SUI_MAINNET_CHAIN;\n\nexport const isSuiChain = (chainId: unknown): chainId is SuiChain => {\n return (\n [\n SUI_DEVNET_CHAIN,\n SUI_TESTNET_CHAIN,\n SUI_LOCALNET_CHAIN,\n SUI_MAINNET_CHAIN,\n ] as string[]\n ).includes(chainId as string);\n};\n\nexport const SOLANA_MAINNET_CHAIN = 'solana:mainnet-beta' as const;\nexport const SOLANA_TESTNET_CHAIN = 'solana:testnet' as const;\nexport const SOLANA_DEVNET_CHAIN = 'solana:devnet' as const;\n\nexport type SolanaChain =\n | typeof SOLANA_MAINNET_CHAIN\n | typeof SOLANA_TESTNET_CHAIN\n | typeof SOLANA_DEVNET_CHAIN;\n\nexport const isSolanaChain = (chainId: unknown): chainId is SolanaChain => {\n return (\n [\n SOLANA_MAINNET_CHAIN,\n SOLANA_TESTNET_CHAIN,\n SOLANA_DEVNET_CHAIN,\n ] as string[]\n ).includes(chainId as string);\n};\n\n// Starknet chain identifiers:\nexport const STARKNET_MAINNET_CHAIN = '0x534e5f4d41494e' as const;\nexport const STARKNET_SEPOLIA_CHAIN = '0x534e5f5345504f4c4941' as const;\nexport type StarknetChainId =\n | typeof STARKNET_MAINNET_CHAIN\n | typeof STARKNET_SEPOLIA_CHAIN;\n\nexport const isStarknetChainId = (\n chainId: unknown,\n): chainId is StarknetChainId => {\n return (\n chainId === STARKNET_MAINNET_CHAIN || chainId === STARKNET_SEPOLIA_CHAIN\n );\n};\n\nexport const ChainId = {\n ethereum: 1,\n avalanche: 43114,\n base: 8453,\n berachain: 80094,\n binanceSmartChain: 56,\n corn: 21000000,\n etherlink: 42793,\n katana: 747474,\n megaeth: 4326,\n monad: 143,\n morph: 2818,\n sonic: 146,\n stable: 988,\n swell: 1923,\n tac: 239,\n bob: 60808,\n // Testnets:\n avalancheFuji: 43113,\n baseSepoliaTestnet: 84532,\n berachainBartioTestnet: 80084,\n binanceSmartChainTestnet: 97,\n holesky: 17000,\n morphHolesky: 2810,\n sepolia: 11155111,\n sonicBlazeTestnet: 57054,\n} as const;\n\nexport type ChainId = (typeof ChainId)[keyof typeof ChainId];\n\nexport const CHAIN_ID_TO_VIEM_CHAIN_MAP = {\n [ChainId.ethereum]: mainnet,\n // Avalanche mainnet - BTC.b not released yet\n ...(featureConfig.isAvalancheMainnetEnabled\n ? { [ChainId.avalanche]: avalanche }\n : {}),\n [ChainId.base]: base,\n // Feature-gated chains\n ...(featureConfig.isBerachainEnabled\n ? { [ChainId.berachain]: berachain }\n : {}),\n [ChainId.binanceSmartChain]: bsc,\n ...(featureConfig.isCornEnabled ? { [ChainId.corn]: corn } : {}),\n ...(featureConfig.isEtherlinkEnabled\n ? { [ChainId.etherlink]: etherlink }\n : {}),\n [ChainId.katana]: katana,\n [ChainId.megaeth]: megaeth,\n [ChainId.monad]: monad,\n ...(featureConfig.isMorphEnabled ? { [ChainId.morph]: morph } : {}),\n [ChainId.sonic]: sonic,\n [ChainId.stable]: stable,\n ...(featureConfig.isSwellchainEnabled\n ? { [ChainId.swell]: swellchain }\n : {}),\n ...(featureConfig.isTacEnabled ? { [ChainId.tac]: tac } : {}),\n ...(featureConfig.isBobEnabled ? { [ChainId.bob]: bob } : {}),\n // Testnets:\n // Avalanche Fuji - enabled for testing (Silo integration)\n ...(featureConfig.isAvalancheFujiEnabled\n ? { [ChainId.avalancheFuji]: avalancheFuji }\n : {}),\n [ChainId.baseSepoliaTestnet]: baseSepolia,\n ...(featureConfig.isBerachainEnabled\n ? { [ChainId.berachainBartioTestnet]: berachainTestnetbArtio }\n : {}),\n [ChainId.binanceSmartChainTestnet]: bscTestnet,\n [ChainId.holesky]: holesky,\n ...(featureConfig.isMorphEnabled\n ? { [ChainId.morphHolesky]: morphHolesky }\n : {}),\n [ChainId.sepolia]: sepolia,\n [ChainId.sonicBlazeTestnet]: sonicBlazeTestnet,\n};\n\ntype KatanaChain = typeof ChainId.katana;\nexport const isKatanaChain = (chainId: unknown): chainId is KatanaChain => {\n return chainId === ChainId.katana;\n};\ntype MonadChain = typeof ChainId.monad;\nexport const isMonadChain = (chainId: unknown): chainId is MonadChain => {\n return chainId === ChainId.monad;\n};\n\ntype EthereumChain = typeof ChainId.ethereum;\nexport const isEthereumChain = (chainId: unknown): chainId is EthereumChain => {\n return ([ChainId.ethereum] as number[]).includes(chainId as number);\n};\n\ntype StableChain = typeof ChainId.stable;\nexport const isStableChain = (chainId: unknown): chainId is StableChain => {\n return chainId === ChainId.stable;\n};\n\ntype MegaethChain = typeof ChainId.megaeth;\nexport const isMegaethChain = (chainId: unknown): chainId is MegaethChain => {\n return ([ChainId.megaeth] as number[]).includes(chainId as number);\n};\nexport const CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP = {\n [ChainId.ethereum]: 'ethereum',\n ...(featureConfig.isAvalancheMainnetEnabled\n ? { [ChainId.avalanche]: 'avalanche' }\n : {}),\n [ChainId.base]: 'base',\n [ChainId.berachain]: 'berachain',\n [ChainId.binanceSmartChain]: 'bsc',\n [ChainId.corn]: 'corn',\n [ChainId.etherlink]: 'etherlink',\n [ChainId.morph]: 'morph',\n [ChainId.sonic]: 'sonic',\n [ChainId.swell]: 'swellchain',\n [ChainId.megaeth]: 'megaeth',\n [ChainId.monad]: 'monad',\n [ChainId.katana]: 'katana',\n [ChainId.stable]: 'stable',\n} as const;\ntype LlamaChain =\n (typeof CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP)[keyof typeof CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP];\n\nexport function isValidChain(chainId: unknown): chainId is ChainId {\n return Object.values(ChainId).includes(chainId as ChainId);\n}\n\nexport type AddChainParameters = {\n provider: EIP1193Provider;\n chainId: ChainId;\n};\n\nexport async function addChain({ provider, chainId }: AddChainParameters) {\n const walletClient = makeWalletClient({\n provider,\n chainId: ChainId.ethereum,\n });\n\n const chain = CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId];\n\n if (!chain) {\n throw new Error(`Chain ${chainId} not found`);\n }\n\n await viem_addChain(walletClient, {\n chain,\n });\n}\nexport const getLlamaChainName = (chainId: ChainId): LlamaChain | undefined => {\n const name =\n CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP[\n chainId as keyof typeof CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP\n ];\n return name;\n};\n\nexport const getChain = (chainId: number): viem_chains.Chain | undefined =>\n extractChain({ chains: Object.values(allChains), id: chainId as ChainId });\n","import { Address } from 'viem';\n\n/**\n * Address kinds for tokens that have multiple contract addresses.\n *\n * **BTC.b Integration Architecture:**\n *\n * BTC.b on Avalanche uses a dual-contract architecture with both a token contract\n * and an adapter contract serving different purposes:\n *\n * **When to use Token vs Adapter:**\n *\n * - **Token** (`AddressKind.Token`):\n * - Use for EIP-2612 `permit()` signatures (Stake and Bake)\n * - Use for querying token balance, symbol, decimals\n * - Use for standard ERC20 operations (allowance checks, balance queries)\n * - This is the actual BTC.b ERC20 token contract\n *\n * - **Adapter** (`AddressKind.Adapter`):\n * - Use for burn/mint/transfer operations via BridgeTokenAdapter\n * - Use for bridge deposit/withdrawal operations\n * - Use as spender address when approving tokens for bridge operations\n * - This adapter serves as an intermediary between BridgeToken and both AssetRouter and Bridge\n *\n * **Important Notes:**\n *\n * 1. **Permit Signatures**: Always use `AddressKind.Token` as the `verifyingContract` in\n * EIP-2612 permit signatures. The token contract implements the `permit()` function,\n * not the adapter.\n *\n * 2. **Approvals**: For bridge and redemption operations, users must grant allowance to\n * the **BridgeTokenAdapter** address, not the vault or bridge contract.\n *\n * 3. **Deposit Address**: For Ledger integration, the token address includes the adapter\n * address when tweaking deposit addresses.\n *\n * @example\n * ```typescript\n * // For permit signatures (Stake and Bake):\n * const tokenContract = await getTokenContractInfo(\n * Token.BTCb,\n * ChainId.avalancheFuji,\n * env,\n * AddressKind.Token // ✅ Use token address for permit\n * );\n *\n * // For bridge operations:\n * const adapterContract = await getTokenContractInfo(\n * Token.BTCb,\n * ChainId.avalancheFuji,\n * env,\n * AddressKind.Adapter // ✅ Use adapter address for bridge\n * );\n * ```\n */\nexport enum AddressKind {\n /**\n * The bridge adapter contract address (BridgeTokenAdapter).\n * Used for burn/mint/transfer operations and as the spender for bridge approvals.\n */\n Adapter = 'adapter',\n\n /**\n * The token contract address (standard ERC20).\n * Used for permit signatures, balance queries, and standard ERC20 operations.\n */\n Token = 'token',\n}\n\n/**\n * Address structure for tokens with both token and adapter addresses.\n *\n * Currently only used by `Token.BTCb` on Avalanche chains.\n */\nexport type BridgeTokenAddresses = {\n /** The bridge adapter contract address (BridgeTokenAdapter) */\n [AddressKind.Adapter]: Address;\n /** The token contract address (standard ERC20) */\n [AddressKind.Token]: Address;\n};\n","/**\n * Token Address Constants\n *\n * @deprecated v4.1 Migration Target\n *\n * This module contains hardcoded token addresses. For v4.1, these should be\n * migrated to use the Asset Catalog (`core/assets/`) which supports dynamic\n * address loading from remote sources.\n *\n * See: docs/ADDRESS_SYSTEM_UNIFICATION.md\n *\n * Current usage (~26 files) should migrate to:\n * - `getAssetAddress()` from `core/assets/utils`\n * - Pass `catalog` from `ResolvedLombardConfig`\n *\n * @module tokens/token-addresses\n */\n\nimport { DEFAULT_ENV, Env } from '@lombard.finance/sdk-common';\nimport { Address } from 'viem';\n\nimport {\n ChainId,\n isSolanaChain,\n isStarknetChainId,\n isSuiChain,\n isValidChain,\n SOLANA_DEVNET_CHAIN,\n SOLANA_MAINNET_CHAIN,\n SolanaChain,\n STARKNET_MAINNET_CHAIN,\n STARKNET_SEPOLIA_CHAIN,\n StarknetChainId,\n SUI_MAINNET_CHAIN,\n SUI_TESTNET_CHAIN,\n SuiChain,\n} from '../common/chains';\nimport { featureConfig } from '../common/feature-config';\nimport { AddressKind, BridgeTokenAddresses } from './types';\n\n// Re-export for backward compatibility\nexport type { BridgeTokenAddresses } from './types';\nexport { AddressKind } from './types';\n\nexport enum Token {\n // Lombard tokens:\n /** LBTC: the yield-bearing token */\n LBTC = 'LBTC',\n /**\n * BTCK: the native LBTC token on Katana chain\n * @deprecated - Switch to {@link Token.BTCb} as soon as the BTCK becomes obsolete.\n */\n BTCK = 'BTCK',\n /** BTC.b: the native Lombard's BTC wrapper token */\n BTCb = 'BTC.b',\n\n // Supporting tokens:\n BTCBinance = 'BTCB',\n cbBTC = 'cbBTC',\n eBTC = 'eBTC',\n wBTC = 'wBTC',\n wBTCN = 'wBTCN',\n}\n\ntype SupportingToken =\n | Token.BTCBinance\n | Token.cbBTC\n | Token.eBTC\n | Token.wBTC\n | Token.wBTCN;\n\nexport type RatioToken = 'TOKEN_SYMBOL_STLBTC';\nexport const RATIO_TOKEN_MAP: Record<RatioToken, Token> = {\n TOKEN_SYMBOL_STLBTC: Token.LBTC,\n};\n\nexport type TokenAddressesPerEnv<\n token extends Token,\n chain extends string | number | symbol = ChainId | SuiChain | SolanaChain,\n> = Partial<\n Record<\n Env,\n Partial<\n Record<\n chain,\n | (token extends Token.BTCb\n ? chain extends\n | typeof ChainId.avalanche\n | typeof ChainId.avalancheFuji\n ? BridgeTokenAddresses\n : Address\n : chain extends ChainId | SuiChain | StarknetChainId\n ? Address\n : string)\n | undefined\n >\n >\n >\n>;\n\nexport type TokenAddresses<\n token extends Token,\n chain extends string | number | symbol = ChainId | SuiChain | SolanaChain,\n> = Partial<Record<token, TokenAddressesPerEnv<token, chain>>>;\n\n/**\n * BTC.b token addresses across different chains and environments.\n *\n * **Architecture:**\n * - On **Avalanche chains** (Avalanche Mainnet, Avalanche Fuji): Uses dual-contract architecture\n * with both `token` and `adapter` addresses\n * - On **other chains** (Katana, Sepolia, BSC, etc.): Uses single address\n *\n * **Address Usage:**\n * - `token`: BTC.b ERC20 contract - use for permits, balance queries, standard ERC20 operations\n * - `adapter`: BridgeTokenAdapter contract - use for bridge operations, burn/mint/transfer\n *\n * @example\n * ```typescript\n * // Avalanche Fuji (testnet) has dual addresses:\n * const addresses = EVM_BTCB_ADDRESSES[Env.testnet][ChainId.avalancheFuji];\n * // { token: '0xB14f240...', adapter: '0x41BCd71...' }\n *\n * ```\n */\nconst EVM_BTCB_ADDRESSES: TokenAddressesPerEnv<Token.BTCb, ChainId> = {\n [Env.prod]: {\n [ChainId.ethereum]: '0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072',\n [ChainId.katana]: '0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072',\n ...(featureConfig.isAvalancheMainnetEnabled\n ? {\n [ChainId.avalanche]: {\n token: '0x152b9d0FdC40C096757F570A51E494bd4b943E50',\n adapter: '0x85D1D52e11290F174444d21C2a167bEDBE36e4d2',\n },\n }\n : {}),\n ...(featureConfig.isMonadEnabled\n ? {\n [ChainId.monad]: '0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072',\n }\n : {}),\n [ChainId.megaeth]: '0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072',\n [ChainId.stable]: '0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072',\n },\n [Env.ibc]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: {\n adapter: '0x1391f9AC408cf13214DDB71d359002658eaF9ebb',\n token: '0x71ba2b8dc58e7ca1b6d81a60729e31aefa37ae02',\n },\n }\n : {}),\n },\n [Env.dev]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: {\n adapter: '0x0A65C37d07c32E5eA8ea40495b7f249cdE26935e',\n token: '0x7FbdC44BfEBDe80C970ba622B678daB36cee31f6',\n },\n }\n : {}),\n [ChainId.binanceSmartChainTestnet]:\n '0xea3F66E5f2928dB9673103BfA01a2153A57a8050',\n [ChainId.sepolia]: '0x195219A262423d209E126BD21cf4F4F9AA796927',\n },\n [Env.stage]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: {\n adapter: '0x0A65C37d07c32E5eA8ea40495b7f249cdE26935e',\n token: '0x7FbdC44BfEBDe80C970ba622B678daB36cee31f6',\n },\n }\n : {}),\n [ChainId.sepolia]: '0x600e4006278EB11FA1691cA0FE6C5fcfC4992d58',\n },\n [Env.testnet]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: {\n adapter: '0x41BCd71e7C92b1c8dDe53037F9b2c4AA2058b1cB',\n token: '0xB14f240714Bd23Bda103A7189D512A90326E4D01',\n },\n }\n : {}),\n [ChainId.sepolia]: '0x20eA7b8ABb4B583788F1DFC738C709a2d9675681',\n },\n};\n\nexport const EVM_LBTC_ADDRESSES: TokenAddressesPerEnv<Token.LBTC, ChainId> = {\n [Env.prod]: {\n [ChainId.ethereum]: '0x8236a87084f8b84306f72007f36f2618a5634494',\n ...(featureConfig.isAvalancheMainnetEnabled\n ? {\n [ChainId.avalanche]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n }\n : {}),\n [ChainId.base]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.berachain]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.binanceSmartChain]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.corn]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.etherlink]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.katana]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.megaeth]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.morph]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.sonic]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.stable]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.swell]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.tac]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.bob]: '0xA45d4121b3D47719FF57a947A9d961539Ba33204',\n ...(featureConfig.isMonadEnabled\n ? {\n [ChainId.monad]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n }\n : {}),\n },\n [Env.stage]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: undefined,\n }\n : {}),\n [ChainId.baseSepoliaTestnet]: '0x731eFa688F3679688cf60A3993b8658138953ED6',\n [ChainId.berachainBartioTestnet]:\n '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n [ChainId.binanceSmartChainTestnet]:\n '0x731eFa688F3679688cf60A3993b8658138953ED6',\n [ChainId.holesky]: '0xED7bfd5C1790576105Af4649817f6d35A75CD818',\n [ChainId.sepolia]: '0x731eFa688F3679688cf60A3993b8658138953ED6',\n [ChainId.sonicBlazeTestnet]: '0x731eFa688F3679688cf60A3993b8658138953ED6',\n },\n [Env.testnet]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: '0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5',\n }\n : {}),\n [ChainId.baseSepoliaTestnet]: '0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5',\n [ChainId.berachainBartioTestnet]:\n '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n [ChainId.binanceSmartChainTestnet]:\n '0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5',\n [ChainId.holesky]: '0x38A13AB20D15ffbE5A7312d2336EF1552580a4E2',\n [ChainId.sepolia]: '0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5',\n [ChainId.sonicBlazeTestnet]: '0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5',\n },\n [Env.dev]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n }\n : {}),\n [ChainId.sepolia]: '0x93283b6B889C591893dB0dc93baD71656D5d8923',\n [ChainId.baseSepoliaTestnet]: '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n [ChainId.berachainBartioTestnet]:\n '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n [ChainId.binanceSmartChainTestnet]:\n '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n },\n};\n\nconst EVM_SUPPORTING_TOKEN_ADDRESSES: TokenAddresses<SupportingToken, ChainId> =\n {\n [Token.BTCBinance]: {\n [Env.prod]: {\n [ChainId.binanceSmartChain]:\n '0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c',\n },\n },\n [Token.eBTC]: {\n [Env.prod]: {\n [ChainId.ethereum]: '0x657e8c867d8b37dcc18fa4caead9c45eb088c642',\n },\n },\n [Token.wBTC]: {\n [Env.prod]: {\n [ChainId.ethereum]: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',\n },\n },\n [Token.wBTCN]: {\n [Env.prod]: {\n [ChainId.corn]: '0xda5dDd7270381A7C2717aD10D1c0ecB19e3CDFb2',\n },\n },\n };\n\nexport const TOKEN_ADDRESSES: TokenAddresses<Token, ChainId> = {\n [Token.LBTC]: EVM_LBTC_ADDRESSES,\n [Token.BTCb]: EVM_BTCB_ADDRESSES,\n [Token.BTCK]: EVM_BTCB_ADDRESSES, // alias for NativeLBTC\n ...EVM_SUPPORTING_TOKEN_ADDRESSES,\n};\n\nexport const SUI_TOKEN_ADDRESSES: TokenAddresses<Token.LBTC, SuiChain> = {\n [Token.LBTC]: {\n [Env.prod]: {\n [SUI_MAINNET_CHAIN]:\n '0x3e8e9423d80e1774a7ca128fccd8bf5f1f7753be658c5e645929037f7c819040',\n },\n [Env.stage]: {\n [SUI_TESTNET_CHAIN]:\n '0x2d66430a27565b912f21be970e5ae1e8c0359f0b518c3235b751c75976791ce0',\n },\n [Env.testnet]: {\n [SUI_TESTNET_CHAIN]:\n '0x50454d0b0fbad1288a6ab74f2e8ce0905a3317870673ab7787ebcf6f322b45fa',\n },\n },\n};\n\nexport const getSuiTokenAddress = (\n chainId: SuiChain,\n env = DEFAULT_ENV,\n): Address | undefined => {\n return SUI_TOKEN_ADDRESSES[Token.LBTC]?.[env]?.[chainId] || undefined;\n};\n\nexport const SOLANA_TOKEN_ADDRESSES: TokenAddresses<\n Token.LBTC | Token.BTCb,\n SolanaChain\n> = {\n [Token.LBTC]: {\n [Env.prod]: {\n [SOLANA_MAINNET_CHAIN]: 'LBTCgU4b3wsFKsPwBn1rRZDx5DoFutM6RPiEt1TPDsY',\n },\n [Env.testnet]: {\n [SOLANA_DEVNET_CHAIN]: '1BTCPX3qyFtBvhQvJaHntfzZfB8qcJmJXfoRnD3vAgh',\n },\n [Env.dev]: {\n [SOLANA_DEVNET_CHAIN]: 'LBTCojyVJ63rsEED2DLEGWMzSxWJyQynXE91LMLgV1J',\n },\n [Env.stage]: {\n [SOLANA_DEVNET_CHAIN]: '1btcyoWK7d99iosES4eXQGhhooCscKGigV5wHfvzueX',\n },\n },\n [Token.BTCb]: {\n [Env.prod]: {\n [SOLANA_MAINNET_CHAIN]: 'BTCbKVgfW4xMqTWEmxVwc6pzg2c5YtQWxSpBuQDhUrpu',\n },\n [Env.dev]: {\n [SOLANA_DEVNET_CHAIN]: 'BTCB3ripBAut19jM8kDPVbJHb2ZdR2GcZvGZkCmFPtV8',\n },\n [Env.stage]: {\n [SOLANA_DEVNET_CHAIN]: 'BTCGPAHQSsS9RYcL2Z4B5z6YyAXLatNcnaEwYdczsMZw',\n },\n [Env.testnet]: {\n [SOLANA_DEVNET_CHAIN]: 'BTCb1Xy55DzwPMog9d3ztPau4nqXp6BhUrdGHjTrMYCn',\n },\n },\n};\n\nexport const getSolanaTokenAddress = (\n chainId: SolanaChain,\n env = DEFAULT_ENV,\n token: Token.LBTC | Token.BTCb = Token.LBTC,\n): string | undefined => {\n return SOLANA_TOKEN_ADDRESSES[token]?.[env]?.[chainId] || undefined;\n};\n\nexport const getTokenByAddress = (\n tokenAddress?: string,\n chainId?: ChainId | SuiChain | SolanaChain | StarknetChainId,\n env = DEFAULT_ENV,\n addressKind: AddressKind = AddressKind.Token,\n) => {\n if (!tokenAddress || !chainId) return;\n\n const detectableTokens = [Token.LBTC, Token.BTCb];\n\n const addressMaps = [\n [isStarknetChainId, STARKNET_TOKEN_ADDRESSES],\n [isSuiChain, SUI_TOKEN_ADDRESSES],\n [isSolanaChain, SOLANA_TOKEN_ADDRESSES],\n [isValidChain, TOKEN_ADDRESSES],\n ] as const;\n\n for (const token of detectableTokens) {\n for (const [checkChain, addresses] of addressMaps) {\n if (checkChain(chainId)) {\n let address = (\n addresses as TokenAddresses<typeof token, typeof chainId>\n )?.[token]?.[env]?.[chainId];\n if (address) {\n address =\n typeof address === 'string' ? address : address[addressKind];\n if (tokenAddress.toLowerCase() === address.toLowerCase())\n return token;\n }\n }\n }\n }\n};\n\nexport const getTokenAddressForChain = (\n chainId: ChainId | SuiChain | SolanaChain | StarknetChainId,\n adapter: AddressKind = AddressKind.Token,\n env: Env = DEFAULT_ENV,\n): string | undefined => {\n if (isValidChain(chainId)) {\n const found = TOKEN_ADDRESSES[Token.LBTC]?.[env]?.[chainId];\n if (found) {\n return typeof found === 'string' ? found : found[adapter];\n }\n }\n if (isSuiChain(chainId)) {\n return SUI_TOKEN_ADDRESSES[Token.LBTC]?.[env]?.[chainId];\n }\n if (isSolanaChain(chainId)) {\n return SOLANA_TOKEN_ADDRESSES[Token.LBTC]?.[env]?.[chainId];\n }\n if (isStarknetChainId(chainId)) {\n return STARKNET_TOKEN_ADDRESSES[Token.LBTC]?.[env]?.[chainId];\n }\n return undefined;\n};\n\n// Starknet token addresses\n// See: packages/sdk-starknet/src/tokens/lib/tokens.ts\nexport const STARKNET_TOKEN_ADDRESSES: TokenAddresses<\n Token.LBTC,\n StarknetChainId\n> = {\n [Token.LBTC]: {\n [Env.prod]: {\n [STARKNET_SEPOLIA_CHAIN]: undefined,\n [STARKNET_MAINNET_CHAIN]:\n '0x036834a40984312f7f7de8d31e3f6305b325389eaeea5b1c0664b2fb936461a4',\n },\n [Env.stage]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x00b442f5420860e937a99659326e81a97e07bfd538b3cee65b90029c9da38a5f',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n [Env.testnet]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x00456a829ab75ba5e97534dc70d7fc617cfda244f8dcda47b11624de67c6e70c',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n [Env.dev]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x0723de0c550b7bfbb5051dade72966d71a08bef952c0197462a5244497eb57c1',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n },\n} as const;\n\nexport const STARKNET_ASSET_ROUTER_ADDRESSES: TokenAddresses<\n Token.LBTC,\n StarknetChainId\n> = {\n [Token.LBTC]: {\n [Env.prod]: {\n [STARKNET_SEPOLIA_CHAIN]: undefined,\n [STARKNET_MAINNET_CHAIN]:\n '0x05b1886d0f844ab930fc0ee066f1655a873437f15a5d2c41ee3e884fd5299976',\n },\n [Env.stage]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x01d27f156092746d0d7cd9d9deec5e937f27c3c7c1c28365e9e5efac459880b3',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n [Env.testnet]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x063b7b5c8b114ebd5b9602fbd5d0ffd2cc3a598f1d91c6904cc0997cd8fea760',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n [Env.dev]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x04838a05c798dc57e01e85526979841c84f1f3c732a525cff53adb3e8bee3d24',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n },\n} as const;\n\nexport const getStarknetTokenAddress = (\n chainId: StarknetChainId,\n env = DEFAULT_ENV,\n variant: 'token' | 'assetRouter' = 'token',\n): Address | undefined => {\n return (\n (variant === 'token'\n ? STARKNET_TOKEN_ADDRESSES\n : STARKNET_ASSET_ROUTER_ADDRESSES)[Token.LBTC]?.[env]?.[chainId] ||\n undefined\n );\n};\n"],"names":["makeWalletClient","provider","chainId","chain","CHAIN_ID_TO_VIEM_CHAIN_MAP","transport","custom","createWalletClient","avalanche","avalancheFuji","base","baseSepolia","bsc","bscTestnet","corn","holesky","mainnet","sepolia","sonic","sonicBlazeTestnet","viem_chains","katana","defineChain","tac","bob","bobSepolia","monad","stable","megaeth","allChains","SUI_DEVNET_CHAIN","SUI_TESTNET_CHAIN","SUI_LOCALNET_CHAIN","SUI_MAINNET_CHAIN","isSuiChain","SOLANA_MAINNET_CHAIN","SOLANA_TESTNET_CHAIN","SOLANA_DEVNET_CHAIN","isSolanaChain","STARKNET_MAINNET_CHAIN","STARKNET_SEPOLIA_CHAIN","isStarknetChainId","ChainId","isKatanaChain","isMonadChain","isEthereumChain","isStableChain","isMegaethChain","CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP","isValidChain","addChain","walletClient","viem_addChain","getLlamaChainName","getChain","extractChain","AddressKind","Token","RATIO_TOKEN_MAP","EVM_BTCB_ADDRESSES","Env","EVM_LBTC_ADDRESSES","EVM_SUPPORTING_TOKEN_ADDRESSES","TOKEN_ADDRESSES","SUI_TOKEN_ADDRESSES","getSuiTokenAddress","env","DEFAULT_ENV","_b","_a","SOLANA_TOKEN_ADDRESSES","getSolanaTokenAddress","token","getTokenByAddress","tokenAddress","addressKind","detectableTokens","addressMaps","STARKNET_TOKEN_ADDRESSES","checkChain","addresses","address","getTokenAddressForChain","adapter","found","_d","_c","_f","_e","_h","_g","STARKNET_ASSET_ROUTER_ADDRESSES","getStarknetTokenAddress","variant"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const t=require("./index-BKzxeh1Y.cjs"),b=require("viem"),G=require("viem/actions"),X=require("viem/chains");function J(a){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const n in a)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(a,n);Object.defineProperty(c,n,r.get?r:{enumerable:!0,get:()=>a[n]})}}return c.default=a,Object.freeze(c)}const H=J(X);function R({provider:a,chainId:c}){const n=I[c],r=b.custom(a);return b.createWalletClient({chain:n,transport:r})}const{avalanche:Y,avalancheFuji:Z,base:Q,baseSepolia:$,bsc:ee,bscTestnet:ae,corn:te,holesky:ne,mainnet:ce,sepolia:re,sonic:se,sonicBlazeTestnet:oe}=H,x=b.defineChain({id:747474,name:"Katana",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.katana.network"],webSocket:["wss://rpc.katana.network"]}},blockExplorers:{default:{name:"Katana Explorer",url:"https://explorer.katanarpc.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:1898013}}}),K=b.defineChain({id:239,name:"TAC",nativeCurrency:{decimals:18,name:"TAC",symbol:"TAC"},rpcUrls:{default:{http:["https://rpc.tac.build"]}},blockExplorers:{default:{name:"TAC Explorer",url:"https://explorer.tac.build"}}}),de=b.defineChain({id:60808,name:"BOB",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Explorer",url:"https://explorer.gobob.xyz"}}}),ie=b.defineChain({id:808813,name:"BOB Sepolia",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://bob-sepolia.rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Sepolia Explorer",url:"https://bob-sepolia.explorer.gobob.xyz/"}}}),F=b.defineChain({id:143,name:"Monad",nativeCurrency:{decimals:18,name:"Monad",symbol:"MONAD"},rpcUrls:{default:{http:["https://monad-mainnet.drpc.org"]}},blockExplorers:{default:{name:"Monad Explorer",url:"https://monadvision.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:9248132}}}),_=b.defineChain({id:988,name:"Stable",nativeCurrency:{decimals:18,name:"gUSDT",symbol:"gUSDT"},rpcUrls:{default:{http:["https://partners-rpc.stable.xyz/lombard.075830647a2c30190712a9d102011ffe5a2a01d24ff3405f711d6ea8aca10baf"]}},blockExplorers:{default:{name:"Stable Explorer",url:"https://stablescan.xyz"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:1}}}),N=b.defineChain({id:4326,name:"MegaETH",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://mainnet.megaeth.com/rpc"]}},blockExplorers:{default:{name:"MegaETH Explorer",url:"https://megaeth.blockscout.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:2591807}}}),w={...H,katana:x,tac:K,monad:F,stable:_,megaeth:N},U="sui:devnet",D="sui:testnet",P="sui:localnet",k="sui:mainnet",g=a=>[U,D,P,k].includes(a),S="solana:mainnet-beta",z="solana:testnet",C="solana:devnet",v=a=>[S,z,C].includes(a),d="0x534e5f4d41494e",i="0x534e5f5345504f4c4941",L=a=>a===d||a===i,e={ethereum:1,avalanche:43114,base:8453,berachain:80094,binanceSmartChain:56,corn:21e6,etherlink:42793,katana:747474,megaeth:4326,monad:143,morph:2818,sonic:146,stable:988,swell:1923,tac:239,bob:60808,avalancheFuji:43113,baseSepoliaTestnet:84532,berachainBartioTestnet:80084,binanceSmartChainTestnet:97,holesky:17e3,morphHolesky:2810,sepolia:11155111,sonicBlazeTestnet:57054},I={[e.ethereum]:ce,[e.avalanche]:Y,[e.base]:Q,[e.binanceSmartChain]:ee,[e.corn]:te,[e.katana]:x,[e.megaeth]:N,[e.monad]:F,[e.sonic]:se,[e.stable]:_,[e.avalancheFuji]:Z,[e.baseSepoliaTestnet]:$,[e.binanceSmartChainTestnet]:ae,[e.holesky]:ne,[e.sepolia]:re,[e.sonicBlazeTestnet]:oe},be=a=>a===e.katana,Ce=a=>a===e.monad,le=a=>[e.ethereum].includes(a),Ee=a=>a===e.stable,Ae=a=>[e.megaeth].includes(a),j={[e.ethereum]:"ethereum",[e.avalanche]:"avalanche",[e.base]:"base",[e.berachain]:"berachain",[e.binanceSmartChain]:"bsc",[e.corn]:"corn",[e.etherlink]:"etherlink",[e.morph]:"morph",[e.sonic]:"sonic",[e.swell]:"swellchain",[e.megaeth]:"megaeth",[e.monad]:"monad",[e.katana]:"katana",[e.stable]:"stable"};function O(a){return Object.values(e).includes(a)}async function Te({provider:a,chainId:c}){const n=R({provider:a,chainId:e.ethereum}),r=I[c];if(!r)throw new Error(`Chain ${c} not found`);await G.addChain(n,{chain:r})}const fe=a=>j[a],he=a=>b.extractChain({chains:Object.values(w),id:a});var B=(a=>(a.Adapter="adapter",a.Token="token",a))(B||{}),V=(a=>(a.LBTC="LBTC",a.BTCK="BTCK",a.BTCb="BTC.b",a.BTCBinance="BTCB",a.cbBTC="cbBTC",a.eBTC="eBTC",a.wBTC="wBTC",a.wBTCN="wBTCN",a))(V||{});const De={TOKEN_SYMBOL_STLBTC:"LBTC"},y={[t.r.prod]:{[e.ethereum]:"0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072",[e.katana]:"0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072",[e.avalanche]:{token:"0x152b9d0FdC40C096757F570A51E494bd4b943E50",adapter:"0x85D1D52e11290F174444d21C2a167bEDBE36e4d2"},[e.monad]:"0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072",[e.megaeth]:"0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072",[e.stable]:"0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072"},[t.r.ibc]:{[e.avalancheFuji]:{adapter:"0x1391f9AC408cf13214DDB71d359002658eaF9ebb",token:"0x71ba2b8dc58e7ca1b6d81a60729e31aefa37ae02"}},[t.r.dev]:{[e.avalancheFuji]:{adapter:"0x0A65C37d07c32E5eA8ea40495b7f249cdE26935e",token:"0x7FbdC44BfEBDe80C970ba622B678daB36cee31f6"},[e.binanceSmartChainTestnet]:"0xea3F66E5f2928dB9673103BfA01a2153A57a8050",[e.sepolia]:"0x195219A262423d209E126BD21cf4F4F9AA796927"},[t.r.stage]:{[e.avalancheFuji]:{adapter:"0x0A65C37d07c32E5eA8ea40495b7f249cdE26935e",token:"0x7FbdC44BfEBDe80C970ba622B678daB36cee31f6"},[e.sepolia]:"0x600e4006278EB11FA1691cA0FE6C5fcfC4992d58"},[t.r.testnet]:{[e.avalancheFuji]:{adapter:"0x41BCd71e7C92b1c8dDe53037F9b2c4AA2058b1cB",token:"0xB14f240714Bd23Bda103A7189D512A90326E4D01"},[e.sepolia]:"0x20eA7b8ABb4B583788F1DFC738C709a2d9675681"}},W={[t.r.prod]:{[e.ethereum]:"0x8236a87084f8b84306f72007f36f2618a5634494",[e.avalanche]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.base]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.berachain]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.binanceSmartChain]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.corn]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.etherlink]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.katana]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.megaeth]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.morph]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.sonic]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.stable]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.swell]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.tac]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[e.bob]:"0xA45d4121b3D47719FF57a947A9d961539Ba33204",[e.monad]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1"},[t.r.stage]:{[e.avalancheFuji]:void 0,[e.baseSepoliaTestnet]:"0x731eFa688F3679688cf60A3993b8658138953ED6",[e.berachainBartioTestnet]:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30",[e.binanceSmartChainTestnet]:"0x731eFa688F3679688cf60A3993b8658138953ED6",[e.holesky]:"0xED7bfd5C1790576105Af4649817f6d35A75CD818",[e.sepolia]:"0x731eFa688F3679688cf60A3993b8658138953ED6",[e.sonicBlazeTestnet]:"0x731eFa688F3679688cf60A3993b8658138953ED6"},[t.r.testnet]:{[e.avalancheFuji]:"0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5",[e.baseSepoliaTestnet]:"0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5",[e.berachainBartioTestnet]:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30",[e.binanceSmartChainTestnet]:"0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5",[e.holesky]:"0x38A13AB20D15ffbE5A7312d2336EF1552580a4E2",[e.sepolia]:"0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5",[e.sonicBlazeTestnet]:"0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5"},[t.r.dev]:{[e.avalancheFuji]:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30",[e.sepolia]:"0x93283b6B889C591893dB0dc93baD71656D5d8923",[e.baseSepoliaTestnet]:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30",[e.berachainBartioTestnet]:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30",[e.binanceSmartChainTestnet]:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30"}},Se={BTCB:{[t.r.prod]:{[e.binanceSmartChain]:"0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c"}},eBTC:{[t.r.prod]:{[e.ethereum]:"0x657e8c867d8b37dcc18fa4caead9c45eb088c642"}},wBTC:{[t.r.prod]:{[e.ethereum]:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}},wBTCN:{[t.r.prod]:{[e.corn]:"0xda5dDd7270381A7C2717aD10D1c0ecB19e3CDFb2"}}},M={LBTC:W,"BTC.b":y,BTCK:y,...Se},u={LBTC:{[t.r.prod]:{[k]:"0x3e8e9423d80e1774a7ca128fccd8bf5f1f7753be658c5e645929037f7c819040"},[t.r.stage]:{[D]:"0x2d66430a27565b912f21be970e5ae1e8c0359f0b518c3235b751c75976791ce0"},[t.r.testnet]:{[D]:"0x50454d0b0fbad1288a6ab74f2e8ce0905a3317870673ab7787ebcf6f322b45fa"}}},Be=(a,c=t.p)=>{var n,r;return((r=(n=u.LBTC)==null?void 0:n[c])==null?void 0:r[a])||void 0},p={LBTC:{[t.r.prod]:{[S]:"LBTCgU4b3wsFKsPwBn1rRZDx5DoFutM6RPiEt1TPDsY"},[t.r.testnet]:{[C]:"1BTCPX3qyFtBvhQvJaHntfzZfB8qcJmJXfoRnD3vAgh"},[t.r.dev]:{[C]:"LBTCojyVJ63rsEED2DLEGWMzSxWJyQynXE91LMLgV1J"},[t.r.stage]:{[C]:"1btcyoWK7d99iosES4eXQGhhooCscKGigV5wHfvzueX"}},"BTC.b":{[t.r.prod]:{[S]:"BTCbKVgfW4xMqTWEmxVwc6pzg2c5YtQWxSpBuQDhUrpu"},[t.r.dev]:{[C]:"BTCB3ripBAut19jM8kDPVbJHb2ZdR2GcZvGZkCmFPtV8"},[t.r.stage]:{[C]:"BTCGPAHQSsS9RYcL2Z4B5z6YyAXLatNcnaEwYdczsMZw"},[t.r.testnet]:{[C]:"BTCb1Xy55DzwPMog9d3ztPau4nqXp6BhUrdGHjTrMYCn"}}},ue=(a,c=t.p,n="LBTC")=>{var r,s;return((s=(r=p[n])==null?void 0:r[c])==null?void 0:s[a])||void 0},pe=(a,c,n=t.p,r=B.Token)=>{var E,A;if(!a||!c)return;const s=["LBTC","BTC.b"],f=[[L,m],[g,u],[v,p],[O,M]];for(const T of s)for(const[h,l]of f)if(h(c)){let o=(A=(E=l==null?void 0:l[T])==null?void 0:E[n])==null?void 0:A[c];if(o&&(o=typeof o=="string"?o:o[r],a.toLowerCase()===o.toLowerCase()))return T}},me=(a,c=B.Token,n=t.p)=>{var r,s,f,E,A,T,h,l;if(O(a)){const o=(s=(r=M.LBTC)==null?void 0:r[n])==null?void 0:s[a];if(o)return typeof o=="string"?o:o[c]}if(g(a))return(E=(f=u.LBTC)==null?void 0:f[n])==null?void 0:E[a];if(v(a))return(T=(A=p.LBTC)==null?void 0:A[n])==null?void 0:T[a];if(L(a))return(l=(h=m.LBTC)==null?void 0:h[n])==null?void 0:l[a]},m={LBTC:{[t.r.prod]:{[i]:void 0,[d]:"0x036834a40984312f7f7de8d31e3f6305b325389eaeea5b1c0664b2fb936461a4"},[t.r.stage]:{[i]:"0x00b442f5420860e937a99659326e81a97e07bfd538b3cee65b90029c9da38a5f",[d]:void 0},[t.r.testnet]:{[i]:"0x00456a829ab75ba5e97534dc70d7fc617cfda244f8dcda47b11624de67c6e70c",[d]:void 0},[t.r.dev]:{[i]:"0x0723de0c550b7bfbb5051dade72966d71a08bef952c0197462a5244497eb57c1",[d]:void 0}}},q={LBTC:{[t.r.prod]:{[i]:void 0,[d]:"0x05b1886d0f844ab930fc0ee066f1655a873437f15a5d2c41ee3e884fd5299976"},[t.r.stage]:{[i]:"0x01d27f156092746d0d7cd9d9deec5e937f27c3c7c1c28365e9e5efac459880b3",[d]:void 0},[t.r.testnet]:{[i]:"0x063b7b5c8b114ebd5b9602fbd5d0ffd2cc3a598f1d91c6904cc0997cd8fea760",[d]:void 0},[t.r.dev]:{[i]:"0x04838a05c798dc57e01e85526979841c84f1f3c732a525cff53adb3e8bee3d24",[d]:void 0}}},xe=(a,c=t.p,n="token")=>{var r,s;return((s=(r=(n==="token"?m:q).LBTC)==null?void 0:r[c])==null?void 0:s[a])||void 0};exports.AddressKind=B;exports.CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP=j;exports.CHAIN_ID_TO_VIEM_CHAIN_MAP=I;exports.ChainId=e;exports.EVM_LBTC_ADDRESSES=W;exports.RATIO_TOKEN_MAP=De;exports.SOLANA_DEVNET_CHAIN=C;exports.SOLANA_MAINNET_CHAIN=S;exports.SOLANA_TESTNET_CHAIN=z;exports.SOLANA_TOKEN_ADDRESSES=p;exports.STARKNET_ASSET_ROUTER_ADDRESSES=q;exports.STARKNET_MAINNET_CHAIN=d;exports.STARKNET_SEPOLIA_CHAIN=i;exports.STARKNET_TOKEN_ADDRESSES=m;exports.SUI_DEVNET_CHAIN=U;exports.SUI_LOCALNET_CHAIN=P;exports.SUI_MAINNET_CHAIN=k;exports.SUI_TESTNET_CHAIN=D;exports.SUI_TOKEN_ADDRESSES=u;exports.TOKEN_ADDRESSES=M;exports.Token=V;exports.addChain=Te;exports.allChains=w;exports.bob=de;exports.bobSepolia=ie;exports.getChain=he;exports.getLlamaChainName=fe;exports.getSolanaTokenAddress=ue;exports.getStarknetTokenAddress=xe;exports.getSuiTokenAddress=Be;exports.getTokenAddressForChain=me;exports.getTokenByAddress=pe;exports.isEthereumChain=le;exports.isKatanaChain=be;exports.isMegaethChain=Ae;exports.isMonadChain=Ce;exports.isSolanaChain=v;exports.isStableChain=Ee;exports.isStarknetChainId=L;exports.isSuiChain=g;exports.isValidChain=O;exports.katana=x;exports.makeWalletClient=R;exports.megaeth=N;exports.monad=F;exports.stable=_;exports.tac=K;
2
- //# sourceMappingURL=token-addresses-DvY-Mw7b.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-addresses-DvY-Mw7b.cjs","sources":["../../src/clients/wallet-client.ts","../../src/common/chains.ts","../../src/tokens/types.ts","../../src/tokens/token-addresses.ts"],"sourcesContent":["import {\n createWalletClient,\n custom,\n EIP1193Provider,\n WalletClient,\n} from 'viem';\n\nimport { CHAIN_ID_TO_VIEM_CHAIN_MAP, ChainId } from '../common/chains';\n\ntype MakeClientParameters = {\n provider: EIP1193Provider;\n chainId: ChainId;\n};\n\n/**\n * Creates the client for specified `chainId`.\n * @param chainId - The chain id\n * @param rpcUrl - The overridden RPC url for specified chain id.\n * @returns The public client instance\n */\nexport function makeWalletClient({\n provider,\n chainId,\n}: MakeClientParameters): WalletClient {\n const chain = CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId];\n const transport = custom(provider);\n\n const client = createWalletClient({\n chain,\n transport,\n });\n\n return client as WalletClient<typeof transport>;\n}\n","import { defineChain, type EIP1193Provider, extractChain } from 'viem';\nimport { addChain as viem_addChain } from 'viem/actions';\nimport * as viem_chains from 'viem/chains';\n\nimport { makeWalletClient } from '../clients/wallet-client';\nimport { featureConfig } from './feature-config';\n\nconst {\n avalanche,\n avalancheFuji,\n base,\n baseSepolia,\n berachain,\n berachainTestnetbArtio,\n bsc,\n bscTestnet,\n corn,\n etherlink,\n holesky,\n mainnet,\n morph,\n morphHolesky,\n sepolia,\n sonic,\n sonicBlazeTestnet,\n swellchain,\n} = viem_chains;\n\n// FIXME: Remove this custom chain definition once katana is supported by viem\nexport const katana = defineChain({\n id: 747474,\n name: 'Katana',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: ['https://rpc.katana.network'],\n webSocket: ['wss://rpc.katana.network'],\n },\n },\n blockExplorers: {\n default: { name: 'Katana Explorer', url: 'https://explorer.katanarpc.com' },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 1898013, // TODO: Confirm this\n },\n },\n});\n\n// FIXME: Remove this custom chain definition once TAC is supported by viem\nexport const tac = defineChain({\n id: 239,\n name: 'TAC',\n nativeCurrency: {\n decimals: 18,\n name: 'TAC',\n symbol: 'TAC',\n },\n rpcUrls: {\n default: {\n http: ['https://rpc.tac.build'],\n },\n },\n blockExplorers: {\n default: { name: 'TAC Explorer', url: 'https://explorer.tac.build' },\n },\n});\n\nexport const bob = defineChain({\n id: 60808,\n name: 'BOB',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: ['https://rpc.gobob.xyz'],\n },\n },\n blockExplorers: {\n default: { name: 'BOB Explorer', url: 'https://explorer.gobob.xyz' },\n },\n});\n\nexport const bobSepolia = defineChain({\n id: 808813,\n name: 'BOB Sepolia',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: ['https://bob-sepolia.rpc.gobob.xyz'],\n },\n },\n blockExplorers: {\n default: {\n name: 'BOB Sepolia Explorer',\n url: 'https://bob-sepolia.explorer.gobob.xyz/',\n },\n },\n});\n\nexport const monad = defineChain({\n id: 143,\n name: 'Monad',\n nativeCurrency: {\n decimals: 18,\n name: 'Monad',\n symbol: 'MONAD',\n },\n rpcUrls: {\n default: {\n http: ['https://monad-mainnet.drpc.org'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Monad Explorer',\n url: 'https://monadvision.com',\n },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 9248132,\n },\n },\n});\n\nexport const stable = defineChain({\n id: 988,\n name: 'Stable',\n nativeCurrency: {\n decimals: 18,\n name: 'gUSDT',\n symbol: 'gUSDT',\n },\n rpcUrls: {\n default: {\n http: [\n 'https://partners-rpc.stable.xyz/lombard.075830647a2c30190712a9d102011ffe5a2a01d24ff3405f711d6ea8aca10baf',\n ],\n }, // TODO: Update with the correct RPC URL once the stable network is live\n },\n blockExplorers: {\n default: {\n name: 'Stable Explorer',\n url: 'https://stablescan.xyz',\n },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 1,\n },\n },\n});\n\nexport const megaeth = defineChain({\n id: 4326,\n name: 'MegaETH',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: ['https://mainnet.megaeth.com/rpc'],\n },\n },\n blockExplorers: {\n default: {\n name: 'MegaETH Explorer',\n url: 'https://megaeth.blockscout.com',\n },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 2591807, // TODO: Confirm this\n },\n },\n});\n\nexport const allChains: Record<string, viem_chains.Chain> = {\n ...viem_chains,\n katana,\n tac,\n monad,\n stable,\n megaeth,\n};\n\nexport const SUI_DEVNET_CHAIN = 'sui:devnet' as const;\nexport const SUI_TESTNET_CHAIN = 'sui:testnet' as const;\nexport const SUI_LOCALNET_CHAIN = 'sui:localnet' as const;\nexport const SUI_MAINNET_CHAIN = 'sui:mainnet' as const;\n\nexport type SuiChain =\n | typeof SUI_DEVNET_CHAIN\n | typeof SUI_TESTNET_CHAIN\n | typeof SUI_LOCALNET_CHAIN\n | typeof SUI_MAINNET_CHAIN;\n\nexport const isSuiChain = (chainId: unknown): chainId is SuiChain => {\n return (\n [\n SUI_DEVNET_CHAIN,\n SUI_TESTNET_CHAIN,\n SUI_LOCALNET_CHAIN,\n SUI_MAINNET_CHAIN,\n ] as string[]\n ).includes(chainId as string);\n};\n\nexport const SOLANA_MAINNET_CHAIN = 'solana:mainnet-beta' as const;\nexport const SOLANA_TESTNET_CHAIN = 'solana:testnet' as const;\nexport const SOLANA_DEVNET_CHAIN = 'solana:devnet' as const;\n\nexport type SolanaChain =\n | typeof SOLANA_MAINNET_CHAIN\n | typeof SOLANA_TESTNET_CHAIN\n | typeof SOLANA_DEVNET_CHAIN;\n\nexport const isSolanaChain = (chainId: unknown): chainId is SolanaChain => {\n return (\n [\n SOLANA_MAINNET_CHAIN,\n SOLANA_TESTNET_CHAIN,\n SOLANA_DEVNET_CHAIN,\n ] as string[]\n ).includes(chainId as string);\n};\n\n// Starknet chain identifiers:\nexport const STARKNET_MAINNET_CHAIN = '0x534e5f4d41494e' as const;\nexport const STARKNET_SEPOLIA_CHAIN = '0x534e5f5345504f4c4941' as const;\nexport type StarknetChainId =\n | typeof STARKNET_MAINNET_CHAIN\n | typeof STARKNET_SEPOLIA_CHAIN;\n\nexport const isStarknetChainId = (\n chainId: unknown,\n): chainId is StarknetChainId => {\n return (\n chainId === STARKNET_MAINNET_CHAIN || chainId === STARKNET_SEPOLIA_CHAIN\n );\n};\n\nexport const ChainId = {\n ethereum: 1,\n avalanche: 43114,\n base: 8453,\n berachain: 80094,\n binanceSmartChain: 56,\n corn: 21000000,\n etherlink: 42793,\n katana: 747474,\n megaeth: 4326,\n monad: 143,\n morph: 2818,\n sonic: 146,\n stable: 988,\n swell: 1923,\n tac: 239,\n bob: 60808,\n // Testnets:\n avalancheFuji: 43113,\n baseSepoliaTestnet: 84532,\n berachainBartioTestnet: 80084,\n binanceSmartChainTestnet: 97,\n holesky: 17000,\n morphHolesky: 2810,\n sepolia: 11155111,\n sonicBlazeTestnet: 57054,\n} as const;\n\nexport type ChainId = (typeof ChainId)[keyof typeof ChainId];\n\nexport const CHAIN_ID_TO_VIEM_CHAIN_MAP = {\n [ChainId.ethereum]: mainnet,\n // Avalanche mainnet - BTC.b not released yet\n ...(featureConfig.isAvalancheMainnetEnabled\n ? { [ChainId.avalanche]: avalanche }\n : {}),\n [ChainId.base]: base,\n // Feature-gated chains\n ...(featureConfig.isBerachainEnabled\n ? { [ChainId.berachain]: berachain }\n : {}),\n [ChainId.binanceSmartChain]: bsc,\n ...(featureConfig.isCornEnabled ? { [ChainId.corn]: corn } : {}),\n ...(featureConfig.isEtherlinkEnabled\n ? { [ChainId.etherlink]: etherlink }\n : {}),\n [ChainId.katana]: katana,\n [ChainId.megaeth]: megaeth,\n [ChainId.monad]: monad,\n ...(featureConfig.isMorphEnabled ? { [ChainId.morph]: morph } : {}),\n [ChainId.sonic]: sonic,\n [ChainId.stable]: stable,\n ...(featureConfig.isSwellchainEnabled\n ? { [ChainId.swell]: swellchain }\n : {}),\n ...(featureConfig.isTacEnabled ? { [ChainId.tac]: tac } : {}),\n ...(featureConfig.isBobEnabled ? { [ChainId.bob]: bob } : {}),\n // Testnets:\n // Avalanche Fuji - enabled for testing (Silo integration)\n ...(featureConfig.isAvalancheFujiEnabled\n ? { [ChainId.avalancheFuji]: avalancheFuji }\n : {}),\n [ChainId.baseSepoliaTestnet]: baseSepolia,\n ...(featureConfig.isBerachainEnabled\n ? { [ChainId.berachainBartioTestnet]: berachainTestnetbArtio }\n : {}),\n [ChainId.binanceSmartChainTestnet]: bscTestnet,\n [ChainId.holesky]: holesky,\n ...(featureConfig.isMorphEnabled\n ? { [ChainId.morphHolesky]: morphHolesky }\n : {}),\n [ChainId.sepolia]: sepolia,\n [ChainId.sonicBlazeTestnet]: sonicBlazeTestnet,\n};\n\ntype KatanaChain = typeof ChainId.katana;\nexport const isKatanaChain = (chainId: unknown): chainId is KatanaChain => {\n return chainId === ChainId.katana;\n};\ntype MonadChain = typeof ChainId.monad;\nexport const isMonadChain = (chainId: unknown): chainId is MonadChain => {\n return chainId === ChainId.monad;\n};\n\ntype EthereumChain = typeof ChainId.ethereum;\nexport const isEthereumChain = (chainId: unknown): chainId is EthereumChain => {\n return ([ChainId.ethereum] as number[]).includes(chainId as number);\n};\n\ntype StableChain = typeof ChainId.stable;\nexport const isStableChain = (chainId: unknown): chainId is StableChain => {\n return chainId === ChainId.stable;\n};\n\ntype MegaethChain = typeof ChainId.megaeth;\nexport const isMegaethChain = (chainId: unknown): chainId is MegaethChain => {\n return ([ChainId.megaeth] as number[]).includes(chainId as number);\n};\nexport const CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP = {\n [ChainId.ethereum]: 'ethereum',\n ...(featureConfig.isAvalancheMainnetEnabled\n ? { [ChainId.avalanche]: 'avalanche' }\n : {}),\n [ChainId.base]: 'base',\n [ChainId.berachain]: 'berachain',\n [ChainId.binanceSmartChain]: 'bsc',\n [ChainId.corn]: 'corn',\n [ChainId.etherlink]: 'etherlink',\n [ChainId.morph]: 'morph',\n [ChainId.sonic]: 'sonic',\n [ChainId.swell]: 'swellchain',\n [ChainId.megaeth]: 'megaeth',\n [ChainId.monad]: 'monad',\n [ChainId.katana]: 'katana',\n [ChainId.stable]: 'stable',\n} as const;\ntype LlamaChain =\n (typeof CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP)[keyof typeof CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP];\n\nexport function isValidChain(chainId: unknown): chainId is ChainId {\n return Object.values(ChainId).includes(chainId as ChainId);\n}\n\nexport type AddChainParameters = {\n provider: EIP1193Provider;\n chainId: ChainId;\n};\n\nexport async function addChain({ provider, chainId }: AddChainParameters) {\n const walletClient = makeWalletClient({\n provider,\n chainId: ChainId.ethereum,\n });\n\n const chain = CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId];\n\n if (!chain) {\n throw new Error(`Chain ${chainId} not found`);\n }\n\n await viem_addChain(walletClient, {\n chain,\n });\n}\nexport const getLlamaChainName = (chainId: ChainId): LlamaChain | undefined => {\n const name =\n CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP[\n chainId as keyof typeof CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP\n ];\n return name;\n};\n\nexport const getChain = (chainId: number): viem_chains.Chain | undefined =>\n extractChain({ chains: Object.values(allChains), id: chainId as ChainId });\n","import { Address } from 'viem';\n\n/**\n * Address kinds for tokens that have multiple contract addresses.\n *\n * **BTC.b Integration Architecture:**\n *\n * BTC.b on Avalanche uses a dual-contract architecture with both a token contract\n * and an adapter contract serving different purposes:\n *\n * **When to use Token vs Adapter:**\n *\n * - **Token** (`AddressKind.Token`):\n * - Use for EIP-2612 `permit()` signatures (Stake and Bake)\n * - Use for querying token balance, symbol, decimals\n * - Use for standard ERC20 operations (allowance checks, balance queries)\n * - This is the actual BTC.b ERC20 token contract\n *\n * - **Adapter** (`AddressKind.Adapter`):\n * - Use for burn/mint/transfer operations via BridgeTokenAdapter\n * - Use for bridge deposit/withdrawal operations\n * - Use as spender address when approving tokens for bridge operations\n * - This adapter serves as an intermediary between BridgeToken and both AssetRouter and Bridge\n *\n * **Important Notes:**\n *\n * 1. **Permit Signatures**: Always use `AddressKind.Token` as the `verifyingContract` in\n * EIP-2612 permit signatures. The token contract implements the `permit()` function,\n * not the adapter.\n *\n * 2. **Approvals**: For bridge and redemption operations, users must grant allowance to\n * the **BridgeTokenAdapter** address, not the vault or bridge contract.\n *\n * 3. **Deposit Address**: For Ledger integration, the token address includes the adapter\n * address when tweaking deposit addresses.\n *\n * @example\n * ```typescript\n * // For permit signatures (Stake and Bake):\n * const tokenContract = await getTokenContractInfo(\n * Token.BTCb,\n * ChainId.avalancheFuji,\n * env,\n * AddressKind.Token // ✅ Use token address for permit\n * );\n *\n * // For bridge operations:\n * const adapterContract = await getTokenContractInfo(\n * Token.BTCb,\n * ChainId.avalancheFuji,\n * env,\n * AddressKind.Adapter // ✅ Use adapter address for bridge\n * );\n * ```\n */\nexport enum AddressKind {\n /**\n * The bridge adapter contract address (BridgeTokenAdapter).\n * Used for burn/mint/transfer operations and as the spender for bridge approvals.\n */\n Adapter = 'adapter',\n\n /**\n * The token contract address (standard ERC20).\n * Used for permit signatures, balance queries, and standard ERC20 operations.\n */\n Token = 'token',\n}\n\n/**\n * Address structure for tokens with both token and adapter addresses.\n *\n * Currently only used by `Token.BTCb` on Avalanche chains.\n */\nexport type BridgeTokenAddresses = {\n /** The bridge adapter contract address (BridgeTokenAdapter) */\n [AddressKind.Adapter]: Address;\n /** The token contract address (standard ERC20) */\n [AddressKind.Token]: Address;\n};\n","/**\n * Token Address Constants\n *\n * @deprecated v4.1 Migration Target\n *\n * This module contains hardcoded token addresses. For v4.1, these should be\n * migrated to use the Asset Catalog (`core/assets/`) which supports dynamic\n * address loading from remote sources.\n *\n * See: docs/ADDRESS_SYSTEM_UNIFICATION.md\n *\n * Current usage (~26 files) should migrate to:\n * - `getAssetAddress()` from `core/assets/utils`\n * - Pass `catalog` from `ResolvedLombardConfig`\n *\n * @module tokens/token-addresses\n */\n\nimport { DEFAULT_ENV, Env } from '@lombard.finance/sdk-common';\nimport { Address } from 'viem';\n\nimport {\n ChainId,\n isSolanaChain,\n isStarknetChainId,\n isSuiChain,\n isValidChain,\n SOLANA_DEVNET_CHAIN,\n SOLANA_MAINNET_CHAIN,\n SolanaChain,\n STARKNET_MAINNET_CHAIN,\n STARKNET_SEPOLIA_CHAIN,\n StarknetChainId,\n SUI_MAINNET_CHAIN,\n SUI_TESTNET_CHAIN,\n SuiChain,\n} from '../common/chains';\nimport { featureConfig } from '../common/feature-config';\nimport { AddressKind, BridgeTokenAddresses } from './types';\n\n// Re-export for backward compatibility\nexport type { BridgeTokenAddresses } from './types';\nexport { AddressKind } from './types';\n\nexport enum Token {\n // Lombard tokens:\n /** LBTC: the yield-bearing token */\n LBTC = 'LBTC',\n /**\n * BTCK: the native LBTC token on Katana chain\n * @deprecated - Switch to {@link Token.BTCb} as soon as the BTCK becomes obsolete.\n */\n BTCK = 'BTCK',\n /** BTC.b: the native Lombard's BTC wrapper token */\n BTCb = 'BTC.b',\n\n // Supporting tokens:\n BTCBinance = 'BTCB',\n cbBTC = 'cbBTC',\n eBTC = 'eBTC',\n wBTC = 'wBTC',\n wBTCN = 'wBTCN',\n}\n\ntype SupportingToken =\n | Token.BTCBinance\n | Token.cbBTC\n | Token.eBTC\n | Token.wBTC\n | Token.wBTCN;\n\nexport type RatioToken = 'TOKEN_SYMBOL_STLBTC';\nexport const RATIO_TOKEN_MAP: Record<RatioToken, Token> = {\n TOKEN_SYMBOL_STLBTC: Token.LBTC,\n};\n\nexport type TokenAddressesPerEnv<\n token extends Token,\n chain extends string | number | symbol = ChainId | SuiChain | SolanaChain,\n> = Partial<\n Record<\n Env,\n Partial<\n Record<\n chain,\n | (token extends Token.BTCb\n ? chain extends\n | typeof ChainId.avalanche\n | typeof ChainId.avalancheFuji\n ? BridgeTokenAddresses\n : Address\n : chain extends ChainId | SuiChain | StarknetChainId\n ? Address\n : string)\n | undefined\n >\n >\n >\n>;\n\nexport type TokenAddresses<\n token extends Token,\n chain extends string | number | symbol = ChainId | SuiChain | SolanaChain,\n> = Partial<Record<token, TokenAddressesPerEnv<token, chain>>>;\n\n/**\n * BTC.b token addresses across different chains and environments.\n *\n * **Architecture:**\n * - On **Avalanche chains** (Avalanche Mainnet, Avalanche Fuji): Uses dual-contract architecture\n * with both `token` and `adapter` addresses\n * - On **other chains** (Katana, Sepolia, BSC, etc.): Uses single address\n *\n * **Address Usage:**\n * - `token`: BTC.b ERC20 contract - use for permits, balance queries, standard ERC20 operations\n * - `adapter`: BridgeTokenAdapter contract - use for bridge operations, burn/mint/transfer\n *\n * @example\n * ```typescript\n * // Avalanche Fuji (testnet) has dual addresses:\n * const addresses = EVM_BTCB_ADDRESSES[Env.testnet][ChainId.avalancheFuji];\n * // { token: '0xB14f240...', adapter: '0x41BCd71...' }\n *\n * ```\n */\nconst EVM_BTCB_ADDRESSES: TokenAddressesPerEnv<Token.BTCb, ChainId> = {\n [Env.prod]: {\n [ChainId.ethereum]: '0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072',\n [ChainId.katana]: '0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072',\n ...(featureConfig.isAvalancheMainnetEnabled\n ? {\n [ChainId.avalanche]: {\n token: '0x152b9d0FdC40C096757F570A51E494bd4b943E50',\n adapter: '0x85D1D52e11290F174444d21C2a167bEDBE36e4d2',\n },\n }\n : {}),\n ...(featureConfig.isMonadEnabled\n ? {\n [ChainId.monad]: '0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072',\n }\n : {}),\n [ChainId.megaeth]: '0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072',\n [ChainId.stable]: '0xB0F70C0bD6FD87dbEb7C10dC692a2a6106817072',\n },\n [Env.ibc]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: {\n adapter: '0x1391f9AC408cf13214DDB71d359002658eaF9ebb',\n token: '0x71ba2b8dc58e7ca1b6d81a60729e31aefa37ae02',\n },\n }\n : {}),\n },\n [Env.dev]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: {\n adapter: '0x0A65C37d07c32E5eA8ea40495b7f249cdE26935e',\n token: '0x7FbdC44BfEBDe80C970ba622B678daB36cee31f6',\n },\n }\n : {}),\n [ChainId.binanceSmartChainTestnet]:\n '0xea3F66E5f2928dB9673103BfA01a2153A57a8050',\n [ChainId.sepolia]: '0x195219A262423d209E126BD21cf4F4F9AA796927',\n },\n [Env.stage]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: {\n adapter: '0x0A65C37d07c32E5eA8ea40495b7f249cdE26935e',\n token: '0x7FbdC44BfEBDe80C970ba622B678daB36cee31f6',\n },\n }\n : {}),\n [ChainId.sepolia]: '0x600e4006278EB11FA1691cA0FE6C5fcfC4992d58',\n },\n [Env.testnet]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: {\n adapter: '0x41BCd71e7C92b1c8dDe53037F9b2c4AA2058b1cB',\n token: '0xB14f240714Bd23Bda103A7189D512A90326E4D01',\n },\n }\n : {}),\n [ChainId.sepolia]: '0x20eA7b8ABb4B583788F1DFC738C709a2d9675681',\n },\n};\n\nexport const EVM_LBTC_ADDRESSES: TokenAddressesPerEnv<Token.LBTC, ChainId> = {\n [Env.prod]: {\n [ChainId.ethereum]: '0x8236a87084f8b84306f72007f36f2618a5634494',\n ...(featureConfig.isAvalancheMainnetEnabled\n ? {\n [ChainId.avalanche]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n }\n : {}),\n [ChainId.base]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.berachain]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.binanceSmartChain]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.corn]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.etherlink]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.katana]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.megaeth]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.morph]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.sonic]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.stable]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.swell]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.tac]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n [ChainId.bob]: '0xA45d4121b3D47719FF57a947A9d961539Ba33204',\n ...(featureConfig.isMonadEnabled\n ? {\n [ChainId.monad]: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',\n }\n : {}),\n },\n [Env.stage]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: undefined,\n }\n : {}),\n [ChainId.baseSepoliaTestnet]: '0x731eFa688F3679688cf60A3993b8658138953ED6',\n [ChainId.berachainBartioTestnet]:\n '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n [ChainId.binanceSmartChainTestnet]:\n '0x731eFa688F3679688cf60A3993b8658138953ED6',\n [ChainId.holesky]: '0xED7bfd5C1790576105Af4649817f6d35A75CD818',\n [ChainId.sepolia]: '0x731eFa688F3679688cf60A3993b8658138953ED6',\n [ChainId.sonicBlazeTestnet]: '0x731eFa688F3679688cf60A3993b8658138953ED6',\n },\n [Env.testnet]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: '0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5',\n }\n : {}),\n [ChainId.baseSepoliaTestnet]: '0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5',\n [ChainId.berachainBartioTestnet]:\n '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n [ChainId.binanceSmartChainTestnet]:\n '0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5',\n [ChainId.holesky]: '0x38A13AB20D15ffbE5A7312d2336EF1552580a4E2',\n [ChainId.sepolia]: '0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5',\n [ChainId.sonicBlazeTestnet]: '0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5',\n },\n [Env.dev]: {\n ...(featureConfig.isAvalancheFujiEnabled\n ? {\n [ChainId.avalancheFuji]: '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n }\n : {}),\n [ChainId.sepolia]: '0x93283b6B889C591893dB0dc93baD71656D5d8923',\n [ChainId.baseSepoliaTestnet]: '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n [ChainId.berachainBartioTestnet]:\n '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n [ChainId.binanceSmartChainTestnet]:\n '0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30',\n },\n};\n\nconst EVM_SUPPORTING_TOKEN_ADDRESSES: TokenAddresses<SupportingToken, ChainId> =\n {\n [Token.BTCBinance]: {\n [Env.prod]: {\n [ChainId.binanceSmartChain]:\n '0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c',\n },\n },\n [Token.eBTC]: {\n [Env.prod]: {\n [ChainId.ethereum]: '0x657e8c867d8b37dcc18fa4caead9c45eb088c642',\n },\n },\n [Token.wBTC]: {\n [Env.prod]: {\n [ChainId.ethereum]: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',\n },\n },\n [Token.wBTCN]: {\n [Env.prod]: {\n [ChainId.corn]: '0xda5dDd7270381A7C2717aD10D1c0ecB19e3CDFb2',\n },\n },\n };\n\nexport const TOKEN_ADDRESSES: TokenAddresses<Token, ChainId> = {\n [Token.LBTC]: EVM_LBTC_ADDRESSES,\n [Token.BTCb]: EVM_BTCB_ADDRESSES,\n [Token.BTCK]: EVM_BTCB_ADDRESSES, // alias for NativeLBTC\n ...EVM_SUPPORTING_TOKEN_ADDRESSES,\n};\n\nexport const SUI_TOKEN_ADDRESSES: TokenAddresses<Token.LBTC, SuiChain> = {\n [Token.LBTC]: {\n [Env.prod]: {\n [SUI_MAINNET_CHAIN]:\n '0x3e8e9423d80e1774a7ca128fccd8bf5f1f7753be658c5e645929037f7c819040',\n },\n [Env.stage]: {\n [SUI_TESTNET_CHAIN]:\n '0x2d66430a27565b912f21be970e5ae1e8c0359f0b518c3235b751c75976791ce0',\n },\n [Env.testnet]: {\n [SUI_TESTNET_CHAIN]:\n '0x50454d0b0fbad1288a6ab74f2e8ce0905a3317870673ab7787ebcf6f322b45fa',\n },\n },\n};\n\nexport const getSuiTokenAddress = (\n chainId: SuiChain,\n env = DEFAULT_ENV,\n): Address | undefined => {\n return SUI_TOKEN_ADDRESSES[Token.LBTC]?.[env]?.[chainId] || undefined;\n};\n\nexport const SOLANA_TOKEN_ADDRESSES: TokenAddresses<\n Token.LBTC | Token.BTCb,\n SolanaChain\n> = {\n [Token.LBTC]: {\n [Env.prod]: {\n [SOLANA_MAINNET_CHAIN]: 'LBTCgU4b3wsFKsPwBn1rRZDx5DoFutM6RPiEt1TPDsY',\n },\n [Env.testnet]: {\n [SOLANA_DEVNET_CHAIN]: '1BTCPX3qyFtBvhQvJaHntfzZfB8qcJmJXfoRnD3vAgh',\n },\n [Env.dev]: {\n [SOLANA_DEVNET_CHAIN]: 'LBTCojyVJ63rsEED2DLEGWMzSxWJyQynXE91LMLgV1J',\n },\n [Env.stage]: {\n [SOLANA_DEVNET_CHAIN]: '1btcyoWK7d99iosES4eXQGhhooCscKGigV5wHfvzueX',\n },\n },\n [Token.BTCb]: {\n [Env.prod]: {\n [SOLANA_MAINNET_CHAIN]: 'BTCbKVgfW4xMqTWEmxVwc6pzg2c5YtQWxSpBuQDhUrpu',\n },\n [Env.dev]: {\n [SOLANA_DEVNET_CHAIN]: 'BTCB3ripBAut19jM8kDPVbJHb2ZdR2GcZvGZkCmFPtV8',\n },\n [Env.stage]: {\n [SOLANA_DEVNET_CHAIN]: 'BTCGPAHQSsS9RYcL2Z4B5z6YyAXLatNcnaEwYdczsMZw',\n },\n [Env.testnet]: {\n [SOLANA_DEVNET_CHAIN]: 'BTCb1Xy55DzwPMog9d3ztPau4nqXp6BhUrdGHjTrMYCn',\n },\n },\n};\n\nexport const getSolanaTokenAddress = (\n chainId: SolanaChain,\n env = DEFAULT_ENV,\n token: Token.LBTC | Token.BTCb = Token.LBTC,\n): string | undefined => {\n return SOLANA_TOKEN_ADDRESSES[token]?.[env]?.[chainId] || undefined;\n};\n\nexport const getTokenByAddress = (\n tokenAddress?: string,\n chainId?: ChainId | SuiChain | SolanaChain | StarknetChainId,\n env = DEFAULT_ENV,\n addressKind: AddressKind = AddressKind.Token,\n) => {\n if (!tokenAddress || !chainId) return;\n\n const detectableTokens = [Token.LBTC, Token.BTCb];\n\n const addressMaps = [\n [isStarknetChainId, STARKNET_TOKEN_ADDRESSES],\n [isSuiChain, SUI_TOKEN_ADDRESSES],\n [isSolanaChain, SOLANA_TOKEN_ADDRESSES],\n [isValidChain, TOKEN_ADDRESSES],\n ] as const;\n\n for (const token of detectableTokens) {\n for (const [checkChain, addresses] of addressMaps) {\n if (checkChain(chainId)) {\n let address = (\n addresses as TokenAddresses<typeof token, typeof chainId>\n )?.[token]?.[env]?.[chainId];\n if (address) {\n address =\n typeof address === 'string' ? address : address[addressKind];\n if (tokenAddress.toLowerCase() === address.toLowerCase())\n return token;\n }\n }\n }\n }\n};\n\nexport const getTokenAddressForChain = (\n chainId: ChainId | SuiChain | SolanaChain | StarknetChainId,\n adapter: AddressKind = AddressKind.Token,\n env: Env = DEFAULT_ENV,\n): string | undefined => {\n if (isValidChain(chainId)) {\n const found = TOKEN_ADDRESSES[Token.LBTC]?.[env]?.[chainId];\n if (found) {\n return typeof found === 'string' ? found : found[adapter];\n }\n }\n if (isSuiChain(chainId)) {\n return SUI_TOKEN_ADDRESSES[Token.LBTC]?.[env]?.[chainId];\n }\n if (isSolanaChain(chainId)) {\n return SOLANA_TOKEN_ADDRESSES[Token.LBTC]?.[env]?.[chainId];\n }\n if (isStarknetChainId(chainId)) {\n return STARKNET_TOKEN_ADDRESSES[Token.LBTC]?.[env]?.[chainId];\n }\n return undefined;\n};\n\n// Starknet token addresses\n// See: packages/sdk-starknet/src/tokens/lib/tokens.ts\nexport const STARKNET_TOKEN_ADDRESSES: TokenAddresses<\n Token.LBTC,\n StarknetChainId\n> = {\n [Token.LBTC]: {\n [Env.prod]: {\n [STARKNET_SEPOLIA_CHAIN]: undefined,\n [STARKNET_MAINNET_CHAIN]:\n '0x036834a40984312f7f7de8d31e3f6305b325389eaeea5b1c0664b2fb936461a4',\n },\n [Env.stage]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x00b442f5420860e937a99659326e81a97e07bfd538b3cee65b90029c9da38a5f',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n [Env.testnet]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x00456a829ab75ba5e97534dc70d7fc617cfda244f8dcda47b11624de67c6e70c',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n [Env.dev]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x0723de0c550b7bfbb5051dade72966d71a08bef952c0197462a5244497eb57c1',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n },\n} as const;\n\nexport const STARKNET_ASSET_ROUTER_ADDRESSES: TokenAddresses<\n Token.LBTC,\n StarknetChainId\n> = {\n [Token.LBTC]: {\n [Env.prod]: {\n [STARKNET_SEPOLIA_CHAIN]: undefined,\n [STARKNET_MAINNET_CHAIN]:\n '0x05b1886d0f844ab930fc0ee066f1655a873437f15a5d2c41ee3e884fd5299976',\n },\n [Env.stage]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x01d27f156092746d0d7cd9d9deec5e937f27c3c7c1c28365e9e5efac459880b3',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n [Env.testnet]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x063b7b5c8b114ebd5b9602fbd5d0ffd2cc3a598f1d91c6904cc0997cd8fea760',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n [Env.dev]: {\n [STARKNET_SEPOLIA_CHAIN]:\n '0x04838a05c798dc57e01e85526979841c84f1f3c732a525cff53adb3e8bee3d24',\n [STARKNET_MAINNET_CHAIN]: undefined,\n },\n },\n} as const;\n\nexport const getStarknetTokenAddress = (\n chainId: StarknetChainId,\n env = DEFAULT_ENV,\n variant: 'token' | 'assetRouter' = 'token',\n): Address | undefined => {\n return (\n (variant === 'token'\n ? STARKNET_TOKEN_ADDRESSES\n : STARKNET_ASSET_ROUTER_ADDRESSES)[Token.LBTC]?.[env]?.[chainId] ||\n undefined\n );\n};\n"],"names":["makeWalletClient","provider","chainId","chain","CHAIN_ID_TO_VIEM_CHAIN_MAP","transport","custom","createWalletClient","avalanche","avalancheFuji","base","baseSepolia","bsc","bscTestnet","corn","holesky","mainnet","sepolia","sonic","sonicBlazeTestnet","viem_chains","katana","defineChain","tac","bob","bobSepolia","monad","stable","megaeth","allChains","SUI_DEVNET_CHAIN","SUI_TESTNET_CHAIN","SUI_LOCALNET_CHAIN","SUI_MAINNET_CHAIN","isSuiChain","SOLANA_MAINNET_CHAIN","SOLANA_TESTNET_CHAIN","SOLANA_DEVNET_CHAIN","isSolanaChain","STARKNET_MAINNET_CHAIN","STARKNET_SEPOLIA_CHAIN","isStarknetChainId","ChainId","isKatanaChain","isMonadChain","isEthereumChain","isStableChain","isMegaethChain","CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP","isValidChain","addChain","walletClient","viem_addChain","getLlamaChainName","getChain","extractChain","AddressKind","Token","RATIO_TOKEN_MAP","EVM_BTCB_ADDRESSES","Env","EVM_LBTC_ADDRESSES","EVM_SUPPORTING_TOKEN_ADDRESSES","TOKEN_ADDRESSES","SUI_TOKEN_ADDRESSES","getSuiTokenAddress","env","DEFAULT_ENV","_b","_a","SOLANA_TOKEN_ADDRESSES","getSolanaTokenAddress","token","getTokenByAddress","tokenAddress","addressKind","detectableTokens","addressMaps","STARKNET_TOKEN_ADDRESSES","checkChain","addresses","address","getTokenAddressForChain","adapter","found","_d","_c","_f","_e","_h","_g","STARKNET_ASSET_ROUTER_ADDRESSES","getStarknetTokenAddress","variant"],"mappings":"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"}