@swapkit/toolboxes 5.2.0 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/chunk-1ma8fv42.js +2 -0
- package/dist/chunk-qsbf0z90.js +1 -0
- package/dist/{chunk-nvfkjbyq.js → chunk-s1528ghz.js} +1 -1
- package/dist/chunk-z8n8qjs5.js +1 -0
- package/dist/src/aleo/index.js +1 -1
- package/dist/src/aptos/index.js +1 -1
- package/dist/src/cardano/index.js +1 -1
- package/dist/src/cosmos/index.js +1 -1
- package/dist/src/evm/index.js +1 -1
- package/dist/src/hypercore/index.js +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/near/index.js +1 -1
- package/dist/src/radix/index.js +1 -1
- package/dist/src/ripple/index.js +1 -1
- package/dist/src/solana/index.js +1 -1
- package/dist/src/starknet/index.js +1 -1
- package/dist/src/stellar/index.js +1 -1
- package/dist/src/substrate/index.js +1 -1
- package/dist/src/sui/index.js +1 -1
- package/dist/src/ton/index.js +1 -1
- package/dist/src/tron/index.js +1 -1
- package/dist/src/utxo/index.js +1 -1
- package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +2 -2
- package/dist/types/evm/toolbox/evm.d.ts +46 -46
- package/dist/types/evm/toolbox/op.d.ts +4 -4
- package/dist/types/tron/helpers/trongrid.d.ts +2 -2
- package/dist/types/tron/types.d.ts +7 -0
- package/package.json +2 -2
- package/dist/chunk-44m22jy1.js +0 -1
- package/dist/chunk-ye1j5pz2.js +0 -2
- package/dist/chunk-zhn86hw6.js +0 -1
- /package/dist/{chunk-xbdjxeqd.js → chunk-k50sjysj.js} +0 -0
package/dist/src/utxo/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ea as j2,fa as M2}from"../../chunk-nvfkjbyq.js";import"../../chunk-xbdjxeqd.js";import{NetworkDerivationPath as p2}from"@swapkit/helpers";function g(X,$){if(!Number.isInteger($)||$<0)throw RangeError(`${X} must be a non-negative integer, got: ${$}`)}function n({accountIndex:X,chain:$,derivationPath:J}){if(X!==void 0)g("accountIndex",X);let[j,Q,Z]=J??p2[$];return[j,Q,X??Z]}function MX({accountIndex:X,change:$=!1,chain:J,derivationPath:j,index:Q}){return g("index",Q),[...n({accountIndex:X,chain:J,derivationPath:j}),Number($),Q]}function ZX(X){return X[2]??0}function d2({deriveAddress:X,getBalance:$,getUtxos:J}){async function j(G){let{accountIndex:q,count:Y,startIndex:W=0,change:L=!1}=G;if(g("count",Y),Y<1)throw RangeError("count must be at least 1");g("startIndex",W);let U=[];for(let _=0;_<Y;_++){let B=await X({accountIndex:q,change:L,index:W+_});if(B)U.push(B)}return U}async function Q(G){let{gapLimit:q=20,change:Y=!1}=G??{},W=[],L=0,U=0;while(L<q){let _=await X({change:Y,index:U});if(!_)break;if((await $(_.address)).some((M)=>M.getValue("number")>0))W.push(_),L=0;else L++;U++}return W}async function Z(G=20){let[q,Y]=await Promise.all([Q({change:!1,gapLimit:G}),Q({change:!0,gapLimit:G})]),W=[...q,...Y],L=await Promise.all(W.map(async(_)=>{let H=(await $(_.address)).reduce((M,C)=>M+C.getValue("number"),0);return{..._,balance:H}})),U=L.reduce((_,B)=>_+B.balance,0);return{addresses:L,total:U}}async function z(G=20){let[q,Y]=await Promise.all([Q({change:!1,gapLimit:G}),Q({change:!0,gapLimit:G})]),W=[...q,...Y];return(await Promise.all(W.map(async(U)=>{return(await J(U.address)).map((B)=>({...B,address:U.address,derivationIndex:U.index,isChange:U.change}))}))).flat()}return{deriveAddresses:j,getAggregatedBalance:Z,getAggregatedUtxos:z,scanForAddresses:Q}}import{Chain as T,getRPCUrl as r2,RequestClient as AX,SKConfig as n2,SwapKitError as v,warnOnce as i2}from"@swapkit/helpers";import{NETWORKS as GX}from"@swapkit/utxo-signer";async function s2({chain:X,txHash:$}){let J=`${YX(X)}/push/transaction`,j=JSON.stringify({data:$});try{let Q=await AX.post(J,{body:j,headers:{"Content-Type":"application/json"}});if(Q.context.code!==200)throw new v("toolbox_utxo_broadcast_failed",{error:Q.context.error||"Transaction broadcast failed"});return Q.data?.transaction_hash||$}catch(Q){let Z=await r2(X);if(Z){let z=JSON.stringify({id:j2(),jsonrpc:"2.0",method:"sendrawtransaction",params:[$]}),G=await AX.post(Z,{body:z,headers:{"Content-Type":"application/json"}});if(G.error)throw new v("toolbox_utxo_broadcast_failed",{error:G.error?.message});if(G.result.includes('"code":-26'))throw new v("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return G.result}throw Q}}function YX(X){return`https://api.blockchair.com/${a2(X)}`}function $2(X){switch(X){case T.Bitcoin:return 5;case T.Dogecoin:return 1e4;case T.Litecoin:return 1;case T.Zcash:return 1;default:return 2}}function a2(X){switch(X){case T.BitcoinCash:return"bitcoin-cash";case T.Litecoin:return"litecoin";case T.Dash:return"dash";case T.Dogecoin:return"dogecoin";case T.Zcash:return"zcash";case T.Polkadot:return"polkadot";default:return"bitcoin"}}async function t2(X){try{let{feePerKb:$}=await AX.get(`https://app.bitgo.com/api/v2/${X.toLowerCase()}/tx/fee`),J=$/1000;return Math.max(J,$2(X))}catch{return $2(X)}}async function DX(X,$){let J=await AX.get(`${X}${$?`${X.includes("?")?"&":"?"}key=${$}`:""}`);if(!J||J.context.code!==200)throw new v("toolbox_utxo_api_error",{error:`Failed to query ${X}`});return J.data}async function e2({chain:X,apiKey:$}){let J=await DX(`${YX(X)}/stats`,$);if(typeof J.best_block_height!=="number")throw new v("toolbox_utxo_api_error",{error:"Missing best_block_height in stats response"});return J.best_block_height}async function Q2({address:X,chain:$,apiKey:J}){if(!X)throw new v("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await DX(`${YX($)}/dashboards/address/${X}?transaction_details=true`,J))[X]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function X0({address:X,chain:$,apiKey:J}){return(await Q2({address:X,apiKey:J,chain:$}))?.address.balance||0}async function Z2({chain:X,apiKey:$,txHash:J}){if(!J)throw new v("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await DX(`${YX(X)}/raw/transaction/${J}`,$))?.[J]?.raw_transaction||""}catch(j){let Q=j instanceof Error?j.message:String(j);return console.error(`Failed to fetch raw transaction: ${Q}`),""}}var $0=4294967294;async function J0({chain:X,apiKey:$,txHash:J}){if(!J)throw new v("toolbox_utxo_invalid_params",{error:"TxHash is required"});let Q=(await DX(`${YX(X)}/dashboards/transaction/${J}`,$))?.[J];if(!Q)throw new v("toolbox_utxo_tx_not_found",{txHash:J});let{transaction:Z,inputs:z,outputs:G}=Q,q=z.map((W)=>W.spending_sequence),Y=Z.is_rbf===!0||q.some((W)=>W<$0);return{blockId:Z.block_id,confirmed:Z.block_id!==-1,fee:Z.fee,inputs:z,isRBF:Y,outputs:G,sequences:q,size:Z.size,txid:Z.hash,weight:Z.weight}}async function j0({chain:X,address:$,apiKey:J,offset:j=0,limit:Q=30}){return(await DX(`${YX(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=${Q}&offset=${j}`,J)).map(({is_spent:q,script_hex:Y,block_id:W,transaction_hash:L,index:U,value:_,spending_signature_hex:B})=>({hash:L,index:U,is_confirmed:W!==-1,is_spent:q,script_hex:Y,txHex:B,value:_}))}function Q0(X){return X.reduce(($,J)=>$+J.value,0)}function J2(X,$){let J=[...X].sort((j,Q)=>Q.value-j.value);if($){let j=[],Q=0;for(let Z of J)if(j.push(Z),Q+=Z.value,Q>=$)break;return j}return J}async function G2({chain:X,address:$,apiKey:J,targetValue:j,accumulativeValue:Q=0,offset:Z=0,limit:z=30}){if(!$)throw new v("toolbox_utxo_invalid_params",{error:"Address is required"});try{let G=await j0({address:$,apiKey:J,chain:X,limit:z,offset:Z,targetValue:j}),Y=G.length<z,W=G.filter(({is_spent:M})=>!M),L=Q0(W),U=Q+L,_=j&&U>=j;if(Y||_)return J2(W,j);let B=await G2({accumulativeValue:U,address:$,apiKey:J,chain:X,limit:z,offset:Z+z,targetValue:j}),H=[...W,...B];return J2(H,j)}catch(G){let q=G instanceof Error?G.message:String(G);return console.error(`Failed to fetch unspent UTXOs: ${q}`),[]}}async function Z0({address:X,chain:$,apiKey:J,fetchTxHex:j=!0,targetValue:Q}){let Z=await G2({address:X,apiKey:J,chain:$,targetValue:Q}),z=j?await Promise.all(Z.map(({hash:G})=>Z2({apiKey:J,chain:$,txHash:G}))):[];return Z.map(({hash:G,index:q,script_hex:Y,value:W},L)=>({address:X,hash:G,index:q,txHex:j?z[L]:void 0,value:W,witnessUtxo:{script:Buffer.from(Y,"hex"),value:W}}))}function I(X){let $=n2.get("apiKeys").blockchair||"";return i2({condition:!$,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(J)=>s2({chain:X,txHash:J}),getAddressData:(J)=>Q2({address:J,apiKey:$,chain:X}),getBalance:(J)=>X0({address:J,apiKey:$,chain:X}),getBlockHeight:()=>e2({apiKey:$,chain:X}),getRawTx:(J)=>Z2({apiKey:$,chain:X,txHash:J}),getSuggestedTxFee:()=>t2(X),getTransactionDetails:(J)=>J0({apiKey:$,chain:X,txHash:J}),getUtxos:(J)=>Z0({...J,apiKey:$,chain:X})}}function F1(X){return X}function E1(){return function($){switch($){case T.Bitcoin:return GX.bitcoin;case T.BitcoinCash:return GX.bitcoinCash;case T.Dash:return GX.dash;case T.Litecoin:return GX.litecoin;case T.Dogecoin:return GX.dogecoin;case T.Zcash:return GX.zcash;default:throw new v("toolbox_utxo_not_supported",{chain:$})}}}import{sha256 as U0}from"@noble/hashes/sha2.js";import{createBase58check as _0}from"@scure/base";import{SwapKitError as q2}from"@swapkit/helpers";import{CashAddrType as yX,decodeCashAddr as G0,encodeCashAddr as Y0}from"@swapkit/utxo-signer";var q0={P2PKH:yX.P2PKH,P2SH:yX.P2SH},L0={[yX.P2PKH]:"P2PKH",[yX.P2SH]:"P2SH"};function z0(X,$,J){return Y0({hash:J,prefix:X,type:q0[$]})}function W0(X){let $=G0(X),J=L0[$.type];if(!J)throw Error(`Unknown CashAddr type: ${$.type}`);return{hash:$.hash,prefix:$.prefix,type:J}}var hX={decode:W0,encode:z0};var L2=_0(U0);var z2;((J)=>{J.Mainnet="mainnet";J.Testnet="testnet"})(z2||={});var i={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}};function W2(X){try{return vX(X),!0}catch{return!1}}function U2(X){return vX(X)?.network}function c(X){let $=vX(X);if($?.format==="legacy")return X;return M0($)}function RX(X){let $=vX(X);return D0($)}function vX(X){try{let $=N0(X);if($)return $}catch{}try{let $=B0(X);if($)return $}catch{}throw new q2("toolbox_utxo_invalid_address",{address:X})}function N0(X){try{let $=L2.decode(X);if($.length!==21)throw new q2("toolbox_utxo_invalid_address",{address:X});let J=$[0],j=Array.prototype.slice.call($,1);switch(J){case i.legacy.mainnet.p2pkh:return{format:"legacy",hash:j,network:"mainnet",type:"p2pkh"};case i.legacy.mainnet.p2sh:return{format:"legacy",hash:j,network:"mainnet",type:"p2sh"};case i.legacy.testnet.p2pkh:return{format:"legacy",hash:j,network:"testnet",type:"p2pkh"};case i.legacy.testnet.p2sh:return{format:"legacy",hash:j,network:"testnet",type:"p2sh"};case i.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:j,network:"mainnet",type:"p2pkh"};case i.bitpay.mainnet.p2sh:return{format:"bitpay",hash:j,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function B0(X){if(X.indexOf(":")!==-1)try{return Y2(X)}catch{}else{let $=["bitcoincash","bchtest","bchreg"];for(let J of $)try{return Y2(`${J}:${X}`)}catch{}}return}function Y2(X){try{let{hash:$,prefix:J,type:j}=hX.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call($,0),network:J==="bitcoincash"?"mainnet":"testnet",type:j==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function M0(X){let $=i.legacy[X.network][X.type],J=Buffer.alloc(1+X.hash.length);return J[0]=$,J.set(X.hash,1),L2.encode(J)}function D0(X){let $=X.network==="mainnet"?"bitcoincash":"bchtest",J=X.type==="p2pkh"?"P2PKH":"P2SH",j=new Uint8Array(X.hash);return hX.encode($,J,j)}import{Chain as a,SwapKitError as dX}from"@swapkit/helpers";import{SwapKitError as H0}from"@swapkit/helpers";import{Script as C0}from"@swapkit/utxo-signer";var l1=1000,cX=10,uX=2,O0=10,k0=41,b0=107;function R(X){let $=new Uint8Array(Buffer.from(X,"utf8"));return C0.encode(["RETURN",$])}var pX;((J)=>{J.P2PKH="P2PKH";J.P2WPKH="P2WPKH"})(pX||={});var oX={["P2PKH"]:148,["P2WPKH"]:68},SX={["P2PKH"]:34,["P2WPKH"]:31},HX=(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 H0("toolbox_utxo_invalid_address",{address:X})},qX=({inputs:X,outputs:$,feeRate:J})=>{let j=X[0]&&"address"in X[0]&&X[0].address?HX(X[0].address):"P2PKH",Z=(J?X.filter((Y)=>Y.value>=oX["type"in Y&&Y.type?Y.type:"P2PKH"]*Math.ceil(J)):X).reduce((Y,W)=>Y+s(W),0),z=$?.reduce((Y,W)=>Y+wX(W),0)||SX[j],G=cX+Z+z;return j==="P2WPKH"?Math.ceil(G+uX/4):G},s=(X)=>{if("type"in X&&X.type)return oX[X.type];if("address"in X&&X.address)return oX[HX(X.address)];return k0+b0},wX=(X,$)=>{if(X?.script)return O0+X.script.length+(X.script.length>=74?2:1);if($)return SX[$];if("address"in X&&X.address)return SX[HX(X.address)];return SX.P2PKH};function CX(X){switch(X){case a.Bitcoin:case a.BitcoinCash:return 550;case a.Dash:case a.Litecoin:return 5500;case a.Dogecoin:return 1e5;case a.Zcash:return 546;default:throw new dX("toolbox_utxo_not_supported",{chain:X})}}function S({inputs:X,outputs:$,feeRate:J=1,chain:j=a.Bitcoin,changeAddress:Q="",sweep:Z=!1}){let z=CX(j),G=X.filter((M)=>{let C=s(M)*J;return Z?M.value>Math.max(C,z):C<=M.value});if(Z){let M=Math.ceil(J*qX({inputs:G,outputs:$})),C=G.reduce((A,l)=>A+l.value,0),u=C-M;if(u<=z)throw new dX("toolbox_sweep_amount_too_low",{available:C,dustThreshold:z,fee:M});let p=$.findIndex((A)=>("address"in A)&&A.address);if(p===-1)throw new dX("toolbox_utxo_invalid_params",{error:"Sweep requires a recipient output"});return{fee:M,inputs:G,outputs:$.map((A,l)=>l===p?{...A,value:u}:A)}}let W=(X[0]&&"address"in X[0]&&X[0].address?HX(X[0].address):"P2PKH")==="P2WPKH"?Math.ceil(uX/4):0,L=cX+W+$.reduce((M,C)=>M+wX(C),0),U=$.reduce((M,C)=>M+C.value,0),_=L*J,B=0,H=[];for(let M of G){let C=s(M),u=J*C;_+=u,B+=M.value,H.push(M);let p=_+U;if(B<p)continue;let A=B-p,l=J*wX({address:Q,value:0});if(A>l){let IX=l+_,PX=B-(U+Math.ceil(IX));if(PX>Math.max(s({value:0})*J,CX(j)))return{fee:Math.ceil(IX),inputs:H,outputs:$.concat({address:Q,value:PX})}}return{fee:Math.ceil(_),inputs:H,outputs:$}}return{fee:Math.ceil(J*qX({inputs:X,outputs:$}))}}import{Chain as _X,SwapKitError as k1}from"@swapkit/helpers";import{hex as E2}from"@scure/base";import{Chain as x0,derivationPathToString as h0,FeeOption as o0,resolveDerivationPath as c0,SwapKitError as h}from"@swapkit/helpers";import{BCHSigHash as u0,CashAddrPrefix as f2,CashAddrType as A2,encodeCashAddr as y2,NETWORKS as p0,p2pkh as R2,Transaction as v2}from"@swapkit/utxo-signer";import{secp256k1 as V0}from"@noble/curves/secp256k1.js";import{hex as e}from"@scure/base";import{HDKey as D2}from"@scure/bip32";import{mnemonicToSeedSync as iX}from"@scure/bip39";import{AssetValue as rX,applyFeeMultiplier as _2,Chain as P,derivationPathToString as kX,FeeOption as w,NetworkDerivationPath as H2,SwapKitError as V,SwapKitNumber as I0,updateDerivationPath as P0,warnOnce as T0}from"@swapkit/helpers";import{Address as F0,BCHSigHash as sX,CashAddrPrefix as E0,CashAddrType as f0,encodeCashAddr as A0,NETWORKS as zX,p2pkh as N2,p2wpkh as y0,RBF_SEQUENCE as R0,SigHash as C2,Transaction as nX,WIF as O2}from"@swapkit/utxo-signer";import{match as k2}from"ts-pattern";import{validateZcashAddress as OX}from"@swapkit/utxo-signer";function LX(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function t(X){let $=LX(X);return W2($)&&U2($)==="mainnet"}var mX=[P.Dash,P.Dogecoin,P.Zcash,P.BitcoinCash],KX=[P.Bitcoin];function b2({address:X,chain:$}){return k2($).with(P.BitcoinCash,()=>t(X)).with(P.Zcash,()=>OX(X)).otherwise(()=>{try{return F0(E($)).decode(X),!0}catch{return!1}})}function E(X){return k2(X).with(P.Bitcoin,()=>zX.bitcoin).with(P.BitcoinCash,()=>zX.bitcoinCash).with(P.Dash,()=>zX.dash).with(P.Dogecoin,()=>zX.dogecoin).with(P.Litecoin,()=>zX.litecoin).with(P.Zcash,()=>zX.zcash).exhaustive()}function v0({phrase:X,derivationPath:$,network:J,seed:j}){let Q=j??iX(X),z=D2.fromMasterSeed(Q,J.bip32).derive($);if(!z.privateKey)throw new V("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return z.privateKey}function B2(X){return V0.getPublicKey(X,!0)}function bX({publicKey:X,chain:$,network:J}){if($===P.BitcoinCash){let Z=N2(X,J);if(!Z.hash)throw new V("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return A0({hash:Z.hash,prefix:E0.MAINNET,type:f0.P2PKH}).replace(/^bitcoincash:/,"")}let Q=!mX.includes($)?y0(X,J):N2(X,J);if(!Q.address)throw new V("toolbox_utxo_invalid_address",{error:"Could not derive address"});return Q.address}function WX({phrase:X,derivationPath:$,chain:J,wif:j,seed:Q}){let Z=E(J);if(j){let Y=O2(Z).decode(j),W=B2(Y);return{privateKey:Y,publicKey:W}}if(!X)throw new V("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let z=$||kX(H2[J]),G=v0({derivationPath:z,network:Z,phrase:X,seed:Q}),q=B2(G);return{privateKey:G,publicKey:q}}function S0(X,$){return O2(E($)).encode(X)}function w0({phrase:X,derivationPath:$,chain:J,seed:j}){let Q=$.split("/");if(Q.length<4)throw new V("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${Q.length}): ${$}`});let Z=E(J),z=j??iX(X),G=D2.fromMasterSeed(z,Z.bip32),q=Q.slice(0,4).join("/");return G.derive(q)}function XX({inputs:X,outputs:$,chain:J,tx:j,sender:Q,compiledMemo:Z,enableRBF:z=!1}){let G=E(J),q=!mX.includes(J),Y=z?R0:void 0,W=new Set;for(let L of X){let U=`${L.hash}:${L.index}`;if(W.has(U))throw new V("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});W.add(U);let _=typeof L.hash==="string"?e.decode(L.hash):L.hash;if(q&&L.witnessUtxo)j.addInput({index:L.index,sequence:Y,txid:_,witnessUtxo:{amount:BigInt(L.witnessUtxo.value),script:L.witnessUtxo.script}});else if(L.txHex)j.addInput({index:L.index,nonWitnessUtxo:e.decode(L.txHex),sequence:Y,txid:_,...J===P.BitcoinCash?{sighashType:sX.ALL}:{}});else throw new V("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let L of $){let U="address"in L&&L.address?L.address:Q;if(J===P.BitcoinCash)U=c(U);if(L.script){if(Z)j.addOutput({amount:0n,script:Z})}else j.addOutputAddress(U,BigInt(L.value),G)}return{inputs:X,tx:j}}async function UX(X){let $=await I(X).getSuggestedTxFee();return{[w.Average]:$,[w.Fast]:_2($,w.Fast),[w.Fastest]:_2($,w.Fastest)}}async function V2({assetValue:X,recipient:$,memo:J,sender:j,sweep:Q,fetchTxHex:Z=!1},z){let G=X.chain,q=Z||mX.includes(G),Y=X.getBaseValue("number"),W=Q?void 0:z??(await UX(G))[w.Fastest],L=Q||W===void 0?void 0:Math.ceil(Y+W*5000);return{inputs:await I(G).getUtxos({address:j,fetchTxHex:q,targetValue:L}),outputs:[{address:$,value:Q?0:Y},...J?[{address:"",script:R(J),value:0}]:[]]}}async function I2({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q,fetchTxHex:Z=!1,enableRBF:z=!1,sweep:G}){let q=X.chain,Y=J?R(J):null,W=await V2({assetValue:X,fetchTxHex:Z,memo:J,recipient:$,sender:Q,sweep:G},j),{inputs:L,outputs:U}=S({...W,chain:q,feeRate:j,sweep:G});if(!(L&&U))throw new V("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});let _=new nX({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),{inputs:B,tx:H}=XX({chain:q,compiledMemo:Y,enableRBF:z,inputs:L,outputs:U,sender:Q,tx:_});return{inputs:B,tx:H,utxos:W.inputs}}async function P2({assetValue:X,feeOptionKey:$=w.Fast,feeRate:J,memo:j,sender:Q,recipient:Z,sweep:z}){let G=X.chain,q,Y;if(J!==void 0)q=J,Y=Math.floor(J);else{let L=await UX(G);q=L[w.Fastest],Y=L[$]}let W=await V2({assetValue:X,memo:j,recipient:Z,sender:Q,sweep:z},q);return S({...W,chain:G,feeRate:Y,sweep:z})}function K0(X){return async function({from:J,memo:j,feeRate:Q,feeOptionKey:Z=w.Fast,recipient:z=J,recipients:G=1}){let q=Q??(await UX(X))[Z],W=(await I(X).getUtxos({address:J,fetchTxHex:!1})).filter((H)=>H.value>Math.max(CX(X),s(H)*q));if(!W.length)return rX.from({chain:X});let L=typeof G==="number"?Math.max(G,1):G.length,U=typeof G==="number"||L===0?Array.from({length:L||1},()=>({address:z,value:0})):[...G];if(j)U.push({address:J,script:R(j),value:0});let{outputs:_}=S({chain:X,feeRate:q,inputs:W,outputs:U,sweep:!0}),B=_?.[0]?.value??0;return rX.from({chain:X,value:BigInt(B)})}}function m0(X){return async function(J){let{fee:j}=await P2(J);return rX.from({chain:X,value:I0.fromBigInt(BigInt(j),8).getValue("string")})}}function g0({chain:X,phrase:$,derivationPath:J,seed:j}){let Q=E(X),{privateKey:Z,publicKey:z}=WX({chain:X,derivationPath:J,phrase:$,seed:j}),G=X===P.BitcoinCash?[sX.ALL]:[C2.ALL];return{getAddress:()=>bX({chain:X,network:Q,publicKey:z}),privateKey:Z,publicKey:z,signTransaction:(q)=>{return q.sign(Z,G),q}}}function l0(X,$){return async function({memo:j,recipient:Q,feeOptionKey:Z,feeRate:z,assetValue:G,enableRBF:q=!1,sweep:Y}){let W=await $?.getAddress();if(!($&&W))throw new V("toolbox_utxo_no_signer");if(!Q)throw new V("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});T0({condition:q&&!KX.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=q&&KX.includes(X),U=z||(await UX(X))[Z||w.Fast],{tx:_}=await I2({assetValue:G,enableRBF:L,feeRate:U,memo:j,recipient:Q,sender:W,sweep:Y}),B=await $.signTransaction(_);return B.finalize(),I(X).broadcastTx(e.encode(B.extract()))}}function T2(X){return($)=>b2({address:$,chain:X})}function F2(X){let $=E(X);return function(j){if(!j)throw new V("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return bX({chain:X,network:$,publicKey:j.publicKey})}}function $X({chain:X,...$}){let J="phrase"in $?$.phrase:void 0,j="index"in $?$.index||0:0,Q=J?iX(J):void 0,Z="derivationPath"in $&&$.derivationPath?$.derivationPath:P0(H2[X],{index:j}),z=kX(Z),G=J?g0({chain:X,derivationPath:z,phrase:J,seed:Q}):void 0,q="signer"in $?$.signer:void 0,Y=G||q,W=J?WX({chain:X,derivationPath:z,phrase:J,seed:Q}):void 0;function L(){if(Y)return Y.getAddress();return Promise.resolve(void 0)}function U(N){if(!J)return;let D=n({accountIndex:N,chain:X,derivationPath:Z});return w0({chain:X,derivationPath:kX(D),phrase:J,seed:Q})}let _=U();function B(){if(!_)return;return _.publicExtendedKey}function H({accountIndex:N}={}){let D=N===void 0?_:U(N);if(!D)return;let O=n({accountIndex:N,chain:X,derivationPath:Z});return{accountIndex:ZX(O),path:kX(O),xpub:D.publicExtendedKey}}function M({accountIndex:N,index:D,change:O=!1}){let k=N===void 0?_:U(N);if(!k)return;let b=MX({accountIndex:N,chain:X,change:O,derivationPath:Z,index:D}),y=E(X),m=k.deriveChild(Number(O)).deriveChild(D);if(!m.publicKey)throw new V("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let f=bX({chain:X,network:y,publicKey:m.publicKey}),o=e.encode(m.publicKey);return{accountIndex:ZX(b),address:f,change:O,index:D,path:kX(b),pubkey:o}}async function C(N){if(!KX.includes(X))return{reason:`RBF is not supported on ${X}`,supported:!1};let D=await I(X).getTransactionDetails(N);return{canReplace:D.isRBF&&!D.confirmed,confirmed:D.confirmed,enabled:D.isRBF,fee:D.fee,sequences:D.sequences,supported:!0}}async function u({txid:N,newFeeRate:D,recipient:O,memo:k}){if(!KX.includes(X))throw new V("toolbox_utxo_rbf_not_supported",{chain:X});let b=await I(X).getTransactionDetails(N);if(!b.isRBF)throw new V("toolbox_utxo_tx_not_replaceable",{txid:N});if(b.confirmed)throw new V("toolbox_utxo_tx_already_confirmed",{blockId:b.blockId,txid:N});let y=b.inputs.reduce((F,x)=>F+x.value,0),f=b.outputs.find((F)=>F.recipient===O)?.value||0;if(f===0)throw new V("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let o=await Promise.all(b.inputs.map(async(F)=>{let x=await I(X).getRawTx(F.transaction_hash);return{hash:F.transaction_hash,index:F.index,txHex:x,value:F.value,witnessUtxo:void 0}})),NX=k?R(k):null,TX=qX({feeRate:D,inputs:o.map((F)=>({...F,type:"P2WPKH"})),outputs:[{address:O,value:f}]}),d=Math.ceil(TX*D);if(d<=b.fee)throw new V("toolbox_utxo_rbf_fee_too_low",{newFee:d,originalFee:b.fee});let jX=d-b.fee,QX=f-jX;if(QX<=0)throw new V("toolbox_utxo_rbf_insufficient_change");let r=new nX({allowLegacyWitnessUtxo:!0,version:1}),FX=[{address:O,value:QX},...k?[{address:"",script:R(k),value:0}]:[]],EX=y-QX-d,BX=await L();if(EX>CX(X)&&BX)FX.push({address:BX,value:EX});return XX({chain:X,compiledMemo:NX,inputs:o,outputs:FX,sender:BX||O,tx:r}),{feeDelta:jX,newFee:d,originalFee:b.fee,tx:r}}async function p({txid:N,newFeeRate:D,recipient:O,memo:k}){let{tx:b,originalFee:y,newFee:m}=await u({memo:k,newFeeRate:D,recipient:O,txid:N}),f=await lX(b);f.finalize();let o=await I(X).broadcastTx(e.encode(f.extract()));return{newFee:m,originalFee:y,txid:o}}function A({accountIndex:N,index:D,change:O=!1}){g("index",D);let k=N===void 0?_:U(N);if(!k)return;return k.deriveChild(Number(O)).deriveChild(D).privateKey||void 0}function l({tx:N,inputDerivations:D}){if(!_)throw new V("toolbox_utxo_no_signer");let O=X===P.BitcoinCash?[sX.ALL]:[C2.ALL];for(let k=0;k<D.length;k++){let b=D[k];if(!b)continue;let{derivationIndex:y,isChange:m}=b,f=A({change:m,index:y});if(!f)throw new V("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${k} at index ${y}`});N.signIdx(f,k,O)}return N}async function IX({utxos:N,recipient:D,assetValue:O,memo:k,feeRate:b,feeOptionKey:y,changeAddress:m,sweep:f}){if(f)throw new V("toolbox_utxo_invalid_params",{error:"Sweep is not supported for transfers from multiple addresses"});if(!_)throw new V("toolbox_utxo_no_signer");let o=b||(await UX(X))[y||w.Fast],NX=k?R(k):null,TX=[{address:D,value:O.getBaseValue("number")}];if(NX)TX.push({address:"",script:NX,value:0});let d=N.map(({hash:F,index:x,value:fX,txHex:u2,witnessUtxo:xX})=>({hash:F,index:x,txHex:u2,value:fX,witnessUtxo:xX?{script:xX.script,value:xX.value}:void 0})),{inputs:jX,outputs:QX}=S({chain:X,feeRate:o,inputs:d,outputs:TX});if(!(jX&&QX))throw new V("toolbox_utxo_insufficient_balance",{assetValue:O,sender:"multiple addresses"});let r=new nX({allowLegacyWitnessUtxo:!0,version:1}),FX=N[0]?.address,EX=m||await L()||FX||D;XX({chain:X,compiledMemo:NX,inputs:jX,outputs:QX,sender:EX,tx:r});let BX=jX.map((F)=>{let x=N.find((fX)=>fX.hash===F.hash&&fX.index===F.index);return x?{derivationIndex:x.derivationIndex,isChange:x.isChange}:{derivationIndex:0,isChange:!1}});return l({inputDerivations:BX,tx:r}),r.finalize(),I(X).broadcastTx(e.encode(r.extract()))}function PX({address:N,gapLimit:D=20}){if(!_)return;for(let O=0;O<D;O++){let k=M({change:!1,index:O}),b=M({change:!0,index:O}),y=k?.address===N?!1:b?.address===N;if(k?.address===N||b?.address===N)return{change:y,index:O}}return}function lX(N){if(!Y)throw new V("toolbox_utxo_no_signer");return Y.signTransaction(N)}async function c2(N){let D=await lX(N);return D.finalize(),await I(X).broadcastTx(e.encode(D.extract()))}return{accumulative:S,broadcastTx:(N)=>I(X).broadcastTx(N),bumpFee:p,calculateTxSize:qX,createKeysForPath:(N)=>WX({...N,chain:X}),createReplacementTransaction:u,createTransaction:I2,deriveAddressAtIndex:M,derivePrivateKeyAtIndex:A,estimateMaxSendableAmount:K0(X),estimateTransactionFee:m0(X),getAddress:L,getAddressFromKeys:F2(X),getBalance:M2(X),getExtendedPublicKey:B,getExtendedPublicKeyInfo:H,getFeeRates:()=>UX(X),getInputsOutputsFee:P2,getNetworkForChain:()=>E(X),getPrivateKeyFromMnemonic:(N)=>S0(WX({...N,chain:X}).privateKey,X),isRBFEnabled:C,keys:W,resolveDerivationIndex:PX,signAndBroadcastTransaction:c2,signTransaction:lX,signTransactionWithMultipleKeys:l,transfer:l0(X,Y),transferFromMultipleAddresses:IX,validateAddress:T2(X)}}var K=x0.BitcoinCash;function gX(X){return LX(RX(X))}function d0(X){let $=E(K);function J(Q){return Q.sign(X.privateKey,[u0.ALL]),Q}function j(){let Q=R2(X.publicKey,$);if(!Q.hash)throw new h("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Z=y2({hash:Q.hash,prefix:f2.MAINNET,type:A2.P2PKH});return Promise.resolve(Z.replace(/^bitcoincash:/,""))}return{getAddress:j,signTransaction:J}}function S2(X){let $="phrase"in X?X.phrase:void 0,J="index"in X?X.index||0:0,j="derivationPath"in X?X.derivationPath:void 0,Q=c0({chain:K,derivationPath:j,index:J}),Z=h0(Q),z=$?WX({chain:K,derivationPath:Z,phrase:$}):void 0,G=z?d0(z):("signer"in X)?X.signer:void 0;function q(){return Promise.resolve(G?.getAddress())}let{getBalance:Y,getFeeRates:W,broadcastTx:L,...U}=$X($?{chain:K,derivationPath:Q,phrase:$}:{chain:K});function _(M,C=!0){return Y(LX(RX(M)))}function B(M){if(!G)throw new h("toolbox_utxo_no_signer");return G.signTransaction(M)}async function H(M){let C=await B(M);return C.finalize(),await L(E2.encode(C.extract()))}return{...U,broadcastTx:L,buildTx:n0,createTransaction:w2,getAddress:q,getAddressFromKeys:i0,getBalance:_,getFeeRates:W,signAndBroadcastTransaction:H,signTransaction:B,stripPrefix:LX,stripToCashAddress:gX,transfer:r0({broadcastTx:L,getFeeRates:W,signer:G}),validateAddress:t}}async function w2({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q,sweep:Z}){if(!t($))throw new h("toolbox_utxo_invalid_address",{address:$});let z=Math.ceil(X.getBaseValue("number")+j*7500),G=await I(K).getUtxos({address:gX(Q),fetchTxHex:!0,targetValue:Z?void 0:z}),q=J?R(J):null,Y=[],W=c($);if(Y.push({address:W,value:Z?0:X.getBaseValue("number")}),q)Y.push({script:q,value:0});let{inputs:L,outputs:U}=S({chain:K,feeRate:j,inputs:G,outputs:Y,sweep:Z});if(!(L&&U))throw new h("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});let _=new v2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!q,version:1}),B=c(Q),{inputs:H,tx:M}=XX({chain:K,compiledMemo:q,inputs:L,outputs:U.map((C)=>("address"in C)&&C.address?{...C,address:c(C.address)}:C),sender:B,tx:_});return{inputs:H,tx:M,utxos:L}}function r0({broadcastTx:X,getFeeRates:$,signer:J}){return async function({recipient:Q,assetValue:Z,feeOptionKey:z=o0.Fast,sweep:G,...q}){let Y=await J?.getAddress();if(!(J&&Y))throw new h("toolbox_utxo_no_signer");if(!Q)throw new h("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let W=q.feeRate||(await $())[z],{tx:L}=await w2({...q,assetValue:Z,feeRate:W,recipient:Q,sender:Y,sweep:G}),U=await J.signTransaction(L);return U.finalize(),X(E2.encode(U.extract()))}}async function n0({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q}){let Z=RX($);if(!t(Z))throw new h("toolbox_utxo_invalid_address",{address:Z});let z=Math.ceil(X.getBaseValue("number")+j*7500),G=await I(K).getUtxos({address:gX(Q),fetchTxHex:!0,targetValue:z}),q=Number(j.toFixed(0)),Y=J?R(J):null,W=[];if(W.push({address:c($),value:X.getBaseValue("number")}),Y)W.push({script:Y,value:0});let{inputs:L,outputs:U}=S({chain:K,feeRate:q,inputs:G,outputs:W});if(!(L&&U))throw new h("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});let _=new v2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),{inputs:B,tx:H}=XX({chain:K,compiledMemo:Y,inputs:L,outputs:U,sender:c(Q),tx:_});return{inputs:B,tx:H,utxos:G}}function i0(X){let $=p0.bitcoinCash,J=R2(X.publicKey,$);if(!J.hash)throw new h("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return y2({hash:J.hash,prefix:f2.MAINNET,type:A2.P2PKH}).replace(/^bitcoincash:/,"")}import{createBase58check as s0,hex as a0}from"@scure/base";import{HDKey as l2}from"@scure/bip32";import{mnemonicToSeedSync as x2}from"@scure/bip39";import{Chain as VX,derivationPathToString as t0,FeeOption as e0,resolveDerivationPath as X1,SKConfig as eX,SwapKitError as JX}from"@swapkit/helpers";import{Address as $1,createZcashTransaction as J1,getZcashConsensusBranchId as j1,isTransparentZcashAddress as K2,OutScript as Q1,PCZT as Z1,utils as h2,WIF as G1,ZCASH_NETWORK as Y1,ZCASH_TEST_NETWORK as q1,ZcashConsensusBranchId as m2,ZcashPSBT as L1,ZcashSigHash as aX,ZcashVersionGroupId as z1}from"@swapkit/utxo-signer";import{match as W1,P as tX}from"ts-pattern";function X2(){let{isStagenet:X}=eX.get("envs");return X?q1:Y1}var U1=s0(h2.sha256);function _1(X){return U1.encode(X)}function N1({phrase:X,derivationPath:$}){let J=x2(X),Q=l2.fromMasterSeed(J).derive($);if(!Q.privateKey||!Q.publicKey)throw new JX("toolbox_utxo_invalid_params");let{privateKey:Z,publicKey:z}=Q,G=h2.hash160(z),{isStagenet:q}=eX.get("envs"),Y=q?new Uint8Array([29,37]):new Uint8Array([28,184]),W=new Uint8Array(Y.length+G.length);W.set(Y,0),W.set(G,Y.length);let L=_1(W);return{getAddress:()=>Promise.resolve(L),signTransaction:(U)=>{if(U instanceof L1){let _=U.toPCZT();return _.signAllInputs(Z,z,aX.ALL),_.finalizeAllInputs(),Promise.resolve(_.extract())}if(U instanceof Z1)return U.signAllInputs(Z,z,aX.ALL),U.finalizeAllInputs(),Promise.resolve(U.extract());return U.signAllInputs(Z,z,aX.ALL),Promise.resolve(U)}}}function B1({inputs:X,outputs:$,tx:J,sender:j,compiledMemo:Q}){let Z=X2();for(let z of X){let G=$1(Z).decode(j),q=Q1.encode(G);J.addInput({index:z.index,script:q,sequence:4294967295,txid:a0.decode(z.hash),value:BigInt(z.value)})}for(let z of $){let G="address"in z&&z.address?z.address:j,q=z.script;if(q&&!Q)continue;if(q&&Q)J.addOutput({amount:0n,script:Q});else J.addOutputAddress(G,BigInt(z.value),Z)}return{inputs:X,tx:J}}async function M1(){let{isStagenet:X}=eX.get("envs");if(X)return m2.IRONWOOD;try{let $=await I(VX.Zcash).getBlockHeight();return j1($+1)}catch{return m2.IRONWOOD}}async function g2(X){let{assetValue:$,recipient:J,memo:j,feeRate:Q,sender:Z,fetchTxHex:z,sweep:G}=X,q=X2();if(!K2(Z,q))throw new JX("toolbox_utxo_invalid_address",{address:Z});if(!K2(J,q))throw new JX("toolbox_utxo_invalid_address",{address:J,error:"Zcash transaction creation currently supports transparent addresses only"});let Y=j?R(j):null,W=await I(VX.Zcash).getUtxos({address:Z,fetchTxHex:z!==!1}),L=[{address:J,value:G?0:Number($.getBaseValue("string"))},...Y?[{script:Y,value:0}]:[]],{inputs:U,outputs:_}=S({chain:VX.Zcash,changeAddress:Z,feeRate:Q,inputs:W,outputs:L,sweep:G});if(!(U&&_))throw new JX("toolbox_utxo_insufficient_balance",{assetValue:$,sender:Z});let B=J1({consensusBranchId:await M1(),expiryHeight:0,lockTime:0,version:4,versionGroupId:z1.SAPLING}),{tx:H,inputs:M}=B1({compiledMemo:Y,inputs:U,outputs:_,sender:Z,tx:B});return{inputs:M,outputs:_,tx:H}}function o2(X){let $=W1(X).with({signer:tX.not(tX.nullish)},({signer:q})=>q).with({phrase:tX.string},({phrase:q,derivationPath:Y,index:W=0})=>{let L=X1({chain:VX.Zcash,derivationPath:Y,index:W}),U=t0(L);return N1({derivationPath:U,phrase:q})}).otherwise(()=>{return}),J=$X({chain:VX.Zcash,signer:$});async function j(q){if(!$)throw new JX("toolbox_utxo_no_signer");return await $.signTransaction(q)}async function Q(q){let Y=await j(q);return J.broadcastTx(Y.toHex())}async function Z({recipient:q,assetValue:Y,feeOptionKey:W=e0.Fast,sweep:L,...U}){let _=await $?.getAddress();if(!($&&_))throw new JX("toolbox_utxo_no_signer");let B=U.feeRate||(await J.getFeeRates())[W],{tx:H}=await g2({...U,assetValue:Y,feeRate:B,recipient:q,sender:_,sweep:L}),C=(await $.signTransaction(H)).toHex();return J.broadcastTx(C)}function z({phrase:q,derivationPath:Y="m/44'/133'/0'/0/0"}){let W=x2(q),U=l2.fromMasterSeed(W).derive(Y);if(!U.privateKey||!U.publicKey)throw new JX("toolbox_utxo_invalid_params");return{privateKey:U.privateKey,publicKey:U.publicKey}}function G({phrase:q,derivationPath:Y="m/44'/133'/0'/0/0"}){let W=z({derivationPath:Y,phrase:q}),L=X2();return G1(L).encode(W.privateKey)}return{...J,createKeysForPath:z,createTransaction:g2,getPrivateKeyFromMnemonic:G,signAndBroadcastTransaction:Q,signTransaction:j,transfer:Z,validateAddress:OX}}import{hex as D1}from"@scure/base";import{HDKey as H1}from"@scure/bip32";import{derivationPathToString as C1}from"@swapkit/helpers";function O1({xpub:X,chain:$,count:J,startIndex:j=0,accountIndex:Q}){if(g("count",J),J<1)throw RangeError("count must be at least 1");g("startIndex",j);let Z=E($),z=H1.fromExtendedKey(X,Z.bip32),G=n({accountIndex:Q,chain:$}),q=ZX(G),Y=[];for(let W of[!1,!0]){let L=z.deriveChild(Number(W));for(let U=0;U<J;U++){let _=j+U,B=L.deriveChild(_);if(!B.publicKey)continue;let H=MX({accountIndex:Q,chain:$,change:W,index:_});Y.push({accountIndex:q,address:bX({chain:$,network:Z,publicKey:B.publicKey}),change:W,index:_,path:C1(H),pubkey:D1.encode(B.publicKey)})}}return Y}function m8(X,$){switch(X){case _X.BitcoinCash:return S2($||{});case _X.Zcash:return o2($);case _X.Bitcoin:case _X.Dogecoin:case _X.Litecoin:case _X.Dash:return $X({chain:X,...$});default:throw new k1("toolbox_utxo_not_supported",{chain:X})}}export{OX as validateZcashAddress,b2 as validateUtxoAddress,t as validateBchAddress,c as toLegacyAddress,RX as toCashAddress,gX as stripToCashAddress,LX as stripPrefix,mX as nonSegwitChains,W2 as isValidAddress,m8 as getUtxoToolbox,E1 as getUtxoNetwork,I as getUtxoApi,T2 as getUTXOAddressValidator,MX as getUTXOAddressPath,n as getUTXOAccountPath,ZX as getUTXOAccountIndexFromPath,HX as getScriptTypeForAddress,wX as getOutputSize,E as getNetworkForChain,s as getInputSize,CX as getDustThreshold,U2 as detectAddressNetwork,O1 as deriveAddressesFromXpub,o2 as createZcashToolbox,$X as createUTXOToolbox,d2 as createHDWalletHelpers,F1 as createCustomUtxoApi,S2 as createBCHToolbox,R as compileMemo,qX as calculateTxSize,g as assertDerivationIndex,F2 as addressFromKeysGetter,XX as addInputsAndOutputs,S as accumulative,z2 as UtxoNetwork,pX as UTXOScriptType,cX as TX_OVERHEAD,uX as SEGWIT_MARKER_FLAG_WEIGHT,SX as OutputSizes,O0 as OP_RETURN_OVERHEAD,l1 as MIN_TX_FEE,oX as InputSizes};
|
|
1
|
+
import{ea as st,fa as xt}from"../../chunk-s1528ghz.js";import"../../chunk-k50sjysj.js";import{NetworkDerivationPath as $t}from"@swapkit/helpers";function R(e,t){if(!Number.isInteger(t)||t<0)throw RangeError(`${e} must be a non-negative integer, got: ${t}`)}function G({accountIndex:e,chain:t,derivationPath:n}){if(e!==void 0)R("accountIndex",e);let[r,s,o]=n??$t[t];return[r,s,e??o]}function xe({accountIndex:e,change:t=!1,chain:n,derivationPath:r,index:s}){return R("index",s),[...G({accountIndex:e,chain:n,derivationPath:r}),Number(t),s]}function ae(e){return e[2]??0}function Vt({deriveAddress:e,getBalance:t,getUtxos:n}){async function r(a){let{accountIndex:c,count:i,startIndex:p=0,change:u=!1}=a;if(R("count",i),i<1)throw RangeError("count must be at least 1");R("startIndex",p);let l=[];for(let h=0;h<i;h++){let m=await e({accountIndex:c,change:u,index:p+h});if(m)l.push(m)}return l}async function s(a){let{gapLimit:c=20,change:i=!1}=a??{},p=[],u=0,l=0;while(u<c){let h=await e({change:i,index:l});if(!h)break;if((await t(h.address)).some((g)=>g.getValue("number")>0))p.push(h),u=0;else u++;l++}return p}async function o(a=20){let[c,i]=await Promise.all([s({change:!1,gapLimit:a}),s({change:!0,gapLimit:a})]),p=[...c,...i],u=await Promise.all(p.map(async(h)=>{let T=(await t(h.address)).reduce((g,y)=>g+y.getValue("number"),0);return{...h,balance:T}})),l=u.reduce((h,m)=>h+m.balance,0);return{addresses:u,total:l}}async function d(a=20){let[c,i]=await Promise.all([s({change:!1,gapLimit:a}),s({change:!0,gapLimit:a})]),p=[...c,...i];return(await Promise.all(p.map(async(l)=>(await n(l.address)).map((m)=>({...m,address:l.address,derivationIndex:l.index,isChange:l.change}))))).flat()}return{deriveAddresses:r,getAggregatedBalance:o,getAggregatedUtxos:d,scanForAddresses:s}}import{Chain as U,getRPCUrl as qt,RequestClient as ke,SKConfig as Gt,SwapKitError as K,warnOnce as jt}from"@swapkit/helpers";import{NETWORKS as ie}from"@swapkit/utxo-signer";async function Jt({chain:e,txHash:t}){let n=`${ce(e)}/push/transaction`,r=JSON.stringify({data:t});try{let s=await ke.post(n,{body:r,headers:{"Content-Type":"application/json"}});if(s.context.code!==200)throw new K("toolbox_utxo_broadcast_failed",{error:s.context.error||"Transaction broadcast failed"});return s.data?.transaction_hash||t}catch(s){let o=await qt(e);if(o){let d=JSON.stringify({id:st(),jsonrpc:"2.0",method:"sendrawtransaction",params:[t]}),a=await ke.post(o,{body:d,headers:{"Content-Type":"application/json"}});if(a.error)throw new K("toolbox_utxo_broadcast_failed",{error:a.error?.message});if(a.result.includes('"code":-26'))throw new K("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return a.result}throw s}}function ce(e){return`https://api.blockchair.com/${Qt(e)}`}function nt(e){switch(e){case U.Bitcoin:return 5;case U.Dogecoin:return 1e4;case U.Litecoin:return 1;case U.Zcash:return 1;default:return 2}}function Qt(e){switch(e){case U.BitcoinCash:return"bitcoin-cash";case U.Litecoin:return"litecoin";case U.Dash:return"dash";case U.Dogecoin:return"dogecoin";case U.Zcash:return"zcash";case U.Polkadot:return"polkadot";default:return"bitcoin"}}async function Yt(e){try{let{feePerKb:t}=await ke.get(`https://app.bitgo.com/api/v2/${e.toLowerCase()}/tx/fee`),n=t/1000;return Math.max(n,nt(e))}catch{return nt(e)}}async function Te(e,t){let n=await ke.get(`${e}${t?`${e.includes("?")?"&":"?"}key=${t}`:""}`);if(!n||n.context.code!==200)throw new K("toolbox_utxo_api_error",{error:`Failed to query ${e}`});return n.data}async function en({chain:e,apiKey:t}){let n=await Te(`${ce(e)}/stats`,t);if(typeof n.best_block_height!=="number")throw new K("toolbox_utxo_api_error",{error:"Missing best_block_height in stats response"});return n.best_block_height}async function ot({address:e,chain:t,apiKey:n}){if(!e)throw new K("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Te(`${ce(t)}/dashboards/address/${e}?transaction_details=true`,n))[e]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function tn({address:e,chain:t,apiKey:n}){return(await ot({address:e,apiKey:n,chain:t}))?.address.balance||0}async function at({chain:e,apiKey:t,txHash:n}){if(!n)throw new K("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Te(`${ce(e)}/raw/transaction/${n}`,t))?.[n]?.raw_transaction||""}catch(r){let s=r instanceof Error?r.message:String(r);return console.error(`Failed to fetch raw transaction: ${s}`),""}}var nn=4294967294;async function rn({chain:e,apiKey:t,txHash:n}){if(!n)throw new K("toolbox_utxo_invalid_params",{error:"TxHash is required"});let s=(await Te(`${ce(e)}/dashboards/transaction/${n}`,t))?.[n];if(!s)throw new K("toolbox_utxo_tx_not_found",{txHash:n});let{transaction:o,inputs:d,outputs:a}=s,c=d.map((p)=>p.spending_sequence),i=o.is_rbf===!0||c.some((p)=>p<nn);return{blockId:o.block_id,confirmed:o.block_id!==-1,fee:o.fee,inputs:d,isRBF:i,outputs:a,sequences:c,size:o.size,txid:o.hash,weight:o.weight}}async function sn({chain:e,address:t,apiKey:n,offset:r=0,limit:s=30}){return(await Te(`${ce(e)}/outputs?q=recipient(${t}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${s}&offset=${r}`,n)).map(({is_spent:c,script_hex:i,block_id:p,transaction_hash:u,index:l,value:h,spending_signature_hex:m})=>({hash:u,index:l,is_confirmed:p!==-1,is_spent:c,script_hex:i,txHex:m,value:h}))}function on(e){return e.reduce((t,n)=>t+n.value,0)}function rt(e,t){let n=[...e].sort((r,s)=>s.value-r.value);if(t){let r=[],s=0;for(let o of n)if(r.push(o),s+=o.value,s>=t)break;return r}return n}async function it({chain:e,address:t,apiKey:n,targetValue:r,accumulativeValue:s=0,offset:o=0,limit:d=30}){if(!t)throw new K("toolbox_utxo_invalid_params",{error:"Address is required"});try{let a=await sn({address:t,apiKey:n,chain:e,limit:d,offset:o,targetValue:r}),i=a.length<d,p=a.filter(({is_spent:g})=>!g),u=on(p),l=s+u,h=r&&l>=r;if(i||h)return rt(p,r);let m=await it({accumulativeValue:l,address:t,apiKey:n,chain:e,limit:d,offset:o+d,targetValue:r}),T=[...p,...m];return rt(T,r)}catch(a){let c=a instanceof Error?a.message:String(a);return console.error(`Failed to fetch unspent UTXOs: ${c}`),[]}}async function an({address:e,chain:t,apiKey:n,fetchTxHex:r=!0,targetValue:s}){let o=await it({address:e,apiKey:n,chain:t,targetValue:s}),d=r?await Promise.all(o.map(({hash:a})=>at({apiKey:n,chain:t,txHash:a}))):[];return o.map(({hash:a,index:c,script_hex:i,value:p},u)=>({address:e,hash:a,index:c,txHex:r?d[u]:void 0,value:p,witnessUtxo:{script:Buffer.from(i,"hex"),value:p}}))}function _(e){let t=Gt.get("apiKeys").blockchair||"";return jt({condition:!t,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(n)=>Jt({chain:e,txHash:n}),getAddressData:(n)=>ot({address:n,apiKey:t,chain:e}),getBalance:(n)=>tn({address:n,apiKey:t,chain:e}),getBlockHeight:()=>en({apiKey:t,chain:e}),getRawTx:(n)=>at({apiKey:t,chain:e,txHash:n}),getSuggestedTxFee:()=>Yt(e),getTransactionDetails:(n)=>rn({apiKey:t,chain:e,txHash:n}),getUtxos:(n)=>an({...n,apiKey:t,chain:e})}}function Br(e){return e}function Sr(){return function(t){switch(t){case U.Bitcoin:return ie.bitcoin;case U.BitcoinCash:return ie.bitcoinCash;case U.Dash:return ie.dash;case U.Litecoin:return ie.litecoin;case U.Dogecoin:return ie.dogecoin;case U.Zcash:return ie.zcash;default:throw new K("toolbox_utxo_not_supported",{chain:t})}}}import{sha256 as fn}from"@noble/hashes/sha2.js";import{createBase58check as mn}from"@scure/base";import{SwapKitError as ut}from"@swapkit/helpers";import{CashAddrType as Xe,decodeCashAddr as cn,encodeCashAddr as un}from"@swapkit/utxo-signer";var dn={P2PKH:Xe.P2PKH,P2SH:Xe.P2SH},pn={[Xe.P2PKH]:"P2PKH",[Xe.P2SH]:"P2SH"};function ln(e,t,n){return un({hash:n,prefix:e,type:dn[t]})}function hn(e){let t=cn(e),n=pn[t.type];if(!n)throw Error(`Unknown CashAddr type: ${t.type}`);return{hash:t.hash,prefix:t.prefix,type:n}}var Ee={decode:hn,encode:ln};var dt=mn(fn);var pt;((n)=>{n.Mainnet="mainnet";n.Testnet="testnet"})(pt||={});var j={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}};function lt(e){try{return Fe(e),!0}catch{return!1}}function ht(e){return Fe(e)?.network}function Z(e){let t=Fe(e);if(t?.format==="legacy")return e;return Tn(t)}function Ke(e){let t=Fe(e);return yn(t)}function Fe(e){try{let t=gn(e);if(t)return t}catch{}try{let t=xn(e);if(t)return t}catch{}throw new ut("toolbox_utxo_invalid_address",{address:e})}function gn(e){try{let t=dt.decode(e);if(t.length!==21)throw new ut("toolbox_utxo_invalid_address",{address:e});let n=t[0],r=Array.prototype.slice.call(t,1);switch(n){case j.legacy.mainnet.p2pkh:return{format:"legacy",hash:r,network:"mainnet",type:"p2pkh"};case j.legacy.mainnet.p2sh:return{format:"legacy",hash:r,network:"mainnet",type:"p2sh"};case j.legacy.testnet.p2pkh:return{format:"legacy",hash:r,network:"testnet",type:"p2pkh"};case j.legacy.testnet.p2sh:return{format:"legacy",hash:r,network:"testnet",type:"p2sh"};case j.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:r,network:"mainnet",type:"p2pkh"};case j.bitpay.mainnet.p2sh:return{format:"bitpay",hash:r,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function xn(e){if(e.indexOf(":")!==-1)try{return ct(e)}catch{}else{let t=["bitcoincash","bchtest","bchreg"];for(let n of t)try{return ct(`${n}:${e}`)}catch{}}return}function ct(e){try{let{hash:t,prefix:n,type:r}=Ee.decode(e);return{format:"cashaddr",hash:Array.prototype.slice.call(t,0),network:n==="bitcoincash"?"mainnet":"testnet",type:r==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function Tn(e){let t=j.legacy[e.network][e.type],n=Buffer.alloc(1+e.hash.length);return n[0]=t,n.set(e.hash,1),dt.encode(n)}function yn(e){let t=e.network==="mainnet"?"bitcoincash":"bchtest",n=e.type==="p2pkh"?"P2PKH":"P2SH",r=new Uint8Array(e.hash);return Ee.encode(t,n,r)}import{Chain as Q,SwapKitError as Ve}from"@swapkit/helpers";import{SwapKitError as bn}from"@swapkit/helpers";import{Script as wn}from"@swapkit/utxo-signer";var Nr=1000,Le=10,ze=2,vn=10,Pn=41,_n=107;function X(e){let t=new Uint8Array(Buffer.from(e,"utf8"));return wn.encode(["RETURN",t])}var $e;((n)=>{n.P2PKH="P2PKH";n.P2WPKH="P2WPKH"})($e||={});var Ze={["P2PKH"]:148,["P2WPKH"]:68},De={["P2PKH"]:34,["P2WPKH"]:31},ye=(e)=>{if(e.startsWith("bc1")||e.startsWith("tb1")||e.startsWith("ltc1")||e.startsWith("tltc1"))return"P2WPKH";if(e.startsWith("1")||e.startsWith("m")||e.startsWith("n")||e.startsWith("bitcoincash:q")||e.startsWith("bitcoincash:p")||e.startsWith("q")||e.startsWith("p")||e.startsWith("L")||e.startsWith("M")||e.startsWith("3")||e.startsWith("D")||e.startsWith("A")||e.startsWith("9")||e.startsWith("X")||e.startsWith("7")||e.startsWith("y")||e.startsWith("t1")||e.startsWith("t3")||e.startsWith("tm"))return"P2PKH";throw new bn("toolbox_utxo_invalid_address",{address:e})},ue=({inputs:e,outputs:t,feeRate:n})=>{let r=e[0]&&"address"in e[0]&&e[0].address?ye(e[0].address):"P2PKH",o=(n?e.filter((i)=>i.value>=Ze["type"in i&&i.type?i.type:"P2PKH"]*Math.ceil(n)):e).reduce((i,p)=>i+J(p),0),d=t?.reduce((i,p)=>i+He(p),0)||De[r],a=Le+o+d;return r==="P2WPKH"?Math.ceil(a+ze/4):a},J=(e)=>{if("type"in e&&e.type)return Ze[e.type];if("address"in e&&e.address)return Ze[ye(e.address)];return Pn+_n},He=(e,t)=>{if(e?.script)return vn+e.script.length+(e.script.length>=74?2:1);if(t)return De[t];if("address"in e&&e.address)return De[ye(e.address)];return De.P2PKH};function be(e){switch(e){case Q.Bitcoin:case Q.BitcoinCash:return 550;case Q.Dash:case Q.Litecoin:return 5500;case Q.Dogecoin:return 1e5;case Q.Zcash:return 546;default:throw new Ve("toolbox_utxo_not_supported",{chain:e})}}function F({inputs:e,outputs:t,feeRate:n=1,chain:r=Q.Bitcoin,changeAddress:s="",sweep:o=!1}){let d=be(r),a=e.filter((g)=>{let y=J(g)*n;return o?g.value>Math.max(y,d):y<=g.value});if(o){let g=Math.ceil(n*ue({inputs:a,outputs:t})),y=a.reduce((S,W)=>S+W.value,0),L=y-g;if(L<=d)throw new Ve("toolbox_sweep_amount_too_low",{available:y,dustThreshold:d,fee:g});let z=t.findIndex((S)=>("address"in S)&&S.address);if(z===-1)throw new Ve("toolbox_utxo_invalid_params",{error:"Sweep requires a recipient output"});return{fee:g,inputs:a,outputs:t.map((S,W)=>W===z?{...S,value:L}:S)}}let p=(e[0]&&"address"in e[0]&&e[0].address?ye(e[0].address):"P2PKH")==="P2WPKH"?Math.ceil(ze/4):0,u=Le+p+t.reduce((g,y)=>g+He(y),0),l=t.reduce((g,y)=>g+y.value,0),h=u*n,m=0,T=[];for(let g of a){let y=J(g),L=n*y;h+=L,m+=g.value,T.push(g);let z=h+l;if(m<z)continue;let S=m-z,W=n*He({address:s,value:0});if(S>W){let Ae=W+h,Ue=m-(l+Math.ceil(Ae));if(Ue>Math.max(J({value:0})*n,be(r)))return{fee:Math.ceil(Ae),inputs:T,outputs:t.concat({address:s,value:Ue})}}return{fee:Math.ceil(h),inputs:T,outputs:t}}return{fee:Math.ceil(n*ue({inputs:e,outputs:t}))}}import{Chain as fe,SwapKitError as Pr}from"@swapkit/helpers";import{hex as Bt}from"@scure/base";import{Chain as En,derivationPathToString as Zn,FeeOption as Ln,resolveDerivationPath as zn,SwapKitError as N}from"@swapkit/helpers";import{BCHSigHash as $n,CashAddrPrefix as St,CashAddrType as kt,encodeCashAddr as Xt,NETWORKS as Vn,p2pkh as Kt,Transaction as Ft}from"@swapkit/utxo-signer";import{secp256k1 as An}from"@noble/curves/secp256k1.js";import{hex as ee}from"@scure/base";import{HDKey as Tt}from"@scure/bip32";import{mnemonicToSeedSync as je}from"@scure/bip39";import{AssetValue as qe,applyFeeMultiplier as ft,Chain as A,derivationPathToString as ve,FeeOption as D,NetworkDerivationPath as yt,SwapKitError as P,SwapKitNumber as Un,updateDerivationPath as On,warnOnce as Cn}from"@swapkit/helpers";import{Address as Bn,BCHSigHash as Je,CashAddrPrefix as Sn,CashAddrType as kn,encodeCashAddr as Xn,NETWORKS as pe,p2pkh as mt,p2wpkh as Kn,RBF_SEQUENCE as Fn,SigHash as bt,Transaction as Ge,WIF as wt}from"@swapkit/utxo-signer";import{match as vt}from"ts-pattern";import{validateZcashAddress as we}from"@swapkit/utxo-signer";function de(e){return e.replace(/(bchtest:|bitcoincash:)/,"")}function Y(e){let t=de(e);return lt(t)&&ht(t)==="mainnet"}var Re=[A.Dash,A.Dogecoin,A.Zcash,A.BitcoinCash],Ie=[A.Bitcoin];function Pt({address:e,chain:t}){return vt(t).with(A.BitcoinCash,()=>Y(e)).with(A.Zcash,()=>we(e)).otherwise(()=>{try{return Bn(C(t)).decode(e),!0}catch{return!1}})}function C(e){return vt(e).with(A.Bitcoin,()=>pe.bitcoin).with(A.BitcoinCash,()=>pe.bitcoinCash).with(A.Dash,()=>pe.dash).with(A.Dogecoin,()=>pe.dogecoin).with(A.Litecoin,()=>pe.litecoin).with(A.Zcash,()=>pe.zcash).exhaustive()}function Dn({phrase:e,derivationPath:t,network:n,seed:r}){let s=r??je(e),d=Tt.fromMasterSeed(s,n.bip32).derive(t);if(!d.privateKey)throw new P("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return d.privateKey}function gt(e){return An.getPublicKey(e,!0)}function Pe({publicKey:e,chain:t,network:n}){if(t===A.BitcoinCash){let o=mt(e,n);if(!o.hash)throw new P("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return Xn({hash:o.hash,prefix:Sn.MAINNET,type:kn.P2PKH}).replace(/^bitcoincash:/,"")}let s=!Re.includes(t)?Kn(e,n):mt(e,n);if(!s.address)throw new P("toolbox_utxo_invalid_address",{error:"Could not derive address"});return s.address}function le({phrase:e,derivationPath:t,chain:n,wif:r,seed:s}){let o=C(n);if(r){let i=wt(o).decode(r),p=gt(i);return{privateKey:i,publicKey:p}}if(!e)throw new P("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let d=t||ve(yt[n]),a=Dn({derivationPath:d,network:o,phrase:e,seed:s}),c=gt(a);return{privateKey:a,publicKey:c}}function Hn(e,t){return wt(C(t)).encode(e)}function In({phrase:e,derivationPath:t,chain:n,seed:r}){let s=t.split("/");if(s.length<4)throw new P("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${s.length}): ${t}`});let o=C(n),d=r??je(e),a=Tt.fromMasterSeed(d,o.bip32),c=s.slice(0,4).join("/");return a.derive(c)}function te({inputs:e,outputs:t,chain:n,tx:r,sender:s,compiledMemo:o,enableRBF:d=!1}){let a=C(n),c=!Re.includes(n),i=d?Fn:void 0,p=new Set;for(let u of e){let l=`${u.hash}:${u.index}`;if(p.has(l))throw new P("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});p.add(l);let h=typeof u.hash==="string"?ee.decode(u.hash):u.hash;if(c&&u.witnessUtxo)r.addInput({index:u.index,sequence:i,txid:h,witnessUtxo:{amount:BigInt(u.witnessUtxo.value),script:u.witnessUtxo.script}});else if(u.txHex)r.addInput({index:u.index,nonWitnessUtxo:ee.decode(u.txHex),sequence:i,txid:h,...n===A.BitcoinCash?{sighashType:Je.ALL}:{}});else throw new P("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let u of t){let l="address"in u&&u.address?u.address:s;if(n===A.BitcoinCash)l=Z(l);if(u.script){if(o)r.addOutput({amount:0n,script:o})}else r.addOutputAddress(l,BigInt(u.value),a)}return{inputs:e,tx:r}}async function he(e){let t=await _(e).getSuggestedTxFee();return{[D.Average]:t,[D.Fast]:ft(t,D.Fast),[D.Fastest]:ft(t,D.Fastest)}}async function _t({assetValue:e,recipient:t,memo:n,sender:r,sweep:s,fetchTxHex:o=!1},d){let a=e.chain,c=o||Re.includes(a),i=e.getBaseValue("number"),p=s?void 0:d??(await he(a))[D.Fastest],u=s||p===void 0?void 0:Math.ceil(i+p*5000);return{inputs:await _(a).getUtxos({address:r,fetchTxHex:c,targetValue:u}),outputs:[{address:t,value:s?0:i},...n?[{address:"",script:X(n),value:0}]:[]]}}async function At({assetValue:e,recipient:t,memo:n,feeRate:r,sender:s,fetchTxHex:o=!1,enableRBF:d=!1,sweep:a}){let c=e.chain,i=n?X(n):null,p=await _t({assetValue:e,fetchTxHex:o,memo:n,recipient:t,sender:s,sweep:a},r),{inputs:u,outputs:l}=F({...p,chain:c,feeRate:r,sweep:a});if(!(u&&l))throw new P("toolbox_utxo_insufficient_balance",{assetValue:e,sender:s});let h=new Ge({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!i,version:1}),{inputs:m,tx:T}=te({chain:c,compiledMemo:i,enableRBF:d,inputs:u,outputs:l,sender:s,tx:h});return{inputs:m,tx:T,utxos:p.inputs}}async function Ut({assetValue:e,feeOptionKey:t=D.Fast,feeRate:n,memo:r,sender:s,recipient:o,sweep:d}){let a=e.chain,c,i;if(n!==void 0)c=n,i=Math.floor(n);else{let u=await he(a);c=u[D.Fastest],i=u[t]}let p=await _t({assetValue:e,memo:r,recipient:o,sender:s,sweep:d},c);return F({...p,chain:a,feeRate:i,sweep:d})}function Rn(e){return async function({from:n,memo:r,feeRate:s,feeOptionKey:o=D.Fast,recipient:d=n,recipients:a=1}){let c=s??(await he(e))[o],p=(await _(e).getUtxos({address:n,fetchTxHex:!1})).filter((T)=>T.value>Math.max(be(e),J(T)*c));if(!p.length)return qe.from({chain:e});let u=typeof a==="number"?Math.max(a,1):a.length,l=typeof a==="number"||u===0?Array.from({length:u||1},()=>({address:d,value:0})):[...a];if(r)l.push({address:n,script:X(r),value:0});let{outputs:h}=F({chain:e,feeRate:c,inputs:p,outputs:l,sweep:!0}),m=h?.[0]?.value??0;return qe.from({chain:e,value:BigInt(m)})}}function Wn(e){return async function(n){let{fee:r}=await Ut(n);return qe.from({chain:e,value:Un.fromBigInt(BigInt(r),8).getValue("string")})}}function Mn({chain:e,phrase:t,derivationPath:n,seed:r}){let s=C(e),{privateKey:o,publicKey:d}=le({chain:e,derivationPath:n,phrase:t,seed:r}),a=e===A.BitcoinCash?[Je.ALL]:[bt.ALL];return{getAddress:()=>Pe({chain:e,network:s,publicKey:d}),privateKey:o,publicKey:d,signTransaction:(c)=>(c.sign(o,a),c)}}function Nn(e,t){return async function({memo:r,recipient:s,feeOptionKey:o,feeRate:d,assetValue:a,enableRBF:c=!1,sweep:i}){let p=await t?.getAddress();if(!(t&&p))throw new P("toolbox_utxo_no_signer");if(!s)throw new P("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});Cn({condition:c&&!Ie.includes(e),id:`rbf_not_supported_${e}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${e}. Transaction will be created without RBF signaling.`});let u=c&&Ie.includes(e),l=d||(await he(e))[o||D.Fast],{tx:h}=await At({assetValue:a,enableRBF:u,feeRate:l,memo:r,recipient:s,sender:p,sweep:i}),m=await t.signTransaction(h);return m.finalize(),_(e).broadcastTx(ee.encode(m.extract()))}}function Ot(e){return(t)=>Pt({address:t,chain:e})}function Ct(e){let t=C(e);return function(r){if(!r)throw new P("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return Pe({chain:e,network:t,publicKey:r.publicKey})}}function ne({chain:e,...t}){let n="phrase"in t?t.phrase:void 0,r="index"in t?t.index||0:0,s=n?je(n):void 0,o="derivationPath"in t&&t.derivationPath?t.derivationPath:On(yt[e],{index:r}),d=ve(o),a=n?Mn({chain:e,derivationPath:d,phrase:n,seed:s}):void 0,c="signer"in t?t.signer:void 0,i=a||c,p=n?le({chain:e,derivationPath:d,phrase:n,seed:s}):void 0;function u(){if(i)return i.getAddress();return Promise.resolve(void 0)}function l(f){if(!n)return;let x=G({accountIndex:f,chain:e,derivationPath:o});return In({chain:e,derivationPath:ve(x),phrase:n,seed:s})}let h=l();function m(){if(!h)return;return h.publicExtendedKey}function T({accountIndex:f}={}){let x=f===void 0?h:l(f);if(!x)return;let b=G({accountIndex:f,chain:e,derivationPath:o});return{accountIndex:ae(b),path:ve(b),xpub:x.publicExtendedKey}}function g({accountIndex:f,index:x,change:b=!1}){let w=f===void 0?h:l(f);if(!w)return;let v=xe({accountIndex:f,chain:e,change:b,derivationPath:o,index:x}),k=C(e),I=w.deriveChild(Number(b)).deriveChild(x);if(!I.publicKey)throw new P("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let B=Pe({chain:e,network:k,publicKey:I.publicKey}),E=ee.encode(I.publicKey);return{accountIndex:ae(v),address:B,change:b,index:x,path:ve(v),pubkey:E}}async function y(f){if(!Ie.includes(e))return{reason:`RBF is not supported on ${e}`,supported:!1};let x=await _(e).getTransactionDetails(f);return{canReplace:x.isRBF&&!x.confirmed,confirmed:x.confirmed,enabled:x.isRBF,fee:x.fee,sequences:x.sequences,supported:!0}}async function L({txid:f,newFeeRate:x,recipient:b,memo:w}){if(!Ie.includes(e))throw new P("toolbox_utxo_rbf_not_supported",{chain:e});let v=await _(e).getTransactionDetails(f);if(!v.isRBF)throw new P("toolbox_utxo_tx_not_replaceable",{txid:f});if(v.confirmed)throw new P("toolbox_utxo_tx_already_confirmed",{blockId:v.blockId,txid:f});let k=v.inputs.reduce((O,M)=>O+M.value,0),B=v.outputs.find((O)=>O.recipient===b)?.value||0;if(B===0)throw new P("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let E=await Promise.all(v.inputs.map(async(O)=>{let M=await _(e).getRawTx(O.transaction_hash);return{hash:O.transaction_hash,index:O.index,txHex:M,value:O.value,witnessUtxo:void 0}})),me=w?X(w):null,Oe=ue({feeRate:x,inputs:E.map((O)=>({...O,type:"P2WPKH"})),outputs:[{address:b,value:B}]}),V=Math.ceil(Oe*x);if(V<=v.fee)throw new P("toolbox_utxo_rbf_fee_too_low",{newFee:V,originalFee:v.fee});let se=V-v.fee,oe=B-se;if(oe<=0)throw new P("toolbox_utxo_rbf_insufficient_change");let q=new Ge({allowLegacyWitnessUtxo:!0,version:1}),Ce=[{address:b,value:oe},...w?[{address:"",script:X(w),value:0}]:[]],Be=k-oe-V,ge=await u();if(Be>be(e)&&ge)Ce.push({address:ge,value:Be});return te({chain:e,compiledMemo:me,inputs:E,outputs:Ce,sender:ge||b,tx:q}),{feeDelta:se,newFee:V,originalFee:v.fee,tx:q}}async function z({txid:f,newFeeRate:x,recipient:b,memo:w}){let{tx:v,originalFee:k,newFee:I}=await L({memo:w,newFeeRate:x,recipient:b,txid:f}),B=await Me(v);B.finalize();let E=await _(e).broadcastTx(ee.encode(B.extract()));return{newFee:I,originalFee:k,txid:E}}function S({accountIndex:f,index:x,change:b=!1}){R("index",x);let w=f===void 0?h:l(f);if(!w)return;return w.deriveChild(Number(b)).deriveChild(x).privateKey||void 0}function W({tx:f,inputDerivations:x}){if(!h)throw new P("toolbox_utxo_no_signer");let b=e===A.BitcoinCash?[Je.ALL]:[bt.ALL];for(let w=0;w<x.length;w++){let v=x[w];if(!v)continue;let{derivationIndex:k,isChange:I}=v,B=S({change:I,index:k});if(!B)throw new P("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${w} at index ${k}`});f.signIdx(B,w,b)}return f}async function Ae({utxos:f,recipient:x,assetValue:b,memo:w,feeRate:v,feeOptionKey:k,changeAddress:I,sweep:B}){if(B)throw new P("toolbox_utxo_invalid_params",{error:"Sweep is not supported for transfers from multiple addresses"});if(!h)throw new P("toolbox_utxo_no_signer");let E=v||(await he(e))[k||D.Fast],me=w?X(w):null,Oe=[{address:x,value:b.getBaseValue("number")}];if(me)Oe.push({address:"",script:me,value:0});let V=f.map(({hash:O,index:M,value:Se,txHex:zt,witnessUtxo:Ne})=>({hash:O,index:M,txHex:zt,value:Se,witnessUtxo:Ne?{script:Ne.script,value:Ne.value}:void 0})),{inputs:se,outputs:oe}=F({chain:e,feeRate:E,inputs:V,outputs:Oe});if(!(se&&oe))throw new P("toolbox_utxo_insufficient_balance",{assetValue:b,sender:"multiple addresses"});let q=new Ge({allowLegacyWitnessUtxo:!0,version:1}),Ce=f[0]?.address,Be=I||await u()||Ce||x;te({chain:e,compiledMemo:me,inputs:se,outputs:oe,sender:Be,tx:q});let ge=se.map((O)=>{let M=f.find((Se)=>Se.hash===O.hash&&Se.index===O.index);return M?{derivationIndex:M.derivationIndex,isChange:M.isChange}:{derivationIndex:0,isChange:!1}});return W({inputDerivations:ge,tx:q}),q.finalize(),_(e).broadcastTx(ee.encode(q.extract()))}function Ue({address:f,gapLimit:x=20}){if(!h)return;for(let b=0;b<x;b++){let w=g({change:!1,index:b}),v=g({change:!0,index:b}),k=w?.address===f?!1:v?.address===f;if(w?.address===f||v?.address===f)return{change:k,index:b}}return}function Me(f){if(!i)throw new P("toolbox_utxo_no_signer");return i.signTransaction(f)}async function Lt(f){let x=await Me(f);return x.finalize(),await _(e).broadcastTx(ee.encode(x.extract()))}return{accumulative:F,broadcastTx:(f)=>_(e).broadcastTx(f),bumpFee:z,calculateTxSize:ue,createKeysForPath:(f)=>le({...f,chain:e}),createReplacementTransaction:L,createTransaction:At,deriveAddressAtIndex:g,derivePrivateKeyAtIndex:S,estimateMaxSendableAmount:Rn(e),estimateTransactionFee:Wn(e),getAddress:u,getAddressFromKeys:Ct(e),getBalance:xt(e),getExtendedPublicKey:m,getExtendedPublicKeyInfo:T,getFeeRates:()=>he(e),getInputsOutputsFee:Ut,getNetworkForChain:()=>C(e),getPrivateKeyFromMnemonic:(f)=>Hn(le({...f,chain:e}).privateKey,e),isRBFEnabled:y,keys:p,resolveDerivationIndex:Ue,signAndBroadcastTransaction:Lt,signTransaction:Me,signTransactionWithMultipleKeys:W,transfer:Nn(e,i),transferFromMultipleAddresses:Ae,validateAddress:Ot(e)}}var H=En.BitcoinCash;function We(e){return de(Ke(e))}function qn(e){let t=C(H);function n(s){return s.sign(e.privateKey,[$n.ALL]),s}function r(){let s=Kt(e.publicKey,t);if(!s.hash)throw new N("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let o=Xt({hash:s.hash,prefix:St.MAINNET,type:kt.P2PKH});return Promise.resolve(o.replace(/^bitcoincash:/,""))}return{getAddress:r,signTransaction:n}}function Dt(e){let t="phrase"in e?e.phrase:void 0,n="index"in e?e.index||0:0,r="derivationPath"in e?e.derivationPath:void 0,s=zn({chain:H,derivationPath:r,index:n}),o=Zn(s),d=t?le({chain:H,derivationPath:o,phrase:t}):void 0,a=d?qn(d):("signer"in e)?e.signer:void 0;function c(){return Promise.resolve(a?.getAddress())}let{getBalance:i,getFeeRates:p,broadcastTx:u,...l}=ne(t?{chain:H,derivationPath:s,phrase:t}:{chain:H});function h(g,y=!0){return i(de(Ke(g)))}function m(g){if(!a)throw new N("toolbox_utxo_no_signer");return a.signTransaction(g)}async function T(g){let y=await m(g);return y.finalize(),await u(Bt.encode(y.extract()))}return{...l,broadcastTx:u,buildTx:jn,createTransaction:Ht,getAddress:c,getAddressFromKeys:Jn,getBalance:h,getFeeRates:p,signAndBroadcastTransaction:T,signTransaction:m,stripPrefix:de,stripToCashAddress:We,transfer:Gn({broadcastTx:u,getFeeRates:p,signer:a}),validateAddress:Y}}async function Ht({assetValue:e,recipient:t,memo:n,feeRate:r,sender:s,sweep:o}){if(!Y(t))throw new N("toolbox_utxo_invalid_address",{address:t});let d=Math.ceil(e.getBaseValue("number")+r*7500),a=await _(H).getUtxos({address:We(s),fetchTxHex:!0,targetValue:o?void 0:d}),c=n?X(n):null,i=[],p=Z(t);if(i.push({address:p,value:o?0:e.getBaseValue("number")}),c)i.push({script:c,value:0});let{inputs:u,outputs:l}=F({chain:H,feeRate:r,inputs:a,outputs:i,sweep:o});if(!(u&&l))throw new N("toolbox_utxo_insufficient_balance",{assetValue:e,sender:s});let h=new Ft({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!c,version:1}),m=Z(s),{inputs:T,tx:g}=te({chain:H,compiledMemo:c,inputs:u,outputs:l.map((y)=>("address"in y)&&y.address?{...y,address:Z(y.address)}:y),sender:m,tx:h});return{inputs:T,tx:g,utxos:u}}function Gn({broadcastTx:e,getFeeRates:t,signer:n}){return async function({recipient:s,assetValue:o,feeOptionKey:d=Ln.Fast,sweep:a,...c}){let i=await n?.getAddress();if(!(n&&i))throw new N("toolbox_utxo_no_signer");if(!s)throw new N("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let p=c.feeRate||(await t())[d],{tx:u}=await Ht({...c,assetValue:o,feeRate:p,recipient:s,sender:i,sweep:a}),l=await n.signTransaction(u);return l.finalize(),e(Bt.encode(l.extract()))}}async function jn({assetValue:e,recipient:t,memo:n,feeRate:r,sender:s}){let o=Ke(t);if(!Y(o))throw new N("toolbox_utxo_invalid_address",{address:o});let d=Math.ceil(e.getBaseValue("number")+r*7500),a=await _(H).getUtxos({address:We(s),fetchTxHex:!0,targetValue:d}),c=Number(r.toFixed(0)),i=n?X(n):null,p=[];if(p.push({address:Z(t),value:e.getBaseValue("number")}),i)p.push({script:i,value:0});let{inputs:u,outputs:l}=F({chain:H,feeRate:c,inputs:a,outputs:p});if(!(u&&l))throw new N("toolbox_utxo_insufficient_balance",{assetValue:e,sender:s});let h=new Ft({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!i,version:1}),{inputs:m,tx:T}=te({chain:H,compiledMemo:i,inputs:u,outputs:l,sender:Z(s),tx:h});return{inputs:m,tx:T,utxos:a}}function Jn(e){let t=Vn.bitcoinCash,n=Kt(e.publicKey,t);if(!n.hash)throw new N("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return Xt({hash:n.hash,prefix:St.MAINNET,type:kt.P2PKH}).replace(/^bitcoincash:/,"")}import{createBase58check as Qn,hex as Yn}from"@scure/base";import{HDKey as Mt}from"@scure/bip32";import{mnemonicToSeedSync as Nt}from"@scure/bip39";import{Chain as _e,derivationPathToString as er,FeeOption as tr,resolveDerivationPath as nr,SKConfig as et,SwapKitError as re}from"@swapkit/helpers";import{Address as rr,createZcashTransaction as sr,getZcashConsensusBranchId as or,isTransparentZcashAddress as It,OutScript as ar,PCZT as ir,utils as Et,WIF as cr,ZCASH_NETWORK as ur,ZCASH_TEST_NETWORK as dr,ZcashConsensusBranchId as Rt,ZcashPSBT as pr,ZcashSigHash as Qe,ZcashVersionGroupId as lr}from"@swapkit/utxo-signer";import{match as hr,P as Ye}from"ts-pattern";function tt(){let{isStagenet:e}=et.get("envs");return e?dr:ur}var fr=Qn(Et.sha256);function mr(e){return fr.encode(e)}function gr({phrase:e,derivationPath:t}){let n=Nt(e),s=Mt.fromMasterSeed(n).derive(t);if(!s.privateKey||!s.publicKey)throw new re("toolbox_utxo_invalid_params");let{privateKey:o,publicKey:d}=s,a=Et.hash160(d),{isStagenet:c}=et.get("envs"),i=c?new Uint8Array([29,37]):new Uint8Array([28,184]),p=new Uint8Array(i.length+a.length);p.set(i,0),p.set(a,i.length);let u=mr(p);return{getAddress:()=>Promise.resolve(u),signTransaction:(l)=>{if(l instanceof pr){let h=l.toPCZT();return h.signAllInputs(o,d,Qe.ALL),h.finalizeAllInputs(),Promise.resolve(h.extract())}if(l instanceof ir)return l.signAllInputs(o,d,Qe.ALL),l.finalizeAllInputs(),Promise.resolve(l.extract());return l.signAllInputs(o,d,Qe.ALL),Promise.resolve(l)}}}function xr({inputs:e,outputs:t,tx:n,sender:r,compiledMemo:s}){let o=tt();for(let d of e){let a=rr(o).decode(r),c=ar.encode(a);n.addInput({index:d.index,script:c,sequence:4294967295,txid:Yn.decode(d.hash),value:BigInt(d.value)})}for(let d of t){let a="address"in d&&d.address?d.address:r,c=d.script;if(c&&!s)continue;if(c&&s)n.addOutput({amount:0n,script:s});else n.addOutputAddress(a,BigInt(d.value),o)}return{inputs:e,tx:n}}async function Tr(){let{isStagenet:e}=et.get("envs");if(e)return Rt.IRONWOOD;try{let t=await _(_e.Zcash).getBlockHeight();return or(t+1)}catch{return Rt.IRONWOOD}}async function Wt(e){let{assetValue:t,recipient:n,memo:r,feeRate:s,sender:o,fetchTxHex:d,sweep:a}=e,c=tt();if(!It(o,c))throw new re("toolbox_utxo_invalid_address",{address:o});if(!It(n,c))throw new re("toolbox_utxo_invalid_address",{address:n,error:"Zcash transaction creation currently supports transparent addresses only"});let i=r?X(r):null,p=await _(_e.Zcash).getUtxos({address:o,fetchTxHex:d!==!1}),u=[{address:n,value:a?0:Number(t.getBaseValue("string"))},...i?[{script:i,value:0}]:[]],{inputs:l,outputs:h}=F({chain:_e.Zcash,changeAddress:o,feeRate:s,inputs:p,outputs:u,sweep:a});if(!(l&&h))throw new re("toolbox_utxo_insufficient_balance",{assetValue:t,sender:o});let m=sr({consensusBranchId:await Tr(),expiryHeight:0,lockTime:0,version:4,versionGroupId:lr.SAPLING}),{tx:T,inputs:g}=xr({compiledMemo:i,inputs:l,outputs:h,sender:o,tx:m});return{inputs:g,outputs:h,tx:T}}function Zt(e){let t=hr(e).with({signer:Ye.not(Ye.nullish)},({signer:c})=>c).with({phrase:Ye.string},({phrase:c,derivationPath:i,index:p=0})=>{let u=nr({chain:_e.Zcash,derivationPath:i,index:p}),l=er(u);return gr({derivationPath:l,phrase:c})}).otherwise(()=>{return}),n=ne({chain:_e.Zcash,signer:t});async function r(c){if(!t)throw new re("toolbox_utxo_no_signer");return await t.signTransaction(c)}async function s(c){let i=await r(c);return n.broadcastTx(i.toHex())}async function o({recipient:c,assetValue:i,feeOptionKey:p=tr.Fast,sweep:u,...l}){let h=await t?.getAddress();if(!(t&&h))throw new re("toolbox_utxo_no_signer");let m=l.feeRate||(await n.getFeeRates())[p],{tx:T}=await Wt({...l,assetValue:i,feeRate:m,recipient:c,sender:h,sweep:u}),y=(await t.signTransaction(T)).toHex();return n.broadcastTx(y)}function d({phrase:c,derivationPath:i="m/44'/133'/0'/0/0"}){let p=Nt(c),l=Mt.fromMasterSeed(p).derive(i);if(!l.privateKey||!l.publicKey)throw new re("toolbox_utxo_invalid_params");return{privateKey:l.privateKey,publicKey:l.publicKey}}function a({phrase:c,derivationPath:i="m/44'/133'/0'/0/0"}){let p=d({derivationPath:i,phrase:c}),u=tt();return cr(u).encode(p.privateKey)}return{...n,createKeysForPath:d,createTransaction:Wt,getPrivateKeyFromMnemonic:a,signAndBroadcastTransaction:s,signTransaction:r,transfer:o,validateAddress:we}}import{hex as yr}from"@scure/base";import{HDKey as br}from"@scure/bip32";import{derivationPathToString as wr}from"@swapkit/helpers";function vr({xpub:e,chain:t,count:n,startIndex:r=0,accountIndex:s}){if(R("count",n),n<1)throw RangeError("count must be at least 1");R("startIndex",r);let o=C(t),d=br.fromExtendedKey(e,o.bip32),a=G({accountIndex:s,chain:t}),c=ae(a),i=[];for(let p of[!1,!0]){let u=d.deriveChild(Number(p));for(let l=0;l<n;l++){let h=r+l,m=u.deriveChild(h);if(!m.publicKey)continue;let T=xe({accountIndex:s,chain:t,change:p,index:h});i.push({accountIndex:c,address:Pe({chain:t,network:o,publicKey:m.publicKey}),change:p,index:h,path:wr(T),pubkey:yr.encode(m.publicKey)})}}return i}function Ws(e,t){switch(e){case fe.BitcoinCash:return Dt(t||{});case fe.Zcash:return Zt(t);case fe.Bitcoin:case fe.Dogecoin:case fe.Litecoin:case fe.Dash:return ne({chain:e,...t});default:throw new Pr("toolbox_utxo_not_supported",{chain:e})}}export{Ze as InputSizes,Nr as MIN_TX_FEE,vn as OP_RETURN_OVERHEAD,De as OutputSizes,ze as SEGWIT_MARKER_FLAG_WEIGHT,Le as TX_OVERHEAD,$e as UTXOScriptType,pt as UtxoNetwork,F as accumulative,te as addInputsAndOutputs,Ct as addressFromKeysGetter,R as assertDerivationIndex,ue as calculateTxSize,X as compileMemo,Dt as createBCHToolbox,Br as createCustomUtxoApi,Vt as createHDWalletHelpers,ne as createUTXOToolbox,Zt as createZcashToolbox,vr as deriveAddressesFromXpub,ht as detectAddressNetwork,be as getDustThreshold,J as getInputSize,C as getNetworkForChain,He as getOutputSize,ye as getScriptTypeForAddress,ae as getUTXOAccountIndexFromPath,G as getUTXOAccountPath,xe as getUTXOAddressPath,Ot as getUTXOAddressValidator,_ as getUtxoApi,Sr as getUtxoNetwork,Ws as getUtxoToolbox,lt as isValidAddress,Re as nonSegwitChains,de as stripPrefix,We as stripToCashAddress,Ke as toCashAddress,Z as toLegacyAddress,Y as validateBchAddress,Pt as validateUtxoAddress,we as validateZcashAddress};
|
|
@@ -28,9 +28,9 @@ export declare function BaseEVMToolbox<P extends Provider | BrowserProvider, S e
|
|
|
28
28
|
}): {
|
|
29
29
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: ApproveParams) => Promise<string>;
|
|
30
30
|
approvedAmount: ({ assetAddress, spenderAddress, from }: IsApprovedParams) => Promise<bigint>;
|
|
31
|
-
broadcastTransaction: (
|
|
31
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
32
32
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: CallParams) => Promise<T>;
|
|
33
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: ApproveParams) => Promise<{
|
|
33
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: ApproveParams) => Promise<{
|
|
34
34
|
value: string;
|
|
35
35
|
to: string;
|
|
36
36
|
data: string;
|
|
@@ -7,9 +7,9 @@ export declare function ETHToolbox(params: EVMToolboxParams): {
|
|
|
7
7
|
}[], multicallAddress?: string, funcName?: string, feeOptionKey?: FeeOption) => Promise<string>;
|
|
8
8
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
9
9
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
10
|
-
broadcastTransaction: (
|
|
10
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
11
11
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
12
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
12
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
13
13
|
value: string;
|
|
14
14
|
to: string;
|
|
15
15
|
data: string;
|
|
@@ -179,9 +179,9 @@ export declare function ETHToolbox(params: EVMToolboxParams): {
|
|
|
179
179
|
export declare const ADIToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
180
180
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
181
181
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
182
|
-
broadcastTransaction: (
|
|
182
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
183
183
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
184
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
184
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
185
185
|
value: string;
|
|
186
186
|
to: string;
|
|
187
187
|
data: string;
|
|
@@ -351,9 +351,9 @@ export declare const ADIToolbox: ({ provider, ...toolboxParams }: EVMToolboxPara
|
|
|
351
351
|
export declare const ARBToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
352
352
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
353
353
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
354
|
-
broadcastTransaction: (
|
|
354
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
355
355
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
356
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
356
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
357
357
|
value: string;
|
|
358
358
|
to: string;
|
|
359
359
|
data: string;
|
|
@@ -523,9 +523,9 @@ export declare const ARBToolbox: ({ provider, ...toolboxParams }: EVMToolboxPara
|
|
|
523
523
|
export declare const AURORAToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
524
524
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
525
525
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
526
|
-
broadcastTransaction: (
|
|
526
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
527
527
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
528
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
528
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
529
529
|
value: string;
|
|
530
530
|
to: string;
|
|
531
531
|
data: string;
|
|
@@ -695,9 +695,9 @@ export declare const AURORAToolbox: ({ provider, ...toolboxParams }: EVMToolboxP
|
|
|
695
695
|
export declare const AVAXToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
696
696
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
697
697
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
698
|
-
broadcastTransaction: (
|
|
698
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
699
699
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
700
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
700
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
701
701
|
value: string;
|
|
702
702
|
to: string;
|
|
703
703
|
data: string;
|
|
@@ -874,9 +874,9 @@ export declare const BASEToolbox: ({ provider, ...toolboxSignerParams }: EVMTool
|
|
|
874
874
|
getL1GasPrice: () => Promise<bigint | undefined>;
|
|
875
875
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
876
876
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
877
|
-
broadcastTransaction: (
|
|
877
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
878
878
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
879
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
879
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
880
880
|
value: string;
|
|
881
881
|
to: string;
|
|
882
882
|
data: string;
|
|
@@ -1045,9 +1045,9 @@ export declare const BASEToolbox: ({ provider, ...toolboxSignerParams }: EVMTool
|
|
|
1045
1045
|
export declare const BERAToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
1046
1046
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
1047
1047
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
1048
|
-
broadcastTransaction: (
|
|
1048
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
1049
1049
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
1050
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
1050
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
1051
1051
|
value: string;
|
|
1052
1052
|
to: string;
|
|
1053
1053
|
data: string;
|
|
@@ -1217,9 +1217,9 @@ export declare const BERAToolbox: ({ provider, ...toolboxParams }: EVMToolboxPar
|
|
|
1217
1217
|
export declare const BSCToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
1218
1218
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
1219
1219
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
1220
|
-
broadcastTransaction: (
|
|
1220
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
1221
1221
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
1222
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
1222
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
1223
1223
|
value: string;
|
|
1224
1224
|
to: string;
|
|
1225
1225
|
data: string;
|
|
@@ -1389,9 +1389,9 @@ export declare const BSCToolbox: ({ provider, ...toolboxParams }: EVMToolboxPara
|
|
|
1389
1389
|
export declare const BotanixToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
1390
1390
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
1391
1391
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
1392
|
-
broadcastTransaction: (
|
|
1392
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
1393
1393
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
1394
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
1394
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
1395
1395
|
value: string;
|
|
1396
1396
|
to: string;
|
|
1397
1397
|
data: string;
|
|
@@ -1561,9 +1561,9 @@ export declare const BotanixToolbox: ({ provider, ...toolboxParams }: EVMToolbox
|
|
|
1561
1561
|
export declare const COREToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
1562
1562
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
1563
1563
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
1564
|
-
broadcastTransaction: (
|
|
1564
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
1565
1565
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
1566
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
1566
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
1567
1567
|
value: string;
|
|
1568
1568
|
to: string;
|
|
1569
1569
|
data: string;
|
|
@@ -1733,9 +1733,9 @@ export declare const COREToolbox: ({ provider, ...toolboxParams }: EVMToolboxPar
|
|
|
1733
1733
|
export declare const CORNToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
1734
1734
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
1735
1735
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
1736
|
-
broadcastTransaction: (
|
|
1736
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
1737
1737
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
1738
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
1738
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
1739
1739
|
value: string;
|
|
1740
1740
|
to: string;
|
|
1741
1741
|
data: string;
|
|
@@ -1905,9 +1905,9 @@ export declare const CORNToolbox: ({ provider, ...toolboxParams }: EVMToolboxPar
|
|
|
1905
1905
|
export declare const CROToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
1906
1906
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
1907
1907
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
1908
|
-
broadcastTransaction: (
|
|
1908
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
1909
1909
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
1910
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
1910
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
1911
1911
|
value: string;
|
|
1912
1912
|
to: string;
|
|
1913
1913
|
data: string;
|
|
@@ -2077,9 +2077,9 @@ export declare const CROToolbox: ({ provider, ...toolboxParams }: EVMToolboxPara
|
|
|
2077
2077
|
export declare const GNOToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
2078
2078
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
2079
2079
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
2080
|
-
broadcastTransaction: (
|
|
2080
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
2081
2081
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
2082
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
2082
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
2083
2083
|
value: string;
|
|
2084
2084
|
to: string;
|
|
2085
2085
|
data: string;
|
|
@@ -2249,9 +2249,9 @@ export declare const GNOToolbox: ({ provider, ...toolboxParams }: EVMToolboxPara
|
|
|
2249
2249
|
export declare const HOODToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
2250
2250
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
2251
2251
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
2252
|
-
broadcastTransaction: (
|
|
2252
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
2253
2253
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
2254
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
2254
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
2255
2255
|
value: string;
|
|
2256
2256
|
to: string;
|
|
2257
2257
|
data: string;
|
|
@@ -2421,9 +2421,9 @@ export declare const HOODToolbox: ({ provider, ...toolboxParams }: EVMToolboxPar
|
|
|
2421
2421
|
export declare const HYPEREVMToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
2422
2422
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
2423
2423
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
2424
|
-
broadcastTransaction: (
|
|
2424
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
2425
2425
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
2426
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
2426
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
2427
2427
|
value: string;
|
|
2428
2428
|
to: string;
|
|
2429
2429
|
data: string;
|
|
@@ -2593,9 +2593,9 @@ export declare const HYPEREVMToolbox: ({ provider, ...toolboxParams }: EVMToolbo
|
|
|
2593
2593
|
export declare const LINEAToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
2594
2594
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
2595
2595
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
2596
|
-
broadcastTransaction: (
|
|
2596
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
2597
2597
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
2598
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
2598
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
2599
2599
|
value: string;
|
|
2600
2600
|
to: string;
|
|
2601
2601
|
data: string;
|
|
@@ -2765,9 +2765,9 @@ export declare const LINEAToolbox: ({ provider, ...toolboxParams }: EVMToolboxPa
|
|
|
2765
2765
|
export declare const MATICToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
2766
2766
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
2767
2767
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
2768
|
-
broadcastTransaction: (
|
|
2768
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
2769
2769
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
2770
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
2770
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
2771
2771
|
value: string;
|
|
2772
2772
|
to: string;
|
|
2773
2773
|
data: string;
|
|
@@ -2937,9 +2937,9 @@ export declare const MATICToolbox: ({ provider, ...toolboxParams }: EVMToolboxPa
|
|
|
2937
2937
|
export declare const MEGAETHToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
2938
2938
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
2939
2939
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
2940
|
-
broadcastTransaction: (
|
|
2940
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
2941
2941
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
2942
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
2942
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
2943
2943
|
value: string;
|
|
2944
2944
|
to: string;
|
|
2945
2945
|
data: string;
|
|
@@ -3109,9 +3109,9 @@ export declare const MEGAETHToolbox: ({ provider, ...toolboxParams }: EVMToolbox
|
|
|
3109
3109
|
export declare const MONADToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
3110
3110
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
3111
3111
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
3112
|
-
broadcastTransaction: (
|
|
3112
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
3113
3113
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
3114
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
3114
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
3115
3115
|
value: string;
|
|
3116
3116
|
to: string;
|
|
3117
3117
|
data: string;
|
|
@@ -3281,9 +3281,9 @@ export declare const MONADToolbox: ({ provider, ...toolboxParams }: EVMToolboxPa
|
|
|
3281
3281
|
export declare const PLASMAToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
3282
3282
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
3283
3283
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
3284
|
-
broadcastTransaction: (
|
|
3284
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
3285
3285
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
3286
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
3286
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
3287
3287
|
value: string;
|
|
3288
3288
|
to: string;
|
|
3289
3289
|
data: string;
|
|
@@ -3453,9 +3453,9 @@ export declare const PLASMAToolbox: ({ provider, ...toolboxParams }: EVMToolboxP
|
|
|
3453
3453
|
export declare const SONICToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
3454
3454
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
3455
3455
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
3456
|
-
broadcastTransaction: (
|
|
3456
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
3457
3457
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
3458
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
3458
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
3459
3459
|
value: string;
|
|
3460
3460
|
to: string;
|
|
3461
3461
|
data: string;
|
|
@@ -3632,9 +3632,9 @@ export declare const UNIToolbox: ({ provider, ...toolboxSignerParams }: EVMToolb
|
|
|
3632
3632
|
getL1GasPrice: () => Promise<bigint | undefined>;
|
|
3633
3633
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
3634
3634
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
3635
|
-
broadcastTransaction: (
|
|
3635
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
3636
3636
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
3637
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
3637
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
3638
3638
|
value: string;
|
|
3639
3639
|
to: string;
|
|
3640
3640
|
data: string;
|
|
@@ -3803,9 +3803,9 @@ export declare const UNIToolbox: ({ provider, ...toolboxSignerParams }: EVMToolb
|
|
|
3803
3803
|
export declare const XLayerToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
3804
3804
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
3805
3805
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
3806
|
-
broadcastTransaction: (
|
|
3806
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
3807
3807
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
3808
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
3808
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
3809
3809
|
value: string;
|
|
3810
3810
|
to: string;
|
|
3811
3811
|
data: string;
|
|
@@ -12,9 +12,9 @@ export declare function createOPStackToolbox(chain: Chain.Optimism | Chain.Base
|
|
|
12
12
|
getL1GasPrice: () => Promise<bigint | undefined>;
|
|
13
13
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
14
14
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
15
|
-
broadcastTransaction: (
|
|
15
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
16
16
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
17
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
17
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
18
18
|
value: string;
|
|
19
19
|
to: string;
|
|
20
20
|
data: string;
|
|
@@ -190,9 +190,9 @@ export declare const OPToolbox: ({ provider, ...toolboxSignerParams }: EVMToolbo
|
|
|
190
190
|
getL1GasPrice: () => Promise<bigint | undefined>;
|
|
191
191
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
192
192
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
193
|
-
broadcastTransaction: (
|
|
193
|
+
broadcastTransaction: (signedTx: string) => Promise<import("ethers").TransactionResponse>;
|
|
194
194
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
195
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<{
|
|
195
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<{
|
|
196
196
|
value: string;
|
|
197
197
|
to: string;
|
|
198
198
|
data: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TronSignedTransaction, TronTransaction } from "../types";
|
|
1
|
+
import type { TronGridResponse, TronSignedTransaction, TronTransaction } from "../types";
|
|
2
2
|
export declare function fetchAccountFromTronGrid(address: string): Promise<{
|
|
3
3
|
balance: number;
|
|
4
4
|
trc20: import("../types").TronGridTRC20Balance;
|
|
@@ -7,7 +7,7 @@ export declare function buildTrxTransaction({ from, to, amount }: {
|
|
|
7
7
|
from: string;
|
|
8
8
|
to: string;
|
|
9
9
|
amount: number;
|
|
10
|
-
}): Promise<TronTransaction
|
|
10
|
+
}): Promise<TronGridResponse<TronTransaction>>;
|
|
11
11
|
export declare function buildContractTransaction({ ownerAddress, contractAddress, functionSelector, parameter, feeLimit, callValue, }: {
|
|
12
12
|
ownerAddress: string;
|
|
13
13
|
contractAddress: string;
|
|
@@ -24,6 +24,13 @@ export interface TronTransaction {
|
|
|
24
24
|
contractRet?: string;
|
|
25
25
|
}>;
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* TronGrid answers contract validation failures with HTTP 200 and an `Error` field rather than an
|
|
29
|
+
* error status, so every response body may carry one alongside (or instead of) the expected shape.
|
|
30
|
+
*/
|
|
31
|
+
export type TronGridResponse<T> = T & {
|
|
32
|
+
Error?: string;
|
|
33
|
+
};
|
|
27
34
|
export type TronTransactionMetadata = {
|
|
28
35
|
data?: string;
|
|
29
36
|
value?: string;
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"dependencies": { "@swapkit/helpers": "5.
|
|
2
|
+
"dependencies": { "@swapkit/helpers": "5.3.0", "@swapkit/utxo-signer": "3.0.0" },
|
|
3
3
|
"description": "SwapKit - Toolboxes",
|
|
4
4
|
"devDependencies": {
|
|
5
5
|
"@aptos-labs/ts-sdk": "7.0.1",
|
|
@@ -131,5 +131,5 @@
|
|
|
131
131
|
"type-check:go": "tsgo"
|
|
132
132
|
},
|
|
133
133
|
"type": "module",
|
|
134
|
-
"version": "5.
|
|
134
|
+
"version": "5.3.0"
|
|
135
135
|
}
|
package/dist/chunk-44m22jy1.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var r;((x)=>{x.Test="goerli";x.Main="homestead"})(r||={});export{r as a};
|