@lombard.finance/sdk 4.7.1 → 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 (122) 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-BczTnzRn.js → BtcActions-Ds6YrAKZ.js} +7 -7
  9. package/dist/chunks/{BtcActions-BczTnzRn.js.map → BtcActions-Ds6YrAKZ.js.map} +1 -1
  10. package/dist/chunks/{BtcActions-PyJhuiZN.cjs → BtcActions-DywyNv3O.cjs} +2 -2
  11. package/dist/chunks/{BtcActions-PyJhuiZN.cjs.map → BtcActions-DywyNv3O.cjs.map} +1 -1
  12. package/dist/chunks/{EvmActions-DSKThOAy.js → EvmActions-BDk1vvRY.js} +9 -9
  13. package/dist/chunks/{EvmActions-DSKThOAy.js.map → EvmActions-BDk1vvRY.js.map} +1 -1
  14. package/dist/chunks/{EvmActions-D3RAK9_Z.cjs → EvmActions-BzlEACJk.cjs} +2 -2
  15. package/dist/chunks/{EvmActions-D3RAK9_Z.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-DNehj45M.cjs → events-DADaEsss.cjs} +2 -2
  45. package/dist/chunks/{events-DNehj45M.cjs.map → events-DADaEsss.cjs.map} +1 -1
  46. package/dist/chunks/{events-BlzP_SCT.js → events-DmrU6jV2.js} +12 -12
  47. package/dist/chunks/{events-BlzP_SCT.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-BJIXJNIC.cjs → statusConstants-C4MCQQX7.cjs} +2 -2
  73. package/dist/chunks/{statusConstants-BJIXJNIC.cjs.map → statusConstants-C4MCQQX7.cjs.map} +1 -1
  74. package/dist/chunks/{statusConstants-BQna5LGH.js → statusConstants-DAn1Atsp.js} +4 -4
  75. package/dist/chunks/{statusConstants-BQna5LGH.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 +1 -1
  120. package/dist/chunks/token-addresses-Ddar0FyS.js.map +0 -1
  121. package/dist/chunks/token-addresses-DvY-Mw7b.cjs +0 -2
  122. package/dist/chunks/token-addresses-DvY-Mw7b.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import c from "axios";
2
2
  import { getApiConfig as u } from "./api-config-Dm6dR85f.js";
3
- import { getErrorMessage as g } from "./tokens-HhVpKe3K.js";
3
+ import { getErrorMessage as g } from "./tokens-CwbSzyK9.js";
4
4
  async function y({
5
5
  address: i,
6
6
  chainId: a,
@@ -62,4 +62,4 @@ export {
62
62
  y as getNetworkFeeSignature,
63
63
  d as storeNetworkFeeSignature
64
64
  };
65
- //# sourceMappingURL=storeNetworkFeeSignature-tprCigR1.js.map
65
+ //# sourceMappingURL=storeNetworkFeeSignature-B4xx2WLI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storeNetworkFeeSignature-tprCigR1.js","sources":["../../src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts","../../src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts"],"sourcesContent":["import axios from 'axios';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { ChainId } from '../../common/chains';\nimport { IEnvParam } from '../../common/parameters';\nimport { getErrorMessage } from '../../utils/err';\n\nexport interface IGetNetworkFeeSignatureParams extends IEnvParam {\n /**\n * Chain ID of the network to interact with\n */\n chainId: ChainId;\n /**\n * Destination address\n */\n address: string;\n /**\n * Token address (optional, required for BTC.b)\n */\n tokenAddress?: string;\n}\n\ninterface IGetNetworkFeeSignatureResponse {\n /**\n * Expiration date of signature\n */\n expiration_date: string;\n /**\n * The flag signature exists\n */\n has_signature: boolean;\n /**\n * The auto mint is delayed\n */\n is_delayed: boolean;\n /**\n * Serialized signature when available\n */\n signature?: string;\n /**\n * Serialized typed data associated with the signature when available\n */\n typed_data?: string;\n}\n\nexport interface IGetNetworkFeeSignatureMappedResponse {\n /**\n * Expiration date of signature\n */\n expirationDate: string;\n /**\n * The flag signature exists\n */\n hasSignature: boolean;\n /**\n * The auto mint is delayed\n */\n isDelayed: boolean;\n /**\n * Serialized signature when available\n */\n signature?: string;\n /**\n * Serialized typed data associated with the signature when available\n */\n typedData?: string;\n}\n\n/**\n * Returns the expiration date and the flag signature exists\n *\n * @param {IGetNetworkFeeSignatureParams} parameters - The parameters.\n * @param {string} parameters.address - The account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {Env} parameters.env - The optional environment identifier.\n *\n * @returns {Promise<IGetNetworkFeeSignatureResponse>}\n */\nexport async function getNetworkFeeSignature({\n address,\n chainId,\n env,\n tokenAddress,\n}: IGetNetworkFeeSignatureParams): Promise<IGetNetworkFeeSignatureMappedResponse> {\n const { baseApiUrl } = getApiConfig(env);\n\n try {\n const params: Record<string, string | number> = {\n user_destination_address: address,\n chain_id: chainId,\n };\n\n if (tokenAddress) {\n params.token_address = tokenAddress;\n }\n\n const { data } = await axios.get<IGetNetworkFeeSignatureResponse>(\n `${baseApiUrl}/api/v1/claimer/get-user-signature`,\n {\n params,\n },\n );\n\n return {\n expirationDate: data?.expiration_date,\n hasSignature: data?.has_signature,\n isDelayed: data?.is_delayed,\n signature: data?.signature,\n typedData: data?.typed_data,\n };\n } catch (error) {\n const errorMessage = getErrorMessage(error);\n\n throw new Error(errorMessage);\n }\n}\n","import axios from 'axios';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { IEnvParam } from '../../common/parameters';\nimport { getErrorMessage } from '../../utils/err';\n\nexport type IStoreNetworkFeeSignatureStatus = 'success';\n\ninterface IStoreNetworkFeeSignatureResponse {\n status: IStoreNetworkFeeSignatureStatus;\n}\n\nexport interface IStoreNetworkFeeSignatureParams extends IEnvParam {\n /**\n * signature\n */\n signature: string;\n /**\n * JSON typed data used for the signature\n */\n typedData: string;\n /**\n * Destination address\n */\n address: string;\n /**\n * Token address (required to distinguish LBTC vs BTC.b signatures)\n */\n tokenAddress?: string;\n}\n\n/**\n * Authorize network fee\n *\n * @param {IStoreNetworkFeeSignatureParams} parameters - The parameters for network fee authorization\n * @param {string} parameters.address - The destination account address.\n * @param {string} parameters.signature - The signature.\n * @param {string} parameters.typedData - The serialized typed data.\n * @param {Env} parameters.env - The optional environment identifier.\n *\n * @returns {Promise<IStoreNetworkFeeSignatureResponse>}\n */\nexport async function storeNetworkFeeSignature({\n signature,\n typedData,\n address,\n env,\n tokenAddress,\n}: IStoreNetworkFeeSignatureParams): Promise<IStoreNetworkFeeSignatureStatus> {\n const { baseApiUrl } = getApiConfig(env);\n\n try {\n const params: Record<string, string> = {\n typed_data: typedData,\n signature,\n user_destination_address: address,\n };\n\n // Include token address to distinguish LBTC vs BTC.b signatures\n if (tokenAddress) {\n params.token_address = tokenAddress;\n }\n\n const { data } = await axios.post<IStoreNetworkFeeSignatureResponse>(\n `${baseApiUrl}/api/v1/claimer/save-user-signature`,\n null,\n { params },\n );\n\n return data.status;\n } catch (error) {\n const errorMsg = getErrorMessage(error);\n throw new Error(errorMsg);\n }\n}\n"],"names":["getNetworkFeeSignature","address","chainId","env","tokenAddress","baseApiUrl","getApiConfig","params","data","axios","error","errorMessage","getErrorMessage","storeNetworkFeeSignature","signature","typedData","errorMsg"],"mappings":";;;AA8EA,eAAsBA,EAAuB;AAAA,EAC3C,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAAC;AAAA,EACA,cAAAC;AACF,GAAkF;AAChF,QAAM,EAAE,YAAAC,EAAA,IAAeC,EAAaH,CAAG;AAEvC,MAAI;AACF,UAAMI,IAA0C;AAAA,MAC9C,0BAA0BN;AAAA,MAC1B,UAAUC;AAAA,IAAA;AAGZ,IAAIE,MACFG,EAAO,gBAAgBH;AAGzB,UAAM,EAAE,MAAAI,EAAA,IAAS,MAAMC,EAAM;AAAA,MAC3B,GAAGJ,CAAU;AAAA,MACb;AAAA,QACE,QAAAE;AAAA,MAAA;AAAA,IACF;AAGF,WAAO;AAAA,MACL,gBAAgBC,KAAA,gBAAAA,EAAM;AAAA,MACtB,cAAcA,KAAA,gBAAAA,EAAM;AAAA,MACpB,WAAWA,KAAA,gBAAAA,EAAM;AAAA,MACjB,WAAWA,KAAA,gBAAAA,EAAM;AAAA,MACjB,WAAWA,KAAA,gBAAAA,EAAM;AAAA,IAAA;AAAA,EAErB,SAASE,GAAO;AACd,UAAMC,IAAeC,EAAgBF,CAAK;AAE1C,UAAM,IAAI,MAAMC,CAAY;AAAA,EAC9B;AACF;ACzEA,eAAsBE,EAAyB;AAAA,EAC7C,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAd;AAAA,EACA,KAAAE;AAAA,EACA,cAAAC;AACF,GAA8E;AAC5E,QAAM,EAAE,YAAAC,EAAA,IAAeC,EAAaH,CAAG;AAEvC,MAAI;AACF,UAAMI,IAAiC;AAAA,MACrC,YAAYQ;AAAA,MACZ,WAAAD;AAAA,MACA,0BAA0Bb;AAAA,IAAA;AAI5B,IAAIG,MACFG,EAAO,gBAAgBH;AAGzB,UAAM,EAAE,MAAAI,EAAA,IAAS,MAAMC,EAAM;AAAA,MAC3B,GAAGJ,CAAU;AAAA,MACb;AAAA,MACA,EAAE,QAAAE,EAAA;AAAA,IAAO;AAGX,WAAOC,EAAK;AAAA,EACd,SAASE,GAAO;AACd,UAAMM,IAAWJ,EAAgBF,CAAK;AACtC,UAAM,IAAI,MAAMM,CAAQ;AAAA,EAC1B;AACF;"}
1
+ {"version":3,"file":"storeNetworkFeeSignature-B4xx2WLI.js","sources":["../../src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts","../../src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts"],"sourcesContent":["import axios from 'axios';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { ChainId } from '../../common/chains';\nimport { IEnvParam } from '../../common/parameters';\nimport { getErrorMessage } from '../../utils/err';\n\nexport interface IGetNetworkFeeSignatureParams extends IEnvParam {\n /**\n * Chain ID of the network to interact with\n */\n chainId: ChainId;\n /**\n * Destination address\n */\n address: string;\n /**\n * Token address (optional, required for BTC.b)\n */\n tokenAddress?: string;\n}\n\ninterface IGetNetworkFeeSignatureResponse {\n /**\n * Expiration date of signature\n */\n expiration_date: string;\n /**\n * The flag signature exists\n */\n has_signature: boolean;\n /**\n * The auto mint is delayed\n */\n is_delayed: boolean;\n /**\n * Serialized signature when available\n */\n signature?: string;\n /**\n * Serialized typed data associated with the signature when available\n */\n typed_data?: string;\n}\n\nexport interface IGetNetworkFeeSignatureMappedResponse {\n /**\n * Expiration date of signature\n */\n expirationDate: string;\n /**\n * The flag signature exists\n */\n hasSignature: boolean;\n /**\n * The auto mint is delayed\n */\n isDelayed: boolean;\n /**\n * Serialized signature when available\n */\n signature?: string;\n /**\n * Serialized typed data associated with the signature when available\n */\n typedData?: string;\n}\n\n/**\n * Returns the expiration date and the flag signature exists\n *\n * @param {IGetNetworkFeeSignatureParams} parameters - The parameters.\n * @param {string} parameters.address - The account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {Env} parameters.env - The optional environment identifier.\n *\n * @returns {Promise<IGetNetworkFeeSignatureResponse>}\n */\nexport async function getNetworkFeeSignature({\n address,\n chainId,\n env,\n tokenAddress,\n}: IGetNetworkFeeSignatureParams): Promise<IGetNetworkFeeSignatureMappedResponse> {\n const { baseApiUrl } = getApiConfig(env);\n\n try {\n const params: Record<string, string | number> = {\n user_destination_address: address,\n chain_id: chainId,\n };\n\n if (tokenAddress) {\n params.token_address = tokenAddress;\n }\n\n const { data } = await axios.get<IGetNetworkFeeSignatureResponse>(\n `${baseApiUrl}/api/v1/claimer/get-user-signature`,\n {\n params,\n },\n );\n\n return {\n expirationDate: data?.expiration_date,\n hasSignature: data?.has_signature,\n isDelayed: data?.is_delayed,\n signature: data?.signature,\n typedData: data?.typed_data,\n };\n } catch (error) {\n const errorMessage = getErrorMessage(error);\n\n throw new Error(errorMessage);\n }\n}\n","import axios from 'axios';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { IEnvParam } from '../../common/parameters';\nimport { getErrorMessage } from '../../utils/err';\n\nexport type IStoreNetworkFeeSignatureStatus = 'success';\n\ninterface IStoreNetworkFeeSignatureResponse {\n status: IStoreNetworkFeeSignatureStatus;\n}\n\nexport interface IStoreNetworkFeeSignatureParams extends IEnvParam {\n /**\n * signature\n */\n signature: string;\n /**\n * JSON typed data used for the signature\n */\n typedData: string;\n /**\n * Destination address\n */\n address: string;\n /**\n * Token address (required to distinguish LBTC vs BTC.b signatures)\n */\n tokenAddress?: string;\n}\n\n/**\n * Authorize network fee\n *\n * @param {IStoreNetworkFeeSignatureParams} parameters - The parameters for network fee authorization\n * @param {string} parameters.address - The destination account address.\n * @param {string} parameters.signature - The signature.\n * @param {string} parameters.typedData - The serialized typed data.\n * @param {Env} parameters.env - The optional environment identifier.\n *\n * @returns {Promise<IStoreNetworkFeeSignatureResponse>}\n */\nexport async function storeNetworkFeeSignature({\n signature,\n typedData,\n address,\n env,\n tokenAddress,\n}: IStoreNetworkFeeSignatureParams): Promise<IStoreNetworkFeeSignatureStatus> {\n const { baseApiUrl } = getApiConfig(env);\n\n try {\n const params: Record<string, string> = {\n typed_data: typedData,\n signature,\n user_destination_address: address,\n };\n\n // Include token address to distinguish LBTC vs BTC.b signatures\n if (tokenAddress) {\n params.token_address = tokenAddress;\n }\n\n const { data } = await axios.post<IStoreNetworkFeeSignatureResponse>(\n `${baseApiUrl}/api/v1/claimer/save-user-signature`,\n null,\n { params },\n );\n\n return data.status;\n } catch (error) {\n const errorMsg = getErrorMessage(error);\n throw new Error(errorMsg);\n }\n}\n"],"names":["getNetworkFeeSignature","address","chainId","env","tokenAddress","baseApiUrl","getApiConfig","params","data","axios","error","errorMessage","getErrorMessage","storeNetworkFeeSignature","signature","typedData","errorMsg"],"mappings":";;;AA8EA,eAAsBA,EAAuB;AAAA,EAC3C,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAAC;AAAA,EACA,cAAAC;AACF,GAAkF;AAChF,QAAM,EAAE,YAAAC,EAAA,IAAeC,EAAaH,CAAG;AAEvC,MAAI;AACF,UAAMI,IAA0C;AAAA,MAC9C,0BAA0BN;AAAA,MAC1B,UAAUC;AAAA,IAAA;AAGZ,IAAIE,MACFG,EAAO,gBAAgBH;AAGzB,UAAM,EAAE,MAAAI,EAAA,IAAS,MAAMC,EAAM;AAAA,MAC3B,GAAGJ,CAAU;AAAA,MACb;AAAA,QACE,QAAAE;AAAA,MAAA;AAAA,IACF;AAGF,WAAO;AAAA,MACL,gBAAgBC,KAAA,gBAAAA,EAAM;AAAA,MACtB,cAAcA,KAAA,gBAAAA,EAAM;AAAA,MACpB,WAAWA,KAAA,gBAAAA,EAAM;AAAA,MACjB,WAAWA,KAAA,gBAAAA,EAAM;AAAA,MACjB,WAAWA,KAAA,gBAAAA,EAAM;AAAA,IAAA;AAAA,EAErB,SAASE,GAAO;AACd,UAAMC,IAAeC,EAAgBF,CAAK;AAE1C,UAAM,IAAI,MAAMC,CAAY;AAAA,EAC9B;AACF;ACzEA,eAAsBE,EAAyB;AAAA,EAC7C,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAd;AAAA,EACA,KAAAE;AAAA,EACA,cAAAC;AACF,GAA8E;AAC5E,QAAM,EAAE,YAAAC,EAAA,IAAeC,EAAaH,CAAG;AAEvC,MAAI;AACF,UAAMI,IAAiC;AAAA,MACrC,YAAYQ;AAAA,MACZ,WAAAD;AAAA,MACA,0BAA0Bb;AAAA,IAAA;AAI5B,IAAIG,MACFG,EAAO,gBAAgBH;AAGzB,UAAM,EAAE,MAAAI,EAAA,IAAS,MAAMC,EAAM;AAAA,MAC3B,GAAGJ,CAAU;AAAA,MACb;AAAA,MACA,EAAE,QAAAE,EAAA;AAAA,IAAO;AAGX,WAAOC,EAAK;AAAA,EACd,SAASE,GAAO;AACd,UAAMM,IAAWJ,EAAgBF,CAAK;AACtC,UAAM,IAAI,MAAMM,CAAQ;AAAA,EAC1B;AACF;"}
@@ -1,2 +1,2 @@
1
- "use strict";const g=require("axios"),u=require("./api-config-DkXqqfCK.cjs"),c=require("./tokens-CBsz6l_2.cjs");async function p({address:i,chainId:n,env:a,tokenAddress:t}){const{baseApiUrl:s}=u.getApiConfig(a);try{const r={user_destination_address:i,chain_id:n};t&&(r.token_address=t);const{data:e}=await g.get(`${s}/api/v1/claimer/get-user-signature`,{params:r});return{expirationDate:e==null?void 0:e.expiration_date,hasSignature:e==null?void 0:e.has_signature,isDelayed:e==null?void 0:e.is_delayed,signature:e==null?void 0:e.signature,typedData:e==null?void 0:e.typed_data}}catch(r){const e=c.getErrorMessage(r);throw new Error(e)}}async function _({signature:i,typedData:n,address:a,env:t,tokenAddress:s}){const{baseApiUrl:r}=u.getApiConfig(t);try{const e={typed_data:n,signature:i,user_destination_address:a};s&&(e.token_address=s);const{data:o}=await g.post(`${r}/api/v1/claimer/save-user-signature`,null,{params:e});return o.status}catch(e){const o=c.getErrorMessage(e);throw new Error(o)}}exports.getNetworkFeeSignature=p;exports.storeNetworkFeeSignature=_;
2
- //# sourceMappingURL=storeNetworkFeeSignature-CLm8I2pf.cjs.map
1
+ "use strict";const g=require("axios"),u=require("./api-config-DkXqqfCK.cjs"),c=require("./tokens-DEYY7W7O.cjs");async function p({address:i,chainId:n,env:a,tokenAddress:t}){const{baseApiUrl:s}=u.getApiConfig(a);try{const r={user_destination_address:i,chain_id:n};t&&(r.token_address=t);const{data:e}=await g.get(`${s}/api/v1/claimer/get-user-signature`,{params:r});return{expirationDate:e==null?void 0:e.expiration_date,hasSignature:e==null?void 0:e.has_signature,isDelayed:e==null?void 0:e.is_delayed,signature:e==null?void 0:e.signature,typedData:e==null?void 0:e.typed_data}}catch(r){const e=c.getErrorMessage(r);throw new Error(e)}}async function _({signature:i,typedData:n,address:a,env:t,tokenAddress:s}){const{baseApiUrl:r}=u.getApiConfig(t);try{const e={typed_data:n,signature:i,user_destination_address:a};s&&(e.token_address=s);const{data:o}=await g.post(`${r}/api/v1/claimer/save-user-signature`,null,{params:e});return o.status}catch(e){const o=c.getErrorMessage(e);throw new Error(o)}}exports.getNetworkFeeSignature=p;exports.storeNetworkFeeSignature=_;
2
+ //# sourceMappingURL=storeNetworkFeeSignature-DJgBfZp7.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"storeNetworkFeeSignature-CLm8I2pf.cjs","sources":["../../src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts","../../src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts"],"sourcesContent":["import axios from 'axios';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { ChainId } from '../../common/chains';\nimport { IEnvParam } from '../../common/parameters';\nimport { getErrorMessage } from '../../utils/err';\n\nexport interface IGetNetworkFeeSignatureParams extends IEnvParam {\n /**\n * Chain ID of the network to interact with\n */\n chainId: ChainId;\n /**\n * Destination address\n */\n address: string;\n /**\n * Token address (optional, required for BTC.b)\n */\n tokenAddress?: string;\n}\n\ninterface IGetNetworkFeeSignatureResponse {\n /**\n * Expiration date of signature\n */\n expiration_date: string;\n /**\n * The flag signature exists\n */\n has_signature: boolean;\n /**\n * The auto mint is delayed\n */\n is_delayed: boolean;\n /**\n * Serialized signature when available\n */\n signature?: string;\n /**\n * Serialized typed data associated with the signature when available\n */\n typed_data?: string;\n}\n\nexport interface IGetNetworkFeeSignatureMappedResponse {\n /**\n * Expiration date of signature\n */\n expirationDate: string;\n /**\n * The flag signature exists\n */\n hasSignature: boolean;\n /**\n * The auto mint is delayed\n */\n isDelayed: boolean;\n /**\n * Serialized signature when available\n */\n signature?: string;\n /**\n * Serialized typed data associated with the signature when available\n */\n typedData?: string;\n}\n\n/**\n * Returns the expiration date and the flag signature exists\n *\n * @param {IGetNetworkFeeSignatureParams} parameters - The parameters.\n * @param {string} parameters.address - The account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {Env} parameters.env - The optional environment identifier.\n *\n * @returns {Promise<IGetNetworkFeeSignatureResponse>}\n */\nexport async function getNetworkFeeSignature({\n address,\n chainId,\n env,\n tokenAddress,\n}: IGetNetworkFeeSignatureParams): Promise<IGetNetworkFeeSignatureMappedResponse> {\n const { baseApiUrl } = getApiConfig(env);\n\n try {\n const params: Record<string, string | number> = {\n user_destination_address: address,\n chain_id: chainId,\n };\n\n if (tokenAddress) {\n params.token_address = tokenAddress;\n }\n\n const { data } = await axios.get<IGetNetworkFeeSignatureResponse>(\n `${baseApiUrl}/api/v1/claimer/get-user-signature`,\n {\n params,\n },\n );\n\n return {\n expirationDate: data?.expiration_date,\n hasSignature: data?.has_signature,\n isDelayed: data?.is_delayed,\n signature: data?.signature,\n typedData: data?.typed_data,\n };\n } catch (error) {\n const errorMessage = getErrorMessage(error);\n\n throw new Error(errorMessage);\n }\n}\n","import axios from 'axios';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { IEnvParam } from '../../common/parameters';\nimport { getErrorMessage } from '../../utils/err';\n\nexport type IStoreNetworkFeeSignatureStatus = 'success';\n\ninterface IStoreNetworkFeeSignatureResponse {\n status: IStoreNetworkFeeSignatureStatus;\n}\n\nexport interface IStoreNetworkFeeSignatureParams extends IEnvParam {\n /**\n * signature\n */\n signature: string;\n /**\n * JSON typed data used for the signature\n */\n typedData: string;\n /**\n * Destination address\n */\n address: string;\n /**\n * Token address (required to distinguish LBTC vs BTC.b signatures)\n */\n tokenAddress?: string;\n}\n\n/**\n * Authorize network fee\n *\n * @param {IStoreNetworkFeeSignatureParams} parameters - The parameters for network fee authorization\n * @param {string} parameters.address - The destination account address.\n * @param {string} parameters.signature - The signature.\n * @param {string} parameters.typedData - The serialized typed data.\n * @param {Env} parameters.env - The optional environment identifier.\n *\n * @returns {Promise<IStoreNetworkFeeSignatureResponse>}\n */\nexport async function storeNetworkFeeSignature({\n signature,\n typedData,\n address,\n env,\n tokenAddress,\n}: IStoreNetworkFeeSignatureParams): Promise<IStoreNetworkFeeSignatureStatus> {\n const { baseApiUrl } = getApiConfig(env);\n\n try {\n const params: Record<string, string> = {\n typed_data: typedData,\n signature,\n user_destination_address: address,\n };\n\n // Include token address to distinguish LBTC vs BTC.b signatures\n if (tokenAddress) {\n params.token_address = tokenAddress;\n }\n\n const { data } = await axios.post<IStoreNetworkFeeSignatureResponse>(\n `${baseApiUrl}/api/v1/claimer/save-user-signature`,\n null,\n { params },\n );\n\n return data.status;\n } catch (error) {\n const errorMsg = getErrorMessage(error);\n throw new Error(errorMsg);\n }\n}\n"],"names":["getNetworkFeeSignature","address","chainId","env","tokenAddress","baseApiUrl","getApiConfig","params","data","axios","error","errorMessage","getErrorMessage","storeNetworkFeeSignature","signature","typedData","errorMsg"],"mappings":"gHA8EA,eAAsBA,EAAuB,CAC3C,QAAAC,EACA,QAAAC,EACA,IAAAC,EACA,aAAAC,CACF,EAAkF,CAChF,KAAM,CAAE,WAAAC,CAAA,EAAeC,EAAAA,aAAaH,CAAG,EAEvC,GAAI,CACF,MAAMI,EAA0C,CAC9C,yBAA0BN,EAC1B,SAAUC,CAAA,EAGRE,IACFG,EAAO,cAAgBH,GAGzB,KAAM,CAAE,KAAAI,CAAA,EAAS,MAAMC,EAAM,IAC3B,GAAGJ,CAAU,qCACb,CACE,OAAAE,CAAA,CACF,EAGF,MAAO,CACL,eAAgBC,GAAA,YAAAA,EAAM,gBACtB,aAAcA,GAAA,YAAAA,EAAM,cACpB,UAAWA,GAAA,YAAAA,EAAM,WACjB,UAAWA,GAAA,YAAAA,EAAM,UACjB,UAAWA,GAAA,YAAAA,EAAM,UAAA,CAErB,OAASE,EAAO,CACd,MAAMC,EAAeC,EAAAA,gBAAgBF,CAAK,EAE1C,MAAM,IAAI,MAAMC,CAAY,CAC9B,CACF,CCzEA,eAAsBE,EAAyB,CAC7C,UAAAC,EACA,UAAAC,EACA,QAAAd,EACA,IAAAE,EACA,aAAAC,CACF,EAA8E,CAC5E,KAAM,CAAE,WAAAC,CAAA,EAAeC,EAAAA,aAAaH,CAAG,EAEvC,GAAI,CACF,MAAMI,EAAiC,CACrC,WAAYQ,EACZ,UAAAD,EACA,yBAA0Bb,CAAA,EAIxBG,IACFG,EAAO,cAAgBH,GAGzB,KAAM,CAAE,KAAAI,CAAA,EAAS,MAAMC,EAAM,KAC3B,GAAGJ,CAAU,sCACb,KACA,CAAE,OAAAE,CAAA,CAAO,EAGX,OAAOC,EAAK,MACd,OAASE,EAAO,CACd,MAAMM,EAAWJ,EAAAA,gBAAgBF,CAAK,EACtC,MAAM,IAAI,MAAMM,CAAQ,CAC1B,CACF"}
1
+ {"version":3,"file":"storeNetworkFeeSignature-DJgBfZp7.cjs","sources":["../../src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts","../../src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts"],"sourcesContent":["import axios from 'axios';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { ChainId } from '../../common/chains';\nimport { IEnvParam } from '../../common/parameters';\nimport { getErrorMessage } from '../../utils/err';\n\nexport interface IGetNetworkFeeSignatureParams extends IEnvParam {\n /**\n * Chain ID of the network to interact with\n */\n chainId: ChainId;\n /**\n * Destination address\n */\n address: string;\n /**\n * Token address (optional, required for BTC.b)\n */\n tokenAddress?: string;\n}\n\ninterface IGetNetworkFeeSignatureResponse {\n /**\n * Expiration date of signature\n */\n expiration_date: string;\n /**\n * The flag signature exists\n */\n has_signature: boolean;\n /**\n * The auto mint is delayed\n */\n is_delayed: boolean;\n /**\n * Serialized signature when available\n */\n signature?: string;\n /**\n * Serialized typed data associated with the signature when available\n */\n typed_data?: string;\n}\n\nexport interface IGetNetworkFeeSignatureMappedResponse {\n /**\n * Expiration date of signature\n */\n expirationDate: string;\n /**\n * The flag signature exists\n */\n hasSignature: boolean;\n /**\n * The auto mint is delayed\n */\n isDelayed: boolean;\n /**\n * Serialized signature when available\n */\n signature?: string;\n /**\n * Serialized typed data associated with the signature when available\n */\n typedData?: string;\n}\n\n/**\n * Returns the expiration date and the flag signature exists\n *\n * @param {IGetNetworkFeeSignatureParams} parameters - The parameters.\n * @param {string} parameters.address - The account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {Env} parameters.env - The optional environment identifier.\n *\n * @returns {Promise<IGetNetworkFeeSignatureResponse>}\n */\nexport async function getNetworkFeeSignature({\n address,\n chainId,\n env,\n tokenAddress,\n}: IGetNetworkFeeSignatureParams): Promise<IGetNetworkFeeSignatureMappedResponse> {\n const { baseApiUrl } = getApiConfig(env);\n\n try {\n const params: Record<string, string | number> = {\n user_destination_address: address,\n chain_id: chainId,\n };\n\n if (tokenAddress) {\n params.token_address = tokenAddress;\n }\n\n const { data } = await axios.get<IGetNetworkFeeSignatureResponse>(\n `${baseApiUrl}/api/v1/claimer/get-user-signature`,\n {\n params,\n },\n );\n\n return {\n expirationDate: data?.expiration_date,\n hasSignature: data?.has_signature,\n isDelayed: data?.is_delayed,\n signature: data?.signature,\n typedData: data?.typed_data,\n };\n } catch (error) {\n const errorMessage = getErrorMessage(error);\n\n throw new Error(errorMessage);\n }\n}\n","import axios from 'axios';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { IEnvParam } from '../../common/parameters';\nimport { getErrorMessage } from '../../utils/err';\n\nexport type IStoreNetworkFeeSignatureStatus = 'success';\n\ninterface IStoreNetworkFeeSignatureResponse {\n status: IStoreNetworkFeeSignatureStatus;\n}\n\nexport interface IStoreNetworkFeeSignatureParams extends IEnvParam {\n /**\n * signature\n */\n signature: string;\n /**\n * JSON typed data used for the signature\n */\n typedData: string;\n /**\n * Destination address\n */\n address: string;\n /**\n * Token address (required to distinguish LBTC vs BTC.b signatures)\n */\n tokenAddress?: string;\n}\n\n/**\n * Authorize network fee\n *\n * @param {IStoreNetworkFeeSignatureParams} parameters - The parameters for network fee authorization\n * @param {string} parameters.address - The destination account address.\n * @param {string} parameters.signature - The signature.\n * @param {string} parameters.typedData - The serialized typed data.\n * @param {Env} parameters.env - The optional environment identifier.\n *\n * @returns {Promise<IStoreNetworkFeeSignatureResponse>}\n */\nexport async function storeNetworkFeeSignature({\n signature,\n typedData,\n address,\n env,\n tokenAddress,\n}: IStoreNetworkFeeSignatureParams): Promise<IStoreNetworkFeeSignatureStatus> {\n const { baseApiUrl } = getApiConfig(env);\n\n try {\n const params: Record<string, string> = {\n typed_data: typedData,\n signature,\n user_destination_address: address,\n };\n\n // Include token address to distinguish LBTC vs BTC.b signatures\n if (tokenAddress) {\n params.token_address = tokenAddress;\n }\n\n const { data } = await axios.post<IStoreNetworkFeeSignatureResponse>(\n `${baseApiUrl}/api/v1/claimer/save-user-signature`,\n null,\n { params },\n );\n\n return data.status;\n } catch (error) {\n const errorMsg = getErrorMessage(error);\n throw new Error(errorMsg);\n }\n}\n"],"names":["getNetworkFeeSignature","address","chainId","env","tokenAddress","baseApiUrl","getApiConfig","params","data","axios","error","errorMessage","getErrorMessage","storeNetworkFeeSignature","signature","typedData","errorMsg"],"mappings":"gHA8EA,eAAsBA,EAAuB,CAC3C,QAAAC,EACA,QAAAC,EACA,IAAAC,EACA,aAAAC,CACF,EAAkF,CAChF,KAAM,CAAE,WAAAC,CAAA,EAAeC,EAAAA,aAAaH,CAAG,EAEvC,GAAI,CACF,MAAMI,EAA0C,CAC9C,yBAA0BN,EAC1B,SAAUC,CAAA,EAGRE,IACFG,EAAO,cAAgBH,GAGzB,KAAM,CAAE,KAAAI,CAAA,EAAS,MAAMC,EAAM,IAC3B,GAAGJ,CAAU,qCACb,CACE,OAAAE,CAAA,CACF,EAGF,MAAO,CACL,eAAgBC,GAAA,YAAAA,EAAM,gBACtB,aAAcA,GAAA,YAAAA,EAAM,cACpB,UAAWA,GAAA,YAAAA,EAAM,WACjB,UAAWA,GAAA,YAAAA,EAAM,UACjB,UAAWA,GAAA,YAAAA,EAAM,UAAA,CAErB,OAASE,EAAO,CACd,MAAMC,EAAeC,EAAAA,gBAAgBF,CAAK,EAE1C,MAAM,IAAI,MAAMC,CAAY,CAC9B,CACF,CCzEA,eAAsBE,EAAyB,CAC7C,UAAAC,EACA,UAAAC,EACA,QAAAd,EACA,IAAAE,EACA,aAAAC,CACF,EAA8E,CAC5E,KAAM,CAAE,WAAAC,CAAA,EAAeC,EAAAA,aAAaH,CAAG,EAEvC,GAAI,CACF,MAAMI,EAAiC,CACrC,WAAYQ,EACZ,UAAAD,EACA,yBAA0Bb,CAAA,EAIxBG,IACFG,EAAO,cAAgBH,GAGzB,KAAM,CAAE,KAAAI,CAAA,EAAS,MAAMC,EAAM,KAC3B,GAAGJ,CAAU,sCACb,KACA,CAAE,OAAAE,CAAA,CAAO,EAGX,OAAOC,EAAK,MACd,OAASE,EAAO,CACd,MAAMM,EAAWJ,EAAAA,gBAAgBF,CAAK,EACtC,MAAM,IAAI,MAAMM,CAAQ,CAC1B,CACF"}
@@ -0,0 +1,2 @@
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",l="solana:devnet",v=a=>[S,z,l].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,le=a=>a===e.monad,Ce=a=>[e.ethereum,e.sepolia].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]:{[l]:"1BTCPX3qyFtBvhQvJaHntfzZfB8qcJmJXfoRnD3vAgh"},[t.r.dev]:{[l]:"LBTCojyVJ63rsEED2DLEGWMzSxWJyQynXE91LMLgV1J"},[t.r.stage]:{[l]:"1btcyoWK7d99iosES4eXQGhhooCscKGigV5wHfvzueX"}},"BTC.b":{[t.r.prod]:{[S]:"BTCbKVgfW4xMqTWEmxVwc6pzg2c5YtQWxSpBuQDhUrpu"},[t.r.dev]:{[l]:"BTCB3ripBAut19jM8kDPVbJHb2ZdR2GcZvGZkCmFPtV8"},[t.r.stage]:{[l]:"BTCGPAHQSsS9RYcL2Z4B5z6YyAXLatNcnaEwYdczsMZw"},[t.r.testnet]:{[l]:"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,C]of f)if(h(c)){let o=(A=(E=C==null?void 0:C[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,C;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(C=(h=m.LBTC)==null?void 0:h[n])==null?void 0:C[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=l;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=Ce;exports.isKatanaChain=be;exports.isMegaethChain=Ae;exports.isMonadChain=le;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-C7H9E4qz.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-addresses-C7H9E4qz.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 | typeof ChainId.sepolia;\nexport const isEthereumChain = (chainId: unknown): chainId is EthereumChain => {\n return ([ChainId.ethereum, ChainId.sepolia] 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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"}
@@ -191,8 +191,8 @@ const {
191
191
  A,
192
192
  ne,
193
193
  L
194
- ].includes(a), m = "solana:mainnet-beta", oe = "solana:testnet", i = "solana:devnet", M = (a) => [
195
- m,
194
+ ].includes(a), p = "solana:mainnet-beta", oe = "solana:testnet", i = "solana:devnet", M = (a) => [
195
+ p,
196
196
  oe,
197
197
  i
198
198
  ].includes(a), d = "0x534e5f4d41494e", b = "0x534e5f5345504f4c4941", w = (a) => a === d || a === b, e = {
@@ -238,7 +238,7 @@ const {
238
238
  [e.holesky]: Z,
239
239
  [e.sepolia]: q,
240
240
  [e.sonicBlazeTestnet]: ee
241
- }, Be = (a) => a === e.katana, he = (a) => a === e.monad, Te = (a) => [e.ethereum].includes(a), Ae = (a) => a === e.stable, me = (a) => [e.megaeth].includes(a), se = {
241
+ }, Be = (a) => a === e.katana, he = (a) => a === e.monad, Te = (a) => [e.ethereum, e.sepolia].includes(a), Ae = (a) => a === e.stable, pe = (a) => [e.megaeth].includes(a), se = {
242
242
  [e.ethereum]: "ethereum",
243
243
  [e.avalanche]: "avalanche",
244
244
  [e.base]: "base",
@@ -257,7 +257,7 @@ const {
257
257
  function H(a) {
258
258
  return Object.values(e).includes(a);
259
259
  }
260
- async function pe({ provider: a, chainId: n }) {
260
+ async function me({ provider: a, chainId: n }) {
261
261
  const o = j({
262
262
  provider: a,
263
263
  chainId: e.ethereum
@@ -269,7 +269,7 @@ async function pe({ provider: a, chainId: n }) {
269
269
  });
270
270
  }
271
271
  const xe = (a) => se[a], ue = (a) => I({ chains: Object.values(te), id: a });
272
- var p = /* @__PURE__ */ ((a) => (a.Adapter = "adapter", a.Token = "token", a))(p || {}), re = /* @__PURE__ */ ((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))(re || {});
272
+ var m = /* @__PURE__ */ ((a) => (a.Adapter = "adapter", a.Token = "token", a))(m || {}), re = /* @__PURE__ */ ((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))(re || {});
273
273
  const Fe = {
274
274
  TOKEN_SYMBOL_STLBTC: "LBTC"
275
275
  /* LBTC */
@@ -402,7 +402,7 @@ const Fe = {
402
402
  }, u = {
403
403
  LBTC: {
404
404
  [t.prod]: {
405
- [m]: "LBTCgU4b3wsFKsPwBn1rRZDx5DoFutM6RPiEt1TPDsY"
405
+ [p]: "LBTCgU4b3wsFKsPwBn1rRZDx5DoFutM6RPiEt1TPDsY"
406
406
  },
407
407
  [t.testnet]: {
408
408
  [i]: "1BTCPX3qyFtBvhQvJaHntfzZfB8qcJmJXfoRnD3vAgh"
@@ -416,7 +416,7 @@ const Fe = {
416
416
  },
417
417
  "BTC.b": {
418
418
  [t.prod]: {
419
- [m]: "BTCbKVgfW4xMqTWEmxVwc6pzg2c5YtQWxSpBuQDhUrpu"
419
+ [p]: "BTCbKVgfW4xMqTWEmxVwc6pzg2c5YtQWxSpBuQDhUrpu"
420
420
  },
421
421
  [t.dev]: {
422
422
  [i]: "BTCB3ripBAut19jM8kDPVbJHb2ZdR2GcZvGZkCmFPtV8"
@@ -431,7 +431,7 @@ const Fe = {
431
431
  }, ve = (a, n = B, o = "LBTC") => {
432
432
  var c, s;
433
433
  return ((s = (c = u[o]) == null ? void 0 : c[n]) == null ? void 0 : s[a]) || void 0;
434
- }, ke = (a, n, o = B, c = p.Token) => {
434
+ }, ke = (a, n, o = B, c = m.Token) => {
435
435
  var f, E;
436
436
  if (!a || !n) return;
437
437
  const s = [
@@ -451,7 +451,7 @@ const Fe = {
451
451
  if (r && (r = typeof r == "string" ? r : r[c], a.toLowerCase() === r.toLowerCase()))
452
452
  return D;
453
453
  }
454
- }, _e = (a, n = p.Token, o = B) => {
454
+ }, _e = (a, n = m.Token, o = B) => {
455
455
  var c, s, h, f, E, D, T, C;
456
456
  if (H(a)) {
457
457
  const r = (s = (c = R.LBTC) == null ? void 0 : c[o]) == null ? void 0 : s[a];
@@ -507,14 +507,14 @@ const Fe = {
507
507
  return ((s = (c = (o === "token" ? F : ie).LBTC) == null ? void 0 : c[n]) == null ? void 0 : s[a]) || void 0;
508
508
  };
509
509
  export {
510
- p as AddressKind,
510
+ m as AddressKind,
511
511
  se as CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP,
512
512
  O as CHAIN_ID_TO_VIEM_CHAIN_MAP,
513
513
  e as ChainId,
514
514
  de as EVM_LBTC_ADDRESSES,
515
515
  Fe as RATIO_TOKEN_MAP,
516
516
  i as SOLANA_DEVNET_CHAIN,
517
- m as SOLANA_MAINNET_CHAIN,
517
+ p as SOLANA_MAINNET_CHAIN,
518
518
  oe as SOLANA_TESTNET_CHAIN,
519
519
  u as SOLANA_TOKEN_ADDRESSES,
520
520
  ie as STARKNET_ASSET_ROUTER_ADDRESSES,
@@ -528,7 +528,7 @@ export {
528
528
  x as SUI_TOKEN_ADDRESSES,
529
529
  R as TOKEN_ADDRESSES,
530
530
  re as Token,
531
- pe as addChain,
531
+ me as addChain,
532
532
  te as allChains,
533
533
  Ee as bob,
534
534
  De as bobSepolia,
@@ -541,7 +541,7 @@ export {
541
541
  ke as getTokenByAddress,
542
542
  Te as isEthereumChain,
543
543
  Be as isKatanaChain,
544
- me as isMegaethChain,
544
+ pe as isMegaethChain,
545
545
  he as isMonadChain,
546
546
  M as isSolanaChain,
547
547
  Ae as isStableChain,
@@ -555,4 +555,4 @@ export {
555
555
  N as stable,
556
556
  ae as tac
557
557
  };
558
- //# sourceMappingURL=token-addresses-Ddar0FyS.js.map
558
+ //# sourceMappingURL=token-addresses-J-EuQVP6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-addresses-J-EuQVP6.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 | typeof ChainId.sepolia;\nexport const isEthereumChain = (chainId: unknown): chainId is EthereumChain => {\n return ([ChainId.ethereum, ChainId.sepolia] 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,7 +1,7 @@
1
1
  import { r as c, p as w } from "./index-CfcQ_g3t.js";
2
2
  import o from "bignumber.js";
3
3
  import { http as R, createPublicClient as D, zeroAddress as I, erc20Abi as b } from "viem";
4
- import { ChainId as n, CHAIN_ID_TO_VIEM_CHAIN_MAP as E, getChain as S, AddressKind as f, Token as l, TOKEN_ADDRESSES as g } from "./token-addresses-Ddar0FyS.js";
4
+ import { ChainId as n, CHAIN_ID_TO_VIEM_CHAIN_MAP as E, getChain as S, AddressKind as f, Token as l, TOKEN_ADDRESSES as g } from "./token-addresses-J-EuQVP6.js";
5
5
  import { getApiConfig as F } from "./api-config-Dm6dR85f.js";
6
6
  const P = [
7
7
  n.ethereum,
@@ -6658,4 +6658,4 @@ export {
6658
6658
  q as rpcUrlConfig,
6659
6659
  X as toBaseDenomination
6660
6660
  };
6661
- //# sourceMappingURL=tokens-HhVpKe3K.js.map
6661
+ //# sourceMappingURL=tokens-CwbSzyK9.js.map