@swapkit/toolboxes 4.3.10 → 4.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LICENSE +246 -0
- package/dist/src/aptos/index.cjs +1 -0
- package/dist/src/aptos/index.js +1 -0
- package/dist/src/cardano/index.cjs +1 -4
- package/dist/src/cardano/index.js +1 -4
- package/dist/src/cosmos/index.cjs +1 -4
- package/dist/src/cosmos/index.js +1 -4
- package/dist/src/evm/index.cjs +1 -4
- package/dist/src/evm/index.js +1 -4
- package/dist/src/index.cjs +1 -5
- package/dist/src/index.js +1 -5
- package/dist/src/near/index.cjs +1 -4
- package/dist/src/near/index.js +1 -4
- package/dist/src/radix/index.cjs +1 -4
- package/dist/src/radix/index.js +1 -4
- package/dist/src/ripple/index.cjs +1 -4
- package/dist/src/ripple/index.js +1 -4
- package/dist/src/solana/index.cjs +1 -4
- package/dist/src/solana/index.js +1 -4
- package/dist/src/starknet/index.cjs +1 -0
- package/dist/src/starknet/index.js +1 -0
- package/dist/src/stellar/index.cjs +1 -0
- package/dist/src/stellar/index.js +1 -0
- package/dist/src/substrate/index.cjs +1 -4
- package/dist/src/substrate/index.js +1 -4
- package/dist/src/sui/index.cjs +1 -4
- package/dist/src/sui/index.js +1 -4
- package/dist/src/ton/index.cjs +1 -4
- package/dist/src/ton/index.js +1 -4
- package/dist/src/tron/index.cjs +1 -4
- package/dist/src/tron/index.js +1 -4
- package/dist/src/utxo/index.cjs +1 -5
- package/dist/src/utxo/index.js +1 -5
- package/dist/types/aptos/index.d.ts +3 -0
- package/dist/types/aptos/index.d.ts.map +1 -0
- package/dist/types/aptos/toolbox.d.ts +21 -0
- package/dist/types/aptos/toolbox.d.ts.map +1 -0
- package/dist/types/aptos/types.d.ts +27 -0
- package/dist/types/aptos/types.d.ts.map +1 -0
- package/dist/types/cardano/toolbox.d.ts +19 -22
- package/dist/types/cardano/toolbox.d.ts.map +1 -1
- package/dist/types/cardano/types.d.ts +8 -3
- package/dist/types/cardano/types.d.ts.map +1 -1
- package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts.map +1 -1
- package/dist/types/cosmos/thorchainUtils/messages.d.ts +3 -3
- package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +1 -1
- package/dist/types/cosmos/toolbox/cosmos.d.ts +11 -9
- package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
- package/dist/types/cosmos/toolbox/thorchain.d.ts +6 -51
- package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -1
- package/dist/types/cosmos/types.d.ts +2 -2
- package/dist/types/cosmos/types.d.ts.map +1 -1
- package/dist/types/evm/helpers.d.ts +34 -1
- package/dist/types/evm/helpers.d.ts.map +1 -1
- package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +14 -7
- package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -1
- package/dist/types/evm/toolbox/evm.d.ts +236 -96
- package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
- package/dist/types/evm/toolbox/index.d.ts +3 -2
- package/dist/types/evm/toolbox/index.d.ts.map +1 -1
- package/dist/types/evm/toolbox/op.d.ts +13 -8
- package/dist/types/evm/toolbox/op.d.ts.map +1 -1
- package/dist/types/evm/types.d.ts +49 -27
- package/dist/types/evm/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +31 -25
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/near/helpers/core.d.ts +1 -1
- package/dist/types/near/helpers/core.d.ts.map +1 -1
- package/dist/types/near/index.d.ts +1 -1
- package/dist/types/near/index.d.ts.map +1 -1
- package/dist/types/near/toolbox.d.ts +13 -10
- package/dist/types/near/toolbox.d.ts.map +1 -1
- package/dist/types/near/types/index.d.ts +4 -0
- package/dist/types/near/types/index.d.ts.map +1 -0
- package/dist/types/near/types/toolbox.d.ts +2 -0
- package/dist/types/near/types/toolbox.d.ts.map +1 -1
- package/dist/types/radix/index.d.ts +7 -7
- package/dist/types/radix/index.d.ts.map +1 -1
- package/dist/types/ripple/currency.d.ts +5 -0
- package/dist/types/ripple/currency.d.ts.map +1 -0
- package/dist/types/ripple/index.d.ts +60 -17
- package/dist/types/ripple/index.d.ts.map +1 -1
- package/dist/types/ripple/tokens.d.ts +15 -0
- package/dist/types/ripple/tokens.d.ts.map +1 -0
- package/dist/types/solana/index.d.ts +1 -1
- package/dist/types/solana/index.d.ts.map +1 -1
- package/dist/types/solana/toolbox.d.ts +12 -10
- package/dist/types/solana/toolbox.d.ts.map +1 -1
- package/dist/types/starknet/index.d.ts +5 -0
- package/dist/types/starknet/index.d.ts.map +1 -0
- package/dist/types/starknet/toolbox.d.ts +34 -0
- package/dist/types/starknet/toolbox.d.ts.map +1 -0
- package/dist/types/starknet/types.d.ts +26 -0
- package/dist/types/starknet/types.d.ts.map +1 -0
- package/dist/types/stellar/index.d.ts +3 -0
- package/dist/types/stellar/index.d.ts.map +1 -0
- package/dist/types/stellar/toolbox.d.ts +21 -0
- package/dist/types/stellar/toolbox.d.ts.map +1 -0
- package/dist/types/stellar/types.d.ts +10 -0
- package/dist/types/stellar/types.d.ts.map +1 -0
- package/dist/types/substrate/balance.d.ts +3 -3
- package/dist/types/substrate/balance.d.ts.map +1 -1
- package/dist/types/substrate/substrate.d.ts +22 -97
- package/dist/types/substrate/substrate.d.ts.map +1 -1
- package/dist/types/substrate/types.d.ts +2 -2
- package/dist/types/substrate/types.d.ts.map +1 -1
- package/dist/types/sui/toolbox.d.ts +17 -8
- package/dist/types/sui/toolbox.d.ts.map +1 -1
- package/dist/types/sui/types.d.ts +11 -3
- package/dist/types/sui/types.d.ts.map +1 -1
- package/dist/types/ton/toolbox.d.ts +23 -13
- package/dist/types/ton/toolbox.d.ts.map +1 -1
- package/dist/types/ton/types.d.ts +9 -8
- package/dist/types/ton/types.d.ts.map +1 -1
- package/dist/types/tron/helpers/proto.d.ts +9 -0
- package/dist/types/tron/helpers/proto.d.ts.map +1 -0
- package/dist/types/tron/helpers/trongrid.d.ts +43 -3
- package/dist/types/tron/helpers/trongrid.d.ts.map +1 -1
- package/dist/types/tron/helpers/utils.d.ts +17 -0
- package/dist/types/tron/helpers/utils.d.ts.map +1 -0
- package/dist/types/tron/index.d.ts +4 -5
- package/dist/types/tron/index.d.ts.map +1 -1
- package/dist/types/tron/toolbox.d.ts +20 -18
- package/dist/types/tron/toolbox.d.ts.map +1 -1
- package/dist/types/tron/types.d.ts +31 -57
- package/dist/types/tron/types.d.ts.map +1 -1
- package/dist/types/types.d.ts +6 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utxo/hdWallet.d.ts +33 -0
- package/dist/types/utxo/hdWallet.d.ts.map +1 -0
- package/dist/types/utxo/helpers/api.d.ts +49 -1
- package/dist/types/utxo/helpers/api.d.ts.map +1 -1
- package/dist/types/utxo/helpers/bchaddrjs.d.ts.map +1 -1
- package/dist/types/utxo/helpers/cashaddr.d.ts +13 -0
- package/dist/types/utxo/helpers/cashaddr.d.ts.map +1 -0
- package/dist/types/utxo/helpers/coinselect.d.ts +9 -5
- package/dist/types/utxo/helpers/coinselect.d.ts.map +1 -1
- package/dist/types/utxo/helpers/txSize.d.ts +4 -3
- package/dist/types/utxo/helpers/txSize.d.ts.map +1 -1
- package/dist/types/utxo/index.d.ts +2 -1
- package/dist/types/utxo/index.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/bitcoinCash.d.ts +75 -15
- package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/index.d.ts +6 -5
- package/dist/types/utxo/toolbox/index.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/params.d.ts +8 -16
- package/dist/types/utxo/toolbox/params.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/utxo.d.ts +135 -46
- package/dist/types/utxo/toolbox/utxo.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/validators.d.ts +1 -1
- package/dist/types/utxo/toolbox/validators.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/zcash.d.ts +63 -10
- package/dist/types/utxo/toolbox/zcash.d.ts.map +1 -1
- package/dist/types/utxo/types.d.ts +78 -15
- package/dist/types/utxo/types.d.ts.map +1 -1
- package/package.json +43 -53
- package/dist/src/cardano/index.cjs.map +0 -11
- package/dist/src/cardano/index.js.map +0 -11
- package/dist/src/cosmos/index.cjs.map +0 -20
- package/dist/src/cosmos/index.js.map +0 -20
- package/dist/src/evm/index.cjs.map +0 -20
- package/dist/src/evm/index.js.map +0 -20
- package/dist/src/index.cjs.map +0 -67
- package/dist/src/index.js.map +0 -67
- package/dist/src/near/index.cjs.map +0 -16
- package/dist/src/near/index.js.map +0 -16
- package/dist/src/radix/index.cjs.map +0 -10
- package/dist/src/radix/index.js.map +0 -10
- package/dist/src/ripple/index.cjs.map +0 -10
- package/dist/src/ripple/index.js.map +0 -10
- package/dist/src/solana/index.cjs.map +0 -11
- package/dist/src/solana/index.js.map +0 -11
- package/dist/src/substrate/index.cjs.map +0 -13
- package/dist/src/substrate/index.js.map +0 -13
- package/dist/src/sui/index.cjs.map +0 -11
- package/dist/src/sui/index.js.map +0 -11
- package/dist/src/ton/index.cjs.map +0 -11
- package/dist/src/ton/index.js.map +0 -11
- package/dist/src/tron/index.cjs.map +0 -13
- package/dist/src/tron/index.js.map +0 -13
- package/dist/src/utxo/index.cjs.map +0 -21
- package/dist/src/utxo/index.js.map +0 -21
- package/dist/types/tron/helpers/trc20.abi.d.ts +0 -156
- package/dist/types/tron/helpers/trc20.abi.d.ts.map +0 -1
- package/src/__tests__/address-validation-all-chains.test.ts +0 -162
- package/src/__tests__/addressValidator.test.ts +0 -162
- package/src/cardano/__tests__/toolbox.test.ts +0 -48
- package/src/cardano/index.ts +0 -2
- package/src/cardano/toolbox.ts +0 -168
- package/src/cardano/types.ts +0 -10
- package/src/cosmos/__tests__/toolbox.test.ts +0 -95
- package/src/cosmos/index.ts +0 -4
- package/src/cosmos/thorchainUtils/addressFormat.ts +0 -22
- package/src/cosmos/thorchainUtils/index.ts +0 -4
- package/src/cosmos/thorchainUtils/messages.ts +0 -212
- package/src/cosmos/thorchainUtils/registry.ts +0 -43
- package/src/cosmos/thorchainUtils/types/MsgCompiled.ts +0 -2800
- package/src/cosmos/thorchainUtils/types/client-types.ts +0 -54
- package/src/cosmos/thorchainUtils/types/index.ts +0 -1
- package/src/cosmos/toolbox/cosmos.ts +0 -350
- package/src/cosmos/toolbox/index.ts +0 -35
- package/src/cosmos/toolbox/thorchain.ts +0 -249
- package/src/cosmos/types.ts +0 -48
- package/src/cosmos/util.ts +0 -214
- package/src/evm/__tests__/address-validation.test.ts +0 -84
- package/src/evm/__tests__/ethereum.test.ts +0 -137
- package/src/evm/__tests__/signMessage.test.ts +0 -60
- package/src/evm/api.ts +0 -10
- package/src/evm/contracts/eth/multicall.ts +0 -165
- package/src/evm/contracts/op/gasOracle.ts +0 -145
- package/src/evm/helpers.ts +0 -71
- package/src/evm/index.ts +0 -4
- package/src/evm/toolbox/baseEVMToolbox.ts +0 -698
- package/src/evm/toolbox/evm.ts +0 -66
- package/src/evm/toolbox/index.ts +0 -44
- package/src/evm/toolbox/op.ts +0 -143
- package/src/evm/types.ts +0 -146
- package/src/index.ts +0 -260
- package/src/near/__tests__/core.test.ts +0 -70
- package/src/near/helpers/core.ts +0 -85
- package/src/near/helpers/gasEstimation.ts +0 -96
- package/src/near/helpers/nep141.ts +0 -50
- package/src/near/index.ts +0 -21
- package/src/near/toolbox.ts +0 -421
- package/src/near/types/contract.ts +0 -32
- package/src/near/types/nep141.ts +0 -34
- package/src/near/types/toolbox.ts +0 -55
- package/src/near/types.ts +0 -44
- package/src/radix/index.ts +0 -138
- package/src/ripple/index.ts +0 -179
- package/src/solana/index.ts +0 -36
- package/src/solana/toolbox.ts +0 -409
- package/src/substrate/balance.ts +0 -88
- package/src/substrate/index.ts +0 -2
- package/src/substrate/substrate.ts +0 -281
- package/src/substrate/types.ts +0 -115
- package/src/sui/__tests__/toolbox.test.ts +0 -86
- package/src/sui/index.ts +0 -2
- package/src/sui/toolbox.ts +0 -166
- package/src/sui/types.ts +0 -11
- package/src/ton/__tests__/toolbox.test.ts +0 -67
- package/src/ton/index.ts +0 -2
- package/src/ton/toolbox.ts +0 -136
- package/src/ton/types.ts +0 -13
- package/src/tron/__tests__/toolbox.test.ts +0 -221
- package/src/tron/helpers/trc20.abi.ts +0 -107
- package/src/tron/helpers/trongrid.ts +0 -53
- package/src/tron/index.ts +0 -21
- package/src/tron/toolbox.ts +0 -585
- package/src/tron/types.ts +0 -83
- package/src/types.ts +0 -28
- package/src/utils.ts +0 -34
- package/src/utxo/__tests__/zcash-integration.test.ts +0 -97
- package/src/utxo/helpers/api.ts +0 -471
- package/src/utxo/helpers/bchaddrjs.ts +0 -166
- package/src/utxo/helpers/coinselect.ts +0 -92
- package/src/utxo/helpers/index.ts +0 -4
- package/src/utxo/helpers/txSize.ts +0 -137
- package/src/utxo/index.ts +0 -6
- package/src/utxo/toolbox/bitcoinCash.ts +0 -243
- package/src/utxo/toolbox/index.ts +0 -59
- package/src/utxo/toolbox/params.ts +0 -18
- package/src/utxo/toolbox/utxo.ts +0 -439
- package/src/utxo/toolbox/validators.ts +0 -36
- package/src/utxo/toolbox/zcash.ts +0 -242
- package/src/utxo/types.ts +0 -39
package/dist/src/sui/index.cjs
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
//# debugId=289A7918D59A503164756E2164756E21
|
|
4
|
-
//# sourceMappingURL=index.cjs.map
|
|
1
|
+
var g=Object.create;var{getPrototypeOf:u,defineProperty:f,getOwnPropertyNames:I,getOwnPropertyDescriptor:l}=Object,E=Object.prototype.hasOwnProperty;function K(b){return this[b]}var d,c,G5=(b,O,W)=>{var L=b!=null&&typeof b==="object";if(L){var M=O?d??=new WeakMap:c??=new WeakMap,X=M.get(b);if(X)return X}W=b!=null?g(u(b)):{};let Y=O||!b||!b.__esModule?f(W,"default",{value:b,enumerable:!0}):W;for(let v of I(b))if(!E.call(Y,v))f(Y,v,{get:K.bind(b,v),enumerable:!0});if(L)M.set(b,Y);return Y},o=(b)=>{var O=(F??=new WeakMap).get(b),W;if(O)return O;if(O=f({},"__esModule",{value:!0}),b&&typeof b==="object"||typeof b==="function"){for(var L of I(b))if(!E.call(O,L))f(O,L,{get:K.bind(b,L),enumerable:!(W=l(b,L))||W.enumerable})}return F.set(b,O),O},F;var r=(b)=>b;function i(b,O){this[b]=r.bind(null,O)}var t=(b,O)=>{for(var W in O)f(b,W,{get:O[W],enumerable:!0,configurable:!0,set:i.bind(O,W)})};var w=(b,O)=>()=>(b&&(O=b(b=0)),O);async function h(b,O,W,L=[],M){let X=await b.getCoins({coinType:W,cursor:M,owner:O}),Y=[...L,...X.data];return X.hasNextPage?h(b,O,W,Y,X.nextCursor):Y}function n(b,O,W){let L=O.reduce((D,j)=>D+BigInt(j.balance),0n);if(L<W)throw new P.SwapKitError("toolbox_sui_insufficient_balance",{available:L.toString(),required:W.toString()});let{ids:M}=O.reduce((D,j)=>{if(D.total>=W)return D;return{ids:[...D.ids,j.coinObjectId],total:D.total+BigInt(j.balance)}},{ids:[],total:0n}),X=M[0],Y=M.slice(1);if(Y.length>0)b.mergeCoins(X,Y);let[v]=b.splitCoins(X,[W]);return v}function A(b){try{return y.isValidSuiAddress(b)}catch{return!1}}function x(b){return"signWithIntent"in b}function a({provider:b,...O}={}){let W;async function L(){if(W)return W;return W=await k.match(O).with({phrase:k.P.string},async({phrase:G})=>{let{Ed25519Keypair:R}=await import("@mysten/sui/keypairs/ed25519");return R.deriveKeypair(G)}).with({signer:k.P.any},({signer:G})=>G).otherwise(()=>{return}),W}async function M(G=b){let{SuiClient:R,getFullnodeUrl:z}=await import("@mysten/sui/client");return new R({url:G||z("mainnet")})}async function X(){return(await L())?.toSuiAddress()||""}function Y(G){try{let R=P.AssetValue.from({address:G,chain:P.Chain.Sui});return{asset:R.toString(),decimals:R.decimal}}catch{}return null}async function v(G){let R=G||await X();if(!R)throw new P.SwapKitError("toolbox_sui_address_required");let{baseDecimal:z,chain:J}=P.getChainConfig(P.Chain.Sui);try{let Z=await M(),{totalBalance:N}=await Z.getBalance({owner:R}),q=[P.AssetValue.from({chain:J,fromBaseDecimal:z,value:N})],Q=await Z.getAllBalances({owner:R});for(let{coinType:_,totalBalance:$}of Q){if(_==="0x2::sui::SUI"||Number($)<=0)continue;let U=Y(_);if(U)q.push(P.AssetValue.from({asset:U.asset,fromBaseDecimal:U.decimals,value:$}))}return q}catch{return[P.AssetValue.from({chain:J})]}}async function D(G){let R=P.AssetValue.from({chain:P.Chain.Sui,value:"0.01"});if(!G)return R;try{let z=await M(),{txBytes:J}=await j(G),{effects:{status:Z,gasUsed:N}}=await z.dryRunTransactionBlock({transactionBlock:J});if(Z.status!=="success")return R;let q=Number(N.computationCost)+Number(N.storageCost)-Number(N.storageRebate);return P.AssetValue.from({chain:P.Chain.Sui,value:q.toString()})}catch{return R}}async function j({recipient:G,assetValue:R,gasBudget:z,sender:J}){let{Transaction:Z}=await import("@mysten/sui/transactions"),N=J||await X();if(!N)throw new P.SwapKitError("toolbox_sui_no_sender");try{let q=new Z;if(q.setSender(N),R.isGasAsset||R.symbol==="SUI"){let[$]=q.splitCoins(q.gas,[R.getBaseValue("string")]);q.transferObjects([$],G)}else{let $=R.address;if(!$)throw new P.SwapKitError("toolbox_sui_missing_coin_type");let U=await M(),T=R.getBaseValue("bigint"),H=await h(U,N,$);if(!H.length)throw new P.SwapKitError("toolbox_sui_no_coins_found",{coinType:$});let C=n(q,H,T);q.transferObjects([C],G)}if(z)q.setGasBudget(z);let Q=await M(),_=await q.build({client:Q});return{tx:q,txBytes:_}}catch(q){if(q instanceof P.SwapKitError)throw q;throw new P.SwapKitError("toolbox_sui_transaction_creation_error",{error:q})}}async function V(G){let R=await L();if(!R)throw new P.SwapKitError("toolbox_sui_no_signer");if(G instanceof Uint8Array)return R.signTransaction(G);let{txBytes:z}="tx"in G?G:await j(G);return R.signTransaction(z)}async function S({assetValue:G,gasBudget:R,recipient:z}){let J=await L();if(!J)throw new P.SwapKitError("toolbox_sui_no_signer");let Z=J.toSuiAddress()||await X();if(!Z)throw new P.SwapKitError("toolbox_sui_no_sender");let{txBytes:N}=await j({assetValue:G,gasBudget:R,recipient:z,sender:Z}),q=await M();if(!x(J)){let _=await J.signTransaction(N),{digest:$}=await q.executeTransactionBlock({signature:_.signature,transactionBlock:_.bytes});return $}let{digest:Q}=await q.signAndExecuteTransaction({signer:J,transaction:N});return Q}async function B(G){let R=await M(),{digest:z}=await R.executeTransactionBlock({signature:G.signature,transactionBlock:G.bytes});return z}async function p(G){let R=await L();if(!R)throw new P.SwapKitError("toolbox_sui_no_signer");let z=await M(),J;if(typeof G==="string")J=Uint8Array.from(Buffer.from(G,"base64"));else if(G instanceof Uint8Array)J=G;else J=await G.build({client:z});if(!x(R)){let N=await R.signTransaction(J),{digest:q}=await z.executeTransactionBlock({signature:N.signature,transactionBlock:N.bytes});return q}let{digest:Z}=await z.signAndExecuteTransaction({signer:R,transaction:J});return Z}return{broadcastTransaction:B,createTransaction:j,estimateTransactionFee:D,getAddress:X,getBalance:v,signAndBroadcastTransaction:p,signTransaction:V,transfer:S,validateAddress:A}}var y,P,k;var m=w(()=>{y=require("@mysten/sui/utils"),P=require("@swapkit/helpers"),k=require("ts-pattern")});var e={};t(e,{validateSuiAddress:()=>A,getSuiToolbox:()=>a});module.exports=o(e);var b5=w(()=>{m()});b5();
|
package/dist/src/sui/index.js
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
//# debugId=141CEF8B139E797464756E2164756E21
|
|
4
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
var p=Object.defineProperty;var T=(R)=>R;function C(R,P){this[R]=T.bind(null,P)}var g=(R,P)=>{for(var W in P)p(R,W,{get:P[W],enumerable:!0,configurable:!0,set:C.bind(P,W)})};var I=(R,P)=>()=>(R&&(P=R(R=0)),P);var H=((R)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(R,{get:(P,W)=>(typeof require<"u"?require:P)[W]}):R)(function(R){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+R+'" is not supported')});import{isValidSuiAddress as u}from"@mysten/sui/utils";import{AssetValue as _,Chain as f,getChainConfig as l,SwapKitError as X}from"@swapkit/helpers";import{match as d,P as E}from"ts-pattern";async function w(R,P,W,Z=[],L){let M=await R.getCoins({coinType:W,cursor:L,owner:P}),D=[...Z,...M.data];return M.hasNextPage?w(R,P,W,D,M.nextCursor):D}function c(R,P,W){let Z=P.reduce((j,$)=>j+BigInt($.balance),0n);if(Z<W)throw new X("toolbox_sui_insufficient_balance",{available:Z.toString(),required:W.toString()});let{ids:L}=P.reduce((j,$)=>{if(j.total>=W)return j;return{ids:[...j.ids,$.coinObjectId],total:j.total+BigInt($.balance)}},{ids:[],total:0n}),M=L[0],D=L.slice(1);if(D.length>0)R.mergeCoins(M,D);let[k]=R.splitCoins(M,[W]);return k}function x(R){try{return u(R)}catch{return!1}}function K(R){return"signWithIntent"in R}function o({provider:R,...P}={}){let W;async function Z(){if(W)return W;return W=await d(P).with({phrase:E.string},async({phrase:b})=>{let{Ed25519Keypair:G}=await import("@mysten/sui/keypairs/ed25519");return G.deriveKeypair(b)}).with({signer:E.any},({signer:b})=>b).otherwise(()=>{return}),W}async function L(b=R){let{SuiClient:G,getFullnodeUrl:q}=await import("@mysten/sui/client");return new G({url:b||q("mainnet")})}async function M(){return(await Z())?.toSuiAddress()||""}function D(b){try{let G=_.from({address:b,chain:f.Sui});return{asset:G.toString(),decimals:G.decimal}}catch{}return null}async function k(b){let G=b||await M();if(!G)throw new X("toolbox_sui_address_required");let{baseDecimal:q,chain:z}=l(f.Sui);try{let N=await L(),{totalBalance:J}=await N.getBalance({owner:G}),O=[_.from({chain:z,fromBaseDecimal:q,value:J})],Q=await N.getAllBalances({owner:G});for(let{coinType:v,totalBalance:Y}of Q){if(v==="0x2::sui::SUI"||Number(Y)<=0)continue;let U=D(v);if(U)O.push(_.from({asset:U.asset,fromBaseDecimal:U.decimals,value:Y}))}return O}catch{return[_.from({chain:z})]}}async function j(b){let G=_.from({chain:f.Sui,value:"0.01"});if(!b)return G;try{let q=await L(),{txBytes:z}=await $(b),{effects:{status:N,gasUsed:J}}=await q.dryRunTransactionBlock({transactionBlock:z});if(N.status!=="success")return G;let O=Number(J.computationCost)+Number(J.storageCost)-Number(J.storageRebate);return _.from({chain:f.Sui,value:O.toString()})}catch{return G}}async function $({recipient:b,assetValue:G,gasBudget:q,sender:z}){let{Transaction:N}=await import("@mysten/sui/transactions"),J=z||await M();if(!J)throw new X("toolbox_sui_no_sender");try{let O=new N;if(O.setSender(J),G.isGasAsset||G.symbol==="SUI"){let[Y]=O.splitCoins(O.gas,[G.getBaseValue("string")]);O.transferObjects([Y],b)}else{let Y=G.address;if(!Y)throw new X("toolbox_sui_missing_coin_type");let U=await L(),S=G.getBaseValue("bigint"),F=await w(U,J,Y);if(!F.length)throw new X("toolbox_sui_no_coins_found",{coinType:Y});let B=c(O,F,S);O.transferObjects([B],b)}if(q)O.setGasBudget(q);let Q=await L(),v=await O.build({client:Q});return{tx:O,txBytes:v}}catch(O){if(O instanceof X)throw O;throw new X("toolbox_sui_transaction_creation_error",{error:O})}}async function h(b){let G=await Z();if(!G)throw new X("toolbox_sui_no_signer");if(b instanceof Uint8Array)return G.signTransaction(b);let{txBytes:q}="tx"in b?b:await $(b);return G.signTransaction(q)}async function A({assetValue:b,gasBudget:G,recipient:q}){let z=await Z();if(!z)throw new X("toolbox_sui_no_signer");let N=z.toSuiAddress()||await M();if(!N)throw new X("toolbox_sui_no_sender");let{txBytes:J}=await $({assetValue:b,gasBudget:G,recipient:q,sender:N}),O=await L();if(!K(z)){let v=await z.signTransaction(J),{digest:Y}=await O.executeTransactionBlock({signature:v.signature,transactionBlock:v.bytes});return Y}let{digest:Q}=await O.signAndExecuteTransaction({signer:z,transaction:J});return Q}async function m(b){let G=await L(),{digest:q}=await G.executeTransactionBlock({signature:b.signature,transactionBlock:b.bytes});return q}async function V(b){let G=await Z();if(!G)throw new X("toolbox_sui_no_signer");let q=await L(),z;if(typeof b==="string")z=Uint8Array.from(Buffer.from(b,"base64"));else if(b instanceof Uint8Array)z=b;else z=await b.build({client:q});if(!K(G)){let J=await G.signTransaction(z),{digest:O}=await q.executeTransactionBlock({signature:J.signature,transactionBlock:J.bytes});return O}let{digest:N}=await q.signAndExecuteTransaction({signer:G,transaction:z});return N}return{broadcastTransaction:m,createTransaction:$,estimateTransactionFee:j,getAddress:M,getBalance:k,signAndBroadcastTransaction:V,signTransaction:h,transfer:A,validateAddress:x}}var y=()=>{};var i={};g(i,{validateSuiAddress:()=>x,getSuiToolbox:()=>o});var t=I(()=>{y()});t();export{x as validateSuiAddress,o as getSuiToolbox};
|
package/dist/src/ton/index.cjs
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
//# debugId=278D59F10A1344C764756E2164756E21
|
|
4
|
-
//# sourceMappingURL=index.cjs.map
|
|
1
|
+
var tt=Object.create;var{getPrototypeOf:et,defineProperty:h,getOwnPropertyNames:I,getOwnPropertyDescriptor:nt}=Object,U=Object.prototype.hasOwnProperty;function j(t){return this[t]}var rt,st,At=(t,s,i)=>{var f=t!=null&&typeof t==="object";if(f){var g=s?rt??=new WeakMap:st??=new WeakMap,w=g.get(t);if(w)return w}i=t!=null?tt(et(t)):{};let u=s||!t||!t.__esModule?h(i,"default",{value:t,enumerable:!0}):i;for(let p of I(t))if(!U.call(u,p))h(u,p,{get:j.bind(t,p),enumerable:!0});if(f)g.set(t,u);return u},ot=(t)=>{var s=(G??=new WeakMap).get(t),i;if(s)return s;if(s=h({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var f of I(t))if(!U.call(s,f))h(s,f,{get:j.bind(t,f),enumerable:!(i=nt(t,f))||i.enumerable})}return G.set(t,s),s},G;var at=(t)=>t;function it(t,s){this[t]=at.bind(null,s)}var ct=(t,s)=>{for(var i in s)h(t,i,{get:s[i],enumerable:!0,configurable:!0,set:it.bind(s,i)})};var P=(t,s)=>()=>(t&&(s=t(t=0)),s);function Ct(){function t(){let s=Date.now(),i=E||s;return E=i,s>E?s:i+1}return dt+t().toString(36)}function J(t){return async function(i,f=!0){let g=await q.SwapKitApi.getChainBalance({address:i,chain:t,scamFilter:f}),{baseDecimal:w}=b.getChainConfig(t),u=g.map(({identifier:C,value:N,decimal:S})=>{return new b.AssetValue({decimal:S||w,identifier:C,value:N})});if(!u.some((C)=>C.isGasAsset))return[b.AssetValue.from({chain:t}),...u];return u}}var b,q,dt,E=0;var L=P(()=>{b=require("@swapkit/helpers"),q=require("@swapkit/helpers/api"),dt=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function pt(){let t=Date.now();if(O&&t-k<gt)return O;try{return O=await Y.getHttpEndpoint(),k=t,O}catch{return a.getRPCUrl(a.Chain.Ton)}}function Tt(t={}){let s,i,f;async function g(){if(!s){let e=t.provider??await pt();s=new n.TonClient({endpoint:e})}return s}async function w(){return(await p()).address.toString()}async function u(){if(f)return f;return f=await m.match(t).with({phrase:m.P.string},async({phrase:e})=>H.mnemonicToWalletKey(e.split(" "))).with({signer:m.P.any},({signer:e})=>e).otherwise(()=>{return}),f}async function p(e){if(!i||e){let r=await u(),o=await g(),c=e||r;if(!c)throw new a.SwapKitError("core_wallet_connection_not_found");let d=n.WalletContractV4.create({publicKey:c.publicKey,workchain:0});i=o.open(d)}return i}let C=J(a.Chain.Ton);async function N({assetValue:e,recipient:r,memo:o,sender:c}){if(e.isGasAsset){let M=o?v(o).toBoc().toString("base64"):void 0;return[{address:r,amount:e.getBaseValue("string"),payload:M}]}let d=e.address;if(!d)throw new a.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:e.toString()}});let l=c??await w(),T=await W({jettonMasterAddress:d,ownerAddress:l}),A=n.Address.parse(r),y=n.Address.parse(l),B=e.getBaseValue("bigint"),x=o?v(o):void 0,_=$({destinationAddress:A,forwardPayload:x,jettonAmount:B,responseAddress:y});return[{address:T.toString(),amount:ut.toString(),payload:_.toBoc().toString("base64")}]}function S({sender:e,...r}){return N({...r,sender:e})}function D(e){return e.map((r)=>{let o=r.payload?n.Cell.fromBase64(r.payload):void 0,c=r.stateInit?n.loadStateInit(n.Cell.fromBase64(r.stateInit).asSlice()):void 0,d=n.Address.parse(r.address),l=n.Address.isFriendly(r.address)?n.Address.parseFriendly(r.address).isBounceable:!0;return n.internal({body:o,bounce:l,init:c,to:d,value:BigInt(r.amount)})})}async function K(e){let r=await u(),o=await p();if(!o||!r)throw new a.SwapKitError("core_wallet_connection_not_found");let c=await g(),{state:d}=await c.getContractState(o.address),l=d==="active",T=l?await o.getSeqno():0,A=o.createTransfer({messages:D(e),secretKey:r.secretKey,sendMode:V,seqno:T}),y=n.external({body:A,init:l?void 0:o.init,to:o.address});return n.beginCell().store(n.storeMessage(y)).endCell()}async function F(e){return await(await g()).sendFile(e.toBoc()),e.hash().toString("hex")}async function R(e){let r=await K(e);return F(r)}async function X({assetValue:e,recipient:r,memo:o}){let c=await S({assetValue:e,memo:o,recipient:r});return R(c)}async function Z({sender:e,...r}){let{baseDecimal:o}=a.getChainConfig(a.Chain.Ton),c=await m.match(e).with(m.P.string,(T)=>{return n.Address.parseFriendly(T).address}).otherwise(async()=>{return(await p()).address});if(!c)throw new a.SwapKitError("toolbox_fee_estimation_failed",{chain:a.Chain.Ton});let d=a.AssetValue.from({chain:a.Chain.Ton,value:"0.01"}),l=await g();try{let T=await S({sender:e,...r}),A=await u(),y=await p();if(!y||!A)return d;let B=await y.getSeqno(),x=y.createTransfer({messages:D(T),secretKey:A.secretKey,sendMode:V,seqno:B}),{source_fees:_}=await l.estimateExternalMessageFee(c,{body:x,ignoreSignature:!0,initCode:null,initData:null}),M=_.in_fwd_fee+_.storage_fee+_.gas_fee+_.fwd_fee;return d.set(a.SwapKitNumber.fromBigInt(BigInt(M),o))}catch{return d}}async function W({jettonMasterAddress:e,ownerAddress:r}){try{let o=await g(),c=n.Address.parse(e),d=n.Address.parse(r);return await o.open(n.JettonMaster.create(c)).getWalletAddress(d)}catch{throw new a.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:e,ownerAddress:r}})}}function $({jettonAmount:e,destinationAddress:r,responseAddress:o,forwardAmount:c=ft,forwardPayload:d}){let l=n.beginCell().storeUint(lt,32).storeUint(0,64).storeCoins(e).storeAddress(r).storeAddress(o).storeBit(0).storeCoins(c);if(d)l.storeBit(1).storeRef(d);else l.storeBit(0);return l.endCell()}function v(e){return n.beginCell().storeUint(0,32).storeStringTail(e).endCell()}return{broadcastTransaction:F,createTransaction:S,estimateTransactionFee:Z,getAddress:w,getBalance:C,getJettonWalletAddress:W,sign:K,signAndBroadcastTransaction:R,transfer:X,validateAddress:z}}function z(t){try{return n.Address.parse(t),!0}catch{return!1}}var Y,a,H,n,m,lt=260734629,ft,ut,V,gt=60000,O,k=0;var Q=P(()=>{L();Y=require("@orbs-network/ton-access"),a=require("@swapkit/helpers"),H=require("@ton/crypto"),n=require("@ton/ton"),m=require("ts-pattern"),ft=n.toNano("0.01"),ut=n.toNano("0.05"),V=n.SendMode.PAY_GAS_SEPARATELY+n.SendMode.IGNORE_ERRORS});var yt={};ct(yt,{validateTonAddress:()=>z,getTONToolbox:()=>Tt});module.exports=ot(yt);var mt=P(()=>{Q()});mt();
|
package/dist/src/ton/index.js
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
//# debugId=C1523C849ED6973D64756E2164756E21
|
|
4
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
var Z=Object.defineProperty;var $=(n)=>n;function tt(n,s){this[n]=$.bind(null,s)}var et=(n,s)=>{for(var c in s)Z(n,c,{get:s[c],enumerable:!0,configurable:!0,set:tt.bind(s,c)})};var x=(n,s)=>()=>(n&&(s=n(n=0)),s);var Bt=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(s,c)=>(typeof require<"u"?require:s)[c]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{AssetValue as G,getChainConfig as nt}from"@swapkit/helpers";import{SwapKitApi as rt}from"@swapkit/helpers/api";function Et(){function n(){let s=Date.now(),c=M||s;return M=c,s>M?s:c+1}return st+n().toString(36)}function I(n){return async function(c,p=!0){let f=await rt.getChainBalance({address:c,chain:n,scamFilter:p}),{baseDecimal:S}=nt(n),u=f.map(({identifier:m,value:b,decimal:A})=>{return new G({decimal:A||S,identifier:m,value:b})});if(!u.some((m)=>m.isGasAsset))return[G.from({chain:n}),...u];return u}}var st,M=0;var U=x(()=>{st=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{getHttpEndpoint as ot}from"@orbs-network/ton-access";import{AssetValue as at,Chain as C,getChainConfig as it,getRPCUrl as ct,SwapKitError as _,SwapKitNumber as dt}from"@swapkit/helpers";import{mnemonicToWalletKey as lt}from"@ton/crypto";import{Address as d,beginCell as P,Cell as j,external as ft,internal as ut,JettonMaster as gt,loadStateInit as pt,SendMode as q,storeMessage as Tt,TonClient as wt,toNano as k,WalletContractV4 as yt}from"@ton/ton";import{match as J,P as E}from"ts-pattern";async function St(){let n=Date.now();if(h&&n-V<Ct)return h;try{return h=await ot(),V=n,h}catch{return ct(C.Ton)}}function ht(n={}){let s,c,p;async function f(){if(!s){let t=n.provider??await St();s=new wt({endpoint:t})}return s}async function S(){return(await y()).address.toString()}async function u(){if(p)return p;return p=await J(n).with({phrase:E.string},async({phrase:t})=>lt(t.split(" "))).with({signer:E.any},({signer:t})=>t).otherwise(()=>{return}),p}async function y(t){if(!c||t){let e=await u(),r=await f(),o=t||e;if(!o)throw new _("core_wallet_connection_not_found");let a=yt.create({publicKey:o.publicKey,workchain:0});c=r.open(a)}return c}let m=I(C.Ton);async function b({assetValue:t,recipient:e,memo:r,sender:o}){if(t.isGasAsset){let B=r?v(r).toBoc().toString("base64"):void 0;return[{address:e,amount:t.getBaseValue("string"),payload:B}]}let a=t.address;if(!a)throw new _({errorKey:"core_swap_contract_not_found",info:{asset:t.toString()}});let i=o??await S(),l=await W({jettonMasterAddress:a,ownerAddress:i}),T=d.parse(e),g=d.parse(i),O=t.getBaseValue("bigint"),N=r?v(r):void 0,w=X({destinationAddress:T,forwardPayload:N,jettonAmount:O,responseAddress:g});return[{address:l.toString(),amount:_t.toString(),payload:w.toBoc().toString("base64")}]}function A({sender:t,...e}){return b({...e,sender:t})}function D(t){return t.map((e)=>{let r=e.payload?j.fromBase64(e.payload):void 0,o=e.stateInit?pt(j.fromBase64(e.stateInit).asSlice()):void 0,a=d.parse(e.address),i=d.isFriendly(e.address)?d.parseFriendly(e.address).isBounceable:!0;return ut({body:r,bounce:i,init:o,to:a,value:BigInt(e.amount)})})}async function K(t){let e=await u(),r=await y();if(!r||!e)throw new _("core_wallet_connection_not_found");let o=await f(),{state:a}=await o.getContractState(r.address),i=a==="active",l=i?await r.getSeqno():0,T=r.createTransfer({messages:D(t),secretKey:e.secretKey,sendMode:L,seqno:l}),g=ft({body:T,init:i?void 0:r.init,to:r.address});return P().store(Tt(g)).endCell()}async function F(t){return await(await f()).sendFile(t.toBoc()),t.hash().toString("hex")}async function R(t){let e=await K(t);return F(e)}async function z({assetValue:t,recipient:e,memo:r}){let o=await A({assetValue:t,memo:r,recipient:e});return R(o)}async function Q({sender:t,...e}){let{baseDecimal:r}=it(C.Ton),o=await J(t).with(E.string,(l)=>{return d.parseFriendly(l).address}).otherwise(async()=>{return(await y()).address});if(!o)throw new _("toolbox_fee_estimation_failed",{chain:C.Ton});let a=at.from({chain:C.Ton,value:"0.01"}),i=await f();try{let l=await A({sender:t,...e}),T=await u(),g=await y();if(!g||!T)return a;let O=await g.getSeqno(),N=g.createTransfer({messages:D(l),secretKey:T.secretKey,sendMode:L,seqno:O}),{source_fees:w}=await i.estimateExternalMessageFee(o,{body:N,ignoreSignature:!0,initCode:null,initData:null}),B=w.in_fwd_fee+w.storage_fee+w.gas_fee+w.fwd_fee;return a.set(dt.fromBigInt(BigInt(B),r))}catch{return a}}async function W({jettonMasterAddress:t,ownerAddress:e}){try{let r=await f(),o=d.parse(t),a=d.parse(e);return await r.open(gt.create(o)).getWalletAddress(a)}catch{throw new _({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:t,ownerAddress:e}})}}function X({jettonAmount:t,destinationAddress:e,responseAddress:r,forwardAmount:o=At,forwardPayload:a}){let i=P().storeUint(mt,32).storeUint(0,64).storeCoins(t).storeAddress(e).storeAddress(r).storeBit(0).storeCoins(o);if(a)i.storeBit(1).storeRef(a);else i.storeBit(0);return i.endCell()}function v(t){return P().storeUint(0,32).storeStringTail(t).endCell()}return{broadcastTransaction:F,createTransaction:A,estimateTransactionFee:Q,getAddress:S,getBalance:m,getJettonWalletAddress:W,sign:K,signAndBroadcastTransaction:R,transfer:z,validateAddress:Y}}function Y(n){try{return d.parse(n),!0}catch{return!1}}var mt=260734629,At,_t,L,Ct=60000,h,V=0;var H=x(()=>{U();At=k("0.01"),_t=k("0.05"),L=q.PAY_GAS_SEPARATELY+q.IGNORE_ERRORS});var Ot={};et(Ot,{validateTonAddress:()=>Y,getTONToolbox:()=>ht});var Nt=x(()=>{H()});Nt();export{Y as validateTonAddress,ht as getTONToolbox};
|
package/dist/src/tron/index.cjs
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
var Qy=Object.create;var{getPrototypeOf:Zy,defineProperty:P,getOwnPropertyNames:l,getOwnPropertyDescriptor:$y}=Object,A=Object.prototype.hasOwnProperty;var m=(f,Q,j)=>{j=f!=null?Qy(Zy(f)):{};let $=Q||!f||!f.__esModule?P(j,"default",{value:f,enumerable:!0}):j;for(let M of l(f))if(!A.call($,M))P($,M,{get:()=>f[M],enumerable:!0});return $},b=new WeakMap,jy=(f)=>{var Q=b.get(f),j;if(Q)return Q;if(Q=P({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function")l(f).map(($)=>!A.call(Q,$)&&P(Q,$,{get:()=>f[$],enumerable:!(j=$y(f,$))||j.enumerable}));return b.set(f,Q),Q};var Yy=(f,Q)=>{for(var j in Q)P(f,j,{get:Q[j],enumerable:!0,configurable:!0,set:($)=>Q[j]=()=>$})};var R=(f,Q)=>()=>(f&&(Q=f(f=0)),Q);var C;var T=R(()=>{C=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});async function i(f){let Q=await import("tronweb"),j=Q.TronWeb??Q.default?.TronWeb;try{let $=await fetch(`${Xy}/v1/accounts/${f}`);if(!$.ok)throw Error(`TronGrid API error: ${$.status} ${$.statusText}`);let M=await $.json();if(!(M.success&&M.data)||M.data.length===0)throw Error("Invalid response from TronGrid API");let Z;try{Z=j.address.toHex(f).toLowerCase()}catch{Z=f.toLowerCase()}let v=M.data.find((k)=>{return k.address.toLowerCase()===Z});if(!v)return;return{balance:v.balance,trc20:v.trc20||[]}}catch($){throw new h.SwapKitError("toolbox_tron_trongrid_api_error",{address:f,message:$ instanceof Error?$.message:"Unknown error"})}}var h,Xy="https://api.trongrid.io";var n=R(()=>{h=require("@swapkit/helpers")});async function N(){let f=await import("tronweb"),Q=f.TronWeb??f.default?.TronWeb;return(j)=>{return Q.isAddress(j)}}async function c({phrase:f,derivationPath:Q,index:j}){let $=Q||y.derivationPathToString(y.updateDerivationPath(y.NetworkDerivationPath[y.Chain.Tron],{index:j||0})),{HDKey:M}=await import("@scure/bip32"),{mnemonicToSeedSync:Z}=await import("@scure/bip39"),v=Z(f),X=M.fromMasterSeed(v).derive($);if(!X.privateKey)throw new y.SwapKitError("toolbox_tron_no_signer");return Buffer.from(X.privateKey).toString("hex")}async function Iy({phrase:f,derivationPath:Q,tronWeb:j}){let{HDKey:$}=await import("@scure/bip32"),{mnemonicToSeedSync:M}=await import("@scure/bip39"),Z=M(f),k=$.fromMasterSeed(Z).derive(Q);if(!k.privateKey)throw new y.SwapKitError("toolbox_tron_no_signer");let X=Buffer.from(k.privateKey).toString("hex");j.setPrivateKey(X);let F=j?.address.fromPrivateKey(X);return{getAddress:()=>Promise.resolve(typeof F==="string"?F:""),signTransaction:async(V)=>{return await j.trx.sign(V,X)}}}var y,x,Gy=268,Ly=13000,My=345,t="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Uy="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",o=async(f={})=>{let Q=await import("tronweb"),j=Q.TronWeb??Q.default?.TronWeb,$=await y.getRPCUrl(y.Chain.Tron),M=void 0,Z=new j({fullHost:$,headers:void 0}),v="index"in f?f.index||0:0,k=y.derivationPathToString("derivationPath"in f&&f.derivationPath?f.derivationPath:y.updateDerivationPath(y.NetworkDerivationPath[y.Chain.Tron],{index:v})),X=await x.match(f).with({phrase:x.P.string},async({phrase:q})=>Iy({derivationPath:k,phrase:q,tronWeb:Z})).with({signer:x.P.any},({signer:q})=>Promise.resolve(q)).otherwise(()=>Promise.resolve(void 0)),F=async()=>{if(!X)throw new y.SwapKitError("toolbox_tron_no_signer");return await X.getAddress()},V=()=>{return 1e8},D=async()=>{try{let q=await Z.trx.getChainParameters(),z={};for(let _ of q)z[_.key]=_.value;return{bandwidthFee:z.getTransactionFee||1000,createAccountFee:z.getCreateAccountFee||1e5,energyFee:z.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},s=async(q)=>{try{let z=await Z.trx.getAccount(q);return z&&Object.keys(z).length>0}catch{return!1}},a=async(q)=>{try{let z=await Z.trx.getAccountResources(q);return{bandwidth:{free:z.freeNetLimit-z.freeNetUsed,total:z.NetLimit||0,used:z.NetUsed||0},energy:{total:z.EnergyLimit||0,used:z.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},e=async(q,z)=>{try{let _=Z.contract(C,z);if(!_.methods?.balanceOf)return 0n;let[J]=await _.methods.balanceOf(q).call();return J?typeof J==="bigint"?J:BigInt(J):0n}catch(_){let J=_ instanceof Error?_.message:String(_);return console.warn(`balanceOf() failed for ${z}: ${J}`),0n}},r=async(q,z)=>{try{Z.setAddress(z);let _=Z.contract(C,q),[J,u]=await Promise.all([_.symbol().call().catch(()=>"UNKNOWN"),_.decimals().call().catch(()=>"18")]);return{decimals:Number(u??18),symbol:J??"UNKNOWN"}}catch(_){return y.warnOnce({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${q}: ${_ instanceof Error?_.message:_}`}),null}},yy=async(q,z=!0)=>{let _=[y.AssetValue.from({chain:y.Chain.Tron})];try{let J=await i(q);if(J){let u=[];u.push(y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:6,value:J.balance}));for(let Y of J.trc20){let[U,I]=Object.entries(Y)[0]||[];if(!(U&&I))continue;let G=await r(U,q);if(!G)continue;u.push(y.AssetValue.from({asset:`TRON.${G.symbol}-${U}`,fromBaseDecimal:G.decimals,value:BigInt(I||0)}))}return u}return _}catch(J){y.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${J instanceof Error?J.message:J}`});try{let u=[],Y=await Z.trx.getBalance(q);if(Y&&Number(Y)>0)u.push(y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:6,value:Y}));let U=await e(q,t);if(U)u.push(y.AssetValue.from({asset:`TRON.USDT-${t}`,fromBaseDecimal:6,value:U}));if(u.length===0)return _;return u}catch(u){let Y=u instanceof Error?u.message:String(u);return console.error(`Tron balance fetch failed: ${Y}`),_}}},fy=async({recipient:q,assetValue:z,memo:_,expiration:J})=>{if(!X)throw new y.SwapKitError("toolbox_tron_no_signer");let u=await F();Z.setAddress(u);let Y=await E({assetValue:z,expiration:J,memo:_,recipient:q,sender:u}),U=await X.signTransaction(Y),{txid:I}=await Z.trx.sendRawTransaction(U);if(!I)throw new y.SwapKitError("toolbox_tron_token_transfer_failed");return I},uy=async({assetValue:q,recipient:z,sender:_})=>{let J=q.isGasAsset;try{let u=_?_:X?await F():void 0;if(!u)return J?y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:0,value:0.1}):y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:0,value:15});let Y=await D(),I=await s(z)?0:Y.createAccountFee,G=await a(u);if(J){let B=Gy,w=G.bandwidth.free+(G.bandwidth.total-G.bandwidth.used),W=0;if(B>w)W=(B-w)*Y.bandwidthFee;let Jy=I+W;return y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:y.BaseDecimal.TRON,value:Jy})}let L=My,O=Ly,p=G.bandwidth.free+(G.bandwidth.total-G.bandwidth.used),H=G.energy.total-G.energy.used,K=0;if(L>p)K=(L-p)*Y.bandwidthFee;let g=0;if(O>H)g=(O-H)*Y.energyFee;let zy=I+K+g;return y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:y.BaseDecimal.TRON,value:zy})}catch(u){throw y.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${u instanceof Error?u.message:u}`}),new y.SwapKitError("toolbox_tron_fee_estimation_failed",{error:u})}},E=async(q)=>{let{recipient:z,assetValue:_,memo:J,sender:u,expiration:Y}=q,U=_.isGasAsset,I=async({transaction:L,memo:O,expiration:p})=>{let H=O?await Z.transactionBuilder.addUpdateData(L,O,"utf8"):L;return p?await Z.transactionBuilder.extendExpiration(H,p):H};if(U){let L=await Z.transactionBuilder.sendTrx(z,_.getBaseValue("number"),u);return I({expiration:Y,memo:J,transaction:L})}Z.setAddress(u);let G=_.address;if(!G)throw new y.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:_.toString()});try{let O=[{type:"address",value:z},{type:"uint256",value:_.getBaseValue("string")}],p={callValue:0,feeLimit:V()},{transaction:H}=await Z.transactionBuilder.triggerSmartContract(G,"transfer(address,uint256)",p,O,u);return I({expiration:Y,memo:J,transaction:H})}catch(L){throw new y.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction.",originalError:L instanceof Error?L.message:String(L)})}},_y=async(q)=>{if(!X)throw new y.SwapKitError("toolbox_tron_no_signer");return await X.signTransaction(q)},qy=async(q)=>{let{txid:z}=await Z.trx.sendRawTransaction(q);return z},S=async({assetAddress:q,spenderAddress:z,from:_})=>{try{let J=Z.contract(C,q);if(!J.methods?.allowance)throw new y.SwapKitError("toolbox_tron_invalid_token_contract");let[u]=await J.methods.allowance(_,z).call();return u?typeof u==="bigint"?u:BigInt(u):0n}catch(J){throw new y.SwapKitError("toolbox_tron_allowance_check_failed",{error:J})}};return{approve:async({assetAddress:q,spenderAddress:z,amount:_,from:J})=>{if(!X)throw new y.SwapKitError("toolbox_tron_no_signer");let u=J||await F(),Y=_!==void 0?BigInt(_).toString():Uy,U="approve(address,uint256)",I=[{type:"address",value:z},{type:"uint256",value:Y}],L={callValue:0,feeLimit:V()};try{let{transaction:O}=await Z.transactionBuilder.triggerSmartContract(q,U,L,I,u),p=await X.signTransaction(O),{txid:H}=await Z.trx.sendRawTransaction(p);if(!H)throw new y.SwapKitError("toolbox_tron_approve_failed");return H}catch(O){throw new y.SwapKitError("toolbox_tron_approve_failed",{error:O})}},broadcastTransaction:qy,createTransaction:E,estimateTransactionFee:uy,getAddress:F,getApprovedAmount:S,getBalance:yy,isApproved:async({assetAddress:q,spenderAddress:z,from:_,amount:J})=>{let u=await S({assetAddress:q,from:_,spenderAddress:z});if(!J)return u>0n;let Y=BigInt(J);return u>=Y},signTransaction:_y,transfer:fy,tronWeb:Z,validateAddress:await N()}};var d=R(()=>{T();n();y=require("@swapkit/helpers"),x=require("ts-pattern")});var Oy={};Yy(Oy,{trc20ABI:()=>C,getTronPrivateKeyFromMnemonic:()=>c,getTronAddressValidator:()=>N,createTronToolbox:()=>o});module.exports=jy(Oy);var Hy=R(()=>{T();d()});Hy();
|
|
2
|
-
|
|
3
|
-
//# debugId=6E77A5831EA5D5DE64756E2164756E21
|
|
4
|
-
//# sourceMappingURL=index.cjs.map
|
|
1
|
+
var bn=Object.create;var{getPrototypeOf:dn,defineProperty:j,getOwnPropertyNames:on,getOwnPropertyDescriptor:yn}=Object,tn=Object.prototype.hasOwnProperty;function rn(n){return this[n]}var Vn,Hn,hi=(n,i,o)=>{var t=n!=null&&typeof n==="object";if(t){var a=i?Vn??=new WeakMap:Hn??=new WeakMap,g=a.get(n);if(g)return g}o=n!=null?bn(dn(n)):{};let m=i||!n||!n.__esModule?j(o,"default",{value:n,enumerable:!0}):o;for(let P of on(n))if(!tn.call(m,P))j(m,P,{get:rn.bind(n,P),enumerable:!0});if(t)a.set(n,m);return m},Ln=(n)=>{var i=(nn??=new WeakMap).get(n),o;if(i)return i;if(i=j({},"__esModule",{value:!0}),n&&typeof n==="object"||typeof n==="function"){for(var t of on(n))if(!tn.call(i,t))j(i,t,{get:rn.bind(n,t),enumerable:!(o=yn(n,t))||o.enumerable})}return nn.set(n,i),i},nn;var ln=(n)=>n;function In(n,i){this[n]=ln.bind(null,i)}var sn=(n,i)=>{for(var o in i)j(n,o,{get:i[o],enumerable:!0,configurable:!0,set:In.bind(i,o)})};var X=(n,i)=>()=>(n&&(i=n(n=0)),i);function N(n,i){let o=0n,t=0n,a=i;while(a<n.length&&a-i<10){let g=n[a++];if(g===void 0)break;if(o|=BigInt(g&127)<<t,t+=7n,(g&128)===0)return[o,a]}throw new C.SwapKitError("toolbox_tron_transaction_creation_failed")}function M(n){let i=[],o=n<0n?n+2n**64n:n;while(o>=128n)i.push(Number(o&0x7fn)|128),o>>=7n;return i.push(Number(o)),i}function B(n,i,o){let t=n.get(i);if(t)t.push(o);else n.set(i,[o])}function ii(n){let i=new Map,o=0;while(o<n.length){let[t,a]=N(n,o);o=a;let g=Number(t>>3n),m=Number(t&7n);if(m===A){let[P,w]=N(n,o);o=w,B(i,g,{data:new Uint8Array(M(P)),wireType:A})}else if(m===W){let[P,w]=N(n,o);o=w;let $=Number(P);if($<0||o+$>n.length)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");let K=n.slice(o,o+$);o+=$,B(i,g,{data:K,wireType:W})}else if(m===an){if(o+8>n.length)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");let P=n.slice(o,o+8);o+=8,B(i,g,{data:P,wireType:an})}else if(m===cn){if(o+4>n.length)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");let P=n.slice(o,o+4);o+=4,B(i,g,{data:P,wireType:cn})}else throw new C.SwapKitError("toolbox_tron_transaction_creation_failed")}return i}function oi(n){let i=[];for(let[g,m]of[...n.entries()].sort(([P],[w])=>P-w))for(let{wireType:P,data:w}of m){let $=BigInt(g<<3|P);if(i.push(new Uint8Array(M($))),P===W)i.push(new Uint8Array(M(BigInt(w.length))));i.push(w)}let o=i.reduce((g,m)=>g+m.length,0),t=new Uint8Array(o),a=0;for(let g of i)t.set(g,a),a+=g.length;return t}function gn(n,i){if(!n||n.length%2!==0)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");let o=Q.hexToBytes(n),t=ii(o);if(i.expiration!==void 0)t.set(pn,[{data:new Uint8Array(M(BigInt(i.expiration))),wireType:A}]);if(i.data!==void 0)t.set(En,[{data:Q.hexToBytes(i.data),wireType:W}]);if(i.fee_limit!==void 0)t.set(ni,[{data:new Uint8Array(M(BigInt(i.fee_limit))),wireType:A}]);let a=oi(t),g=Q.bytesToHex(a),m=Q.bytesToHex(fn.sha256(a));return{raw_data_hex:g,txID:m}}var fn,Q,C,A=0,an=1,W=2,cn=5,pn=8,En=10,ni=18;var mn=X(()=>{fn=require("@noble/hashes/sha2.js"),Q=require("@noble/hashes/utils.js"),C=require("@swapkit/helpers")});function q(n){if(typeof n!=="string")return!1;try{let i=S.decode(n);return i.length===21&&i[0]===_n}catch{return!1}}function Pn(n){return F.bytesToHex(S.decode(n))}function ri(n){return S.decode(n).slice(1)}function wn(n){let i=D.secp256k1.getPublicKey(F.hexToBytes(n),!1),o=Tn.keccak_256(i.slice(1)).slice(-20),t=new Uint8Array(21);return t[0]=_n,t.set(o,1),S.encode(t)}function vn({txID:n,privateKey:i}){let o=D.secp256k1.sign(F.hexToBytes(n),F.hexToBytes(i),{format:"recovered",prehash:!1}),t=o[0]??0,a=F.bytesToHex(o.slice(1,33)),g=F.bytesToHex(o.slice(33,65)),m=(t+27).toString(16).padStart(2,"0");return a+g+m}function Y({txID:n,raw_data_hex:i}){let o=F.bytesToHex(R.sha256(F.hexToBytes(i)));if(n!==o)throw new b.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:o,txID:n})}function ai(n){return`000000000000000000000000${F.bytesToHex(ri(n))}`}function ci(n){let i=typeof n==="bigint"?n:BigInt(n);if(i<0n||i>=ti)throw new b.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:i.toString()});return i.toString(16).padStart(64,"0")}function Z(n){return n.map(({type:i,value:o})=>i==="address"?ai(o):ci(BigInt(o))).join("")}function un(n){return F.bytesToHex(new TextEncoder().encode(n))}var D,R,Tn,F,en,b,S,_n=65,ti;var d=X(()=>{D=require("@noble/curves/secp256k1.js"),R=require("@noble/hashes/sha2.js"),Tn=require("@noble/hashes/sha3.js"),F=require("@noble/hashes/utils.js"),en=require("@scure/base"),b=require("@swapkit/helpers"),S=en.createBase58check(R.sha256),ti=2n**256n});function hn(){try{return v.getRPCUrlSync(v.Chain.Tron)}catch{return xn}}function Fn(){let n=new AbortController,i=setTimeout(()=>n.abort(),Ti);return{cleanup:()=>clearTimeout(i),signal:n.signal}}async function J(n,i){let{signal:o,cleanup:t}=Fn();try{let a=await fetch(`${hn()}${n}`,{body:JSON.stringify(i),headers:{"Content-Type":"application/json"},method:"POST",signal:o});if(!a.ok)throw new v.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${a.status} ${a.statusText} on ${n}`});return await a.json()}finally{t()}}async function qn(n,i){let{signal:o,cleanup:t}=Fn();try{let a=await fetch(`${i??hn()}${n}`,{headers:{"Content-Type":"application/json"},signal:o});if(!a.ok)throw new v.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${a.status} ${a.statusText} on ${n}`});return await a.json()}finally{t()}}async function $n(n){if(!q(n))throw new v.SwapKitError("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let i=await qn(`/v1/accounts/${n}`,xn);if(!(i.success&&i.data)||i.data.length===0)return;let o;try{o=Pn(n).toLowerCase()}catch{o=n.toLowerCase()}let t=i.data.find((a)=>a.address.toLowerCase()===o);if(!t)return;return{balance:t.balance,trc20:t.trc20||[]}}catch(i){if(i instanceof v.SwapKitError)throw i;throw new v.SwapKitError("toolbox_tron_trongrid_api_error",{address:n,message:i instanceof Error?i.message:"Unknown error"})}}async function zn({from:n,to:i,amount:o}){let a=await J("/wallet/createtransaction",{amount:o,owner_address:n,to_address:i,visible:!0});if(!a.txID||!a.raw_data_hex||!a.raw_data)throw new v.SwapKitError("toolbox_tron_transaction_creation_failed");let m=a.raw_data?.contract?.[0]?.parameter?.value;if(m?.to_address!==i||m?.owner_address!==n||m?.amount!==o)throw new v.SwapKitError("toolbox_tron_transaction_creation_failed");return Y(a),a}async function Cn({ownerAddress:n,contractAddress:i,functionSelector:o,parameter:t,feeLimit:a,callValue:g=0}){let m=await J("/wallet/triggersmartcontract",{call_value:g,contract_address:i,fee_limit:a,function_selector:o,owner_address:n,parameter:t,visible:!0});if(!m.result.result||!m.transaction?.txID||!m.transaction?.raw_data_hex)throw new v.SwapKitError("toolbox_tron_transaction_creation_failed");let w=m.transaction.raw_data?.contract?.[0]?.parameter?.value;if(w?.contract_address!==i||w?.owner_address!==n)throw new v.SwapKitError("toolbox_tron_transaction_creation_failed");return Y(m.transaction),m.transaction}function Qn({ownerAddress:n,contractAddress:i,functionSelector:o,parameter:t}){return J("/wallet/triggerconstantcontract",{contract_address:i,function_selector:o,owner_address:n,parameter:t,visible:!0})}async function O(n){try{let{result:i,txid:o}=await J("/wallet/broadcasttransaction",{raw_data:n.raw_data,raw_data_hex:n.raw_data_hex,signature:n.signature,txID:n.txID,visible:n.visible});if(!i||!o)throw new v.SwapKitError("toolbox_tron_token_transfer_failed");return o}catch(i){throw new v.SwapKitError("toolbox_tron_broadcast_failed",{error:i})}}async function k(){let n={};try{let{chainParameter:i}=await qn("/wallet/getchainparameters");for(let o of i)n[o.key]=o.value}catch(i){v.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${i instanceof Error?i.message:i}`})}return{bandwidthFee:n.getTransactionFee??fi,createAccountFee:n.getCreateAccountFee??gi,energyFee:n.getEnergyFee??mi}}async function y(n){try{let i=await J("/wallet/getaccountresource",{address:n,visible:!0});return{bandwidth:{free:(i.freeNetLimit??600)-(i.freeNetUsed??0),total:i.NetLimit??0,used:i.NetUsed??0},energy:{total:i.EnergyLimit??0,used:i.EnergyUsed??0}}}catch(i){return v.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${i instanceof Error?i.message:i}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function V(n){try{let i=await J("/wallet/getaccount",{address:n,visible:!0});return i&&Object.keys(i).length>0}catch{return!1}}async function H(n){try{let{energy_used:i}=await Qn({...n,ownerAddress:n.sender});return i}catch(i){return v.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${i instanceof Error?i.message:i}`}),65000}}async function Yn({assetAddress:n,owner:i,spender:o}){let t=Z([{type:"address",value:i},{type:"address",value:o}]),g=(await Qn({contractAddress:n,functionSelector:"allowance(address,address)",ownerAddress:o,parameter:t})).constant_result?.[0];if(!g)return 0n;try{return BigInt(`0x${g}`)}catch{return 0n}}var v,xn="https://api.trongrid.io",fi=1000,gi=1e5,mi=420,Ti=30000;var Zn=X(()=>{d();v=require("@swapkit/helpers")});function On({phrase:n,derivationPath:i}){let o=jn.HDKey.fromMasterSeed(Xn.mnemonicToSeedSync(n)).derive(i);if(!o.privateKey)throw new r.SwapKitError("toolbox_tron_no_signer");return Un.bytesToHex(o.privateKey)}function Gn({phrase:n,derivationPath:i,index:o}){let t=i||r.derivationPathToString(r.updateDerivationPath(r.NetworkDerivationPath[r.Chain.Tron],{index:o||0}));return On({derivationPath:t,phrase:n})}function vi({phrase:n,derivationPath:i}){let o=On({derivationPath:i,phrase:n}),t=wn(o);return{getAddress:()=>Promise.resolve(t),signTransaction:(a)=>{Y(a);let g=vn({privateKey:o,txID:a.txID});return Promise.resolve({...a,signature:[g]})}}}function Jn({transaction:n,memo:i,expiration:o,feeLimit:t}){let a={},g={};if(t!==void 0&&n.raw_data)a.fee_limit=t,g.fee_limit=t;if(i){let w=un(i);a.data=w,g.data=w}if(o){let w=n.raw_data.expiration+o*1000;a.expiration=w,g.expiration=w}if(Object.keys(a).length===0)return n;let{raw_data_hex:m,txID:P}=gn(n.raw_data_hex,a);return{...n,raw_data:{...n.raw_data,...g},raw_data_hex:m,txID:P}}function Bn(n={}){let i="index"in n?n.index||0:0,o=r.derivationPathToString("derivationPath"in n&&n.derivationPath?n.derivationPath:r.updateDerivationPath(r.NetworkDerivationPath[r.Chain.Tron],{index:i})),t,a=!1;function g(){if(a)return Promise.resolve(t);return t=U.match(n).with({phrase:U.P.string},({phrase:c})=>vi({derivationPath:o,phrase:c})).with({signer:U.P.not(U.P.nullish)},({signer:c})=>c).otherwise(()=>{return}),a=!0,Promise.resolve(t)}async function m(){let c=await g();if(!c)throw new r.SwapKitError("toolbox_tron_no_signer");return c.getAddress()}async function P(c){let f=c||_i,e=await k(),_=f*e.energyFee,T=Math.ceil(_*1.5);return Math.min(Math.max(T,1e7),150000000)}async function w({contractAddress:c,functionSelector:f,parameter:e,sender:_,memo:T,expiration:u}){let x=await H({contractAddress:c,functionSelector:f,parameter:e,sender:_}),h=await P(x),z=await Cn({contractAddress:c,feeLimit:h,functionSelector:f,ownerAddress:_,parameter:e});return Jn({expiration:u,feeLimit:h,memo:T,transaction:z})}async function $(c){if(!q(c))return[r.AssetValue.from({chain:r.Chain.Tron})];try{let f=await $n(c);if(!f)return[r.AssetValue.from({chain:r.Chain.Tron})];let e=[r.AssetValue.from({chain:r.Chain.Tron,fromBaseDecimal:6,value:String(f.balance)})],_=f.trc20?.find((T)=>(L in T));if(_){let T=_[L];e.push(r.AssetValue.from({asset:`TRON.USDT-${L}`,fromBaseDecimal:6,value:T}))}return e}catch(f){return r.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${f instanceof Error?f.message:f}`}),[r.AssetValue.from({chain:r.Chain.Tron})]}}async function K({recipient:c,assetValue:f,memo:e,expiration:_}){if(!q(c))throw new r.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let T=await g();if(!T)throw new r.SwapKitError("toolbox_tron_no_signer");try{let u=await m(),x=await I({assetValue:f,expiration:_,memo:e,recipient:c,sender:u}),h=await T.signTransaction(x),z=await O(h);if(!z)throw new r.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return z}catch(u){throw new r.SwapKitError("toolbox_tron_token_transfer_failed",{message:u instanceof Error?u.message:String(u)})}}function l({requiredBandwidth:c,resources:f,feePerUnit:e}){let _=Math.max(0,f.free+f.total-f.used);return c>_?(c-_)*e:0}async function Wn({recipient:c,senderAddress:f}){let[e,_,T]=await Promise.all([k(),V(c),y(f)]),u=_?0:e.createAccountFee,x=l({feePerUnit:e.bandwidthFee,requiredBandwidth:ei,resources:T.bandwidth});return r.AssetValue.from({chain:r.Chain.Tron,fromBaseDecimal:r.BaseDecimal.TRON,value:u+x})}async function Sn({assetValue:c,recipient:f,senderAddress:e}){let _=c.address;if(!_)throw new r.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:c.toString()});let[T,u,x,h]=await Promise.all([k(),V(f),y(e),H({contractAddress:_,functionSelector:"transfer(address,uint256)",parameter:Z([{type:"address",value:f},{type:"uint256",value:c.getBaseValue("string")}]),sender:e})]),z=u?0:T.createAccountFee,G=l({feePerUnit:T.bandwidthFee,requiredBandwidth:Pi,resources:x.bandwidth}),E=Math.max(0,x.energy.total-x.energy.used),Rn=h>E?(h-E)*T.energyFee:0;return r.AssetValue.from({chain:r.Chain.Tron,fromBaseDecimal:r.BaseDecimal.TRON,value:z+G+Rn})}async function kn({assetValue:c,recipient:f,sender:e}){let _=await g();try{let T=e?e:_?await m():void 0;if(!T)return c.isGasAsset?r.AssetValue.from({chain:r.Chain.Tron,value:0.1}):r.AssetValue.from({chain:r.Chain.Tron,value:15});return c.isGasAsset?Wn({recipient:f,senderAddress:T}):Sn({assetValue:c,recipient:f,senderAddress:T})}catch(T){throw r.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${T instanceof Error?T.message:T}`}),new r.SwapKitError("toolbox_fee_estimation_failed",{chain:r.Chain.Tron,error:T})}}async function I({recipient:c,assetValue:f,memo:e,sender:_,expiration:T}){if(!q(c)||!q(_))throw new r.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(f.isGasAsset){let x=await zn({amount:f.getBaseValue("number"),from:_,to:c});return Jn({expiration:T,memo:e,transaction:x})}let u=f.address;if(!u)throw new r.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:f.toString()});return w({contractAddress:u,expiration:T,functionSelector:"transfer(address,uint256)",memo:e,parameter:Z([{type:"address",value:c},{type:"uint256",value:f.getBaseValue("string")}]),sender:_})}async function s(c){Y(c);let f=await g();if(!f)throw new r.SwapKitError("toolbox_tron_no_signer");return f.signTransaction(c)}async function Kn(c){let f=await s(c);return O(f)}function p({assetAddress:c,spenderAddress:f,from:e}){return Yn({assetAddress:c,owner:e,spender:f})}async function Nn({assetAddress:c,spenderAddress:f,from:e,amount:_}){let T=await p({assetAddress:c,from:e,spenderAddress:f});if(!_)return T>0n;return T>=BigInt(_)}async function Dn({assetAddress:c,spenderAddress:f,amount:e,from:_}){if(!q(c)||!q(f))throw new r.SwapKitError("toolbox_tron_approve_failed");let T=await g();if(!T)throw new r.SwapKitError("toolbox_tron_no_signer");let u=_||await m(),x=e!==void 0?BigInt(e).toString():wi;try{let h=await w({contractAddress:c,functionSelector:"approve(address,uint256)",parameter:Z([{type:"address",value:f},{type:"uint256",value:x}]),sender:u}),z=await T.signTransaction(h),G=await O(z);if(!G)throw new r.SwapKitError("toolbox_tron_approve_failed");return G}catch(h){if(h instanceof r.SwapKitError)throw h;throw new r.SwapKitError("toolbox_tron_approve_failed",{error:h})}}return{approve:Dn,broadcastTransaction:O,createTransaction:I,estimateTransactionFee:kn,getAddress:m,getApprovedAmount:p,getBalance:$,getRpcUrl:()=>r.getRPCUrl(r.Chain.Tron),isApproved:Nn,signAndBroadcastTransaction:Kn,signTransaction:s,transfer:K,validateAddress:q}}var Un,jn,Xn,r,U,Mn,ei=268,_i=65000,Pi=345,L="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",wi="115792089237316195423570985008687907853269984665640564039457584007913129639935";var An=X(()=>{mn();Zn();d();Un=require("@noble/hashes/utils.js"),jn=require("@scure/bip32"),Xn=require("@scure/bip39"),r=require("@swapkit/helpers"),U=require("ts-pattern"),Mn=q});var ui={};sn(ui,{validateTronAddress:()=>Mn,getTronToolbox:()=>Bn,getTronPrivateKeyFromMnemonic:()=>Gn});module.exports=Ln(ui);var xi=X(()=>{An()});xi();
|
package/dist/src/tron/index.js
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
var Yy=Object.create;var{getPrototypeOf:Xy,defineProperty:N,getOwnPropertyNames:Gy}=Object;var Ly=Object.prototype.hasOwnProperty;var P=(u,Q,Z)=>{Z=u!=null?Yy(Xy(u)):{};let j=Q||!u||!u.__esModule?N(Z,"default",{value:u,enumerable:!0}):Z;for(let M of Gy(u))if(!Ly.call(j,M))N(j,M,{get:()=>u[M],enumerable:!0});return j};var My=(u,Q)=>{for(var Z in Q)N(u,Z,{get:Q[Z],enumerable:!0,configurable:!0,set:(j)=>Q[Z]=()=>j})};var T=(u,Q)=>()=>(u&&(Q=u(u=0)),Q);var x=((u)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(u,{get:(Q,Z)=>(typeof require<"u"?require:Q)[Z]}):u)(function(u){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+u+'" is not supported')});var V;var D=T(()=>{V=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{SwapKitError as Uy}from"@swapkit/helpers";async function h(u){let Q=await import("tronweb"),Z=Q.TronWeb??Q.default?.TronWeb;try{let j=await fetch(`${Iy}/v1/accounts/${u}`);if(!j.ok)throw Error(`TronGrid API error: ${j.status} ${j.statusText}`);let M=await j.json();if(!(M.success&&M.data)||M.data.length===0)throw Error("Invalid response from TronGrid API");let J;try{J=Z.address.toHex(u).toLowerCase()}catch{J=u.toLowerCase()}let F=M.data.find((m)=>{return m.address.toLowerCase()===J});if(!F)return;return{balance:F.balance,trc20:F.trc20||[]}}catch(j){throw new Uy("toolbox_tron_trongrid_api_error",{address:u,message:j instanceof Error?j.message:"Unknown error"})}}var Iy="https://api.trongrid.io";var i=()=>{};import{AssetValue as k,BaseDecimal as n,Chain as p,derivationPathToString as o,getRPCUrl as Oy,NetworkDerivationPath as d,SwapKitError as L,updateDerivationPath as s,warnOnce as E}from"@swapkit/helpers";import{match as Hy,P as t}from"ts-pattern";async function S(){let u=await import("tronweb"),Q=u.TronWeb??u.default?.TronWeb;return(Z)=>{return Q.isAddress(Z)}}async function a({phrase:u,derivationPath:Q,index:Z}){let j=Q||o(s(d[p.Tron],{index:Z||0})),{HDKey:M}=await import("@scure/bip32"),{mnemonicToSeedSync:J}=await import("@scure/bip39"),F=J(u),Y=M.fromMasterSeed(F).derive(j);if(!Y.privateKey)throw new L("toolbox_tron_no_signer");return Buffer.from(Y.privateKey).toString("hex")}async function my({phrase:u,derivationPath:Q,tronWeb:Z}){let{HDKey:j}=await import("@scure/bip32"),{mnemonicToSeedSync:M}=await import("@scure/bip39"),J=M(u),m=j.fromMasterSeed(J).derive(Q);if(!m.privateKey)throw new L("toolbox_tron_no_signer");let Y=Buffer.from(m.privateKey).toString("hex");Z.setPrivateKey(Y);let C=Z?.address.fromPrivateKey(Y);return{getAddress:()=>Promise.resolve(typeof C==="string"?C:""),signTransaction:async(K)=>{return await Z.trx.sign(K,Y)}}}var py=268,vy=13000,ky=345,c="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Fy="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",e=async(u={})=>{let Q=await import("tronweb"),Z=Q.TronWeb??Q.default?.TronWeb,j=await Oy(p.Tron),M=void 0,J=new Z({fullHost:j,headers:void 0}),F="index"in u?u.index||0:0,m=o("derivationPath"in u&&u.derivationPath?u.derivationPath:s(d[p.Tron],{index:F})),Y=await Hy(u).with({phrase:t.string},async({phrase:_})=>my({derivationPath:m,phrase:_,tronWeb:J})).with({signer:t.any},({signer:_})=>Promise.resolve(_)).otherwise(()=>Promise.resolve(void 0)),C=async()=>{if(!Y)throw new L("toolbox_tron_no_signer");return await Y.getAddress()},K=()=>{return 1e8},g=async()=>{try{let _=await J.trx.getChainParameters(),q={};for(let f of _)q[f.key]=f.value;return{bandwidthFee:q.getTransactionFee||1000,createAccountFee:q.getCreateAccountFee||1e5,energyFee:q.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},yy=async(_)=>{try{let q=await J.trx.getAccount(_);return q&&Object.keys(q).length>0}catch{return!1}},fy=async(_)=>{try{let q=await J.trx.getAccountResources(_);return{bandwidth:{free:q.freeNetLimit-q.freeNetUsed,total:q.NetLimit||0,used:q.NetUsed||0},energy:{total:q.EnergyLimit||0,used:q.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},uy=async(_,q)=>{try{let f=J.contract(V,q);if(!f.methods?.balanceOf)return 0n;let[z]=await f.methods.balanceOf(_).call();return z?typeof z==="bigint"?z:BigInt(z):0n}catch(f){let z=f instanceof Error?f.message:String(f);return console.warn(`balanceOf() failed for ${q}: ${z}`),0n}},_y=async(_,q)=>{try{J.setAddress(q);let f=J.contract(V,_),[z,y]=await Promise.all([f.symbol().call().catch(()=>"UNKNOWN"),f.decimals().call().catch(()=>"18")]);return{decimals:Number(y??18),symbol:z??"UNKNOWN"}}catch(f){return E({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${_}: ${f instanceof Error?f.message:f}`}),null}},qy=async(_,q=!0)=>{let f=[k.from({chain:p.Tron})];try{let z=await h(_);if(z){let y=[];y.push(k.from({chain:p.Tron,fromBaseDecimal:6,value:z.balance}));for(let $ of z.trc20){let[U,I]=Object.entries($)[0]||[];if(!(U&&I))continue;let X=await _y(U,_);if(!X)continue;y.push(k.from({asset:`TRON.${X.symbol}-${U}`,fromBaseDecimal:X.decimals,value:BigInt(I||0)}))}return y}return f}catch(z){E({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${z instanceof Error?z.message:z}`});try{let y=[],$=await J.trx.getBalance(_);if($&&Number($)>0)y.push(k.from({chain:p.Tron,fromBaseDecimal:6,value:$}));let U=await uy(_,c);if(U)y.push(k.from({asset:`TRON.USDT-${c}`,fromBaseDecimal:6,value:U}));if(y.length===0)return f;return y}catch(y){let $=y instanceof Error?y.message:String(y);return console.error(`Tron balance fetch failed: ${$}`),f}}},zy=async({recipient:_,assetValue:q,memo:f,expiration:z})=>{if(!Y)throw new L("toolbox_tron_no_signer");let y=await C();J.setAddress(y);let $=await w({assetValue:q,expiration:z,memo:f,recipient:_,sender:y}),U=await Y.signTransaction($),{txid:I}=await J.trx.sendRawTransaction(U);if(!I)throw new L("toolbox_tron_token_transfer_failed");return I},Jy=async({assetValue:_,recipient:q,sender:f})=>{let z=_.isGasAsset;try{let y=f?f:Y?await C():void 0;if(!y)return z?k.from({chain:p.Tron,fromBaseDecimal:0,value:0.1}):k.from({chain:p.Tron,fromBaseDecimal:0,value:15});let $=await g(),I=await yy(q)?0:$.createAccountFee,X=await fy(y);if(z){let R=py,l=X.bandwidth.free+(X.bandwidth.total-X.bandwidth.used),A=0;if(R>l)A=(R-l)*$.bandwidthFee;let jy=I+A;return k.from({chain:p.Tron,fromBaseDecimal:n.TRON,value:jy})}let G=ky,O=vy,v=X.bandwidth.free+(X.bandwidth.total-X.bandwidth.used),H=X.energy.total-X.energy.used,B=0;if(G>v)B=(G-v)*$.bandwidthFee;let b=0;if(O>H)b=(O-H)*$.energyFee;let $y=I+B+b;return k.from({chain:p.Tron,fromBaseDecimal:n.TRON,value:$y})}catch(y){throw E({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${y instanceof Error?y.message:y}`}),new L("toolbox_tron_fee_estimation_failed",{error:y})}},w=async(_)=>{let{recipient:q,assetValue:f,memo:z,sender:y,expiration:$}=_,U=f.isGasAsset,I=async({transaction:G,memo:O,expiration:v})=>{let H=O?await J.transactionBuilder.addUpdateData(G,O,"utf8"):G;return v?await J.transactionBuilder.extendExpiration(H,v):H};if(U){let G=await J.transactionBuilder.sendTrx(q,f.getBaseValue("number"),y);return I({expiration:$,memo:z,transaction:G})}J.setAddress(y);let X=f.address;if(!X)throw new L("toolbox_tron_invalid_token_identifier",{identifier:f.toString()});try{let O=[{type:"address",value:q},{type:"uint256",value:f.getBaseValue("string")}],v={callValue:0,feeLimit:K()},{transaction:H}=await J.transactionBuilder.triggerSmartContract(X,"transfer(address,uint256)",v,O,y);return I({expiration:$,memo:z,transaction:H})}catch(G){throw new L("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction.",originalError:G instanceof Error?G.message:String(G)})}},Qy=async(_)=>{if(!Y)throw new L("toolbox_tron_no_signer");return await Y.signTransaction(_)},Zy=async(_)=>{let{txid:q}=await J.trx.sendRawTransaction(_);return q},W=async({assetAddress:_,spenderAddress:q,from:f})=>{try{let z=J.contract(V,_);if(!z.methods?.allowance)throw new L("toolbox_tron_invalid_token_contract");let[y]=await z.methods.allowance(f,q).call();return y?typeof y==="bigint"?y:BigInt(y):0n}catch(z){throw new L("toolbox_tron_allowance_check_failed",{error:z})}};return{approve:async({assetAddress:_,spenderAddress:q,amount:f,from:z})=>{if(!Y)throw new L("toolbox_tron_no_signer");let y=z||await C(),$=f!==void 0?BigInt(f).toString():Fy,U="approve(address,uint256)",I=[{type:"address",value:q},{type:"uint256",value:$}],G={callValue:0,feeLimit:K()};try{let{transaction:O}=await J.transactionBuilder.triggerSmartContract(_,U,G,I,y),v=await Y.signTransaction(O),{txid:H}=await J.trx.sendRawTransaction(v);if(!H)throw new L("toolbox_tron_approve_failed");return H}catch(O){throw new L("toolbox_tron_approve_failed",{error:O})}},broadcastTransaction:Zy,createTransaction:w,estimateTransactionFee:Jy,getAddress:C,getApprovedAmount:W,getBalance:qy,isApproved:async({assetAddress:_,spenderAddress:q,from:f,amount:z})=>{let y=await W({assetAddress:_,from:f,spenderAddress:q});if(!z)return y>0n;let $=BigInt(z);return y>=$},signTransaction:Qy,transfer:zy,tronWeb:J,validateAddress:await S()}};var r=T(()=>{D();i()});var Cy={};My(Cy,{trc20ABI:()=>V,getTronPrivateKeyFromMnemonic:()=>a,getTronAddressValidator:()=>S,createTronToolbox:()=>e});var Py=T(()=>{D();r()});Py();export{V as trc20ABI,a as getTronPrivateKeyFromMnemonic,S as getTronAddressValidator,e as createTronToolbox};
|
|
2
|
-
|
|
3
|
-
//# debugId=ED2E67A6C2AA9EEB64756E2164756E21
|
|
4
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
var Rn=Object.defineProperty;var bn=(n)=>n;function dn(n,i){this[n]=bn.bind(null,i)}var yn=(n,i)=>{for(var o in i)Rn(n,o,{get:i[o],enumerable:!0,configurable:!0,set:dn.bind(i,o)})};var j=(n,i)=>()=>(n&&(i=n(n=0)),i);var zi=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(i,o)=>(typeof require<"u"?require:i)[o]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{sha256 as Vn}from"@noble/hashes/sha2.js";import{bytesToHex as E,hexToBytes as nn}from"@noble/hashes/utils.js";import{SwapKitError as Q}from"@swapkit/helpers";function N(n,i){let o=0n,t=0n,r=i;while(r<n.length&&r-i<10){let f=n[r++];if(f===void 0)break;if(o|=BigInt(f&127)<<t,t+=7n,(f&128)===0)return[o,r]}throw new Q("toolbox_tron_transaction_creation_failed")}function X(n){let i=[],o=n<0n?n+2n**64n:n;while(o>=128n)i.push(Number(o&0x7fn)|128),o>>=7n;return i.push(Number(o)),i}function G(n,i,o){let t=n.get(i);if(t)t.push(o);else n.set(i,[o])}function In(n){let i=new Map,o=0;while(o<n.length){let[t,r]=N(n,o);o=r;let f=Number(t>>3n),m=Number(t&7n);if(m===B){let[P,_]=N(n,o);o=_,G(i,f,{data:new Uint8Array(X(P)),wireType:B})}else if(m===A){let[P,_]=N(n,o);o=_;let z=Number(P);if(z<0||o+z>n.length)throw new Q("toolbox_tron_transaction_creation_failed");let K=n.slice(o,o+z);o+=z,G(i,f,{data:K,wireType:A})}else if(m===on){if(o+8>n.length)throw new Q("toolbox_tron_transaction_creation_failed");let P=n.slice(o,o+8);o+=8,G(i,f,{data:P,wireType:on})}else if(m===tn){if(o+4>n.length)throw new Q("toolbox_tron_transaction_creation_failed");let P=n.slice(o,o+4);o+=4,G(i,f,{data:P,wireType:tn})}else throw new Q("toolbox_tron_transaction_creation_failed")}return i}function sn(n){let i=[];for(let[f,m]of[...n.entries()].sort(([P],[_])=>P-_))for(let{wireType:P,data:_}of m){let z=BigInt(f<<3|P);if(i.push(new Uint8Array(X(z))),P===A)i.push(new Uint8Array(X(BigInt(_.length))));i.push(_)}let o=i.reduce((f,m)=>f+m.length,0),t=new Uint8Array(o),r=0;for(let f of i)t.set(f,r),r+=f.length;return t}function rn(n,i){if(!n||n.length%2!==0)throw new Q("toolbox_tron_transaction_creation_failed");let o=nn(n),t=In(o);if(i.expiration!==void 0)t.set(Hn,[{data:new Uint8Array(X(BigInt(i.expiration))),wireType:B}]);if(i.data!==void 0)t.set(Ln,[{data:nn(i.data),wireType:A}]);if(i.fee_limit!==void 0)t.set(ln,[{data:new Uint8Array(X(BigInt(i.fee_limit))),wireType:B}]);let r=sn(t),f=E(r),m=E(Vn(r));return{raw_data_hex:f,txID:m}}var B=0,on=1,A=2,tn=5,Hn=8,Ln=10,ln=18;var an=()=>{};import{secp256k1 as cn}from"@noble/curves/secp256k1.js";import{sha256 as fn}from"@noble/hashes/sha2.js";import{keccak_256 as pn}from"@noble/hashes/sha3.js";import{bytesToHex as Y,hexToBytes as W}from"@noble/hashes/utils.js";import{createBase58check as En}from"@scure/base";import{SwapKitError as gn}from"@swapkit/helpers";function F(n){if(typeof n!=="string")return!1;try{let i=S.decode(n);return i.length===21&&i[0]===mn}catch{return!1}}function Tn(n){return Y(S.decode(n))}function ii(n){return S.decode(n).slice(1)}function en(n){let i=cn.getPublicKey(W(n),!1),o=pn(i.slice(1)).slice(-20),t=new Uint8Array(21);return t[0]=mn,t.set(o,1),S.encode(t)}function _n({txID:n,privateKey:i}){let o=cn.sign(W(n),W(i),{format:"recovered",prehash:!1}),t=o[0]??0,r=Y(o.slice(1,33)),f=Y(o.slice(33,65)),m=(t+27).toString(16).padStart(2,"0");return r+f+m}function Z({txID:n,raw_data_hex:i}){let o=Y(fn(W(i)));if(n!==o)throw new gn("toolbox_tron_invalid_transaction_integrity",{expected:o,txID:n})}function oi(n){return`000000000000000000000000${Y(ii(n))}`}function ti(n){let i=typeof n==="bigint"?n:BigInt(n);if(i<0n||i>=ni)throw new gn("toolbox_tron_invalid_token_identifier",{identifier:i.toString()});return i.toString(16).padStart(64,"0")}function J(n){return n.map(({type:i,value:o})=>i==="address"?oi(o):ti(BigInt(o))).join("")}function Pn(n){return Y(new TextEncoder().encode(n))}var S,mn=65,ni;var D=j(()=>{S=En(fn),ni=2n**256n});import{Chain as ri,getRPCUrlSync as ai,SwapKitError as q,warnOnce as R}from"@swapkit/helpers";function vn(){try{return ai(ri.Tron)}catch{return wn}}function un(){let n=new AbortController,i=setTimeout(()=>n.abort(),mi);return{cleanup:()=>clearTimeout(i),signal:n.signal}}async function U(n,i){let{signal:o,cleanup:t}=un();try{let r=await fetch(`${vn()}${n}`,{body:JSON.stringify(i),headers:{"Content-Type":"application/json"},method:"POST",signal:o});if(!r.ok)throw new q("toolbox_tron_trongrid_api_error",{message:`${r.status} ${r.statusText} on ${n}`});return await r.json()}finally{t()}}async function xn(n,i){let{signal:o,cleanup:t}=un();try{let r=await fetch(`${i??vn()}${n}`,{headers:{"Content-Type":"application/json"},signal:o});if(!r.ok)throw new q("toolbox_tron_trongrid_api_error",{message:`${r.status} ${r.statusText} on ${n}`});return await r.json()}finally{t()}}async function hn(n){if(!F(n))throw new q("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let i=await xn(`/v1/accounts/${n}`,wn);if(!(i.success&&i.data)||i.data.length===0)return;let o;try{o=Tn(n).toLowerCase()}catch{o=n.toLowerCase()}let t=i.data.find((r)=>r.address.toLowerCase()===o);if(!t)return;return{balance:t.balance,trc20:t.trc20||[]}}catch(i){if(i instanceof q)throw i;throw new q("toolbox_tron_trongrid_api_error",{address:n,message:i instanceof Error?i.message:"Unknown error"})}}async function Fn({from:n,to:i,amount:o}){let r=await U("/wallet/createtransaction",{amount:o,owner_address:n,to_address:i,visible:!0});if(!r.txID||!r.raw_data_hex||!r.raw_data)throw new q("toolbox_tron_transaction_creation_failed");let m=r.raw_data?.contract?.[0]?.parameter?.value;if(m?.to_address!==i||m?.owner_address!==n||m?.amount!==o)throw new q("toolbox_tron_transaction_creation_failed");return Z(r),r}async function qn({ownerAddress:n,contractAddress:i,functionSelector:o,parameter:t,feeLimit:r,callValue:f=0}){let m=await U("/wallet/triggersmartcontract",{call_value:f,contract_address:i,fee_limit:r,function_selector:o,owner_address:n,parameter:t,visible:!0});if(!m.result.result||!m.transaction?.txID||!m.transaction?.raw_data_hex)throw new q("toolbox_tron_transaction_creation_failed");let _=m.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==i||_?.owner_address!==n)throw new q("toolbox_tron_transaction_creation_failed");return Z(m.transaction),m.transaction}function $n({ownerAddress:n,contractAddress:i,functionSelector:o,parameter:t}){return U("/wallet/triggerconstantcontract",{contract_address:i,function_selector:o,owner_address:n,parameter:t,visible:!0})}async function M(n){try{let{result:i,txid:o}=await U("/wallet/broadcasttransaction",{raw_data:n.raw_data,raw_data_hex:n.raw_data_hex,signature:n.signature,txID:n.txID,visible:n.visible});if(!i||!o)throw new q("toolbox_tron_token_transfer_failed");return o}catch(i){throw new q("toolbox_tron_broadcast_failed",{error:i})}}async function k(){let n={};try{let{chainParameter:i}=await xn("/wallet/getchainparameters");for(let o of i)n[o.key]=o.value}catch(i){R({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${i instanceof Error?i.message:i}`})}return{bandwidthFee:n.getTransactionFee??ci,createAccountFee:n.getCreateAccountFee??fi,energyFee:n.getEnergyFee??gi}}async function b(n){try{let i=await U("/wallet/getaccountresource",{address:n,visible:!0});return{bandwidth:{free:(i.freeNetLimit??600)-(i.freeNetUsed??0),total:i.NetLimit??0,used:i.NetUsed??0},energy:{total:i.EnergyLimit??0,used:i.EnergyUsed??0}}}catch(i){return R({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${i instanceof Error?i.message:i}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function d(n){try{let i=await U("/wallet/getaccount",{address:n,visible:!0});return i&&Object.keys(i).length>0}catch{return!1}}async function y(n){try{let{energy_used:i}=await $n({...n,ownerAddress:n.sender});return i}catch(i){return R({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${i instanceof Error?i.message:i}`}),65000}}async function zn({assetAddress:n,owner:i,spender:o}){let t=J([{type:"address",value:i},{type:"address",value:o}]),f=(await $n({contractAddress:n,functionSelector:"allowance(address,address)",ownerAddress:o,parameter:t})).constant_result?.[0];if(!f)return 0n;try{return BigInt(`0x${f}`)}catch{return 0n}}var wn="https://api.trongrid.io",ci=1000,fi=1e5,gi=420,mi=30000;var Cn=j(()=>{D()});import{bytesToHex as Ti}from"@noble/hashes/utils.js";import{HDKey as ei}from"@scure/bip32";import{mnemonicToSeedSync as _i}from"@scure/bip39";import{AssetValue as $,BaseDecimal as Qn,Chain as h,derivationPathToString as Jn,getRPCUrl as Pi,NetworkDerivationPath as Un,SwapKitError as v,updateDerivationPath as jn,warnOnce as Yn}from"@swapkit/helpers";import{match as wi,P as V}from"ts-pattern";function Mn({phrase:n,derivationPath:i}){let o=ei.fromMasterSeed(_i(n)).derive(i);if(!o.privateKey)throw new v("toolbox_tron_no_signer");return Ti(o.privateKey)}function On({phrase:n,derivationPath:i,index:o}){let t=i||Jn(jn(Un[h.Tron],{index:o||0}));return Mn({derivationPath:t,phrase:n})}function Fi({phrase:n,derivationPath:i}){let o=Mn({derivationPath:i,phrase:n}),t=en(o);return{getAddress:()=>Promise.resolve(t),signTransaction:(r)=>{Z(r);let f=_n({privateKey:o,txID:r.txID});return Promise.resolve({...r,signature:[f]})}}}function Zn({transaction:n,memo:i,expiration:o,feeLimit:t}){let r={},f={};if(t!==void 0&&n.raw_data)r.fee_limit=t,f.fee_limit=t;if(i){let _=Pn(i);r.data=_,f.data=_}if(o){let _=n.raw_data.expiration+o*1000;r.expiration=_,f.expiration=_}if(Object.keys(r).length===0)return n;let{raw_data_hex:m,txID:P}=rn(n.raw_data_hex,r);return{...n,raw_data:{...n.raw_data,...f},raw_data_hex:m,txID:P}}function Gn(n={}){let i="index"in n?n.index||0:0,o=Jn("derivationPath"in n&&n.derivationPath?n.derivationPath:jn(Un[h.Tron],{index:i})),t,r=!1;function f(){if(r)return Promise.resolve(t);return t=wi(n).with({phrase:V.string},({phrase:a})=>Fi({derivationPath:o,phrase:a})).with({signer:V.not(V.nullish)},({signer:a})=>a).otherwise(()=>{return}),r=!0,Promise.resolve(t)}async function m(){let a=await f();if(!a)throw new v("toolbox_tron_no_signer");return a.getAddress()}async function P(a){let c=a||ui,T=await k(),e=c*T.energyFee,g=Math.ceil(e*1.5);return Math.min(Math.max(g,1e7),150000000)}async function _({contractAddress:a,functionSelector:c,parameter:T,sender:e,memo:g,expiration:w}){let u=await y({contractAddress:a,functionSelector:c,parameter:T,sender:e}),x=await P(u),C=await qn({contractAddress:a,feeLimit:x,functionSelector:c,ownerAddress:e,parameter:T});return Zn({expiration:w,feeLimit:x,memo:g,transaction:C})}async function z(a){if(!F(a))return[$.from({chain:h.Tron})];try{let c=await hn(a);if(!c)return[$.from({chain:h.Tron})];let T=[$.from({chain:h.Tron,fromBaseDecimal:6,value:String(c.balance)})],e=c.trc20?.find((g)=>(H in g));if(e){let g=e[H];T.push($.from({asset:`TRON.USDT-${H}`,fromBaseDecimal:6,value:g}))}return T}catch(c){return Yn({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${c instanceof Error?c.message:c}`}),[$.from({chain:h.Tron})]}}async function K({recipient:a,assetValue:c,memo:T,expiration:e}){if(!F(a))throw new v("toolbox_tron_token_transfer_failed",{message:"invalid address"});let g=await f();if(!g)throw new v("toolbox_tron_no_signer");try{let w=await m(),u=await l({assetValue:c,expiration:e,memo:T,recipient:a,sender:w}),x=await g.signTransaction(u),C=await M(x);if(!C)throw new v("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return C}catch(w){throw new v("toolbox_tron_token_transfer_failed",{message:w instanceof Error?w.message:String(w)})}}function L({requiredBandwidth:a,resources:c,feePerUnit:T}){let e=Math.max(0,c.free+c.total-c.used);return a>e?(a-e)*T:0}async function An({recipient:a,senderAddress:c}){let[T,e,g]=await Promise.all([k(),d(a),b(c)]),w=e?0:T.createAccountFee,u=L({feePerUnit:T.bandwidthFee,requiredBandwidth:vi,resources:g.bandwidth});return $.from({chain:h.Tron,fromBaseDecimal:Qn.TRON,value:w+u})}async function Wn({assetValue:a,recipient:c,senderAddress:T}){let e=a.address;if(!e)throw new v("toolbox_tron_invalid_token_identifier",{identifier:a.toString()});let[g,w,u,x]=await Promise.all([k(),d(c),b(T),y({contractAddress:e,functionSelector:"transfer(address,uint256)",parameter:J([{type:"address",value:c},{type:"uint256",value:a.getBaseValue("string")}]),sender:T})]),C=w?0:g.createAccountFee,O=L({feePerUnit:g.bandwidthFee,requiredBandwidth:xi,resources:u.bandwidth}),p=Math.max(0,u.energy.total-u.energy.used),Dn=x>p?(x-p)*g.energyFee:0;return $.from({chain:h.Tron,fromBaseDecimal:Qn.TRON,value:C+O+Dn})}async function Sn({assetValue:a,recipient:c,sender:T}){let e=await f();try{let g=T?T:e?await m():void 0;if(!g)return a.isGasAsset?$.from({chain:h.Tron,value:0.1}):$.from({chain:h.Tron,value:15});return a.isGasAsset?An({recipient:c,senderAddress:g}):Wn({assetValue:a,recipient:c,senderAddress:g})}catch(g){throw Yn({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${g instanceof Error?g.message:g}`}),new v("toolbox_fee_estimation_failed",{chain:h.Tron,error:g})}}async function l({recipient:a,assetValue:c,memo:T,sender:e,expiration:g}){if(!F(a)||!F(e))throw new v("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(c.isGasAsset){let u=await Fn({amount:c.getBaseValue("number"),from:e,to:a});return Zn({expiration:g,memo:T,transaction:u})}let w=c.address;if(!w)throw new v("toolbox_tron_invalid_token_identifier",{identifier:c.toString()});return _({contractAddress:w,expiration:g,functionSelector:"transfer(address,uint256)",memo:T,parameter:J([{type:"address",value:a},{type:"uint256",value:c.getBaseValue("string")}]),sender:e})}async function I(a){Z(a);let c=await f();if(!c)throw new v("toolbox_tron_no_signer");return c.signTransaction(a)}async function kn(a){let c=await I(a);return M(c)}function s({assetAddress:a,spenderAddress:c,from:T}){return zn({assetAddress:a,owner:T,spender:c})}async function Kn({assetAddress:a,spenderAddress:c,from:T,amount:e}){let g=await s({assetAddress:a,from:T,spenderAddress:c});if(!e)return g>0n;return g>=BigInt(e)}async function Nn({assetAddress:a,spenderAddress:c,amount:T,from:e}){if(!F(a)||!F(c))throw new v("toolbox_tron_approve_failed");let g=await f();if(!g)throw new v("toolbox_tron_no_signer");let w=e||await m(),u=T!==void 0?BigInt(T).toString():hi;try{let x=await _({contractAddress:a,functionSelector:"approve(address,uint256)",parameter:J([{type:"address",value:c},{type:"uint256",value:u}]),sender:w}),C=await g.signTransaction(x),O=await M(C);if(!O)throw new v("toolbox_tron_approve_failed");return O}catch(x){if(x instanceof v)throw x;throw new v("toolbox_tron_approve_failed",{error:x})}}return{approve:Nn,broadcastTransaction:M,createTransaction:l,estimateTransactionFee:Sn,getAddress:m,getApprovedAmount:s,getBalance:z,getRpcUrl:()=>Pi(h.Tron),isApproved:Kn,signAndBroadcastTransaction:kn,signTransaction:I,transfer:K,validateAddress:F}}var Xn,vi=268,ui=65000,xi=345,H="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",hi="115792089237316195423570985008687907853269984665640564039457584007913129639935";var Bn=j(()=>{an();Cn();D();Xn=F});var qi={};yn(qi,{validateTronAddress:()=>Xn,getTronToolbox:()=>Gn,getTronPrivateKeyFromMnemonic:()=>On});var $i=j(()=>{Bn()});$i();export{Xn as validateTronAddress,Gn as getTronToolbox,On as getTronPrivateKeyFromMnemonic};
|
package/dist/src/utxo/index.cjs
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
var CB=Object.create;var{getPrototypeOf:IB,defineProperty:r,getOwnPropertyNames:gX,getOwnPropertyDescriptor:_B}=Object,mX=Object.prototype.hasOwnProperty;var g=(X,B,Z)=>{Z=X!=null?CB(IB(X)):{};let G=B||!X||!X.__esModule?r(Z,"default",{value:X,enumerable:!0}):Z;for(let $ of gX(X))if(!mX.call(G,$))r(G,$,{get:()=>X[$],enumerable:!0});return G},xX=new WeakMap,MB=(X)=>{var B=xX.get(X),Z;if(B)return B;if(B=r({},"__esModule",{value:!0}),X&&typeof X==="object"||typeof X==="function")gX(X).map((G)=>!mX.call(B,G)&&r(B,G,{get:()=>X[G],enumerable:!(Z=_B(X,G))||Z.enumerable}));return xX.set(X,B),B};var HB=(X,B)=>{for(var Z in B)r(X,Z,{get:B[Z],enumerable:!0,configurable:!0,set:(G)=>B[Z]=()=>G})};var N=(X,B)=>()=>(X&&(B=X(X=0)),B);function hX(){function X(){let B=Date.now(),Z=zX||B;return zX=Z,B>zX?B:Z+1}return vB+X().toString(36)}function cX(X){return async function(Z,G=!0){let $=await lX.SwapKitApi.getChainBalance({address:Z,chain:X,scamFilter:G}),{baseDecimal:Q}=d.getChainConfig(X),J=$.map(({identifier:q,value:W,decimal:Y})=>{return new d.AssetValue({decimal:Y||Q,identifier:q,value:W})});if(!J.some((q)=>q.isGasAsset))return[d.AssetValue.from({chain:X}),...J];return J}}var d,lX,vB,zX=0;var CX=N(()=>{d=require("@swapkit/helpers"),lX=require("@swapkit/helpers/api"),vB=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function NB({chain:X,txHash:B}){let Z=`${GX(X)}/push/transaction`,G=JSON.stringify({data:B});try{let $=await U.RequestClient.post(Z,{body:G,headers:{"Content-Type":"application/json"}});if($.context.code!==200)throw new U.SwapKitError("toolbox_utxo_broadcast_failed",{error:$.context.error||"Transaction broadcast failed"});return $.data?.transaction_hash||B}catch($){let Q=await U.getRPCUrl(X);if(Q){let J=JSON.stringify({id:hX(),jsonrpc:"2.0",method:"sendrawtransaction",params:[B]}),j=await U.RequestClient.post(Q,{body:J,headers:{"Content-Type":"application/json"}});if(j.error)throw new U.SwapKitError("toolbox_utxo_broadcast_failed",{error:j.error?.message});if(j.result.includes('"code":-26'))throw new U.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return j.result}throw $}}function GX(X){return`https://api.blockchair.com/${OB(X)}`}function pX(X){switch(X){case U.Chain.Bitcoin:return 5;case U.Chain.Dogecoin:return 1e4;case U.Chain.Litecoin:return 1;case U.Chain.Zcash:return 1;default:return 2}}function OB(X){switch(X){case U.Chain.BitcoinCash:return"bitcoin-cash";case U.Chain.Litecoin:return"litecoin";case U.Chain.Dash:return"dash";case U.Chain.Dogecoin:return"dogecoin";case U.Chain.Zcash:return"zcash";case U.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function yB(X){try{let{feePerKb:B}=await U.RequestClient.get(`https://app.bitgo.com/api/v2/${X.toLowerCase()}/tx/fee`),Z=B/1000;return Math.max(Z,pX(X))}catch{return pX(X)}}async function IX(X,B){let Z=await U.RequestClient.get(`${X}${B?`${X.includes("?")?"&":"?"}key=${B}`:""}`);if(!Z||Z.context.code!==200)throw new U.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${X}`});return Z.data}async function rX({address:X,chain:B,apiKey:Z}){if(!X)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await IX(`${GX(B)}/dashboards/address/${X}?transaction_details=true`,Z))[X]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function AB({address:X,chain:B,apiKey:Z}){return(await rX({address:X,apiKey:Z,chain:B}))?.address.balance||0}async function dX({chain:X,apiKey:B,txHash:Z}){if(!Z)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await IX(`${GX(X)}/raw/transaction/${Z}`,B))?.[Z]?.raw_transaction||""}catch(G){let $=G instanceof Error?G.message:String(G);return console.error(`Failed to fetch raw transaction: ${$}`),""}}async function FB({chain:X,address:B,apiKey:Z,offset:G=0,limit:$=30}){return(await IX(`${GX(X)}/outputs?q=recipient(${B}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${$}&offset=${G}`,Z)).map(({is_spent:q,script_hex:W,block_id:Y,transaction_hash:T,index:z,value:D,spending_signature_hex:C})=>({hash:T,index:z,is_confirmed:Y!==-1,is_spent:q,script_hex:W,txHex:C,value:D}))}function EB(X){return X.reduce((B,Z)=>B+Z.value,0)}function oX(X,B){let Z=[...X].sort((G,$)=>$.value-G.value);if(B){let G=[],$=0;for(let Q of Z)if(G.push(Q),$+=Q.value,$>=B)break;return G}return Z}async function iX({chain:X,address:B,apiKey:Z,targetValue:G,accumulativeValue:$=0,offset:Q=0,limit:J=30}){if(!B)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let j=await FB({address:B,apiKey:Z,chain:X,limit:J,offset:Q,targetValue:G}),W=j.length<J,Y=j.filter(({is_spent:M})=>!M),T=EB(Y),z=$+T,D=G&&z>=G;if(W||D)return oX(Y,G);let C=await iX({accumulativeValue:z,address:B,apiKey:Z,chain:X,limit:J,offset:Q+J,targetValue:G}),H=[...Y,...C];return oX(H,G)}catch(j){let q=j instanceof Error?j.message:String(j);return console.error(`Failed to fetch unspent UTXOs: ${q}`),[]}}async function kB({address:X,chain:B,apiKey:Z,fetchTxHex:G=!0,targetValue:$}){let Q=await iX({address:X,apiKey:Z,chain:B,targetValue:$}),J=[];for(let{hash:j,index:q,script_hex:W,value:Y}of Q){let T;if(G)T=await dX({apiKey:Z,chain:B,txHash:j});J.push({address:X,hash:j,index:q,txHex:T,value:Y,witnessUtxo:{script:Buffer.from(W,"hex"),value:Y}})}return J}function v(X){let B=U.SKConfig.get("apiKeys").blockchair||"";return U.warnOnce({condition:!B,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(Z)=>NB({chain:X,txHash:Z}),getAddressData:(Z)=>rX({address:Z,apiKey:B,chain:X}),getBalance:(Z)=>AB({address:Z,apiKey:B,chain:X}),getRawTx:(Z)=>dX({apiKey:B,chain:X,txHash:Z}),getSuggestedTxFee:()=>yB(X),getUtxos:(Z)=>kB({...Z,apiKey:B,chain:X})}}function fB(X){return X}function A(){return function(B){switch(B){case U.Chain.Bitcoin:return uX.networks.bitcoin;case U.Chain.BitcoinCash:return m.default.bitcoincash.main.toBitcoinJS();case U.Chain.Dash:return m.default.dash.main.toBitcoinJS();case U.Chain.Litecoin:return m.default.litecoin.main.toBitcoinJS();case U.Chain.Dogecoin:{let Z={private:70615956,public:70617039},G=m.default.dogecoin.test;return G.versions.bip32=Z,m.default.dogecoin.main.toBitcoinJS()}case U.Chain.Zcash:return nX.networks.zcash;default:throw new U.SwapKitError("toolbox_utxo_not_supported",{chain:B})}}}var nX,U,uX,m;var sX=N(()=>{CX();nX=require("@bitgo/utxo-lib"),U=require("@swapkit/helpers"),uX=require("bitcoinjs-lib"),m=g(require("coininfo"))});function NX(X){try{return JX(X),!0}catch{return!1}}function OX(X){return JX(X)?.network}function l(X){let B=JX(X);if(B?.format==="legacy")return X;return VB(B)}function i(X){let B=JX(X);return wB(B)}function JX(X){try{let B=RB(X);if(B)return B}catch{}try{let B=PB(X);if(B)return B}catch{}throw new _X.SwapKitError("toolbox_utxo_invalid_address",{address:X})}function RB(X){try{let B=MX.default.decode(X);if(B.length!==21)throw new _X.SwapKitError("toolbox_utxo_invalid_address",{address:X});let Z=B[0],G=Array.prototype.slice.call(B,1);switch(Z){case K.legacy.mainnet.p2pkh:return{format:"legacy",hash:G,network:"mainnet",type:"p2pkh"};case K.legacy.mainnet.p2sh:return{format:"legacy",hash:G,network:"mainnet",type:"p2sh"};case K.legacy.testnet.p2pkh:return{format:"legacy",hash:G,network:"testnet",type:"p2pkh"};case K.legacy.testnet.p2sh:return{format:"legacy",hash:G,network:"testnet",type:"p2sh"};case K.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:G,network:"mainnet",type:"p2pkh"};case K.bitpay.mainnet.p2sh:return{format:"bitpay",hash:G,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function PB(X){if(X.indexOf(":")!==-1)try{return aX(X)}catch{}else{let B=["bitcoincash","bchtest","bchreg"];for(let Z of B)try{return aX(`${Z}:${X}`)}catch{}}return}function aX(X){try{let{hash:B,prefix:Z,type:G}=HX.default.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call(B,0),network:Z==="bitcoincash"?"mainnet":"testnet",type:G==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function VB(X){let B=K.legacy[X.network][X.type],Z=Buffer.alloc(1+X.hash.length);return Z[0]=B,Z.set(X.hash,1),MX.default.encode(Z)}function wB(X){let B=X.network==="mainnet"?"bitcoincash":"bchtest",Z=X.type==="p2pkh"?"P2PKH":"P2SH",G=new Uint8Array(X.hash);return HX.default.encode(B,Z,G)}var _X,MX,HX,vX,K;var tX=N(()=>{_X=require("@swapkit/helpers"),MX=g(require("bs58check")),HX=g(require("cashaddrjs"));((Z)=>{Z.Mainnet="mainnet";Z.Testnet="testnet"})(vX||={});K={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function F(X){let B=Buffer.from(X,"utf8");return jX.script.compile([jX.opcodes.OP_RETURN,B])}var eX,jX,KB=1000,qX=10,XB=10,SB=41,bB=107,WX,QX,$X,s=(X)=>{if(X.startsWith("bc1")||X.startsWith("tb1")||X.startsWith("ltc1")||X.startsWith("tltc1"))return"P2WPKH";if(X.startsWith("1")||X.startsWith("m")||X.startsWith("n")||X.startsWith("bitcoincash:q")||X.startsWith("bitcoincash:p")||X.startsWith("q")||X.startsWith("p")||X.startsWith("L")||X.startsWith("M")||X.startsWith("3")||X.startsWith("D")||X.startsWith("A")||X.startsWith("9")||X.startsWith("X")||X.startsWith("7")||X.startsWith("y")||X.startsWith("t1")||X.startsWith("t3")||X.startsWith("tm"))return"P2PKH";throw new eX.SwapKitError("toolbox_utxo_invalid_address",{address:X})},h=({inputs:X,outputs:B,feeRate:Z})=>{let G=X[0]&&"address"in X[0]&&X[0].address?s(X[0].address):"P2PKH",$=X.filter((J)=>J.value>=QX["type"in J?J.type:"P2PKH"]*Math.ceil(Z)).reduce((J,j)=>J+P(j),0),Q=B?.reduce((J,j)=>J+a(j),0)||$X[G];return qX+$+Q},P=(X)=>{if("type"in X)return QX[X.type];if("address"in X&&X.address)return QX[s(X.address)];return SB+bB},a=(X,B)=>{if(X?.script)return XB+X.script.length+(X.script.length>=74?2:1);if(B)return $X[B];return $X.P2PKH};var yX=N(()=>{eX=require("@swapkit/helpers"),jX=require("bitcoinjs-lib");((Z)=>{Z.P2PKH="P2PKH";Z.P2WPKH="P2WPKH"})(WX||={});QX={["P2PKH"]:148,["P2WPKH"]:68},$X={["P2PKH"]:34,["P2WPKH"]:31}});function LX(X){switch(X){case E.Chain.Bitcoin:case E.Chain.BitcoinCash:return 550;case E.Chain.Dash:case E.Chain.Litecoin:return 5500;case E.Chain.Dogecoin:return 1e5;case E.Chain.Zcash:return 546;default:throw new E.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}function k({inputs:X,outputs:B,feeRate:Z=1,chain:G=E.Chain.Bitcoin,changeAddress:$=""}){let Q=Math.ceil(Z),J=X[0]&&"address"in X[0]&&X[0].address?s(X[0].address):"P2PKH",j=X.filter((D)=>P(D)*Q<=D.value),q=qX+B.reduce((D,C)=>D+a(C,J),0),W=B.reduce((D,C)=>D+C.value,0),Y=q*Q,T=0,z=[];for(let D of j){let C=P(D),H=Q*C;Y+=H,T+=D.value,z.push(D);let M=Y+W;if(T<M)continue;let u=T-M,w=Q*a({address:"",value:0},J);if(u>w){let SX=w+Y,bX=T-(W+SX);if(bX>Math.max(P({})*Q,LX(G)))return{fee:SX,inputs:z,outputs:B.concat({address:$,value:bX})}}return{fee:Y,inputs:z,outputs:B}}return{fee:Q*h({feeRate:Q,inputs:X,outputs:B})}}var E;var BB=N(()=>{yX();E=require("@swapkit/helpers")});var c=N(()=>{sX();tX();BB();yX()});function S(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function V(X){let B=S(X);return NX(B)&&OX(B)==="mainnet"}function p(X){try{if(X.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let B=YX.networks.zcash;try{return YX.address.toOutputScript(X,B),!0}catch{let Z=ZB.default.decode(X);if(Z.length<21)return!1;let G=Z[0];return G===B.pubKeyHash||G===B.scriptHash}}catch{return!1}}var YX,ZB;var t=N(()=>{c();YX=require("@bitgo/utxo-lib"),ZB=g(require("bs58check"))});function QB({inputs:X,outputs:B,chain:Z,psbt:G,sender:$,compiledMemo:Q}){for(let J of X){let j=!!J.witnessUtxo&&!e.includes(Z)&&{witnessUtxo:J.witnessUtxo},q=e.includes(Z)&&{nonWitnessUtxo:J.txHex?Buffer.from(J.txHex,"hex"):void 0};G.addInput({hash:J.hash,index:J.index,...j,...q})}for(let J of B){let j="address"in J&&J.address?J.address:$,q=J.script;if(q&&!Q)continue;let W=q?{script:Q,value:0}:{address:j,value:J.value};f.initEccLib(TX.default),G.addOutput(W)}return{inputs:X,psbt:G}}async function $B({assetValue:X,recipient:B,memo:Z,feeRate:G,sender:$,fetchTxHex:Q=!1}){let J=X.chain,j=Z?await F(Z):null,q=await WB({assetValue:X,fetchTxHex:Q,memo:Z,recipient:B,sender:$}),{inputs:W,outputs:Y}=k({...q,chain:J,feeRate:G});if(!(W&&Y))throw new L.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:$});let T=await A(),z=new f.Psbt({network:T(J)});if(J===L.Chain.Dogecoin)z.setMaximumFeeRate(650000000);let{psbt:D,inputs:C}=await QB({chain:J,compiledMemo:j,inputs:W,outputs:Y,psbt:z,sender:$});return{inputs:C,psbt:D,utxos:q.inputs}}async function jB(){let X=await A();return function({address:Z,chain:G}){if(G===L.Chain.BitcoinCash)return V(Z);if(G===L.Chain.Zcash)return p(Z);try{return f.initEccLib(TX.default),f.address.toOutputScript(Z,X(G)),!0}catch{return!1}}}async function xB({chain:X,phrase:B,derivationPath:Z}){let G=(await XX(X))({derivationPath:Z,phrase:B});async function $(J){return await J.signAllInputs(G),J}function Q(){return FX(X)(G)}return{getAddress:Q,signTransaction:$}}async function b({chain:X,...B}){let Z="phrase"in B?B.phrase:void 0,G="index"in B?B.index||0:0,$=L.derivationPathToString("derivationPath"in B&&B.derivationPath?B.derivationPath:L.updateDerivationPath(L.NetworkDerivationPath[X],{index:G})),Q=Z?await xB({chain:X,derivationPath:$,phrase:Z}):("signer"in B)?B.signer:void 0;function J(){return Promise.resolve(Q?.getAddress())}let j=await jB(),q=await XX(X);return{accumulative:k,broadcastTx:(W)=>v(X).broadcastTx(W),calculateTxSize:h,createKeysForPath:q,createTransaction:$B,estimateMaxSendableAmount:gB(X),estimateTransactionFee:mB(X),getAddress:J,getAddressFromKeys:FX(X),getBalance:cX(X),getFeeRates:()=>BX(X),getInputsOutputsFee:qB,getPrivateKeyFromMnemonic:(W)=>{return q(W).toWIF()},transfer:lB(Q),validateAddress:(W)=>j({address:W,chain:X})}}async function qB({assetValue:X,feeOptionKey:B=L.FeeOption.Fast,feeRate:Z,memo:G,sender:$,recipient:Q}){let J=X.chain,j=await WB({assetValue:X,memo:G,recipient:Q,sender:$}),q=Z?Math.floor(Z):(await BX(J))[B];return k({...j,chain:J,feeRate:q})}function gB(X){return async function({from:Z,memo:G,feeRate:$,feeOptionKey:Q=L.FeeOption.Fast,recipients:J=1}){let j=await v(X).getAddressData(Z),q=$?Math.ceil($):(await BX(X))[Q],W=j?.utxo.map((C)=>({...C,hash:"",type:"P2PKH"})).filter((C)=>C.value>Math.max(LX(X),P(C)*q));if(!W?.length)return L.AssetValue.from({chain:X});let Y=L.AssetValue.from({chain:X,value:W.reduce((C,H)=>C+H.value,0)}),T=typeof J==="number"?Array.from({length:J},()=>({address:Z,value:0})):J;if(G){let C=await F(G);T.push({address:Z,script:C,value:0})}let D=h({feeRate:q,inputs:W,outputs:T})*q;return Y.sub(D)}}function mB(X){return async(B)=>{let Z=await qB(B);return L.AssetValue.from({chain:X,value:L.SwapKitNumber.fromBigInt(BigInt(Z.fee),8).getValue("string")})}}async function XX(X){let B=await A();switch(X){case L.Chain.BitcoinCash:return function({phrase:G,derivationPath:$=`${L.DerivationPath.BCH}/0`,wif:Q}){let J=B(X);if(Q)return DX.ECPair.fromWIF(Q,J);if(!G)throw new L.SwapKitError("toolbox_utxo_invalid_params",{error:"No phrase provided"});return DX.HDNode.fromSeedBuffer(Buffer.from(AX.mnemonicToSeedSync(G)),J).derivePath($).keyPair};case L.Chain.Bitcoin:case L.Chain.Dogecoin:case L.Chain.Litecoin:case L.Chain.Zcash:case L.Chain.Dash:return function({phrase:G,wif:$,derivationPath:Q}){if(!($||G))throw new L.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let J=JB.ECPairFactory(TX.default),j=B(X);if($)return J.fromWIF($,j);let q=AX.mnemonicToSeedSync(G),W=GB.HDKey.fromMasterSeed(q,j).derive(Q);if(!W.privateKey)throw new L.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return J.fromPrivateKey(Buffer.from(W.privateKey),{network:j})};default:throw new L.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}function FX(X){let B=A();return function(G){if(!G)throw new L.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let $=e.includes(X)?f.payments.p2pkh:f.payments.p2wpkh,{address:Q}=$({network:B(X),pubkey:G.publicKey});if(!Q)throw new L.SwapKitError("toolbox_utxo_invalid_address",{error:"Address not defined"});return Q}}function lB(X){return async function({memo:Z,recipient:G,feeOptionKey:$,feeRate:Q,assetValue:J}){let j=await X?.getAddress(),q=J.chain;if(!(X&&j))throw new L.SwapKitError("toolbox_utxo_no_signer");if(!G)throw new L.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let W=Q||(await BX(q))[$||L.FeeOption.Fast],{psbt:Y}=await $B({assetValue:J,feeRate:W,memo:Z,recipient:G,sender:j}),T=await X.signTransaction(Y);return T.finalizeAllInputs(),v(q).broadcastTx(T.extractTransaction().toHex())}}async function BX(X){let B=await v(X).getSuggestedTxFee();return{[L.FeeOption.Average]:B,[L.FeeOption.Fast]:L.applyFeeMultiplier(B,L.FeeOption.Fast),[L.FeeOption.Fastest]:L.applyFeeMultiplier(B,L.FeeOption.Fastest)}}async function WB({assetValue:X,recipient:B,memo:Z,sender:G,fetchTxHex:$=!1}){let Q=X.chain,J=(await BX(Q))[L.FeeOption.Fastest],j=$||e.includes(Q),q=X.getBaseValue("number"),W=Math.ceil(q+J*5000);return{inputs:await v(Q).getUtxos({address:G,fetchTxHex:j,targetValue:W}),outputs:[{address:B,value:q},...Z?[{address:"",script:await F(Z),value:0}]:[]]}}var TX,DX,GB,AX,L,f,JB,e;var ZX=N(()=>{CX();c();t();TX=g(require("@bitcoinerlab/secp256k1")),DX=require("@psf/bitcoincashjs-lib"),GB=require("@scure/bip32"),AX=require("@scure/bip39"),L=require("@swapkit/helpers"),f=require("bitcoinjs-lib"),JB=require("ecpair"),e=[L.Chain.Dash,L.Chain.Dogecoin,L.Chain.Zcash,L.Chain.BitcoinCash]});function x(X){return S(i(X))}function hB(X){function B({builder:G,utxos:$}){return $.forEach((Q,J)=>{G.sign(J,X,void 0,65,Q.witnessUtxo?.value)}),G.build()}return{getAddress:()=>{let G=X.getAddress(0);return Promise.resolve(x(G))},signTransaction:B}}async function EX(X){let B="phrase"in X?X.phrase:void 0,Z="index"in X?X.index||0:0,G=_.derivationPathToString("derivationPath"in X&&X.derivationPath?X.derivationPath:_.updateDerivationPath(_.NetworkDerivationPath[O],{index:Z})),$=B?(await XX(O))({derivationPath:G,phrase:B}):void 0,Q=$?hB($):("signer"in X)?X.signer:void 0;function J(){return Promise.resolve(Q?.getAddress())}let{getBalance:j,getFeeRates:q,broadcastTx:W,...Y}=await b({chain:O});function T(z,D=!0){return j(S(i(z)))}return{...Y,broadcastTx:W,buildTx:pB,createTransaction:YB,getAddress:J,getAddressFromKeys:oB,getBalance:T,getFeeRates:q,stripPrefix:S,stripToCashAddress:x,transfer:cB({broadcastTx:W,getFeeRates:q,signer:Q}),validateAddress:V}}async function YB({assetValue:X,recipient:B,memo:Z,feeRate:G,sender:$}){if(!V(B))throw new _.SwapKitError("toolbox_utxo_invalid_address",{address:B});let Q=Math.ceil(X.getBaseValue("number")+G*7500),J=await v(O).getUtxos({address:x($),fetchTxHex:!0,targetValue:Q}),j=Z?await F(Z):null,q=[];q.push({address:B,value:X.getBaseValue("number")});let{inputs:W,outputs:Y}=k({chain:O,feeRate:G,inputs:J,outputs:q});if(!(W&&Y))throw new _.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:$});let T=await A(),z=new o.TransactionBuilder(T(O));await Promise.all(W.map(async(D)=>{let C=await v(O).getRawTx(D.hash);z.addInput(o.Transaction.fromBuffer(Buffer.from(C,"hex")),D.index)}));for(let D of Y){let C="address"in D&&D.address?D.address:l($),H=await A(),M=o.address.toOutputScript(l(C),H(O));z.addOutput(M,D.value)}if(j)z.addOutput(j,0);return{builder:z,utxos:W}}function cB({broadcastTx:X,getFeeRates:B,signer:Z}){return async function({recipient:$,assetValue:Q,feeOptionKey:J=_.FeeOption.Fast,...j}){let q=await Z?.getAddress();if(!(Z&&q))throw new _.SwapKitError("toolbox_utxo_no_signer");if(!$)throw new _.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let W=j.feeRate||(await B())[J],{builder:Y,utxos:T}=await YB({...j,assetValue:Q,feeRate:W,recipient:$,sender:q}),D=(await Z.signTransaction({builder:Y,utxos:T})).toHex();return X(D)}}async function pB({assetValue:X,recipient:B,memo:Z,feeRate:G,sender:$,setSigHashType:Q}){let J=i(B);if(!V(J))throw new _.SwapKitError("toolbox_utxo_invalid_address",{address:J});let j=Math.ceil(X.getBaseValue("number")+G*7500),q=await v(O).getUtxos({address:x($),fetchTxHex:!1,targetValue:j}),W=Number(G.toFixed(0)),Y=Z?await F(Z):null,T=[];if(T.push({address:l(B),value:X.getBaseValue("number")}),Y)T.push({script:Y,value:0});let{inputs:z,outputs:D}=k({chain:O,feeRate:W,inputs:q,outputs:T});if(!(z&&D))throw new _.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:$});let C=await A(),H=new LB.Psbt({network:C(O)});for(let{hash:M,index:u,witnessUtxo:w}of z)H.addInput({hash:M,index:u,sighashType:Q?65:void 0,witnessUtxo:w});for(let M of D){let u="address"in M&&M.address?M.address:l($),w=M.script?Y?{script:Y,value:0}:void 0:{address:u,value:M.value};if(w)H.addOutput(w)}return{inputs:z,psbt:H,utxos:q}}function oB(X){let B=X.getAddress(0);return x(B)}var o,_,LB,O;var UX=N(()=>{c();ZX();t();o=require("@psf/bitcoincashjs-lib"),_=require("@swapkit/helpers"),LB=require("bitcoinjs-lib"),O=_.Chain.BitcoinCash});function fX(){return y.networks.zcash}function UB(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
|
|
2
|
-
`,pubKeyHash:28,scriptHash:28,wif:128}}function nB({phrase:X,derivationPath:B}){let Z=PX.mnemonicToSeedSync(X),$=RX.HDKey.fromMasterSeed(Z).derive(B);if(!$.privateKey)throw new I.SwapKitError("toolbox_utxo_invalid_params");let Q=UB(),J=y.ECPair.fromPrivateKey(Buffer.from($.privateKey),{network:Q}),j=y.crypto.hash160(J.publicKey),{isStagenet:q}=I.SKConfig.get("envs"),W=q?Buffer.from([29,37]):Buffer.from([28,184]),Y=Buffer.concat([W,j]),T=DB.default.encode(Y);return{getAddress:()=>Promise.resolve(T),signTransaction:(z)=>{let D=z.signAllInputs(J);return Promise.resolve(D)}}}function uB({inputs:X,outputs:B,psbt:Z,sender:G,compiledMemo:$}){for(let Q of X){let J=!!Q.witnessUtxo&&{witnessUtxo:{...Q.witnessUtxo,value:BigInt(Q.value)}},j=!Q.witnessUtxo&&{nonWitnessUtxo:Q.txHex?Buffer.from(Q.txHex,"hex"):void 0};Z.addInput({hash:Q.hash,index:Q.index,...J,...j})}for(let Q of B){let J="address"in Q&&Q.address?Q.address:G,j=Q.script;if(j&&!$)continue;let q=j?{script:$,value:0n}:{script:y.address.toOutputScript(J,fX()),value:BigInt(Q.value)};Z.addOutput(q)}return{inputs:X,psbt:Z}}async function TB(X){let{assetValue:B,recipient:Z,memo:G,feeRate:$,sender:Q,fetchTxHex:J}=X,j=G?F(G):null,q=await v(I.Chain.Zcash).getUtxos({address:Q,fetchTxHex:J!==!1}),W=[{address:Z,value:Number(B.getBaseValue("string"))},...j?[{script:j,value:0}]:[]],{inputs:Y,outputs:T}=k({chain:I.Chain.Zcash,changeAddress:Q,feeRate:$,inputs:q,outputs:W});if(!(Y&&T))throw new I.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:B,sender:Q});let z=y.bitgo.createPsbtForNetwork({network:fX()},{version:kX.ZcashTransaction.VERSION4_BRANCH_NU6_1}),{psbt:D,inputs:C}=await uB({compiledMemo:j,inputs:Y,outputs:T,psbt:z,sender:Q});return D.setDefaultsForVersion(fX(),kX.ZcashTransaction.VERSION4_BRANCH_NU6_1),{inputs:C,outputs:T,psbt:D}}async function VX(X){let B=await n.match(X).with({signer:n.P.not(n.P.nullish)},({signer:J})=>Promise.resolve(J)).with({phrase:n.P.string},({phrase:J,derivationPath:j,index:q=0})=>{let W=j||I.NetworkDerivationPath[I.Chain.Zcash]||[44,133,0,0,0],Y=I.updateDerivationPath(W,{index:q}),T=I.derivationPathToString(Y);return nB({derivationPath:T,phrase:J})}).otherwise(()=>Promise.resolve(void 0)),Z=await b({chain:I.Chain.Zcash,signer:B});async function G({recipient:J,assetValue:j,feeOptionKey:q=I.FeeOption.Fast,...W}){let Y=await B?.getAddress();if(!(B&&Y))throw new I.SwapKitError("toolbox_utxo_no_signer");let T=W.feeRate||(await Z.getFeeRates())[q],{psbt:z}=await TB({...W,assetValue:j,feeRate:T,recipient:J,sender:Y}),D=await B.signTransaction(z);D.validateSignaturesOfAllInputs(),D.finalizeAllInputs();let H=D.extractTransaction().toHex();return Z.broadcastTx(H)}function $({phrase:J,derivationPath:j="m/44'/133'/0'/0/0"}){let q=PX.mnemonicToSeedSync(J),Y=RX.HDKey.fromMasterSeed(q).derive(j);if(!Y.privateKey)throw new I.SwapKitError("toolbox_utxo_invalid_params");let T=UB();return y.ECPair.fromPrivateKey(Buffer.from(Y.privateKey),{network:T})}function Q({phrase:J,derivationPath:j="m/44'/133'/0'/0/0"}){return $({derivationPath:j,phrase:J}).toWIF()}return{...Z,createKeysForPath:$,createTransaction:TB,getPrivateKeyFromMnemonic:Q,transfer:G,validateAddress:p}}var y,kX,RX,PX,I,DB,n;var wX=N(()=>{c();ZX();t();y=require("@bitgo/utxo-lib"),kX=require("@bitgo/utxo-lib/dist/src/bitgo"),RX=require("@scure/bip32"),PX=require("@scure/bip39"),I=require("@swapkit/helpers"),DB=g(require("bs58check")),n=require("ts-pattern")});async function rB(X,B){switch(X){case R.Chain.BitcoinCash:return await EX(B||{});case R.Chain.Zcash:return await VX(B);case R.Chain.Bitcoin:case R.Chain.Dogecoin:case R.Chain.Litecoin:case R.Chain.Dash:return await b({chain:X,...B});default:throw new R.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}var R;var zB=N(()=>{UX();ZX();wX();UX();t();R=require("@swapkit/helpers")});var dB={};HB(dB,{validateZcashAddress:()=>p,toLegacyAddress:()=>l,toCashAddress:()=>i,stripToCashAddress:()=>x,stripPrefix:()=>S,nonSegwitChains:()=>e,isValidAddress:()=>NX,getUtxoToolbox:()=>rB,getUtxoNetwork:()=>A,getUtxoApi:()=>v,getUTXOAddressValidator:()=>jB,getScriptTypeForAddress:()=>s,getOutputSize:()=>a,getInputSize:()=>P,getDustThreshold:()=>LX,getCreateKeysForPath:()=>XX,detectAddressNetwork:()=>OX,createZcashToolbox:()=>VX,createUTXOToolbox:()=>b,createCustomUtxoApi:()=>fB,createBCHToolbox:()=>EX,compileMemo:()=>F,calculateTxSize:()=>h,bchValidateAddress:()=>V,addressFromKeysGetter:()=>FX,addInputsAndOutputs:()=>QB,accumulative:()=>k,UtxoNetwork:()=>vX,UTXOScriptType:()=>WX,TX_OVERHEAD:()=>qX,OutputSizes:()=>$X,OP_RETURN_OVERHEAD:()=>XB,MIN_TX_FEE:()=>KB,InputSizes:()=>QX});module.exports=MB(dB);var iB=N(()=>{c();zB();UX();ZX();wX()});iB();
|
|
3
|
-
|
|
4
|
-
//# debugId=B6E9FB8356387C7E64756E2164756E21
|
|
5
|
-
//# sourceMappingURL=index.cjs.map
|
|
1
|
+
var c2=Object.create;var{getPrototypeOf:u2,defineProperty:WX,getOwnPropertyNames:q2,getOwnPropertyDescriptor:o2}=Object,L2=Object.prototype.hasOwnProperty;function z2(X){return this[X]}var p2,n2,m0=(X,$,J)=>{var Z=X!=null&&typeof X==="object";if(Z){var j=$?p2??=new WeakMap:n2??=new WeakMap,G=j.get(X);if(G)return G}J=X!=null?c2(u2(X)):{};let Q=$||!X||!X.__esModule?WX(J,"default",{value:X,enumerable:!0}):J;for(let q of q2(X))if(!L2.call(Q,q))WX(Q,q,{get:z2.bind(X,q),enumerable:!0});if(Z)j.set(X,Q);return Q},d2=(X)=>{var $=(Y2??=new WeakMap).get(X),J;if($)return $;if($=WX({},"__esModule",{value:!0}),X&&typeof X==="object"||typeof X==="function"){for(var Z of q2(X))if(!L2.call($,Z))WX($,Z,{get:z2.bind(X,Z),enumerable:!(J=o2(X,Z))||J.enumerable})}return Y2.set(X,$),$},Y2;var r2=(X)=>X;function i2(X,$){this[X]=r2.bind(null,$)}var s2=(X,$)=>{for(var J in $)WX(X,J,{get:$[J],enumerable:!0,configurable:!0,set:i2.bind($,J)})};var R=(X,$)=>()=>(X&&($=X(X=0)),$);function W2({deriveAddress:X,getBalance:$,getUtxos:J}){async function Z(q){let{count:Y,startIndex:z=0,change:L=!1}=q,W=[];for(let B=0;B<Y;B++){let _=await X({change:L,index:z+B});if(_)W.push(_)}return W}async function j(q){let{gapLimit:Y=20,change:z=!1}=q??{},L=[],W=0,B=0;while(W<Y){let _=await X({change:z,index:B});if(!_)break;if((await $(_.address)).some((P)=>P.getValue("number")>0))L.push(_),W=0;else W++;B++}return L}async function G(q=20){let[Y,z]=await Promise.all([j({change:!1,gapLimit:q}),j({change:!0,gapLimit:q})]),L=[...Y,...z],W=await Promise.all(L.map(async(_)=>{let I=(await $(_.address)).reduce((P,a)=>P+a.getValue("number"),0);return{..._,balance:I}})),B=W.reduce((_,C)=>_+C.balance,0);return{addresses:W,total:B}}async function Q(q=20){let[Y,z]=await Promise.all([j({change:!1,gapLimit:q}),j({change:!0,gapLimit:q})]),L=[...Y,...z];return(await Promise.all(L.map(async(B)=>{return(await J(B.address)).map((C)=>({...C,address:B.address,derivationIndex:B.index,isChange:B.change}))}))).flat()}return{deriveAddresses:Z,getAggregatedBalance:G,getAggregatedUtxos:Q,scanForAddresses:j}}function B2(){function X(){let $=Date.now(),J=cX||$;return cX=J,$>cX?$:J+1}return a2+X().toString(36)}function _2(X){return async function(J,Z=!0){let j=await U2.SwapKitApi.getChainBalance({address:J,chain:X,scamFilter:Z}),{baseDecimal:G}=BX.getChainConfig(X),Q=j.map(({identifier:Y,value:z,decimal:L})=>{return new BX.AssetValue({decimal:L||G,identifier:Y,value:z})});if(!Q.some((Y)=>Y.isGasAsset))return[BX.AssetValue.from({chain:X}),...Q];return Q}}var BX,U2,a2,cX=0;var uX=R(()=>{BX=require("@swapkit/helpers"),U2=require("@swapkit/helpers/api"),a2=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function t2({chain:X,txHash:$}){let J=`${_X(X)}/push/transaction`,Z=JSON.stringify({data:$});try{let j=await N.RequestClient.post(J,{body:Z,headers:{"Content-Type":"application/json"}});if(j.context.code!==200)throw new N.SwapKitError("toolbox_utxo_broadcast_failed",{error:j.context.error||"Transaction broadcast failed"});return j.data?.transaction_hash||$}catch(j){let G=await N.getRPCUrl(X);if(G){let Q=JSON.stringify({id:B2(),jsonrpc:"2.0",method:"sendrawtransaction",params:[$]}),q=await N.RequestClient.post(G,{body:Q,headers:{"Content-Type":"application/json"}});if(q.error)throw new N.SwapKitError("toolbox_utxo_broadcast_failed",{error:q.error?.message});if(q.result.includes('"code":-26'))throw new N.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return q.result}throw j}}function _X(X){return`https://api.blockchair.com/${e2(X)}`}function M2(X){switch(X){case N.Chain.Bitcoin:return 5;case N.Chain.Dogecoin:return 1e4;case N.Chain.Litecoin:return 1;case N.Chain.Zcash:return 1;default:return 2}}function e2(X){switch(X){case N.Chain.BitcoinCash:return"bitcoin-cash";case N.Chain.Litecoin:return"litecoin";case N.Chain.Dash:return"dash";case N.Chain.Dogecoin:return"dogecoin";case N.Chain.Zcash:return"zcash";case N.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function X0(X){try{let{feePerKb:$}=await N.RequestClient.get(`https://app.bitgo.com/api/v2/${X.toLowerCase()}/tx/fee`),J=$/1000;return Math.max(J,M2(X))}catch{return M2(X)}}async function FX(X,$){let J=await N.RequestClient.get(`${X}${$?`${X.includes("?")?"&":"?"}key=${$}`:""}`);if(!J||J.context.code!==200)throw new N.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${X}`});return J.data}async function D2({address:X,chain:$,apiKey:J}){if(!X)throw new N.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await FX(`${_X($)}/dashboards/address/${X}?transaction_details=true`,J))[X]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function $0({address:X,chain:$,apiKey:J}){return(await D2({address:X,apiKey:J,chain:$}))?.address.balance||0}async function C2({chain:X,apiKey:$,txHash:J}){if(!J)throw new N.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await FX(`${_X(X)}/raw/transaction/${J}`,$))?.[J]?.raw_transaction||""}catch(Z){let j=Z instanceof Error?Z.message:String(Z);return console.error(`Failed to fetch raw transaction: ${j}`),""}}async function Z0({chain:X,apiKey:$,txHash:J}){if(!J)throw new N.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let j=(await FX(`${_X(X)}/dashboards/transaction/${J}`,$))?.[J];if(!j)throw new N.SwapKitError("toolbox_utxo_tx_not_found",{txHash:J});let{transaction:G,inputs:Q,outputs:q}=j,Y=Q.map((L)=>L.spending_sequence),z=G.is_rbf===!0||Y.some((L)=>L<J0);return{blockId:G.block_id,confirmed:G.block_id!==-1,fee:G.fee,inputs:Q,isRBF:z,outputs:q,sequences:Y,size:G.size,txid:G.hash,weight:G.weight}}async function j0({chain:X,address:$,apiKey:J,offset:Z=0,limit:j=30}){return(await FX(`${_X(X)}/outputs?q=recipient(${$}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${j}&offset=${Z}`,J)).map(({is_spent:Y,script_hex:z,block_id:L,transaction_hash:W,index:B,value:_,spending_signature_hex:C})=>({hash:W,index:B,is_confirmed:L!==-1,is_spent:Y,script_hex:z,txHex:C,value:_}))}function Q0(X){return X.reduce(($,J)=>$+J.value,0)}function N2(X,$){let J=[...X].sort((Z,j)=>j.value-Z.value);if($){let Z=[],j=0;for(let G of J)if(Z.push(G),j+=G.value,j>=$)break;return Z}return J}async function H2({chain:X,address:$,apiKey:J,targetValue:Z,accumulativeValue:j=0,offset:G=0,limit:Q=30}){if(!$)throw new N.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let q=await j0({address:$,apiKey:J,chain:X,limit:Q,offset:G,targetValue:Z}),z=q.length<Q,L=q.filter(({is_spent:P})=>!P),W=Q0(L),B=j+W,_=Z&&B>=Z;if(z||_)return N2(L,Z);let C=await H2({accumulativeValue:B,address:$,apiKey:J,chain:X,limit:Q,offset:G+Q,targetValue:Z}),I=[...L,...C];return N2(I,Z)}catch(q){let Y=q instanceof Error?q.message:String(q);return console.error(`Failed to fetch unspent UTXOs: ${Y}`),[]}}async function G0({address:X,chain:$,apiKey:J,fetchTxHex:Z=!0,targetValue:j}){let G=await H2({address:X,apiKey:J,chain:$,targetValue:j}),Q=[];for(let{hash:q,index:Y,script_hex:z,value:L}of G){let W;if(Z)W=await C2({apiKey:J,chain:$,txHash:q});Q.push({address:X,hash:q,index:Y,txHex:W,value:L,witnessUtxo:{script:Buffer.from(z,"hex"),value:L}})}return Q}function f(X){let $=N.SKConfig.get("apiKeys").blockchair||"";return N.warnOnce({condition:!$,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(J)=>t2({chain:X,txHash:J}),getAddressData:(J)=>D2({address:J,apiKey:$,chain:X}),getBalance:(J)=>$0({address:J,apiKey:$,chain:X}),getRawTx:(J)=>C2({apiKey:$,chain:X,txHash:J}),getSuggestedTxFee:()=>X0(X),getTransactionDetails:(J)=>Z0({apiKey:$,chain:X,txHash:J}),getUtxos:(J)=>G0({...J,apiKey:$,chain:X})}}function Y0(X){return X}function q0(){return function($){switch($){case N.Chain.Bitcoin:return t.NETWORKS.bitcoin;case N.Chain.BitcoinCash:return t.NETWORKS.bitcoinCash;case N.Chain.Dash:return t.NETWORKS.dash;case N.Chain.Litecoin:return t.NETWORKS.litecoin;case N.Chain.Dogecoin:return t.NETWORKS.dogecoin;case N.Chain.Zcash:return t.NETWORKS.zcash;default:throw new N.SwapKitError("toolbox_utxo_not_supported",{chain:$})}}}var N,t,J0=4294967294;var I2=R(()=>{uX();N=require("@swapkit/helpers"),t=require("@swapkit/utxo-signer")});function W0(X,$,J){return l.encodeCashAddr({hash:J,prefix:X,type:L0[$]})}function U0(X){let $=l.decodeCashAddr(X),J=z0[$.type];if(!J)throw Error(`Unknown CashAddr type: ${$.type}`);return{hash:$.hash,prefix:$.prefix,type:J}}var l,L0,z0,oX;var O2=R(()=>{l=require("@swapkit/utxo-signer"),L0={P2PKH:l.CashAddrType.P2PKH,P2SH:l.CashAddrType.P2SH},z0={[l.CashAddrType.P2PKH]:"P2PKH",[l.CashAddrType.P2SH]:"P2SH"};oX={decode:U0,encode:W0}});function dX(X){try{return fX(X),!0}catch{return!1}}function rX(X){return fX(X)?.network}function h(X){let $=fX(X);if($?.format==="legacy")return X;return M0($)}function MX(X){let $=fX(X);return N0($)}function fX(X){try{let $=B0(X);if($)return $}catch{}try{let $=_0(X);if($)return $}catch{}throw new pX.SwapKitError("toolbox_utxo_invalid_address",{address:X})}function B0(X){try{let $=P2.decode(X);if($.length!==21)throw new pX.SwapKitError("toolbox_utxo_invalid_address",{address:X});let J=$[0],Z=Array.prototype.slice.call($,1);switch(J){case e.legacy.mainnet.p2pkh:return{format:"legacy",hash:Z,network:"mainnet",type:"p2pkh"};case e.legacy.mainnet.p2sh:return{format:"legacy",hash:Z,network:"mainnet",type:"p2sh"};case e.legacy.testnet.p2pkh:return{format:"legacy",hash:Z,network:"testnet",type:"p2pkh"};case e.legacy.testnet.p2sh:return{format:"legacy",hash:Z,network:"testnet",type:"p2sh"};case e.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:Z,network:"mainnet",type:"p2pkh"};case e.bitpay.mainnet.p2sh:return{format:"bitpay",hash:Z,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function _0(X){if(X.indexOf(":")!==-1)try{return T2(X)}catch{}else{let $=["bitcoincash","bchtest","bchreg"];for(let J of $)try{return T2(`${J}:${X}`)}catch{}}return}function T2(X){try{let{hash:$,prefix:J,type:Z}=oX.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call($,0),network:J==="bitcoincash"?"mainnet":"testnet",type:Z==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function M0(X){let $=e.legacy[X.network][X.type],J=Buffer.alloc(1+X.hash.length);return J[0]=$,J.set(X.hash,1),P2.encode(J)}function N0(X){let $=X.network==="mainnet"?"bitcoincash":"bchtest",J=X.type==="p2pkh"?"P2PKH":"P2SH",Z=new Uint8Array(X.hash);return oX.encode($,J,Z)}var V2,k2,pX,P2,nX,e;var b2=R(()=>{O2();V2=require("@noble/hashes/sha2.js"),k2=require("@scure/base"),pX=require("@swapkit/helpers"),P2=k2.createBase58check(V2.sha256);((J)=>{J.Mainnet="mainnet";J.Testnet="testnet"})(nX||={});e={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function y(X){let $=new Uint8Array(Buffer.from(X,"utf8"));return F2.Script.encode(["RETURN",$])}var E2,F2,D0=1000,RX=10,yX=2,f2=10,C0=41,H0=107,wX,vX,NX,jX=(X)=>{if(X.startsWith("bc1")||X.startsWith("tb1")||X.startsWith("ltc1")||X.startsWith("tltc1"))return"P2WPKH";if(X.startsWith("1")||X.startsWith("m")||X.startsWith("n")||X.startsWith("bitcoincash:q")||X.startsWith("bitcoincash:p")||X.startsWith("q")||X.startsWith("p")||X.startsWith("L")||X.startsWith("M")||X.startsWith("3")||X.startsWith("D")||X.startsWith("A")||X.startsWith("9")||X.startsWith("X")||X.startsWith("7")||X.startsWith("y")||X.startsWith("t1")||X.startsWith("t3")||X.startsWith("tm"))return"P2PKH";throw new E2.SwapKitError("toolbox_utxo_invalid_address",{address:X})},XX=({inputs:X,outputs:$,feeRate:J})=>{let Z=X[0]&&"address"in X[0]&&X[0].address?jX(X[0].address):"P2PKH",G=(J?X.filter((z)=>z.value>=vX["type"in z&&z.type?z.type:"P2PKH"]*Math.ceil(J)):X).reduce((z,L)=>z+n(L),0),Q=$?.reduce((z,L)=>z+DX(L),0)||NX[Z],q=RX+G+Q;return Z==="P2WPKH"?Math.ceil(q+yX/4):q},n=(X)=>{if("type"in X&&X.type)return vX[X.type];if("address"in X&&X.address)return vX[jX(X.address)];return C0+H0},DX=(X,$)=>{if(X?.script)return f2+X.script.length+(X.script.length>=74?2:1);if($)return NX[$];if("address"in X&&X.address)return NX[jX(X.address)];return NX.P2PKH};var iX=R(()=>{E2=require("@swapkit/helpers"),F2=require("@swapkit/utxo-signer");((J)=>{J.P2PKH="P2PKH";J.P2WPKH="P2WPKH"})(wX||={});vX={["P2PKH"]:148,["P2WPKH"]:68},NX={["P2PKH"]:34,["P2WPKH"]:31}});function CX(X){switch(X){case g.Chain.Bitcoin:case g.Chain.BitcoinCash:return 550;case g.Chain.Dash:case g.Chain.Litecoin:return 5500;case g.Chain.Dogecoin:return 1e5;case g.Chain.Zcash:return 546;default:throw new g.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}function S({inputs:X,outputs:$,feeRate:J=1,chain:Z=g.Chain.Bitcoin,changeAddress:j=""}){let G=X[0]&&"address"in X[0]&&X[0].address?jX(X[0].address):"P2PKH",Q=X.filter((C)=>n(C)*J<=C.value),Y=G==="P2WPKH"?Math.ceil(yX/4):0,z=RX+Y+$.reduce((C,I)=>C+DX(I),0),L=$.reduce((C,I)=>C+I.value,0),W=z*J,B=0,_=[];for(let C of Q){let I=n(C),P=J*I;W+=P,B+=C.value,_.push(C);let a=W+L;if(B<a)continue;let xX=B-a,VX=J*DX({address:j,value:0});if(xX>VX){let M=VX+W,H=B-(L+Math.ceil(M));if(H>Math.max(n({value:0})*J,CX(Z)))return{fee:Math.ceil(M),inputs:_,outputs:$.concat({address:j,value:H})}}return{fee:Math.ceil(W),inputs:_,outputs:$}}return{fee:Math.ceil(J*XX({inputs:X,outputs:$}))}}var g;var v2=R(()=>{iX();g=require("@swapkit/helpers")});var QX=R(()=>{I2();b2();v2();iX()});function $X(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function d(X){let $=$X(X);return dX($)&&rX($)==="mainnet"}function GX(X){try{if(X.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let J=AX.Address(AX.ZCASH_NETWORK).decode(X);return J.type==="pkh"||J.type==="sh"}catch{return!1}}var AX;var HX=R(()=>{QX();AX=require("@swapkit/utxo-signer")});function tX({address:X,chain:$}){return aX.match($).with(U.Chain.BitcoinCash,()=>d(X)).with(U.Chain.Zcash,()=>GX(X)).otherwise(()=>{try{return D.Address(w($)).decode(X),!0}catch{return!1}})}function w(X){return aX.match(X).with(U.Chain.Bitcoin,()=>D.NETWORKS.bitcoin).with(U.Chain.BitcoinCash,()=>D.NETWORKS.bitcoinCash).with(U.Chain.Dash,()=>D.NETWORKS.dash).with(U.Chain.Dogecoin,()=>D.NETWORKS.dogecoin).with(U.Chain.Litecoin,()=>D.NETWORKS.litecoin).with(U.Chain.Zcash,()=>D.NETWORKS.zcash).exhaustive()}function I0({phrase:X,derivationPath:$,network:J,seed:Z}){let j=Z??KX.mnemonicToSeedSync(X),Q=sX.HDKey.fromMasterSeed(j,J.bip32).derive($);if(!Q.privateKey)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return Q.privateKey}function R2(X){return y2.secp256k1.getPublicKey(X,!0)}function eX({publicKey:X,chain:$,network:J}){if($===U.Chain.BitcoinCash){let G=D.p2pkh(X,J);if(!G.hash)throw new U.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return D.encodeCashAddr({hash:G.hash,prefix:D.CashAddrPrefix.MAINNET,type:D.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let j=!IX.includes($)?D.p2wpkh(X,J):D.p2pkh(X,J);if(!j.address)throw new U.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return j.address}function YX({phrase:X,derivationPath:$,chain:J,wif:Z,seed:j}){let G=w(J);if(Z){let z=D.WIF(G).decode(Z),L=R2(z);return{privateKey:z,publicKey:L}}if(!X)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let Q=$||U.derivationPathToString(U.NetworkDerivationPath[J]),q=I0({derivationPath:Q,network:G,phrase:X,seed:j}),Y=R2(q);return{privateKey:q,publicKey:Y}}function O0(X,$){return D.WIF(w($)).encode(X)}function T0({phrase:X,derivationPath:$,chain:J,seed:Z}){let j=$.split("/");if(j.length<4)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${j.length}): ${$}`});let G=w(J),Q=Z??KX.mnemonicToSeedSync(X),q=sX.HDKey.fromMasterSeed(Q,G.bip32),Y=j.slice(0,4).join("/");return q.derive(Y)}function i({inputs:X,outputs:$,chain:J,tx:Z,sender:j,compiledMemo:G,enableRBF:Q=!1}){let q=w(J),Y=!IX.includes(J),z=Q?D.RBF_SEQUENCE:void 0,L=new Set;for(let W of X){let B=`${W.hash}:${W.index}`;if(L.has(B))throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});L.add(B);let _=typeof W.hash==="string"?r.hex.decode(W.hash):W.hash;if(Y&&W.witnessUtxo)Z.addInput({index:W.index,sequence:z,txid:_,witnessUtxo:{amount:BigInt(W.witnessUtxo.value),script:W.witnessUtxo.script}});else if(W.txHex)Z.addInput({index:W.index,nonWitnessUtxo:r.hex.decode(W.txHex),sequence:z,txid:_,...J===U.Chain.BitcoinCash?{sighashType:D.BCHSigHash.ALL}:{}});else throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let W of $){let B="address"in W&&W.address?W.address:j;if(J===U.Chain.BitcoinCash)B=h(B);if(W.script){if(G)Z.addOutput({amount:0n,script:G})}else Z.addOutputAddress(B,BigInt(W.value),q)}return{inputs:X,tx:Z}}async function qX(X){let $=await f(X).getSuggestedTxFee();return{[U.FeeOption.Average]:$,[U.FeeOption.Fast]:U.applyFeeMultiplier($,U.FeeOption.Fast),[U.FeeOption.Fastest]:U.applyFeeMultiplier($,U.FeeOption.Fastest)}}async function w2({assetValue:X,recipient:$,memo:J,sender:Z,fetchTxHex:j=!1}){let G=X.chain,Q=(await qX(G))[U.FeeOption.Fastest],q=j||IX.includes(G),Y=X.getBaseValue("number"),z=Math.ceil(Y+Q*5000);return{inputs:await f(G).getUtxos({address:Z,fetchTxHex:q,targetValue:z}),outputs:[{address:$,value:Y},...J?[{address:"",script:y(J),value:0}]:[]]}}async function A2({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j,fetchTxHex:G=!1,enableRBF:Q=!1}){let q=X.chain,Y=J?y(J):null,z=await w2({assetValue:X,fetchTxHex:G,memo:J,recipient:$,sender:j}),{inputs:L,outputs:W}=S({...z,chain:q,feeRate:Z});if(!(L&&W))throw new U.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let B=new D.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),{inputs:_,tx:C}=i({chain:q,compiledMemo:Y,enableRBF:Q,inputs:L,outputs:W,sender:j,tx:B});return{inputs:_,tx:C,utxos:z.inputs}}async function S2({assetValue:X,feeOptionKey:$=U.FeeOption.Fast,feeRate:J,memo:Z,sender:j,recipient:G}){let Q=X.chain,q=await w2({assetValue:X,memo:Z,recipient:G,sender:j}),Y=J?Math.floor(J):(await qX(Q))[$];return S({...q,chain:Q,feeRate:Y})}function V0(X){return async function({from:J,memo:Z,feeRate:j,feeOptionKey:G=U.FeeOption.Fast,recipients:Q=1}){let q=await f(X).getAddressData(J),Y=j?Math.ceil(j):(await qX(X))[G],z=q?.utxo.map((I)=>({...I,hash:"",type:"P2PKH"})).filter((I)=>I.value>Math.max(CX(X),n(I)*Y));if(!z?.length)return U.AssetValue.from({chain:X});let L=BigInt(z.reduce((I,P)=>I+P.value,0)),W=U.AssetValue.from({chain:X,value:L}),B=typeof Q==="number"?Array.from({length:Q},()=>({address:J,value:0})):Q;if(Z)B.push({address:J,script:y(Z),value:0});let _=XX({inputs:z,outputs:B}),C=U.AssetValue.from({chain:X,value:BigInt(_*Y)});return W.sub(C)}}function k0(X){return async function(J){let{fee:Z}=await S2(J);return U.AssetValue.from({chain:X,value:U.SwapKitNumber.fromBigInt(BigInt(Z),8).getValue("string")})}}function P0({chain:X,phrase:$,derivationPath:J,seed:Z}){let j=w(X),{privateKey:G,publicKey:Q}=YX({chain:X,derivationPath:J,phrase:$,seed:Z}),q=X===U.Chain.BitcoinCash?[D.BCHSigHash.ALL]:[D.SigHash.ALL];return{getAddress:()=>eX({chain:X,network:j,publicKey:Q}),privateKey:G,publicKey:Q,signTransaction:(Y)=>{return Y.sign(G,q),Y}}}function b0(X,$){return async function({memo:Z,recipient:j,feeOptionKey:G,feeRate:Q,assetValue:q,enableRBF:Y=!1}){let z=$?.getAddress();if(!($&&z))throw new U.SwapKitError("toolbox_utxo_no_signer");if(!j)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});U.warnOnce({condition:Y&&!SX.includes(X),id:`rbf_not_supported_${X}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${X}. Transaction will be created without RBF signaling.`});let L=Y&&SX.includes(X),W=Q||(await qX(X))[G||U.FeeOption.Fast],{tx:B}=await A2({assetValue:q,enableRBF:L,feeRate:W,memo:Z,recipient:j,sender:z});return $.signTransaction(B),B.finalize(),f(X).broadcastTx(r.hex.encode(B.extract()))}}function X2(X){return($)=>tX({address:$,chain:X})}function $2(X){let $=w(X);return function(Z){if(!Z)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return eX({chain:X,network:$,publicKey:Z.publicKey})}}function s({chain:X,...$}){let J="phrase"in $?$.phrase:void 0,Z="index"in $?$.index||0:0,j=J?KX.mnemonicToSeedSync(J):void 0,G=U.derivationPathToString("derivationPath"in $&&$.derivationPath?$.derivationPath:U.updateDerivationPath(U.NetworkDerivationPath[X],{index:Z})),Q=J?P0({chain:X,derivationPath:G,phrase:J,seed:j}):void 0,q="signer"in $?$.signer:void 0,Y=J?YX({chain:X,derivationPath:G,phrase:J,seed:j}):void 0;function z(){if(Q)return Promise.resolve(Q.getAddress());if(q)return q.getAddress();return Promise.resolve(void 0)}let L=J?T0({chain:X,derivationPath:G,phrase:J,seed:j}):void 0;function W(){if(!L)return;return L.publicExtendedKey}function B({index:M,change:H=!1}){if(!L)return;if(!Number.isInteger(M)||M<0)throw RangeError(`index must be a non-negative integer, got: ${M}`);let b=w(X),k=L.deriveChild(Number(H)).deriveChild(M);if(!k.publicKey)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let O=eX({chain:X,network:b,publicKey:k.publicKey}),A=r.hex.encode(k.publicKey);return{address:O,change:H,index:M,pubkey:A}}async function _(M){if(!SX.includes(X))return{reason:`RBF is not supported on ${X}`,supported:!1};let H=await f(X).getTransactionDetails(M);return{canReplace:H.isRBF&&!H.confirmed,confirmed:H.confirmed,enabled:H.isRBF,fee:H.fee,sequences:H.sequences,supported:!0}}async function C({txid:M,newFeeRate:H,recipient:b,memo:k}){if(!SX.includes(X))throw new U.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:X});let O=await f(X).getTransactionDetails(M);if(!O.isRBF)throw new U.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:M});if(O.confirmed)throw new U.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:O.blockId,txid:M});let A=O.inputs.reduce((v,p)=>v+p.value,0),K=O.outputs.find((v)=>v.recipient===b)?.value||0;if(K===0)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let ZX=await Promise.all(O.inputs.map(async(v)=>{let p=await f(X).getRawTx(v.transaction_hash);return{hash:v.transaction_hash,index:v.index,txHex:p,value:v.value,witnessUtxo:void 0}})),kX=k?y(k):null,lX=XX({feeRate:H,inputs:ZX.map((v)=>({...v,type:"P2WPKH"})),outputs:[{address:b,value:K}]}),x=Math.ceil(lX*H);if(x<=O.fee)throw new U.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:x,originalFee:O.fee});let zX=x-O.fee,u=K-zX;if(u<=0)throw new U.SwapKitError("toolbox_utxo_rbf_insufficient_change");let PX=new D.Transaction({allowLegacyWitnessUtxo:!0,version:1}),bX=[{address:b,value:u},...k?[{address:"",script:y(k),value:0}]:[]],EX=A-u-x,o=await z();if(EX>CX(X)&&o)bX.push({address:o,value:EX});return i({chain:X,compiledMemo:kX,inputs:ZX,outputs:bX,sender:o||b,tx:PX}),{feeDelta:zX,newFee:x,originalFee:O.fee,tx:PX}}async function I({txid:M,newFeeRate:H,recipient:b,memo:k}){if(!Q)throw new U.SwapKitError("toolbox_utxo_no_signer");let{tx:O,originalFee:A,newFee:JX}=await C({memo:k,newFeeRate:H,recipient:b,txid:M});Q.signTransaction(O),O.finalize();let K=await f(X).broadcastTx(r.hex.encode(O.extract()));return{newFee:JX,originalFee:A,txid:K}}function P({index:M,change:H=!1}){if(!L)return;return L.deriveChild(Number(H)).deriveChild(M).privateKey||void 0}function a({tx:M,inputDerivations:H}){if(!L)throw new U.SwapKitError("toolbox_utxo_no_signer");let b=X===U.Chain.BitcoinCash?[D.BCHSigHash.ALL]:[D.SigHash.ALL];for(let k=0;k<H.length;k++){let O=H[k];if(!O)continue;let{derivationIndex:A,isChange:JX}=O,K=P({change:JX,index:A});if(!K)throw new U.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${k} at index ${A}`});M.signIdx(K,k,b)}return M}async function xX({utxos:M,recipient:H,assetValue:b,memo:k,feeRate:O,feeOptionKey:A,changeAddress:JX}){if(!L)throw new U.SwapKitError("toolbox_utxo_no_signer");let K=O||(await qX(X))[A||U.FeeOption.Fast],ZX=k?y(k):null,kX=[{address:H,value:b.getBaseValue("number")}];if(ZX)kX.push({address:"",script:ZX,value:0});let lX=M.map(({hash:o,index:v,value:p,txHex:h2,witnessUtxo:hX})=>({hash:o,index:v,txHex:h2,value:p,witnessUtxo:hX?{script:hX.script,value:hX.value}:void 0})),{inputs:x,outputs:zX}=S({chain:X,feeRate:K,inputs:lX,outputs:kX});if(!(x&&zX))throw new U.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:b,sender:"multiple addresses"});let u=new D.Transaction({allowLegacyWitnessUtxo:!0,version:1}),PX=M[0]?.address,bX=JX||await z()||PX||H;i({chain:X,compiledMemo:ZX,inputs:x,outputs:zX,sender:bX,tx:u});let EX=x.map((o)=>{let v=M.find((p)=>p.hash===o.hash&&p.index===o.index);return v?{derivationIndex:v.derivationIndex,isChange:v.isChange}:{derivationIndex:0,isChange:!1}});return a({inputDerivations:EX,tx:u}),u.finalize(),f(X).broadcastTx(r.hex.encode(u.extract()))}function VX({address:M,gapLimit:H=20}){if(!L)return;for(let b=0;b<H;b++){let k=B({change:!1,index:b}),O=B({change:!0,index:b}),A=k?.address===M?!1:O?.address===M;if(k?.address===M||O?.address===M)return{change:A,index:b}}return}return{accumulative:S,broadcastTx:(M)=>f(X).broadcastTx(M),bumpFee:I,calculateTxSize:XX,createKeysForPath:(M)=>YX({...M,chain:X}),createReplacementTransaction:C,createTransaction:A2,deriveAddressAtIndex:B,derivePrivateKeyAtIndex:P,estimateMaxSendableAmount:V0(X),estimateTransactionFee:k0(X),getAddress:z,getAddressFromKeys:$2(X),getBalance:_2(X),getExtendedPublicKey:W,getFeeRates:()=>qX(X),getInputsOutputsFee:S2,getNetworkForChain:()=>w(X),getPrivateKeyFromMnemonic:(M)=>O0(YX({...M,chain:X}).privateKey,X),isRBFEnabled:_,keys:Y,resolveDerivationIndex:VX,signAndBroadcastTransaction:async(M)=>{if(!Q)throw new U.SwapKitError("toolbox_utxo_no_signer");return Q.signTransaction(M),M.finalize(),await f(X).broadcastTx(r.hex.encode(M.extract()))},signTransactionWithMultipleKeys:a,transfer:b0(X,Q),transferFromMultipleAddresses:xX,validateAddress:X2(X)}}var y2,r,sX,KX,U,D,aX,IX,SX;var OX=R(()=>{uX();QX();HX();y2=require("@noble/curves/secp256k1.js"),r=require("@scure/base"),sX=require("@scure/bip32"),KX=require("@scure/bip39"),U=require("@swapkit/helpers"),D=require("@swapkit/utxo-signer"),aX=require("ts-pattern"),IX=[U.Chain.Dash,U.Chain.Dogecoin,U.Chain.Zcash,U.Chain.BitcoinCash],SX=[U.Chain.Bitcoin]});function TX(X){return $X(MX(X))}function E0(X){let $=w(m);function J(j){return j.sign(X.privateKey,[F.BCHSigHash.ALL]),j}function Z(){let j=F.p2pkh(X.publicKey,$);if(!j.hash)throw new E.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let G=F.encodeCashAddr({hash:j.hash,prefix:F.CashAddrPrefix.MAINNET,type:F.CashAddrType.P2PKH});return Promise.resolve(G.replace(/^bitcoincash:/,""))}return{getAddress:Z,signTransaction:J}}function J2(X){let $="phrase"in X?X.phrase:void 0,J="index"in X?X.index||0:0,Z=E.derivationPathToString("derivationPath"in X&&X.derivationPath?X.derivationPath:E.updateDerivationPath(E.NetworkDerivationPath[m],{index:J})),j=$?YX({chain:m,derivationPath:Z,phrase:$}):void 0,G=j?E0(j):("signer"in X)?X.signer:void 0;function Q(){return Promise.resolve(G?.getAddress())}let{getBalance:q,getFeeRates:Y,broadcastTx:z,...L}=s({chain:m});function W(B,_=!0){return q($X(MX(B)))}return{...L,broadcastTx:z,buildTx:f0,createTransaction:g2,getAddress:Q,getAddressFromKeys:v0,getBalance:W,getFeeRates:Y,stripPrefix:$X,stripToCashAddress:TX,transfer:F0({broadcastTx:z,getFeeRates:Y,signer:G}),validateAddress:d}}async function g2({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j}){if(!d($))throw new E.SwapKitError("toolbox_utxo_invalid_address",{address:$});let G=Math.ceil(X.getBaseValue("number")+Z*7500),Q=await f(m).getUtxos({address:TX(j),fetchTxHex:!0,targetValue:G}),q=J?y(J):null,Y=[],z=h($);if(Y.push({address:z,value:X.getBaseValue("number")}),q)Y.push({script:q,value:0});let{inputs:L,outputs:W}=S({chain:m,feeRate:Z,inputs:Q,outputs:Y});if(!(L&&W))throw new E.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let B=new F.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!q,version:1}),_=h(j),{inputs:C,tx:I}=i({chain:m,compiledMemo:q,inputs:L,outputs:W.map((P)=>("address"in P)&&P.address?{...P,address:h(P.address)}:P),sender:_,tx:B});return{inputs:C,tx:I,utxos:L}}function F0({broadcastTx:X,getFeeRates:$,signer:J}){return async function({recipient:j,assetValue:G,feeOptionKey:Q=E.FeeOption.Fast,...q}){let Y=await J?.getAddress();if(!(J&&Y))throw new E.SwapKitError("toolbox_utxo_no_signer");if(!j)throw new E.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let z=q.feeRate||(await $())[Q],{tx:L}=await g2({...q,assetValue:G,feeRate:z,recipient:j,sender:Y}),W=await J.signTransaction(L);return W.finalize(),X(K2.hex.encode(W.extract()))}}async function f0({assetValue:X,recipient:$,memo:J,feeRate:Z,sender:j}){let G=MX($);if(!d(G))throw new E.SwapKitError("toolbox_utxo_invalid_address",{address:G});let Q=Math.ceil(X.getBaseValue("number")+Z*7500),q=await f(m).getUtxos({address:TX(j),fetchTxHex:!0,targetValue:Q}),Y=Number(Z.toFixed(0)),z=J?y(J):null,L=[];if(L.push({address:h($),value:X.getBaseValue("number")}),z)L.push({script:z,value:0});let{inputs:W,outputs:B}=S({chain:m,feeRate:Y,inputs:q,outputs:L});if(!(W&&B))throw new E.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:j});let _=new F.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!z,version:1}),{inputs:C,tx:I}=i({chain:m,compiledMemo:z,inputs:W,outputs:B,sender:h(j),tx:_});return{inputs:C,tx:I,utxos:q}}function v0(X){let $=F.NETWORKS.bitcoinCash,J=F.p2pkh(X.publicKey,$);if(!J.hash)throw new E.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return F.encodeCashAddr({hash:J.hash,prefix:F.CashAddrPrefix.MAINNET,type:F.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var K2,E,F,m;var gX=R(()=>{QX();OX();HX();K2=require("@scure/base"),E=require("@swapkit/helpers"),F=require("@swapkit/utxo-signer"),m=E.Chain.BitcoinCash});function x2(){let{isStagenet:X}=V.SKConfig.get("envs");return X?T.ZCASH_TEST_NETWORK:T.ZCASH_NETWORK}function y0(X){return R0.encode(X)}function w0({phrase:X,derivationPath:$}){let J=j2.mnemonicToSeedSync(X),j=Z2.HDKey.fromMasterSeed(J).derive($);if(!j.privateKey||!j.publicKey)throw new V.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:G,publicKey:Q}=j,q=T.utils.hash160(Q),{isStagenet:Y}=V.SKConfig.get("envs"),z=Y?new Uint8Array([29,37]):new Uint8Array([28,184]),L=new Uint8Array(z.length+q.length);L.set(z,0),L.set(q,z.length);let W=y0(L);return{getAddress:()=>Promise.resolve(W),signTransaction:(B)=>{if(B instanceof T.PCZT)return B.signAllInputs(G,Q,T.ZcashSigHash.ALL),B.finalizeAllInputs(),Promise.resolve(B.extract());return B.signAllInputs(G,Q,T.ZcashSigHash.ALL),Promise.resolve(B)}}}function A0({inputs:X,outputs:$,tx:J,sender:Z,compiledMemo:j}){let G=x2();for(let Q of X){let q=T.Address(G).decode(Z),Y=T.OutScript.encode(q);J.addInput({index:Q.index,script:Y,sequence:4294967295,txid:mX.hex.decode(Q.hash),value:BigInt(Q.value)})}for(let Q of $){let q="address"in Q&&Q.address?Q.address:Z,Y=Q.script;if(Y&&!j)continue;if(Y&&j)J.addOutput({amount:0n,script:j});else J.addOutputAddress(q,BigInt(Q.value),G)}return{inputs:X,tx:J}}async function m2(X){let{assetValue:$,recipient:J,memo:Z,feeRate:j,sender:G,fetchTxHex:Q}=X,q=Z?y(Z):null,Y=await f(V.Chain.Zcash).getUtxos({address:G,fetchTxHex:Q!==!1}),z=[{address:J,value:Number($.getBaseValue("string"))},...q?[{script:q,value:0}]:[]],{inputs:L,outputs:W}=S({chain:V.Chain.Zcash,changeAddress:G,feeRate:j,inputs:Y,outputs:z});if(!(L&&W))throw new V.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:$,sender:G});let B=T.createZcashTransaction({consensusBranchId:T.ZcashConsensusBranchId.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:T.ZcashVersionGroupId.SAPLING}),{tx:_,inputs:C}=A0({compiledMemo:q,inputs:L,outputs:W,sender:G,tx:B});return{inputs:C,outputs:W,tx:_}}function Q2(X){let $=LX.match(X).with({signer:LX.P.not(LX.P.nullish)},({signer:Y})=>Y).with({phrase:LX.P.string},({phrase:Y,derivationPath:z,index:L=0})=>{let W=z||V.NetworkDerivationPath[V.Chain.Zcash]||[44,133,0,0,0],B=V.updateDerivationPath(W,{index:L}),_=V.derivationPathToString(B);return w0({derivationPath:_,phrase:Y})}).otherwise(()=>{return}),J=s({chain:V.Chain.Zcash,signer:$});async function Z({recipient:Y,assetValue:z,feeOptionKey:L=V.FeeOption.Fast,...W}){let B=await $?.getAddress();if(!($&&B))throw new V.SwapKitError("toolbox_utxo_no_signer");let _=W.feeRate||(await J.getFeeRates())[L],{tx:C}=await m2({...W,assetValue:z,feeRate:_,recipient:Y,sender:B}),P=(await $.signTransaction(C)).toHex();return J.broadcastTx(P)}function j({phrase:Y,derivationPath:z="m/44'/133'/0'/0/0"}){let L=j2.mnemonicToSeedSync(Y),B=Z2.HDKey.fromMasterSeed(L).derive(z);if(!B.privateKey||!B.publicKey)throw new V.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:B.privateKey,publicKey:B.publicKey}}function G({phrase:Y,derivationPath:z="m/44'/133'/0'/0/0"}){let L=j({derivationPath:z,phrase:Y}),W=x2();return T.WIF(W).encode(L.privateKey)}function Q(Y){return async function(L){if(!Y)throw new V.SwapKitError("toolbox_utxo_no_signer");return await Y.signTransaction(L)}}function q(Y){return async function(L){if(!Y)throw new V.SwapKitError("toolbox_utxo_no_signer");let W=await Y.signTransaction(L);return J.broadcastTx(W.toHex())}}return{...J,createKeysForPath:j,createTransaction:m2,getPrivateKeyFromMnemonic:G,signAndBroadcastTransaction:q($),signTransaction:Q($),transfer:Z,validateAddress:GX}}var mX,Z2,j2,V,T,LX,R0;var G2=R(()=>{QX();OX();HX();mX=require("@scure/base"),Z2=require("@scure/bip32"),j2=require("@scure/bip39"),V=require("@swapkit/helpers"),T=require("@swapkit/utxo-signer"),LX=require("ts-pattern");R0=mX.createBase58check(T.utils.sha256)});function S0(X,$){switch(X){case c.Chain.BitcoinCash:return J2($||{});case c.Chain.Zcash:return Q2($);case c.Chain.Bitcoin:case c.Chain.Dogecoin:case c.Chain.Litecoin:case c.Chain.Dash:return s({chain:X,...$});default:throw new c.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}var c;var l2=R(()=>{gX();OX();G2();gX();HX();c=require("@swapkit/helpers")});var K0={};s2(K0,{validateZcashAddress:()=>GX,validateUtxoAddress:()=>tX,validateBchAddress:()=>d,toLegacyAddress:()=>h,toCashAddress:()=>MX,stripToCashAddress:()=>TX,stripPrefix:()=>$X,nonSegwitChains:()=>IX,isValidAddress:()=>dX,getUtxoToolbox:()=>S0,getUtxoNetwork:()=>q0,getUtxoApi:()=>f,getUTXOAddressValidator:()=>X2,getScriptTypeForAddress:()=>jX,getOutputSize:()=>DX,getNetworkForChain:()=>w,getInputSize:()=>n,getDustThreshold:()=>CX,detectAddressNetwork:()=>rX,createZcashToolbox:()=>Q2,createUTXOToolbox:()=>s,createHDWalletHelpers:()=>W2,createCustomUtxoApi:()=>Y0,createBCHToolbox:()=>J2,compileMemo:()=>y,calculateTxSize:()=>XX,addressFromKeysGetter:()=>$2,addInputsAndOutputs:()=>i,accumulative:()=>S,UtxoNetwork:()=>nX,UTXOScriptType:()=>wX,TX_OVERHEAD:()=>RX,SEGWIT_MARKER_FLAG_WEIGHT:()=>yX,OutputSizes:()=>NX,OP_RETURN_OVERHEAD:()=>f2,MIN_TX_FEE:()=>D0,InputSizes:()=>vX});module.exports=d2(K0);var g0=R(()=>{OX();QX();l2();gX();G2()});g0();
|