@swapkit/toolboxes 4.23.1 → 4.25.0

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 (78) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/chunk-ap5mzmjf.js +1 -0
  3. package/dist/{chunk-9psy287z.js → chunk-btth5bse.js} +1 -1
  4. package/dist/{chunk-jdh5asaw.js → chunk-nvfkjbyq.js} +1 -1
  5. package/dist/{chunk-fjyc6m34.js → chunk-xbdjxeqd.js} +1 -1
  6. package/dist/chunk-z61r1327.js +2 -0
  7. package/dist/src/aleo/index.cjs +1 -0
  8. package/dist/src/aleo/index.js +1 -0
  9. package/dist/src/aptos/index.cjs +1 -1
  10. package/dist/src/aptos/index.js +1 -1
  11. package/dist/src/cardano/index.cjs +1 -1
  12. package/dist/src/cardano/index.js +1 -1
  13. package/dist/src/cosmos/index.cjs +1 -1
  14. package/dist/src/cosmos/index.js +1 -1
  15. package/dist/src/evm/index.cjs +1 -1
  16. package/dist/src/evm/index.js +1 -1
  17. package/dist/src/hypercore/index.cjs +1 -1
  18. package/dist/src/hypercore/index.js +1 -1
  19. package/dist/src/index.cjs +1 -1
  20. package/dist/src/index.js +1 -1
  21. package/dist/src/near/index.cjs +1 -1
  22. package/dist/src/near/index.js +1 -1
  23. package/dist/src/radix/index.js +1 -1
  24. package/dist/src/ripple/index.cjs +1 -1
  25. package/dist/src/ripple/index.js +1 -1
  26. package/dist/src/solana/index.cjs +1 -1
  27. package/dist/src/solana/index.js +1 -1
  28. package/dist/src/starknet/index.cjs +1 -1
  29. package/dist/src/starknet/index.js +1 -1
  30. package/dist/src/stellar/index.cjs +1 -1
  31. package/dist/src/stellar/index.js +1 -1
  32. package/dist/src/substrate/index.cjs +1 -1
  33. package/dist/src/substrate/index.js +1 -1
  34. package/dist/src/sui/index.cjs +1 -1
  35. package/dist/src/sui/index.js +1 -1
  36. package/dist/src/ton/index.cjs +1 -1
  37. package/dist/src/ton/index.js +1 -1
  38. package/dist/src/tron/index.cjs +1 -1
  39. package/dist/src/tron/index.js +1 -1
  40. package/dist/src/utxo/index.cjs +1 -1
  41. package/dist/src/utxo/index.js +1 -1
  42. package/dist/types/aleo/helpers.d.ts +62 -0
  43. package/dist/types/aleo/index.d.ts +3 -0
  44. package/dist/types/aleo/toolbox.d.ts +40 -0
  45. package/dist/types/aleo/types.d.ts +32 -0
  46. package/dist/types/aptos/toolbox.d.ts +11 -7
  47. package/dist/types/cardano/toolbox.d.ts +2 -2
  48. package/dist/types/cosmos/thorchainUtils/messages.d.ts +2 -1
  49. package/dist/types/cosmos/thorchainUtils/registry.d.ts +1 -1
  50. package/dist/types/cosmos/toolbox/cosmos.d.ts +1 -1
  51. package/dist/types/cosmos/toolbox/thorchain.d.ts +6 -6
  52. package/dist/types/cosmos/util.d.ts +16 -2
  53. package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +66 -21
  54. package/dist/types/evm/toolbox/evm.d.ts +1603 -234
  55. package/dist/types/evm/toolbox/op.d.ts +235 -11
  56. package/dist/types/evm/types.d.ts +7 -13
  57. package/dist/types/hypercore/toolbox.d.ts +2 -2
  58. package/dist/types/hypercore/types.d.ts +3 -1
  59. package/dist/types/index.d.ts +4 -0
  60. package/dist/types/near/toolbox.d.ts +22 -3
  61. package/dist/types/near/types.d.ts +4 -1
  62. package/dist/types/ripple/index.d.ts +3 -2
  63. package/dist/types/solana/toolbox.d.ts +2 -2
  64. package/dist/types/starknet/toolbox.d.ts +2 -2
  65. package/dist/types/starknet/types.d.ts +3 -12
  66. package/dist/types/stellar/toolbox.d.ts +2 -2
  67. package/dist/types/sui/toolbox.d.ts +3 -3
  68. package/dist/types/ton/toolbox.d.ts +1 -4
  69. package/dist/types/tron/toolbox.d.ts +2 -2
  70. package/dist/types/types.d.ts +2 -0
  71. package/dist/types/utxo/hdWallet.d.ts +1 -1
  72. package/dist/types/utxo/helpers/coinselect.d.ts +2 -1
  73. package/dist/types/utxo/toolbox/bitcoinCash.d.ts +7 -5
  74. package/dist/types/utxo/toolbox/utxo.d.ts +8 -5
  75. package/dist/types/utxo/toolbox/zcash.d.ts +6 -4
  76. package/package.json +9 -2
  77. package/dist/chunk-6b99avsd.js +0 -2
  78. package/dist/chunk-e02sjx7s.js +0 -1
