@swapkit/toolboxes 4.3.10 → 4.13.1

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 (266) hide show
  1. package/dist/LICENSE +246 -0
  2. package/dist/src/aptos/index.cjs +1 -0
  3. package/dist/src/aptos/index.js +1 -0
  4. package/dist/src/cardano/index.cjs +1 -4
  5. package/dist/src/cardano/index.js +1 -4
  6. package/dist/src/cosmos/index.cjs +1 -4
  7. package/dist/src/cosmos/index.js +1 -4
  8. package/dist/src/evm/index.cjs +1 -4
  9. package/dist/src/evm/index.js +1 -4
  10. package/dist/src/index.cjs +1 -5
  11. package/dist/src/index.js +1 -5
  12. package/dist/src/near/index.cjs +1 -4
  13. package/dist/src/near/index.js +1 -4
  14. package/dist/src/radix/index.cjs +1 -4
  15. package/dist/src/radix/index.js +1 -4
  16. package/dist/src/ripple/index.cjs +1 -4
  17. package/dist/src/ripple/index.js +1 -4
  18. package/dist/src/solana/index.cjs +1 -4
  19. package/dist/src/solana/index.js +1 -4
  20. package/dist/src/starknet/index.cjs +1 -0
  21. package/dist/src/starknet/index.js +1 -0
  22. package/dist/src/stellar/index.cjs +1 -0
  23. package/dist/src/stellar/index.js +1 -0
  24. package/dist/src/substrate/index.cjs +1 -4
  25. package/dist/src/substrate/index.js +1 -4
  26. package/dist/src/sui/index.cjs +1 -4
  27. package/dist/src/sui/index.js +1 -4
  28. package/dist/src/ton/index.cjs +1 -4
  29. package/dist/src/ton/index.js +1 -4
  30. package/dist/src/tron/index.cjs +1 -4
  31. package/dist/src/tron/index.js +1 -4
  32. package/dist/src/utxo/index.cjs +1 -5
  33. package/dist/src/utxo/index.js +1 -5
  34. package/dist/types/aptos/index.d.ts +3 -0
  35. package/dist/types/aptos/index.d.ts.map +1 -0
  36. package/dist/types/aptos/toolbox.d.ts +21 -0
  37. package/dist/types/aptos/toolbox.d.ts.map +1 -0
  38. package/dist/types/aptos/types.d.ts +27 -0
  39. package/dist/types/aptos/types.d.ts.map +1 -0
  40. package/dist/types/cardano/toolbox.d.ts +19 -22
  41. package/dist/types/cardano/toolbox.d.ts.map +1 -1
  42. package/dist/types/cardano/types.d.ts +8 -3
  43. package/dist/types/cardano/types.d.ts.map +1 -1
  44. package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts.map +1 -1
  45. package/dist/types/cosmos/thorchainUtils/messages.d.ts +3 -3
  46. package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +1 -1
  47. package/dist/types/cosmos/toolbox/cosmos.d.ts +11 -9
  48. package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
  49. package/dist/types/cosmos/toolbox/thorchain.d.ts +6 -51
  50. package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -1
  51. package/dist/types/cosmos/types.d.ts +2 -2
  52. package/dist/types/cosmos/types.d.ts.map +1 -1
  53. package/dist/types/evm/helpers.d.ts +34 -1
  54. package/dist/types/evm/helpers.d.ts.map +1 -1
  55. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +14 -7
  56. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -1
  57. package/dist/types/evm/toolbox/evm.d.ts +236 -96
  58. package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
  59. package/dist/types/evm/toolbox/index.d.ts +3 -2
  60. package/dist/types/evm/toolbox/index.d.ts.map +1 -1
  61. package/dist/types/evm/toolbox/op.d.ts +13 -8
  62. package/dist/types/evm/toolbox/op.d.ts.map +1 -1
  63. package/dist/types/evm/types.d.ts +49 -27
  64. package/dist/types/evm/types.d.ts.map +1 -1
  65. package/dist/types/index.d.ts +31 -25
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/near/helpers/core.d.ts +1 -1
  68. package/dist/types/near/helpers/core.d.ts.map +1 -1
  69. package/dist/types/near/index.d.ts +1 -1
  70. package/dist/types/near/index.d.ts.map +1 -1
  71. package/dist/types/near/toolbox.d.ts +13 -10
  72. package/dist/types/near/toolbox.d.ts.map +1 -1
  73. package/dist/types/near/types/index.d.ts +4 -0
  74. package/dist/types/near/types/index.d.ts.map +1 -0
  75. package/dist/types/near/types/toolbox.d.ts +2 -0
  76. package/dist/types/near/types/toolbox.d.ts.map +1 -1
  77. package/dist/types/radix/index.d.ts +7 -7
  78. package/dist/types/radix/index.d.ts.map +1 -1
  79. package/dist/types/ripple/currency.d.ts +5 -0
  80. package/dist/types/ripple/currency.d.ts.map +1 -0
  81. package/dist/types/ripple/index.d.ts +60 -17
  82. package/dist/types/ripple/index.d.ts.map +1 -1
  83. package/dist/types/ripple/tokens.d.ts +15 -0
  84. package/dist/types/ripple/tokens.d.ts.map +1 -0
  85. package/dist/types/solana/index.d.ts +1 -1
  86. package/dist/types/solana/index.d.ts.map +1 -1
  87. package/dist/types/solana/toolbox.d.ts +12 -10
  88. package/dist/types/solana/toolbox.d.ts.map +1 -1
  89. package/dist/types/starknet/index.d.ts +5 -0
  90. package/dist/types/starknet/index.d.ts.map +1 -0
  91. package/dist/types/starknet/toolbox.d.ts +34 -0
  92. package/dist/types/starknet/toolbox.d.ts.map +1 -0
  93. package/dist/types/starknet/types.d.ts +26 -0
  94. package/dist/types/starknet/types.d.ts.map +1 -0
  95. package/dist/types/stellar/index.d.ts +3 -0
  96. package/dist/types/stellar/index.d.ts.map +1 -0
  97. package/dist/types/stellar/toolbox.d.ts +21 -0
  98. package/dist/types/stellar/toolbox.d.ts.map +1 -0
  99. package/dist/types/stellar/types.d.ts +10 -0
  100. package/dist/types/stellar/types.d.ts.map +1 -0
  101. package/dist/types/substrate/balance.d.ts +3 -3
  102. package/dist/types/substrate/balance.d.ts.map +1 -1
  103. package/dist/types/substrate/substrate.d.ts +22 -97
  104. package/dist/types/substrate/substrate.d.ts.map +1 -1
  105. package/dist/types/substrate/types.d.ts +2 -2
  106. package/dist/types/substrate/types.d.ts.map +1 -1
  107. package/dist/types/sui/toolbox.d.ts +17 -8
  108. package/dist/types/sui/toolbox.d.ts.map +1 -1
  109. package/dist/types/sui/types.d.ts +11 -3
  110. package/dist/types/sui/types.d.ts.map +1 -1
  111. package/dist/types/ton/toolbox.d.ts +23 -13
  112. package/dist/types/ton/toolbox.d.ts.map +1 -1
  113. package/dist/types/ton/types.d.ts +9 -8
  114. package/dist/types/ton/types.d.ts.map +1 -1
  115. package/dist/types/tron/helpers/proto.d.ts +9 -0
  116. package/dist/types/tron/helpers/proto.d.ts.map +1 -0
  117. package/dist/types/tron/helpers/trongrid.d.ts +43 -3
  118. package/dist/types/tron/helpers/trongrid.d.ts.map +1 -1
  119. package/dist/types/tron/helpers/utils.d.ts +17 -0
  120. package/dist/types/tron/helpers/utils.d.ts.map +1 -0
  121. package/dist/types/tron/index.d.ts +4 -5
  122. package/dist/types/tron/index.d.ts.map +1 -1
  123. package/dist/types/tron/toolbox.d.ts +20 -18
  124. package/dist/types/tron/toolbox.d.ts.map +1 -1
  125. package/dist/types/tron/types.d.ts +31 -57
  126. package/dist/types/tron/types.d.ts.map +1 -1
  127. package/dist/types/types.d.ts +6 -0
  128. package/dist/types/types.d.ts.map +1 -1
  129. package/dist/types/utxo/hdWallet.d.ts +33 -0
  130. package/dist/types/utxo/hdWallet.d.ts.map +1 -0
  131. package/dist/types/utxo/helpers/api.d.ts +49 -1
  132. package/dist/types/utxo/helpers/api.d.ts.map +1 -1
  133. package/dist/types/utxo/helpers/bchaddrjs.d.ts.map +1 -1
  134. package/dist/types/utxo/helpers/cashaddr.d.ts +13 -0
  135. package/dist/types/utxo/helpers/cashaddr.d.ts.map +1 -0
  136. package/dist/types/utxo/helpers/coinselect.d.ts +9 -5
  137. package/dist/types/utxo/helpers/coinselect.d.ts.map +1 -1
  138. package/dist/types/utxo/helpers/txSize.d.ts +4 -3
  139. package/dist/types/utxo/helpers/txSize.d.ts.map +1 -1
  140. package/dist/types/utxo/index.d.ts +2 -1
  141. package/dist/types/utxo/index.d.ts.map +1 -1
  142. package/dist/types/utxo/toolbox/bitcoinCash.d.ts +75 -15
  143. package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +1 -1
  144. package/dist/types/utxo/toolbox/index.d.ts +6 -5
  145. package/dist/types/utxo/toolbox/index.d.ts.map +1 -1
  146. package/dist/types/utxo/toolbox/params.d.ts +8 -16
  147. package/dist/types/utxo/toolbox/params.d.ts.map +1 -1
  148. package/dist/types/utxo/toolbox/utxo.d.ts +135 -46
  149. package/dist/types/utxo/toolbox/utxo.d.ts.map +1 -1
  150. package/dist/types/utxo/toolbox/validators.d.ts +1 -1
  151. package/dist/types/utxo/toolbox/validators.d.ts.map +1 -1
  152. package/dist/types/utxo/toolbox/zcash.d.ts +63 -10
  153. package/dist/types/utxo/toolbox/zcash.d.ts.map +1 -1
  154. package/dist/types/utxo/types.d.ts +78 -15
  155. package/dist/types/utxo/types.d.ts.map +1 -1
  156. package/package.json +43 -53
  157. package/dist/src/cardano/index.cjs.map +0 -11
  158. package/dist/src/cardano/index.js.map +0 -11
  159. package/dist/src/cosmos/index.cjs.map +0 -20
  160. package/dist/src/cosmos/index.js.map +0 -20
  161. package/dist/src/evm/index.cjs.map +0 -20
  162. package/dist/src/evm/index.js.map +0 -20
  163. package/dist/src/index.cjs.map +0 -67
  164. package/dist/src/index.js.map +0 -67
  165. package/dist/src/near/index.cjs.map +0 -16
  166. package/dist/src/near/index.js.map +0 -16
  167. package/dist/src/radix/index.cjs.map +0 -10
  168. package/dist/src/radix/index.js.map +0 -10
  169. package/dist/src/ripple/index.cjs.map +0 -10
  170. package/dist/src/ripple/index.js.map +0 -10
  171. package/dist/src/solana/index.cjs.map +0 -11
  172. package/dist/src/solana/index.js.map +0 -11
  173. package/dist/src/substrate/index.cjs.map +0 -13
  174. package/dist/src/substrate/index.js.map +0 -13
  175. package/dist/src/sui/index.cjs.map +0 -11
  176. package/dist/src/sui/index.js.map +0 -11
  177. package/dist/src/ton/index.cjs.map +0 -11
  178. package/dist/src/ton/index.js.map +0 -11
  179. package/dist/src/tron/index.cjs.map +0 -13
  180. package/dist/src/tron/index.js.map +0 -13
  181. package/dist/src/utxo/index.cjs.map +0 -21
  182. package/dist/src/utxo/index.js.map +0 -21
  183. package/dist/types/tron/helpers/trc20.abi.d.ts +0 -156
  184. package/dist/types/tron/helpers/trc20.abi.d.ts.map +0 -1
  185. package/src/__tests__/address-validation-all-chains.test.ts +0 -162
  186. package/src/__tests__/addressValidator.test.ts +0 -162
  187. package/src/cardano/__tests__/toolbox.test.ts +0 -48
  188. package/src/cardano/index.ts +0 -2
  189. package/src/cardano/toolbox.ts +0 -168
  190. package/src/cardano/types.ts +0 -10
  191. package/src/cosmos/__tests__/toolbox.test.ts +0 -95
  192. package/src/cosmos/index.ts +0 -4
  193. package/src/cosmos/thorchainUtils/addressFormat.ts +0 -22
  194. package/src/cosmos/thorchainUtils/index.ts +0 -4
  195. package/src/cosmos/thorchainUtils/messages.ts +0 -212
  196. package/src/cosmos/thorchainUtils/registry.ts +0 -43
  197. package/src/cosmos/thorchainUtils/types/MsgCompiled.ts +0 -2800
  198. package/src/cosmos/thorchainUtils/types/client-types.ts +0 -54
  199. package/src/cosmos/thorchainUtils/types/index.ts +0 -1
  200. package/src/cosmos/toolbox/cosmos.ts +0 -350
  201. package/src/cosmos/toolbox/index.ts +0 -35
  202. package/src/cosmos/toolbox/thorchain.ts +0 -249
  203. package/src/cosmos/types.ts +0 -48
  204. package/src/cosmos/util.ts +0 -214
  205. package/src/evm/__tests__/address-validation.test.ts +0 -84
  206. package/src/evm/__tests__/ethereum.test.ts +0 -137
  207. package/src/evm/__tests__/signMessage.test.ts +0 -60
  208. package/src/evm/api.ts +0 -10
  209. package/src/evm/contracts/eth/multicall.ts +0 -165
  210. package/src/evm/contracts/op/gasOracle.ts +0 -145
  211. package/src/evm/helpers.ts +0 -71
  212. package/src/evm/index.ts +0 -4
  213. package/src/evm/toolbox/baseEVMToolbox.ts +0 -698
  214. package/src/evm/toolbox/evm.ts +0 -66
  215. package/src/evm/toolbox/index.ts +0 -44
  216. package/src/evm/toolbox/op.ts +0 -143
  217. package/src/evm/types.ts +0 -146
  218. package/src/index.ts +0 -260
  219. package/src/near/__tests__/core.test.ts +0 -70
  220. package/src/near/helpers/core.ts +0 -85
  221. package/src/near/helpers/gasEstimation.ts +0 -96
  222. package/src/near/helpers/nep141.ts +0 -50
  223. package/src/near/index.ts +0 -21
  224. package/src/near/toolbox.ts +0 -421
  225. package/src/near/types/contract.ts +0 -32
  226. package/src/near/types/nep141.ts +0 -34
  227. package/src/near/types/toolbox.ts +0 -55
  228. package/src/near/types.ts +0 -44
  229. package/src/radix/index.ts +0 -138
  230. package/src/ripple/index.ts +0 -179
  231. package/src/solana/index.ts +0 -36
  232. package/src/solana/toolbox.ts +0 -409
  233. package/src/substrate/balance.ts +0 -88
  234. package/src/substrate/index.ts +0 -2
  235. package/src/substrate/substrate.ts +0 -281
  236. package/src/substrate/types.ts +0 -115
  237. package/src/sui/__tests__/toolbox.test.ts +0 -86
  238. package/src/sui/index.ts +0 -2
  239. package/src/sui/toolbox.ts +0 -166
  240. package/src/sui/types.ts +0 -11
  241. package/src/ton/__tests__/toolbox.test.ts +0 -67
  242. package/src/ton/index.ts +0 -2
  243. package/src/ton/toolbox.ts +0 -136
  244. package/src/ton/types.ts +0 -13
  245. package/src/tron/__tests__/toolbox.test.ts +0 -221
  246. package/src/tron/helpers/trc20.abi.ts +0 -107
  247. package/src/tron/helpers/trongrid.ts +0 -53
  248. package/src/tron/index.ts +0 -21
  249. package/src/tron/toolbox.ts +0 -585
  250. package/src/tron/types.ts +0 -83
  251. package/src/types.ts +0 -28
  252. package/src/utils.ts +0 -34
  253. package/src/utxo/__tests__/zcash-integration.test.ts +0 -97
  254. package/src/utxo/helpers/api.ts +0 -471
  255. package/src/utxo/helpers/bchaddrjs.ts +0 -166
  256. package/src/utxo/helpers/coinselect.ts +0 -92
  257. package/src/utxo/helpers/index.ts +0 -4
  258. package/src/utxo/helpers/txSize.ts +0 -137
  259. package/src/utxo/index.ts +0 -6
  260. package/src/utxo/toolbox/bitcoinCash.ts +0 -243
  261. package/src/utxo/toolbox/index.ts +0 -59
  262. package/src/utxo/toolbox/params.ts +0 -18
  263. package/src/utxo/toolbox/utxo.ts +0 -439
  264. package/src/utxo/toolbox/validators.ts +0 -36
  265. package/src/utxo/toolbox/zcash.ts +0 -242
  266. package/src/utxo/types.ts +0 -39