@@ -1 +1 @@
1
- var s=Object.create;var{getPrototypeOf:e,defineProperty:O,getOwnPropertyNames:g,getOwnPropertyDescriptor:PP}=Object,h=Object.prototype.hasOwnProperty;function m(P){return this[P]}var jP,qP,NP=(P,q,Z)=>{var M=P!=null&&typeof P==="object";if(M){var N=q?jP??=new WeakMap:qP??=new WeakMap,L=N.get(P);if(L)return L}Z=P!=null?s(e(P)):{};let W=q||!P||!P.__esModule?O(Z,"default",{value:P,enumerable:!0}):Z;for(let _ of g(P))if(!h.call(W,_))O(W,_,{get:m.bind(P,_),enumerable:!0});if(M)N.set(P,W);return W},GP=(P)=>{var q=(v??=new WeakMap).get(P),Z;if(q)return q;if(q=O({},"__esModule",{value:!0}),P&&typeof P==="object"||typeof P==="function"){for(var M of g(P))if(!h.call(q,M))O(q,M,{get:m.bind(P,M),enumerable:!(Z=PP(P,M))||Z.enumerable})}return v.set(P,q),q},v;var JP=(P)=>P;function QP(P,q){this[P]=JP.bind(null,q)}var XP=(P,q)=>{for(var Z in q)O(P,Z,{get:q[Z],enumerable:!0,configurable:!0,set:QP.bind(q,Z)})};var b=(P,q)=>()=>(P&&(q=P(P=0)),q);async function WP(P){if(k&&Date.now()-k.timestamp<MP)return k.value;let Z=(await P.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(Z===void 0)throw new j.SwapKitError({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return k={timestamp:Date.now(),value:Z},Z}function p(P){return j.AssetValue.from({chain:j.Chain.Stellar,value:P}).getBaseValue("bigint")}function FP({balance:P,baseReserveInStroops:q,numSponsored:Z,numSponsoring:M,sellingLiabilities:N,subentryCount:L}){let W=p(P),_=p(N),z=$P+L+M-Z,U=BigInt(z)*BigInt(q),B=W-U-_;return B>0n?B:0n}function y(P){if(!P||typeof P!=="string"||!P.startsWith("G")||P.length!==56)return!1;return YP.test(P)}function l(P){if(typeof P!=="object"||P===null)return;let q="response"in P?P.response:void 0;return typeof q?.status==="number"?q.status:void 0}function fP(P){return l(P)===504}function wP(P){return P.hash?.().toString("hex")}function LP(P){return[...new Set([P,...j.SKConfig.get("rpcUrls")[j.Chain.Stellar]])].filter(Boolean)}async function d(P){if(!y(P))return!1;try{let{StrKey:q}=await import("@stellar/stellar-sdk");return q.isValidEd25519PublicKey(P)}catch{return!1}}async function u(P){let{address:q,ticker:Z}=P,M=q?await d(q):!1;if(P.chain!==j.Chain.Stellar||P.isGasAsset||!ZP.test(Z)||!q||!M)throw new j.SwapKitError({errorKey:"helpers_invalid_asset_identifier",info:{identifier:P.toString()}});return{assetCode:Z,issuer:q}}function c(P={}){let q,Z=P.derivationPath||j.NetworkDerivationPath[j.Chain.Stellar],M=j.derivationPathToString(Z.slice(0,3));async function N({phrase:G,path:J}){let{HDKey:X}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:Q}=await import("@scure/bip39"),{Keypair:$}=await import("@stellar/stellar-sdk"),Y=Q(G),F=X.fromMasterSeed(Y).derive(J,!0);return $.fromRawEd25519Seed(Buffer.from(F.privateKey))}async function L(){if(q)return q;let G=H.match(P).with({phrase:H.P.string},({phrase:J})=>J).otherwise(()=>{return});if(!G)throw new j.SwapKitError("toolbox_stellar_no_signer");return q=await N({path:M,phrase:G}),q}async function W(G){let{Horizon:J}=await import("@stellar/stellar-sdk"),X=G||await j.getRPCUrl(j.Chain.Stellar);return new J.Server(X)}async function _(G,J){for(let X of J)try{return(await(await W(X)).transactions().transaction(G).call()).hash||G}catch{}return}async function z(G,J){let X=await j.getRPCUrl(j.Chain.Stellar),Q=LP(X),$=wP(G),Y;for(let f of Q)try{let F=await W(f),{hash:w}=await F.submitTransaction(G);return w}catch(F){if(Y=F,!fP(F))break;let w=$?await _($,Q):void 0;if(w)return w}throw new j.SwapKitError(J,Y)}async function U(){try{return(await L()).publicKey()}catch{return""}}async function B(G){let J=G||await U();if(!J)throw new j.SwapKitError("toolbox_stellar_account_not_found");let X=await W(),[Q,$]=await Promise.allSettled([X.loadAccount(J),WP(X)]);if(Q.status==="rejected"){let Y=Q.reason;if(l(Y)===404)return[j.AssetValue.from({chain:j.Chain.Stellar,value:0})];throw Y}if($.status==="rejected")throw $.reason;return Q.value.balances.map((Y)=>{if(Y.asset_type==="native"){let w=FP({balance:Y.balance,baseReserveInStroops:$.value,numSponsored:Q.value.num_sponsored,numSponsoring:Q.value.num_sponsoring,sellingLiabilities:Y.selling_liabilities,subentryCount:Q.value.subentry_count}),{baseDecimal:D}=j.getChainConfig(j.Chain.Stellar);return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:D,value:w})}let f="asset_code"in Y?Y.asset_code:"",F="asset_issuer"in Y?Y.asset_issuer:"";return j.AssetValue.from({asset:`${j.Chain.Stellar}.${f}-${F}`,asyncTokenLookup:!1,value:Y.balance})})}async function S({recipient:G,assetValue:J,memo:X,sender:Q}){if(X){if(new TextEncoder().encode(X).length>28)throw new j.SwapKitError("helpers_invalid_memo_type")}if(!await d(G))throw new j.SwapKitError("core_transaction_invalid_recipient_address");let Y=Q||await U();if(!Y)throw new j.SwapKitError("toolbox_stellar_no_signer");let{Asset:f,Memo:F,Networks:w,Operation:D,TransactionBuilder:I}=await import("@stellar/stellar-sdk"),E=await W(),C=await E.fetchBaseFee(),K=await E.loadAccount(Y),x=new I(K,{fee:String(C),networkPassphrase:w.PUBLIC});if(J.isGasAsset)try{await E.loadAccount(G),x.addOperation(D.payment({amount:J.getValue("string"),asset:f.native(),destination:G}))}catch{x.addOperation(D.createAccount({destination:G,startingBalance:J.getValue("string")}))}else{let{assetCode:V,issuer:a}=await u(J);x.addOperation(D.payment({amount:J.getValue("string"),asset:new f(V,a),destination:G}))}if(X)x.addMemo(F.text(X));return x.setTimeout(30).build()}async function R({assetValue:G,limit:J,sender:X}){let Q=X||await U();if(!Q)throw new j.SwapKitError("toolbox_stellar_no_signer");let{Asset:$,Networks:Y,Operation:f,TransactionBuilder:F}=await import("@stellar/stellar-sdk"),{assetCode:w,issuer:D}=await u(G),I=await W(),[E,C]=await Promise.all([I.fetchBaseFee(),I.loadAccount(Q)]),K=new $(w,D),x=J!==void 0?f.changeTrust({asset:K,limit:J}):f.changeTrust({asset:K});return new F(C,{fee:String(E),networkPassphrase:Y.PUBLIC}).addOperation(x).setTimeout(30).build()}async function A(G){let{TransactionBuilder:J,Networks:X}=await import("@stellar/stellar-sdk"),Q=await L(),$=J.fromXDR(G.toXDR(),X.PUBLIC);return $.sign(Q),$}function T(G){return z(G,"toolbox_stellar_broadcast_error")}async function i({recipient:G,assetValue:J,memo:X}){let Q=await L(),$=Q.publicKey(),Y=await S({assetValue:J,memo:X,recipient:G,sender:$});return Y.sign(Q),z(Y,"toolbox_stellar_transaction_failed")}async function n({assetValue:G,limit:J}){let X=await L(),Q=await R({assetValue:G,limit:J,sender:X.publicKey()});return Q.sign(X),z(Q,"toolbox_stellar_transaction_failed")}async function t(G){let J=await A(G);return T(J)}async function r(){let{baseDecimal:G}=j.getChainConfig(j.Chain.Stellar);try{let Q=(await(await W()).feeStats()).fee_charged.p50;return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:G,value:Q})}catch{return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:G,value:"100"})}}return{broadcastTransaction:T,createTransaction:S,createTrustline:n,createTrustlineTransaction:R,estimateTransactionFee:r,getAddress:U,getBalance:B,signAndBroadcastTransaction:t,signTransaction:A,transfer:i,validateAddress:y}}var j,H,YP,ZP,$P=2,MP=600000,k;var o=b(()=>{j=require("@swapkit/helpers"),H=require("ts-pattern"),YP=/^G[A-Z2-7]{55}$/,ZP=/^[A-Za-z0-9]{1,12}$/});var _P={};XP(_P,{validateStellarAddress:()=>y,getStellarToolbox:()=>c});module.exports=GP(_P);var DP=b(()=>{o()});DP();
1
+ var JP=Object.create;var{getPrototypeOf:QP,defineProperty:w,getOwnPropertyNames:p,getOwnPropertyDescriptor:XP}=Object,d=Object.prototype.hasOwnProperty;function l(P){return this[P]}var YP,ZP,yP=(P,q,Q)=>{var W=P!=null&&typeof P==="object";if(W){var D=q?YP??=new WeakMap:ZP??=new WeakMap,F=D.get(P);if(F)return F}Q=P!=null?JP(QP(P)):{};let M=q||!P||!P.__esModule?w(Q,"default",{value:P,enumerable:!0}):Q;for(let _ of p(P))if(!d.call(M,_))w(M,_,{get:l.bind(P,_),enumerable:!0});if(W)D.set(P,M);return M},$P=(P)=>{var q=(m??=new WeakMap).get(P),Q;if(q)return q;if(q=w({},"__esModule",{value:!0}),P&&typeof P==="object"||typeof P==="function"){for(var W of p(P))if(!d.call(q,W))w(q,W,{get:l.bind(P,W),enumerable:!(Q=XP(P,W))||Q.enumerable})}return m.set(P,q),q},m;var MP=(P)=>P;function WP(P,q){this[P]=MP.bind(null,q)}var FP=(P,q)=>{for(var Q in q)w(P,Q,{get:q[Q],enumerable:!0,configurable:!0,set:WP.bind(q,Q)})};var u=(P,q)=>()=>(P&&(q=P(P=0)),q);async function c(P){if(T&&Date.now()-T.timestamp<DP)return T.value;let Q=(await P.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(Q===void 0)throw new j.SwapKitError({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return T={timestamp:Date.now(),value:Q},Q}function A(P){return j.AssetValue.from({chain:j.Chain.Stellar,value:P}).getBaseValue("bigint")}function fP(P){let{baseDecimal:q}=j.getChainConfig(j.Chain.Stellar);return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:q,value:P}).getValue("string")}function n({balance:P,baseReserveInStroops:q,numSponsored:Q,numSponsoring:W,sellingLiabilities:D,subentryCount:F}){let M=A(P),_=A(D),K=o+F+W-Q,N=BigInt(K)*BigInt(q),C=M-N-_;return C>0n?C:0n}function _P({account:P,assetValue:q,baseReserveInStroops:Q,fee:W}){let D=P.balances.find((_)=>_.asset_type==="native"),M=(D?n({balance:D.balance,baseReserveInStroops:Q,numSponsored:P.num_sponsored,numSponsoring:P.num_sponsoring,sellingLiabilities:D.selling_liabilities,subentryCount:P.subentry_count}):0n)-BigInt(W);if(M<=0n)throw new j.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:q.toString(),reason:"spendable balance does not cover the transaction fee"}});return M}function NP({baseReserveInStroops:P,sweepAmountInStroops:q}){if(q===void 0||P===void 0)return;let Q=BigInt(o)*BigInt(P);if(q<Q)throw new j.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amountInStroops:q,minimumStartingBalanceInStroops:Q,reason:"starting balance is below the Stellar account minimum"}})}function zP({account:P,assetCode:q,assetValue:Q,issuer:W,sweep:D}){if(!D)return Q.getValue("string");let F=P.balances.find((M)=>("asset_code"in M)&&M.asset_code===q&&M.asset_issuer===W)?.balance??"0";if(A(F)<=0n)throw new j.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Q.toString(),balance:F,reason:"trust-line balance is not positive"}});return F}function UP(P){if(!P)return;if(new TextEncoder().encode(P).length>28)throw new j.SwapKitError("helpers_invalid_memo_type")}function R(P){if(!P||typeof P!=="string"||!P.startsWith("G")||P.length!==56)return!1;return LP.test(P)}function t(P){if(typeof P!=="object"||P===null)return;let q="response"in P?P.response:void 0;return typeof q?.status==="number"?q.status:void 0}function OP(P){return t(P)===504}function KP(P){return P.hash?.().toString("hex")}function EP(P){return[...new Set([P,...j.SKConfig.get("rpcUrls")[j.Chain.Stellar]])].filter(Boolean)}async function r(P){if(!R(P))return!1;try{let{StrKey:q}=await import("@stellar/stellar-sdk");return q.isValidEd25519PublicKey(P)}catch{return!1}}async function i(P){let{address:q,ticker:Q}=P,W=q?await r(q):!1;if(P.chain!==j.Chain.Stellar||P.isGasAsset||!xP.test(Q)||!q||!W)throw new j.SwapKitError({errorKey:"helpers_invalid_asset_identifier",info:{identifier:P.toString()}});return{assetCode:Q,issuer:q}}function a(P={}){let q,Q=P.derivationPath||j.NetworkDerivationPath[j.Chain.Stellar],W=j.derivationPathToString(Q.slice(0,3));async function D({phrase:G,path:J}){let{HDKey:Y}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:X}=await import("@scure/bip39"),{Keypair:$}=await import("@stellar/stellar-sdk"),Z=X(G),x=Y.fromMasterSeed(Z).derive(J,!0);return $.fromRawEd25519Seed(Buffer.from(x.privateKey))}async function F(){if(q)return q;let G=I.match(P).with({phrase:I.P.string},({phrase:J})=>J).otherwise(()=>{return});if(!G)throw new j.SwapKitError("toolbox_stellar_no_signer");return q=await D({path:W,phrase:G}),q}async function M(G){let{Horizon:J}=await import("@stellar/stellar-sdk"),Y=G||await j.getRPCUrl(j.Chain.Stellar);return new J.Server(Y)}async function _(G,J){for(let Y of J)try{return(await(await M(Y)).transactions().transaction(G).call()).hash||G}catch{}return}async function K(G,J){let Y=await j.getRPCUrl(j.Chain.Stellar),X=EP(Y),$=KP(G),Z;for(let L of X)try{let x=await M(L),{hash:f}=await x.submitTransaction(G);return f}catch(x){if(Z=x,!OP(x))break;let f=$?await _($,X):void 0;if(f)return f}throw new j.SwapKitError(J,Z)}async function N(){try{return(await F()).publicKey()}catch{return""}}async function C(G){let J=G||await N();if(!J)throw new j.SwapKitError("toolbox_stellar_account_not_found");let Y=await M(),[X,$]=await Promise.allSettled([Y.loadAccount(J),c(Y)]);if(X.status==="rejected"){let Z=X.reason;if(t(Z)===404)return[j.AssetValue.from({chain:j.Chain.Stellar,value:0})];throw Z}if($.status==="rejected")throw $.reason;return X.value.balances.map((Z)=>{if(Z.asset_type==="native"){let f=n({balance:Z.balance,baseReserveInStroops:$.value,numSponsored:X.value.num_sponsored,numSponsoring:X.value.num_sponsoring,sellingLiabilities:Z.selling_liabilities,subentryCount:X.value.subentry_count}),{baseDecimal:E}=j.getChainConfig(j.Chain.Stellar);return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:E,value:f})}let L="asset_code"in Z?Z.asset_code:"",x="asset_issuer"in Z?Z.asset_issuer:"";return j.AssetValue.from({asset:`${j.Chain.Stellar}.${L}-${x}`,asyncTokenLookup:!1,value:Z.balance})})}async function V({recipient:G,assetValue:J,memo:Y,sender:X,sweep:$}){if(UP(Y),!await r(G))throw new j.SwapKitError("core_transaction_invalid_recipient_address");let L=X||await N();if(!L)throw new j.SwapKitError("toolbox_stellar_no_signer");let{Asset:x,Memo:f,Networks:E,Operation:z,TransactionBuilder:h}=await import("@stellar/stellar-sdk"),U=await M(),k=await U.fetchBaseFee(),B=await U.loadAccount(L),g=$&&J.isGasAsset?await c(U):void 0,H=new h(B,{fee:String(k),networkPassphrase:E.PUBLIC});if(J.isGasAsset){let O=$&&g!==void 0?_P({account:B,assetValue:J,baseReserveInStroops:g,fee:k}):void 0,y=O===void 0?J.getValue("string"):fP(O);try{await U.loadAccount(G),H.addOperation(z.payment({amount:y,asset:x.native(),destination:G}))}catch{NP({baseReserveInStroops:g,sweepAmountInStroops:O}),H.addOperation(z.createAccount({destination:G,startingBalance:y}))}}else{let{assetCode:O,issuer:y}=await i(J),GP=zP({account:B,assetCode:O,assetValue:J,issuer:y,sweep:$});H.addOperation(z.payment({amount:GP,asset:new x(O,y),destination:G}))}if(Y)H.addMemo(f.text(Y));return H.setTimeout(30).build()}async function S({assetValue:G,limit:J,sender:Y}){let X=Y||await N();if(!X)throw new j.SwapKitError("toolbox_stellar_no_signer");let{Asset:$,Networks:Z,Operation:L,TransactionBuilder:x}=await import("@stellar/stellar-sdk"),{assetCode:f,issuer:E}=await i(G),z=await M(),[h,U]=await Promise.all([z.fetchBaseFee(),z.loadAccount(X)]),k=new $(f,E),B=J!==void 0?L.changeTrust({asset:k,limit:J}):L.changeTrust({asset:k});return new x(U,{fee:String(h),networkPassphrase:Z.PUBLIC}).addOperation(B).setTimeout(30).build()}async function v(G){let{TransactionBuilder:J,Networks:Y}=await import("@stellar/stellar-sdk"),X=await F(),$=J.fromXDR(G.toXDR(),Y.PUBLIC);return $.sign(X),$}function b(G){return K(G,"toolbox_stellar_broadcast_error")}async function e({recipient:G,assetValue:J,memo:Y,sweep:X}){let $=await F(),Z=$.publicKey(),L=await V({assetValue:J,memo:Y,recipient:G,sender:Z,sweep:X});return L.sign($),K(L,"toolbox_stellar_transaction_failed")}async function PP({assetValue:G,limit:J}){let Y=await F(),X=await S({assetValue:G,limit:J,sender:Y.publicKey()});return X.sign(Y),K(X,"toolbox_stellar_transaction_failed")}async function jP(G){let J=await v(G);return b(J)}async function qP(){let{baseDecimal:G}=j.getChainConfig(j.Chain.Stellar);try{let X=(await(await M()).feeStats()).fee_charged.p50;return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:G,value:X})}catch{return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:G,value:"100"})}}return{broadcastTransaction:b,createTransaction:V,createTrustline:PP,createTrustlineTransaction:S,estimateTransactionFee:qP,getAddress:N,getBalance:C,signAndBroadcastTransaction:jP,signTransaction:v,transfer:e,validateAddress:R}}var j,I,LP,xP,o=2,DP=600000,T;var s=u(()=>{j=require("@swapkit/helpers"),I=require("ts-pattern"),LP=/^G[A-Z2-7]{55}$/,xP=/^[A-Za-z0-9]{1,12}$/});var kP={};FP(kP,{validateStellarAddress:()=>R,getStellarToolbox:()=>a});module.exports=$P(kP);var BP=u(()=>{s()});BP();
@@ -1 +1 @@
1
- import{fa as L}from"../../chunk-fjyc6m34.js";import{AssetValue as U,Chain as Z,derivationPathToString as n,getChainConfig as g,getRPCUrl as h,NetworkDerivationPath as t,SKConfig as r,SwapKitError as f}from"@swapkit/helpers";import{match as a,P as s}from"ts-pattern";var e=/^G[A-Z2-7]{55}$/,PP=/^[A-Za-z0-9]{1,12}$/,jP=2,qP=600000,k;async function GP(j){if(k&&Date.now()-k.timestamp<qP)return k.value;let M=(await j.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(M===void 0)throw new f({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return k={timestamp:Date.now(),value:M},M}function m(j){return U.from({chain:Z.Stellar,value:j}).getBaseValue("bigint")}function JP({balance:j,baseReserveInStroops:X,numSponsored:M,numSponsoring:z,sellingLiabilities:H,subentryCount:x}){let w=m(j),y=m(H),E=jP+x+z-M,N=BigInt(E)*BigInt(X),B=w-N-y;return B>0n?B:0n}function S(j){if(!j||typeof j!=="string"||!j.startsWith("G")||j.length!==56)return!1;return e.test(j)}function p(j){if(typeof j!=="object"||j===null)return;let X="response"in j?j.response:void 0;return typeof X?.status==="number"?X.status:void 0}function QP(j){return p(j)===504}function XP(j){return j.hash?.().toString("hex")}function YP(j){return[...new Set([j,...r.get("rpcUrls")[Z.Stellar]])].filter(Boolean)}async function u(j){if(!S(j))return!1;try{let{StrKey:X}=await import("@stellar/stellar-sdk");return X.isValidEd25519PublicKey(j)}catch{return!1}}async function b(j){let{address:X,ticker:M}=j,z=X?await u(X):!1;if(j.chain!==Z.Stellar||j.isGasAsset||!PP.test(M)||!X||!z)throw new f({errorKey:"helpers_invalid_asset_identifier",info:{identifier:j.toString()}});return{assetCode:M,issuer:X}}function ZP(j={}){let X,M=j.derivationPath||t[Z.Stellar],z=n(M.slice(0,3));async function H({phrase:P,path:q}){let{HDKey:J}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),{Keypair:Y}=await import("@stellar/stellar-sdk"),Q=G(P),$=J.fromMasterSeed(Q).derive(q,!0);return Y.fromRawEd25519Seed(Buffer.from($.privateKey))}async function x(){if(X)return X;let P=a(j).with({phrase:s.string},({phrase:q})=>q).otherwise(()=>{return});if(!P)throw new f("toolbox_stellar_no_signer");return X=await H({path:z,phrase:P}),X}async function w(P){let{Horizon:q}=await import("@stellar/stellar-sdk"),J=P||await h(Z.Stellar);return new q.Server(J)}async function y(P,q){for(let J of q)try{return(await(await w(J)).transactions().transaction(P).call()).hash||P}catch{}return}async function E(P,q){let J=await h(Z.Stellar),G=YP(J),Y=XP(P),Q;for(let W of G)try{let $=await w(W),{hash:F}=await $.submitTransaction(P);return F}catch($){if(Q=$,!QP($))break;let F=Y?await y(Y,G):void 0;if(F)return F}throw new f(q,Q)}async function N(){try{return(await x()).publicKey()}catch{return""}}async function B(P){let q=P||await N();if(!q)throw new f("toolbox_stellar_account_not_found");let J=await w(),[G,Y]=await Promise.allSettled([J.loadAccount(q),GP(J)]);if(G.status==="rejected"){let Q=G.reason;if(p(Q)===404)return[U.from({chain:Z.Stellar,value:0})];throw Q}if(Y.status==="rejected")throw Y.reason;return G.value.balances.map((Q)=>{if(Q.asset_type==="native"){let F=JP({balance:Q.balance,baseReserveInStroops:Y.value,numSponsored:G.value.num_sponsored,numSponsoring:G.value.num_sponsoring,sellingLiabilities:Q.selling_liabilities,subentryCount:G.value.subentry_count}),{baseDecimal:_}=g(Z.Stellar);return U.from({chain:Z.Stellar,fromBaseDecimal:_,value:F})}let W="asset_code"in Q?Q.asset_code:"",$="asset_issuer"in Q?Q.asset_issuer:"";return U.from({asset:`${Z.Stellar}.${W}-${$}`,asyncTokenLookup:!1,value:Q.balance})})}async function R({recipient:P,assetValue:q,memo:J,sender:G}){if(J){if(new TextEncoder().encode(J).length>28)throw new f("helpers_invalid_memo_type")}if(!await u(P))throw new f("core_transaction_invalid_recipient_address");let Q=G||await N();if(!Q)throw new f("toolbox_stellar_no_signer");let{Asset:W,Memo:$,Networks:F,Operation:_,TransactionBuilder:I}=await import("@stellar/stellar-sdk"),O=await w(),C=await O.fetchBaseFee(),K=await O.loadAccount(Q),D=new I(K,{fee:String(C),networkPassphrase:F.PUBLIC});if(q.isGasAsset)try{await O.loadAccount(P),D.addOperation(_.payment({amount:q.getValue("string"),asset:W.native(),destination:P}))}catch{D.addOperation(_.createAccount({destination:P,startingBalance:q.getValue("string")}))}else{let{assetCode:v,issuer:i}=await b(q);D.addOperation(_.payment({amount:q.getValue("string"),asset:new W(v,i),destination:P}))}if(J)D.addMemo($.text(J));return D.setTimeout(30).build()}async function A({assetValue:P,limit:q,sender:J}){let G=J||await N();if(!G)throw new f("toolbox_stellar_no_signer");let{Asset:Y,Networks:Q,Operation:W,TransactionBuilder:$}=await import("@stellar/stellar-sdk"),{assetCode:F,issuer:_}=await b(P),I=await w(),[O,C]=await Promise.all([I.fetchBaseFee(),I.loadAccount(G)]),K=new Y(F,_),D=q!==void 0?W.changeTrust({asset:K,limit:q}):W.changeTrust({asset:K});return new $(C,{fee:String(O),networkPassphrase:Q.PUBLIC}).addOperation(D).setTimeout(30).build()}async function T(P){let{TransactionBuilder:q,Networks:J}=await import("@stellar/stellar-sdk"),G=await x(),Y=q.fromXDR(P.toXDR(),J.PUBLIC);return Y.sign(G),Y}function V(P){return E(P,"toolbox_stellar_broadcast_error")}async function l({recipient:P,assetValue:q,memo:J}){let G=await x(),Y=G.publicKey(),Q=await R({assetValue:q,memo:J,recipient:P,sender:Y});return Q.sign(G),E(Q,"toolbox_stellar_transaction_failed")}async function d({assetValue:P,limit:q}){let J=await x(),G=await A({assetValue:P,limit:q,sender:J.publicKey()});return G.sign(J),E(G,"toolbox_stellar_transaction_failed")}async function c(P){let q=await T(P);return V(q)}async function o(){let{baseDecimal:P}=g(Z.Stellar);try{let G=(await(await w()).feeStats()).fee_charged.p50;return U.from({chain:Z.Stellar,fromBaseDecimal:P,value:G})}catch{return U.from({chain:Z.Stellar,fromBaseDecimal:P,value:"100"})}}return{broadcastTransaction:V,createTransaction:R,createTrustline:d,createTrustlineTransaction:A,estimateTransactionFee:o,getAddress:N,getBalance:B,signAndBroadcastTransaction:c,signTransaction:T,transfer:l,validateAddress:S}}export{S as validateStellarAddress,ZP as getStellarToolbox};
1
+ import{ga as N}from"../../chunk-xbdjxeqd.js";import{AssetValue as z,Chain as M,derivationPathToString as PP,getChainConfig as A,getRPCUrl as d,NetworkDerivationPath as jP,SKConfig as qP,SwapKitError as L}from"@swapkit/helpers";import{match as GP,P as JP}from"ts-pattern";var QP=/^G[A-Z2-7]{55}$/,XP=/^[A-Za-z0-9]{1,12}$/,c=2,YP=600000,R;async function l(P){if(R&&Date.now()-R.timestamp<YP)return R.value;let Z=(await P.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(Z===void 0)throw new L({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return R={timestamp:Date.now(),value:Z},Z}function V(P){return z.from({chain:M.Stellar,value:P}).getBaseValue("bigint")}function ZP(P){let{baseDecimal:G}=A(M.Stellar);return z.from({chain:M.Stellar,fromBaseDecimal:G,value:P}).getValue("string")}function i({balance:P,baseReserveInStroops:G,numSponsored:Z,numSponsoring:f,sellingLiabilities:_,subentryCount:x}){let $=V(P),k=V(_),B=c+x+f-Z,U=BigInt(B)*BigInt(G),I=$-U-k;return I>0n?I:0n}function $P({account:P,assetValue:G,baseReserveInStroops:Z,fee:f}){let _=P.balances.find((k)=>k.asset_type==="native"),$=(_?i({balance:_.balance,baseReserveInStroops:Z,numSponsored:P.num_sponsored,numSponsoring:P.num_sponsoring,sellingLiabilities:_.selling_liabilities,subentryCount:P.subentry_count}):0n)-BigInt(f);if($<=0n)throw new L({errorKey:"toolbox_sweep_amount_too_low",info:{asset:G.toString(),reason:"spendable balance does not cover the transaction fee"}});return $}function MP({baseReserveInStroops:P,sweepAmountInStroops:G}){if(G===void 0||P===void 0)return;let Z=BigInt(c)*BigInt(P);if(G<Z)throw new L({errorKey:"toolbox_sweep_amount_too_low",info:{amountInStroops:G,minimumStartingBalanceInStroops:Z,reason:"starting balance is below the Stellar account minimum"}})}function WP({account:P,assetCode:G,assetValue:Z,issuer:f,sweep:_}){if(!_)return Z.getValue("string");let x=P.balances.find(($)=>("asset_code"in $)&&$.asset_code===G&&$.asset_issuer===f)?.balance??"0";if(V(x)<=0n)throw new L({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Z.toString(),balance:x,reason:"trust-line balance is not positive"}});return x}function FP(P){if(!P)return;if(new TextEncoder().encode(P).length>28)throw new L("helpers_invalid_memo_type")}function S(P){if(!P||typeof P!=="string"||!P.startsWith("G")||P.length!==56)return!1;return QP.test(P)}function o(P){if(typeof P!=="object"||P===null)return;let G="response"in P?P.response:void 0;return typeof G?.status==="number"?G.status:void 0}function LP(P){return o(P)===504}function xP(P){return P.hash?.().toString("hex")}function DP(P){return[...new Set([P,...qP.get("rpcUrls")[M.Stellar]])].filter(Boolean)}async function n(P){if(!S(P))return!1;try{let{StrKey:G}=await import("@stellar/stellar-sdk");return G.isValidEd25519PublicKey(P)}catch{return!1}}async function u(P){let{address:G,ticker:Z}=P,f=G?await n(G):!1;if(P.chain!==M.Stellar||P.isGasAsset||!XP.test(Z)||!G||!f)throw new L({errorKey:"helpers_invalid_asset_identifier",info:{identifier:P.toString()}});return{assetCode:Z,issuer:G}}function fP(P={}){let G,Z=P.derivationPath||jP[M.Stellar],f=PP(Z.slice(0,3));async function _({phrase:j,path:q}){let{HDKey:Q}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:J}=await import("@scure/bip39"),{Keypair:Y}=await import("@stellar/stellar-sdk"),X=J(j),F=Q.fromMasterSeed(X).derive(q,!0);return Y.fromRawEd25519Seed(Buffer.from(F.privateKey))}async function x(){if(G)return G;let j=GP(P).with({phrase:JP.string},({phrase:q})=>q).otherwise(()=>{return});if(!j)throw new L("toolbox_stellar_no_signer");return G=await _({path:f,phrase:j}),G}async function $(j){let{Horizon:q}=await import("@stellar/stellar-sdk"),Q=j||await d(M.Stellar);return new q.Server(Q)}async function k(j,q){for(let Q of q)try{return(await(await $(Q)).transactions().transaction(j).call()).hash||j}catch{}return}async function B(j,q){let Q=await d(M.Stellar),J=DP(Q),Y=xP(j),X;for(let W of J)try{let F=await $(W),{hash:D}=await F.submitTransaction(j);return D}catch(F){if(X=F,!LP(F))break;let D=Y?await k(Y,J):void 0;if(D)return D}throw new L(q,X)}async function U(){try{return(await x()).publicKey()}catch{return""}}async function I(j){let q=j||await U();if(!q)throw new L("toolbox_stellar_account_not_found");let Q=await $(),[J,Y]=await Promise.allSettled([Q.loadAccount(q),l(Q)]);if(J.status==="rejected"){let X=J.reason;if(o(X)===404)return[z.from({chain:M.Stellar,value:0})];throw X}if(Y.status==="rejected")throw Y.reason;return J.value.balances.map((X)=>{if(X.asset_type==="native"){let D=i({balance:X.balance,baseReserveInStroops:Y.value,numSponsored:J.value.num_sponsored,numSponsoring:J.value.num_sponsoring,sellingLiabilities:X.selling_liabilities,subentryCount:J.value.subentry_count}),{baseDecimal:H}=A(M.Stellar);return z.from({chain:M.Stellar,fromBaseDecimal:H,value:D})}let W="asset_code"in X?X.asset_code:"",F="asset_issuer"in X?X.asset_issuer:"";return z.from({asset:`${M.Stellar}.${W}-${F}`,asyncTokenLookup:!1,value:X.balance})})}async function v({recipient:j,assetValue:q,memo:Q,sender:J,sweep:Y}){if(FP(Q),!await n(j))throw new L("core_transaction_invalid_recipient_address");let W=J||await U();if(!W)throw new L("toolbox_stellar_no_signer");let{Asset:F,Memo:D,Networks:H,Operation:O,TransactionBuilder:h}=await import("@stellar/stellar-sdk"),K=await $(),y=await K.fetchBaseFee(),w=await K.loadAccount(W),g=Y&&q.isGasAsset?await l(K):void 0,C=new h(w,{fee:String(y),networkPassphrase:H.PUBLIC});if(q.isGasAsset){let E=Y&&g!==void 0?$P({account:w,assetValue:q,baseReserveInStroops:g,fee:y}):void 0,T=E===void 0?q.getValue("string"):ZP(E);try{await K.loadAccount(j),C.addOperation(O.payment({amount:T,asset:F.native(),destination:j}))}catch{MP({baseReserveInStroops:g,sweepAmountInStroops:E}),C.addOperation(O.createAccount({destination:j,startingBalance:T}))}}else{let{assetCode:E,issuer:T}=await u(q),e=WP({account:w,assetCode:E,assetValue:q,issuer:T,sweep:Y});C.addOperation(O.payment({amount:e,asset:new F(E,T),destination:j}))}if(Q)C.addMemo(D.text(Q));return C.setTimeout(30).build()}async function b({assetValue:j,limit:q,sender:Q}){let J=Q||await U();if(!J)throw new L("toolbox_stellar_no_signer");let{Asset:Y,Networks:X,Operation:W,TransactionBuilder:F}=await import("@stellar/stellar-sdk"),{assetCode:D,issuer:H}=await u(j),O=await $(),[h,K]=await Promise.all([O.fetchBaseFee(),O.loadAccount(J)]),y=new Y(D,H),w=q!==void 0?W.changeTrust({asset:y,limit:q}):W.changeTrust({asset:y});return new F(K,{fee:String(h),networkPassphrase:X.PUBLIC}).addOperation(w).setTimeout(30).build()}async function m(j){let{TransactionBuilder:q,Networks:Q}=await import("@stellar/stellar-sdk"),J=await x(),Y=q.fromXDR(j.toXDR(),Q.PUBLIC);return Y.sign(J),Y}function p(j){return B(j,"toolbox_stellar_broadcast_error")}async function t({recipient:j,assetValue:q,memo:Q,sweep:J}){let Y=await x(),X=Y.publicKey(),W=await v({assetValue:q,memo:Q,recipient:j,sender:X,sweep:J});return W.sign(Y),B(W,"toolbox_stellar_transaction_failed")}async function r({assetValue:j,limit:q}){let Q=await x(),J=await b({assetValue:j,limit:q,sender:Q.publicKey()});return J.sign(Q),B(J,"toolbox_stellar_transaction_failed")}async function a(j){let q=await m(j);return p(q)}async function s(){let{baseDecimal:j}=A(M.Stellar);try{let J=(await(await $()).feeStats()).fee_charged.p50;return z.from({chain:M.Stellar,fromBaseDecimal:j,value:J})}catch{return z.from({chain:M.Stellar,fromBaseDecimal:j,value:"100"})}}return{broadcastTransaction:p,createTransaction:v,createTrustline:r,createTrustlineTransaction:b,estimateTransactionFee:s,getAddress:U,getBalance:I,signAndBroadcastTransaction:a,signTransaction:m,transfer:t,validateAddress:S}}export{S as validateStellarAddress,fP as getStellarToolbox};
@@ -1 +1 @@
1
- var V=Object.create;var{getPrototypeOf:B,defineProperty:W,getOwnPropertyNames:X,getOwnPropertyDescriptor:w}=Object,Y=Object.prototype.hasOwnProperty;function Z(o){return this[o]}var x,K,jo=(o,I,m)=>{var j=o!=null&&typeof o==="object";if(j){var v=I?x??=new WeakMap:K??=new WeakMap,t=v.get(o);if(t)return t}m=o!=null?V(B(o)):{};let f=I||!o||!o.__esModule?W(m,"default",{value:o,enumerable:!0}):m;for(let R of X(o))if(!Y.call(f,R))W(f,R,{get:Z.bind(o,R),enumerable:!0});if(j)v.set(o,f);return f},S=(o)=>{var I=(Q??=new WeakMap).get(o),m;if(I)return I;if(I=W({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function"){for(var j of X(o))if(!Y.call(I,j))W(I,j,{get:Z.bind(o,j),enumerable:!(m=w(o,j))||m.enumerable})}return Q.set(o,I),I},Q;var p=(o)=>o;function k(o,I){this[o]=p.bind(null,I)}var h=(o,I)=>{for(var m in I)W(o,m,{get:I[m],enumerable:!0,configurable:!0,set:k.bind(I,m)})};var vo=(o,I)=>()=>(o&&(I=o(o=0)),I);var mo={};h(mo,{isKeyringPair:()=>F,getSubstrateToolbox:()=>g,getSubstrateAddressValidator:()=>P,createSubstrateToolbox:()=>b,createKeyring:()=>q,SubstrateNetwork:()=>G});module.exports=S(mo);var H=require("@polkadot/util"),T=require("@polkadot/util-crypto"),y=require("@swapkit/helpers"),O=require("ts-pattern");var N=require("@swapkit/helpers");async function n(o,I,m){let j=[I.set(0)];if(!m)return j;try{let v=await o.query.system?.account?.(m);if(!v)return j;let{data:{free:t}}=v,f=N.SwapKitNumber.fromBigInt(BigInt(t.toString()),I.decimal).getValue("string");return[I.set(f)]}catch(v){let t=v instanceof Error?v.message:String(v);return console.error(`Error fetching substrate balance: ${t}`),j}}async function l(o,I,m){let j=[I.set(0)];if(!m)return j;try{let v=await o.query.flip?.account?.(m);if(!v)return j;let t=v.balance||v.data?.balance;if(!t||t.isEmpty)return j;let f=N.SwapKitNumber.fromBigInt(BigInt(t.toString()),I.decimal).getValue("string");return[I.set(f)]}catch(v){let t=v instanceof Error?v.message:String(v);return console.error(`Error fetching chainflip balance: ${t}`),j}}function _(o,I){return function(j){let v=N.AssetValue.from({chain:o});switch(o){case N.Chain.Chainflip:return l(I,v,j);default:return n(I,v,j)}}}var A={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},c={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},i={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},G={DOT:A,FLIP:c,GENERIC:i};function g(o,I){return O.match(o).with(...y.SubstrateChains,(m)=>b({chain:m,...I})).exhaustive()}function F(o){return"address"in o}async function q(o,I){let{Keyring:m}=await import("@polkadot/keyring"),{cryptoWaitReady:j}=await import("@polkadot/util-crypto");return await j(),new m({ss58Format:I,type:"sr25519"}).addFromUri(o)}var z=(o,I)=>o.rpc.system.accountNextIndex(I),J=(o,{recipient:I,assetValue:m})=>o.tx.balances?.transferAllowDeath?.(I,m.getBaseValue("number")),d=async(o,I,{recipient:m,assetValue:j,sender:v})=>{let t=J(o,{assetValue:j,recipient:m});if(!t)throw new y.SwapKitError("toolbox_substrate_transfer_error");let f=F(I),R=f?I.address:v;if(!R)throw new y.SwapKitError("core_transaction_invalid_sender_address");let C=await z(o,R);return(await t.signAndSend(f?I:R,{nonce:C,signer:f?void 0:I})).toString()},e=async(o,I,m,{recipient:j,assetValue:v,sender:t})=>{let f=J(o,{assetValue:v,recipient:j}),R=F(I)?I.address:t;if(!R)return Promise.resolve(m.set(0));let C=await f?.paymentInfo(R,{nonce:await z(o,R)})||{partialFee:0};return m.set(y.SwapKitNumber.fromBigInt(BigInt(C.partialFee.toString()),m.decimal).getValue("string"))},r=async(o,I)=>{if(I)return o.send(I);return(await o.send()).toString()},s=async(o,I)=>{return await I.signAsync(o)},a=(o,I,m)=>{if(m)return I.signAndSend(o,m);return I.signAndSend(o).toString()},oo=async({signer:o,address:I,tx:m,callback:j,api:v})=>{let t=await z(v,I);if(j)m.signAndSend(I,{nonce:t,signer:o},j);return m.signAndSend(I,{nonce:t,signer:o}).toString()};function Io(o,I){let m=T.decodeAddress(o);return T.encodeAddress(m,I)}function $(o,I){return H.isHex(o)?H.hexToU8a(o):T.decodeAddress(o,void 0,I)}function U(o,I="ss58",m){if(I==="hex")return H.u8aToHex(o);return T.encodeAddress(o,m)}function P({chain:o,prefix:I}){let m=I||O.match(o).with(y.Chain.Polkadot,()=>G.DOT.prefix).with(y.Chain.Chainflip,()=>G.FLIP.prefix).otherwise(()=>G.GENERIC.prefix);return function(v){try{let t=$(v,m);return U(t,"ss58",m),!0}catch{return!1}}}function b({chain:o,generic:I=!1,...m}){let j=y.AssetValue.from({chain:o}),v;async function t(){let{ApiPromise:D,WsProvider:M}=await import("@polkadot/api"),L=await y.getRPCUrl(o),E=new M(L);return D.create({noInitWarn:!0,provider:E})}async function f(){if(v)return v;return v=await O.match(m).with({phrase:O.P.string},({phrase:D})=>q(D,G[o].prefix)).with({signer:O.P.any},({signer:D})=>D).otherwise(()=>{return}),v}let R=I?G.GENERIC:G[o];async function C(D){let M=await f(),L=D||M;if(!L)throw new y.SwapKitError("core_wallet_not_keypair_wallet");return F(L)?L.address:void 0}return{broadcast:r,convertAddress:Io,createKeyring:(D)=>q(D,R.prefix),createTransaction:async(D)=>{let M=await t();return J(M,D)},decodeAddress:$,encodeAddress:U,estimateTransactionFee:async(D)=>{let M=await f();if(!M)throw new y.SwapKitError("core_wallet_not_keypair_wallet");let L=await t();return e(L,M,j,D)},gasAsset:j,getAddress:C,getApi:t,getBalance:async(D)=>{let M=await t(),L=_(o,M),E=D||await C();return L(E)},network:R,sign:async(D)=>{let M=await f();if(!M)throw new y.SwapKitError("core_wallet_not_keypair_wallet");if(F(M))return s(M,D);throw new y.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx:D,callback:M,address:L})=>{let E=await f();if(!E)throw new y.SwapKitError("core_wallet_not_keypair_wallet");if(F(E))return a(E,D,M);let u=await t();if(L)return oo({address:L,api:u,callback:M,signer:E,tx:D});throw new y.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(D)=>{let M=await f();if(!M)throw new y.SwapKitError("core_wallet_not_keypair_wallet");let L=await t();return d(L,M,D)},validateAddress:P({chain:o,prefix:R.prefix})}}
1
+ var B=Object.create;var{getPrototypeOf:x,defineProperty:q,getOwnPropertyNames:Y,getOwnPropertyDescriptor:K}=Object,Z=Object.prototype.hasOwnProperty;function _(I){return this[I]}var k,w,DI=(I,o,j)=>{var v=I!=null&&typeof I==="object";if(v){var D=o?k??=new WeakMap:w??=new WeakMap,t=D.get(I);if(t)return t}j=I!=null?B(x(I)):{};let f=o||!I||!I.__esModule?q(j,"default",{value:I,enumerable:!0}):j;for(let L of Y(I))if(!Z.call(f,L))q(f,L,{get:_.bind(I,L),enumerable:!0});if(v)D.set(I,f);return f},S=(I)=>{var o=(X??=new WeakMap).get(I),j;if(o)return o;if(o=q({},"__esModule",{value:!0}),I&&typeof I==="object"||typeof I==="function"){for(var v of Y(I))if(!Z.call(o,v))q(o,v,{get:_.bind(I,v),enumerable:!(j=K(I,v))||j.enumerable})}return X.set(I,o),o},X;var h=(I)=>I;function l(I,o){this[I]=h.bind(null,o)}var n=(I,o)=>{for(var j in o)q(I,j,{get:o[j],enumerable:!0,configurable:!0,set:l.bind(o,j)})};var tI=(I,o)=>()=>(I&&(o=I(I=0)),o);var vI={};n(vI,{isKeyringPair:()=>H,getSubstrateToolbox:()=>d,getSubstrateAddressValidator:()=>P,createSubstrateToolbox:()=>b,createKeyring:()=>C,SubstrateNetwork:()=>N});module.exports=S(vI);var T=require("@polkadot/util"),W=require("@polkadot/util-crypto"),y=require("@swapkit/helpers"),F=require("ts-pattern");var O=require("@swapkit/helpers");async function A(I,o,j){let v=[o.set(0)];if(!j)return v;try{let D=await I.query.system?.account?.(j);if(!D)return v;let{data:{free:t}}=D,f=O.SwapKitNumber.fromBigInt(BigInt(t.toString()),o.decimal).getValue("string");return[o.set(f)]}catch(D){let t=D instanceof Error?D.message:String(D);return console.error(`Error fetching substrate balance: ${t}`),v}}async function p(I,o,j){let v=[o.set(0)];if(!j)return v;try{let D=await I.query.flip?.account?.(j);if(!D)return v;let t=D.balance||D.data?.balance;if(!t||t.isEmpty)return v;let f=O.SwapKitNumber.fromBigInt(BigInt(t.toString()),o.decimal).getValue("string");return[o.set(f)]}catch(D){let t=D instanceof Error?D.message:String(D);return console.error(`Error fetching chainflip balance: ${t}`),v}}function $(I,o){return function(v){let D=O.AssetValue.from({chain:I});switch(I){case O.Chain.Chainflip:return p(o,D,v);default:return A(o,D,v)}}}var c={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},g={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},i={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},N={DOT:c,FLIP:g,GENERIC:i};function d(I,o){return F.match(I).with(...y.SubstrateChains,(j)=>b({chain:j,...o})).exhaustive()}function H(I){return"address"in I}async function C(I,o){let{Keyring:j}=await import("@polkadot/keyring"),{cryptoWaitReady:v}=await import("@polkadot/util-crypto");return await v(),new j({ss58Format:o,type:"sr25519"}).addFromUri(I)}var E=(I,o)=>I.rpc.system.accountNextIndex(o),J=(I,{recipient:o,assetValue:j,sweep:v})=>{let D=v?I.tx.balances?.transferAll?.(o,!0):I.tx.balances?.transferAllowDeath?.(o,j.getBaseValue("number"));if(v&&!D)throw new y.SwapKitError("toolbox_substrate_transfer_error");return D},z=(I,o)=>{if(I===y.Chain.Chainflip&&o)throw new y.SwapKitError("toolbox_substrate_not_supported")},e=async(I,o,j)=>{let v=J(I,j);if(!v)throw new y.SwapKitError("toolbox_substrate_transfer_error");let D=H(o),t=D?o.address:j.sender;if(!t)throw new y.SwapKitError("core_transaction_invalid_sender_address");let f=await E(I,t);return(await v.signAndSend(D?o:t,{nonce:f,signer:D?void 0:o})).toString()},r=async(I,o,j,v)=>{let D=J(I,v),t=H(o)?o.address:v.sender;if(!t)return Promise.resolve(j.set(0));let f=await D?.paymentInfo(t,{nonce:await E(I,t)})||{partialFee:0};return j.set(y.SwapKitNumber.fromBigInt(BigInt(f.partialFee.toString()),j.decimal).getValue("string"))},s=async(I,o)=>{if(o)return I.send(o);return(await I.send()).toString()},a=async(I,o)=>{return await o.signAsync(I)},II=(I,o,j)=>{if(j)return o.signAndSend(I,j);return o.signAndSend(I).toString()},oI=async({signer:I,address:o,tx:j,callback:v,api:D})=>{let t=await E(D,o);if(v)j.signAndSend(o,{nonce:t,signer:I},v);return j.signAndSend(o,{nonce:t,signer:I}).toString()};function jI(I,o){let j=W.decodeAddress(I);return W.encodeAddress(j,o)}function U(I,o){return T.isHex(I)?T.hexToU8a(I):W.decodeAddress(I,void 0,o)}function V(I,o="ss58",j){if(o==="hex")return T.u8aToHex(I);return W.encodeAddress(I,j)}function P({chain:I,prefix:o}){let j=o||F.match(I).with(y.Chain.Polkadot,()=>N.DOT.prefix).with(y.Chain.Chainflip,()=>N.FLIP.prefix).otherwise(()=>N.GENERIC.prefix);return function(D){try{let t=U(D,j);return V(t,"ss58",j),!0}catch{return!1}}}function b({chain:I,generic:o=!1,...j}){let v=y.AssetValue.from({chain:I}),D;async function t(){let{ApiPromise:m,WsProvider:M}=await import("@polkadot/api"),R=await y.getRPCUrl(I),G=new M(R);return m.create({noInitWarn:!0,provider:G})}async function f(){if(D)return D;return D=await F.match(j).with({phrase:F.P.string},({phrase:m})=>C(m,N[I].prefix)).with({signer:F.P.any},({signer:m})=>m).otherwise(()=>{return}),D}let L=o?N.GENERIC:N[I];async function Q(m){let M=await f(),R=m||M;if(!R)throw new y.SwapKitError("core_wallet_not_keypair_wallet");return H(R)?R.address:void 0}return{broadcast:s,convertAddress:jI,createKeyring:(m)=>C(m,L.prefix),createTransaction:async(m)=>{z(I,m.sweep);let M=await t();return J(M,m)},decodeAddress:U,encodeAddress:V,estimateTransactionFee:async(m)=>{z(I,m.sweep);let M=await f();if(!M)throw new y.SwapKitError("core_wallet_not_keypair_wallet");let R=await t();return r(R,M,v,m)},gasAsset:v,getAddress:Q,getApi:t,getBalance:async(m)=>{let M=await t(),R=$(I,M),G=m||await Q();return R(G)},network:L,sign:async(m)=>{let M=await f();if(!M)throw new y.SwapKitError("core_wallet_not_keypair_wallet");if(H(M))return a(M,m);throw new y.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx:m,callback:M,address:R})=>{let G=await f();if(!G)throw new y.SwapKitError("core_wallet_not_keypair_wallet");if(H(G))return II(G,m,M);let u=await t();if(R)return oI({address:R,api:u,callback:M,signer:G,tx:m});throw new y.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(m)=>{z(I,m.sweep);let M=await f();if(!M)throw new y.SwapKitError("core_wallet_not_keypair_wallet");let R=await t();return e(R,M,m)},validateAddress:P({chain:I,prefix:L.prefix})}}
@@ -1 +1 @@
1
- import{fa as C}from"../../chunk-fjyc6m34.js";import{hexToU8a as x,isHex as K,u8aToHex as S}from"@polkadot/util";import{decodeAddress as X,encodeAddress as Y}from"@polkadot/util-crypto";import{AssetValue as p,Chain as z,getRPCUrl as k,SubstrateChains as h,SwapKitError as L,SwapKitNumber as n}from"@swapkit/helpers";import{match as F,P as J}from"ts-pattern";import{AssetValue as U,Chain as P,SwapKitNumber as W}from"@swapkit/helpers";async function b(o,I,m){let v=[I.set(0)];if(!m)return v;try{let j=await o.query.system?.account?.(m);if(!j)return v;let{data:{free:t}}=j,y=W.fromBigInt(BigInt(t.toString()),I.decimal).getValue("string");return[I.set(y)]}catch(j){let t=j instanceof Error?j.message:String(j);return console.error(`Error fetching substrate balance: ${t}`),v}}async function u(o,I,m){let v=[I.set(0)];if(!m)return v;try{let j=await o.query.flip?.account?.(m);if(!j)return v;let t=j.balance||j.data?.balance;if(!t||t.isEmpty)return v;let y=W.fromBigInt(BigInt(t.toString()),I.decimal).getValue("string");return[I.set(y)]}catch(j){let t=j instanceof Error?j.message:String(j);return console.error(`Error fetching chainflip balance: ${t}`),v}}function q(o,I){return function(v){let j=U.from({chain:o});switch(o){case P.Chainflip:return u(I,j,v);default:return b(I,j,v)}}}var V={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/"},w={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},G={DOT:V,FLIP:B,GENERIC:w};function yo(o,I){return F(o).with(...h,(m)=>s({chain:m,...I})).exhaustive()}function O(o){return"address"in o}async function Q(o,I){let{Keyring:m}=await import("@polkadot/keyring"),{cryptoWaitReady:v}=await import("@polkadot/util-crypto");return await v(),new m({ss58Format:I,type:"sr25519"}).addFromUri(o)}var H=(o,I)=>o.rpc.system.accountNextIndex(I),T=(o,{recipient:I,assetValue:m})=>o.tx.balances?.transferAllowDeath?.(I,m.getBaseValue("number")),l=async(o,I,{recipient:m,assetValue:v,sender:j})=>{let t=T(o,{assetValue:v,recipient:m});if(!t)throw new L("toolbox_substrate_transfer_error");let y=O(I),R=y?I.address:j;if(!R)throw new L("core_transaction_invalid_sender_address");let N=await H(o,R);return(await t.signAndSend(y?I:R,{nonce:N,signer:y?void 0:I})).toString()},A=async(o,I,m,{recipient:v,assetValue:j,sender:t})=>{let y=T(o,{assetValue:j,recipient:v}),R=O(I)?I.address:t;if(!R)return Promise.resolve(m.set(0));let N=await y?.paymentInfo(R,{nonce:await H(o,R)})||{partialFee:0};return m.set(n.fromBigInt(BigInt(N.partialFee.toString()),m.decimal).getValue("string"))},c=async(o,I)=>{if(I)return o.send(I);return(await o.send()).toString()},i=async(o,I)=>{return await I.signAsync(o)},g=(o,I,m)=>{if(m)return I.signAndSend(o,m);return I.signAndSend(o).toString()},d=async({signer:o,address:I,tx:m,callback:v,api:j})=>{let t=await H(j,I);if(v)m.signAndSend(I,{nonce:t,signer:o},v);return m.signAndSend(I,{nonce:t,signer:o}).toString()};function e(o,I){let m=X(o);return Y(m,I)}function Z(o,I){return K(o)?x(o):X(o,void 0,I)}function _(o,I="ss58",m){if(I==="hex")return S(o);return Y(o,m)}function r({chain:o,prefix:I}){let m=I||F(o).with(z.Polkadot,()=>G.DOT.prefix).with(z.Chainflip,()=>G.FLIP.prefix).otherwise(()=>G.GENERIC.prefix);return function(j){try{let t=Z(j,m);return _(t,"ss58",m),!0}catch{return!1}}}function s({chain:o,generic:I=!1,...m}){let v=p.from({chain:o}),j;async function t(){let{ApiPromise:D,WsProvider:f}=await import("@polkadot/api"),M=await k(o),E=new f(M);return D.create({noInitWarn:!0,provider:E})}async function y(){if(j)return j;return j=await F(m).with({phrase:J.string},({phrase:D})=>Q(D,G[o].prefix)).with({signer:J.any},({signer:D})=>D).otherwise(()=>{return}),j}let R=I?G.GENERIC:G[o];async function N(D){let f=await y(),M=D||f;if(!M)throw new L("core_wallet_not_keypair_wallet");return O(M)?M.address:void 0}return{broadcast:c,convertAddress:e,createKeyring:(D)=>Q(D,R.prefix),createTransaction:async(D)=>{let f=await t();return T(f,D)},decodeAddress:Z,encodeAddress:_,estimateTransactionFee:async(D)=>{let f=await y();if(!f)throw new L("core_wallet_not_keypair_wallet");let M=await t();return A(M,f,v,D)},gasAsset:v,getAddress:N,getApi:t,getBalance:async(D)=>{let f=await t(),M=q(o,f),E=D||await N();return M(E)},network:R,sign:async(D)=>{let f=await y();if(!f)throw new L("core_wallet_not_keypair_wallet");if(O(f))return i(f,D);throw new L("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx:D,callback:f,address:M})=>{let E=await y();if(!E)throw new L("core_wallet_not_keypair_wallet");if(O(E))return g(E,D,f);let $=await t();if(M)return d({address:M,api:$,callback:f,signer:E,tx:D});throw new L("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(D)=>{let f=await y();if(!f)throw new L("core_wallet_not_keypair_wallet");let M=await t();return l(M,f,D)},validateAddress:r({chain:o,prefix:R.prefix})}}export{O as isKeyringPair,yo as getSubstrateToolbox,r as getSubstrateAddressValidator,s as createSubstrateToolbox,Q as createKeyring,G as SubstrateNetwork};
1
+ import{ga as H}from"../../chunk-xbdjxeqd.js";import{hexToU8a as k,isHex as w,u8aToHex as S}from"@polkadot/util";import{decodeAddress as Y,encodeAddress as Z}from"@polkadot/util-crypto";import{AssetValue as h,Chain as T,getRPCUrl as l,SubstrateChains as n,SwapKitError as R,SwapKitNumber as A}from"@swapkit/helpers";import{match as W,P as Q}from"ts-pattern";import{AssetValue as V,Chain as P,SwapKitNumber as E}from"@swapkit/helpers";async function b(I,o,j){let D=[o.set(0)];if(!j)return D;try{let v=await I.query.system?.account?.(j);if(!v)return D;let{data:{free:t}}=v,M=E.fromBigInt(BigInt(t.toString()),o.decimal).getValue("string");return[o.set(M)]}catch(v){let t=v instanceof Error?v.message:String(v);return console.error(`Error fetching substrate balance: ${t}`),D}}async function u(I,o,j){let D=[o.set(0)];if(!j)return D;try{let v=await I.query.flip?.account?.(j);if(!v)return D;let t=v.balance||v.data?.balance;if(!t||t.isEmpty)return D;let M=E.fromBigInt(BigInt(t.toString()),o.decimal).getValue("string");return[o.set(M)]}catch(v){let t=v instanceof Error?v.message:String(v);return console.error(`Error fetching chainflip balance: ${t}`),D}}function J(I,o){return function(D){let v=V.from({chain:I});switch(I){case P.Chainflip:return u(o,v,D);default:return b(o,v,D)}}}var B={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},x={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},K={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},G={DOT:B,FLIP:x,GENERIC:K};function fI(I,o){return W(I).with(...n,(j)=>a({chain:j,...o})).exhaustive()}function N(I){return"address"in I}async function X(I,o){let{Keyring:j}=await import("@polkadot/keyring"),{cryptoWaitReady:D}=await import("@polkadot/util-crypto");return await D(),new j({ss58Format:o,type:"sr25519"}).addFromUri(I)}var q=(I,o)=>I.rpc.system.accountNextIndex(o),z=(I,{recipient:o,assetValue:j,sweep:D})=>{let v=D?I.tx.balances?.transferAll?.(o,!0):I.tx.balances?.transferAllowDeath?.(o,j.getBaseValue("number"));if(D&&!v)throw new R("toolbox_substrate_transfer_error");return v},F=(I,o)=>{if(I===T.Chainflip&&o)throw new R("toolbox_substrate_not_supported")},p=async(I,o,j)=>{let D=z(I,j);if(!D)throw new R("toolbox_substrate_transfer_error");let v=N(o),t=v?o.address:j.sender;if(!t)throw new R("core_transaction_invalid_sender_address");let M=await q(I,t);return(await D.signAndSend(v?o:t,{nonce:M,signer:v?void 0:o})).toString()},c=async(I,o,j,D)=>{let v=z(I,D),t=N(o)?o.address:D.sender;if(!t)return Promise.resolve(j.set(0));let M=await v?.paymentInfo(t,{nonce:await q(I,t)})||{partialFee:0};return j.set(A.fromBigInt(BigInt(M.partialFee.toString()),j.decimal).getValue("string"))},g=async(I,o)=>{if(o)return I.send(o);return(await I.send()).toString()},i=async(I,o)=>{return await o.signAsync(I)},d=(I,o,j)=>{if(j)return o.signAndSend(I,j);return o.signAndSend(I).toString()},e=async({signer:I,address:o,tx:j,callback:D,api:v})=>{let t=await q(v,o);if(D)j.signAndSend(o,{nonce:t,signer:I},D);return j.signAndSend(o,{nonce:t,signer:I}).toString()};function r(I,o){let j=Y(I);return Z(j,o)}function _(I,o){return w(I)?k(I):Y(I,void 0,o)}function $(I,o="ss58",j){if(o==="hex")return S(I);return Z(I,j)}function s({chain:I,prefix:o}){let j=o||W(I).with(T.Polkadot,()=>G.DOT.prefix).with(T.Chainflip,()=>G.FLIP.prefix).otherwise(()=>G.GENERIC.prefix);return function(v){try{let t=_(v,j);return $(t,"ss58",j),!0}catch{return!1}}}function a({chain:I,generic:o=!1,...j}){let D=h.from({chain:I}),v;async function t(){let{ApiPromise:m,WsProvider:y}=await import("@polkadot/api"),f=await l(I),L=new y(f);return m.create({noInitWarn:!0,provider:L})}async function M(){if(v)return v;return v=await W(j).with({phrase:Q.string},({phrase:m})=>X(m,G[I].prefix)).with({signer:Q.any},({signer:m})=>m).otherwise(()=>{return}),v}let O=o?G.GENERIC:G[I];async function C(m){let y=await M(),f=m||y;if(!f)throw new R("core_wallet_not_keypair_wallet");return N(f)?f.address:void 0}return{broadcast:g,convertAddress:r,createKeyring:(m)=>X(m,O.prefix),createTransaction:async(m)=>{F(I,m.sweep);let y=await t();return z(y,m)},decodeAddress:_,encodeAddress:$,estimateTransactionFee:async(m)=>{F(I,m.sweep);let y=await M();if(!y)throw new R("core_wallet_not_keypair_wallet");let f=await t();return c(f,y,D,m)},gasAsset:D,getAddress:C,getApi:t,getBalance:async(m)=>{let y=await t(),f=J(I,y),L=m||await C();return f(L)},network:O,sign:async(m)=>{let y=await M();if(!y)throw new R("core_wallet_not_keypair_wallet");if(N(y))return i(y,m);throw new R("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx:m,callback:y,address:f})=>{let L=await M();if(!L)throw new R("core_wallet_not_keypair_wallet");if(N(L))return d(L,m,y);let U=await t();if(f)return e({address:f,api:U,callback:y,signer:L,tx:m});throw new R("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(m)=>{F(I,m.sweep);let y=await M();if(!y)throw new R("core_wallet_not_keypair_wallet");let f=await t();return p(f,y,m)},validateAddress:s({chain:I,prefix:O.prefix})}}export{N as isKeyringPair,fI as getSubstrateToolbox,s as getSubstrateAddressValidator,a as createSubstrateToolbox,X as createKeyring,G as SubstrateNetwork};
@@ -1 +1 @@
1
- var r=Object.create;var{getPrototypeOf:i,defineProperty:_,getOwnPropertyNames:x,getOwnPropertyDescriptor:t}=Object,m=Object.prototype.hasOwnProperty;function V(W){return this[W]}var n,s,L5=(W,X,$)=>{var J=W!=null&&typeof W==="object";if(J){var k=X?n??=new WeakMap:s??=new WeakMap,j=k.get(W);if(j)return j}$=W!=null?r(i(W)):{};let q=X||!W||!W.__esModule?_($,"default",{value:W,enumerable:!0}):$;for(let Y of x(W))if(!m.call(q,Y))_(q,Y,{get:V.bind(W,Y),enumerable:!0});if(J)k.set(W,q);return q},a=(W)=>{var X=(h??=new WeakMap).get(W),$;if(X)return X;if(X=_({},"__esModule",{value:!0}),W&&typeof W==="object"||typeof W==="function"){for(var J of x(W))if(!m.call(X,J))_(X,J,{get:V.bind(W,J),enumerable:!($=t(W,J))||$.enumerable})}return h.set(W,X),X},h;var e=(W)=>W;function W5(W,X){this[W]=e.bind(null,X)}var z5=(W,X)=>{for(var $ in X)_(W,$,{get:X[$],enumerable:!0,configurable:!0,set:W5.bind(X,$)})};var S=(W,X)=>()=>(W&&(X=W(W=0)),X);async function f(W,X,$,J,k=[],j){let q=await W.getCoins({coinType:$,cursor:j,owner:X}),Y=[...k,...q.data],P=Y.reduce((H,F)=>H+BigInt(F.balance),0n);return q.hasNextPage&&P<J?f(W,X,$,J,Y,q.nextCursor):Y}function y({coinObjectId:W,digest:X,version:$}){return{digest:X,objectId:W,version:$}}function X5(W,X,$){let J=X.reduce((H,F)=>H+BigInt(F.balance),0n);if(J<$)throw new Z.SwapKitError("toolbox_sui_insufficient_balance",{available:J.toString(),required:$.toString()});let{selectedCoins:k}=X.reduce((H,F)=>{if(H.total>=$)return H;return{selectedCoins:[...H.selectedCoins,F],total:H.total+BigInt(F.balance)}},{selectedCoins:[],total:0n}),j=k[0],q=W.objectRef(y(j)),Y=k.slice(1).map((H)=>W.objectRef(y(H)));if(Y.length>0)W.mergeCoins(q,Y);let[P]=W.splitCoins(q,[$]);return P}function p(W,X){let $=W.reduce((J,k)=>J+BigInt(k.balance),0n);if($<X)throw new Z.SwapKitError("toolbox_sui_insufficient_balance",{available:$.toString(),required:X.toString()})}function C(W){try{return B.isValidSuiAddress(W)}catch{return!1}}function T(W){return"signWithIntent"in W}function Z5({provider:W,...X}={}){let $;async function J(){if($)return $;return $=await K.match(X).with({phrase:K.P.string},async({phrase:z})=>{let{Ed25519Keypair:M}=await import("@mysten/sui/keypairs/ed25519");return M.deriveKeypair(z)}).with({signer:K.P.any},({signer:z})=>z).otherwise(()=>{return}),$}async function k(z=W){let{SuiJsonRpcClient:M}=await import("@mysten/sui/jsonRpc");return new M({network:"mainnet",url:z||Z.getRPCUrlSync(Z.Chain.Sui)})}async function j(z){return BigInt(await z.getReferenceGasPrice())}async function q(){return(await J())?.toSuiAddress()||""}function Y(z){try{let M=Z.AssetValue.from({address:z,chain:Z.Chain.Sui});return{asset:M.toString(),decimals:M.decimal}}catch{}return null}async function P(z){let M=z||await q();if(!M)throw new Z.SwapKitError("toolbox_sui_address_required");let{baseDecimal:v,chain:L}=Z.getChainConfig(Z.Chain.Sui);try{let b=await(await k()).getAllBalances({owner:M}),N=b.find(({coinType:G})=>G===I)?.totalBalance||"0",Q=[Z.AssetValue.from({chain:L,fromBaseDecimal:v,value:N})];for(let{coinType:G,totalBalance:O}of b){if(G===I||Number(O)<=0)continue;let R=Y(G);if(R)Q.push(Z.AssetValue.from({asset:R.asset,fromBaseDecimal:R.decimals,value:O}))}return Q}catch{return[Z.AssetValue.from({chain:L})]}}async function H(z){let M=Z.AssetValue.from({chain:Z.Chain.Sui,value:"0.01"});if(!z)return M;try{let v=await k(),{txBytes:L}=await F(z),{effects:{status:D,gasUsed:b}}=await v.dryRunTransactionBlock({transactionBlock:L});if(D.status!=="success")return M;let{baseDecimal:N}=Z.getChainConfig(Z.Chain.Sui),Q=BigInt(b.computationCost)+BigInt(b.storageCost)-BigInt(b.storageRebate);return Z.AssetValue.from({chain:Z.Chain.Sui,fromBaseDecimal:N,value:Q.toString()})}catch{return M}}async function F({recipient:z,assetValue:M,gasBudget:v,sender:L}){let{Transaction:D}=await import("@mysten/sui/transactions"),b=L||await q(),N=v||M5;if(!b)throw new Z.SwapKitError("toolbox_sui_no_sender");try{let Q=await k(),G=new D;if(G.setSender(b),M.isGasAsset||M.symbol==="SUI"){let R=M.getBaseValue("bigint"),[U,w]=await Promise.all([j(Q),f(Q,b,I,R+BigInt(N))]);p(w,R+BigInt(N)),G.setGasPrice(U),G.setGasPayment(w.map(y));let[E]=G.splitCoins(G.gas,[M.getBaseValue("string")]);G.transferObjects([E],z)}else{let R=M.address;if(!R)throw new Z.SwapKitError("toolbox_sui_missing_coin_type");let U=M.getBaseValue("bigint"),[w,E,A]=await Promise.all([j(Q),f(Q,b,I,BigInt(N)),f(Q,b,R,U)]);if(!A.length)throw new Z.SwapKitError("toolbox_sui_no_coins_found",{coinType:R});p(E,BigInt(N)),G.setGasPrice(w),G.setGasPayment(E.map(y));let c=X5(G,A,U);G.transferObjects([c],z)}G.setGasBudget(N);let O=await G.build({client:Q});return{tx:G,txBytes:O}}catch(Q){if(Q instanceof Z.SwapKitError)throw Q;throw new Z.SwapKitError("toolbox_sui_transaction_creation_error",{error:Q})}}async function u(z){let M=await J();if(!M)throw new Z.SwapKitError("toolbox_sui_no_signer");if(z instanceof Uint8Array)return M.signTransaction(z);let{txBytes:v}="tx"in z?z:await F(z);return M.signTransaction(v)}async function d({assetValue:z,gasBudget:M,recipient:v}){let L=await J();if(!L)throw new Z.SwapKitError("toolbox_sui_no_signer");let D=L.toSuiAddress()||await q();if(!D)throw new Z.SwapKitError("toolbox_sui_no_sender");let{txBytes:b}=await F({assetValue:z,gasBudget:M,recipient:v,sender:D}),N=await k();if(!T(L)){let G=await L.signTransaction(b),{digest:O}=await N.executeTransactionBlock({signature:G.signature,transactionBlock:G.bytes});return O}let{digest:Q}=await N.signAndExecuteTransaction({signer:L,transaction:b});return Q}async function l(z){let M=await k(),{digest:v}=await M.executeTransactionBlock({signature:z.signature,transactionBlock:z.bytes});return v}async function o(z){let M=await J();if(!M)throw new Z.SwapKitError("toolbox_sui_no_signer");let v=await k(),L;if(typeof z==="string")L=Uint8Array.from(Buffer.from(z,"base64"));else if(z instanceof Uint8Array)L=z;else L=await z.build({client:v});if(!T(M)){let b=await M.signTransaction(L),{digest:N}=await v.executeTransactionBlock({signature:b.signature,transactionBlock:b.bytes});return N}let{digest:D}=await v.signAndExecuteTransaction({signer:M,transaction:L});return D}return{broadcastTransaction:l,createTransaction:F,estimateTransactionFee:H,getAddress:q,getBalance:P,signAndBroadcastTransaction:o,signTransaction:u,transfer:d,validateAddress:C}}var B,Z,K,I="0x2::sui::SUI",M5=50000000;var g=S(()=>{B=require("@mysten/sui/utils"),Z=require("@swapkit/helpers"),K=require("ts-pattern")});var G5={};z5(G5,{validateSuiAddress:()=>C,getSuiToolbox:()=>Z5});module.exports=a(G5);var J5=S(()=>{g()});J5();
1
+ var i=Object.create;var{getPrototypeOf:n,defineProperty:_,getOwnPropertyNames:w,getOwnPropertyDescriptor:t}=Object,T=Object.prototype.hasOwnProperty;function B(W){return this[W]}var a,s,M5=(W,z,Z)=>{var L=W!=null&&typeof W==="object";if(L){var Q=z?a??=new WeakMap:s??=new WeakMap,X=Q.get(W);if(X)return X}Z=W!=null?i(n(W)):{};let H=z||!W||!W.__esModule?_(Z,"default",{value:W,enumerable:!0}):Z;for(let k of w(W))if(!T.call(H,k))_(H,k,{get:B.bind(W,k),enumerable:!0});if(L)Q.set(W,H);return H},e=(W)=>{var z=(m??=new WeakMap).get(W),Z;if(z)return z;if(z=_({},"__esModule",{value:!0}),W&&typeof W==="object"||typeof W==="function"){for(var L of w(W))if(!T.call(z,L))_(z,L,{get:B.bind(W,L),enumerable:!(Z=t(W,L))||Z.enumerable})}return m.set(W,z),z},m;var W5=(W)=>W;function z5(W,z){this[W]=W5.bind(null,z)}var Z5=(W,z)=>{for(var Z in z)_(W,Z,{get:z[Z],enumerable:!0,configurable:!0,set:z5.bind(z,Z)})};var C=(W,z)=>()=>(W&&(z=W(W=0)),z);async function x(W,z,Z,L){let Q=[],X,H=0n;while(!0){let k=await W.getCoins({coinType:Z,cursor:X,owner:z});if(Q.push(...k.data),H+=k.data.reduce((N,q)=>N+BigInt(q.balance),0n),!k.hasNextPage||L!==void 0&&H>=L)return Q;X=k.nextCursor}}async function l(W){return BigInt(await W.getReferenceGasPrice())}function E({coinObjectId:W,digest:z,version:Z}){return{digest:z,objectId:W,version:Z}}function J5(W,z,Z,L=!1){let Q=z.reduce((F,D)=>F+BigInt(D.balance),0n);if(Q<Z)throw new $.SwapKitError("toolbox_sui_insufficient_balance",{available:Q.toString(),required:Z.toString()});let{selectedCoins:X}=z.reduce((F,D)=>{if(F.total>=Z)return F;return{selectedCoins:[...F.selectedCoins,D],total:F.total+BigInt(D.balance)}},{selectedCoins:[],total:0n}),H=X[0],k=W.objectRef(E(H)),N=X.slice(1).map((F)=>W.objectRef(E(F)));if(N.length>0)W.mergeCoins(k,N);if(L)return k;let[q]=W.splitCoins(k,[Z]);return q}function d(W,z){let Z=W.reduce((L,Q)=>L+BigInt(Q.balance),0n);if(Z<=0n)throw new $.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:z,available:Z.toString()}});return Z}function u(W){if(W.length>V)throw new $.SwapKitError({errorKey:"toolbox_sui_transaction_creation_error",info:{coinCount:W.length,maxGasPaymentCoins:V,reason:`SUI transactions support at most ${V} gas payment coins`}})}function b5(W,z,Z,L,Q,X){let H=Z.getBaseValue("bigint");if(X)d(z,Z.toString()),u(z);else o(z,H+BigInt(L));if(W.setGasPayment(z.map(E)),X)W.transferObjects([W.gas],Q);else{let[k]=W.splitCoins(W.gas,[Z.getBaseValue("string")]);W.transferObjects([k],Q)}}function o(W,z){let Z=W.reduce((L,Q)=>L+BigInt(Q.balance),0n);if(Z<z)throw new $.SwapKitError("toolbox_sui_insufficient_balance",{available:Z.toString(),required:z.toString()})}async function Q5({assetValue:W,gasBudget:z,recipient:Z,sender:L,suiClient:Q,sweep:X,tx:H}){let k=W.getBaseValue("bigint"),[N,q]=await Promise.all([l(Q),x(Q,L,y,X?void 0:k+BigInt(z))]);if(H.setGasPrice(N),b5(H,q,W,z,Z,X),X){let F=q.reduce((D,I)=>D+BigInt(I.balance),0n);return F<BigInt(z)?F:z}return z}async function L5({assetValue:W,gasBudget:z,recipient:Z,sender:L,suiClient:Q,sweep:X,tx:H}){let k=W.address;if(!k)throw new $.SwapKitError("toolbox_sui_missing_coin_type");let N=W.getBaseValue("bigint"),[q,F,D]=await Promise.all([l(Q),x(Q,L,y,BigInt(z)),x(Q,L,k,X?void 0:N)]);if(!D.length&&!X)throw new $.SwapKitError("toolbox_sui_no_coins_found",{coinType:k});let I=X?d(D,W.toString()):N;if(o(F,BigInt(z)),X)u(F);H.setGasPrice(q),H.setGasPayment(F.map(E));let f=J5(H,D,I,X);H.transferObjects([f],Z)}function c(W){try{return g.isValidSuiAddress(W)}catch{return!1}}function p(W){return"signWithIntent"in W}function X5({provider:W,...z}={}){let Z;async function L(){if(Z)return Z;return Z=await h.match(z).with({phrase:h.P.string},async({phrase:J})=>{let{Ed25519Keypair:b}=await import("@mysten/sui/keypairs/ed25519");return b.deriveKeypair(J)}).with({signer:h.P.any},({signer:J})=>J).otherwise(()=>{return}),Z}async function Q(J=W){let{SuiJsonRpcClient:b}=await import("@mysten/sui/jsonRpc");return new b({network:"mainnet",url:J||$.getRPCUrlSync($.Chain.Sui)})}async function X(){return(await L())?.toSuiAddress()||""}function H(J){try{let b=$.AssetValue.from({address:J,chain:$.Chain.Sui});return{asset:b.toString(),decimals:b.decimal}}catch{}return null}async function k(J){let b=J||await X();if(!b)throw new $.SwapKitError("toolbox_sui_address_required");let{baseDecimal:M,chain:R}=$.getChainConfig($.Chain.Sui);try{let Y=await(await Q()).getAllBalances({owner:b}),G=Y.find(({coinType:j})=>j===y)?.totalBalance||"0",U=[$.AssetValue.from({chain:R,fromBaseDecimal:M,value:G})];for(let{coinType:j,totalBalance:O}of Y){if(j===y||Number(O)<=0)continue;let P=H(j);if(P)U.push($.AssetValue.from({asset:P.asset,fromBaseDecimal:P.decimals,value:O}))}return U}catch{return[$.AssetValue.from({chain:R})]}}async function N(J){let b=$.AssetValue.from({chain:$.Chain.Sui,value:"0.01"});if(!J)return b;try{let M=await Q(),{txBytes:R}=await q(J),{effects:{status:v,gasUsed:Y}}=await M.dryRunTransactionBlock({transactionBlock:R});if(v.status!=="success")return b;let{baseDecimal:G}=$.getChainConfig($.Chain.Sui),U=BigInt(Y.computationCost)+BigInt(Y.storageCost)-BigInt(Y.storageRebate);return $.AssetValue.from({chain:$.Chain.Sui,fromBaseDecimal:G,value:U.toString()})}catch{return b}}async function q({recipient:J,assetValue:b,gasBudget:M,sender:R,sweep:v}){let{Transaction:Y}=await import("@mysten/sui/transactions"),G=R||await X(),U=M||$5;if(!G)throw new $.SwapKitError("toolbox_sui_no_sender");try{let j=await Q(),O=new Y;O.setSender(G);let P={assetValue:b,gasBudget:U,recipient:J,sender:G,suiClient:j,sweep:v,tx:O},A;if(b.isGasAsset||b.symbol==="SUI"){let K=await Q5(P);if(BigInt(K)<BigInt(U))A=BigInt(K);O.setGasBudget(K)}else await L5(P),O.setGasBudget(U);let S=await O.build({client:j});if(A!==void 0){let{effects:{status:K}}=await j.dryRunTransactionBlock({transactionBlock:S});if(K.status!=="success")throw new $.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:b.toString(),budget:A.toString(),error:K.error}})}return{tx:O,txBytes:S}}catch(j){if(j instanceof $.SwapKitError)throw j;throw new $.SwapKitError("toolbox_sui_transaction_creation_error",{error:j})}}async function F(J){let b=await L();if(!b)throw new $.SwapKitError("toolbox_sui_no_signer");if(J instanceof Uint8Array)return b.signTransaction(J);let{txBytes:M}="tx"in J?J:await q(J);return b.signTransaction(M)}async function D({assetValue:J,gasBudget:b,recipient:M,sweep:R}){let v=await L();if(!v)throw new $.SwapKitError("toolbox_sui_no_signer");let Y=v.toSuiAddress()||await X();if(!Y)throw new $.SwapKitError("toolbox_sui_no_sender");let{txBytes:G}=await q({assetValue:J,gasBudget:b,recipient:M,sender:Y,sweep:R}),U=await Q();if(!p(v)){let O=await v.signTransaction(G),{digest:P}=await U.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return P}let{digest:j}=await U.signAndExecuteTransaction({signer:v,transaction:G});return j}async function I(J){let b=await Q(),{digest:M}=await b.executeTransactionBlock({signature:J.signature,transactionBlock:J.bytes});return M}async function f(J){let b=await L();if(!b)throw new $.SwapKitError("toolbox_sui_no_signer");let M=await Q(),R;if(typeof J==="string")R=Uint8Array.from(Buffer.from(J,"base64"));else if(J instanceof Uint8Array)R=J;else R=await J.build({client:M});if(!p(b)){let Y=await b.signTransaction(R),{digest:G}=await M.executeTransactionBlock({signature:Y.signature,transactionBlock:Y.bytes});return G}let{digest:v}=await M.signAndExecuteTransaction({signer:b,transaction:R});return v}return{broadcastTransaction:I,createTransaction:q,estimateTransactionFee:N,getAddress:X,getBalance:k,signAndBroadcastTransaction:f,signTransaction:F,transfer:D,validateAddress:c}}var g,$,h,y="0x2::sui::SUI",V=256,$5=50000000;var r=C(()=>{g=require("@mysten/sui/utils"),$=require("@swapkit/helpers"),h=require("ts-pattern")});var H5={};Z5(H5,{validateSuiAddress:()=>c,getSuiToolbox:()=>X5});module.exports=e(H5);var F5=C(()=>{r()});F5();
@@ -1 +1 @@
1
- import{fa as A}from"../../chunk-fjyc6m34.js";import{isValidSuiAddress as u}from"@mysten/sui/utils";import{AssetValue as P,Chain as _,getChainConfig as x,getRPCUrlSync as d,SwapKitError as N}from"@swapkit/helpers";import{match as l,P as m}from"ts-pattern";var I="0x2::sui::SUI",o=50000000;async function f($,k,G,q,Q=[],D){let Y=await $.getCoins({coinType:G,cursor:D,owner:k}),j=[...Q,...Y.data],K=j.reduce((v,H)=>v+BigInt(H.balance),0n);return Y.hasNextPage&&K<q?f($,k,G,q,j,Y.nextCursor):j}function y({coinObjectId:$,digest:k,version:G}){return{digest:k,objectId:$,version:G}}function c($,k,G){let q=k.reduce((v,H)=>v+BigInt(H.balance),0n);if(q<G)throw new N("toolbox_sui_insufficient_balance",{available:q.toString(),required:G.toString()});let{selectedCoins:Q}=k.reduce((v,H)=>{if(v.total>=G)return v;return{selectedCoins:[...v.selectedCoins,H],total:v.total+BigInt(H.balance)}},{selectedCoins:[],total:0n}),D=Q[0],Y=$.objectRef(y(D)),j=Q.slice(1).map((v)=>$.objectRef(y(v)));if(j.length>0)$.mergeCoins(Y,j);let[K]=$.splitCoins(Y,[G]);return K}function V($,k){let G=$.reduce((q,Q)=>q+BigInt(Q.balance),0n);if(G<k)throw new N("toolbox_sui_insufficient_balance",{available:G.toString(),required:k.toString()})}function r($){try{return u($)}catch{return!1}}function S($){return"signWithIntent"in $}function s({provider:$,...k}={}){let G;async function q(){if(G)return G;return G=await l(k).with({phrase:m.string},async({phrase:W})=>{let{Ed25519Keypair:z}=await import("@mysten/sui/keypairs/ed25519");return z.deriveKeypair(W)}).with({signer:m.any},({signer:W})=>W).otherwise(()=>{return}),G}async function Q(W=$){let{SuiJsonRpcClient:z}=await import("@mysten/sui/jsonRpc");return new z({network:"mainnet",url:W||d(_.Sui)})}async function D(W){return BigInt(await W.getReferenceGasPrice())}async function Y(){return(await q())?.toSuiAddress()||""}function j(W){try{let z=P.from({address:W,chain:_.Sui});return{asset:z.toString(),decimals:z.decimal}}catch{}return null}async function K(W){let z=W||await Y();if(!z)throw new N("toolbox_sui_address_required");let{baseDecimal:L,chain:X}=x(_.Sui);try{let Z=await(await Q()).getAllBalances({owner:z}),b=Z.find(({coinType:M})=>M===I)?.totalBalance||"0",J=[P.from({chain:X,fromBaseDecimal:L,value:b})];for(let{coinType:M,totalBalance:O}of Z){if(M===I||Number(O)<=0)continue;let F=j(M);if(F)J.push(P.from({asset:F.asset,fromBaseDecimal:F.decimals,value:O}))}return J}catch{return[P.from({chain:X})]}}async function v(W){let z=P.from({chain:_.Sui,value:"0.01"});if(!W)return z;try{let L=await Q(),{txBytes:X}=await H(W),{effects:{status:R,gasUsed:Z}}=await L.dryRunTransactionBlock({transactionBlock:X});if(R.status!=="success")return z;let{baseDecimal:b}=x(_.Sui),J=BigInt(Z.computationCost)+BigInt(Z.storageCost)-BigInt(Z.storageRebate);return P.from({chain:_.Sui,fromBaseDecimal:b,value:J.toString()})}catch{return z}}async function H({recipient:W,assetValue:z,gasBudget:L,sender:X}){let{Transaction:R}=await import("@mysten/sui/transactions"),Z=X||await Y(),b=L||o;if(!Z)throw new N("toolbox_sui_no_sender");try{let J=await Q(),M=new R;if(M.setSender(Z),z.isGasAsset||z.symbol==="SUI"){let F=z.getBaseValue("bigint"),[U,w]=await Promise.all([D(J),f(J,Z,I,F+BigInt(b))]);V(w,F+BigInt(b)),M.setGasPrice(U),M.setGasPayment(w.map(y));let[E]=M.splitCoins(M.gas,[z.getBaseValue("string")]);M.transferObjects([E],W)}else{let F=z.address;if(!F)throw new N("toolbox_sui_missing_coin_type");let U=z.getBaseValue("bigint"),[w,E,h]=await Promise.all([D(J),f(J,Z,I,BigInt(b)),f(J,Z,F,U)]);if(!h.length)throw new N("toolbox_sui_no_coins_found",{coinType:F});V(E,BigInt(b)),M.setGasPrice(w),M.setGasPayment(E.map(y));let g=c(M,h,U);M.transferObjects([g],W)}M.setGasBudget(b);let O=await M.build({client:J});return{tx:M,txBytes:O}}catch(J){if(J instanceof N)throw J;throw new N("toolbox_sui_transaction_creation_error",{error:J})}}async function p(W){let z=await q();if(!z)throw new N("toolbox_sui_no_signer");if(W instanceof Uint8Array)return z.signTransaction(W);let{txBytes:L}="tx"in W?W:await H(W);return z.signTransaction(L)}async function T({assetValue:W,gasBudget:z,recipient:L}){let X=await q();if(!X)throw new N("toolbox_sui_no_signer");let R=X.toSuiAddress()||await Y();if(!R)throw new N("toolbox_sui_no_sender");let{txBytes:Z}=await H({assetValue:W,gasBudget:z,recipient:L,sender:R}),b=await Q();if(!S(X)){let M=await X.signTransaction(Z),{digest:O}=await b.executeTransactionBlock({signature:M.signature,transactionBlock:M.bytes});return O}let{digest:J}=await b.signAndExecuteTransaction({signer:X,transaction:Z});return J}async function B(W){let z=await Q(),{digest:L}=await z.executeTransactionBlock({signature:W.signature,transactionBlock:W.bytes});return L}async function C(W){let z=await q();if(!z)throw new N("toolbox_sui_no_signer");let L=await Q(),X;if(typeof W==="string")X=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)X=W;else X=await W.build({client:L});if(!S(z)){let Z=await z.signTransaction(X),{digest:b}=await L.executeTransactionBlock({signature:Z.signature,transactionBlock:Z.bytes});return b}let{digest:R}=await L.signAndExecuteTransaction({signer:z,transaction:X});return R}return{broadcastTransaction:B,createTransaction:H,estimateTransactionFee:v,getAddress:Y,getBalance:K,signAndBroadcastTransaction:C,signTransaction:p,transfer:T,validateAddress:r}}export{r as validateSuiAddress,s as getSuiToolbox};
1
+ import{ga as V}from"../../chunk-xbdjxeqd.js";import{isValidSuiAddress as d}from"@mysten/sui/utils";import{AssetValue as I,Chain as _,getChainConfig as w,getRPCUrlSync as u,SwapKitError as M}from"@swapkit/helpers";import{match as o,P as T}from"ts-pattern";var y="0x2::sui::SUI",x=256,c=50000000;async function S(W,J,$,L){let b=[],Q,H=0n;while(!0){let X=await W.getCoins({coinType:$,cursor:Q,owner:J});if(b.push(...X.data),H+=X.data.reduce((N,q)=>N+BigInt(q.balance),0n),!X.hasNextPage||L!==void 0&&H>=L)return b;Q=X.nextCursor}}async function C(W){return BigInt(await W.getReferenceGasPrice())}function E({coinObjectId:W,digest:J,version:$}){return{digest:J,objectId:W,version:$}}function r(W,J,$,L=!1){let b=J.reduce((k,D)=>k+BigInt(D.balance),0n);if(b<$)throw new M("toolbox_sui_insufficient_balance",{available:b.toString(),required:$.toString()});let{selectedCoins:Q}=J.reduce((k,D)=>{if(k.total>=$)return k;return{selectedCoins:[...k.selectedCoins,D],total:k.total+BigInt(D.balance)}},{selectedCoins:[],total:0n}),H=Q[0],X=W.objectRef(E(H)),N=Q.slice(1).map((k)=>W.objectRef(E(k)));if(N.length>0)W.mergeCoins(X,N);if(L)return X;let[q]=W.splitCoins(X,[$]);return q}function p(W,J){let $=W.reduce((L,b)=>L+BigInt(b.balance),0n);if($<=0n)throw new M({errorKey:"toolbox_sweep_amount_too_low",info:{asset:J,available:$.toString()}});return $}function g(W){if(W.length>x)throw new M({errorKey:"toolbox_sui_transaction_creation_error",info:{coinCount:W.length,maxGasPaymentCoins:x,reason:`SUI transactions support at most ${x} gas payment coins`}})}function i(W,J,$,L,b,Q){let H=$.getBaseValue("bigint");if(Q)p(J,$.toString()),g(J);else l(J,H+BigInt(L));if(W.setGasPayment(J.map(E)),Q)W.transferObjects([W.gas],b);else{let[X]=W.splitCoins(W.gas,[$.getBaseValue("string")]);W.transferObjects([X],b)}}function l(W,J){let $=W.reduce((L,b)=>L+BigInt(b.balance),0n);if($<J)throw new M("toolbox_sui_insufficient_balance",{available:$.toString(),required:J.toString()})}async function n({assetValue:W,gasBudget:J,recipient:$,sender:L,suiClient:b,sweep:Q,tx:H}){let X=W.getBaseValue("bigint"),[N,q]=await Promise.all([C(b),S(b,L,y,Q?void 0:X+BigInt(J))]);if(H.setGasPrice(N),i(H,q,W,J,$,Q),Q){let k=q.reduce((D,h)=>D+BigInt(h.balance),0n);return k<BigInt(J)?k:J}return J}async function t({assetValue:W,gasBudget:J,recipient:$,sender:L,suiClient:b,sweep:Q,tx:H}){let X=W.address;if(!X)throw new M("toolbox_sui_missing_coin_type");let N=W.getBaseValue("bigint"),[q,k,D]=await Promise.all([C(b),S(b,L,y,BigInt(J)),S(b,L,X,Q?void 0:N)]);if(!D.length&&!Q)throw new M("toolbox_sui_no_coins_found",{coinType:X});let h=Q?p(D,W.toString()):N;if(l(k,BigInt(J)),Q)g(k);H.setGasPrice(q),H.setGasPayment(k.map(E));let f=r(H,D,h,Q);H.transferObjects([f],$)}function a(W){try{return d(W)}catch{return!1}}function B(W){return"signWithIntent"in W}function z5({provider:W,...J}={}){let $;async function L(){if($)return $;return $=await o(J).with({phrase:T.string},async({phrase:z})=>{let{Ed25519Keypair:Z}=await import("@mysten/sui/keypairs/ed25519");return Z.deriveKeypair(z)}).with({signer:T.any},({signer:z})=>z).otherwise(()=>{return}),$}async function b(z=W){let{SuiJsonRpcClient:Z}=await import("@mysten/sui/jsonRpc");return new Z({network:"mainnet",url:z||u(_.Sui)})}async function Q(){return(await L())?.toSuiAddress()||""}function H(z){try{let Z=I.from({address:z,chain:_.Sui});return{asset:Z.toString(),decimals:Z.decimal}}catch{}return null}async function X(z){let Z=z||await Q();if(!Z)throw new M("toolbox_sui_address_required");let{baseDecimal:F,chain:R}=w(_.Sui);try{let Y=await(await b()).getAllBalances({owner:Z}),G=Y.find(({coinType:j})=>j===y)?.totalBalance||"0",U=[I.from({chain:R,fromBaseDecimal:F,value:G})];for(let{coinType:j,totalBalance:O}of Y){if(j===y||Number(O)<=0)continue;let P=H(j);if(P)U.push(I.from({asset:P.asset,fromBaseDecimal:P.decimals,value:O}))}return U}catch{return[I.from({chain:R})]}}async function N(z){let Z=I.from({chain:_.Sui,value:"0.01"});if(!z)return Z;try{let F=await b(),{txBytes:R}=await q(z),{effects:{status:v,gasUsed:Y}}=await F.dryRunTransactionBlock({transactionBlock:R});if(v.status!=="success")return Z;let{baseDecimal:G}=w(_.Sui),U=BigInt(Y.computationCost)+BigInt(Y.storageCost)-BigInt(Y.storageRebate);return I.from({chain:_.Sui,fromBaseDecimal:G,value:U.toString()})}catch{return Z}}async function q({recipient:z,assetValue:Z,gasBudget:F,sender:R,sweep:v}){let{Transaction:Y}=await import("@mysten/sui/transactions"),G=R||await Q(),U=F||c;if(!G)throw new M("toolbox_sui_no_sender");try{let j=await b(),O=new Y;O.setSender(G);let P={assetValue:Z,gasBudget:U,recipient:z,sender:G,suiClient:j,sweep:v,tx:O},A;if(Z.isGasAsset||Z.symbol==="SUI"){let K=await n(P);if(BigInt(K)<BigInt(U))A=BigInt(K);O.setGasBudget(K)}else await t(P),O.setGasBudget(U);let m=await O.build({client:j});if(A!==void 0){let{effects:{status:K}}=await j.dryRunTransactionBlock({transactionBlock:m});if(K.status!=="success")throw new M({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Z.toString(),budget:A.toString(),error:K.error}})}return{tx:O,txBytes:m}}catch(j){if(j instanceof M)throw j;throw new M("toolbox_sui_transaction_creation_error",{error:j})}}async function k(z){let Z=await L();if(!Z)throw new M("toolbox_sui_no_signer");if(z instanceof Uint8Array)return Z.signTransaction(z);let{txBytes:F}="tx"in z?z:await q(z);return Z.signTransaction(F)}async function D({assetValue:z,gasBudget:Z,recipient:F,sweep:R}){let v=await L();if(!v)throw new M("toolbox_sui_no_signer");let Y=v.toSuiAddress()||await Q();if(!Y)throw new M("toolbox_sui_no_sender");let{txBytes:G}=await q({assetValue:z,gasBudget:Z,recipient:F,sender:Y,sweep:R}),U=await b();if(!B(v)){let O=await v.signTransaction(G),{digest:P}=await U.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return P}let{digest:j}=await U.signAndExecuteTransaction({signer:v,transaction:G});return j}async function h(z){let Z=await b(),{digest:F}=await Z.executeTransactionBlock({signature:z.signature,transactionBlock:z.bytes});return F}async function f(z){let Z=await L();if(!Z)throw new M("toolbox_sui_no_signer");let F=await b(),R;if(typeof z==="string")R=Uint8Array.from(Buffer.from(z,"base64"));else if(z instanceof Uint8Array)R=z;else R=await z.build({client:F});if(!B(Z)){let Y=await Z.signTransaction(R),{digest:G}=await F.executeTransactionBlock({signature:Y.signature,transactionBlock:Y.bytes});return G}let{digest:v}=await F.signAndExecuteTransaction({signer:Z,transaction:R});return v}return{broadcastTransaction:h,createTransaction:q,estimateTransactionFee:N,getAddress:Q,getBalance:X,signAndBroadcastTransaction:f,signTransaction:k,transfer:D,validateAddress:a}}export{a as validateSuiAddress,z5 as getSuiToolbox};
@@ -1 +1 @@
1
- var v3=Object.create;var{getPrototypeOf:G3,defineProperty:h,getOwnPropertyNames:p,getOwnPropertyDescriptor:Q3}=Object,A=Object.prototype.hasOwnProperty;function c(v){return this[v]}var X3,Y3,O3=(v,Y,x)=>{var k=v!=null&&typeof v==="object";if(k){var L=Y?X3??=new WeakMap:Y3??=new WeakMap,J=L.get(v);if(J)return J}x=v!=null?v3(G3(v)):{};let B=Y||!v||!v.__esModule?h(x,"default",{value:v,enumerable:!0}):x;for(let R of p(v))if(!A.call(B,R))h(B,R,{get:c.bind(v,R),enumerable:!0});if(k)L.set(v,B);return B},Z3=(v)=>{var Y=(w??=new WeakMap).get(v),x;if(Y)return Y;if(Y=h({},"__esModule",{value:!0}),v&&typeof v==="object"||typeof v==="function"){for(var k of p(v))if(!A.call(Y,k))h(Y,k,{get:c.bind(v,k),enumerable:!(x=Q3(v,k))||x.enumerable})}return w.set(v,Y),Y},w;var $3=(v)=>v;function q3(v,Y){this[v]=$3.bind(null,Y)}var x3=(v,Y)=>{for(var x in Y)h(v,x,{get:Y[x],enumerable:!0,configurable:!0,set:q3.bind(Y,x)})};var W=(v,Y)=>()=>(v&&(Y=v(v=0)),Y);function D3(){function v(){let Y=Date.now(),x=u||Y;return u=x,Y>u?Y:x+1}return z3+v().toString(36)}function g(v){return async function(x,k=!0){let L=await m.SwapKitApi.getChainBalance({address:x,chain:v,scamFilter:k}),{baseDecimal:J}=P.getChainConfig(v),B=L.map(({identifier:O,value:_,decimal:j})=>{return new P.AssetValue({decimal:j||J,identifier:O,value:_})});if(!B.some((O)=>O.isGasAsset))return[P.AssetValue.from({chain:v}),...B];return B}}var P,m,z3,u=0;var i=W(()=>{P=require("@swapkit/helpers"),m=require("@swapkit/helpers/api"),z3=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function R3(){let v=Date.now();if(y&&v-d<L3)return y;let{getHttpEndpoint:Y}=await import("@orbs-network/ton-access");return y=await Y(),d=v,y}async function J3(){let[v]=q.SKConfig.get("rpcUrls")[q.Chain.Ton]??[];if(v)return v;return await R3()}function K3(v={}){let Y,x,k;async function L(){if(!Y){let{TonClient:G}=await import("@ton/ton"),Q=v.provider??await J3();Y=new G({endpoint:Q})}return Y}async function J(){return(await R()).address.toString()}async function B(){if(k)return k;return k=await U.match(v).with({phrase:U.P.string},async({phrase:G})=>{let{mnemonicToWalletKey:Q}=await import("@ton/crypto");return Q(G.split(" "))}).with({signer:U.P.any},({signer:G})=>G).otherwise(()=>{return}),k}async function R(G){if(!x||G){let Q=await B(),Z=await L(),z=G||Q;if(!z)throw new q.SwapKitError("core_wallet_connection_not_found");let{WalletContractV4:$}=await import("@ton/ton"),H=$.create({publicKey:z.publicKey,workchain:0});x=Z.open(H)}return x}let O=g(q.Chain.Ton);async function _({assetValue:G,recipient:Q,memo:Z,sender:z,sweep:$}){if(G.isGasAsset){let e=Z?S(Z).toBoc().toString("base64"):void 0;return[{address:Q,amount:G.getBaseValue("string"),payload:e}]}if($)throw new q.SwapKitError({errorKey:"core_swap_invalid_params",info:{asset:G.toString(),reason:"TON sweep is only supported for the native gas asset"}});let H=G.address;if(!H)throw new q.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:G.toString()}});let I=z??await J(),N=await E({jettonMasterAddress:H,ownerAddress:I}),K=X.Address.parse(Q),D=X.Address.parse(I),V=G.getBaseValue("bigint"),F=Z?S(Z):void 0,f=s({destinationAddress:K,forwardPayload:F,jettonAmount:V,responseAddress:D});return[{address:N.toString(),amount:B3.toString(),payload:f.toBoc().toString("base64")}]}async function j({sender:G,sweep:Q,...Z}){return{messages:await _({...Z,sender:G,sweep:Q}),sendMode:Q?I3:l}}function n(G){if(!Array.isArray(G))return G;let[Q]=G;return{messages:G.map(({sendMode:z,...$})=>$),sendMode:Q?.sendMode??l}}function M(G){return G.map((Q)=>{let Z=Q.payload?X.Cell.fromBase64(Q.payload):void 0,z=Q.stateInit?X.loadStateInit(X.Cell.fromBase64(Q.stateInit).asSlice()):void 0,$=X.Address.parse(Q.address),H=X.Address.isFriendly(Q.address)?X.Address.parseFriendly(Q.address).isBounceable:!0;return X.internal({body:Z,bounce:H,init:z,to:$,value:BigInt(Q.amount)})})}async function b(G){let Q=await B(),Z=await R();if(!Z||!Q)throw new q.SwapKitError("core_wallet_connection_not_found");let z=await L(),{state:$}=await z.getContractState(Z.address),H=$==="active",I=H?await Z.getSeqno():0,{messages:N,sendMode:K}=n(G),D=Z.createTransfer({messages:M(N),secretKey:Q.secretKey,sendMode:K,seqno:I}),V=X.external({body:D,init:H?void 0:Z.init,to:Z.address});return X.beginCell().store(X.storeMessage(V)).endCell()}async function T(G){return await(await L()).sendFile(G.toBoc()),G.hash().toString("hex")}async function C(G){let Q=await b(G);return T(Q)}async function a({assetValue:G,recipient:Q,memo:Z,sweep:z}){let $=await j({assetValue:G,memo:Z,recipient:Q,sweep:z});return C($)}async function t({sender:G,...Q}){let{baseDecimal:Z}=q.getChainConfig(q.Chain.Ton),z=await U.match(G).with(U.P.string,(I)=>{return X.Address.parseFriendly(I).address}).otherwise(async()=>{return(await R()).address});if(!z)throw new q.SwapKitError("toolbox_fee_estimation_failed",{chain:q.Chain.Ton});let $=q.AssetValue.from({chain:q.Chain.Ton,value:"0.01"}),H=await L();try{let I=await j({sender:G,...Q}),N=await B(),K=await R();if(!K||!N)return $;let D=await K.getSeqno(),V=K.createTransfer({messages:M(I.messages),secretKey:N.secretKey,sendMode:I.sendMode,seqno:D}),{source_fees:F}=await H.estimateExternalMessageFee(z,{body:V,ignoreSignature:!0,initCode:null,initData:null}),f=F.in_fwd_fee+F.storage_fee+F.gas_fee+F.fwd_fee;return $.set(q.SwapKitNumber.fromBigInt(BigInt(f),Z))}catch{return $}}async function E({jettonMasterAddress:G,ownerAddress:Q}){try{let Z=await L(),z=X.Address.parse(G),$=X.Address.parse(Q),{JettonMaster:H}=await import("@ton/ton");return await Z.open(H.create(z)).getWalletAddress($)}catch{throw new q.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:G,ownerAddress:Q}})}}function s({jettonAmount:G,destinationAddress:Q,responseAddress:Z,forwardAmount:z=k3,forwardPayload:$}){let H=X.beginCell().storeUint(H3,32).storeUint(0,64).storeCoins(G).storeAddress(Q).storeAddress(Z).storeBit(0).storeCoins(z);if($)H.storeBit(1).storeRef($);else H.storeBit(0);return H.endCell()}function S(G){return X.beginCell().storeUint(0,32).storeStringTail(G).endCell()}return{broadcastTransaction:T,createTransaction:j,estimateTransactionFee:t,getAddress:J,getBalance:O,getJettonWalletAddress:E,sign:b,signAndBroadcastTransaction:C,transfer:a,validateAddress:o}}function o(v){try{return X.Address.parse(v),!0}catch{return!1}}var q,X,U,H3=260734629,k3,B3,l,I3,L3=60000,y,d=0;var r=W(()=>{i();q=require("@swapkit/helpers"),X=require("@ton/core"),U=require("ts-pattern"),k3=X.toNano("0.01"),B3=X.toNano("0.05"),l=X.SendMode.PAY_GAS_SEPARATELY+X.SendMode.IGNORE_ERRORS,I3=X.SendMode.CARRY_ALL_REMAINING_BALANCE+X.SendMode.IGNORE_ERRORS});var N3={};x3(N3,{validateTonAddress:()=>o,getTONToolbox:()=>K3});module.exports=Z3(N3);var F3=W(()=>{r()});F3();
1
+ var X3=Object.create;var{getPrototypeOf:Y3,defineProperty:h,getOwnPropertyNames:A,getOwnPropertyDescriptor:Z3}=Object,c=Object.prototype.hasOwnProperty;function m(v){return this[v]}var $3,q3,h3=(v,Y,z)=>{var k=v!=null&&typeof v==="object";if(k){var B=Y?$3??=new WeakMap:q3??=new WeakMap,U=B.get(v);if(U)return U}z=v!=null?X3(Y3(v)):{};let I=Y||!v||!v.__esModule?h(z,"default",{value:v,enumerable:!0}):z;for(let R of A(v))if(!c.call(I,R))h(I,R,{get:m.bind(v,R),enumerable:!0});if(k)B.set(v,I);return I},x3=(v)=>{var Y=(p??=new WeakMap).get(v),z;if(Y)return Y;if(Y=h({},"__esModule",{value:!0}),v&&typeof v==="object"||typeof v==="function"){for(var k of A(v))if(!c.call(Y,k))h(Y,k,{get:m.bind(v,k),enumerable:!(z=Z3(v,k))||z.enumerable})}return p.set(v,Y),Y},p;var z3=(v)=>v;function H3(v,Y){this[v]=z3.bind(null,Y)}var k3=(v,Y)=>{for(var z in Y)h(v,z,{get:Y[z],enumerable:!0,configurable:!0,set:H3.bind(Y,z)})};var M=(v,Y)=>()=>(v&&(Y=v(v=0)),Y);function j3(){function v(){let Y=Date.now(),z=u||Y;return u=z,Y>u?Y:z+1}return B3+v().toString(36)}function i(v){return async function(z,k=!0){let B=await g.SwapKitApi.getChainBalance({address:z,chain:v,scamFilter:k}),{baseDecimal:U}=y.getChainConfig(v),I=B.map(({identifier:D,value:_,decimal:P})=>{return new y.AssetValue({decimal:P||U,identifier:D,value:_})});if(!I.some((D)=>D.isGasAsset))return[y.AssetValue.from({chain:v}),...I];return I}}var y,g,B3,u=0;var l=M(()=>{y=require("@swapkit/helpers"),g=require("@swapkit/helpers/api"),B3=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function N3(){let v=Date.now();if(j&&v-o<J3)return j;let{getHttpEndpoint:Y}=await import("@orbs-network/ton-access");return j=await Y(),o=v,j}async function F3(){let[v]=q.SKConfig.get("rpcUrls")[q.Chain.Ton]??[];if(v)return v;return await N3()}function K3(v={}){let Y,z,k;async function B(){if(!Y){let{TonClient:G}=await import("@ton/ton"),Q=v.provider??await F3();Y=new G({endpoint:Q})}return Y}async function U(){return(await R()).address.toString()}async function I(){if(k)return k;return k=await K.match(v).with({phrase:K.P.string},async({phrase:G})=>{let{mnemonicToWalletKey:Q}=await import("@ton/crypto");return Q(G.split(" "))}).with({signer:K.P.any},({signer:G})=>G).otherwise(()=>{return}),k}async function R(G){if(!z||G){let Q=await I(),Z=await B(),x=G||Q;if(!x)throw new q.SwapKitError("core_wallet_connection_not_found");let{WalletContractV4:$}=await import("@ton/ton"),H=$.create({publicKey:x.publicKey,workchain:0});z=Z.open(H)}return z}let D=i(q.Chain.Ton);async function _({assetValue:G,recipient:Q,memo:Z,sender:x,sweep:$}){if(G.isGasAsset){if($){let Q3=x||await U(),w=await(await B()).getBalance(X.Address.parse(Q3));if(w<=0n)throw new q.SwapKitError("toolbox_sweep_amount_too_low",{asset:G.toString(),balance:w.toString()})}let G3=Z?S(Z).toBoc().toString("base64"):void 0;return[{address:Q,amount:G.getBaseValue("string"),payload:G3}]}let H=G.address;if(!H)throw new q.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:G.toString()}});let L=x??await U(),J=await C({jettonMasterAddress:H,ownerAddress:L}),N=X.Address.parse(Q),V=X.Address.parse(L),F=$?await e(J):G.getBaseValue("bigint");if($&&F<=0n)throw new q.SwapKitError("toolbox_sweep_amount_too_low",{asset:G.toString(),balance:F.toString()});let O=Z?S(Z):void 0,f=v3({destinationAddress:N,forwardPayload:O,jettonAmount:F,responseAddress:V});return[{address:J.toString(),amount:R3.toString(),payload:f.toBoc().toString("base64")}]}async function P({sender:G,sweep:Q,...Z}){let x=Q&&Z.assetValue.isGasAsset?U3:d;return{messages:await _({...Z,sender:G,sweep:Q}),sendMode:x}}function a(G){if(!Array.isArray(G))return G;let[Q]=G;return{messages:G.map(({sendMode:x,...$})=>$),sendMode:Q?.sendMode??d}}function T(G){return G.map((Q)=>{let Z=Q.payload?X.Cell.fromBase64(Q.payload):void 0,x=Q.stateInit?X.loadStateInit(X.Cell.fromBase64(Q.stateInit).asSlice()):void 0,$=X.Address.parse(Q.address),H=X.Address.isFriendly(Q.address)?X.Address.parseFriendly(Q.address).isBounceable:!0;return X.internal({body:Z,bounce:H,init:x,to:$,value:BigInt(Q.amount)})})}async function W(G){let Q=await I(),Z=await R();if(!Z||!Q)throw new q.SwapKitError("core_wallet_connection_not_found");let x=await B(),{state:$}=await x.getContractState(Z.address),H=$==="active",L=H?await Z.getSeqno():0,{messages:J,sendMode:N}=a(G),V=Z.createTransfer({messages:T(J),secretKey:Q.secretKey,sendMode:N,seqno:L}),F=X.external({body:V,init:H?void 0:Z.init,to:Z.address});return X.beginCell().store(X.storeMessage(F)).endCell()}async function b(G){return await(await B()).sendFile(G.toBoc()),G.hash().toString("hex")}async function E(G){let Q=await W(G);return b(Q)}async function s({assetValue:G,recipient:Q,memo:Z,sweep:x}){let $=await P({assetValue:G,memo:Z,recipient:Q,sweep:x});return E($)}async function t({sender:G,...Q}){let{baseDecimal:Z}=q.getChainConfig(q.Chain.Ton),x=await K.match(G).with(K.P.string,(L)=>{return X.Address.parseFriendly(L).address}).otherwise(async()=>{return(await R()).address});if(!x)throw new q.SwapKitError("toolbox_fee_estimation_failed",{chain:q.Chain.Ton});let $=q.AssetValue.from({chain:q.Chain.Ton,value:"0.01"}),H=await B();try{let L=await P({sender:G,...Q}),J=await I(),N=await R();if(!N||!J)return $;let V=await N.getSeqno(),F=N.createTransfer({messages:T(L.messages),secretKey:J.secretKey,sendMode:L.sendMode,seqno:V}),{source_fees:O}=await H.estimateExternalMessageFee(x,{body:F,ignoreSignature:!0,initCode:null,initData:null}),f=O.in_fwd_fee+O.storage_fee+O.gas_fee+O.fwd_fee;return $.set(q.SwapKitNumber.fromBigInt(BigInt(f),Z))}catch{return $}}async function C({jettonMasterAddress:G,ownerAddress:Q}){try{let Z=await B(),x=X.Address.parse(G),$=X.Address.parse(Q),{JettonMaster:H}=await import("@ton/ton");return await Z.open(H.create(x)).getWalletAddress($)}catch{throw new q.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:G,ownerAddress:Q}})}}async function e(G){try{let Q=await B(),{JettonWallet:Z}=await import("@ton/ton");return await Q.open(Z.create(G)).getBalance()}catch{throw new q.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonWalletAddress:G.toString()}})}}function v3({jettonAmount:G,destinationAddress:Q,responseAddress:Z,forwardAmount:x=L3,forwardPayload:$}){let H=X.beginCell().storeUint(I3,32).storeUint(0,64).storeCoins(G).storeAddress(Q).storeAddress(Z).storeBit(0).storeCoins(x);if($)H.storeBit(1).storeRef($);else H.storeBit(0);return H.endCell()}function S(G){return X.beginCell().storeUint(0,32).storeStringTail(G).endCell()}return{broadcastTransaction:b,createTransaction:P,estimateTransactionFee:t,getAddress:U,getBalance:D,getJettonWalletAddress:C,sign:W,signAndBroadcastTransaction:E,transfer:s,validateAddress:r}}function r(v){try{return X.Address.parse(v),!0}catch{return!1}}var q,X,K,I3=260734629,L3,R3,d,U3,J3=60000,j,o=0;var n=M(()=>{l();q=require("@swapkit/helpers"),X=require("@ton/core"),K=require("ts-pattern"),L3=X.toNano("0.01"),R3=X.toNano("0.05"),d=X.SendMode.PAY_GAS_SEPARATELY+X.SendMode.IGNORE_ERRORS,U3=X.SendMode.CARRY_ALL_REMAINING_BALANCE+X.SendMode.IGNORE_ERRORS});var D3={};k3(D3,{validateTonAddress:()=>r,getTONToolbox:()=>K3});module.exports=x3(D3);var P3=M(()=>{n()});P3();
@@ -1 +1 @@
1
- import{ea as p}from"../../chunk-jdh5asaw.js";import{fa as U}from"../../chunk-fjyc6m34.js";import{AssetValue as n,Chain as K,getChainConfig as a,SKConfig as s,SwapKitError as I,SwapKitNumber as t}from"@swapkit/helpers";import{Address as k,beginCell as h,Cell as S,external as e,internal as QQ,loadStateInit as XQ,SendMode as N,storeMessage as YQ,toNano as m}from"@ton/core";import{match as u,P as y}from"ts-pattern";var ZQ=260734629,$Q=m("0.01"),zQ=m("0.05"),w=N.PAY_GAS_SEPARATELY+N.IGNORE_ERRORS,GQ=N.CARRY_ALL_REMAINING_BALANCE+N.IGNORE_ERRORS,HQ=60000,j,A=0;async function kQ(){let H=Date.now();if(j&&H-A<HQ)return j;let{getHttpEndpoint:L}=await import("@orbs-network/ton-access");return j=await L(),A=H,j}async function qQ(){let[H]=s.get("rpcUrls")[K.Ton]??[];if(H)return H;return await kQ()}function JQ(H={}){let L,D,F;async function R(){if(!L){let{TonClient:Q}=await import("@ton/ton"),X=H.provider??await qQ();L=new Q({endpoint:X})}return L}async function W(){return(await O()).address.toString()}async function P(){if(F)return F;return F=await u(H).with({phrase:y.string},async({phrase:Q})=>{let{mnemonicToWalletKey:X}=await import("@ton/crypto");return X(Q.split(" "))}).with({signer:y.any},({signer:Q})=>Q).otherwise(()=>{return}),F}async function O(Q){if(!D||Q){let X=await P(),Y=await R(),$=Q||X;if(!$)throw new I("core_wallet_connection_not_found");let{WalletContractV4:Z}=await import("@ton/ton"),z=Z.create({publicKey:$.publicKey,workchain:0});D=Y.open(z)}return D}let g=p(K.Ton);async function c({assetValue:Q,recipient:X,memo:Y,sender:$,sweep:Z}){if(Q.isGasAsset){let r=Y?C(Y).toBoc().toString("base64"):void 0;return[{address:X,amount:Q.getBaseValue("string"),payload:r}]}if(Z)throw new I({errorKey:"core_swap_invalid_params",info:{asset:Q.toString(),reason:"TON sweep is only supported for the native gas asset"}});let z=Q.address;if(!z)throw new I({errorKey:"core_swap_contract_not_found",info:{asset:Q.toString()}});let G=$??await W(),v=await f({jettonMasterAddress:z,ownerAddress:G}),q=k.parse(X),J=k.parse(G),B=Q.getBaseValue("bigint"),x=Y?C(Y):void 0,_=o({destinationAddress:q,forwardPayload:x,jettonAmount:B,responseAddress:J});return[{address:v.toString(),amount:zQ.toString(),payload:_.toBoc().toString("base64")}]}async function V({sender:Q,sweep:X,...Y}){return{messages:await c({...Y,sender:Q,sweep:X}),sendMode:X?GQ:w}}function i(Q){if(!Array.isArray(Q))return Q;let[X]=Q;return{messages:Q.map(({sendMode:$,...Z})=>Z),sendMode:X?.sendMode??w}}function M(Q){return Q.map((X)=>{let Y=X.payload?S.fromBase64(X.payload):void 0,$=X.stateInit?XQ(S.fromBase64(X.stateInit).asSlice()):void 0,Z=k.parse(X.address),z=k.isFriendly(X.address)?k.parseFriendly(X.address).isBounceable:!0;return QQ({body:Y,bounce:z,init:$,to:Z,value:BigInt(X.amount)})})}async function b(Q){let X=await P(),Y=await O();if(!Y||!X)throw new I("core_wallet_connection_not_found");let $=await R(),{state:Z}=await $.getContractState(Y.address),z=Z==="active",G=z?await Y.getSeqno():0,{messages:v,sendMode:q}=i(Q),J=Y.createTransfer({messages:M(v),secretKey:X.secretKey,sendMode:q,seqno:G}),B=e({body:J,init:z?void 0:Y.init,to:Y.address});return h().store(YQ(B)).endCell()}async function E(Q){return await(await R()).sendFile(Q.toBoc()),Q.hash().toString("hex")}async function T(Q){let X=await b(Q);return E(X)}async function l({assetValue:Q,recipient:X,memo:Y,sweep:$}){let Z=await V({assetValue:Q,memo:Y,recipient:X,sweep:$});return T(Z)}async function d({sender:Q,...X}){let{baseDecimal:Y}=a(K.Ton),$=await u(Q).with(y.string,(G)=>{return k.parseFriendly(G).address}).otherwise(async()=>{return(await O()).address});if(!$)throw new I("toolbox_fee_estimation_failed",{chain:K.Ton});let Z=n.from({chain:K.Ton,value:"0.01"}),z=await R();try{let G=await V({sender:Q,...X}),v=await P(),q=await O();if(!q||!v)return Z;let J=await q.getSeqno(),B=q.createTransfer({messages:M(G.messages),secretKey:v.secretKey,sendMode:G.sendMode,seqno:J}),{source_fees:x}=await z.estimateExternalMessageFee($,{body:B,ignoreSignature:!0,initCode:null,initData:null}),_=x.in_fwd_fee+x.storage_fee+x.gas_fee+x.fwd_fee;return Z.set(t.fromBigInt(BigInt(_),Y))}catch{return Z}}async function f({jettonMasterAddress:Q,ownerAddress:X}){try{let Y=await R(),$=k.parse(Q),Z=k.parse(X),{JettonMaster:z}=await import("@ton/ton");return await Y.open(z.create($)).getWalletAddress(Z)}catch{throw new I({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:Q,ownerAddress:X}})}}function o({jettonAmount:Q,destinationAddress:X,responseAddress:Y,forwardAmount:$=$Q,forwardPayload:Z}){let z=h().storeUint(ZQ,32).storeUint(0,64).storeCoins(Q).storeAddress(X).storeAddress(Y).storeBit(0).storeCoins($);if(Z)z.storeBit(1).storeRef(Z);else z.storeBit(0);return z.endCell()}function C(Q){return h().storeUint(0,32).storeStringTail(Q).endCell()}return{broadcastTransaction:E,createTransaction:V,estimateTransactionFee:d,getAddress:W,getBalance:g,getJettonWalletAddress:f,sign:b,signAndBroadcastTransaction:T,transfer:l,validateAddress:vQ}}function vQ(H){try{return k.parse(H),!0}catch{return!1}}export{vQ as validateTonAddress,JQ as getTONToolbox};
1
+ import{fa as m}from"../../chunk-nvfkjbyq.js";import{ga as B}from"../../chunk-xbdjxeqd.js";import{AssetValue as t,Chain as F,getChainConfig as e,SKConfig as QQ,SwapKitError as v,SwapKitNumber as XQ}from"@swapkit/helpers";import{Address as q,beginCell as h,Cell as u,external as YQ,internal as ZQ,loadStateInit as $Q,SendMode as D,storeMessage as zQ,toNano as c}from"@ton/core";import{match as w,P as M}from"ts-pattern";var GQ=260734629,HQ=c("0.01"),qQ=c("0.05"),A=D.PAY_GAS_SEPARATELY+D.IGNORE_ERRORS,vQ=D.CARRY_ALL_REMAINING_BALANCE+D.IGNORE_ERRORS,kQ=60000,N,p=0;async function xQ(){let H=Date.now();if(N&&H-p<kQ)return N;let{getHttpEndpoint:U}=await import("@orbs-network/ton-access");return N=await U(),p=H,N}async function IQ(){let[H]=QQ.get("rpcUrls")[F.Ton]??[];if(H)return H;return await xQ()}function OQ(H={}){let U,P,O;async function k(){if(!U){let{TonClient:Q}=await import("@ton/ton"),X=H.provider??await IQ();U=new Q({endpoint:X})}return U}async function j(){return(await K()).address.toString()}async function V(){if(O)return O;return O=await w(H).with({phrase:M.string},async({phrase:Q})=>{let{mnemonicToWalletKey:X}=await import("@ton/crypto");return X(Q.split(" "))}).with({signer:M.any},({signer:Q})=>Q).otherwise(()=>{return}),O}async function K(Q){if(!P||Q){let X=await V(),Y=await k(),$=Q||X;if(!$)throw new v("core_wallet_connection_not_found");let{WalletContractV4:Z}=await import("@ton/ton"),z=Z.create({publicKey:$.publicKey,workchain:0});P=Y.open(z)}return P}let g=m(F.Ton);async function i({assetValue:Q,recipient:X,memo:Y,sender:$,sweep:Z}){if(Q.isGasAsset){if(Z){let s=$||await j(),S=await(await k()).getBalance(q.parse(s));if(S<=0n)throw new v("toolbox_sweep_amount_too_low",{asset:Q.toString(),balance:S.toString()})}let a=Y?C(Y).toBoc().toString("base64"):void 0;return[{address:X,amount:Q.getBaseValue("string"),payload:a}]}let z=Q.address;if(!z)throw new v({errorKey:"core_swap_contract_not_found",info:{asset:Q.toString()}});let G=$??await j(),x=await f({jettonMasterAddress:z,ownerAddress:G}),I=q.parse(X),J=q.parse(G),L=Z?await r(x):Q.getBaseValue("bigint");if(Z&&L<=0n)throw new v("toolbox_sweep_amount_too_low",{asset:Q.toString(),balance:L.toString()});let R=Y?C(Y):void 0,y=n({destinationAddress:I,forwardPayload:R,jettonAmount:L,responseAddress:J});return[{address:x.toString(),amount:qQ.toString(),payload:y.toBoc().toString("base64")}]}async function _({sender:Q,sweep:X,...Y}){let $=X&&Y.assetValue.isGasAsset?vQ:A;return{messages:await i({...Y,sender:Q,sweep:X}),sendMode:$}}function l(Q){if(!Array.isArray(Q))return Q;let[X]=Q;return{messages:Q.map(({sendMode:$,...Z})=>Z),sendMode:X?.sendMode??A}}function W(Q){return Q.map((X)=>{let Y=X.payload?u.fromBase64(X.payload):void 0,$=X.stateInit?$Q(u.fromBase64(X.stateInit).asSlice()):void 0,Z=q.parse(X.address),z=q.isFriendly(X.address)?q.parseFriendly(X.address).isBounceable:!0;return ZQ({body:Y,bounce:z,init:$,to:Z,value:BigInt(X.amount)})})}async function T(Q){let X=await V(),Y=await K();if(!Y||!X)throw new v("core_wallet_connection_not_found");let $=await k(),{state:Z}=await $.getContractState(Y.address),z=Z==="active",G=z?await Y.getSeqno():0,{messages:x,sendMode:I}=l(Q),J=Y.createTransfer({messages:W(x),secretKey:X.secretKey,sendMode:I,seqno:G}),L=YQ({body:J,init:z?void 0:Y.init,to:Y.address});return h().store(zQ(L)).endCell()}async function b(Q){return await(await k()).sendFile(Q.toBoc()),Q.hash().toString("hex")}async function E(Q){let X=await T(Q);return b(X)}async function d({assetValue:Q,recipient:X,memo:Y,sweep:$}){let Z=await _({assetValue:Q,memo:Y,recipient:X,sweep:$});return E(Z)}async function o({sender:Q,...X}){let{baseDecimal:Y}=e(F.Ton),$=await w(Q).with(M.string,(G)=>{return q.parseFriendly(G).address}).otherwise(async()=>{return(await K()).address});if(!$)throw new v("toolbox_fee_estimation_failed",{chain:F.Ton});let Z=t.from({chain:F.Ton,value:"0.01"}),z=await k();try{let G=await _({sender:Q,...X}),x=await V(),I=await K();if(!I||!x)return Z;let J=await I.getSeqno(),L=I.createTransfer({messages:W(G.messages),secretKey:x.secretKey,sendMode:G.sendMode,seqno:J}),{source_fees:R}=await z.estimateExternalMessageFee($,{body:L,ignoreSignature:!0,initCode:null,initData:null}),y=R.in_fwd_fee+R.storage_fee+R.gas_fee+R.fwd_fee;return Z.set(XQ.fromBigInt(BigInt(y),Y))}catch{return Z}}async function f({jettonMasterAddress:Q,ownerAddress:X}){try{let Y=await k(),$=q.parse(Q),Z=q.parse(X),{JettonMaster:z}=await import("@ton/ton");return await Y.open(z.create($)).getWalletAddress(Z)}catch{throw new v({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:Q,ownerAddress:X}})}}async function r(Q){try{let X=await k(),{JettonWallet:Y}=await import("@ton/ton");return await X.open(Y.create(Q)).getBalance()}catch{throw new v({errorKey:"core_swap_contract_not_found",info:{jettonWalletAddress:Q.toString()}})}}function n({jettonAmount:Q,destinationAddress:X,responseAddress:Y,forwardAmount:$=HQ,forwardPayload:Z}){let z=h().storeUint(GQ,32).storeUint(0,64).storeCoins(Q).storeAddress(X).storeAddress(Y).storeBit(0).storeCoins($);if(Z)z.storeBit(1).storeRef(Z);else z.storeBit(0);return z.endCell()}function C(Q){return h().storeUint(0,32).storeStringTail(Q).endCell()}return{broadcastTransaction:b,createTransaction:_,estimateTransactionFee:o,getAddress:j,getBalance:g,getJettonWalletAddress:f,sign:T,signAndBroadcastTransaction:E,transfer:d,validateAddress:LQ}}function LQ(H){try{return q.parse(H),!0}catch{return!1}}export{LQ as validateTonAddress,OQ as getTONToolbox};
@@ -1 +1 @@
1
- var ez=Object.create;var{getPrototypeOf:zJ,defineProperty:v,getOwnPropertyNames:Zz,getOwnPropertyDescriptor:JJ}=Object,$z=Object.prototype.hasOwnProperty;function Yz(z){return this[z]}var QJ,ZJ,_J=(z,J,Q)=>{var Z=z!=null&&typeof z==="object";if(Z){var Y=J?QJ??=new WeakMap:ZJ??=new WeakMap,q=Y.get(z);if(q)return q}Q=z!=null?ez(zJ(z)):{};let M=J||!z||!z.__esModule?v(Q,"default",{value:z,enumerable:!0}):Q;for(let k of Zz(z))if(!$z.call(M,k))v(M,k,{get:Yz.bind(z,k),enumerable:!0});if(Z)Y.set(z,M);return M},$J=(z)=>{var J=(Qz??=new WeakMap).get(z),Q;if(J)return J;if(J=v({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var Z of Zz(z))if(!$z.call(J,Z))v(J,Z,{get:Yz.bind(z,Z),enumerable:!(Q=JJ(z,Z))||Q.enumerable})}return Qz.set(z,J),J},Qz;var YJ=(z)=>z;function XJ(z,J){this[z]=YJ.bind(null,J)}var jJ=(z,J)=>{for(var Q in J)v(z,Q,{get:J[Q],enumerable:!0,configurable:!0,set:XJ.bind(J,Q)})};var f=(z,J)=>()=>(z&&(J=z(z=0)),J);function u(z,J){let Q=0n,Z=0n,Y=J;while(Y<z.length&&Y-J<10){let q=z[Y++];if(q===void 0)break;if(Q|=BigInt(q&127)<<Z,Z+=7n,(q&128)===0)return[Q,Y]}throw new R.SwapKitError("toolbox_tron_transaction_creation_failed")}function w(z){let J=[],Q=z<0n?z+2n**64n:z;while(Q>=128n)J.push(Number(Q&0x7fn)|128),Q>>=7n;return J.push(Number(Q)),J}function A(z,J,Q){let Z=z.get(J);if(Z)Z.push(Q);else z.set(J,[Q])}function WJ(z){let J=new Map,Q=0;while(Q<z.length){let[Z,Y]=u(z,Q);Q=Y;let q=Number(Z>>3n),M=Number(Z&7n);if(M===y){let[k,H]=u(z,Q);Q=H,A(J,q,{data:new Uint8Array(w(k)),wireType:y})}else if(M===h){let[k,H]=u(z,Q);Q=H;let D=Number(k);if(D<0||Q+D>z.length)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let m=z.slice(Q,Q+D);Q+=D,A(J,q,{data:m,wireType:h})}else if(M===Xz){if(Q+8>z.length)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let k=z.slice(Q,Q+8);Q+=8,A(J,q,{data:k,wireType:Xz})}else if(M===jz){if(Q+4>z.length)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let k=z.slice(Q,Q+4);Q+=4,A(J,q,{data:k,wireType:jz})}else throw new R.SwapKitError("toolbox_tron_transaction_creation_failed")}return J}function OJ(z){let J=[];for(let[q,M]of[...z.entries()].sort(([k],[H])=>k-H))for(let{wireType:k,data:H}of M){let D=BigInt(q<<3|k);if(J.push(new Uint8Array(w(D))),k===h)J.push(new Uint8Array(w(BigInt(H.length))));J.push(H)}let Q=J.reduce((q,M)=>q+M.length,0),Z=new Uint8Array(Q),Y=0;for(let q of J)Z.set(q,Y),Y+=q.length;return Z}function Gz(z,J){if(!z||z.length%2!==0)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let Q=S.hexToBytes(z),Z=WJ(Q);if(J.expiration!==void 0)Z.set(qJ,[{data:new Uint8Array(w(BigInt(J.expiration))),wireType:y}]);if(J.data!==void 0)Z.set(GJ,[{data:S.hexToBytes(J.data),wireType:h}]);if(J.fee_limit!==void 0)Z.set(MJ,[{data:new Uint8Array(w(BigInt(J.fee_limit))),wireType:y}]);let Y=OJ(Z),q=S.bytesToHex(Y),M=S.bytesToHex(qz.sha256(Y));return{raw_data_hex:q,txID:M}}var qz,S,R,y=0,Xz=1,h=2,jz=5,qJ=8,GJ=10,MJ=18;var Mz=f(()=>{qz=require("@noble/hashes/sha2.js"),S=require("@noble/hashes/utils.js"),R=require("@swapkit/helpers")});function B(z){if(typeof z!=="string")return!1;try{let J=E.decode(z);return J.length===21&&J[0]===Uz}catch{return!1}}function Cz(z){return N.bytesToHex(E.decode(z))}function CJ(z){return E.decode(z).slice(1)}function kz(z){let J=p.secp256k1.getPublicKey(N.hexToBytes(z),!1),Q=Wz.keccak_256(J.slice(1)).slice(-20),Z=new Uint8Array(21);return Z[0]=Uz,Z.set(Q,1),E.encode(Z)}function Hz({txID:z,privateKey:J}){let Q=p.secp256k1.sign(N.hexToBytes(z),N.hexToBytes(J),{format:"recovered",prehash:!1}),Z=Q[0]??0,Y=N.bytesToHex(Q.slice(1,33)),q=N.bytesToHex(Q.slice(33,65)),M=(Z+27).toString(16).padStart(2,"0");return Y+q+M}function _({txID:z,raw_data_hex:J}){let Q=N.bytesToHex(l.sha256(N.hexToBytes(J)));if(z!==Q)throw new c.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:Q,txID:z})}function kJ(z){return`000000000000000000000000${N.bytesToHex(CJ(z))}`}function HJ(z){let J=typeof z==="bigint"?z:BigInt(z);if(J<0n||J>=UJ)throw new c.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});return J.toString(16).padStart(64,"0")}function T(z){return z.map(({type:J,value:Q})=>J==="address"?kJ(Q):HJ(BigInt(Q))).join("")}function Kz(z){return N.bytesToHex(new TextEncoder().encode(z))}var p,l,Wz,N,Oz,c,E,Uz=65,UJ;var o=f(()=>{p=require("@noble/curves/secp256k1.js"),l=require("@noble/hashes/sha2.js"),Wz=require("@noble/hashes/sha3.js"),N=require("@noble/hashes/utils.js"),Oz=require("@scure/base"),c=require("@swapkit/helpers"),E=Oz.createBase58check(l.sha256),UJ=2n**256n});function Nz(){try{return C.getRPCUrlSync(C.Chain.Tron)}catch{return Lz}}function Bz(){let z=new AbortController,J=setTimeout(()=>z.abort(),BJ);return{cleanup:()=>clearTimeout(J),signal:z.signal}}async function V(z,J){let{signal:Q,cleanup:Z}=Bz();try{let Y=await fetch(`${Nz()}${z}`,{body:JSON.stringify(J),headers:{"Content-Type":"application/json"},method:"POST",signal:Q});if(!Y.ok)throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${Y.status} ${Y.statusText} on ${z}`});return await Y.json()}finally{Z()}}async function Dz(z,J){let{signal:Q,cleanup:Z}=Bz();try{let Y=await fetch(`${J??Nz()}${z}`,{headers:{"Content-Type":"application/json"},signal:Q});if(!Y.ok)throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${Y.status} ${Y.statusText} on ${z}`});return await Y.json()}finally{Z()}}async function Fz(z){if(!B(z))throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:"Invalid address"});try{let J=await Dz(`/v1/accounts/${z}`,Lz);if(!(J.success&&J.data)||J.data.length===0)return;let Q;try{Q=Cz(z).toLowerCase()}catch{Q=z.toLowerCase()}let Z=J.data.find((Y)=>Y.address.toLowerCase()===Q);if(!Z)return;return{balance:Z.balance,trc20:Z.trc20||[]}}catch(J){if(J instanceof C.SwapKitError)throw J;throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:J instanceof Error?J.message:"Unknown error"})}}async function Rz({from:z,to:J,amount:Q}){let Y=await V("/wallet/createtransaction",{amount:Q,owner_address:z,to_address:J,visible:!0});if(!Y.txID||!Y.raw_data_hex||!Y.raw_data)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");let M=Y.raw_data?.contract?.[0]?.parameter?.value;if(M?.to_address!==J||M?.owner_address!==z||M?.amount!==Q)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");return _(Y),Y}async function Vz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:Z,feeLimit:Y,callValue:q=0}){let M=await V("/wallet/triggersmartcontract",{call_value:q,contract_address:J,fee_limit:Y,function_selector:Q,owner_address:z,parameter:Z,visible:!0});if(!M.result.result||!M.transaction?.txID||!M.transaction?.raw_data_hex)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");let H=M.transaction.raw_data?.contract?.[0]?.parameter?.value;if(H?.contract_address!==J||H?.owner_address!==z)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");return _(M.transaction),M.transaction}function Sz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:Z}){return V("/wallet/triggerconstantcontract",{contract_address:J,function_selector:Q,owner_address:z,parameter:Z,visible:!0})}function DJ({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:Z}){return V("/wallet/estimateenergy",{contract_address:J,function_selector:Q,owner_address:z,parameter:Z,visible:!0})}function Pz(z){let J=typeof z==="number"?z:typeof z==="string"?Number(z):Number.NaN;return Number.isFinite(J)&&J>0?J:void 0}async function x(z){try{let{result:J,txid:Q}=await V("/wallet/broadcasttransaction",{raw_data:z.raw_data,raw_data_hex:z.raw_data_hex,signature:z.signature,txID:z.txID,visible:z.visible});if(!J||!Q)throw new C.SwapKitError("toolbox_tron_token_transfer_failed");return Q}catch(J){throw new C.SwapKitError("toolbox_tron_broadcast_failed",{error:J})}}async function b(){let z={};try{let{chainParameter:J}=await Dz("/wallet/getchainparameters");for(let Q of J)z[Q.key]=Q.value}catch(J){C.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${J instanceof Error?J.message:J}`})}return{bandwidthFee:z.getTransactionFee??KJ,createAccountFee:z.getCreateNewAccountFeeInSystemContract??z.getCreateAccountFee??PJ,energyFee:z.getEnergyFee??LJ,memoFee:z.getMemoFee??NJ}}async function i(z){try{let J=await V("/wallet/getaccountresource",{address:z,visible:!0});return{bandwidth:{free:(J.freeNetLimit??600)-(J.freeNetUsed??0),total:J.NetLimit??0,used:J.NetUsed??0},energy:{total:J.EnergyLimit??0,used:J.EnergyUsed??0}}}catch(J){return C.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${J instanceof Error?J.message:J}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function g(z){try{let J=await V("/wallet/getaccount",{address:z,visible:!0});return J&&Object.keys(J).length>0}catch{return!1}}async function n(z){try{let J=await DJ({...z,ownerAddress:z.sender}),Q=J.energy_required??J.energyRequired;if(J.result&&!J.result.result)throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:J.result.message||"estimateenergy failed"});if(Q!==void 0){let Z=Pz(Q);if(Z!==void 0)return Z;throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(J){C.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${J instanceof Error?J.message:J}`})}try{let{energy_used:J}=await Sz({...z,ownerAddress:z.sender}),Q=Pz(J);if(Q!==void 0)return Q;throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(J){throw C.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${J instanceof Error?J.message:J}`}),new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${J instanceof Error?J.message:J}`})}}async function _z({assetAddress:z,owner:J,spender:Q}){let Z=T([{type:"address",value:J},{type:"address",value:Q}]),q=(await Sz({contractAddress:z,functionSelector:"allowance(address,address)",ownerAddress:Q,parameter:Z})).constant_result?.[0];if(!q)return 0n;try{return BigInt(`0x${q}`)}catch{return 0n}}var C,Lz="https://api.trongrid.io",KJ=1000,PJ=1e6,LJ=420,NJ=1e6,BJ=30000;var Tz=f(()=>{o();C=require("@swapkit/helpers")});function yz({phrase:z,derivationPath:J}){let Q=bz.HDKey.fromMasterSeed(gz.mnemonicToSeedSync(z)).derive(J);if(!Q.privateKey)throw new $.SwapKitError("toolbox_tron_no_signer");return xz.bytesToHex(Q.privateKey)}function hz(z,J){return{...z,value:String(J)}}function Ez(z,J){if(!J)return z;return{...z,data:J.startsWith("0x")?J:`0x${J}`}}function mz({phrase:z,derivationPath:J,index:Q}){let Z=J||$.derivationPathToString($.updateDerivationPath($.NetworkDerivationPath[$.Chain.Tron],{index:Q||0}));return yz({derivationPath:Z,phrase:z})}function RJ({phrase:z,derivationPath:J}){let Q=yz({derivationPath:J,phrase:z}),Z=kz(Q);return{getAddress:()=>Promise.resolve(Z),signTransaction:(Y)=>{_(Y);let q=Hz({privateKey:Q,txID:Y.txID});return Promise.resolve({...Y,signature:[q]})}}}function wz({transaction:z,memo:J,expiration:Q,feeLimit:Z}){let Y={},q={};if(Z!==void 0&&z.raw_data)Y.fee_limit=Z,q.fee_limit=Z;if(J){let H=J.startsWith("0x")?J.replace(/^0x/,""):Kz(J);Y.data=H,q.data=H}if(Q){let H=z.raw_data.expiration+Q*1000;Y.expiration=H,q.expiration=H}if(Object.keys(Y).length===0)return z;let{raw_data_hex:M,txID:k}=Gz(z.raw_data_hex,Y);return{...z,raw_data:{...z.raw_data,...q},raw_data_hex:M,txID:k}}function uz(z={}){let J="index"in z?z.index||0:0,Q=$.derivationPathToString("derivationPath"in z&&z.derivationPath?z.derivationPath:$.updateDerivationPath($.NetworkDerivationPath[$.Chain.Tron],{index:J})),Z,Y=!1;function q(){if(Y)return Promise.resolve(Z);return Z=I.match(z).with({phrase:I.P.string},({phrase:X})=>RJ({derivationPath:Q,phrase:X})).with({signer:I.P.not(I.P.nullish)},({signer:X})=>X).otherwise(()=>{return}),Y=!0,Promise.resolve(Z)}async function M(){let X=await q();if(!X)throw new $.SwapKitError("toolbox_tron_no_signer");return X.getAddress()}async function k(X,j){let W=X||vz,G=j??(await b()).energyFee,U=W*G,O=Math.ceil(U*1.5);return Math.min(Math.max(O,1e7),150000000)}async function H({contractAddress:X,functionSelector:j,parameter:W,sender:G,memo:U,expiration:O,extraEnergy:P=0}){let K=await n({contractAddress:X,functionSelector:j,parameter:W,sender:G}),L=await k(K+P),F=await Vz({contractAddress:X,feeLimit:L,functionSelector:j,ownerAddress:G,parameter:W});return wz({expiration:O,feeLimit:L,memo:U,transaction:F})}async function D(X){if(!B(X))return[$.AssetValue.from({chain:$.Chain.Tron})];try{let j=await Fz(X);if(!j)return[$.AssetValue.from({chain:$.Chain.Tron})];let W=[$.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:6,value:String(j.balance)})],G=j.trc20?.find((U)=>(t in U));if(G){let U=G[t];W.push($.AssetValue.from({asset:`TRON.USDT-${t}`,fromBaseDecimal:6,value:U}))}return W}catch(j){return $.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${j instanceof Error?j.message:j}`}),[$.AssetValue.from({chain:$.Chain.Tron})]}}async function m({recipient:X,assetValue:j,memo:W,expiration:G}){if(!B(X))throw new $.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let U=await q();if(!U)throw new $.SwapKitError("toolbox_tron_no_signer");try{let O=await M(),P=await s({assetValue:j,expiration:G,memo:W,recipient:X,sender:O}),K=await U.signTransaction(P),L=await x(K);if(!L)throw new $.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return L}catch(O){throw new $.SwapKitError("toolbox_tron_token_transfer_failed",{message:O instanceof Error?O.message:String(O)})}}function a({requiredBandwidth:X,resources:j,feePerUnit:W}){let G=Math.max(0,j.free+j.total-j.used);return X>G?(X-G)*W:0}async function lz({memo:X,recipient:j,senderAddress:W}){let[G,U,O]=await Promise.all([b(),g(j),i(W)]),P=U?0:G.createAccountFee,K=a({feePerUnit:G.bandwidthFee,requiredBandwidth:Iz,resources:O.bandwidth}),L=X?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:P+K+L})}async function cz({assetValue:X,memo:j,recipient:W,senderAddress:G}){let U=X.address;if(!U)throw new $.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:X.toString()});let[O,P,K,L]=await Promise.all([b(),g(W),i(G),n({contractAddress:U,functionSelector:"transfer(address,uint256)",parameter:T([{type:"address",value:W},{type:"uint256",value:X.getBaseValue("string")}]),sender:G})]),zz=L+(P?0:d),az=a({feePerUnit:O.bandwidthFee,requiredBandwidth:fz,resources:K.bandwidth}),Jz=Math.max(0,K.energy.total-K.energy.used),sz=zz>Jz?(zz-Jz)*O.energyFee:0,rz=j?O.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:az+sz+rz})}async function oz({assetValue:X,memo:j,recipient:W}){let[G,U]=await Promise.all([b(),g(W)]);if(X.isGasAsset){let L=U?0:G.createAccountFee,F=j?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:L+Iz*G.bandwidthFee+F})}let P=await k(vz+(U?0:d),G.energyFee),K=j?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:P+fz*G.bandwidthFee+K})}async function iz({assetValue:X,memo:j,recipient:W,sender:G}){let U=await q();try{let O=G?G:U?await M():void 0;if(!O)return oz({assetValue:X,memo:j,recipient:W});return X.isGasAsset?lz({memo:j,recipient:W,senderAddress:O}):cz({assetValue:X,memo:j,recipient:W,senderAddress:O})}catch(O){throw $.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${O instanceof Error?O.message:O}`}),new $.SwapKitError("toolbox_fee_estimation_failed",{chain:$.Chain.Tron,error:O})}}async function s({recipient:X,assetValue:j,memo:W,sender:G,expiration:U}){if(!B(X)||!B(G))throw new $.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(j.isGasAsset){let K=await Rz({amount:j.getBaseValue("number"),from:G,to:X});return wz({expiration:U,memo:W,transaction:K})}let O=j.address;if(!O)throw new $.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:j.toString()});let P=await g(X);return H({contractAddress:O,expiration:U,extraEnergy:P?0:d,functionSelector:"transfer(address,uint256)",memo:W,parameter:T([{type:"address",value:X},{type:"uint256",value:j.getBaseValue("string")}]),sender:G})}async function r(X){_(X);let j=await q();if(!j)throw new $.SwapKitError("toolbox_tron_no_signer");return j.signTransaction(X)}async function nz(X){let j=await r(X);return x(j)}function e({assetAddress:X,spenderAddress:j,from:W}){return _z({assetAddress:X,owner:W,spender:j})}async function dz({assetAddress:X,spenderAddress:j,from:W,amount:G}){let U=await e({assetAddress:X,from:W,spenderAddress:j});if(!G)return U>0n;return U>=BigInt(G)}async function tz({assetAddress:X,spenderAddress:j,amount:W,from:G}){if(!B(X)||!B(j))throw new $.SwapKitError("toolbox_tron_approve_failed");let U=await q();if(!U)throw new $.SwapKitError("toolbox_tron_no_signer");let O=G||await M(),P=W!==void 0?BigInt(W).toString():FJ;try{let K=await H({contractAddress:X,functionSelector:"approve(address,uint256)",parameter:T([{type:"address",value:j},{type:"uint256",value:P}]),sender:O}),L=await U.signTransaction(K),F=await x(L);if(!F)throw new $.SwapKitError("toolbox_tron_approve_failed");return F}catch(K){if(K instanceof $.SwapKitError)throw K;throw new $.SwapKitError("toolbox_tron_approve_failed",{error:K})}}return{approve:tz,broadcastTransaction:x,createTransaction:s,estimateTransactionFee:iz,getAddress:M,getApprovedAmount:e,getBalance:D,getRpcUrl:()=>$.getRPCUrl($.Chain.Tron),isApproved:dz,signAndBroadcastTransaction:nz,signTransaction:r,transfer:m,validateAddress:B}}var xz,bz,gz,$,I,Az,Iz=268,vz=65000,d=25000,fz=345,t="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",FJ="115792089237316195423570985008687907853269984665640564039457584007913129639935";var pz=f(()=>{Mz();Tz();o();xz=require("@noble/hashes/utils.js"),bz=require("@scure/bip32"),gz=require("@scure/bip39"),$=require("@swapkit/helpers"),I=require("ts-pattern"),Az=B});var VJ={};jJ(VJ,{withTronTransactionValue:()=>hz,withTronTransactionData:()=>Ez,validateTronAddress:()=>Az,getTronToolbox:()=>uz,getTronPrivateKeyFromMnemonic:()=>mz});module.exports=$J(VJ);var SJ=f(()=>{pz()});SJ();
1
+ var QJ=Object.create;var{getPrototypeOf:ZJ,defineProperty:x,getOwnPropertyNames:qz,getOwnPropertyDescriptor:$J}=Object,Gz=Object.prototype.hasOwnProperty;function Mz(z){return this[z]}var YJ,XJ,vJ=(z,J,Q)=>{var $=z!=null&&typeof z==="object";if($){var X=J?YJ??=new WeakMap:XJ??=new WeakMap,G=X.get(z);if(G)return G}Q=z!=null?QJ(ZJ(z)):{};let W=J||!z||!z.__esModule?x(Q,"default",{value:z,enumerable:!0}):Q;for(let H of qz(z))if(!Gz.call(W,H))x(W,H,{get:Mz.bind(z,H),enumerable:!0});if($)X.set(z,W);return W},jJ=(z)=>{var J=(jz??=new WeakMap).get(z),Q;if(J)return J;if(J=x({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var $ of qz(z))if(!Gz.call(J,$))x(J,$,{get:Mz.bind(z,$),enumerable:!(Q=$J(z,$))||Q.enumerable})}return jz.set(z,J),J},jz;var qJ=(z)=>z;function GJ(z,J){this[z]=qJ.bind(null,J)}var MJ=(z,J)=>{for(var Q in J)x(z,Q,{get:J[Q],enumerable:!0,configurable:!0,set:GJ.bind(J,Q)})};var b=(z,J)=>()=>(z&&(J=z(z=0)),J);function o(z,J){let Q=0n,$=0n,X=J;while(X<z.length&&X-J<10){let G=z[X++];if(G===void 0)break;if(Q|=BigInt(G&127)<<$,$+=7n,(G&128)===0)return[Q,X]}throw new B.SwapKitError("toolbox_tron_transaction_creation_failed")}function w(z){let J=[],Q=z<0n?z+2n**64n:z;while(Q>=128n)J.push(Number(Q&0x7fn)|128),Q>>=7n;return J.push(Number(Q)),J}function A(z,J,Q){let $=z.get(J);if($)$.push(Q);else z.set(J,[Q])}function kJ(z){let J=new Map,Q=0;while(Q<z.length){let[$,X]=o(z,Q);Q=X;let G=Number($>>3n),W=Number($&7n);if(W===E){let[H,L]=o(z,Q);Q=L,A(J,G,{data:new Uint8Array(w(H)),wireType:E})}else if(W===m){let[H,L]=o(z,Q);Q=L;let F=Number(H);if(F<0||Q+F>z.length)throw new B.SwapKitError("toolbox_tron_transaction_creation_failed");let l=z.slice(Q,Q+F);Q+=F,A(J,G,{data:l,wireType:m})}else if(W===Wz){if(Q+8>z.length)throw new B.SwapKitError("toolbox_tron_transaction_creation_failed");let H=z.slice(Q,Q+8);Q+=8,A(J,G,{data:H,wireType:Wz})}else if(W===Oz){if(Q+4>z.length)throw new B.SwapKitError("toolbox_tron_transaction_creation_failed");let H=z.slice(Q,Q+4);Q+=4,A(J,G,{data:H,wireType:Oz})}else throw new B.SwapKitError("toolbox_tron_transaction_creation_failed")}return J}function UJ(z){let J=[];for(let[G,W]of[...z.entries()].sort(([H],[L])=>H-L))for(let{wireType:H,data:L}of W){let F=BigInt(G<<3|H);if(J.push(new Uint8Array(w(F))),H===m)J.push(new Uint8Array(w(BigInt(L.length))));J.push(L)}let Q=J.reduce((G,W)=>G+W.length,0),$=new Uint8Array(Q),X=0;for(let G of J)$.set(G,X),X+=G.length;return $}function kz(z,J){if(!z||z.length%2!==0)throw new B.SwapKitError("toolbox_tron_transaction_creation_failed");let Q=_.hexToBytes(z),$=kJ(Q);if(J.expiration!==void 0)$.set(WJ,[{data:new Uint8Array(w(BigInt(J.expiration))),wireType:E}]);if(J.data!==void 0)$.set(OJ,[{data:_.hexToBytes(J.data),wireType:m}]);if(J.fee_limit!==void 0)$.set(CJ,[{data:new Uint8Array(w(BigInt(J.fee_limit))),wireType:E}]);let X=UJ($),G=_.bytesToHex(X),W=_.bytesToHex(Cz.sha256(X));return{raw_data_hex:G,txID:W}}var Cz,_,B,E=0,Wz=1,m=2,Oz=5,WJ=8,OJ=10,CJ=18;var Uz=b(()=>{Cz=require("@noble/hashes/sha2.js"),_=require("@noble/hashes/utils.js"),B=require("@swapkit/helpers")});function R(z){if(typeof z!=="string")return!1;try{let J=u.decode(z);return J.length===21&&J[0]===Pz}catch{return!1}}function Lz(z){return D.bytesToHex(u.decode(z))}function KJ(z){return u.decode(z).slice(1)}function Nz(z){let J=i.secp256k1.getPublicKey(D.hexToBytes(z),!1),Q=Hz.keccak_256(J.slice(1)).slice(-20),$=new Uint8Array(21);return $[0]=Pz,$.set(Q,1),u.encode($)}function Dz({txID:z,privateKey:J}){let Q=i.secp256k1.sign(D.hexToBytes(z),D.hexToBytes(J),{format:"recovered",prehash:!1}),$=Q[0]??0,X=D.bytesToHex(Q.slice(1,33)),G=D.bytesToHex(Q.slice(33,65)),W=($+27).toString(16).padStart(2,"0");return X+G+W}function T({txID:z,raw_data_hex:J}){let Q=D.bytesToHex(d.sha256(D.hexToBytes(J)));if(z!==Q)throw new n.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:Q,txID:z})}function PJ(z){return`000000000000000000000000${D.bytesToHex(KJ(z))}`}function LJ(z){let J=typeof z==="bigint"?z:BigInt(z);if(J<0n||J>=HJ)throw new n.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});return J.toString(16).padStart(64,"0")}function V(z){return z.map(({type:J,value:Q})=>J==="address"?PJ(Q):LJ(BigInt(Q))).join("")}function Rz(z){return D.bytesToHex(new TextEncoder().encode(z))}var i,d,Hz,D,Kz,n,u,Pz=65,HJ;var t=b(()=>{i=require("@noble/curves/secp256k1.js"),d=require("@noble/hashes/sha2.js"),Hz=require("@noble/hashes/sha3.js"),D=require("@noble/hashes/utils.js"),Kz=require("@scure/base"),n=require("@swapkit/helpers"),u=Kz.createBase58check(d.sha256),HJ=2n**256n});function Sz(){try{return U.getRPCUrlSync(U.Chain.Tron)}catch{return Bz}}function _z(){let z=new AbortController,J=setTimeout(()=>z.abort(),BJ);return{cleanup:()=>clearTimeout(J),signal:z.signal}}async function S(z,J){let{signal:Q,cleanup:$}=_z();try{let X=await fetch(`${Sz()}${z}`,{body:JSON.stringify(J),headers:{"Content-Type":"application/json"},method:"POST",signal:Q});if(!X.ok)throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${z}`});return await X.json()}finally{$()}}async function Tz(z,J){let{signal:Q,cleanup:$}=_z();try{let X=await fetch(`${J??Sz()}${z}`,{headers:{"Content-Type":"application/json"},signal:Q});if(!X.ok)throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${z}`});return await X.json()}finally{$()}}async function p(z){if(!R(z))throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:"Invalid address"});try{let J=await Tz(`/v1/accounts/${z}`,Bz);if(!(J.success&&J.data)||J.data.length===0)return;let Q;try{Q=Lz(z).toLowerCase()}catch{Q=z.toLowerCase()}let $=J.data.find((X)=>X.address.toLowerCase()===Q);if(!$)return;return{balance:$.balance,trc20:$.trc20||[]}}catch(J){if(J instanceof U.SwapKitError)throw J;throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:J instanceof Error?J.message:"Unknown error"})}}async function Vz({from:z,to:J,amount:Q}){let X=await S("/wallet/createtransaction",{amount:Q,owner_address:z,to_address:J,visible:!0});if(!X.txID||!X.raw_data_hex||!X.raw_data)throw new U.SwapKitError("toolbox_tron_transaction_creation_failed");let W=X.raw_data?.contract?.[0]?.parameter?.value;if(W?.to_address!==J||W?.owner_address!==z||W?.amount!==Q)throw new U.SwapKitError("toolbox_tron_transaction_creation_failed");return T(X),X}async function Iz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:$,feeLimit:X,callValue:G=0}){let W=await S("/wallet/triggersmartcontract",{call_value:G,contract_address:J,fee_limit:X,function_selector:Q,owner_address:z,parameter:$,visible:!0});if(!W.result.result||!W.transaction?.txID||!W.transaction?.raw_data_hex)throw new U.SwapKitError("toolbox_tron_transaction_creation_failed");let L=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(L?.contract_address!==J||L?.owner_address!==z)throw new U.SwapKitError("toolbox_tron_transaction_creation_failed");return T(W.transaction),W.transaction}function vz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:$}){return S("/wallet/triggerconstantcontract",{contract_address:J,function_selector:Q,owner_address:z,parameter:$,visible:!0})}function SJ({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:$}){return S("/wallet/estimateenergy",{contract_address:J,function_selector:Q,owner_address:z,parameter:$,visible:!0})}function Fz(z){let J=typeof z==="number"?z:typeof z==="string"?Number(z):Number.NaN;return Number.isFinite(J)&&J>0?J:void 0}async function g(z){try{let{result:J,txid:Q}=await S("/wallet/broadcasttransaction",{raw_data:z.raw_data,raw_data_hex:z.raw_data_hex,signature:z.signature,txID:z.txID,visible:z.visible});if(!J||!Q)throw new U.SwapKitError("toolbox_tron_token_transfer_failed");return Q}catch(J){throw new U.SwapKitError("toolbox_tron_broadcast_failed",{error:J})}}async function y(){let z={};try{let{chainParameter:J}=await Tz("/wallet/getchainparameters");for(let Q of J)z[Q.key]=Q.value}catch(J){U.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${J instanceof Error?J.message:J}`})}return{bandwidthFee:z.getTransactionFee??NJ,createAccountFee:z.getCreateNewAccountFeeInSystemContract??z.getCreateAccountFee??DJ,energyFee:z.getEnergyFee??RJ,memoFee:z.getMemoFee??FJ}}async function a(z){try{let J=await S("/wallet/getaccountresource",{address:z,visible:!0});return{bandwidth:{free:(J.freeNetLimit??600)-(J.freeNetUsed??0),total:J.NetLimit??0,used:J.NetUsed??0},energy:{total:J.EnergyLimit??0,used:J.EnergyUsed??0}}}catch(J){return U.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${J instanceof Error?J.message:J}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function h(z){try{let J=await S("/wallet/getaccount",{address:z,visible:!0});return J&&Object.keys(J).length>0}catch{return!1}}async function r(z){try{let J=await SJ({...z,ownerAddress:z.sender}),Q=J.energy_required??J.energyRequired;if(J.result&&!J.result.result)throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:J.result.message||"estimateenergy failed"});if(Q!==void 0){let $=Fz(Q);if($!==void 0)return $;throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(J){U.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${J instanceof Error?J.message:J}`})}try{let{energy_used:J}=await vz({...z,ownerAddress:z.sender}),Q=Fz(J);if(Q!==void 0)return Q;throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(J){throw U.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${J instanceof Error?J.message:J}`}),new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${J instanceof Error?J.message:J}`})}}async function fz({assetAddress:z,owner:J,spender:Q}){let $=V([{type:"address",value:J},{type:"address",value:Q}]),G=(await vz({contractAddress:z,functionSelector:"allowance(address,address)",ownerAddress:Q,parameter:$})).constant_result?.[0];if(!G)return 0n;try{return BigInt(`0x${G}`)}catch{return 0n}}var U,Bz="https://api.trongrid.io",NJ=1000,DJ=1e6,RJ=420,FJ=1e6,BJ=30000;var xz=b(()=>{t();U=require("@swapkit/helpers")});function uz({phrase:z,derivationPath:J}){let Q=Az.HDKey.fromMasterSeed(Ez.mnemonicToSeedSync(z)).derive(J);if(!Q.privateKey)throw new Z.SwapKitError("toolbox_tron_no_signer");return hz.bytesToHex(Q.privateKey)}function pz(z,J){return{...z,value:String(J)}}function lz(z,J){if(!J)return z;return{...z,data:J.startsWith("0x")?J:`0x${J}`}}function cz({phrase:z,derivationPath:J,index:Q}){let $=J||Z.derivationPathToString(Z.updateDerivationPath(Z.NetworkDerivationPath[Z.Chain.Tron],{index:Q||0}));return uz({derivationPath:$,phrase:z})}function TJ({phrase:z,derivationPath:J}){let Q=uz({derivationPath:J,phrase:z}),$=Nz(Q);return{getAddress:()=>Promise.resolve($),signTransaction:(X)=>{T(X);let G=Dz({privateKey:Q,txID:X.txID});return Promise.resolve({...X,signature:[G]})}}}function yz({transaction:z,memo:J,expiration:Q,feeLimit:$}){let X={},G={};if($!==void 0&&z.raw_data)X.fee_limit=$,G.fee_limit=$;if(J){let L=J.startsWith("0x")?J.replace(/^0x/,""):Rz(J);X.data=L,G.data=L}if(Q){let L=z.raw_data.expiration+Q*1000;X.expiration=L,G.expiration=L}if(Object.keys(X).length===0)return z;let{raw_data_hex:W,txID:H}=kz(z.raw_data_hex,X);return{...z,raw_data:{...z.raw_data,...G},raw_data_hex:W,txID:H}}function oz(z={}){let J="index"in z?z.index||0:0,Q=Z.derivationPathToString("derivationPath"in z&&z.derivationPath?z.derivationPath:Z.updateDerivationPath(Z.NetworkDerivationPath[Z.Chain.Tron],{index:J})),$,X=!1;function G(){if(X)return Promise.resolve($);return $=I.match(z).with({phrase:I.P.string},({phrase:Y})=>TJ({derivationPath:Q,phrase:Y})).with({signer:I.P.not(I.P.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),X=!0,Promise.resolve($)}async function W(){let Y=await G();if(!Y)throw new Z.SwapKitError("toolbox_tron_no_signer");return Y.getAddress()}async function H(Y,j){let M=Y||wz,q=j??(await y()).energyFee,O=M*q,C=Math.ceil(O*1.5);return Math.min(Math.max(C,1e7),150000000)}async function L({contractAddress:Y,functionSelector:j,parameter:M,sender:q,memo:O,expiration:C,extraEnergy:k=0}){let K=await r({contractAddress:Y,functionSelector:j,parameter:M,sender:q}),P=await H(K+k),N=await Iz({contractAddress:Y,feeLimit:P,functionSelector:j,ownerAddress:q,parameter:M});return yz({expiration:C,feeLimit:P,memo:O,transaction:N})}async function F(Y){if(!R(Y))return[Z.AssetValue.from({chain:Z.Chain.Tron})];try{let j=await p(Y);if(!j)return[Z.AssetValue.from({chain:Z.Chain.Tron})];let M=[Z.AssetValue.from({chain:Z.Chain.Tron,fromBaseDecimal:6,value:String(j.balance)})],q=j.trc20?.find((O)=>(e in O));if(q){let O=q[e];M.push(Z.AssetValue.from({asset:`TRON.USDT-${e}`,fromBaseDecimal:6,value:O}))}return M}catch(j){return Z.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${j instanceof Error?j.message:j}`}),[Z.AssetValue.from({chain:Z.Chain.Tron})]}}async function l({recipient:Y,assetValue:j,memo:M,expiration:q,sweep:O}){if(!R(Y))throw new Z.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let C=await G();if(!C)throw new Z.SwapKitError("toolbox_tron_no_signer");try{let k=await W(),K=await Zz({assetValue:j,expiration:q,memo:M,recipient:Y,sender:k,sweep:O}),P=await C.signTransaction(K),N=await g(P);if(!N)throw new Z.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return N}catch(k){if(k instanceof Z.SwapKitError&&k.errorKey==="toolbox_sweep_amount_too_low")throw k;throw new Z.SwapKitError("toolbox_tron_token_transfer_failed",{message:k instanceof Error?k.message:String(k)})}}function zz({requiredBandwidth:Y,resources:j,feePerUnit:M}){let q=Math.max(0,j.free+j.total-j.used);return Y>q?(Y-q)*M:0}async function Jz({memo:Y,recipient:j,senderAddress:M}){let[q,O,C]=await Promise.all([y(),h(j),a(M)]),k=O?0:q.createAccountFee,K=zz({feePerUnit:q.bandwidthFee,requiredBandwidth:bz,resources:C.bandwidth}),P=Y?q.memoFee:0;return Z.AssetValue.from({chain:Z.Chain.Tron,fromBaseDecimal:Z.BaseDecimal.TRON,value:k+K+P})}async function Qz({assetValue:Y,amountInBaseUnits:j=Y.getBaseValue("string"),memo:M,recipient:q,senderAddress:O}){let C=Y.address;if(!C)throw new Z.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[k,K,P,N]=await Promise.all([y(),h(q),a(O),r({contractAddress:C,functionSelector:"transfer(address,uint256)",parameter:V([{type:"address",value:q},{type:"uint256",value:j}]),sender:O})]),f=N+(K?0:s),c=zz({feePerUnit:k.bandwidthFee,requiredBandwidth:gz,resources:P.bandwidth}),Xz=Math.max(0,P.energy.total-P.energy.used),zJ=f>Xz?(f-Xz)*k.energyFee:0,JJ=M?k.memoFee:0;return Z.AssetValue.from({chain:Z.Chain.Tron,fromBaseDecimal:Z.BaseDecimal.TRON,value:c+zJ+JJ})}async function dz({assetValue:Y,memo:j,recipient:M}){let[q,O]=await Promise.all([y(),h(M)]);if(Y.isGasAsset){let P=O?0:q.createAccountFee,N=j?q.memoFee:0;return Z.AssetValue.from({chain:Z.Chain.Tron,fromBaseDecimal:Z.BaseDecimal.TRON,value:P+bz*q.bandwidthFee+N})}let k=await H(wz+(O?0:s),q.energyFee),K=j?q.memoFee:0;return Z.AssetValue.from({chain:Z.Chain.Tron,fromBaseDecimal:Z.BaseDecimal.TRON,value:k+gz*q.bandwidthFee+K})}async function nz({assetValue:Y,memo:j,recipient:M,sender:q}){let O=await G();try{let C=q?q:O?await W():void 0;if(!C)return dz({assetValue:Y,memo:j,recipient:M});return Y.isGasAsset?Jz({memo:j,recipient:M,senderAddress:C}):Qz({assetValue:Y,memo:j,recipient:M,senderAddress:C})}catch(C){throw Z.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${C instanceof Error?C.message:C}`}),new Z.SwapKitError("toolbox_fee_estimation_failed",{chain:Z.Chain.Tron,error:C})}}async function tz({assetValue:Y,memo:j,recipient:M,sender:q,sweep:O}){if(!O)return Y.getBaseValue("bigint");let[C,k]=await Promise.all([p(q),Jz({memo:j,recipient:M,senderAddress:q})]),K=BigInt(C?.balance??0)-k.getBaseValue("bigint");if(K<=0n)throw new Z.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:K.toString(),asset:Y.toString()}});return K}async function az({assetValue:Y,memo:j,recipient:M,sender:q,sweep:O}){if(!O)return Y.getBaseValue("string");let C=Y.address;if(!C)throw new Z.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let k=await p(q),P=k?.trc20.find((c)=>(C in c))?.[C]??"0";if(BigInt(P)<=0n)throw new Z.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Y.toString(),balance:P}});let N=await Qz({amountInBaseUnits:P,assetValue:Y,memo:j,recipient:M,senderAddress:q}),v=BigInt(k?.balance??0),f=N.getBaseValue("bigint");if(v<f)throw new Z.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Y.toString(),nativeBalance:v.toString(),requiredNativeFee:f.toString()}});return P}async function Zz({recipient:Y,assetValue:j,memo:M,sender:q,expiration:O,sweep:C}){if(!R(Y)||!R(q))throw new Z.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(j.isGasAsset){let N=await tz({assetValue:j,expiration:O,memo:M,recipient:Y,sender:q,sweep:C});if(N>BigInt(Number.MAX_SAFE_INTEGER))throw new Z.SwapKitError({errorKey:"toolbox_tron_transaction_creation_failed",info:{amount:N.toString(),reason:`Native transfer amount exceeds the safe integer limit of ${Number.MAX_SAFE_INTEGER} SUN`}});let v=await Vz({amount:Number(N),from:q,to:Y});return yz({expiration:O,memo:M,transaction:v})}let k=j.address;if(!k)throw new Z.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:j.toString()});let K=await az({assetValue:j,expiration:O,memo:M,recipient:Y,sender:q,sweep:C}),P=await h(Y);return L({contractAddress:k,expiration:O,extraEnergy:P?0:s,functionSelector:"transfer(address,uint256)",memo:M,parameter:V([{type:"address",value:Y},{type:"uint256",value:K}]),sender:q})}async function $z(Y){T(Y);let j=await G();if(!j)throw new Z.SwapKitError("toolbox_tron_no_signer");return j.signTransaction(Y)}async function rz(Y){let j=await $z(Y);return g(j)}function Yz({assetAddress:Y,spenderAddress:j,from:M}){return fz({assetAddress:Y,owner:M,spender:j})}async function sz({assetAddress:Y,spenderAddress:j,from:M,amount:q}){let O=await Yz({assetAddress:Y,from:M,spenderAddress:j});if(!q)return O>0n;return O>=BigInt(q)}async function ez({assetAddress:Y,spenderAddress:j,amount:M,from:q}){if(!R(Y)||!R(j))throw new Z.SwapKitError("toolbox_tron_approve_failed");let O=await G();if(!O)throw new Z.SwapKitError("toolbox_tron_no_signer");let C=q||await W(),k=M!==void 0?BigInt(M).toString():_J;try{let K=await L({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:V([{type:"address",value:j},{type:"uint256",value:k}]),sender:C}),P=await O.signTransaction(K),N=await g(P);if(!N)throw new Z.SwapKitError("toolbox_tron_approve_failed");return N}catch(K){if(K instanceof Z.SwapKitError)throw K;throw new Z.SwapKitError("toolbox_tron_approve_failed",{error:K})}}return{approve:ez,broadcastTransaction:g,createTransaction:Zz,estimateTransactionFee:nz,getAddress:W,getApprovedAmount:Yz,getBalance:F,getRpcUrl:()=>Z.getRPCUrl(Z.Chain.Tron),isApproved:sz,signAndBroadcastTransaction:rz,signTransaction:$z,transfer:l,validateAddress:R}}var hz,Az,Ez,Z,I,mz,bz=268,wz=65000,s=25000,gz=345,e="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",_J="115792089237316195423570985008687907853269984665640564039457584007913129639935";var iz=b(()=>{Uz();xz();t();hz=require("@noble/hashes/utils.js"),Az=require("@scure/bip32"),Ez=require("@scure/bip39"),Z=require("@swapkit/helpers"),I=require("ts-pattern"),mz=R});var VJ={};MJ(VJ,{withTronTransactionValue:()=>pz,withTronTransactionData:()=>lz,validateTronAddress:()=>mz,getTronToolbox:()=>oz,getTronPrivateKeyFromMnemonic:()=>cz});module.exports=jJ(VJ);var IJ=b(()=>{iz()});IJ();