@@ -1,4 +1 @@
1
- var Bt=Object.create;var{getPrototypeOf:Ft,defineProperty:D,getOwnPropertyNames:mt,getOwnPropertyDescriptor:bt}=Object,Tt=Object.prototype.hasOwnProperty;var P=(t,r,e)=>{e=t!=null?Bt(Ft(t)):{};let N=r||!t||!t.__esModule?D(e,"default",{value:t,enumerable:!0}):e;for(let m of mt(t))if(!Tt.call(N,m))D(N,m,{get:()=>t[m],enumerable:!0});return N},et=new WeakMap,It=(t)=>{var r=et.get(t),e;if(r)return r;if(r=D({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")mt(t).map((N)=>!Tt.call(r,N)&&D(r,N,{get:()=>t[N],enumerable:!(e=bt(t,N))||e.enumerable}));return et.set(t,r),r};var Ut=(t,r)=>{for(var e in r)D(t,e,{get:r[e],enumerable:!0,configurable:!0,set:(N)=>r[e]=()=>N})};var L=(t,r)=>()=>(t&&(r=t(t=0)),r);async function F(){let{validateAccountId:t}=await import("near-sdk-js");return(r)=>{try{return t(r)}catch{let e=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&e.test(r)}}}async function b(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:e}=await import("@near-js/crypto"),N=t.index||0,m=t.derivationPath?B.derivationPathToString(t.derivationPath.slice(0,3)):`m/44'/397'/${N}'`,{secretKey:_}=r(t.phrase,m),s=e.fromString(_);return gt(s)}async function Q(t){let{KeyPair:r}=await import("@near-js/crypto"),e=r.fromString(t);return gt(e)}function gt(t){return new ft(t)}async function I(t,r){let N=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((O)=>O.access_key.permission==="FullAccess");if(!N)throw new B.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:m}=await import("@near-js/crypto"),_=m.fromString(N.public_key);return{nonce:N.access_key.nonce||0,publicKey:_}}var Nt,B,ft;var W=L(()=>{Nt=require("@near-js/signers"),B=require("@swapkit/helpers");ft=class ft extends Nt.KeyPairSigner{#t;constructor(t){super(t);this.#t=t}getAddress(){let t=this.#t.getPublicKey(),r=Buffer.from(t.data).toString("hex");return Promise.resolve(r)}}});function Z(t){return"recipient"in t&&"amount"in t&&!("contractId"in t)}function $(t){return"contractId"in t&&"methodName"in t}function p(t){return"actions"in t}function z(t){return"newAccountId"in t}function X(t){return"contractCode"in t}function H(t){return"customEstimator"in t}function a(t){let r=0;for(let e of t)switch(e.enum){case"transfer":r+=Number(C.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(C.CONTRACT_CALL);break;case"createAccount":r+=Number(C.ACCOUNT_CREATION);break;case"deployContract":r+=Number(C.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(C.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(C.ACCESS_KEY_DELETION);break;case"stake":r+=Number(C.STAKE);break;default:r+=Number(C.CONTRACT_CALL)}return r.toString()}function k(t){if(t==="ft_transfer"||t==="ft_transfer_call")return C.TOKEN_TRANSFER;if(t==="storage_deposit")return C.STORAGE_DEPOSIT;return C.CONTRACT_CALL}function Yt(t){return(BigInt(t)*BigInt(1000000000000)).toString()}function qt(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var C;var w=L(()=>{C={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function V({account:t,contractId:r,viewMethods:e,changeMethods:N}){let{Contract:m}=await import("@near-js/accounts");return new m(t,r,{changeMethods:N,useLocalViewExecution:!0,viewMethods:e})}function Xt(){function t(){let r=Date.now(),e=j||r;return j=e,r>j?r:e+1}return Jt+t().toString(36)}function st(t){return async function(e,N=!0){let m=await Pt.SwapKitApi.getChainBalance({address:e,chain:t,scamFilter:N}),{baseDecimal:_}=S.getChainConfig(t),s=m.map(({identifier:R,value:U,decimal:Y})=>{return new S.AssetValue({decimal:Y||_,identifier:R,value:U})});if(!s.some((R)=>R.isGasAsset))return[S.AssetValue.from({chain:t}),...s];return s}}var S,Pt,Jt,j=0;var xt=L(()=>{S=require("@swapkit/helpers"),Pt=require("@swapkit/helpers/api"),Jt=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function Mt(t){let{P:r,match:e}=await import("ts-pattern"),{JsonRpcProvider:N}=await import("@near-js/providers"),m=await e(t).with({phrase:r.string},async(n)=>{return await b(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),_=await i.getRPCUrl(i.Chain.Near),s=new N({url:_});async function O(n){let{Account:o}=await import("@near-js/accounts"),T=n||await R();return new o(T,s,m)}async function R(){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");return await m.getAddress()}async function U(n){return(await d({changeMethods:[],contractId:n.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:n.accountId})}async function Y(n){let T=[await J({args:{account_id:n.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await J({args:{amount:n.assetValue.getBaseValue("string"),memo:n.memo||null,receiver_id:n.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return tt({actions:T,receiverId:n.contractId})}async function Et(n){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");let{assetValue:o,recipient:T,memo:x}=n,E=await R();if(!o.isGasAsset&&o.address){if(!await U({accountId:T,contractId:o.address}))return Y({assetValue:o,contractId:o.address,memo:x,recipient:T})}let f=await h({...n,sender:E});return c(f)}async function h(n){let{recipient:o,assetValue:T,memo:x,attachedDeposit:E,sender:f,functionCall:g}=n,A=await F();if(!A(o))throw new i.SwapKitError("toolbox_near_invalid_address",{recipient:o});if(!A(f))throw new i.SwapKitError("toolbox_near_invalid_address",{signerId:f});if(g)return q({...g,sender:f});if(!T.isGasAsset){let it=T.address;if(!it)throw new i.SwapKitError("toolbox_near_missing_contract_address");return q({args:{amount:T.getBaseValue("string"),memo:x||null,receiver_id:o},attachedDeposit:E||"1",contractId:it,gas:"250000000000000",methodName:"ft_transfer",sender:f})}let{publicKey:G,nonce:y}=await I(s,f),nt=T.getBaseValue("bigint"),{actionCreators:rt,createTransaction:Gt}=await import("@near-js/transactions"),{baseDecode:Dt}=await import("@near-js/utils"),ot=[rt.transfer(nt)];if(x&&E)ot.push(rt.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(E)));let St=await s.block({finality:"final"}),yt=Dt(St.header.hash);return Gt(f,G,o,y+1,ot,yt)}function At(n){let o=n.encode();return Buffer.from(o).toString("base64")}async function q(n){let{sender:o}=n,{publicKey:T,nonce:x}=await I(s,o),{createTransaction:E,actionCreators:f}=await import("@near-js/transactions"),{baseDecode:g}=await import("@near-js/utils"),A=await s.block({finality:"final"}),G=g(A.header.hash),y=[f.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return E(o,T,n.contractId,x+1,y,G)}async function J(n){let{actionCreators:o}=await import("@near-js/transactions");return o.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function l(n){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");let[o,T]=await m.signTransaction(n);return T}async function K(n){return(await s.sendTransaction(n)).transaction.hash}async function c(n){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");try{let o=await l(n);return await K(o)}catch{return m.signAndSendTransactions?.({transactions:[n]})}}async function Ot(n){if("assetValue"in n){let E=BigInt("115123062500")+BigInt("108059500000"),f=await _t(),g=E*BigInt(f.toString()),{baseDecimal:A}=i.getChainConfig(i.Chain.Near);return i.AssetValue.from({chain:i.Chain.Near,fromBaseDecimal:A,value:g.toString()})}let o=m?await O():void 0;return M(n,o)}async function _t(){try{return await s.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Rt(n,o,T){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");let x=await O(),{formatNearAmount:E}=await import("@near-js/utils"),{PublicKey:f}=await import("@near-js/crypto"),g=E(T)||"0";return(await x.createAccount(n,f.fromString(o),BigInt(g))).transaction.hash}async function ut(n){try{if(!m)throw new i.SwapKitError("toolbox_near_no_signer");let{actionCreators:o}=await import("@near-js/transactions"),{contractId:T,methodName:x,args:E,deposit:f}=n,g=await O(),A=await M({args:E||{},contractId:T,methodName:x}),G=o.functionCall(x,E||{},A.getBaseValue("bigint"),BigInt(f||"1"));return(await g.signAndSendTransaction({actions:[G],receiverId:T})).transaction_outcome.id}catch(o){throw new i.SwapKitError("toolbox_near_transfer_failed",{error:o})}}async function d(n){let o=await O();return V({account:o,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function tt(n){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");if(n.actions.length===0)throw new i.SwapKitError("toolbox_near_empty_batch");return(await(await O()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function M(n,o){let{baseDecimal:T}=i.getChainConfig(i.Chain.Near),x=await e(n).when(Z,()=>C.SIMPLE_TRANSFER).when($,(g)=>k(g.methodName)).when(p,(g)=>a(g.actions)).when(z,()=>C.ACCOUNT_CREATION).when(X,()=>C.CONTRACT_DEPLOYMENT).when(H,(g)=>{if(!o)throw new i.SwapKitError("toolbox_near_no_account");return g.customEstimator(o)}).otherwise(()=>{throw new i.SwapKitError("toolbox_near_invalid_gas_params")}),f=BigInt(x)*BigInt(1000000000000);return i.AssetValue.from({chain:i.Chain.Near,fromBaseDecimal:T,value:f})}async function Lt(){try{return(await s.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:K,callFunction:ut,createAction:J,createContract:d,createContractFunctionCall:q,createSubAccount:Rt,createTransaction:h,estimateGas:M,estimateTransactionFee:Ot,executeBatchTransaction:tt,getAddress:R,getBalance:st(i.Chain.Near),getGasPrice:Lt,getPublicKey:async()=>m?(await m.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>b(n),getSignerFromPrivateKey:Q,provider:s,serializeTransaction:At,signAndSendTransaction:c,signTransaction:l,transfer:Et,validateAddress:await F()}}var i;var v=L(()=>{xt();W();w();i=require("@swapkit/helpers")});var Ct=L(()=>{v()});var Qt={};Ut(Qt,{tgasToGas:()=>Yt,isSimpleTransfer:()=>Z,isCustomEstimator:()=>H,isContractDeployment:()=>X,isContractCall:()=>$,isBatchTransaction:()=>p,isAccountCreation:()=>z,getValidateNearAddress:()=>F,getNearToolbox:()=>Mt,getNearSignerFromPrivateKey:()=>Q,getNearSignerFromPhrase:()=>b,getFullAccessPublicKey:()=>I,getContractMethodGas:()=>k,gasToTGas:()=>qt,estimateBatchGas:()=>a,createNearContract:()=>V,GAS_COSTS:()=>C});module.exports=It(Qt);var Wt=L(()=>{W();w();v();Ct()});Wt();
2
-
3
- //# debugId=6D3E06175B44B7E264756E2164756E21
4
- //# sourceMappingURL=index.cjs.map
1
+ var Hf=Object.create;var{getPrototypeOf:bf,defineProperty:w,getOwnPropertyNames:Cf,getOwnPropertyDescriptor:Ff}=Object,Lf=Object.prototype.hasOwnProperty;function Df(f){return this[f]}var wf,mf,hf=(f,N,E)=>{var C=f!=null&&typeof f==="object";if(C){var Y=N?wf??=new WeakMap:mf??=new WeakMap,M=Y.get(f);if(M)return M}E=f!=null?Hf(bf(f)):{};let B=N||!f||!f.__esModule?w(E,"default",{value:f,enumerable:!0}):E;for(let I of Cf(f))if(!Lf.call(B,I))w(B,I,{get:Df.bind(f,I),enumerable:!0});if(C)Y.set(f,B);return B},yf=(f)=>{var N=(Rf??=new WeakMap).get(f),E;if(N)return N;if(N=w({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var C of Cf(f))if(!Lf.call(N,C))w(N,C,{get:Df.bind(f,C),enumerable:!(E=Ff(f,C))||E.enumerable})}return Rf.set(f,N),N},Rf;var kf=(f)=>f;function jf(f,N){this[f]=kf.bind(null,N)}var Vf=(f,N)=>{for(var E in N)w(f,E,{get:N[E],enumerable:!0,configurable:!0,set:jf.bind(N,E)})};var Z=(f,N)=>()=>(f&&(N=f(f=0)),N);function m(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function S(f){let{parseSeedPhrase:N}=await import("near-seed-phrase"),{KeyPair:E}=await import("@near-js/crypto"),C=f.index||0,Y=f.derivationPath?V.derivationPathToString(f.derivationPath.slice(0,3)):`m/44'/397'/${C}'`,{secretKey:M}=N(f.phrase,Y),B=E.fromString(M);return qf(B)}async function K(f){let{KeyPair:N}=await import("@near-js/crypto"),E=N.fromString(f);return qf(E)}function qf(f){return new Af(f)}async function P(f,N){let C=(await f.query({account_id:N,finality:"final",request_type:"view_access_key_list"})).keys.find((I)=>I.access_key.permission==="FullAccess");if(!C)throw new V.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:Y}=await import("@near-js/crypto"),M=Y.fromString(C.public_key);return{nonce:C.access_key.nonce||0,publicKey:M}}var Yf,V,Af;var h=Z(()=>{Yf=require("@near-js/signers"),V=require("@swapkit/helpers");Af=class Af extends Yf.KeyPairSigner{#f;constructor(f){super(f);this.#f=f}getAddress(){let f=this.#f.getPublicKey(),N=Buffer.from(f.data).toString("hex");return Promise.resolve(N)}}});function o(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function l(f){return"contractId"in f&&"methodName"in f}function p(f){return"actions"in f}function n(f){return"newAccountId"in f}function t(f){return"contractCode"in f}function d(f){return"customEstimator"in f}function i(f){let N=0;for(let E of f)switch(E.enum){case"transfer":N+=Number(q.SIMPLE_TRANSFER);break;case"functionCall":N+=Number(q.CONTRACT_CALL);break;case"createAccount":N+=Number(q.ACCOUNT_CREATION);break;case"deployContract":N+=Number(q.CONTRACT_DEPLOYMENT);break;case"addKey":N+=Number(q.ACCESS_KEY_ADDITION);break;case"deleteKey":N+=Number(q.ACCESS_KEY_DELETION);break;case"stake":N+=Number(q.STAKE);break;default:N+=Number(q.CONTRACT_CALL)}return N.toString()}function r(f){if(f==="ft_transfer"||f==="ft_transfer_call")return q.TOKEN_TRANSFER;if(f==="storage_deposit")return q.STORAGE_DEPOSIT;return q.CONTRACT_CALL}function Sf(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function Pf(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var q;var s=Z(()=>{q={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function c({account:f,contractId:N,viewMethods:E,changeMethods:C}){let{Contract:Y}=await import("@near-js/accounts");return new Y(f,N,{changeMethods:C,useLocalViewExecution:!0,viewMethods:E})}function tf(){function f(){let N=Date.now(),E=e||N;return e=E,N>e?N:E+1}return uf+f().toString(36)}function Mf(f){return async function(E,C=!0){let Y=await Bf.SwapKitApi.getChainBalance({address:E,chain:f,scamFilter:C}),{baseDecimal:M}=y.getChainConfig(f),B=Y.map(({identifier:J,value:k,decimal:u})=>{return new y.AssetValue({decimal:u||M,identifier:J,value:k})});if(!B.some((J)=>J.isGasAsset))return[y.AssetValue.from({chain:f}),...B];return B}}var y,Bf,uf,e=0;var Uf=Z(()=>{y=require("@swapkit/helpers"),Bf=require("@swapkit/helpers/api"),uf=typeof process<"u"&&process.pid?process.pid.toString(36):""});function vf(f){let N;async function E(){if(N)return N;return N=await $.match(f).with({phrase:$.P.string},async(T)=>{return await S(T)}).with({signer:$.P.any},({signer:T})=>T).otherwise(()=>{return}),N}async function C(){let T=await _.getRPCUrl(_.Chain.Near);return new Gf.JsonRpcProvider({url:T})}async function Y(T){let{Account:x}=await import("@near-js/accounts"),O=await C(),L=await E(),R=T||await M();return new x(R,O,L)}async function M(){let T=await E();if(!T)throw new _.SwapKitError("toolbox_near_no_signer");return await T.getAddress()}async function B(T){return(await xf({changeMethods:[],contractId:T.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:T.accountId})}async function I(T){let O=[await g({args:{account_id:T.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await g({args:{amount:T.assetValue.getBaseValue("string"),memo:T.memo||null,receiver_id:T.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Ef({actions:O,receiverId:T.contractId})}async function J(T){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");let{assetValue:O,recipient:L,memo:R}=T,D=await M();if(!O.isGasAsset&&O.address){if(!await B({accountId:L,contractId:O.address}))return I({assetValue:O,contractId:O.address,memo:R,recipient:L})}let A=await k({...T,sender:D});return Nf(A)}async function k({recipient:T,assetValue:x,memo:O,attachedDeposit:L,sender:R,functionCall:D}){let A=await C();if(!m(T))throw new _.SwapKitError("toolbox_near_invalid_address",{recipient:T});if(!m(R))throw new _.SwapKitError("toolbox_near_invalid_address",{sender:R});if(D)return v({...D,sender:R});if(!x.isGasAsset){let _f=x.address;if(!_f)throw new _.SwapKitError("toolbox_near_missing_contract_address");return v({args:{amount:x.getBaseValue("string"),memo:O||null,receiver_id:T},attachedDeposit:L||"1",contractId:_f,gas:"250000000000000",methodName:"ft_transfer",sender:R})}let{publicKey:U,nonce:G}=await P(A,R),Q=x.getBaseValue("bigint"),{actionCreators:W,createTransaction:z}=await import("@near-js/transactions"),{baseDecode:H}=await import("@near-js/utils"),b=[W.transfer(Q)];if(O&&L)b.push(W.functionCall("memo",{memo:O},BigInt("250000000000000"),BigInt(L)));let F=await A.block({finality:"final"}),Of=H(F.header.hash);return z(R,U,T,G+1,b,Of)}function u(T){let x=T.encode();return Buffer.from(x).toString("base64")}async function v({args:T,attachedDeposit:x,contractId:O,gas:L,methodName:R,sender:D}){let A=await C(),{publicKey:U,nonce:G}=await P(A,D),{createTransaction:Q,actionCreators:W}=await import("@near-js/transactions"),{baseDecode:z}=await import("@near-js/utils"),H=await A.block({finality:"final"}),b=z(H.header.hash),F=[W.functionCall(R,Buffer.from(JSON.stringify(T)),BigInt(L),BigInt(x))];return Q(D,U,O,G+1,F,b)}async function g(T){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(T.methodName,Buffer.from(JSON.stringify(T.args)),BigInt(T.gas),BigInt(T.attachedDeposit))}async function ff(T){let x=await E();if(!x)throw new _.SwapKitError("toolbox_near_no_signer");let[O,L]=await x.signTransaction(T);return L}async function Tf(T){return(await(await C()).sendTransaction(T)).transaction.hash}async function Nf(T){let x=await E();if(!x)throw new _.SwapKitError("toolbox_near_no_signer");try{let O=await ff(T);return await Tf(O)}catch{return x.signAndSendTransactions?.({transactions:[T]})}}async function Qf(T){let x=await E();if("assetValue"in T){let L=await Wf();try{let R=await _.getRPCUrl(_.Chain.Near),D=await fetch(R,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:A}}=await D.json(),{execution:U,send_sir:G}=A.transaction_costs.action_receipt_creation_config,{execution:Q,send_sir:W}=A.transaction_costs.action_creation_config.transfer_cost,z=BigInt(W)+BigInt(Q),H=BigInt(G)+BigInt(U),F=(z+H)*BigInt(L.toString());return _.AssetValue.from({chain:_.Chain.Near,value:F})}catch(R){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",R);let D=BigInt("115123062500"),A=BigInt("108059500000"),G=(D+A)*BigInt(L.toString());return _.AssetValue.from({chain:_.Chain.Near,value:G})}}let O=x?await Y():void 0;return j(T,O)}async function Wf(){let T=await C();try{return await T.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Xf(T,x,O){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");let R=await Y(),{formatNearAmount:D}=await import("@near-js/utils"),{PublicKey:A}=await import("@near-js/crypto"),U=D(O)||"0";return(await R.createAccount(T,A.fromString(x),BigInt(U))).transaction.hash}async function Zf(T){let x=await E();try{if(!x)throw new _.SwapKitError("toolbox_near_no_signer");let{actionCreators:O}=await import("@near-js/transactions"),{contractId:L,methodName:R,args:D,deposit:A}=T,U=await Y(),G=await j({args:D||{},contractId:L,methodName:R}),Q=O.functionCall(R,D||{},G.getBaseValue("bigint"),BigInt(A||"1"));return(await U.signAndSendTransaction({actions:[Q],receiverId:L})).transaction_outcome.id}catch(O){throw new _.SwapKitError("toolbox_near_transfer_failed",{error:O})}}async function xf(T){let x=await Y();return c({account:x,changeMethods:T.changeMethods,contractId:T.contractId,viewMethods:T.viewMethods})}async function Ef(T){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");if(T.actions.length===0)throw new _.SwapKitError("toolbox_near_empty_batch");return(await(await Y()).signAndSendTransaction({actions:T.actions,receiverId:T.receiverId})).transaction.hash}async function j(T,x){let O=await $.match(T).when(o,()=>q.SIMPLE_TRANSFER).when(l,(R)=>r(R.methodName)).when(p,(R)=>i(R.actions)).when(n,()=>q.ACCOUNT_CREATION).when(t,()=>q.CONTRACT_DEPLOYMENT).when(d,(R)=>{if(!x)throw new _.SwapKitError("toolbox_near_no_account");return R.customEstimator(x)}).otherwise(()=>{throw new _.SwapKitError("toolbox_near_invalid_gas_params")}),L=BigInt(O)*BigInt(1000000000000);return _.AssetValue.from({chain:_.Chain.Near,value:L})}function $f(T,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),j(T,x)}async function Jf(){let T=await C();try{return(await T.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function zf(){let T=await E();return T?(await T.getPublicKey()).toString():""}return{broadcastTransaction:Tf,callFunction:Zf,createAction:g,createContract:xf,createContractFunctionCall:v,createSubAccount:Xf,createTransaction:k,estimateGas:$f,estimateGasLimit:j,estimateTransactionFee:Qf,executeBatchTransaction:Ef,getAddress:M,getBalance:Mf(_.Chain.Near),getGasPrice:Jf,getNearProvider:C,getPublicKey:zf,getSignerFromPhrase:S,getSignerFromPrivateKey:K,serializeTransaction:u,signAndBroadcastTransaction:Nf,signTransaction:ff,transfer:J,validateAddress:m}}var Gf,_,$;var a=Z(()=>{Uf();h();s();Gf=require("@near-js/providers"),_=require("@swapkit/helpers"),$=require("ts-pattern")});var If=Z(()=>{a()});var gf={};Vf(gf,{validateNearAddress:()=>m,tgasToGas:()=>Sf,isSimpleTransfer:()=>o,isCustomEstimator:()=>d,isContractDeployment:()=>t,isContractCall:()=>l,isBatchTransaction:()=>p,isAccountCreation:()=>n,getNearToolbox:()=>vf,getNearSignerFromPrivateKey:()=>K,getNearSignerFromPhrase:()=>S,getFullAccessPublicKey:()=>P,getContractMethodGas:()=>r,gasToTGas:()=>Pf,estimateBatchGas:()=>i,createNearContract:()=>c,GAS_COSTS:()=>q});module.exports=yf(gf);var Kf=Z(()=>{h();s();a();If()});Kf();
@@ -1,4 +1 @@
1
- var St=Object.create;var{getPrototypeOf:yt,defineProperty:M,getOwnPropertyNames:Bt}=Object;var Ft=Object.prototype.hasOwnProperty;var g=(t,r,i)=>{i=t!=null?St(yt(t)):{};let N=r||!t||!t.__esModule?M(i,"default",{value:t,enumerable:!0}):i;for(let e of Bt(t))if(!Ft.call(N,e))M(N,e,{get:()=>t[e],enumerable:!0});return N};var bt=(t,r)=>{for(var i in r)M(t,i,{get:r[i],enumerable:!0,configurable:!0,set:(N)=>r[i]=()=>N})};var G=(t,r)=>()=>(t&&(r=t(t=0)),r);var P=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(r,i)=>(typeof require<"u"?require:r)[i]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{KeyPairSigner as It}from"@near-js/signers";import{derivationPathToString as Ut,SwapKitError as Yt}from"@swapkit/helpers";async function B(){let{validateAccountId:t}=await import("near-sdk-js");return(r)=>{try{return t(r)}catch{let i=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&i.test(r)}}}async function F(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:i}=await import("@near-js/crypto"),N=t.index||0,e=t.derivationPath?Ut(t.derivationPath.slice(0,3)):`m/44'/397'/${N}'`,{secretKey:R}=r(t.phrase,e),s=i.fromString(R);return mt(s)}async function Q(t){let{KeyPair:r}=await import("@near-js/crypto"),i=r.fromString(t);return mt(i)}function mt(t){return new et(t)}async function b(t,r){let N=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((_)=>_.access_key.permission==="FullAccess");if(!N)throw new Yt("toolbox_near_no_public_key_found");let{PublicKey:e}=await import("@near-js/crypto"),R=e.fromString(N.public_key);return{nonce:N.access_key.nonce||0,publicKey:R}}var et;var W=G(()=>{et=class et extends It{#t;constructor(t){super(t);this.#t=t}getAddress(){let t=this.#t.getPublicKey(),r=Buffer.from(t.data).toString("hex");return Promise.resolve(r)}}});function Z(t){return"recipient"in t&&"amount"in t&&!("contractId"in t)}function $(t){return"contractId"in t&&"methodName"in t}function p(t){return"actions"in t}function z(t){return"newAccountId"in t}function X(t){return"contractCode"in t}function H(t){return"customEstimator"in t}function a(t){let r=0;for(let i of t)switch(i.enum){case"transfer":r+=Number(C.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(C.CONTRACT_CALL);break;case"createAccount":r+=Number(C.ACCOUNT_CREATION);break;case"deployContract":r+=Number(C.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(C.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(C.ACCESS_KEY_DELETION);break;case"stake":r+=Number(C.STAKE);break;default:r+=Number(C.CONTRACT_CALL)}return r.toString()}function k(t){if(t==="ft_transfer"||t==="ft_transfer_call")return C.TOKEN_TRANSFER;if(t==="storage_deposit")return C.STORAGE_DEPOSIT;return C.CONTRACT_CALL}function qt(t){return(BigInt(t)*BigInt(1000000000000)).toString()}function Jt(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var C;var w=G(()=>{C={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function V({account:t,contractId:r,viewMethods:i,changeMethods:N}){let{Contract:e}=await import("@near-js/accounts");return new e(t,r,{changeMethods:N,useLocalViewExecution:!0,viewMethods:i})}import{AssetValue as Tt,getChainConfig as Mt}from"@swapkit/helpers";import{SwapKitApi as Qt}from"@swapkit/helpers/api";function ht(){function t(){let r=Date.now(),i=j||r;return j=i,r>j?r:i+1}return Wt+t().toString(36)}function Nt(t){return async function(i,N=!0){let e=await Qt.getChainBalance({address:i,chain:t,scamFilter:N}),{baseDecimal:R}=Mt(t),s=e.map(({identifier:u,value:I,decimal:U})=>{return new Tt({decimal:U||R,identifier:u,value:I})});if(!s.some((u)=>u.isGasAsset))return[Tt.from({chain:t}),...s];return s}}var Wt,j=0;var ft=G(()=>{Wt=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{AssetValue as gt,Chain as D,getChainConfig as Pt,getRPCUrl as Zt,SwapKitError as A}from"@swapkit/helpers";async function $t(t){let{P:r,match:i}=await import("ts-pattern"),{JsonRpcProvider:N}=await import("@near-js/providers"),e=await i(t).with({phrase:r.string},async(n)=>{return await F(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),R=await Zt(D.Near),s=new N({url:R});async function _(n){let{Account:o}=await import("@near-js/accounts"),m=n||await u();return new o(m,s,e)}async function u(){if(!e)throw new A("toolbox_near_no_signer");return await e.getAddress()}async function I(n){return(await d({changeMethods:[],contractId:n.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:n.accountId})}async function U(n){let m=[await q({args:{account_id:n.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await q({args:{amount:n.assetValue.getBaseValue("string"),memo:n.memo||null,receiver_id:n.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return tt({actions:m,receiverId:n.contractId})}async function xt(n){if(!e)throw new A("toolbox_near_no_signer");let{assetValue:o,recipient:m,memo:x}=n,E=await u();if(!o.isGasAsset&&o.address){if(!await I({accountId:m,contractId:o.address}))return U({assetValue:o,contractId:o.address,memo:x,recipient:m})}let T=await h({...n,sender:E});return c(T)}async function h(n){let{recipient:o,assetValue:m,memo:x,attachedDeposit:E,sender:T,functionCall:f}=n,O=await B();if(!O(o))throw new A("toolbox_near_invalid_address",{recipient:o});if(!O(T))throw new A("toolbox_near_invalid_address",{signerId:T});if(f)return Y({...f,sender:T});if(!m.isGasAsset){let it=m.address;if(!it)throw new A("toolbox_near_missing_contract_address");return Y({args:{amount:m.getBaseValue("string"),memo:x||null,receiver_id:o},attachedDeposit:E||"1",contractId:it,gas:"250000000000000",methodName:"ft_transfer",sender:T})}let{publicKey:S,nonce:y}=await b(s,T),nt=m.getBaseValue("bigint"),{actionCreators:rt,createTransaction:ut}=await import("@near-js/transactions"),{baseDecode:Lt}=await import("@near-js/utils"),ot=[rt.transfer(nt)];if(x&&E)ot.push(rt.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(E)));let Gt=await s.block({finality:"final"}),Dt=Lt(Gt.header.hash);return ut(T,S,o,y+1,ot,Dt)}function Ct(n){let o=n.encode();return Buffer.from(o).toString("base64")}async function Y(n){let{sender:o}=n,{publicKey:m,nonce:x}=await b(s,o),{createTransaction:E,actionCreators:T}=await import("@near-js/transactions"),{baseDecode:f}=await import("@near-js/utils"),O=await s.block({finality:"final"}),S=f(O.header.hash),y=[T.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return E(o,m,n.contractId,x+1,y,S)}async function q(n){let{actionCreators:o}=await import("@near-js/transactions");return o.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function l(n){if(!e)throw new A("toolbox_near_no_signer");let[o,m]=await e.signTransaction(n);return m}async function K(n){return(await s.sendTransaction(n)).transaction.hash}async function c(n){if(!e)throw new A("toolbox_near_no_signer");try{let o=await l(n);return await K(o)}catch{return e.signAndSendTransactions?.({transactions:[n]})}}async function Et(n){if("assetValue"in n){let E=BigInt("115123062500")+BigInt("108059500000"),T=await At(),f=E*BigInt(T.toString()),{baseDecimal:O}=Pt(D.Near);return gt.from({chain:D.Near,fromBaseDecimal:O,value:f.toString()})}let o=e?await _():void 0;return J(n,o)}async function At(){try{return await s.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Ot(n,o,m){if(!e)throw new A("toolbox_near_no_signer");let x=await _(),{formatNearAmount:E}=await import("@near-js/utils"),{PublicKey:T}=await import("@near-js/crypto"),f=E(m)||"0";return(await x.createAccount(n,T.fromString(o),BigInt(f))).transaction.hash}async function _t(n){try{if(!e)throw new A("toolbox_near_no_signer");let{actionCreators:o}=await import("@near-js/transactions"),{contractId:m,methodName:x,args:E,deposit:T}=n,f=await _(),O=await J({args:E||{},contractId:m,methodName:x}),S=o.functionCall(x,E||{},O.getBaseValue("bigint"),BigInt(T||"1"));return(await f.signAndSendTransaction({actions:[S],receiverId:m})).transaction_outcome.id}catch(o){throw new A("toolbox_near_transfer_failed",{error:o})}}async function d(n){let o=await _();return V({account:o,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function tt(n){if(!e)throw new A("toolbox_near_no_signer");if(n.actions.length===0)throw new A("toolbox_near_empty_batch");return(await(await _()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function J(n,o){let{baseDecimal:m}=Pt(D.Near),x=await i(n).when(Z,()=>C.SIMPLE_TRANSFER).when($,(f)=>k(f.methodName)).when(p,(f)=>a(f.actions)).when(z,()=>C.ACCOUNT_CREATION).when(X,()=>C.CONTRACT_DEPLOYMENT).when(H,(f)=>{if(!o)throw new A("toolbox_near_no_account");return f.customEstimator(o)}).otherwise(()=>{throw new A("toolbox_near_invalid_gas_params")}),T=BigInt(x)*BigInt(1000000000000);return gt.from({chain:D.Near,fromBaseDecimal:m,value:T})}async function Rt(){try{return(await s.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:K,callFunction:_t,createAction:q,createContract:d,createContractFunctionCall:Y,createSubAccount:Ot,createTransaction:h,estimateGas:J,estimateTransactionFee:Et,executeBatchTransaction:tt,getAddress:u,getBalance:Nt(D.Near),getGasPrice:Rt,getPublicKey:async()=>e?(await e.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>F(n),getSignerFromPrivateKey:Q,provider:s,serializeTransaction:Ct,signAndSendTransaction:c,signTransaction:l,transfer:xt,validateAddress:await B()}}var v=G(()=>{ft();W();w()});var st=G(()=>{v()});var pt={};bt(pt,{tgasToGas:()=>qt,isSimpleTransfer:()=>Z,isCustomEstimator:()=>H,isContractDeployment:()=>X,isContractCall:()=>$,isBatchTransaction:()=>p,isAccountCreation:()=>z,getValidateNearAddress:()=>B,getNearToolbox:()=>$t,getNearSignerFromPrivateKey:()=>Q,getNearSignerFromPhrase:()=>F,getFullAccessPublicKey:()=>b,getContractMethodGas:()=>k,gasToTGas:()=>Jt,estimateBatchGas:()=>a,createNearContract:()=>V,GAS_COSTS:()=>C});var zt=G(()=>{W();w();v();st()});zt();export{qt as tgasToGas,Z as isSimpleTransfer,H as isCustomEstimator,X as isContractDeployment,$ as isContractCall,p as isBatchTransaction,z as isAccountCreation,B as getValidateNearAddress,$t as getNearToolbox,Q as getNearSignerFromPrivateKey,F as getNearSignerFromPhrase,b as getFullAccessPublicKey,k as getContractMethodGas,Jt as gasToTGas,a as estimateBatchGas,V as createNearContract,C as GAS_COSTS};
2
-
3
- //# debugId=756293321DF82D5C64756E2164756E21
4
- //# sourceMappingURL=index.js.map
1
+ var Zf=Object.defineProperty;var $f=(f)=>f;function Jf(f,N){this[f]=$f.bind(null,N)}var zf=(f,N)=>{for(var O in N)Zf(f,O,{get:N[O],enumerable:!0,configurable:!0,set:Jf.bind(N,O)})};var Z=(f,N)=>()=>(f&&(N=f(f=0)),N);var A=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(N,O)=>(typeof require<"u"?require:N)[O]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});import{KeyPairSigner as Hf}from"@near-js/signers";import{derivationPathToString as bf,SwapKitError as Ff}from"@swapkit/helpers";function w(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function j(f){let{parseSeedPhrase:N}=await import("near-seed-phrase"),{KeyPair:O}=await import("@near-js/crypto"),C=f.index||0,B=f.derivationPath?bf(f.derivationPath.slice(0,3)):`m/44'/397'/${C}'`,{secretKey:G}=N(f.phrase,B),I=O.fromString(G);return Rf(I)}async function v(f){let{KeyPair:N}=await import("@near-js/crypto"),O=N.fromString(f);return Rf(O)}function Rf(f){return new _f(f)}async function V(f,N){let C=(await f.query({account_id:N,finality:"final",request_type:"view_access_key_list"})).keys.find((m)=>m.access_key.permission==="FullAccess");if(!C)throw new Ff("toolbox_near_no_public_key_found");let{PublicKey:B}=await import("@near-js/crypto"),G=B.fromString(C.public_key);return{nonce:C.access_key.nonce||0,publicKey:G}}var _f;var g=Z(()=>{_f=class _f extends Hf{#f;constructor(f){super(f);this.#f=f}getAddress(){let f=this.#f.getPublicKey(),N=Buffer.from(f.data).toString("hex");return Promise.resolve(N)}}});function K(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function h(f){return"contractId"in f&&"methodName"in f}function o(f){return"actions"in f}function l(f){return"newAccountId"in f}function p(f){return"contractCode"in f}function n(f){return"customEstimator"in f}function t(f){let N=0;for(let O of f)switch(O.enum){case"transfer":N+=Number(Y.SIMPLE_TRANSFER);break;case"functionCall":N+=Number(Y.CONTRACT_CALL);break;case"createAccount":N+=Number(Y.ACCOUNT_CREATION);break;case"deployContract":N+=Number(Y.CONTRACT_DEPLOYMENT);break;case"addKey":N+=Number(Y.ACCESS_KEY_ADDITION);break;case"deleteKey":N+=Number(Y.ACCESS_KEY_DELETION);break;case"stake":N+=Number(Y.STAKE);break;default:N+=Number(Y.CONTRACT_CALL)}return N.toString()}function d(f){if(f==="ft_transfer"||f==="ft_transfer_call")return Y.TOKEN_TRANSFER;if(f==="storage_deposit")return Y.STORAGE_DEPOSIT;return Y.CONTRACT_CALL}function wf(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function mf(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var Y;var i=Z(()=>{Y={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function r({account:f,contractId:N,viewMethods:O,changeMethods:C}){let{Contract:B}=await import("@near-js/accounts");return new B(f,N,{changeMethods:C,useLocalViewExecution:!0,viewMethods:O})}import{AssetValue as Cf,getChainConfig as yf}from"@swapkit/helpers";import{SwapKitApi as kf}from"@swapkit/helpers/api";function tf(){function f(){let N=Date.now(),O=s||N;return s=O,N>s?N:O+1}return jf+f().toString(36)}function Lf(f){return async function(O,C=!0){let B=await kf.getChainBalance({address:O,chain:f,scamFilter:C}),{baseDecimal:G}=yf(f),I=B.map(({identifier:J,value:y,decimal:S})=>{return new Cf({decimal:S||G,identifier:J,value:y})});if(!I.some((J)=>J.isGasAsset))return[Cf.from({chain:f}),...I];return I}}var jf,s=0;var Df=Z(()=>{jf=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{JsonRpcProvider as Vf}from"@near-js/providers";import{AssetValue as c,Chain as $,getRPCUrl as Yf,SwapKitError as q}from"@swapkit/helpers";import{match as Af,P as qf}from"ts-pattern";function Sf(f){let N;async function O(){if(N)return N;return N=await Af(f).with({phrase:qf.string},async(T)=>{return await j(T)}).with({signer:qf.any},({signer:T})=>T).otherwise(()=>{return}),N}async function C(){let T=await Yf($.Near);return new Vf({url:T})}async function B(T){let{Account:x}=await import("@near-js/accounts"),E=await C(),R=await O(),_=T||await G();return new x(_,E,R)}async function G(){let T=await O();if(!T)throw new q("toolbox_near_no_signer");return await T.getAddress()}async function I(T){return(await Nf({changeMethods:[],contractId:T.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:T.accountId})}async function m(T){let E=[await u({args:{account_id:T.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await u({args:{amount:T.assetValue.getBaseValue("string"),memo:T.memo||null,receiver_id:T.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return xf({actions:E,receiverId:T.contractId})}async function J(T){if(!await O())throw new q("toolbox_near_no_signer");let{assetValue:E,recipient:R,memo:_}=T,L=await G();if(!E.isGasAsset&&E.address){if(!await I({accountId:R,contractId:E.address}))return m({assetValue:E,contractId:E.address,memo:_,recipient:R})}let D=await y({...T,sender:L});return Tf(D)}async function y({recipient:T,assetValue:x,memo:E,attachedDeposit:R,sender:_,functionCall:L}){let D=await C();if(!w(T))throw new q("toolbox_near_invalid_address",{recipient:T});if(!w(_))throw new q("toolbox_near_invalid_address",{sender:_});if(L)return P({...L,sender:_});if(!x.isGasAsset){let Of=x.address;if(!Of)throw new q("toolbox_near_missing_contract_address");return P({args:{amount:x.getBaseValue("string"),memo:E||null,receiver_id:T},attachedDeposit:R||"1",contractId:Of,gas:"250000000000000",methodName:"ft_transfer",sender:_})}let{publicKey:M,nonce:U}=await V(D,_),Q=x.getBaseValue("bigint"),{actionCreators:W,createTransaction:z}=await import("@near-js/transactions"),{baseDecode:H}=await import("@near-js/utils"),b=[W.transfer(Q)];if(E&&R)b.push(W.functionCall("memo",{memo:E},BigInt("250000000000000"),BigInt(R)));let F=await D.block({finality:"final"}),Ef=H(F.header.hash);return z(_,M,T,U+1,b,Ef)}function S(T){let x=T.encode();return Buffer.from(x).toString("base64")}async function P({args:T,attachedDeposit:x,contractId:E,gas:R,methodName:_,sender:L}){let D=await C(),{publicKey:M,nonce:U}=await V(D,L),{createTransaction:Q,actionCreators:W}=await import("@near-js/transactions"),{baseDecode:z}=await import("@near-js/utils"),H=await D.block({finality:"final"}),b=z(H.header.hash),F=[W.functionCall(_,Buffer.from(JSON.stringify(T)),BigInt(R),BigInt(x))];return Q(L,M,E,U+1,F,b)}async function u(T){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(T.methodName,Buffer.from(JSON.stringify(T.args)),BigInt(T.gas),BigInt(T.attachedDeposit))}async function a(T){let x=await O();if(!x)throw new q("toolbox_near_no_signer");let[E,R]=await x.signTransaction(T);return R}async function ff(T){return(await(await C()).sendTransaction(T)).transaction.hash}async function Tf(T){let x=await O();if(!x)throw new q("toolbox_near_no_signer");try{let E=await a(T);return await ff(E)}catch{return x.signAndSendTransactions?.({transactions:[T]})}}async function Mf(T){let x=await O();if("assetValue"in T){let R=await Uf();try{let _=await Yf($.Near),L=await fetch(_,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:D}}=await L.json(),{execution:M,send_sir:U}=D.transaction_costs.action_receipt_creation_config,{execution:Q,send_sir:W}=D.transaction_costs.action_creation_config.transfer_cost,z=BigInt(W)+BigInt(Q),H=BigInt(U)+BigInt(M),F=(z+H)*BigInt(R.toString());return c.from({chain:$.Near,value:F})}catch(_){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",_);let L=BigInt("115123062500"),D=BigInt("108059500000"),U=(L+D)*BigInt(R.toString());return c.from({chain:$.Near,value:U})}}let E=x?await B():void 0;return k(T,E)}async function Uf(){let T=await C();try{return await T.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Gf(T,x,E){if(!await O())throw new q("toolbox_near_no_signer");let _=await B(),{formatNearAmount:L}=await import("@near-js/utils"),{PublicKey:D}=await import("@near-js/crypto"),M=L(E)||"0";return(await _.createAccount(T,D.fromString(x),BigInt(M))).transaction.hash}async function If(T){let x=await O();try{if(!x)throw new q("toolbox_near_no_signer");let{actionCreators:E}=await import("@near-js/transactions"),{contractId:R,methodName:_,args:L,deposit:D}=T,M=await B(),U=await k({args:L||{},contractId:R,methodName:_}),Q=E.functionCall(_,L||{},U.getBaseValue("bigint"),BigInt(D||"1"));return(await M.signAndSendTransaction({actions:[Q],receiverId:R})).transaction_outcome.id}catch(E){throw new q("toolbox_near_transfer_failed",{error:E})}}async function Nf(T){let x=await B();return r({account:x,changeMethods:T.changeMethods,contractId:T.contractId,viewMethods:T.viewMethods})}async function xf(T){if(!await O())throw new q("toolbox_near_no_signer");if(T.actions.length===0)throw new q("toolbox_near_empty_batch");return(await(await B()).signAndSendTransaction({actions:T.actions,receiverId:T.receiverId})).transaction.hash}async function k(T,x){let E=await Af(T).when(K,()=>Y.SIMPLE_TRANSFER).when(h,(_)=>d(_.methodName)).when(o,(_)=>t(_.actions)).when(l,()=>Y.ACCOUNT_CREATION).when(p,()=>Y.CONTRACT_DEPLOYMENT).when(n,(_)=>{if(!x)throw new q("toolbox_near_no_account");return _.customEstimator(x)}).otherwise(()=>{throw new q("toolbox_near_invalid_gas_params")}),R=BigInt(E)*BigInt(1000000000000);return c.from({chain:$.Near,value:R})}function Qf(T,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),k(T,x)}async function Wf(){let T=await C();try{return(await T.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function Xf(){let T=await O();return T?(await T.getPublicKey()).toString():""}return{broadcastTransaction:ff,callFunction:If,createAction:u,createContract:Nf,createContractFunctionCall:P,createSubAccount:Gf,createTransaction:y,estimateGas:Qf,estimateGasLimit:k,estimateTransactionFee:Mf,executeBatchTransaction:xf,getAddress:G,getBalance:Lf($.Near),getGasPrice:Wf,getNearProvider:C,getPublicKey:Xf,getSignerFromPhrase:j,getSignerFromPrivateKey:v,serializeTransaction:S,signAndBroadcastTransaction:Tf,signTransaction:a,transfer:J,validateAddress:w}}var e=Z(()=>{Df();g();i()});var Bf=Z(()=>{e()});var Pf={};zf(Pf,{validateNearAddress:()=>w,tgasToGas:()=>wf,isSimpleTransfer:()=>K,isCustomEstimator:()=>n,isContractDeployment:()=>p,isContractCall:()=>h,isBatchTransaction:()=>o,isAccountCreation:()=>l,getNearToolbox:()=>Sf,getNearSignerFromPrivateKey:()=>v,getNearSignerFromPhrase:()=>j,getFullAccessPublicKey:()=>V,getContractMethodGas:()=>d,gasToTGas:()=>mf,estimateBatchGas:()=>t,createNearContract:()=>r,GAS_COSTS:()=>Y});var uf=Z(()=>{g();i();e();Bf()});uf();export{w as validateNearAddress,wf as tgasToGas,K as isSimpleTransfer,n as isCustomEstimator,p as isContractDeployment,h as isContractCall,o as isBatchTransaction,l as isAccountCreation,Sf as getNearToolbox,v as getNearSignerFromPrivateKey,j as getNearSignerFromPhrase,V as getFullAccessPublicKey,d as getContractMethodGas,mf as gasToTGas,t as estimateBatchGas,r as createNearContract,Y as GAS_COSTS};
@@ -1,4 +1 @@
1
- var v=Object.create;var{getPrototypeOf:x,defineProperty:V,getOwnPropertyNames:Z,getOwnPropertyDescriptor:B}=Object,_=Object.prototype.hasOwnProperty;var $=(j,z,H)=>{H=j!=null?v(x(j)):{};let J=z||!j||!j.__esModule?V(H,"default",{value:j,enumerable:!0}):H;for(let K of Z(j))if(!_.call(J,K))V(J,K,{get:()=>j[K],enumerable:!0});return J},Y=new WeakMap,I=(j)=>{var z=Y.get(j),H;if(z)return z;if(z=V({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function")Z(j).map((J)=>!_.call(z,J)&&V(z,J,{get:()=>j[J],enumerable:!(H=B(j,J))||H.enumerable}));return Y.set(j,z),z};var S=(j,z)=>{for(var H in z)V(j,H,{get:z[H],enumerable:!0,configurable:!0,set:(J)=>z[H]=()=>J})};var T=(j,z)=>()=>(j&&(z=j(j=0)),z);var P={};S(P,{radixValidateAddress:()=>q,RadixToolbox:()=>F});module.exports=I(P);function q(j){return j.startsWith("account_rdx1")&&j.length===66}function C({networkApi:j}){return async function(H){let J=await D({address:H,networkApi:j}),K=await h({networkApi:j,resources:J});if(!K.some((O)=>O.isGasAsset))return[N.AssetValue.from({chain:N.Chain.Radix}),...K];return K}}async function D({address:j,networkApi:z}){let H=!0,J,K=[],L=await E(z);while(H){let O={address:j,at_ledger_state:{state_version:L},cursor:J,limit_per_page:100},Q=await z.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:O});if(K=K.concat(Q.items),Q.next_cursor)J=Q.next_cursor;else H=!1}return K}async function h({resources:j,networkApi:z}){let H=[],J=50,K=[];for(let L=0;L<j.length;L+=50)K.push(j.slice(L,L+50));for(let L of K){let O=L.map((M)=>M.resource_address),Q=await z.state.getEntityDetailsVaultAggregated(O),X=new Map;for(let M of Q)if(M.details!==void 0){let U=M.metadata?.items.find((G)=>G.key==="symbol"),W=U?.value.typed.type==="String"?U.value.typed.value:"?";if(M.details.type==="FungibleResource")X.set(M.address,{decimals:M.details.divisibility,symbol:W})}for(let M of L)if(M.aggregation_level==="Global"){let U=X.get(M.resource_address)||{decimals:0,symbol:"?"},W=N.AssetValue.from({asset:U.symbol!==N.Chain.Radix?`${N.Chain.Radix}.${U.symbol}-${M.resource_address}`:"XRD.XRD",value:M.amount});H.push(W)}}return H}function E(j){return j.status.getCurrent().then((z)=>z.ledger_state.state_version)}var N,F=async({dappConfig:j}={})=>{let{RadixDappToolkit:z}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:H}=await import("@radixdlt/babylon-gateway-api-sdk"),J=j||N.SKConfig.get("integrations").radix,K=z({...J,networkId:J.network?.networkId||1}),L=H.initialize(K.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:C({networkApi:L}),networkApi:L,signAndBroadcast:()=>{throw new N.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:q}};var R=T(()=>{N=require("@swapkit/helpers")});R();
2
-
3
- //# debugId=46834168C344FE9964756E2164756E21
4
- //# sourceMappingURL=index.cjs.map
1
+ var v=Object.create;var{getPrototypeOf:B,defineProperty:U,getOwnPropertyNames:Y,getOwnPropertyDescriptor:C}=Object,Z=Object.prototype.hasOwnProperty;function _(j){return this[j]}var D,I,g=(j,z,G)=>{var H=j!=null&&typeof j==="object";if(H){var J=z?D??=new WeakMap:I??=new WeakMap,K=J.get(j);if(K)return K}G=j!=null?v(B(j)):{};let N=z||!j||!j.__esModule?U(G,"default",{value:j,enumerable:!0}):G;for(let O of Y(j))if(!Z.call(N,O))U(N,O,{get:_.bind(j,O),enumerable:!0});if(H)J.set(j,N);return N},S=(j)=>{var z=(X??=new WeakMap).get(j),G;if(z)return z;if(z=U({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function"){for(var H of Y(j))if(!Z.call(z,H))U(z,H,{get:_.bind(j,H),enumerable:!(G=C(j,H))||G.enumerable})}return X.set(j,z),z},X;var h=(j)=>j;function E(j,z){this[j]=h.bind(null,z)}var F=(j,z)=>{for(var G in z)U(j,G,{get:z[G],enumerable:!0,configurable:!0,set:E.bind(z,G)})};var P=(j,z)=>()=>(j&&(z=j(j=0)),z);var k={};F(k,{validateRadixAddress:()=>x,getRadixToolbox:()=>d});module.exports=S(k);function x(j){return j.startsWith("account_rdx1")&&j.length===66}function R({networkApi:j}){return async function(G){let H=await f({address:G,networkApi:j}),J=await w({networkApi:j,resources:H});if(!J.some((N)=>N.isGasAsset))return[M.AssetValue.from({chain:M.Chain.Radix}),...J];return J}}async function f({address:j,networkApi:z}){let G=!0,H,J=[],K=await A(z);while(G){let N={address:j,at_ledger_state:{state_version:K},cursor:H,limit_per_page:100},O=await z.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:N});if(J=J.concat(O.items),O.next_cursor)H=O.next_cursor;else G=!1}return J}async function w({resources:j,networkApi:z}){let G=[],H=50,J=[];for(let K=0;K<j.length;K+=50)J.push(j.slice(K,K+50));for(let K of J){let N=K.map((L)=>L.resource_address),O=await z.state.getEntityDetailsVaultAggregated(N),W=new Map;for(let L of O)if(L.details!==void 0){let Q=L.metadata?.items.find((T)=>T.key==="symbol"),V=Q?.value.typed.type==="String"?Q.value.typed.value:"?";if(L.details.type==="FungibleResource")W.set(L.address,{decimals:L.details.divisibility,symbol:V})}for(let L of K)if(L.aggregation_level==="Global"){let Q=W.get(L.resource_address)||{decimals:0,symbol:"?"},V=M.AssetValue.from({asset:Q.symbol!==M.Chain.Radix?`${M.Chain.Radix}.${Q.symbol}-${L.resource_address}`:"XRD.XRD",value:L.amount});G.push(V)}}return G}async function A(j){return(await j.status.getCurrent()).ledger_state.state_version}function d({dappConfig:j}={}){let z=j||M.SKConfig.get("integrations").radix,G=q.RadixDappToolkit({...z,networkId:z.network?.networkId||1}),H=$.GatewayApiClient.initialize(G.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:R({networkApi:H}),networkApi:H,signAndBroadcast:()=>{throw new M.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:x}}var $,q,M;var y=P(()=>{$=require("@radixdlt/babylon-gateway-api-sdk"),q=require("@radixdlt/radix-dapp-toolkit"),M=require("@swapkit/helpers")});y();
@@ -1,4 +1 @@
1
- var G=Object.create;var{getPrototypeOf:v,defineProperty:V,getOwnPropertyNames:x}=Object;var B=Object.prototype.hasOwnProperty;var Y=(j,z,H)=>{H=j!=null?G(v(j)):{};let K=z||!j||!j.__esModule?V(H,"default",{value:j,enumerable:!0}):H;for(let J of x(j))if(!B.call(K,J))V(K,J,{get:()=>j[J],enumerable:!0});return K};var I=(j,z)=>{for(var H in z)V(j,H,{get:z[H],enumerable:!0,configurable:!0,set:(K)=>z[H]=()=>K})};var S=(j,z)=>()=>(j&&(z=j(j=0)),z);var Z=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(z,H)=>(typeof require<"u"?require:z)[H]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});var R={};I(R,{radixValidateAddress:()=>$,RadixToolbox:()=>P});import{AssetValue as _,Chain as W,SKConfig as T,SwapKitError as C}from"@swapkit/helpers";function $(j){return j.startsWith("account_rdx1")&&j.length===66}function D({networkApi:j}){return async function(H){let K=await h({address:H,networkApi:j}),J=await E({networkApi:j,resources:K});if(!J.some((N)=>N.isGasAsset))return[_.from({chain:W.Radix}),...J];return J}}async function h({address:j,networkApi:z}){let H=!0,K,J=[],L=await F(z);while(H){let N={address:j,at_ledger_state:{state_version:L},cursor:K,limit_per_page:100},O=await z.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:N});if(J=J.concat(O.items),O.next_cursor)K=O.next_cursor;else H=!1}return J}async function E({resources:j,networkApi:z}){let H=[],K=50,J=[];for(let L=0;L<j.length;L+=50)J.push(j.slice(L,L+50));for(let L of J){let N=L.map((M)=>M.resource_address),O=await z.state.getEntityDetailsVaultAggregated(N),X=new Map;for(let M of O)if(M.details!==void 0){let Q=M.metadata?.items.find((q)=>q.key==="symbol"),U=Q?.value.typed.type==="String"?Q.value.typed.value:"?";if(M.details.type==="FungibleResource")X.set(M.address,{decimals:M.details.divisibility,symbol:U})}for(let M of L)if(M.aggregation_level==="Global"){let Q=X.get(M.resource_address)||{decimals:0,symbol:"?"},U=_.from({asset:Q.symbol!==W.Radix?`${W.Radix}.${Q.symbol}-${M.resource_address}`:"XRD.XRD",value:M.amount});H.push(U)}}return H}function F(j){return j.status.getCurrent().then((z)=>z.ledger_state.state_version)}var P=async({dappConfig:j}={})=>{let{RadixDappToolkit:z}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:H}=await import("@radixdlt/babylon-gateway-api-sdk"),K=j||T.get("integrations").radix,J=z({...K,networkId:K.network?.networkId||1}),L=H.initialize(J.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:D({networkApi:L}),networkApi:L,signAndBroadcast:()=>{throw new C("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:$}};var f=()=>{};f();export{$ as radixValidateAddress,P as RadixToolbox};
2
-
3
- //# debugId=0D9935E0ECD5128364756E2164756E21
4
- //# sourceMappingURL=index.js.map
1
+ var Z=Object.defineProperty;var _=(j)=>j;function $(j,z){this[j]=_.bind(null,z)}var q=(j,z)=>{for(var G in z)Z(j,G,{get:z[G],enumerable:!0,configurable:!0,set:$.bind(z,G)})};var x=(j,z)=>()=>(j&&(z=j(j=0)),z);var R=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(z,G)=>(typeof require<"u"?require:z)[G]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});var F={};q(F,{validateRadixAddress:()=>X,getRadixToolbox:()=>E});import{GatewayApiClient as T}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as v}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as W,Chain as U,SKConfig as B,SwapKitError as C}from"@swapkit/helpers";function X(j){return j.startsWith("account_rdx1")&&j.length===66}function D({networkApi:j}){return async function(G){let L=await I({address:G,networkApi:j}),J=await S({networkApi:j,resources:L});if(!J.some((M)=>M.isGasAsset))return[W.from({chain:U.Radix}),...J];return J}}async function I({address:j,networkApi:z}){let G=!0,L,J=[],K=await h(z);while(G){let M={address:j,at_ledger_state:{state_version:K},cursor:L,limit_per_page:100},N=await z.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:M});if(J=J.concat(N.items),N.next_cursor)L=N.next_cursor;else G=!1}return J}async function S({resources:j,networkApi:z}){let G=[],L=50,J=[];for(let K=0;K<j.length;K+=50)J.push(j.slice(K,K+50));for(let K of J){let M=K.map((H)=>H.resource_address),N=await z.state.getEntityDetailsVaultAggregated(M),V=new Map;for(let H of N)if(H.details!==void 0){let O=H.metadata?.items.find((Y)=>Y.key==="symbol"),Q=O?.value.typed.type==="String"?O.value.typed.value:"?";if(H.details.type==="FungibleResource")V.set(H.address,{decimals:H.details.divisibility,symbol:Q})}for(let H of K)if(H.aggregation_level==="Global"){let O=V.get(H.resource_address)||{decimals:0,symbol:"?"},Q=W.from({asset:O.symbol!==U.Radix?`${U.Radix}.${O.symbol}-${H.resource_address}`:"XRD.XRD",value:H.amount});G.push(Q)}}return G}async function h(j){return(await j.status.getCurrent()).ledger_state.state_version}function E({dappConfig:j}={}){let z=j||B.get("integrations").radix,G=v({...z,networkId:z.network?.networkId||1}),L=T.initialize(G.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:D({networkApi:L}),networkApi:L,signAndBroadcast:()=>{throw new C("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:X}}var P=()=>{};P();export{X as validateRadixAddress,E as getRadixToolbox};
@@ -1,4 +1 @@
1
- var f=Object.create;var{getPrototypeOf:R,defineProperty:$,getOwnPropertyNames:W,getOwnPropertyDescriptor:D}=Object,H=Object.prototype.hasOwnProperty;var h=(j,y,G)=>{G=j!=null?f(R(j)):{};let z=y||!j||!j.__esModule?$(G,"default",{value:j,enumerable:!0}):G;for(let Y of W(j))if(!H.call(z,Y))$(z,Y,{get:()=>j[Y],enumerable:!0});return z},N=new WeakMap,b=(j)=>{var y=N.get(j),G;if(y)return y;if(y=$({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function")W(j).map((z)=>!H.call(y,z)&&$(y,z,{get:()=>j[z],enumerable:!(G=D(j,z))||G.enumerable}));return N.set(j,y),y};var K=(j,y)=>{for(var G in y)$(j,G,{get:y[G],enumerable:!0,configurable:!0,set:(z)=>y[G]=()=>z})};var A=(j,y)=>()=>(j&&(y=j(j=0)),y);var E={};K(E,{rippleValidateAddress:()=>v,hashes:()=>_.hashes,getRippleToolbox:()=>w});module.exports=b(E);function O(j){let y=X.Wallet.fromMnemonic(j);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(G)=>Promise.resolve(y.sign(G))}}function v(j){return X.isValidAddress(j)}var q,X,_,T,w=async(j={})=>{let y="signer"in j&&j.signer?j.signer:("phrase"in j)&&j.phrase?O(j.phrase):void 0,G=await q.getRPCUrl(q.Chain.Ripple);if(!G)throw new q.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:q.Chain.Ripple}});let z=new X.Client(G);await z.connect();let Y=()=>{if(!y)throw new q.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},P=async(J)=>{let Q=J||await Y(),{baseDecimal:M}=q.getChainConfig(q.Chain.Ripple);try{let k=(await z.request({account:Q,command:"account_info"})).result.account_data.Balance;return[q.AssetValue.from({chain:q.Chain.Ripple,fromBaseDecimal:M,value:k})]}catch(Z){if(Z.data.error_code===T.ACCOUNT_NOT_FOUND)return[q.AssetValue.from({chain:q.Chain.Ripple,value:0})];throw new q.SwapKitError("toolbox_ripple_get_balance_error",{info:{address:Q,error:Z}})}},U=async()=>{let Q=(await z.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:M}=q.getChainConfig(q.Chain.Ripple);return q.AssetValue.from({chain:q.Chain.Ripple,fromBaseDecimal:M,value:q.SwapKitNumber.fromBigInt(BigInt(Q),M)})},B=async({assetValue:J,recipient:Q,memo:M,sender:Z})=>{if(!v(Q))throw new q.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let k=Z||await Y();if(!J.isGasAsset||J.chain!==q.Chain.Ripple)throw new q.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:J.toString()}});let L={Account:k,Amount:X.xrpToDrops(J.getValue("string")),Destination:Q,TransactionType:"Payment"};if(M)L.Memos=[{Memo:{MemoData:Buffer.from(M).toString("hex")}}];return await z.autofill(L)},F=(J)=>{if(!y)throw new q.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(J)},I=async(J)=>{let M=(await z.submitAndWait(J)).result;if(M.validated)return M.hash;throw new q.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:q.Chain.Ripple}})};return{broadcastTransaction:I,createSigner:O,createTransaction:B,disconnect:()=>z.disconnect(),estimateTransactionFee:U,getAddress:Y,getBalance:P,signer:y,signTransaction:F,transfer:async(J)=>{if(!y)throw new q.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let Q=await y.getAddress(),M=await B({...J,sender:Q}),Z=await F(M);return I(Z.tx_blob)},validateAddress:v}};var S=A(()=>{q=require("@swapkit/helpers"),X=require("xrpl"),_=require("xrpl"),T={ACCOUNT_NOT_FOUND:19}});S();
2
-
3
- //# debugId=F858F59EA373234A64756E2164756E21
4
- //# sourceMappingURL=index.cjs.map
1
+ var e=Object.create;var{getPrototypeOf:mm,defineProperty:Q,getOwnPropertyNames:C,getOwnPropertyDescriptor:fm}=Object,p=Object.prototype.hasOwnProperty;function T(m){return this[m]}var vm,Um,Bm=(m,f,G)=>{var $=m!=null&&typeof m==="object";if($){var W=f?vm??=new WeakMap:Um??=new WeakMap,D=W.get(m);if(D)return D}G=m!=null?e(mm(m)):{};let Z=f||!m||!m.__esModule?Q(G,"default",{value:m,enumerable:!0}):G;for(let F of C(m))if(!p.call(Z,F))Q(Z,F,{get:T.bind(m,F),enumerable:!0});if($)W.set(m,Z);return Z},bm=(m)=>{var f=(g??=new WeakMap).get(m),G;if(f)return f;if(f=Q({},"__esModule",{value:!0}),m&&typeof m==="object"||typeof m==="function"){for(var $ of C(m))if(!p.call(f,$))Q(f,$,{get:T.bind(m,$),enumerable:!(G=fm(m,$))||G.enumerable})}return g.set(m,f),f},g;var Gm=(m)=>m;function km(m,f){this[m]=Gm.bind(null,f)}var Wm=(m,f)=>{for(var G in f)Q(m,G,{get:f[G],enumerable:!0,configurable:!0,set:km.bind(f,G)})};var A=(m,f)=>()=>(m&&(f=m(m=0)),f);function P(m){return/^[0-9A-Fa-f]{40}$/.test(m)}function _(m){if(P(m))return m.toUpperCase();if(m.length<=3){let G=Buffer.from(m.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${G}${"0".repeat(10)}`.toUpperCase()}let f=Buffer.from(m).toString("hex").toUpperCase();if(f.length>40)throw new u.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:m,reason:"Currency exceeds maximum length (20 bytes)"}});return f.padEnd(40,"0")}function zm(m){if(!P(m))return m;if(m.toUpperCase().startsWith("00")){let f=m.slice(24,30);try{let G=Buffer.from(f,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(G)&&G.length>0)return G}catch{}return m.toUpperCase()}try{let f=m.replace(/0+$/,""),G=f.length%2===0?f:`${f}0`,$=Buffer.from(G,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test($))return $}catch{}return m.toUpperCase()}function Y(m){if(P(m))return m.toUpperCase();if(m.length<=3)return m;return _(m)}var u;var H=A(()=>{u=require("@swapkit/helpers")});async function Mm(m,f){let G=Y(m),$=O.find((W)=>Y(W.currency)===G&&W.issuer===f);if($)return $;try{let W=await w.RequestClient.get(`https://api.xrplmeta.org/token/${m}:${f}`);if(W)return{currency:m,decimals:15,description:W.desc,domain:W.domain,icon:W.icon,issuer:f,name:W.name,verified:W.self_assessment?.is_regulated||W.self_assessment?.is_licensed}}catch(W){w.warnOnce({condition:!0,id:`xrpl_token_lookup_${m}_${f}`,warning:`Failed to fetch XRPL token info for ${m}:${f}: ${W}`})}return{currency:m,decimals:15,issuer:f,verified:!1}}function $m(m){return O.filter((f)=>f.issuer===m)}function jm(m,f){let G=Y(m);return O.some(($)=>Y($.currency)===G&&$.issuer===f)}var w,O;var h=A(()=>{H();w=require("@swapkit/helpers"),O=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var Xm={};Wm(Xm,{validateRippleAddress:()=>K,parseXrplTokenIdentifier:()=>d,normalizeCurrency:()=>Y,isKnownToken:()=>jm,isHexCurrency:()=>P,hexToCurrency:()=>zm,hashes:()=>i.hashes,getXrplTokenInfo:()=>Mm,getRippleToolbox:()=>Dm,getKnownTokensByIssuer:()=>$m,formatXrplTokenIdentifier:()=>l,currencyToHex:()=>_,XRPL_TOKEN_ERROR_CODES:()=>R,XRPL_KNOWN_TOKENS:()=>O});module.exports=bm(Xm);function d(m){let f=m.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!f?.[1]||!f?.[2])return null;if(!q.isValidAddress(f[2]))return null;return{currency:f[1],issuer:f[2]}}function l(m,f){return`${v.Chain.Ripple}.${m}-${f}`}function qm(m){if(m.isGasAsset)return q.xrpToDrops(m.getValue("string"));let f=d(m.toString());if(!f)throw new v.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:m.toString()}});return{currency:f.currency,issuer:f.issuer,value:m.getValue("string")}}function c(m){let f=q.Wallet.fromMnemonic(m);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(G)=>Promise.resolve(f.sign(G))}}function K(m){return q.isValidAddress(m)}function Dm(m={}){let f=N.match(m).with({phrase:N.P.string},({phrase:U})=>c(U)).with({signer:N.P.any},({signer:U})=>U).otherwise(()=>{return}),G;async function $(){let U=await v.getRPCUrl(v.Chain.Ripple);if(!U)throw new v.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:v.Chain.Ripple}});let b=new q.Client(U);return await b.connect(),b}async function W(){if(G){let U=await G.catch(()=>null);if(U?.isConnected())return U}return G=$(),G}let D=()=>{if(!f)throw new v.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},Z=async(U)=>{let b=U||await D(),{baseDecimal:M}=v.getChainConfig(v.Chain.Ripple),z=await W();try{let[k,j]=await Promise.all([z.request({account:b,command:"account_info"}),z.request({account:b,command:"account_lines"})]),B=k.result.account_data.Balance,J=[v.AssetValue.from({chain:v.Chain.Ripple,fromBaseDecimal:M,value:B})];for(let X of j.result.lines){let V=l(X.currency,X.account);if(Number.parseFloat(X.balance)!==0)J.push(v.AssetValue.from({asset:V,asyncTokenLookup:!1,value:X.balance}))}return J}catch(k){if(k.data?.error_code===x.ACCOUNT_NOT_FOUND)return[v.AssetValue.from({chain:v.Chain.Ripple,value:0})];throw new v.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:b,error:k}})}},F=async()=>{let{baseDecimal:U}=v.getChainConfig(v.Chain.Ripple),z=(await(await W()).request({command:"fee"})).result.drops.open_ledger_fee;return v.AssetValue.from({chain:v.Chain.Ripple,fromBaseDecimal:U,value:z})};async function S(U){let b=U||await D(),M=await W();try{return(await M.request({account:b,command:"account_lines"})).result.lines.map((k)=>({account:k.account,authorized:k.authorized??!1,balance:k.balance,currency:k.currency,freeze:k.freeze??!1,freezePeer:k.freeze_peer??!1,limit:k.limit,limitPeer:k.limit_peer,noRipple:k.no_ripple??!1,noRipplePeer:k.no_ripple_peer??!1,peerAuthorized:k.peer_authorized??!1,qualityIn:k.quality_in??0,qualityOut:k.quality_out??0}))}catch(z){if(z.data?.error_code===x.ACCOUNT_NOT_FOUND)return[];throw new v.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:b,error:z}})}}async function n({address:U,currency:b,issuer:M}){let z=await S(U),k=_(b);return z.some((j)=>{return _(j.currency)===k&&j.account===M})}async function E({currency:U,issuer:b,limit:M,sender:z}){let k=z||await D();if(!K(b))throw new v.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:b}});let j=Number.parseFloat(M);if(Number.isNaN(j)||j<0)throw new v.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:M}});let B=await W(),J={Account:k,LimitAmount:{currency:U,issuer:b,value:M},TransactionType:"TrustSet"};return B.autofill(J)}async function o({assetValue:U,recipient:b,memo:M,sender:z,destinationTag:k,extendBySeconds:j=150}){if(!K(b))throw new v.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let B=z||await D();if(U.chain!==v.Chain.Ripple)throw new v.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:U.toString()}});let J=qm(U),X={Account:B,Amount:J,Destination:b,TransactionType:"Payment",...k!==void 0&&{DestinationTag:k}};if(M)X.Memos=[{Memo:{MemoData:Buffer.from(M).toString("hex")}}];let y=await(await W()).autofill(X);if(y.LastLedgerSequence&&j>0)y.LastLedgerSequence+=Math.ceil(j/4);return y}function I(U){if(!f)throw new v.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(U)}async function L(U){let M=await(await W()).submitAndWait(U),{result:z}=M;if(z.validated)return z.hash;let k=z.meta?.TransactionResult,j=N.match(k).with(R.tecNO_LINE,()=>"No trust line exists for this token").with(R.tecPATH_DRY,()=>"Payment path could not deliver funds").with(R.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new v.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:v.Chain.Ripple,...j?{reason:j}:{txResult:k}}})}let t=async(U)=>{try{let b=await I(U);return L(b.tx_blob)}catch(b){if(b instanceof v.SwapKitError)throw b;throw new v.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:v.Chain.Ripple,error:b}})}};async function a(U){if(!f)throw new v.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let b=await f.getAddress(),M=await o({...U,sender:b}),z=await I(M);return L(z.tx_blob)}async function s(U){if(!f)throw new v.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let b=await f.getAddress(),M=await E({...U,sender:b}),z=await I(M);return L(z.tx_blob)}function r(){let U=G;if(G=null,U)U.then((b)=>{if(b?.isConnected())return b.disconnect();return}).catch((b)=>{console.warn("XRPL Cleanup failed silently:",b)})}return{broadcastTransaction:L,createSigner:c,createTransaction:o,disconnect:r,estimateTransactionFee:F,getAddress:D,getBalance:Z,getTrustLines:S,hasTrustLine:n,setTrustLine:E,setTrustLineAndBroadcast:s,signAndBroadcastTransaction:t,signTransaction:I,transfer:a,validateAddress:K}}var v,N,q,i,x,R;var Zm=A(()=>{H();v=require("@swapkit/helpers"),N=require("ts-pattern"),q=require("xrpl");H();h();i=require("xrpl"),x={ACCOUNT_NOT_FOUND:19},R={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});Zm();
@@ -1,4 +1 @@
1
- var P=Object.create;var{getPrototypeOf:U,defineProperty:k,getOwnPropertyNames:f}=Object;var R=Object.prototype.hasOwnProperty;var c=(j,q,y)=>{y=j!=null?P(U(j)):{};let G=q||!j||!j.__esModule?k(y,"default",{value:j,enumerable:!0}):y;for(let Y of f(j))if(!R.call(G,Y))k(G,Y,{get:()=>j[Y],enumerable:!0});return G};var D=(j,q)=>{for(var y in q)k(j,y,{get:q[y],enumerable:!0,configurable:!0,set:(G)=>q[y]=()=>G})};var b=(j,q)=>()=>(j&&(q=j(j=0)),q);var d=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(q,y)=>(typeof require<"u"?require:q)[y]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});var V={};D(V,{rippleValidateAddress:()=>B,hashes:()=>h,getRippleToolbox:()=>x});import{AssetValue as v,Chain as Q,getChainConfig as W,getRPCUrl as K,SwapKitError as X,SwapKitNumber as A}from"@swapkit/helpers";import{Client as T,isValidAddress as w,Wallet as E,xrpToDrops as S}from"xrpl";import{hashes as h}from"xrpl";function H(j){let q=E.fromMnemonic(j);return{getAddress:()=>Promise.resolve(q.address),signTransaction:(y)=>Promise.resolve(q.sign(y))}}function B(j){return w(j)}var u,x=async(j={})=>{let q="signer"in j&&j.signer?j.signer:("phrase"in j)&&j.phrase?H(j.phrase):void 0,y=await K(Q.Ripple);if(!y)throw new X({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Q.Ripple}});let G=new T(y);await G.connect();let Y=()=>{if(!q)throw new X({errorKey:"toolbox_ripple_signer_not_found"});return q.getAddress()},O=async(z)=>{let M=z||await Y(),{baseDecimal:J}=W(Q.Ripple);try{let $=(await G.request({account:M,command:"account_info"})).result.account_data.Balance;return[v.from({chain:Q.Ripple,fromBaseDecimal:J,value:$})]}catch(Z){if(Z.data.error_code===u.ACCOUNT_NOT_FOUND)return[v.from({chain:Q.Ripple,value:0})];throw new X("toolbox_ripple_get_balance_error",{info:{address:M,error:Z}})}},_=async()=>{let M=(await G.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:J}=W(Q.Ripple);return v.from({chain:Q.Ripple,fromBaseDecimal:J,value:A.fromBigInt(BigInt(M),J)})},F=async({assetValue:z,recipient:M,memo:J,sender:Z})=>{if(!B(M))throw new X({errorKey:"core_transaction_invalid_recipient_address"});let $=Z||await Y();if(!z.isGasAsset||z.chain!==Q.Ripple)throw new X({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:z.toString()}});let N={Account:$,Amount:S(z.getValue("string")),Destination:M,TransactionType:"Payment"};if(J)N.Memos=[{Memo:{MemoData:Buffer.from(J).toString("hex")}}];return await G.autofill(N)},I=(z)=>{if(!q)throw new X({errorKey:"toolbox_ripple_signer_not_found"});return q.signTransaction(z)},L=async(z)=>{let J=(await G.submitAndWait(z)).result;if(J.validated)return J.hash;throw new X({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Q.Ripple}})};return{broadcastTransaction:L,createSigner:H,createTransaction:F,disconnect:()=>G.disconnect(),estimateTransactionFee:_,getAddress:Y,getBalance:O,signer:q,signTransaction:I,transfer:async(z)=>{if(!q)throw new X({errorKey:"toolbox_ripple_signer_not_found"});let M=await q.getAddress(),J=await F({...z,sender:M}),Z=await I(J);return L(Z.tx_blob)},validateAddress:B}};var C=b(()=>{u={ACCOUNT_NOT_FOUND:19}});C();export{B as rippleValidateAddress,h as hashes,x as getRippleToolbox};
2
-
3
- //# debugId=76AC5E2993569E1964756E2164756E21
4
- //# sourceMappingURL=index.js.map
1
+ var t=Object.defineProperty;var a=(m)=>m;function s(m,f){this[m]=a.bind(null,f)}var r=(m,f)=>{for(var G in f)t(m,G,{get:f[G],enumerable:!0,configurable:!0,set:s.bind(f,G)})};var O=(m,f)=>()=>(m&&(f=m(m=0)),f);var Zm=((m)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(m,{get:(f,G)=>(typeof require<"u"?require:f)[G]}):m)(function(m){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+m+'" is not supported')});import{SwapKitError as e}from"@swapkit/helpers";function Q(m){return/^[0-9A-Fa-f]{40}$/.test(m)}function Y(m){if(Q(m))return m.toUpperCase();if(m.length<=3){let G=Buffer.from(m.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${G}${"0".repeat(10)}`.toUpperCase()}let f=Buffer.from(m).toString("hex").toUpperCase();if(f.length>40)throw new e({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:m,reason:"Currency exceeds maximum length (20 bytes)"}});return f.padEnd(40,"0")}function mm(m){if(!Q(m))return m;if(m.toUpperCase().startsWith("00")){let f=m.slice(24,30);try{let G=Buffer.from(f,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(G)&&G.length>0)return G}catch{}return m.toUpperCase()}try{let f=m.replace(/0+$/,""),G=f.length%2===0?f:`${f}0`,q=Buffer.from(G,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(q))return q}catch{}return m.toUpperCase()}function B(m){if(Q(m))return m.toUpperCase();if(m.length<=3)return m;return Y(m)}var _=()=>{};import{RequestClient as fm,warnOnce as vm}from"@swapkit/helpers";async function Um(m,f){let G=B(m),q=I.find((W)=>B(W.currency)===G&&W.issuer===f);if(q)return q;try{let W=await fm.get(`https://api.xrplmeta.org/token/${m}:${f}`);if(W)return{currency:m,decimals:15,description:W.desc,domain:W.domain,icon:W.icon,issuer:f,name:W.name,verified:W.self_assessment?.is_regulated||W.self_assessment?.is_licensed}}catch(W){vm({condition:!0,id:`xrpl_token_lookup_${m}_${f}`,warning:`Failed to fetch XRPL token info for ${m}:${f}: ${W}`})}return{currency:m,decimals:15,issuer:f,verified:!1}}function bm(m){return I.filter((f)=>f.issuer===m)}function Gm(m,f){let G=B(m);return I.some((q)=>B(q.currency)===G&&q.issuer===f)}var I;var S=O(()=>{_();I=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var qm={};r(qm,{validateRippleAddress:()=>H,parseXrplTokenIdentifier:()=>T,normalizeCurrency:()=>B,isKnownToken:()=>Gm,isHexCurrency:()=>Q,hexToCurrency:()=>mm,hashes:()=>Dm,getXrplTokenInfo:()=>Um,getRippleToolbox:()=>jm,getKnownTokensByIssuer:()=>bm,formatXrplTokenIdentifier:()=>u,currencyToHex:()=>Y,XRPL_TOKEN_ERROR_CODES:()=>P,XRPL_KNOWN_TOKENS:()=>I});import{AssetValue as L,Chain as j,getChainConfig as E,getRPCUrl as km,SwapKitError as M}from"@swapkit/helpers";import{match as o,P as V}from"ts-pattern";import{Client as Wm,isValidAddress as p,Wallet as zm,xrpToDrops as Mm}from"xrpl";import{hashes as Dm}from"xrpl";function T(m){let f=m.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!f?.[1]||!f?.[2])return null;if(!p(f[2]))return null;return{currency:f[1],issuer:f[2]}}function u(m,f){return`${j.Ripple}.${m}-${f}`}function $m(m){if(m.isGasAsset)return Mm(m.getValue("string"));let f=T(m.toString());if(!f)throw new M({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:m.toString()}});return{currency:f.currency,issuer:f.issuer,value:m.getValue("string")}}function C(m){let f=zm.fromMnemonic(m);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(G)=>Promise.resolve(f.sign(G))}}function H(m){return p(m)}function jm(m={}){let f=o(m).with({phrase:V.string},({phrase:v})=>C(v)).with({signer:V.any},({signer:v})=>v).otherwise(()=>{return}),G;async function q(){let v=await km(j.Ripple);if(!v)throw new M({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:j.Ripple}});let U=new Wm(v);return await U.connect(),U}async function W(){if(G){let v=await G.catch(()=>null);if(v?.isConnected())return v}return G=q(),G}let J=()=>{if(!f)throw new M({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},h=async(v)=>{let U=v||await J(),{baseDecimal:z}=E(j.Ripple),k=await W();try{let[b,$]=await Promise.all([k.request({account:U,command:"account_info"}),k.request({account:U,command:"account_lines"})]),X=b.result.account_data.Balance,Z=[L.from({chain:j.Ripple,fromBaseDecimal:z,value:X})];for(let D of $.result.lines){let A=u(D.currency,D.account);if(Number.parseFloat(D.balance)!==0)Z.push(L.from({asset:A,asyncTokenLookup:!1,value:D.balance}))}return Z}catch(b){if(b.data?.error_code===g.ACCOUNT_NOT_FOUND)return[L.from({chain:j.Ripple,value:0})];throw new M({errorKey:"toolbox_ripple_get_balance_error",info:{address:U,error:b}})}},x=async()=>{let{baseDecimal:v}=E(j.Ripple),k=(await(await W()).request({command:"fee"})).result.drops.open_ledger_fee;return L.from({chain:j.Ripple,fromBaseDecimal:v,value:k})};async function R(v){let U=v||await J(),z=await W();try{return(await z.request({account:U,command:"account_lines"})).result.lines.map((b)=>({account:b.account,authorized:b.authorized??!1,balance:b.balance,currency:b.currency,freeze:b.freeze??!1,freezePeer:b.freeze_peer??!1,limit:b.limit,limitPeer:b.limit_peer,noRipple:b.no_ripple??!1,noRipplePeer:b.no_ripple_peer??!1,peerAuthorized:b.peer_authorized??!1,qualityIn:b.quality_in??0,qualityOut:b.quality_out??0}))}catch(k){if(k.data?.error_code===g.ACCOUNT_NOT_FOUND)return[];throw new M({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:U,error:k}})}}async function c({address:v,currency:U,issuer:z}){let k=await R(v),b=Y(U);return k.some(($)=>{return Y($.currency)===b&&$.account===z})}async function K({currency:v,issuer:U,limit:z,sender:k}){let b=k||await J();if(!H(U))throw new M({errorKey:"core_transaction_invalid_recipient_address",info:{address:U}});let $=Number.parseFloat(z);if(Number.isNaN($)||$<0)throw new M({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:z}});let X=await W(),Z={Account:b,LimitAmount:{currency:v,issuer:U,value:z},TransactionType:"TrustSet"};return X.autofill(Z)}async function y({assetValue:v,recipient:U,memo:z,sender:k,destinationTag:b,extendBySeconds:$=150}){if(!H(U))throw new M({errorKey:"core_transaction_invalid_recipient_address"});let X=k||await J();if(v.chain!==j.Ripple)throw new M({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:v.toString()}});let Z=$m(v),D={Account:X,Amount:Z,Destination:U,TransactionType:"Payment",...b!==void 0&&{DestinationTag:b}};if(z)D.Memos=[{Memo:{MemoData:Buffer.from(z).toString("hex")}}];let w=await(await W()).autofill(D);if(w.LastLedgerSequence&&$>0)w.LastLedgerSequence+=Math.ceil($/4);return w}function N(v){if(!f)throw new M({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(v)}async function F(v){let z=await(await W()).submitAndWait(v),{result:k}=z;if(k.validated)return k.hash;let b=k.meta?.TransactionResult,$=o(b).with(P.tecNO_LINE,()=>"No trust line exists for this token").with(P.tecPATH_DRY,()=>"Payment path could not deliver funds").with(P.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new M({errorKey:"toolbox_ripple_broadcast_error",info:{chain:j.Ripple,...$?{reason:$}:{txResult:b}}})}let d=async(v)=>{try{let U=await N(v);return F(U.tx_blob)}catch(U){if(U instanceof M)throw U;throw new M({errorKey:"toolbox_ripple_broadcast_error",info:{chain:j.Ripple,error:U}})}};async function l(v){if(!f)throw new M({errorKey:"toolbox_ripple_signer_not_found"});let U=await f.getAddress(),z=await y({...v,sender:U}),k=await N(z);return F(k.tx_blob)}async function i(v){if(!f)throw new M({errorKey:"toolbox_ripple_signer_not_found"});let U=await f.getAddress(),z=await K({...v,sender:U}),k=await N(z);return F(k.tx_blob)}function n(){let v=G;if(G=null,v)v.then((U)=>{if(U?.isConnected())return U.disconnect();return}).catch((U)=>{console.warn("XRPL Cleanup failed silently:",U)})}return{broadcastTransaction:F,createSigner:C,createTransaction:y,disconnect:n,estimateTransactionFee:x,getAddress:J,getBalance:h,getTrustLines:R,hasTrustLine:c,setTrustLine:K,setTrustLineAndBroadcast:i,signAndBroadcastTransaction:d,signTransaction:N,transfer:l,validateAddress:H}}var g,P;var Xm=O(()=>{_();_();S();g={ACCOUNT_NOT_FOUND:19},P={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});Xm();export{H as validateRippleAddress,T as parseXrplTokenIdentifier,B as normalizeCurrency,Gm as isKnownToken,Q as isHexCurrency,mm as hexToCurrency,Dm as hashes,Um as getXrplTokenInfo,jm as getRippleToolbox,bm as getKnownTokensByIssuer,u as formatXrplTokenIdentifier,Y as currencyToHex,P as XRPL_TOKEN_ERROR_CODES,I as XRPL_KNOWN_TOKENS};
@@ -1,4 +1 @@
1
- var A=Object.create;var{getPrototypeOf:p,defineProperty:L,getOwnPropertyNames:k,getOwnPropertyDescriptor:C}=Object,T=Object.prototype.hasOwnProperty;var O=(j,q,w)=>{w=j!=null?A(p(j)):{};let z=q||!j||!j.__esModule?L(w,"default",{value:j,enumerable:!0}):w;for(let F of k(j))if(!T.call(z,F))L(z,F,{get:()=>j[F],enumerable:!0});return z},h=new WeakMap,P=(j)=>{var q=h.get(j),w;if(q)return q;if(q=L({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function")k(j).map((z)=>!T.call(q,z)&&L(q,z,{get:()=>j[z],enumerable:!(w=C(j,z))||w.enumerable}));return h.set(j,q),q};var l=(j,q)=>{for(var w in q)L(j,w,{get:q[w],enumerable:!0,configurable:!0,set:(z)=>q[w]=()=>z})};var v=(j,q)=>()=>(j&&(q=j(j=0)),q);async function b(j){let q=B.AssetValue.from({address:j,chain:B.Chain.Solana});if(q.symbol!=="UNKNOWN")return{decimals:q.decimal||0,id:j,logoURI:q.getIconUrl(),name:q.symbol,symbol:q.ticker};let w=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(j)}`;try{let z=await fetch(w);if(!z.ok)return null;let F=await z.json();if(!Array.isArray(F)||F.length===0)return null;return F.find((G)=>G.id===j)||null}catch{return null}}async function u(j){let q=await X(),{PublicKey:w}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:z}=await import("@solana/spl-token"),F=new w(j),{baseDecimal:J}=B.getChainConfig(B.Chain.Solana),G=await q.getBalance(F),N=[B.AssetValue.from({chain:B.Chain.Solana,fromBaseDecimal:J,value:G||0})],R=await q.getParsedTokenAccountsByOwner(F,{programId:z});for(let{account:U}of R.value){let Q=U.data.parsed.info,Y=Q.mint,$=Q.tokenAmount.amount;if(Number($)===0)continue;let Z=await b(Y),_=Z?.symbol||"UNKNOWN",E=Z?.decimals||Q.tokenAmount.decimals;N.push(B.AssetValue.from({asset:`${B.Chain.Solana}.${_}-${Y}`,fromBaseDecimal:E,value:$}))}return N}async function H(){let{PublicKey:j}=await import("@solana/web3.js");return(q)=>{try{let w=new j(q);return j.isOnCurve(w.toBytes())}catch{return!1}}}async function m(j){let q=j&&"index"in j?j.index||0:0,w=B.derivationPathToString(j&&"derivationPath"in j&&j.derivationPath?j.derivationPath:B.updateDerivationPath(B.NetworkDerivationPath[B.Chain.Solana],{index:q})),z=await W.match(j).with({phrase:W.P.string},({phrase:G})=>x({derivationPath:w,phrase:G})).with({signer:W.P.any},({signer:G})=>G).otherwise(()=>{return});function F(){return z?.publicKey?K(z.publicKey):""}function J(G){let N=G||F();if(!N)throw new B.SwapKitError("core_wallet_connection_not_found");return u(N)}return{broadcastTransaction:M(X),createKeysForPath:x,createTransaction:S(X),createTransactionFromInstructions:a,estimateTransactionFee:d(X),getAddress:F,getAddressFromPubKey:K,getAddressValidator:H,getBalance:J,getConnection:X,getPubkeyFromAddress:f,signTransaction:r(X,z),transfer:o(X,z)}}function d(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:F,sender:J})=>{let G=await j(),R=(await S(j)({assetValue:w,isProgramDerivedAddress:F,memo:z,recipient:q,sender:J})).compileMessage(),U=await G.getFeeForMessage(R);if(U.value===null)throw new B.SwapKitError("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Q}=B.getChainConfig(B.Chain.Solana);return B.AssetValue.from({chain:B.Chain.Solana,fromBaseDecimal:Q,value:U.value})}}async function X(){let{Connection:j}=await import("@solana/web3.js"),q=await B.getRPCUrl(B.Chain.Solana);return new j(q,"confirmed")}function g(j){return async({assetValue:q,recipient:w,sender:z,isProgramDerivedAddress:F})=>{let J=await j(),G=await f(z);if(q.isGasAsset){let{Transaction:N,SystemProgram:R,PublicKey:U}=await import("@solana/web3.js");return new N().add(R.transfer({fromPubkey:G,lamports:q.getBaseValue("number"),toPubkey:new U(w)}))}if(q.address)return c({amount:q.getBaseValue("number"),connection:J,decimals:q.decimal,from:G,isProgramDerivedAddress:F,recipient:w,tokenAddress:q.address});return}}async function c({tokenAddress:j,recipient:q,from:w,connection:z,amount:F,decimals:J,isProgramDerivedAddress:G}){let{getAssociatedTokenAddress:N,getAccount:R,createAssociatedTokenAccountInstruction:U,createTransferCheckedInstruction:Q}=await import("@solana/spl-token"),{Transaction:Y,PublicKey:$}=await import("@solana/web3.js"),Z=new Y,_=new $(j),E=await N(_,w),V=new $(q),I=await N(_,V,G),D=!1;try{await R(z,I),D=!0}catch{}if(!D)Z.add(U(w,I,V,_));return Z.add(Q(E,_,I,w,F,J)),Z}function S(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:F,sender:J})=>{let{createMemoInstruction:G}=await import("@solana/spl-memo"),N=await f(J),R=await H();if(!(F||R(q)))throw new B.SwapKitError("core_transaction_invalid_recipient_address");let U=await j(),Q=await g(j)({assetValue:w,isProgramDerivedAddress:F,recipient:q,sender:J});if(!Q)throw new B.SwapKitError("core_transaction_invalid_sender_address");if(z)Q.add(G(z));let Y=await U.getLatestBlockhash();return Q.recentBlockhash=Y.blockhash,Q.feePayer=N,Q}}async function a({instructions:j}){let{Transaction:q}=await import("@solana/web3.js"),w=new q().add(...j);if(!w)throw new B.SwapKitError("core_transaction_invalid_sender_address");return w}function o(j,q){return async({recipient:w,assetValue:z,memo:F,isProgramDerivedAddress:J})=>{if(!q)throw new B.SwapKitError("core_transaction_invalid_sender_address");let G=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),N=await S(j)({assetValue:z,isProgramDerivedAddress:J,memo:F,recipient:w,sender:G});if("signTransaction"in q){let R=await q.signTransaction(N);return M(j)(R)}return N.sign(q),M(j)(N)}}function M(j){return async(q)=>{return(await j()).sendRawTransaction(q.serialize())}}function r(j,q){return async(w)=>{let{VersionedTransaction:z}=await import("@solana/web3.js");if(!q)throw new B.SwapKitError("toolbox_solana_no_signer");if(!(w instanceof z)){let J=await(await j()).getLatestBlockhash();w.recentBlockhash=J.blockhash,w.feePayer=q.publicKey||void 0}if("connect"in q)return await q.signTransaction(w);return await w.sign([q]),w}}async function x({phrase:j,derivationPath:q=B.DerivationPath.SOL}){let{HDKey:w}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:z}=await import("@scure/bip39"),{Keypair:F}=await import("@solana/web3.js"),J=z(j),G=w.fromMasterSeed(J);return F.fromSeed(G.derive(q,!0).privateKey)}function K(j){return j.toString()}async function f(j){let{PublicKey:q}=await import("@solana/web3.js");return new q(j)}var B,W;var y=v(()=>{B=require("@swapkit/helpers"),W=require("ts-pattern")});var s={};l(s,{getSolanaToolbox:()=>m,getSolanaAddressValidator:()=>H,fetchTokenMetaData:()=>b,createKeysForPath:()=>x});module.exports=P(s);var t=v(()=>{y()});t();
2
-
3
- //# debugId=9B27D8F40FC077DD64756E2164756E21
4
- //# sourceMappingURL=index.cjs.map
1
+ var o=Object.create;var{getPrototypeOf:D,defineProperty:N,getOwnPropertyNames:$,getOwnPropertyDescriptor:C}=Object,I=Object.prototype.hasOwnProperty;function M(p){return this[p]}var k,r,wp=(p,l,f)=>{var a=p!=null&&typeof p==="object";if(a){var w=l?k??=new WeakMap:r??=new WeakMap,u=w.get(p);if(u)return u}f=p!=null?o(D(p)):{};let T=l||!p||!p.__esModule?N(f,"default",{value:p,enumerable:!0}):f;for(let y of $(p))if(!I.call(T,y))N(T,y,{get:M.bind(p,y),enumerable:!0});if(a)w.set(p,T);return T},d=(p)=>{var l=(_??=new WeakMap).get(p),f;if(l)return l;if(l=N({},"__esModule",{value:!0}),p&&typeof p==="object"||typeof p==="function"){for(var a of $(p))if(!I.call(l,a))N(l,a,{get:M.bind(p,a),enumerable:!(f=C(p,a))||f.enumerable})}return _.set(p,l),l},_;var s=(p)=>p;function t(p,l){this[p]=s.bind(null,l)}var e=(p,l)=>{for(var f in l)N(p,f,{get:l[f],enumerable:!0,configurable:!0,set:t.bind(l,f)})};var L=(p,l)=>()=>(p&&(l=p(p=0)),l);function yp(){function p(){let l=Date.now(),f=Q||l;return Q=f,l>Q?l:f+1}return c+p().toString(36)}function A(p){return async function(f,a=!0){let w=await V.SwapKitApi.getChainBalance({address:f,chain:p,scamFilter:a}),{baseDecimal:u}=P.getChainConfig(p),T=w.map(({identifier:b,value:G,decimal:m})=>{return new P.AssetValue({decimal:m||u,identifier:b,value:G})});if(!T.some((b)=>b.isGasAsset))return[P.AssetValue.from({chain:p}),...T];return T}}var P,V,c,Q=0;var E=L(()=>{P=require("@swapkit/helpers"),V=require("@swapkit/helpers/api"),c=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function H(p){let l=x.AssetValue.from({address:p,chain:x.Chain.Solana});if(l.symbol!=="UNKNOWN")return{decimals:l.decimal||0,id:p,logoURI:l.getIconUrl(),name:l.symbol,symbol:l.ticker};let f=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(p)}`;try{let a=await fetch(f);if(!a.ok)return null;let w=await a.json();if(!Array.isArray(w)||w.length===0)return null;return w.find((T)=>T.id===p)||null}catch{return null}}async function g(p){let l=await O(),{PublicKey:f}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:a}=await import("@solana/spl-token"),w=new f(p),{baseDecimal:u}=x.getChainConfig(x.Chain.Solana),T=await l.getBalance(w),y=[x.AssetValue.from({chain:x.Chain.Solana,fromBaseDecimal:u,value:T||0})],b=await l.getParsedTokenAccountsByOwner(w,{programId:a});for(let{account:G}of b.value){let m=G.data.parsed.info,q=m.mint,S=m.tokenAmount.amount;if(Number(S)===0)continue;let R=await H(q),F=R?.symbol||"UNKNOWN",W=R?.decimals||m.tokenAmount.decimals;y.push(x.AssetValue.from({asset:`${x.Chain.Solana}.${F}-${q}`,fromBaseDecimal:W,value:S}))}return y}function X(p){try{let l=new B.PublicKey(p);return B.PublicKey.isOnCurve(l.toBytes())}catch{return!1}}function i(p){let l=p&&"index"in p?p.index||0:0,f=x.derivationPathToString(p&&"derivationPath"in p&&p.derivationPath?p.derivationPath:x.updateDerivationPath(x.NetworkDerivationPath[x.Chain.Solana],{index:l})),a;async function w(){if(a)return a;return a=await j.match(p).with({phrase:j.P.string},({phrase:T})=>U({derivationPath:f,phrase:T})).with({signer:j.P.any},({signer:T})=>T).otherwise(()=>{return}),a}async function u(){let T=await w();return T?.publicKey?v(T.publicKey):""}return{broadcastTransaction:z(O),createKeysForPath:U,createTransaction:Y(O),createTransactionFromInstructions:fp,estimateTransactionFee:n(O),getAddress:u,getAddressFromPubKey:v,getBalance:A(x.Chain.Solana),getBalanceFromRPC:g,getConnection:O,getPubkeyFromAddress:(T)=>new B.PublicKey(T),signAndBroadcastTransaction:async(T)=>{let y=await h(O,w)(T);return z(O)(y)},signTransaction:h(O,w),transfer:Tp(O,w),validateAddress:X}}function n(p){return async({recipient:l,assetValue:f,memo:a,isProgramDerivedAddress:w,sender:u})=>{let T=await p(),b=(await Y(p)({assetValue:f,isProgramDerivedAddress:w,memo:a,recipient:l,sender:u})).compileMessage(),G=await T.getFeeForMessage(b);if(G.value===null)throw new x.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:m}=x.getChainConfig(x.Chain.Solana);return x.AssetValue.from({chain:x.Chain.Solana,fromBaseDecimal:m,value:G.value})}}async function O(){let{Connection:p}=await import("@solana/web3.js"),l=await x.getRPCUrl(x.Chain.Solana);return new p(l,{commitment:"confirmed",fetchMiddleware:(f,a,w)=>{let u={};for(let[T,y]of Object.entries(a?.headers??{})){let b=T.toLowerCase();if(b!=="pragma"&&b!=="solana-client")u[T]=y}w(f,{...a,headers:u})}})}function pp(p){return async({assetValue:l,recipient:f,sender:a,isProgramDerivedAddress:w})=>{let u=await p(),T=new B.PublicKey(a);if(l.isGasAsset){let{Transaction:y,SystemProgram:b}=await import("@solana/web3.js");return new y().add(b.transfer({fromPubkey:T,lamports:l.getBaseValue("number"),toPubkey:new B.PublicKey(f)}))}if(l.address)return lp({amount:l.getBaseValue("number"),connection:u,decimals:l.decimal,from:T,isProgramDerivedAddress:w,recipient:f,tokenAddress:l.address});return}}async function lp({tokenAddress:p,recipient:l,from:f,connection:a,amount:w,decimals:u,isProgramDerivedAddress:T}){let{getAssociatedTokenAddress:y,getAccount:b,createAssociatedTokenAccountInstruction:G,createTransferCheckedInstruction:m}=await import("@solana/spl-token"),{Transaction:q}=await import("@solana/web3.js"),S=new q,R=new B.PublicKey(p),F=await y(R,f),W=new B.PublicKey(l),J=await y(R,W,T),Z=!1;try{await b(a,J),Z=!0}catch{}if(!Z)S.add(G(f,J,W,R));return S.add(m(F,R,J,f,w,u)),S}function Y(p){return async({recipient:l,assetValue:f,memo:a,isProgramDerivedAddress:w,sender:u})=>{let{createMemoInstruction:T}=await import("@solana/spl-memo"),y=new B.PublicKey(u);if(!(w||X(l)))throw new x.SwapKitError("core_transaction_invalid_recipient_address");let b=await p(),G=await pp(p)({assetValue:f,isProgramDerivedAddress:w,recipient:l,sender:u});if(!G)throw new x.SwapKitError("core_transaction_invalid_sender_address");if(a)G.add(T(a));let m=await b.getLatestBlockhash();return G.recentBlockhash=m.blockhash,G.feePayer=y,G}}async function fp({instructions:p}){let{Transaction:l}=await import("@solana/web3.js"),f=new l().add(...p);if(!f)throw new x.SwapKitError("core_transaction_invalid_sender_address");return f}function Tp(p,l){return async({recipient:f,assetValue:a,memo:w,isProgramDerivedAddress:u})=>{let T=await l();if(!T)throw new x.SwapKitError("core_transaction_invalid_sender_address");let y=T.publicKey?.toString()??(await T.connect()).publicKey.toString(),b=await Y(p)({assetValue:a,isProgramDerivedAddress:u,memo:w,recipient:f,sender:y});if("signTransaction"in T){let G=await T.signTransaction(b);return z(p)(G)}return b.sign(T),z(p)(b)}}function z(p){return async(l)=>{return(await p()).sendRawTransaction(l.serialize())}}function h(p,l){return async(f)=>{let a=await l();if(!a)throw new x.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:w}=await import("@solana/web3.js");if(!(f instanceof w)){let T=await(await p()).getLatestBlockhash();f.recentBlockhash=T.blockhash,f.feePayer=a.publicKey||void 0}if("connect"in a)return await a.signTransaction(f);return f.sign([a]),f}}async function U({phrase:p,derivationPath:l=x.DerivationPath.SOL}){let{HDKey:f}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:a}=await import("@scure/bip39"),{Keypair:w}=await import("@solana/web3.js"),u=a(p),T=f.fromMasterSeed(u);return w.fromSeed(T.derive(l,!0).privateKey)}function v(p){return p.toString()}var B,x,j;var K=L(()=>{E();B=require("@solana/web3.js"),x=require("@swapkit/helpers"),j=require("ts-pattern")});var ap={};e(ap,{validateSolanaAddress:()=>X,getSolanaToolbox:()=>i,fetchTokenMetaData:()=>H,createKeysForPath:()=>U});module.exports=d(ap);var xp=L(()=>{K()});xp();
@@ -1,4 +1 @@
1
- var p=Object.create;var{getPrototypeOf:C,defineProperty:x,getOwnPropertyNames:P}=Object;var l=Object.prototype.hasOwnProperty;var N=(j,q,w)=>{w=j!=null?p(C(j)):{};let z=q||!j||!j.__esModule?x(w,"default",{value:j,enumerable:!0}):w;for(let B of P(j))if(!l.call(z,B))x(z,B,{get:()=>j[B],enumerable:!0});return z};var u=(j,q)=>{for(var w in q)x(j,w,{get:q[w],enumerable:!0,configurable:!0,set:(z)=>q[w]=()=>z})};var T=(j,q)=>()=>(j&&(q=j(j=0)),q);var O=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(q,w)=>(typeof require<"u"?require:q)[w]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});import{AssetValue as E,Chain as X,DerivationPath as m,derivationPathToString as d,getChainConfig as b,getRPCUrl as g,NetworkDerivationPath as c,SwapKitError as Z,updateDerivationPath as a}from"@swapkit/helpers";import{match as o,P as v}from"ts-pattern";async function y(j){let q=E.from({address:j,chain:X.Solana});if(q.symbol!=="UNKNOWN")return{decimals:q.decimal||0,id:j,logoURI:q.getIconUrl(),name:q.symbol,symbol:q.ticker};let w=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(j)}`;try{let z=await fetch(w);if(!z.ok)return null;let B=await z.json();if(!Array.isArray(B)||B.length===0)return null;return B.find((F)=>F.id===j)||null}catch{return null}}async function r(j){let q=await Y(),{PublicKey:w}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:z}=await import("@solana/spl-token"),B=new w(j),{baseDecimal:G}=b(X.Solana),F=await q.getBalance(B),J=[E.from({chain:X.Solana,fromBaseDecimal:G,value:F||0})],R=await q.getParsedTokenAccountsByOwner(B,{programId:z});for(let{account:U}of R.value){let Q=U.data.parsed.info,_=Q.mint,W=Q.tokenAmount.amount;if(Number(W)===0)continue;let $=await y(_),L=$?.symbol||"UNKNOWN",I=$?.decimals||Q.tokenAmount.decimals;J.push(E.from({asset:`${X.Solana}.${L}-${_}`,fromBaseDecimal:I,value:W}))}return J}async function f(){let{PublicKey:j}=await import("@solana/web3.js");return(q)=>{try{let w=new j(q);return j.isOnCurve(w.toBytes())}catch{return!1}}}async function s(j){let q=j&&"index"in j?j.index||0:0,w=d(j&&"derivationPath"in j&&j.derivationPath?j.derivationPath:a(c[X.Solana],{index:q})),z=await o(j).with({phrase:v.string},({phrase:F})=>S({derivationPath:w,phrase:F})).with({signer:v.any},({signer:F})=>F).otherwise(()=>{return});function B(){return z?.publicKey?K(z.publicKey):""}function G(F){let J=F||B();if(!J)throw new Z("core_wallet_connection_not_found");return r(J)}return{broadcastTransaction:H(Y),createKeysForPath:S,createTransaction:V(Y),createTransactionFromInstructions:n,estimateTransactionFee:t(Y),getAddress:B,getAddressFromPubKey:K,getAddressValidator:f,getBalance:G,getConnection:Y,getPubkeyFromAddress:D,signTransaction:qj(Y,z),transfer:jj(Y,z)}}function t(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:B,sender:G})=>{let F=await j(),R=(await V(j)({assetValue:w,isProgramDerivedAddress:B,memo:z,recipient:q,sender:G})).compileMessage(),U=await F.getFeeForMessage(R);if(U.value===null)throw new Z("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Q}=b(X.Solana);return E.from({chain:X.Solana,fromBaseDecimal:Q,value:U.value})}}async function Y(){let{Connection:j}=await import("@solana/web3.js"),q=await g(X.Solana);return new j(q,"confirmed")}function i(j){return async({assetValue:q,recipient:w,sender:z,isProgramDerivedAddress:B})=>{let G=await j(),F=await D(z);if(q.isGasAsset){let{Transaction:J,SystemProgram:R,PublicKey:U}=await import("@solana/web3.js");return new J().add(R.transfer({fromPubkey:F,lamports:q.getBaseValue("number"),toPubkey:new U(w)}))}if(q.address)return e({amount:q.getBaseValue("number"),connection:G,decimals:q.decimal,from:F,isProgramDerivedAddress:B,recipient:w,tokenAddress:q.address});return}}async function e({tokenAddress:j,recipient:q,from:w,connection:z,amount:B,decimals:G,isProgramDerivedAddress:F}){let{getAssociatedTokenAddress:J,getAccount:R,createAssociatedTokenAccountInstruction:U,createTransferCheckedInstruction:Q}=await import("@solana/spl-token"),{Transaction:_,PublicKey:W}=await import("@solana/web3.js"),$=new _,L=new W(j),I=await J(L,w),h=new W(q),M=await J(L,h,F),k=!1;try{await R(z,M),k=!0}catch{}if(!k)$.add(U(w,M,h,L));return $.add(Q(I,L,M,w,B,G)),$}function V(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:B,sender:G})=>{let{createMemoInstruction:F}=await import("@solana/spl-memo"),J=await D(G),R=await f();if(!(B||R(q)))throw new Z("core_transaction_invalid_recipient_address");let U=await j(),Q=await i(j)({assetValue:w,isProgramDerivedAddress:B,recipient:q,sender:G});if(!Q)throw new Z("core_transaction_invalid_sender_address");if(z)Q.add(F(z));let _=await U.getLatestBlockhash();return Q.recentBlockhash=_.blockhash,Q.feePayer=J,Q}}async function n({instructions:j}){let{Transaction:q}=await import("@solana/web3.js"),w=new q().add(...j);if(!w)throw new Z("core_transaction_invalid_sender_address");return w}function jj(j,q){return async({recipient:w,assetValue:z,memo:B,isProgramDerivedAddress:G})=>{if(!q)throw new Z("core_transaction_invalid_sender_address");let F=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),J=await V(j)({assetValue:z,isProgramDerivedAddress:G,memo:B,recipient:w,sender:F});if("signTransaction"in q){let R=await q.signTransaction(J);return H(j)(R)}return J.sign(q),H(j)(J)}}function H(j){return async(q)=>{return(await j()).sendRawTransaction(q.serialize())}}function qj(j,q){return async(w)=>{let{VersionedTransaction:z}=await import("@solana/web3.js");if(!q)throw new Z("toolbox_solana_no_signer");if(!(w instanceof z)){let G=await(await j()).getLatestBlockhash();w.recentBlockhash=G.blockhash,w.feePayer=q.publicKey||void 0}if("connect"in q)return await q.signTransaction(w);return await w.sign([q]),w}}async function S({phrase:j,derivationPath:q=m.SOL}){let{HDKey:w}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:z}=await import("@scure/bip39"),{Keypair:B}=await import("@solana/web3.js"),G=z(j),F=w.fromMasterSeed(G);return B.fromSeed(F.derive(q,!0).privateKey)}function K(j){return j.toString()}async function D(j){let{PublicKey:q}=await import("@solana/web3.js");return new q(j)}var A=()=>{};var wj={};u(wj,{getSolanaToolbox:()=>s,getSolanaAddressValidator:()=>f,fetchTokenMetaData:()=>y,createKeysForPath:()=>S});var zj=T(()=>{A()});zj();export{s as getSolanaToolbox,f as getSolanaAddressValidator,y as fetchTokenMetaData,S as createKeysForPath};
2
-
3
- //# debugId=19757B759A3C620864756E2164756E21
4
- //# sourceMappingURL=index.js.map
1
+ var H=Object.defineProperty;var K=(p)=>p;function o(p,l){this[p]=K.bind(null,l)}var D=(p,l)=>{for(var f in l)H(p,f,{get:l[f],enumerable:!0,configurable:!0,set:o.bind(l,f)})};var L=(p,l)=>()=>(p&&(l=p(p=0)),l);var G=((p)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(p,{get:(l,f)=>(typeof require<"u"?require:l)[f]}):p)(function(p){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+p+'" is not supported')});import{AssetValue as _,getChainConfig as C}from"@swapkit/helpers";import{SwapKitApi as k}from"@swapkit/helpers/api";function Gp(){function p(){let l=Date.now(),f=Q||l;return Q=f,l>Q?l:f+1}return r+p().toString(36)}function $(p){return async function(f,a=!0){let x=await k.getChainBalance({address:f,chain:p,scamFilter:a}),{baseDecimal:w}=C(p),T=x.map(({identifier:u,value:b,decimal:m})=>{return new _({decimal:m||w,identifier:u,value:b})});if(!T.some((u)=>u.isGasAsset))return[_.from({chain:p}),...T];return T}}var r,Q=0;var I=L(()=>{r=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{PublicKey as R}from"@solana/web3.js";import{AssetValue as W,Chain as B,DerivationPath as d,derivationPathToString as s,getChainConfig as E,getRPCUrl as t,NetworkDerivationPath as e,SwapKitError as P,updateDerivationPath as c}from"@swapkit/helpers";import{match as g,P as M}from"ts-pattern";async function h(p){let l=W.from({address:p,chain:B.Solana});if(l.symbol!=="UNKNOWN")return{decimals:l.decimal||0,id:p,logoURI:l.getIconUrl(),name:l.symbol,symbol:l.ticker};let f=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(p)}`;try{let a=await fetch(f);if(!a.ok)return null;let x=await a.json();if(!Array.isArray(x)||x.length===0)return null;return x.find((T)=>T.id===p)||null}catch{return null}}async function i(p){let l=await O(),{PublicKey:f}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:a}=await import("@solana/spl-token"),x=new f(p),{baseDecimal:w}=E(B.Solana),T=await l.getBalance(x),y=[W.from({chain:B.Solana,fromBaseDecimal:w,value:T||0})],u=await l.getParsedTokenAccountsByOwner(x,{programId:a});for(let{account:b}of u.value){let m=b.data.parsed.info,j=m.mint,N=m.tokenAmount.amount;if(Number(N)===0)continue;let S=await h(j),F=S?.symbol||"UNKNOWN",q=S?.decimals||m.tokenAmount.decimals;y.push(W.from({asset:`${B.Solana}.${F}-${j}`,fromBaseDecimal:q,value:N}))}return y}function X(p){try{let l=new R(p);return R.isOnCurve(l.toBytes())}catch{return!1}}function n(p){let l=p&&"index"in p?p.index||0:0,f=s(p&&"derivationPath"in p&&p.derivationPath?p.derivationPath:c(e[B.Solana],{index:l})),a;async function x(){if(a)return a;return a=await g(p).with({phrase:M.string},({phrase:T})=>U({derivationPath:f,phrase:T})).with({signer:M.any},({signer:T})=>T).otherwise(()=>{return}),a}async function w(){let T=await x();return T?.publicKey?A(T.publicKey):""}return{broadcastTransaction:z(O),createKeysForPath:U,createTransaction:Y(O),createTransactionFromInstructions:Tp,estimateTransactionFee:pp(O),getAddress:w,getAddressFromPubKey:A,getBalance:$(B.Solana),getBalanceFromRPC:i,getConnection:O,getPubkeyFromAddress:(T)=>new R(T),signAndBroadcastTransaction:async(T)=>{let y=await V(O,x)(T);return z(O)(y)},signTransaction:V(O,x),transfer:ap(O,x),validateAddress:X}}function pp(p){return async({recipient:l,assetValue:f,memo:a,isProgramDerivedAddress:x,sender:w})=>{let T=await p(),u=(await Y(p)({assetValue:f,isProgramDerivedAddress:x,memo:a,recipient:l,sender:w})).compileMessage(),b=await T.getFeeForMessage(u);if(b.value===null)throw new P("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:m}=E(B.Solana);return W.from({chain:B.Solana,fromBaseDecimal:m,value:b.value})}}async function O(){let{Connection:p}=await import("@solana/web3.js"),l=await t(B.Solana);return new p(l,{commitment:"confirmed",fetchMiddleware:(f,a,x)=>{let w={};for(let[T,y]of Object.entries(a?.headers??{})){let u=T.toLowerCase();if(u!=="pragma"&&u!=="solana-client")w[T]=y}x(f,{...a,headers:w})}})}function lp(p){return async({assetValue:l,recipient:f,sender:a,isProgramDerivedAddress:x})=>{let w=await p(),T=new R(a);if(l.isGasAsset){let{Transaction:y,SystemProgram:u}=await import("@solana/web3.js");return new y().add(u.transfer({fromPubkey:T,lamports:l.getBaseValue("number"),toPubkey:new R(f)}))}if(l.address)return fp({amount:l.getBaseValue("number"),connection:w,decimals:l.decimal,from:T,isProgramDerivedAddress:x,recipient:f,tokenAddress:l.address});return}}async function fp({tokenAddress:p,recipient:l,from:f,connection:a,amount:x,decimals:w,isProgramDerivedAddress:T}){let{getAssociatedTokenAddress:y,getAccount:u,createAssociatedTokenAccountInstruction:b,createTransferCheckedInstruction:m}=await import("@solana/spl-token"),{Transaction:j}=await import("@solana/web3.js"),N=new j,S=new R(p),F=await y(S,f),q=new R(l),J=await y(S,q,T),Z=!1;try{await u(a,J),Z=!0}catch{}if(!Z)N.add(b(f,J,q,S));return N.add(m(F,S,J,f,x,w)),N}function Y(p){return async({recipient:l,assetValue:f,memo:a,isProgramDerivedAddress:x,sender:w})=>{let{createMemoInstruction:T}=await import("@solana/spl-memo"),y=new R(w);if(!(x||X(l)))throw new P("core_transaction_invalid_recipient_address");let u=await p(),b=await lp(p)({assetValue:f,isProgramDerivedAddress:x,recipient:l,sender:w});if(!b)throw new P("core_transaction_invalid_sender_address");if(a)b.add(T(a));let m=await u.getLatestBlockhash();return b.recentBlockhash=m.blockhash,b.feePayer=y,b}}async function Tp({instructions:p}){let{Transaction:l}=await import("@solana/web3.js"),f=new l().add(...p);if(!f)throw new P("core_transaction_invalid_sender_address");return f}function ap(p,l){return async({recipient:f,assetValue:a,memo:x,isProgramDerivedAddress:w})=>{let T=await l();if(!T)throw new P("core_transaction_invalid_sender_address");let y=T.publicKey?.toString()??(await T.connect()).publicKey.toString(),u=await Y(p)({assetValue:a,isProgramDerivedAddress:w,memo:x,recipient:f,sender:y});if("signTransaction"in T){let b=await T.signTransaction(u);return z(p)(b)}return u.sign(T),z(p)(u)}}function z(p){return async(l)=>{return(await p()).sendRawTransaction(l.serialize())}}function V(p,l){return async(f)=>{let a=await l();if(!a)throw new P("toolbox_solana_no_signer");let{VersionedTransaction:x}=await import("@solana/web3.js");if(!(f instanceof x)){let T=await(await p()).getLatestBlockhash();f.recentBlockhash=T.blockhash,f.feePayer=a.publicKey||void 0}if("connect"in a)return await a.signTransaction(f);return f.sign([a]),f}}async function U({phrase:p,derivationPath:l=d.SOL}){let{HDKey:f}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:a}=await import("@scure/bip39"),{Keypair:x}=await import("@solana/web3.js"),w=a(p),T=f.fromMasterSeed(w);return x.fromSeed(T.derive(l,!0).privateKey)}function A(p){return p.toString()}var v=L(()=>{I()});var xp={};D(xp,{validateSolanaAddress:()=>X,getSolanaToolbox:()=>n,fetchTokenMetaData:()=>h,createKeysForPath:()=>U});var wp=L(()=>{v()});wp();export{X as validateSolanaAddress,n as getSolanaToolbox,h as fetchTokenMetaData,U as createKeysForPath};
@@ -0,0 +1 @@
1
+ var a=Object.create;var{getPrototypeOf:e,defineProperty:V,getOwnPropertyNames:h,getOwnPropertyDescriptor:ff}=Object,p=Object.prototype.hasOwnProperty;function P(f){return this[f]}var qf,Gf,Mf=(f,G,W)=>{var M=f!=null&&typeof f==="object";if(M){var L=G?qf??=new WeakMap:Gf??=new WeakMap,Z=L.get(f);if(Z)return Z}W=f!=null?a(e(f)):{};let X=G||!f||!f.__esModule?V(W,"default",{value:f,enumerable:!0}):W;for(let j of h(f))if(!p.call(X,j))V(X,j,{get:P.bind(f,j),enumerable:!0});if(M)L.set(f,X);return X},zf=(f)=>{var G=(g??=new WeakMap).get(f),W;if(G)return G;if(G=V({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var M of h(f))if(!p.call(G,M))V(G,M,{get:P.bind(f,M),enumerable:!(W=ff(f,M))||W.enumerable})}return g.set(f,G),G},g;var If=(f)=>f;function Jf(f,G){this[f]=If.bind(null,G)}var Qf=(f,G)=>{for(var W in G)V(f,W,{get:G[W],enumerable:!0,configurable:!0,set:Jf.bind(G,W)})};var C=(f,G)=>()=>(f&&(G=f(f=0)),G);function Lf(){function f(){let G=Date.now(),W=K||G;return K=W,G>K?G:W+1}return Wf+f().toString(36)}function n(f){return async function(W,M=!0){let L=await l.SwapKitApi.getChainBalance({address:W,chain:f,scamFilter:M}),{baseDecimal:Z}=E.getChainConfig(f),X=L.map(({identifier:x,value:w,decimal:U})=>{return new E.AssetValue({decimal:U||Z,identifier:x,value:w})});if(!X.some((x)=>x.isGasAsset))return[E.AssetValue.from({chain:f}),...X];return X}}var E,l,Wf,K=0;var o=C(()=>{E=require("@swapkit/helpers"),l=require("@swapkit/helpers/api"),Wf=typeof process<"u"&&process.pid?process.pid.toString(36):""});function _(f){if(!f)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(f)}async function m({phrase:f,derivationPath:G=q.DerivationPath.STRK}){let{HDKey:W}=await import("@scure/bip32"),{mnemonicToSeedSync:M}=await import("@scure/bip39"),{ec:L,hash:Z,encode:X,CallData:j}=await import("starknet"),x=M(f),U=W.fromMasterSeed(x).derive(G);if(!U.privateKey)throw new q.SwapKitError("toolbox_starknet_no_signer");let H=X.addHexPrefix(Buffer.from(U.privateKey).toString("hex")),T=L.starkCurve.grindKey(H),R=X.addHexPrefix(T),k=L.starkCurve.getStarkKey(R),y=j.compile([k,0]);return{address:Z.calculateContractAddressFromHash(k,v,y,0),privateKey:R,publicKey:k}}async function A({phrase:f,derivationPath:G=q.DerivationPath.STRK}){let{Account:W,RpcProvider:M}=await import("starknet"),{privateKey:L,address:Z}=await m({derivationPath:G,phrase:f}),X=await q.getRPCUrl(q.Chain.Starknet),j=new M({nodeUrl:X});return new W({address:Z,provider:j,signer:L})}function c(f){let G=q.Chain.Starknet,W=f&&"index"in f?f.index||0:0,M=q.derivationPathToString(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:q.updateDerivationPath(q.NetworkDerivationPath[G],{index:W})),L,Z,X;async function j(){if(Z)return Z;let{RpcProvider:z}=await import("starknet"),I=await q.getRPCUrl(G);return Z=new z({nodeUrl:I}),Z}async function x(z){let I=await j(),J=z||await T();if(!J)return!1;try{return await I.getClassHashAt(J),!0}catch(Q){if(Q instanceof Error&&Q.message.includes("Contract not found"))return!1;let Y=Q;if(Y?.code===20||Y?.code===19)return!1;throw Q}}async function w(){let{CallData:z,hash:I}=await import("starknet"),J=await j(),Q=await H();if(!Q)throw new q.SwapKitError("toolbox_starknet_no_signer");if(!X)throw new q.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await x())return Q.address;let B=z.compile([X,0]);if(I.calculateContractAddressFromHash(X,v,B,0).toLowerCase()!==Q.address.toLowerCase())throw new q.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let N={addressSalt:X,classHash:v,constructorCalldata:B},{transaction_hash:O}=await Q.deployAccount(N);return await J.waitForTransaction(O),O}async function U(){if(!await x()){if(!X)throw new q.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await w()}}async function H(){if(L)return L;return L=await F.match(f).with({phrase:F.P.string},async({phrase:z})=>{let{Account:I,RpcProvider:J}=await import("starknet"),{privateKey:Q,address:Y,publicKey:B}=await m({derivationPath:M,phrase:z});X=B;let $=await q.getRPCUrl(q.Chain.Starknet),N=new J({nodeUrl:$});return new I({address:Y,provider:N,signer:Q})}).with({address:F.P.string,privateKey:F.P.string},async({privateKey:z,address:I})=>{let{Account:J}=await import("starknet"),Q=await j();return new J({address:I,provider:Q,signer:z})}).with({signer:F.P.instanceOf(Object)},({signer:z})=>z).otherwise(()=>{return}),L}async function T(){return(await H())?.address??""}async function R(z){let I=await j(),{uint256:J,CallData:Q}=await import("starknet"),Y=[],B=[b,d];for(let $ of B)try{let[N="0",O="0"]=await I.callContract({calldata:Q.compile({account:z}),contractAddress:$,entrypoint:"balanceOf"}),D=J.uint256ToBN({high:N,low:O});F.match($).with(b,()=>{Y.push(q.AssetValue.from({chain:G,value:D}))}).with(d,()=>{if(D>0n)Y.push(q.AssetValue.from({asset:`${G}.ETH-${$}`,value:D}))}).otherwise(()=>{})}catch{}return Y}async function k({recipient:z,assetValue:I}){let{CallData:J,uint256:Q}=await import("starknet");if(!_(z))throw new q.SwapKitError("core_transaction_invalid_recipient_address",{address:z});let Y=I.isGasAsset?b:I.address;if(!Y)throw new q.SwapKitError("toolbox_starknet_invalid_address",{address:Y,assetValue:I});let B=Q.bnToUint256(I.getBaseValue("bigint"));return[{calldata:J.compile([z,B]),contractAddress:Y,entrypoint:"transfer"}]}async function y({recipient:z,assetValue:I,sender:J}){let{baseDecimal:Q}=q.getChainConfig(q.Chain.Starknet),Y=await H(),B=await F.match({sender:J,signer:Y}).with({sender:F.P.string},async({sender:$})=>{let{Account:N}=await import("starknet"),O=await j();return new N({address:$,provider:O,signer:"0x0"})}).with({signer:F.P.nonNullable},({signer:$})=>$).otherwise(($)=>{throw new q.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:$}})});try{let $=await k({assetValue:I,recipient:z}),N=await B.estimateInvokeFee($);if(N?.overall_fee)return q.AssetValue.from({chain:G,fromBaseDecimal:Q,value:N.overall_fee})}catch($){throw new q.SwapKitError("toolbox_starknet_fee_estimation_failed",$)}return q.AssetValue.from({chain:G,value:"0.00001"})}async function u({recipient:z,assetValue:I,memo:J}){let Q=await H();if(!Q)throw new q.SwapKitError("toolbox_starknet_no_signer");await U();let Y=await k({assetValue:I,memo:J,recipient:z});return(await Q.execute(Y)).transaction_hash}async function t(z){let I=await H();if(!I)throw new q.SwapKitError("toolbox_starknet_no_signer");let J=await I.signMessage(z);return Array.isArray(J)?J:[J.r.toString(),J.s.toString()]}async function S(z){let I=await H();if(!I)throw new q.SwapKitError("toolbox_starknet_no_signer");return await U(),(await I.execute(z)).transaction_hash}function s(z){return S(z)}function r(z,I=!0){try{return n(G)(z,I)}catch{return R(z)}}return{broadcastTransaction:S,createKeysForPath:A,createTransaction:k,deployAccount:w,estimateTransactionFee:y,getAddress:T,getBalance:r,getProvider:j,isAccountDeployed:x,signAndBroadcastTransaction:s,signMessage:t,transfer:u,validateAddress:_}}var q,F,b="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",d="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",v="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var i=C(()=>{o();q=require("@swapkit/helpers"),F=require("ts-pattern")});var Yf={};Qf(Yf,{validateStarknetAddress:()=>_,starknetCreateKeysForPath:()=>A,getStarknetToolbox:()=>c,deriveStarknetKeys:()=>m});module.exports=zf(Yf);var $f=C(()=>{i()});$f();
@@ -0,0 +1 @@
1
+ var a=Object.defineProperty;var e=(f)=>f;function ff(f,z){this[f]=e.bind(null,z)}var qf=(f,z)=>{for(var X in z)a(f,X,{get:z[X],enumerable:!0,configurable:!0,set:ff.bind(z,X)})};var K=(f,z)=>()=>(f&&(z=f(f=0)),z);var Z=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(z,X)=>(typeof require<"u"?require:z)[X]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});import{AssetValue as P,getChainConfig as Gf}from"@swapkit/helpers";import{SwapKitApi as zf}from"@swapkit/helpers/api";function Bf(){function f(){let z=Date.now(),X=b||z;return b=X,z>b?z:X+1}return If+f().toString(36)}function l(f){return async function(X,H=!0){let M=await zf.getChainBalance({address:X,chain:f,scamFilter:H}),{baseDecimal:B}=Gf(f),Y=M.map(({identifier:N,value:V,decimal:U})=>{return new P({decimal:U||B,identifier:N,value:V})});if(!Y.some((N)=>N.isGasAsset))return[P.from({chain:f}),...Y];return Y}}var If,b=0;var n=K(()=>{If=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{AssetValue as R,Chain as _,DerivationPath as d,derivationPathToString as Jf,getChainConfig as Qf,getRPCUrl as u,NetworkDerivationPath as Wf,SwapKitError as $,updateDerivationPath as Xf}from"@swapkit/helpers";import{match as v,P as w}from"ts-pattern";function m(f){if(!f)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(f)}async function y({phrase:f,derivationPath:z=d.STRK}){let{HDKey:X}=await import("@scure/bip32"),{mnemonicToSeedSync:H}=await import("@scure/bip39"),{ec:M,hash:B,encode:Y,CallData:j}=await import("starknet"),N=H(f),U=X.fromMasterSeed(N).derive(z);if(!U.privateKey)throw new $("toolbox_starknet_no_signer");let x=Y.addHexPrefix(Buffer.from(U.privateKey).toString("hex")),E=M.starkCurve.grindKey(x),T=Y.addHexPrefix(E),k=M.starkCurve.getStarkKey(T),D=j.compile([k,0]);return{address:B.calculateContractAddressFromHash(k,S,D,0),privateKey:T,publicKey:k}}async function g({phrase:f,derivationPath:z=d.STRK}){let{Account:X,RpcProvider:H}=await import("starknet"),{privateKey:M,address:B}=await y({derivationPath:z,phrase:f}),Y=await u(_.Starknet),j=new H({nodeUrl:Y});return new X({address:B,provider:j,signer:M})}function c(f){let z=_.Starknet,X=f&&"index"in f?f.index||0:0,H=Jf(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:Xf(Wf[z],{index:X})),M,B,Y;async function j(){if(B)return B;let{RpcProvider:q}=await import("starknet"),G=await u(z);return B=new q({nodeUrl:G}),B}async function N(q){let G=await j(),I=q||await E();if(!I)return!1;try{return await G.getClassHashAt(I),!0}catch(J){if(J instanceof Error&&J.message.includes("Contract not found"))return!1;let Q=J;if(Q?.code===20||Q?.code===19)return!1;throw J}}async function V(){let{CallData:q,hash:G}=await import("starknet"),I=await j(),J=await x();if(!J)throw new $("toolbox_starknet_no_signer");if(!Y)throw new $({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await N())return J.address;let L=q.compile([Y,0]);if(G.calculateContractAddressFromHash(Y,S,L,0).toLowerCase()!==J.address.toLowerCase())throw new $({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let F={addressSalt:Y,classHash:S,constructorCalldata:L},{transaction_hash:O}=await J.deployAccount(F);return await I.waitForTransaction(O),O}async function U(){if(!await N()){if(!Y)throw new $({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await V()}}async function x(){if(M)return M;return M=await v(f).with({phrase:w.string},async({phrase:q})=>{let{Account:G,RpcProvider:I}=await import("starknet"),{privateKey:J,address:Q,publicKey:L}=await y({derivationPath:H,phrase:q});Y=L;let W=await u(_.Starknet),F=new I({nodeUrl:W});return new G({address:Q,provider:F,signer:J})}).with({address:w.string,privateKey:w.string},async({privateKey:q,address:G})=>{let{Account:I}=await import("starknet"),J=await j();return new I({address:G,provider:J,signer:q})}).with({signer:w.instanceOf(Object)},({signer:q})=>q).otherwise(()=>{return}),M}async function E(){return(await x())?.address??""}async function T(q){let G=await j(),{uint256:I,CallData:J}=await import("starknet"),Q=[],L=[A,o];for(let W of L)try{let[F="0",O="0"]=await G.callContract({calldata:J.compile({account:q}),contractAddress:W,entrypoint:"balanceOf"}),C=I.uint256ToBN({high:F,low:O});v(W).with(A,()=>{Q.push(R.from({chain:z,value:C}))}).with(o,()=>{if(C>0n)Q.push(R.from({asset:`${z}.ETH-${W}`,value:C}))}).otherwise(()=>{})}catch{}return Q}async function k({recipient:q,assetValue:G}){let{CallData:I,uint256:J}=await import("starknet");if(!m(q))throw new $("core_transaction_invalid_recipient_address",{address:q});let Q=G.isGasAsset?A:G.address;if(!Q)throw new $("toolbox_starknet_invalid_address",{address:Q,assetValue:G});let L=J.bnToUint256(G.getBaseValue("bigint"));return[{calldata:I.compile([q,L]),contractAddress:Q,entrypoint:"transfer"}]}async function D({recipient:q,assetValue:G,sender:I}){let{baseDecimal:J}=Qf(_.Starknet),Q=await x(),L=await v({sender:I,signer:Q}).with({sender:w.string},async({sender:W})=>{let{Account:F}=await import("starknet"),O=await j();return new F({address:W,provider:O,signer:"0x0"})}).with({signer:w.nonNullable},({signer:W})=>W).otherwise((W)=>{throw new $({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:W}})});try{let W=await k({assetValue:G,recipient:q}),F=await L.estimateInvokeFee(W);if(F?.overall_fee)return R.from({chain:z,fromBaseDecimal:J,value:F.overall_fee})}catch(W){throw new $("toolbox_starknet_fee_estimation_failed",W)}return R.from({chain:z,value:"0.00001"})}async function h({recipient:q,assetValue:G,memo:I}){let J=await x();if(!J)throw new $("toolbox_starknet_no_signer");await U();let Q=await k({assetValue:G,memo:I,recipient:q});return(await J.execute(Q)).transaction_hash}async function t(q){let G=await x();if(!G)throw new $("toolbox_starknet_no_signer");let I=await G.signMessage(q);return Array.isArray(I)?I:[I.r.toString(),I.s.toString()]}async function p(q){let G=await x();if(!G)throw new $("toolbox_starknet_no_signer");return await U(),(await G.execute(q)).transaction_hash}function s(q){return p(q)}function r(q,G=!0){try{return l(z)(q,G)}catch{return T(q)}}return{broadcastTransaction:p,createKeysForPath:g,createTransaction:k,deployAccount:V,estimateTransactionFee:D,getAddress:E,getBalance:r,getProvider:j,isAccountDeployed:N,signAndBroadcastTransaction:s,signMessage:t,transfer:h,validateAddress:m}}var A="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",o="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",S="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var i=K(()=>{n()});var $f={};qf($f,{validateStarknetAddress:()=>m,starknetCreateKeysForPath:()=>g,getStarknetToolbox:()=>c,deriveStarknetKeys:()=>y});var Mf=K(()=>{i()});Mf();export{m as validateStarknetAddress,g as starknetCreateKeysForPath,c as getStarknetToolbox,y as deriveStarknetKeys};
@@ -0,0 +1 @@
1
+ var u=Object.create;var{getPrototypeOf:l,defineProperty:I,getOwnPropertyNames:E,getOwnPropertyDescriptor:p}=Object,T=Object.prototype.hasOwnProperty;function w(x){return this[x]}var o,c,Px=(x,P,L)=>{var X=x!=null&&typeof x==="object";if(X){var M=P?o??=new WeakMap:c??=new WeakMap,_=M.get(x);if(_)return _}L=x!=null?u(l(x)):{};let R=P||!x||!x.__esModule?I(L,"default",{value:x,enumerable:!0}):L;for(let Z of E(x))if(!T.call(R,Z))I(R,Z,{get:w.bind(x,Z),enumerable:!0});if(X)M.set(x,R);return R},d=(x)=>{var P=(H??=new WeakMap).get(x),L;if(P)return P;if(P=I({},"__esModule",{value:!0}),x&&typeof x==="object"||typeof x==="function"){for(var X of E(x))if(!T.call(P,X))I(P,X,{get:w.bind(x,X),enumerable:!(L=p(x,X))||L.enumerable})}return H.set(x,P),P},H;var n=(x)=>x;function i(x,P){this[x]=n.bind(null,P)}var t=(x,P)=>{for(var L in P)I(x,L,{get:P[L],enumerable:!0,configurable:!0,set:i.bind(P,L)})};var k=(x,P)=>()=>(x&&(P=x(x=0)),P);function N(x){if(!x||typeof x!=="string"||!x.startsWith("G")||x.length!==56)return!1;return s.test(x)}async function r(x){if(!N(x))return!1;try{let{StrKey:P}=await import("@stellar/stellar-sdk");return P.isValidEd25519PublicKey(x)}catch{return!1}}function y(x={}){let P,L=x.derivationPath||f.NetworkDerivationPath[f.Chain.Stellar],X=f.derivationPathToString(L.slice(0,3));async function M({phrase:j,path:q}){let{HDKey:J}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:Q}=await import("@scure/bip39"),{Keypair:G}=await import("@stellar/stellar-sdk"),Y=Q(j),U=J.fromMasterSeed(Y).derive(q,!0);return G.fromRawEd25519Seed(Buffer.from(U.privateKey))}async function _(){if(P)return P;let j=F.match(x).with({phrase:F.P.string},({phrase:q})=>q).otherwise(()=>{return});if(!j)throw new f.SwapKitError("toolbox_stellar_no_signer");return P=await M({path:X,phrase:j}),P}async function R(){let{Horizon:j}=await import("@stellar/stellar-sdk"),q=await f.getRPCUrl(f.Chain.Stellar);return new j.Server(q)}async function Z(){try{return(await _()).publicKey()}catch{return""}}async function v(j){let q=j||await Z();if(!q)throw new f.SwapKitError("toolbox_stellar_account_not_found");try{return(await(await R()).loadAccount(q)).balances.map((G)=>{if(G.asset_type==="native")return f.AssetValue.from({chain:f.Chain.Stellar,value:G.balance});let Y="asset_code"in G?G.asset_code:"",W="asset_issuer"in G?G.asset_issuer:"";return f.AssetValue.from({asset:`${f.Chain.Stellar}.${Y}-${W}`,asyncTokenLookup:!1,value:G.balance})})}catch{return[f.AssetValue.from({chain:f.Chain.Stellar,value:0})]}}async function B({recipient:j,assetValue:q,memo:J,sender:Q}){if(J){if(new TextEncoder().encode(J).length>28)throw new f.SwapKitError("helpers_invalid_memo_type")}if(!await r(j))throw new f.SwapKitError("core_transaction_invalid_recipient_address");let Y=Q||await Z();if(!Y)throw new f.SwapKitError("toolbox_stellar_no_signer");let{Asset:W,Memo:U,Networks:V,Operation:D,TransactionBuilder:h}=await import("@stellar/stellar-sdk"),O=await R(),b=await O.fetchBaseFee(),m=await O.loadAccount(Y),$=new h(m,{fee:String(b),networkPassphrase:V.PUBLIC});if(q.isGasAsset)try{await O.loadAccount(j),$.addOperation(D.payment({amount:q.getValue("string"),asset:W.native(),destination:j}))}catch{$.addOperation(D.createAccount({destination:j,startingBalance:q.getValue("string")}))}else $.addOperation(D.payment({amount:q.getValue("string"),asset:new W(q.symbol,q.address),destination:j}));if(J)$.addMemo(U.text(J));return $.setTimeout(30).build()}async function C(j){let{TransactionBuilder:q,Networks:J}=await import("@stellar/stellar-sdk"),Q=await _(),G=q.fromXDR(j.toXDR(),J.PUBLIC);return G.sign(Q),G}async function z(j){try{let q=await R(),{hash:J}=await q.submitTransaction(j);return J}catch(q){throw new f.SwapKitError("toolbox_stellar_broadcast_error",q)}}async function K({recipient:j,assetValue:q,memo:J}){let Q=await _(),G=Q.publicKey(),Y=await B({assetValue:q,memo:J,recipient:j,sender:G});Y.sign(Q);try{return(await(await R()).submitTransaction(Y)).hash}catch(W){if(W instanceof f.SwapKitError)throw W;throw new f.SwapKitError("toolbox_stellar_transaction_failed",W)}}async function g(j){let q=await C(j);return z(q)}async function A(){let{baseDecimal:j}=f.getChainConfig(f.Chain.Stellar);try{let Q=(await(await R()).feeStats()).fee_charged.p50;return f.AssetValue.from({chain:f.Chain.Stellar,fromBaseDecimal:j,value:Q})}catch{return f.AssetValue.from({chain:f.Chain.Stellar,fromBaseDecimal:j,value:"100"})}}return{broadcastTransaction:z,createTransaction:B,estimateTransactionFee:A,getAddress:Z,getBalance:v,signAndBroadcastTransaction:g,signTransaction:C,transfer:K,validateAddress:N}}var f,F,s;var S=k(()=>{f=require("@swapkit/helpers"),F=require("ts-pattern"),s=/^G[A-Z2-7]{55}$/});var a={};t(a,{validateStellarAddress:()=>N,getStellarToolbox:()=>y});module.exports=d(a);var e=k(()=>{S()});e();
@@ -0,0 +1 @@
1
+ var h=Object.defineProperty;var b=(x)=>x;function m(x,j){this[x]=b.bind(null,j)}var u=(x,j)=>{for(var X in j)h(x,X,{get:j[X],enumerable:!0,configurable:!0,set:m.bind(j,X)})};var z=(x,j)=>()=>(x&&(j=x(x=0)),j);var Y=((x)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(j,X)=>(typeof require<"u"?require:j)[X]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});import{AssetValue as $,Chain as R,derivationPathToString as l,getChainConfig as p,getRPCUrl as o,NetworkDerivationPath as c,SwapKitError as W}from"@swapkit/helpers";import{match as d,P as n}from"ts-pattern";function M(x){if(!x||typeof x!=="string"||!x.startsWith("G")||x.length!==56)return!1;return i.test(x)}async function t(x){if(!M(x))return!1;try{let{StrKey:j}=await import("@stellar/stellar-sdk");return j.isValidEd25519PublicKey(x)}catch{return!1}}function H(x={}){let j,X=x.derivationPath||c[R.Stellar],T=l(X.slice(0,3));async function w({phrase:f,path:P}){let{HDKey:G}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:J}=await import("@scure/bip39"),{Keypair:q}=await import("@stellar/stellar-sdk"),Q=J(f),I=G.fromMasterSeed(Q).derive(P,!0);return q.fromRawEd25519Seed(Buffer.from(I.privateKey))}async function U(){if(j)return j;let f=d(x).with({phrase:n.string},({phrase:P})=>P).otherwise(()=>{return});if(!f)throw new W("toolbox_stellar_no_signer");return j=await w({path:T,phrase:f}),j}async function Z(){let{Horizon:f}=await import("@stellar/stellar-sdk"),P=await o(R.Stellar);return new f.Server(P)}async function F(){try{return(await U()).publicKey()}catch{return""}}async function k(f){let P=f||await F();if(!P)throw new W("toolbox_stellar_account_not_found");try{return(await(await Z()).loadAccount(P)).balances.map((q)=>{if(q.asset_type==="native")return $.from({chain:R.Stellar,value:q.balance});let Q="asset_code"in q?q.asset_code:"",L="asset_issuer"in q?q.asset_issuer:"";return $.from({asset:`${R.Stellar}.${Q}-${L}`,asyncTokenLookup:!1,value:q.balance})})}catch{return[$.from({chain:R.Stellar,value:0})]}}async function O({recipient:f,assetValue:P,memo:G,sender:J}){if(G){if(new TextEncoder().encode(G).length>28)throw new W("helpers_invalid_memo_type")}if(!await t(f))throw new W("core_transaction_invalid_recipient_address");let Q=J||await F();if(!Q)throw new W("toolbox_stellar_no_signer");let{Asset:L,Memo:I,Networks:K,Operation:N,TransactionBuilder:g}=await import("@stellar/stellar-sdk"),D=await Z(),A=await D.fetchBaseFee(),V=await D.loadAccount(Q),_=new g(V,{fee:String(A),networkPassphrase:K.PUBLIC});if(P.isGasAsset)try{await D.loadAccount(f),_.addOperation(N.payment({amount:P.getValue("string"),asset:L.native(),destination:f}))}catch{_.addOperation(N.createAccount({destination:f,startingBalance:P.getValue("string")}))}else _.addOperation(N.payment({amount:P.getValue("string"),asset:new L(P.symbol,P.address),destination:f}));if(G)_.addMemo(I.text(G));return _.setTimeout(30).build()}async function B(f){let{TransactionBuilder:P,Networks:G}=await import("@stellar/stellar-sdk"),J=await U(),q=P.fromXDR(f.toXDR(),G.PUBLIC);return q.sign(J),q}async function C(f){try{let P=await Z(),{hash:G}=await P.submitTransaction(f);return G}catch(P){throw new W("toolbox_stellar_broadcast_error",P)}}async function y({recipient:f,assetValue:P,memo:G}){let J=await U(),q=J.publicKey(),Q=await O({assetValue:P,memo:G,recipient:f,sender:q});Q.sign(J);try{return(await(await Z()).submitTransaction(Q)).hash}catch(L){if(L instanceof W)throw L;throw new W("toolbox_stellar_transaction_failed",L)}}async function S(f){let P=await B(f);return C(P)}async function v(){let{baseDecimal:f}=p(R.Stellar);try{let J=(await(await Z()).feeStats()).fee_charged.p50;return $.from({chain:R.Stellar,fromBaseDecimal:f,value:J})}catch{return $.from({chain:R.Stellar,fromBaseDecimal:f,value:"100"})}}return{broadcastTransaction:C,createTransaction:O,estimateTransactionFee:v,getAddress:F,getBalance:k,signAndBroadcastTransaction:S,signTransaction:B,transfer:y,validateAddress:M}}var i;var E=z(()=>{i=/^G[A-Z2-7]{55}$/});var s={};u(s,{validateStellarAddress:()=>M,getStellarToolbox:()=>H});var r=z(()=>{E()});r();export{M as validateStellarAddress,H as getStellarToolbox};
@@ -1,4 +1 @@
1
- var B=Object.create;var{getPrototypeOf:U,defineProperty:f,getOwnPropertyNames:A,getOwnPropertyDescriptor:V}=Object,C=Object.prototype.hasOwnProperty;var P=(e,t,n)=>{n=e!=null?B(U(e)):{};let r=t||!e||!e.__esModule?f(n,"default",{value:e,enumerable:!0}):n;for(let i of A(e))if(!C.call(r,i))f(r,i,{get:()=>e[i],enumerable:!0});return r},v=new WeakMap,L=(e)=>{var t=v.get(e),n;if(t)return t;if(t=f({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")A(e).map((r)=>!C.call(t,r)&&f(t,r,{get:()=>e[r],enumerable:!(n=V(e,r))||n.enumerable}));return v.set(e,t),t};var W=(e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0,configurable:!0,set:(r)=>t[n]=()=>r})};var g=(e,t)=>()=>(e&&(t=e(e=0)),t);async function H(e,t,n){try{let r=await e.query.system?.account?.(n);if(!r)return[t.set(0)];let{data:{free:i}}=r,o=l.SwapKitNumber.fromBigInt(BigInt(i.toString()),t.decimal).getValue("string");return[t.set(o)]}catch(r){let i=r instanceof Error?r.message:String(r);return console.error(`Error fetching substrate balance: ${i}`),[t.set(0)]}}async function O(e,t,n){try{let r=await e.query.flip?.account?.(n);if(!r)return[t.set(0)];let i=r.balance||r.data?.balance;if(!i||i.isEmpty)return[t.set(0)];let o=l.SwapKitNumber.fromBigInt(BigInt(i.toString()),t.decimal).getValue("string");return[t.set(o)]}catch(r){let i=r instanceof Error?r.message:String(r);return console.error(`Error fetching chainflip balance: ${i}`),[t.set(0)]}}function E(e,t){return function(r){let i=l.AssetValue.from({chain:e});switch(e){case l.Chain.Chainflip:return O(t,i,r);default:return H(t,i,r)}}}var l;var K=g(()=>{l=require("@swapkit/helpers")});var q,z,J,d;var x=g(()=>{q={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},z={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},J={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},d={DOT:q,FLIP:z,GENERIC:J}});function Q(e,t){switch(e){case a.Chain.Chainflip:return N(t);case a.Chain.Polkadot:return j(t);default:throw new a.SwapKitError("toolbox_substrate_not_supported",{chain:e})}}function p(e){return"address"in e}async function S(e,t){let{Keyring:n}=await import("@polkadot/api"),{cryptoWaitReady:r}=await import("@polkadot/util-crypto");return await r(),new n({ss58Format:t,type:"sr25519"}).addFromUri(e)}function re(e,t){let n=m.decodeAddress(e);return m.encodeAddress(n,t)}function R(e,t){return u.isHex(e)?u.hexToU8a(e):m.decodeAddress(e,void 0,t)}function D(e,t="ss58",n){if(t==="hex")return u.u8aToHex(e);return m.encodeAddress(e,n)}async function T({generic:e,chain:t,...n}){let{ApiPromise:r,WsProvider:i}=await import("@polkadot/api"),o=await a.getRPCUrl(t),s=new i(o),c=await r.create({noInitWarn:!0,provider:s}),y=a.AssetValue.from({chain:t}),_=e?d.GENERIC:d[t],M=await b.match(n).with({phrase:b.P.string},({phrase:w})=>S(w,d[t].prefix)).with({signer:b.P.any},({signer:w})=>w).otherwise(()=>{return});return F({api:c,chain:t,gasAsset:y,network:_,signer:M})}var u,m,a,b,j=({generic:e=!1,...t}={})=>{return T({chain:a.Chain.Polkadot,generic:e,...t})},N=async({generic:e=!1,...t}={})=>{return{...await T({chain:a.Chain.Chainflip,generic:e,...t})}},k=(e,t)=>e.rpc.system.accountNextIndex(t),h=(e,t)=>{try{let n=R(e,t);return D(n,"ss58",t),!0}catch{return!1}},I=(e,{recipient:t,assetValue:n})=>e.tx.balances?.transferAllowDeath?.(t,n.getBaseValue("number")),X=async(e,t,{recipient:n,assetValue:r,sender:i})=>{let o=I(e,{assetValue:r,recipient:n});if(!o)throw new a.SwapKitError("toolbox_substrate_transfer_error");let s=p(t),c=s?t.address:i;if(!c)throw new a.SwapKitError("core_transaction_invalid_sender_address");let y=await k(e,c);return(await o.signAndSend(s?t:c,{nonce:y,signer:s?void 0:t})).toString()},Y=async(e,t,n,{recipient:r,assetValue:i,sender:o})=>{let s=I(e,{assetValue:i,recipient:r}),c=p(t)?t.address:o;if(!c)return;let y=await s?.paymentInfo(c,{nonce:await k(e,c)})||{partialFee:0};return n.set(a.SwapKitNumber.fromBigInt(BigInt(y.partialFee.toString()),n.decimal).getValue("string"))},Z=async(e,t)=>{if(t)return e.send(t);return(await e.send()).toString()},$=async(e,t)=>{return await t.signAsync(e)},ee=(e,t,n)=>{if(n)return t.signAndSend(e,n);return t.signAndSend(e).toString()},te=async({signer:e,address:t,tx:n,callback:r,api:i})=>{let o=await k(i,t);if(r)n.signAndSend(t,{nonce:o,signer:e},r);return n.signAndSend(t,{nonce:o,signer:e}).toString()},F=({api:e,network:t,gasAsset:n,signer:r,chain:i})=>({api:e,broadcast:Z,convertAddress:re,createKeyring:(o)=>S(o,t.prefix),createTransaction:(o)=>I(e,o),decodeAddress:R,encodeAddress:D,estimateTransactionFee:(o)=>{if(!r)throw new a.SwapKitError("core_wallet_not_keypair_wallet");return Y(e,r,n,o)},gasAsset:n,getAddress:(o)=>{let s=o||r;if(!s)throw new a.SwapKitError("core_wallet_not_keypair_wallet");return p(s)?s.address:void 0},getBalance:E(i||a.Chain.Polkadot,e),network:t,sign:(o)=>{if(!r)throw new a.SwapKitError("core_wallet_not_keypair_wallet");if(p(r))return $(r,o);throw new a.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:o,callback:s,address:c})=>{if(!r)throw new a.SwapKitError("core_wallet_not_keypair_wallet");if(p(r))return ee(r,o,s);if(c)return te({address:c,api:e,callback:s,signer:r,tx:o});throw new a.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(o)=>{if(!r)throw new a.SwapKitError("core_wallet_not_keypair_wallet");return X(e,r,o)},validateAddress:(o)=>h(o,t.prefix)}),ne=({address:e,chain:t})=>{let{prefix:n}=t===a.Chain.Polkadot?d.DOT:d.FLIP;return h(e,n)||h(e,d.GENERIC.prefix)};var G=g(()=>{K();x();u=require("@polkadot/util"),m=require("@polkadot/util-crypto"),a=require("@swapkit/helpers"),b=require("ts-pattern")});var oe={};W(oe,{substrateValidateAddress:()=>ne,isKeyringPair:()=>p,getSubstrateToolbox:()=>Q,createSubstrateToolbox:()=>T,createKeyring:()=>S,SubstrateNetwork:()=>d,PolkadotToolbox:()=>j,ChainflipToolbox:()=>N,BaseSubstrateToolbox:()=>F});module.exports=L(oe);var ie=g(()=>{G();x()});ie();
2
-
3
- //# debugId=E70B686BD2CABE6464756E2164756E21
4
- //# sourceMappingURL=index.cjs.map
1
+ var D=Object.create;var{getPrototypeOf:G,defineProperty:S,getOwnPropertyNames:_,getOwnPropertyDescriptor:F}=Object,v=Object.prototype.hasOwnProperty;function A(e){return this[e]}var M,U,ie=(e,t,r)=>{var n=e!=null&&typeof e==="object";if(n){var i=t?M??=new WeakMap:U??=new WeakMap,a=i.get(e);if(a)return a}r=e!=null?D(G(e)):{};let s=t||!e||!e.__esModule?S(r,"default",{value:e,enumerable:!0}):r;for(let p of _(e))if(!v.call(s,p))S(s,p,{get:A.bind(e,p),enumerable:!0});if(n)i.set(e,s);return s},V=(e)=>{var t=(T??=new WeakMap).get(e),r;if(t)return t;if(t=S({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var n of _(e))if(!v.call(t,n))S(t,n,{get:A.bind(e,n),enumerable:!(r=F(e,n))||r.enumerable})}return T.set(e,t),t},T;var W=(e)=>e;function H(e,t){this[e]=W.bind(null,t)}var L=(e,t)=>{for(var r in t)S(e,r,{get:t[r],enumerable:!0,configurable:!0,set:H.bind(t,r)})};var ae=(e,t)=>()=>(e&&(t=e(e=0)),t);var ne={};L(ne,{isKeyringPair:()=>b,getSubstrateToolbox:()=>Q,getSubstrateAddressValidator:()=>j,createSubstrateToolbox:()=>R,createKeyring:()=>h,SubstrateNetwork:()=>m});module.exports=V(ne);var x=require("@polkadot/api"),w=require("@polkadot/util"),P=require("@polkadot/util-crypto"),c=require("@swapkit/helpers"),y=require("ts-pattern");var l=require("@swapkit/helpers");async function O(e,t,r){let n=[t.set(0)];if(!r)return n;try{let i=await e.query.system?.account?.(r);if(!i)return n;let{data:{free:a}}=i,s=l.SwapKitNumber.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(s)]}catch(i){let a=i instanceof Error?i.message:String(i);return console.error(`Error fetching substrate balance: ${a}`),n}}async function q(e,t,r){let n=[t.set(0)];if(!r)return n;try{let i=await e.query.flip?.account?.(r);if(!i)return n;let a=i.balance||i.data?.balance;if(!a||a.isEmpty)return n;let s=l.SwapKitNumber.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(s)]}catch(i){let a=i instanceof Error?i.message:String(i);return console.error(`Error fetching chainflip balance: ${a}`),n}}function C(e,t){return function(n){let i=l.AssetValue.from({chain:e});switch(e){case l.Chain.Chainflip:return q(t,i,n);default:return O(t,i,n)}}}var z={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},B={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},J={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},m={DOT:z,FLIP:B,GENERIC:J};function Q(e,t){return y.match(e).with(...c.SubstrateChains,(r)=>R({chain:r,...t})).exhaustive()}function b(e){return"address"in e}async function h(e,t){let{Keyring:r}=await import("@polkadot/api"),{cryptoWaitReady:n}=await import("@polkadot/util-crypto");return await n(),new r({ss58Format:t,type:"sr25519"}).addFromUri(e)}var I=(e,t)=>e.rpc.system.accountNextIndex(t),k=(e,{recipient:t,assetValue:r})=>e.tx.balances?.transferAllowDeath?.(t,r.getBaseValue("number")),X=async(e,t,{recipient:r,assetValue:n,sender:i})=>{let a=k(e,{assetValue:n,recipient:r});if(!a)throw new c.SwapKitError("toolbox_substrate_transfer_error");let s=b(t),p=s?t.address:i;if(!p)throw new c.SwapKitError("core_transaction_invalid_sender_address");let g=await I(e,p);return(await a.signAndSend(s?t:p,{nonce:g,signer:s?void 0:t})).toString()},Y=async(e,t,r,{recipient:n,assetValue:i,sender:a})=>{let s=k(e,{assetValue:i,recipient:n}),p=b(t)?t.address:a;if(!p)return Promise.resolve(r.set(0));let g=await s?.paymentInfo(p,{nonce:await I(e,p)})||{partialFee:0};return r.set(c.SwapKitNumber.fromBigInt(BigInt(g.partialFee.toString()),r.decimal).getValue("string"))},Z=async(e,t)=>{if(t)return e.send(t);return(await e.send()).toString()},$=async(e,t)=>{return await t.signAsync(e)},ee=(e,t,r)=>{if(r)return t.signAndSend(e,r);return t.signAndSend(e).toString()},te=async({signer:e,address:t,tx:r,callback:n,api:i})=>{let a=await I(i,t);if(n)r.signAndSend(t,{nonce:a,signer:e},n);return r.signAndSend(t,{nonce:a,signer:e}).toString()};function re(e,t){let r=P.decodeAddress(e);return P.encodeAddress(r,t)}function E(e,t){return w.isHex(e)?w.hexToU8a(e):P.decodeAddress(e,void 0,t)}function K(e,t="ss58",r){if(t==="hex")return w.u8aToHex(e);return P.encodeAddress(e,r)}function j({chain:e,prefix:t}){let r=t||y.match(e).with(c.Chain.Polkadot,()=>m.DOT.prefix).with(c.Chain.Chainflip,()=>m.FLIP.prefix).otherwise(()=>m.GENERIC.prefix);return function(i){try{let a=E(i,r);return K(a,"ss58",r),!0}catch{return!1}}}function R({chain:e,generic:t=!1,...r}){let n=c.AssetValue.from({chain:e}),i;async function a(){let o=await c.getRPCUrl(e),d=new x.WsProvider(o);return x.ApiPromise.create({noInitWarn:!0,provider:d})}async function s(){if(i)return i;return i=await y.match(r).with({phrase:y.P.string},({phrase:o})=>h(o,m[e].prefix)).with({signer:y.P.any},({signer:o})=>o).otherwise(()=>{return}),i}let p=t?m.GENERIC:m[e];async function g(o){let d=await s(),u=o||d;if(!u)throw new c.SwapKitError("core_wallet_not_keypair_wallet");return b(u)?u.address:void 0}return{broadcast:Z,convertAddress:re,createKeyring:(o)=>h(o,p.prefix),createTransaction:async(o)=>{let d=await a();return k(d,o)},decodeAddress:E,encodeAddress:K,estimateTransactionFee:async(o)=>{let d=await s();if(!d)throw new c.SwapKitError("core_wallet_not_keypair_wallet");let u=await a();return Y(u,d,n,o)},gasAsset:n,getAddress:g,getApi:a,getBalance:async(o)=>{let d=await a(),u=C(e,d),f=o||await g();return u(f)},network:p,sign:async(o)=>{let d=await s();if(!d)throw new c.SwapKitError("core_wallet_not_keypair_wallet");if(b(d))return $(d,o);throw new c.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx:o,callback:d,address:u})=>{let f=await s();if(!f)throw new c.SwapKitError("core_wallet_not_keypair_wallet");if(b(f))return ee(f,o,d);let N=await a();if(u)return te({address:u,api:N,callback:d,signer:f,tx:o});throw new c.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(o)=>{let d=await s();if(!d)throw new c.SwapKitError("core_wallet_not_keypair_wallet");let u=await a();return X(u,d,o)},validateAddress:j({chain:e,prefix:p.prefix})}}
@@ -1,4 +1 @@
1
- var M=Object.create;var{getPrototypeOf:B,defineProperty:f,getOwnPropertyNames:U}=Object;var V=Object.prototype.hasOwnProperty;var b=(e,t,n)=>{n=e!=null?M(B(e)):{};let r=t||!e||!e.__esModule?f(n,"default",{value:e,enumerable:!0}):n;for(let i of U(e))if(!V.call(r,i))f(r,i,{get:()=>e[i],enumerable:!0});return r};var L=(e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0,configurable:!0,set:(r)=>t[n]=()=>r})};var m=(e,t)=>()=>(e&&(t=e(e=0)),t);var g=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{AssetValue as W,Chain as H,SwapKitNumber as T}from"@swapkit/helpers";async function O(e,t,n){try{let r=await e.query.system?.account?.(n);if(!r)return[t.set(0)];let{data:{free:i}}=r,o=T.fromBigInt(BigInt(i.toString()),t.decimal).getValue("string");return[t.set(o)]}catch(r){let i=r instanceof Error?r.message:String(r);return console.error(`Error fetching substrate balance: ${i}`),[t.set(0)]}}async function q(e,t,n){try{let r=await e.query.flip?.account?.(n);if(!r)return[t.set(0)];let i=r.balance||r.data?.balance;if(!i||i.isEmpty)return[t.set(0)];let o=T.fromBigInt(BigInt(i.toString()),t.decimal).getValue("string");return[t.set(o)]}catch(r){let i=r instanceof Error?r.message:String(r);return console.error(`Error fetching chainflip balance: ${i}`),[t.set(0)]}}function _(e,t){return function(r){let i=W.from({chain:e});switch(e){case H.Chainflip:return q(t,i,r);default:return O(t,i,r)}}}var v=()=>{};var z,J,Q,d;var w=m(()=>{z={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},J={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},Q={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},d={DOT:z,FLIP:J,GENERIC:Q}});import{hexToU8a as X,isHex as Y,u8aToHex as Z}from"@polkadot/util";import{decodeAddress as C,encodeAddress as E}from"@polkadot/util-crypto";import{AssetValue as $,Chain as p,getRPCUrl as ee,SwapKitError as c,SwapKitNumber as te}from"@swapkit/helpers";import{match as re,P as A}from"ts-pattern";function ne(e,t){switch(e){case p.Chainflip:return j(t);case p.Polkadot:return K(t);default:throw new c("toolbox_substrate_not_supported",{chain:e})}}function l(e){return"address"in e}async function x(e,t){let{Keyring:n}=await import("@polkadot/api"),{cryptoWaitReady:r}=await import("@polkadot/util-crypto");return await r(),new n({ss58Format:t,type:"sr25519"}).addFromUri(e)}function le(e,t){let n=C(e);return E(n,t)}function N(e,t){return Y(e)?X(e):C(e,void 0,t)}function R(e,t="ss58",n){if(t==="hex")return Z(e);return E(e,n)}async function k({generic:e,chain:t,...n}){let{ApiPromise:r,WsProvider:i}=await import("@polkadot/api"),o=await ee(t),a=new i(o),s=await r.create({noInitWarn:!0,provider:a}),u=$.from({chain:t}),I=e?d.GENERIC:d[t],G=await re(n).with({phrase:A.string},({phrase:y})=>x(y,d[t].prefix)).with({signer:A.any},({signer:y})=>y).otherwise(()=>{return});return D({api:s,chain:t,gasAsset:u,network:I,signer:G})}var K=({generic:e=!1,...t}={})=>{return k({chain:p.Polkadot,generic:e,...t})},j=async({generic:e=!1,...t}={})=>{return{...await k({chain:p.Chainflip,generic:e,...t})}},h=(e,t)=>e.rpc.system.accountNextIndex(t),P=(e,t)=>{try{let n=N(e,t);return R(n,"ss58",t),!0}catch{return!1}},S=(e,{recipient:t,assetValue:n})=>e.tx.balances?.transferAllowDeath?.(t,n.getBaseValue("number")),oe=async(e,t,{recipient:n,assetValue:r,sender:i})=>{let o=S(e,{assetValue:r,recipient:n});if(!o)throw new c("toolbox_substrate_transfer_error");let a=l(t),s=a?t.address:i;if(!s)throw new c("core_transaction_invalid_sender_address");let u=await h(e,s);return(await o.signAndSend(a?t:s,{nonce:u,signer:a?void 0:t})).toString()},ie=async(e,t,n,{recipient:r,assetValue:i,sender:o})=>{let a=S(e,{assetValue:i,recipient:r}),s=l(t)?t.address:o;if(!s)return;let u=await a?.paymentInfo(s,{nonce:await h(e,s)})||{partialFee:0};return n.set(te.fromBigInt(BigInt(u.partialFee.toString()),n.decimal).getValue("string"))},ae=async(e,t)=>{if(t)return e.send(t);return(await e.send()).toString()},se=async(e,t)=>{return await t.signAsync(e)},ce=(e,t,n)=>{if(n)return t.signAndSend(e,n);return t.signAndSend(e).toString()},de=async({signer:e,address:t,tx:n,callback:r,api:i})=>{let o=await h(i,t);if(r)n.signAndSend(t,{nonce:o,signer:e},r);return n.signAndSend(t,{nonce:o,signer:e}).toString()},D=({api:e,network:t,gasAsset:n,signer:r,chain:i})=>({api:e,broadcast:ae,convertAddress:le,createKeyring:(o)=>x(o,t.prefix),createTransaction:(o)=>S(e,o),decodeAddress:N,encodeAddress:R,estimateTransactionFee:(o)=>{if(!r)throw new c("core_wallet_not_keypair_wallet");return ie(e,r,n,o)},gasAsset:n,getAddress:(o)=>{let a=o||r;if(!a)throw new c("core_wallet_not_keypair_wallet");return l(a)?a.address:void 0},getBalance:_(i||p.Polkadot,e),network:t,sign:(o)=>{if(!r)throw new c("core_wallet_not_keypair_wallet");if(l(r))return se(r,o);throw new c("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:o,callback:a,address:s})=>{if(!r)throw new c("core_wallet_not_keypair_wallet");if(l(r))return ce(r,o,a);if(s)return de({address:s,api:e,callback:a,signer:r,tx:o});throw new c("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(o)=>{if(!r)throw new c("core_wallet_not_keypair_wallet");return oe(e,r,o)},validateAddress:(o)=>P(o,t.prefix)}),pe=({address:e,chain:t})=>{let{prefix:n}=t===p.Polkadot?d.DOT:d.FLIP;return P(e,n)||P(e,d.GENERIC.prefix)};var F=m(()=>{v();w()});var ue={};L(ue,{substrateValidateAddress:()=>pe,isKeyringPair:()=>l,getSubstrateToolbox:()=>ne,createSubstrateToolbox:()=>k,createKeyring:()=>x,SubstrateNetwork:()=>d,PolkadotToolbox:()=>K,ChainflipToolbox:()=>j,BaseSubstrateToolbox:()=>D});var me=m(()=>{F();w()});me();export{pe as substrateValidateAddress,l as isKeyringPair,ne as getSubstrateToolbox,k as createSubstrateToolbox,x as createKeyring,d as SubstrateNetwork,K as PolkadotToolbox,j as ChainflipToolbox,D as BaseSubstrateToolbox};
2
-
3
- //# debugId=B7D4FEDB8FA505BB64756E2164756E21
4
- //# sourceMappingURL=index.js.map
1
+ var E=Object.defineProperty;var K=(e)=>e;function j(e,t){this[e]=K.bind(null,t)}var ie=(e,t)=>{for(var r in t)E(e,r,{get:t[r],enumerable:!0,configurable:!0,set:j.bind(t,r)})};var ae=(e,t)=>()=>(e&&(t=e(e=0)),t);var P=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{ApiPromise as V,WsProvider as W}from"@polkadot/api";import{hexToU8a as H,isHex as L,u8aToHex as O}from"@polkadot/util";import{decodeAddress as T,encodeAddress as _}from"@polkadot/util-crypto";import{AssetValue as q,Chain as h,getRPCUrl as z,SubstrateChains as B,SwapKitError as u,SwapKitNumber as J}from"@swapkit/helpers";import{match as f,P as I}from"ts-pattern";import{AssetValue as R,Chain as N,SwapKitNumber as S}from"@swapkit/helpers";async function D(e,t,r){let i=[t.set(0)];if(!r)return i;try{let n=await e.query.system?.account?.(r);if(!n)return i;let{data:{free:a}}=n,c=S.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(c)]}catch(n){let a=n instanceof Error?n.message:String(n);return console.error(`Error fetching substrate balance: ${a}`),i}}async function G(e,t,r){let i=[t.set(0)];if(!r)return i;try{let n=await e.query.flip?.account?.(r);if(!n)return i;let a=n.balance||n.data?.balance;if(!a||a.isEmpty)return i;let c=S.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(c)]}catch(n){let a=n instanceof Error?n.message:String(n);return console.error(`Error fetching chainflip balance: ${a}`),i}}function x(e,t){return function(i){let n=R.from({chain:e});switch(e){case N.Chainflip:return G(t,n,i);default:return D(t,n,i)}}}var F={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},M={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},U={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},m={DOT:F,FLIP:M,GENERIC:U};function be(e,t){return f(e).with(...B,(r)=>ne({chain:r,...t})).exhaustive()}function g(e){return"address"in e}async function k(e,t){let{Keyring:r}=await import("@polkadot/api"),{cryptoWaitReady:i}=await import("@polkadot/util-crypto");return await i(),new r({ss58Format:t,type:"sr25519"}).addFromUri(e)}var b=(e,t)=>e.rpc.system.accountNextIndex(t),w=(e,{recipient:t,assetValue:r})=>e.tx.balances?.transferAllowDeath?.(t,r.getBaseValue("number")),Q=async(e,t,{recipient:r,assetValue:i,sender:n})=>{let a=w(e,{assetValue:i,recipient:r});if(!a)throw new u("toolbox_substrate_transfer_error");let c=g(t),p=c?t.address:n;if(!p)throw new u("core_transaction_invalid_sender_address");let l=await b(e,p);return(await a.signAndSend(c?t:p,{nonce:l,signer:c?void 0:t})).toString()},X=async(e,t,r,{recipient:i,assetValue:n,sender:a})=>{let c=w(e,{assetValue:n,recipient:i}),p=g(t)?t.address:a;if(!p)return Promise.resolve(r.set(0));let l=await c?.paymentInfo(p,{nonce:await b(e,p)})||{partialFee:0};return r.set(J.fromBigInt(BigInt(l.partialFee.toString()),r.decimal).getValue("string"))},Y=async(e,t)=>{if(t)return e.send(t);return(await e.send()).toString()},Z=async(e,t)=>{return await t.signAsync(e)},$=(e,t,r)=>{if(r)return t.signAndSend(e,r);return t.signAndSend(e).toString()},ee=async({signer:e,address:t,tx:r,callback:i,api:n})=>{let a=await b(n,t);if(i)r.signAndSend(t,{nonce:a,signer:e},i);return r.signAndSend(t,{nonce:a,signer:e}).toString()};function te(e,t){let r=T(e);return _(r,t)}function v(e,t){return L(e)?H(e):T(e,void 0,t)}function A(e,t="ss58",r){if(t==="hex")return O(e);return _(e,r)}function re({chain:e,prefix:t}){let r=t||f(e).with(h.Polkadot,()=>m.DOT.prefix).with(h.Chainflip,()=>m.FLIP.prefix).otherwise(()=>m.GENERIC.prefix);return function(n){try{let a=v(n,r);return A(a,"ss58",r),!0}catch{return!1}}}function ne({chain:e,generic:t=!1,...r}){let i=q.from({chain:e}),n;async function a(){let o=await z(e),s=new W(o);return V.create({noInitWarn:!0,provider:s})}async function c(){if(n)return n;return n=await f(r).with({phrase:I.string},({phrase:o})=>k(o,m[e].prefix)).with({signer:I.any},({signer:o})=>o).otherwise(()=>{return}),n}let p=t?m.GENERIC:m[e];async function l(o){let s=await c(),d=o||s;if(!d)throw new u("core_wallet_not_keypair_wallet");return g(d)?d.address:void 0}return{broadcast:Y,convertAddress:te,createKeyring:(o)=>k(o,p.prefix),createTransaction:async(o)=>{let s=await a();return w(s,o)},decodeAddress:v,encodeAddress:A,estimateTransactionFee:async(o)=>{let s=await c();if(!s)throw new u("core_wallet_not_keypair_wallet");let d=await a();return X(d,s,i,o)},gasAsset:i,getAddress:l,getApi:a,getBalance:async(o)=>{let s=await a(),d=x(e,s),y=o||await l();return d(y)},network:p,sign:async(o)=>{let s=await c();if(!s)throw new u("core_wallet_not_keypair_wallet");if(g(s))return Z(s,o);throw new u("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx:o,callback:s,address:d})=>{let y=await c();if(!y)throw new u("core_wallet_not_keypair_wallet");if(g(y))return $(y,o,s);let C=await a();if(d)return ee({address:d,api:C,callback:s,signer:y,tx:o});throw new u("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(o)=>{let s=await c();if(!s)throw new u("core_wallet_not_keypair_wallet");let d=await a();return Q(d,s,o)},validateAddress:re({chain:e,prefix:p.prefix})}}export{g as isKeyringPair,be as getSubstrateToolbox,re as getSubstrateAddressValidator,ne as createSubstrateToolbox,k as createKeyring,m as SubstrateNetwork};