@swapkit/toolboxes 4.28.4 → 5.1.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 +17 -20
- package/dist/chunk-55jkfkar.js +2 -0
- package/dist/{chunk-ap5mzmjf.js → chunk-v9dcj9m7.js} +1 -1
- package/dist/src/aptos/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/ripple/index.js +1 -1
- package/dist/src/solana/index.js +1 -1
- package/dist/src/stellar/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/aptos/toolbox.d.ts +5 -5
- package/dist/types/aptos/types.d.ts +4 -0
- package/dist/types/cosmos/thorchainUtils/messages.d.ts +30 -6
- package/dist/types/cosmos/thorchainUtils/registry.d.ts +72 -2
- package/dist/types/cosmos/thorchainUtils/types/client-types.d.ts +6 -1
- package/dist/types/cosmos/toolbox/cosmos.d.ts +9 -11
- package/dist/types/cosmos/toolbox/thorchain.d.ts +83 -14
- package/dist/types/cosmos/types.d.ts +69 -3
- package/dist/types/cosmos/util.d.ts +150 -6
- package/dist/types/hypercore/__tests__/fixtures.d.ts +40 -0
- package/dist/types/hypercore/helpers.d.ts +12 -1
- package/dist/types/hypercore/index.d.ts +1 -0
- package/dist/types/hypercore/payin.d.ts +16 -0
- package/dist/types/hypercore/signing.d.ts +91 -0
- package/dist/types/hypercore/toolbox.d.ts +69 -6
- package/dist/types/hypercore/types.d.ts +25 -5
- package/dist/types/ripple/index.d.ts +5 -1
- package/dist/types/solana/index.d.ts +2 -0
- package/dist/types/solana/toolbox.d.ts +1 -1
- package/dist/types/ton/toolbox.d.ts +2 -0
- package/dist/types/tron/toolbox.d.ts +1 -1
- package/dist/types/tron/types.d.ts +2 -0
- package/package.json +22 -96
- package/dist/chunk-btth5bse.js +0 -1
- package/dist/chunk-z61r1327.js +0 -2
- package/dist/src/aleo/index.cjs +0 -1
- package/dist/src/aptos/index.cjs +0 -1
- package/dist/src/cardano/index.cjs +0 -1
- package/dist/src/cosmos/index.cjs +0 -1
- package/dist/src/evm/index.cjs +0 -1
- package/dist/src/hypercore/index.cjs +0 -1
- package/dist/src/index.cjs +0 -1
- package/dist/src/near/index.cjs +0 -1
- package/dist/src/radix/index.cjs +0 -1
- package/dist/src/ripple/index.cjs +0 -1
- package/dist/src/solana/index.cjs +0 -1
- package/dist/src/starknet/index.cjs +0 -1
- package/dist/src/stellar/index.cjs +0 -1
- package/dist/src/substrate/index.cjs +0 -1
- package/dist/src/sui/index.cjs +0 -1
- package/dist/src/ton/index.cjs +0 -1
- package/dist/src/tron/index.cjs +0 -1
- package/dist/src/utxo/index.cjs +0 -1
package/dist/src/near/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var pE=Object.create;var{getPrototypeOf:dE,defineProperty:b,getOwnPropertyNames:UE,getOwnPropertyDescriptor:nE}=Object,jE=Object.prototype.hasOwnProperty;function zE(O){return this[O]}var oE,iE,MO=(O,_,T)=>{var M=O!=null&&typeof O==="object";if(M){var Q=_?oE??=new WeakMap:iE??=new WeakMap,$=Q.get(O);if($)return $}T=O!=null?pE(dE(O)):{};let Z=_||!O||!O.__esModule?b(T,"default",{value:O,enumerable:!0}):T;for(let J of UE(O))if(!jE.call(Z,J))b(Z,J,{get:zE.bind(O,J),enumerable:!0});if(M)Q.set(O,Z);return Z},cE=(O)=>{var _=(JE??=new WeakMap).get(O),T;if(_)return _;if(_=b({},"__esModule",{value:!0}),O&&typeof O==="object"||typeof O==="function"){for(var M of UE(O))if(!jE.call(_,M))b(_,M,{get:zE.bind(O,M),enumerable:!(T=nE(O,M))||T.enumerable})}return JE.set(O,_),_},JE;var tE=(O)=>O;function sE(O,_){this[O]=tE.bind(null,_)}var rE=(O,_)=>{for(var T in _)b(O,T,{get:_[T],enumerable:!0,configurable:!0,set:sE.bind(_,T)})};var G=(O,_)=>()=>(O&&(_=O(O=0)),_);function y(O){return O.length>=2&&O.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(O)}async function p(O){let{KeyPair:_}=await import("@near-js/crypto"),T=O.index||0,M=O.derivationPath?g.derivationPathToString(O.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{parseSeedPhrase:Q}=await import("near-seed-phrase"),{secretKey:$}=Q(O.phrase,M),Z=_.fromString($);return FE(Z)}async function t(O){let{KeyPair:_}=await import("@near-js/crypto"),T=_.fromString(O);return FE(T)}async function FE(O){let{KeyPairSigner:_}=await import("@near-js/signers");class T extends _{#E;constructor(M){super(M);this.#E=M}getAddress(){let M=this.#E.getPublicKey(),Q=Buffer.from(M.data).toString("hex");return Promise.resolve(Q)}}return new T(O)}async function d(O,_){let M=(await O.query({account_id:_,finality:"final",request_type:"view_access_key_list"})).keys.find((J)=>J.access_key.permission==="FullAccess");if(!M)throw new g.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:Q}=await import("@near-js/crypto"),$=Q.fromString(M.public_key);return{nonce:M.access_key.nonce||0,publicKey:$}}var g;var s=G(()=>{g=require("@swapkit/helpers")});function r(O){return"recipient"in O&&"amount"in O&&!("contractId"in O)}function a(O){return"contractId"in O&&"methodName"in O}function e(O){return"actions"in O}function EE(O){return"newAccountId"in O}function OE(O){return"contractCode"in O}function NE(O){return"customEstimator"in O}function CE(O){let _=0;for(let T of O)switch(T.enum){case"transfer":_+=Number(X.SIMPLE_TRANSFER);break;case"functionCall":_+=Number(X.CONTRACT_CALL);break;case"createAccount":_+=Number(X.ACCOUNT_CREATION);break;case"deployContract":_+=Number(X.CONTRACT_DEPLOYMENT);break;case"addKey":_+=Number(X.ACCESS_KEY_ADDITION);break;case"deleteKey":_+=Number(X.ACCESS_KEY_DELETION);break;case"stake":_+=Number(X.STAKE);break;default:_+=Number(X.CONTRACT_CALL)}return _.toString()}function _E(O){if(O==="ft_transfer"||O==="ft_transfer_call")return X.TOKEN_TRANSFER;if(O==="storage_deposit")return X.STORAGE_DEPOSIT;return X.CONTRACT_CALL}function aE(O){return(BigInt(O)*BigInt(1000000000000)).toString()}function eE(O){return(BigInt(O)/BigInt(1000000000000)).toString()}var X;var xE=G(()=>{X={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function LE({account:O,contractId:_,viewMethods:T,changeMethods:M}){let{Contract:Q}=await import("@near-js/accounts");return new Q(O,_,{changeMethods:M,useLocalViewExecution:!0,viewMethods:T})}function QO(){function O(){let _=Date.now(),T=TE||_;return TE=T,_>TE?_:T+1}return EO+O().toString(36)}function AE(O){return async function(T,M=!0){let Q=await IE.SwapKitApi.getChainBalance({address:T,chain:O,scamFilter:M}),{baseDecimal:$}=K.getChainConfig(O),Z=Q.map(({identifier:z,value:S,decimal:P})=>{return new K.AssetValue({decimal:P||$,identifier:z,value:S})});if(!Z.some((z)=>z.isGasAsset))return[K.AssetValue.from({chain:O}),...Z];return Z}}var K,IE,EO,TE=0;var wE=G(()=>{K=require("@swapkit/helpers"),IE=require("@swapkit/helpers/api"),EO=typeof process<"u"&&process.pid?process.pid.toString(36):""});function xO(O){let _;async function T(){if(_)return _;return _=await D.match(O).with({phrase:D.P.string},async(E)=>{return await p(E)}).with({signer:D.P.any},({signer:E})=>E).otherwise(()=>{return}),_}async function M(){let{JsonRpcProvider:E}=await import("@near-js/providers"),N=await R.getRPCUrl(R.Chain.Near);return new E({url:N})}async function Q(E){let{Account:N}=await import("@near-js/accounts"),C=await M(),x=await T(),L=E||await $();return new N(L,C,x)}async function $(){let E=await T();if(!E)throw new R.SwapKitError("toolbox_near_no_signer");return await E.getAddress()}async function Z(E,N){return(N||await M()).callFunction(E.contractId,"storage_balance_of",{account_id:E.accountId},{finality:"final"})}async function J(E,N){try{let C=await N.callFunction(E,"storage_balance_bounds",{},{finality:"final"});return C?.min?BigInt(C.min):HE}catch{return HE}}function z(E){return(E*(ME+_O)+ME-1n)/ME}function S(E,N){return BigInt(E)*BigInt(N.runtime_config.storage_amount_per_byte)}function P(E,N){if(E<=0n)throw new R.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:N});return E}async function n(E){return await(E||await M()).experimental_protocolConfig({finality:"final"})}async function kE(E,N,C){let L=await(C||await M()).callFunction(E,"ft_balance_of",{account_id:N},{finality:"final"});return BigInt(L||"0")}async function VE(E){if(!await T())throw new R.SwapKitError("toolbox_near_no_signer");let{assetValue:C,recipient:x,memo:L,sweep:Y}=E,f=await $(),B=await YE({assetValue:C,memo:L,recipient:x,sender:f,sweep:Y});return XE(B)}async function bE({assetValue:E,attachedDeposit:N,memo:C,provider:x,recipient:L,sender:Y,sweep:f}){let B=E.address;if(!B)throw new R.SwapKitError("toolbox_near_missing_contract_address");let W=await Z({accountId:L,contractId:B},x),q=W?0n:await J(B,x),U=W?NO:OO,I=BigInt(N||"1"),A=E.getBaseValue("bigint");if(f){let[w,H,k,u]=await Promise.all([kE(B,Y,x),x.viewAccount(Y,{finality:"final"}),n(x),c(x)]);A=P(w,{asset:E.toString(),balance:w.toString()});let v=S(H.storage_usage,k),V=H.amount-v,l=q,qE=(U+(W?0n:GE))*z(u)+l+I;if(V<qE)throw new R.SwapKitError("toolbox_sweep_amount_too_low",{asset:E.toString(),availableNear:V.toString(),reason:"Insufficient NEAR to cover token transfer gas and storage deposit",requiredNear:qE.toString()})}let j=[];if(!W)j.push(await h({args:{account_id:L},attachedDeposit:q.toString(),gas:GE.toString(),methodName:"storage_deposit"}));return j.push(await h({args:{amount:A.toString(),memo:C||null,receiver_id:L},attachedDeposit:I.toString(),gas:U.toString(),methodName:"ft_transfer"})),BE({actions:j,receiverId:B,sender:Y})}async function yE({assetValue:E,attachedDeposit:N,memo:C,provider:x,recipient:L,sender:Y,sweep:f}){let{publicKey:B,nonce:W}=await d(x,Y),q=E.getBaseValue("bigint");if(f){let[k,u]=await Promise.all([x.viewAccount(Y,{finality:"final"}),n(x)]),v=await ZE({assetValue:E,memo:C,recipient:L,sweep:f},u),V=S(k.storage_usage,u),l=0n;if(C&&N){let $E=await c(x);l=CO*z($E)+BigInt(N)}q=P(k.amount-v.getBaseValue("bigint")-V-l,{asset:E.toString(),balance:k.amount.toString(),fee:v.getBaseValue("bigint").toString(),storageStakeReserve:V.toString()})}let{actionCreators:U,createTransaction:I}=await import("@near-js/transactions"),{baseDecode:A}=await import("@near-js/utils"),j=[U.transfer(q)];if(C&&N)j.push(U.functionCall("memo",{memo:C},BigInt("250000000000000"),BigInt(N)));let w=await x.block({finality:"final"}),H=A(w.header.hash);return I(Y,B,L,W+1,j,H)}async function YE({recipient:E,assetValue:N,memo:C,attachedDeposit:x,sender:L,functionCall:Y,sweep:f}){if(!y(E))throw new R.SwapKitError("toolbox_near_invalid_address",{recipient:E});if(!y(L))throw new R.SwapKitError("toolbox_near_invalid_address",{sender:L});if(Y)return fE({...Y,sender:L});if(f&&!await T())throw new R.SwapKitError("toolbox_near_no_signer");let B=await M(),W={assetValue:N,attachedDeposit:x,memo:C,provider:B,recipient:E,sender:L,sweep:f};return N.isGasAsset?yE(W):bE(W)}function KE(E){let N=E.encode();return Buffer.from(N).toString("base64")}async function fE({args:E,attachedDeposit:N,contractId:C,gas:x,methodName:L,sender:Y}){let f=await h({args:E,attachedDeposit:N,gas:x,methodName:L});return BE({actions:[f],receiverId:C,sender:Y})}async function BE({actions:E,receiverId:N,sender:C}){let x=await M(),{publicKey:L,nonce:Y}=await d(x,C),{createTransaction:f}=await import("@near-js/transactions"),{baseDecode:B}=await import("@near-js/utils"),W=await x.block({finality:"final"}),q=B(W.header.hash);return f(C,L,N,Y+1,E,q)}async function h(E){let{actionCreators:N}=await import("@near-js/transactions");return N.functionCall(E.methodName,Buffer.from(JSON.stringify(E.args)),BigInt(E.gas),BigInt(E.attachedDeposit))}async function QE(E){let N=await T();if(!N)throw new R.SwapKitError("toolbox_near_no_signer");await SE(E);let[C,x]=await N.signTransaction(E);return x}async function SE(E){let N=E.publicKey;if(N.toString?.().startsWith("ed25519:")||N.toString?.().startsWith("secp256k1:"))return;let{KeyType:C,PublicKey:x}=await import("@near-js/crypto"),L=N.data||N.ed25519Key?.data,Y=N.secp256k1Key?.data;if(L){E.publicKey=new x({data:Uint8Array.from(L),keyType:C.ED25519});return}if(Y)E.publicKey=new x({data:Uint8Array.from(Y),keyType:C.SECP256K1})}function o(E){if(typeof E==="string")return E;if(Array.isArray(E))return E.map(o).find(Boolean);if(!(E&&typeof E==="object"))return;let N=E;return N.transaction?.hash||N.transaction_outcome?.id}function i(E){return E instanceof Error?E.message:String(E)}async function WE(E){let C=await(await M()).sendTransaction(E),x=o(C);if(!x)throw new R.SwapKitError("toolbox_near_transfer_failed",{result:C});return x}async function XE(E){let N=await T();if(!N)throw new R.SwapKitError("toolbox_near_no_signer");let C;try{C=await QE(E)}catch(x){let L;try{L=N.signAndSendTransaction?await N.signAndSendTransaction({actions:E.actions,receiverId:E.receiverId,signerId:E.signerId}):await N.signAndSendTransactions?.({transactions:[E]})}catch(f){throw new R.SwapKitError({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:i(x),signAndSendError:i(f)}},f)}let Y=o(L);if(Y)return Y;throw x}return WE(C)}async function ZE(E,N){let C=await T();if("assetValue"in E){if(E.sweep&&!C)throw new R.SwapKitError("toolbox_near_no_signer");try{let[L,Y]=await Promise.all([c(),N?Promise.resolve(N):n()]),{runtime_config:f}=Y,{execution:B,send_sir:W}=f.transaction_costs.action_receipt_creation_config,{execution:q,send_sir:U}=f.transaction_costs.action_creation_config.transfer_cost,I=BigInt(U)+BigInt(q),A=BigInt(W)+BigInt(B),j=I+A,w=E.sweep?z(L):L,H=j*w;return R.AssetValue.from({chain:R.Chain.Near,value:H})}catch(L){throw new R.SwapKitError({errorKey:"toolbox_fee_estimation_failed",info:{chain:R.Chain.Near,message:i(L)}},L)}}let x=C?await Q():void 0;return m(E,x)}async function c(E){let C=await(E||await M()).gasPrice(null);return BigInt(C.gas_price)}async function PE(E,N,C){if(!await T())throw new R.SwapKitError("toolbox_near_no_signer");let L=await Q(),{formatNearAmount:Y}=await import("@near-js/utils"),{PublicKey:f}=await import("@near-js/crypto"),B=Y(C)||"0";return(await L.createAccount(E,f.fromString(N),BigInt(B))).transaction.hash}async function hE(E){let N=await T();try{if(!N)throw new R.SwapKitError("toolbox_near_no_signer");let{actionCreators:C}=await import("@near-js/transactions"),{contractId:x,methodName:L,args:Y,deposit:f}=E,B=await Q(),W=await m({args:Y||{},contractId:x,methodName:L}),q=C.functionCall(L,Y||{},W.getBaseValue("bigint"),BigInt(f||"1"));return(await B.signAndSendTransaction({actions:[q],receiverId:x})).transaction_outcome.id}catch(C){throw new R.SwapKitError("toolbox_near_transfer_failed",{error:C})}}async function mE(E){let N=await Q();return LE({account:N,changeMethods:E.changeMethods,contractId:E.contractId,viewMethods:E.viewMethods})}async function uE(E){if(!await T())throw new R.SwapKitError("toolbox_near_no_signer");if(E.actions.length===0)throw new R.SwapKitError("toolbox_near_empty_batch");return(await(await Q()).signAndSendTransaction({actions:E.actions,receiverId:E.receiverId})).transaction.hash}async function m(E,N){let C=await D.match(E).when(r,()=>X.SIMPLE_TRANSFER).when(a,(L)=>_E(L.methodName)).when(e,(L)=>CE(L.actions)).when(EE,()=>X.ACCOUNT_CREATION).when(OE,()=>X.CONTRACT_DEPLOYMENT).when(NE,(L)=>{if(!N)throw new R.SwapKitError("toolbox_near_no_account");return L.customEstimator(N)}).otherwise(()=>{throw new R.SwapKitError("toolbox_near_invalid_gas_params")}),x=BigInt(C)*BigInt(1000000000000);return R.AssetValue.from({chain:R.Chain.Near,value:x})}function vE(E,N){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),m(E,N)}async function lE(){let E=await M();try{return(await E.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function gE(){let E=await T();return E?(await E.getPublicKey()).toString():""}return{broadcastTransaction:WE,callFunction:hE,createAction:h,createContract:mE,createContractFunctionCall:fE,createSubAccount:PE,createTransaction:YE,estimateGas:vE,estimateGasLimit:m,estimateTransactionFee:ZE,executeBatchTransaction:uE,getAddress:$,getBalance:AE(R.Chain.Near),getGasPrice:lE,getNearProvider:M,getPublicKey:gE,getSignerFromPhrase:p,getSignerFromPrivateKey:t,serializeTransaction:KE,signAndBroadcastTransaction:XE,signTransaction:QE,transfer:VE,validateAddress:y}}var R,D,HE=1250000000000000000000n,GE=150000000000000n,OO=150000000000000n,NO=250000000000000n,CO=250000000000000n,_O=500n,ME=10000n;var RE=G(()=>{wE();s();xE();R=require("@swapkit/helpers"),D=require("ts-pattern")});var DE=G(()=>{RE()});var LO={};rE(LO,{validateNearAddress:()=>y,tgasToGas:()=>aE,isSimpleTransfer:()=>r,isCustomEstimator:()=>NE,isContractDeployment:()=>OE,isContractCall:()=>a,isBatchTransaction:()=>e,isAccountCreation:()=>EE,getNearToolbox:()=>xO,getNearSignerFromPrivateKey:()=>t,getNearSignerFromPhrase:()=>p,getFullAccessPublicKey:()=>d,getContractMethodGas:()=>_E,gasToTGas:()=>eE,estimateBatchGas:()=>CE,createNearContract:()=>LE,GAS_COSTS:()=>X});module.exports=cE(LO);var TO=G(()=>{s();xE();RE();DE()});TO();
|
package/dist/src/radix/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var x=Object.create;var{getPrototypeOf:I,defineProperty:X,getOwnPropertyNames:_,getOwnPropertyDescriptor:S}=Object,$=Object.prototype.hasOwnProperty;function q(j){return this[j]}var T,C,w=(j,z,H)=>{var K=j!=null&&typeof j==="object";if(K){var Q=z?T??=new WeakMap:C??=new WeakMap,J=Q.get(j);if(J)return J}H=j!=null?x(I(j)):{};let L=z||!j||!j.__esModule?X(H,"default",{value:j,enumerable:!0}):H;for(let M of _(j))if(!$.call(L,M))X(L,M,{get:q.bind(j,M),enumerable:!0});if(K)Q.set(j,L);return L},D=(j)=>{var z=(Z??=new WeakMap).get(j),H;if(z)return z;if(z=X({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function"){for(var K of _(j))if(!$.call(z,K))X(z,K,{get:q.bind(j,K),enumerable:!(H=S(j,K))||H.enumerable})}return Z.set(j,z),z},Z;var E=(j)=>j;function F(j,z){this[j]=E.bind(null,z)}var P=(j,z)=>{for(var H in z)X(j,H,{get:z[H],enumerable:!0,configurable:!0,set:F.bind(z,H)})};var B=(j,z)=>()=>(j&&(z=j(j=0)),z);var f={};P(f,{validateRadixAddress:()=>G,getRadixToolbox:()=>y});module.exports=D(f);function G(j){return j.startsWith("account_rdx1")&&j.length===66}async function N({address:j,networkApi:z}){let H=!0,K,Q=[],J=await h(z);while(H){let L={address:j,at_ledger_state:{state_version:J},cursor:K,limit_per_page:100},M=await z.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:L});if(Q=Q.concat(M.items),M.next_cursor)K=M.next_cursor;else H=!1}return Q}async function R({resources:j,networkApi:z}){let H=[],K=50,Q=[];for(let J=0;J<j.length;J+=50)Q.push(j.slice(J,J+50));for(let J of Q){let L=J.map((O)=>O.resource_address),M=await z.state.getEntityDetailsVaultAggregated(L),W=new Map;for(let O of M)if(O.details!==void 0){let V=O.metadata?.items.find((v)=>v.key==="symbol"),Y=V?.value.typed.type==="String"?V.value.typed.value:"?";if(O.details.type==="FungibleResource")W.set(O.address,{decimals:O.details.divisibility,symbol:Y})}for(let O of J)if(O.aggregation_level==="Global"){let V=W.get(O.resource_address)||{decimals:0,symbol:"?"},Y=U.AssetValue.from({asset:V.symbol!==U.Chain.Radix?`${U.Chain.Radix}.${V.symbol}-${O.resource_address}`:"XRD.XRD",value:O.amount});H.push(Y)}}return H}async function h(j){return(await j.status.getCurrent()).ledger_state.state_version}function y({dappConfig:j}={}){let z=j||U.SKConfig.get("integrations").radix,H;async function K(){if(H)return H;let{GatewayApiClient:J}=await import("@radixdlt/babylon-gateway-api-sdk"),{RadixDappToolkit:L}=await import("@radixdlt/radix-dapp-toolkit"),M=L({...z,networkId:z.network?.networkId||1});return H=J.initialize(M.gatewayApi.clientConfig),H}async function Q(J){let L=await K(),M=await N({address:J,networkApi:L}),W=await R({networkApi:L,resources:M});if(!W.some((V)=>V.isGasAsset))return[U.AssetValue.from({chain:U.Chain.Radix}),...W];return W}return{getAddress:()=>"",getBalance:Q,getNetworkApi:K,signAndBroadcast:()=>{throw new U.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:G}}var U;var m=B(()=>{U=require("@swapkit/helpers")});m();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var z5=Object.create;var{getPrototypeOf:$5,defineProperty:k,getOwnPropertyNames:u,getOwnPropertyDescriptor:j5}=Object,p=Object.prototype.hasOwnProperty;function o(f){return this[f]}var q5,W5,k5=(f,U,q)=>{var Z=f!=null&&typeof f==="object";if(Z){var B=U?q5??=new WeakMap:W5??=new WeakMap,X=B.get(f);if(X)return X}q=f!=null?z5($5(f)):{};let D=U||!f||!f.__esModule?k(q,"default",{value:f,enumerable:!0}):q;for(let Q of u(f))if(!p.call(D,Q))k(D,Q,{get:o.bind(f,Q),enumerable:!0});if(Z)B.set(f,D);return D},Z5=(f)=>{var U=(x??=new WeakMap).get(f),q;if(U)return U;if(U=k({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var Z of u(f))if(!p.call(U,Z))k(U,Z,{get:o.bind(f,Z),enumerable:!(q=j5(f,Z))||q.enumerable})}return x.set(f,U),U},x;var v5=(f)=>f;function B5(f,U){this[f]=v5.bind(null,U)}var J5=(f,U)=>{for(var q in U)k(f,q,{get:U[q],enumerable:!0,configurable:!0,set:B5.bind(U,q)})};var S=(f,U)=>()=>(f&&(U=f(f=0)),U);function P(f){return/^[0-9A-Fa-f]{40}$/.test(f)}function N(f){if(P(f))return f.toUpperCase();if(f.length<=3){let q=Buffer.from(f.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${q}${"0".repeat(10)}`.toUpperCase()}let U=Buffer.from(f).toString("hex").toUpperCase();if(U.length>40)throw new c.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:f,reason:"Currency exceeds maximum length (20 bytes)"}});return U.padEnd(40,"0")}function Y5(f){if(!P(f))return f;if(f.toUpperCase().startsWith("00")){let U=f.slice(24,30);try{let q=Buffer.from(U,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(q)&&q.length>0)return q}catch{}return f.toUpperCase()}try{let U=f.replace(/0+$/,""),q=U.length%2===0?U:`${U}0`,Z=Buffer.from(q,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(Z))return Z}catch{}return f.toUpperCase()}function F(f){if(P(f))return f.toUpperCase();if(f.length<=3)return f;return N(f)}var c;var I=S(()=>{c=require("@swapkit/helpers")});async function M5(f,U){let q=F(f),Z=E.find((B)=>F(B.currency)===q&&B.issuer===U);if(Z)return Z;try{let B=await K.RequestClient.get(`https://api.xrplmeta.org/token/${f}:${U}`);if(B)return{currency:f,decimals:15,description:B.desc,domain:B.domain,icon:B.icon,issuer:U,name:B.name,verified:B.self_assessment?.is_regulated||B.self_assessment?.is_licensed}}catch(B){K.warnOnce({condition:!0,id:`xrpl_token_lookup_${f}_${U}`,warning:`Failed to fetch XRPL token info for ${f}:${U}: ${B}`})}return{currency:f,decimals:15,issuer:U,verified:!1}}function X5(f){return E.filter((U)=>U.issuer===f)}function Q5(f,U){let q=F(f);return E.some((Z)=>F(Z.currency)===q&&Z.issuer===U)}var K,E;var d=S(()=>{I();K=require("@swapkit/helpers"),E=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var D5={};J5(D5,{validateRippleAddress:()=>L,parseXrplTokenIdentifier:()=>C,normalizeCurrency:()=>F,isKnownToken:()=>Q5,isHexCurrency:()=>P,hexToCurrency:()=>Y5,getXrplTokenInfo:()=>M5,getRippleToolbox:()=>N5,getKnownTokensByIssuer:()=>X5,formatXrplTokenIdentifier:()=>t,currencyToHex:()=>N,XRPL_TOKEN_ERROR_CODES:()=>y,XRPL_KNOWN_TOKENS:()=>E});module.exports=Z5(D5);function i(f){if(typeof f!=="object"||f===null||!("data"in f))return!1;let{data:U}=f;return typeof U==="object"&&U!==null&&"error_code"in U&&U.error_code===_5.ACCOUNT_NOT_FOUND}function C(f){let U=f.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!U?.[1]||!U?.[2])return null;if(!L(U[2]))return null;return{currency:U[1],issuer:U[2]}}function t(f,U){return`${G.Chain.Ripple}.${f}-${U}`}async function l(f){if(f.isGasAsset){let{xrpToDrops:q}=await import("xrpl");return q(f.getValue("string"))}let U=C(f.toString());if(!U)throw new G.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:f.toString()}});return{currency:U.currency,issuer:U.issuer,value:f.getValue("string")}}function n(f){let U,q=()=>{return U??=import("xrpl").then(({Wallet:Z})=>Z.fromMnemonic(f)),U};return{getAddress:async()=>(await q()).address,signTransaction:async(Z)=>(await q()).sign(Z)}}function L(f){return w.isValidClassicAddress(f)||w.isValidXAddress(f)}function N5(f={}){let U;async function q(){if(U)return U;return U=await b.match(f).with({phrase:b.P.string},({phrase:m})=>n(m)).with({signer:b.P.any},({signer:m})=>m).otherwise(()=>{return}),U}let Z;async function B(){let m=await G.getRPCUrl(G.Chain.Ripple);if(!m)throw new G.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:G.Chain.Ripple}});let{Client:z}=await import("xrpl"),j=new z(m);return await j.connect(),j}async function X(){if(Z){let m=await Z.catch(()=>null);if(m?.isConnected())return m}return Z=B(),Z}async function D(m){let z=await m.request({command:"server_state"}),j=z.result.state.validated_ledger??z.result.state.closed_ledger;if(!j||!Number.isSafeInteger(j.reserve_base)||j.reserve_base<0||!Number.isSafeInteger(j.reserve_inc)||j.reserve_inc<0)throw new G.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{reason:"XRPL reserve data is unavailable or invalid"}});return{baseReserveDrops:BigInt(j.reserve_base),ownerReserveDrops:BigInt(j.reserve_inc)}}let Q=async()=>{let m=await q();if(!m)throw new G.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return m.getAddress()},a=async(m)=>{let z=m||await Q(),{baseDecimal:j}=G.getChainConfig(G.Chain.Ripple),W=await X();try{let[$,v]=await Promise.all([W.request({account:z,command:"account_info"}),W.request({account:z,command:"account_lines"})]),M=$.result.account_data.Balance,J=[G.AssetValue.from({chain:G.Chain.Ripple,fromBaseDecimal:j,value:M})];for(let Y of v.result.lines){let _=t(Y.currency,Y.account);if(Number.parseFloat(Y.balance)!==0)J.push(G.AssetValue.from({asset:_,asyncTokenLookup:!1,value:Y.balance}))}return J}catch($){if(i($))return[G.AssetValue.from({chain:G.Chain.Ripple,value:0})];throw new G.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:z,error:$}})}},T=async()=>{let{baseDecimal:m}=G.getChainConfig(G.Chain.Ripple),W=(await(await X()).request({command:"fee"})).result.drops.open_ledger_fee;return G.AssetValue.from({chain:G.Chain.Ripple,fromBaseDecimal:m,value:W})};async function V(m){let z=m||await Q(),j=await X();try{return(await j.request({account:z,command:"account_lines"})).result.lines.map(($)=>({account:$.account,authorized:$.authorized??!1,balance:$.balance,currency:$.currency,freeze:$.freeze??!1,freezePeer:$.freeze_peer??!1,limit:$.limit,limitPeer:$.limit_peer,noRipple:$.no_ripple??!1,noRipplePeer:$.no_ripple_peer??!1,peerAuthorized:$.peer_authorized??!1,qualityIn:$.quality_in??0,qualityOut:$.quality_out??0}))}catch(W){if(i(W))return[];throw new G.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:z,error:W}})}}async function s({address:m,currency:z,issuer:j}){let W=await V(m),$=N(z);return W.some((v)=>{return N(v.currency)===$&&v.account===j})}async function h({currency:m,issuer:z,limit:j,sender:W}){let $=W||await Q();if(!L(z))throw new G.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:z}});let v=Number.parseFloat(j);if(Number.isNaN(v)||v<0)throw new G.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:j}});let M=await X(),J={Account:$,LimitAmount:{currency:m,issuer:z,value:j},TransactionType:"TrustSet"};return M.autofill(J)}async function r(m,z){let[j,W,$]=await Promise.all([m.request({account:z,command:"account_info"}),D(m),T()]),{Balance:v,OwnerCount:M}=j.result.account_data,J=$.getBaseValue("bigint"),Y=BigInt(v)-W.baseReserveDrops-BigInt(M)*W.ownerReserveDrops-J;if(Y<=0n)throw new G.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:G.Chain.Ripple,balance:v,baseReserve:W.baseReserveDrops.toString(),fee:J.toString(),ownerCount:M,ownerReserve:W.ownerReserveDrops.toString()}});let{baseDecimal:_}=G.getChainConfig(G.Chain.Ripple),H=G.AssetValue.from({chain:G.Chain.Ripple,fromBaseDecimal:_,value:Y.toString()});return{amount:await l(H),fee:J.toString()}}async function e(m,z){let j=C(m.toString());if(!j)throw new G.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:m.toString()}});let W=await X(),$="0",v;while(!0){let M=await W.request({account:z,command:"account_lines",peer:j.issuer,...v!==void 0&&{marker:v}}),J=M.result.lines.find((_)=>_.account===j.issuer&&N(_.currency)===N(j.currency));if(J){$=J.balance;break}let Y=M.result.marker;if(Y===void 0||Y===null)break;v=Y}if(!Number.isFinite(Number($))||Number($)<=0)throw new G.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:m.toString(),balance:$}});return{currency:j.currency,issuer:j.issuer,value:$}}async function g({assetValue:m,recipient:z,memo:j,sender:W,sweep:$,destinationTag:v,extendBySeconds:M=150}){if(!L(z))throw new G.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let J=W||await Q();if(m.chain!==G.Chain.Ripple)throw new G.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:m.toString()}});let Y=$&&m.isGasAsset?await r(await X(),J):void 0,_=Y?Y.amount:$?await e(m,J):await l(m),H={Account:J,Amount:_,Destination:z,TransactionType:"Payment",...Y&&{Fee:Y.fee},...v!==void 0&&{DestinationTag:v}};if(j)H.Memos=[{Memo:{MemoData:Buffer.from(j).toString("hex")}}];let A=await(await X()).autofill(H);if(A.LastLedgerSequence&&M>0)A.LastLedgerSequence+=Math.ceil(M/4);return A}async function O(m){let z=await q();if(!z)throw new G.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return z.signTransaction(m)}async function R(m){let j=await(await X()).submitAndWait(m),{result:W}=j;if(W.validated)return W.hash;let $=W.meta?.TransactionResult,v=b.match($).with(y.tecNO_LINE,()=>"No trust line exists for this token").with(y.tecPATH_DRY,()=>"Payment path could not deliver funds").with(y.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new G.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:G.Chain.Ripple,...v?{reason:v}:{txResult:$}}})}let f5=async(m)=>{try{let z=await O(m);return R(z.tx_blob)}catch(z){if(z instanceof G.SwapKitError)throw z;throw new G.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:G.Chain.Ripple,error:z}})}};async function U5({assetValue:m,memo:z,recipient:j,sweep:W}){let $=await q();if(!$)throw new G.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let v=await $.getAddress(),M=await g({assetValue:m,memo:z,recipient:j,sender:v,sweep:W}),J=await O(M);return R(J.tx_blob)}async function m5(m){let z=await q();if(!z)throw new G.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let j=await z.getAddress(),W=await h({...m,sender:j}),$=await O(W);return R($.tx_blob)}function G5(){let m=Z;if(Z=null,m)m.then((z)=>{if(z?.isConnected())return z.disconnect();return}).catch((z)=>{console.warn("XRPL Cleanup failed silently:",z)})}return{broadcastTransaction:R,createSigner:n,createTransaction:g,disconnect:G5,estimateTransactionFee:T,getAddress:Q,getBalance:a,getTrustLines:V,hasTrustLine:s,setTrustLine:h,setTrustLineAndBroadcast:m5,signAndBroadcastTransaction:f5,signTransaction:O,transfer:U5,validateAddress:L}}var G,w,b,_5,y;var F5=S(()=>{I();G=require("@swapkit/helpers"),w=require("ripple-address-codec"),b=require("ts-pattern");I();d();_5={ACCOUNT_NOT_FOUND:19};y={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});F5();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var d=Object.create;var{getPrototypeOf:o,defineProperty:F,getOwnPropertyNames:h,getOwnPropertyDescriptor:g}=Object,H=Object.prototype.hasOwnProperty;function I(l){return this[l]}var r,s,ul=(l,T,f)=>{var p=l!=null&&typeof l==="object";if(p){var O=T?r??=new WeakMap:s??=new WeakMap,y=O.get(l);if(y)return y}f=l!=null?d(o(l)):{};let x=T||!l||!l.__esModule?F(f,"default",{value:l,enumerable:!0}):f;for(let B of h(l))if(!H.call(x,B))F(x,B,{get:I.bind(l,B),enumerable:!0});if(p)O.set(l,x);return x},t=(l)=>{var T=(L??=new WeakMap).get(l),f;if(T)return T;if(T=F({},"__esModule",{value:!0}),l&&typeof l==="object"||typeof l==="function"){for(var p of h(l))if(!H.call(T,p))F(T,p,{get:I.bind(l,p),enumerable:!(f=g(l,p))||f.enumerable})}return L.set(l,T),T},L;var c=(l)=>l;function i(l,T){this[l]=c.bind(null,T)}var e=(l,T)=>{for(var f in T)F(l,f,{get:T[f],enumerable:!0,configurable:!0,set:i.bind(T,f)})};var _=(l,T)=>()=>(l&&(T=l(l=0)),T);function Sl(){function l(){let T=Date.now(),f=$||T;return $=f,T>$?T:f+1}return n+l().toString(36)}function V(l){return async function(f,p=!0){let O=await K.SwapKitApi.getChainBalance({address:f,chain:l,scamFilter:p}),{baseDecimal:y}=J.getChainConfig(l),x=O.map(({identifier:u,value:N,decimal:S})=>{return new J.AssetValue({decimal:S||y,identifier:u,value:N})});if(!x.some((u)=>u.isGasAsset))return[J.AssetValue.from({chain:l}),...x];return x}}var J,K,n,$=0;var m=_(()=>{J=require("@swapkit/helpers"),K=require("@swapkit/helpers/api"),n=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function v(l){let T=G.AssetValue.from({address:l,chain:G.Chain.Solana});if(T.symbol!=="UNKNOWN")return{decimals:T.decimal||0,id:l,logoURI:T.getIconUrl(),name:T.symbol,symbol:T.ticker};let f=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(l)}`;try{let p=await fetch(f);if(!p.ok)return null;let O=await p.json();if(!Array.isArray(O)||O.length===0)return null;return O.find((x)=>x.id===l)||null}catch{return null}}async function ll(l){let T=await w(),{PublicKey:f}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:p}=await import("@solana/spl-token"),O=new f(l),{baseDecimal:y}=G.getChainConfig(G.Chain.Solana),x=await T.getBalance(O),B=[G.AssetValue.from({chain:G.Chain.Solana,fromBaseDecimal:y,value:x||0})],u=await T.getParsedTokenAccountsByOwner(O,{programId:p});for(let{account:N}of u.value){let S=N.data.parsed.info,z=S.mint,R=S.tokenAmount.amount;if(Number(R)===0)continue;let j=await v(z),q=j?.symbol||"UNKNOWN",W=j?.decimals||S.tokenAmount.decimals;B.push(G.AssetValue.from({asset:`${G.Chain.Solana}.${q}-${z}`,fromBaseDecimal:W,value:R}))}return B}function P(l){try{let T=new b.PublicKey(l);return b.PublicKey.isOnCurve(T.toBytes())}catch{return!1}}function Tl(l){let T=l&&"index"in l?l.index||0:0,f=G.derivationPathToString(l&&"derivationPath"in l&&l.derivationPath?l.derivationPath:G.updateDerivationPath(G.NetworkDerivationPath[G.Chain.Solana],{index:T})),p;async function O(){if(p)return p;return p=await Q.match(l).with({phrase:Q.P.string},({phrase:x})=>M({derivationPath:f,phrase:x})).with({signer:Q.P.any},({signer:x})=>x).otherwise(()=>{return}),p}async function y(){let x=await O();return x?.publicKey?a(x.publicKey):""}return{broadcastTransaction:X(w),createKeysForPath:M,createTransaction:A(w),createTransactionFromInstructions:Gl,estimateTransactionFee:fl(w),getAddress:y,getAddressFromPubKey:a,getBalance:V(G.Chain.Solana),getBalanceFromRPC:ll,getConnection:w,getPubkeyFromAddress:(x)=>new b.PublicKey(x),signAndBroadcastTransaction:async(x)=>{let B=await D(w,O)(x);return X(w)(B)},signTransaction:D(w,O),transfer:Ol(w,O),validateAddress:P}}function fl(l){return async({recipient:T,assetValue:f,memo:p,isProgramDerivedAddress:O,sender:y})=>{let x=await l(),B=await A(l)({assetValue:f,isProgramDerivedAddress:O,memo:p,recipient:T,sender:y}),u=await C(x,B),{baseDecimal:N}=G.getChainConfig(G.Chain.Solana);return G.AssetValue.from({chain:G.Chain.Solana,fromBaseDecimal:N,value:u})}}async function C(l,T){let f=await l.getFeeForMessage(T.compileMessage());if(f.value===null)throw new G.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");return f.value}async function w(){let{Connection:l}=await import("@solana/web3.js"),T=await G.getRPCUrl(G.Chain.Solana);return new l(T,{commitment:"confirmed",fetchMiddleware:(f,p,O)=>{let y={};for(let[x,B]of Object.entries(p?.headers??{})){let u=x.toLowerCase();if(u!=="pragma"&&u!=="solana-client")y[x]=B}O(f,{...p,headers:y})}})}function pl(l){return async({assetValue:T,recipient:f,sender:p,isProgramDerivedAddress:O,sweep:y})=>{let x=await l(),B=new b.PublicKey(p);if(T.isGasAsset){let{Transaction:u,SystemProgram:N}=await import("@solana/web3.js");return new u().add(N.transfer({fromPubkey:B,lamports:y?0:T.getBaseValue("number"),toPubkey:new b.PublicKey(f)}))}if(T.address)return xl({amount:y?0:T.getBaseValue("number"),connection:x,decimals:T.decimal,from:B,isProgramDerivedAddress:O,recipient:f,sweep:y,tokenAddress:T.address});return}}async function xl({tokenAddress:l,recipient:T,from:f,connection:p,amount:O,decimals:y,isProgramDerivedAddress:x,sweep:B}){let{getAssociatedTokenAddress:u,getAccount:N,createAssociatedTokenAccountInstruction:S,createTransferCheckedInstruction:z}=await import("@solana/spl-token"),{Transaction:R}=await import("@solana/web3.js"),j=new R,q=new b.PublicKey(l),W=await u(q,f),U=new b.PublicKey(T),Y=await u(q,U,x),E=!1;try{await N(p,Y),E=!0}catch{}if(!E)j.add(S(f,Y,U,q));let Z=B?BigInt((await p.getTokenAccountBalance(W)).value.amount):O;if(B&&Z<=0n)throw new G.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:l,balance:Z.toString()}});return j.add(z(W,q,Y,f,Z,y)),j}function A(l){return async({recipient:T,assetValue:f,memo:p,isProgramDerivedAddress:O,sender:y,sweep:x})=>{let{createMemoInstruction:B}=await import("@solana/spl-memo"),u=new b.PublicKey(y);if(!(O||P(T)))throw new G.SwapKitError("core_transaction_invalid_recipient_address");let N=await l(),S=await pl(l)({assetValue:f,isProgramDerivedAddress:O,recipient:T,sender:y,sweep:x});if(!S)throw new G.SwapKitError("core_transaction_invalid_sender_address");if(p)S.add(B(p));let z=await N.getLatestBlockhash();if(S.recentBlockhash=z.blockhash,S.feePayer=u,x&&f.isGasAsset){let[R,j,q]=await Promise.all([N.getBalance(u),C(N,S),N.getMinimumBalanceForRentExemption(0)]),W=R-j-q;if(W<=0)throw new G.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:R,fee:j,rentReserve:q}});let{SystemProgram:U}=await import("@solana/web3.js");S.instructions[0]=U.transfer({fromPubkey:u,lamports:W,toPubkey:new b.PublicKey(T)})}return S}}async function Gl({instructions:l}){let{Transaction:T}=await import("@solana/web3.js"),f=new T().add(...l);if(!f)throw new G.SwapKitError("core_transaction_invalid_sender_address");return f}function Ol(l,T){return async({recipient:f,assetValue:p,memo:O,isProgramDerivedAddress:y,sweep:x})=>{let B=await T();if(!B)throw new G.SwapKitError("core_transaction_invalid_sender_address");let u=B.publicKey?.toString()??(await B.connect()).publicKey.toString(),N=await A(l)({assetValue:p,isProgramDerivedAddress:y,memo:O,recipient:f,sender:u,sweep:x});if("signTransaction"in B){let S=await B.signTransaction(N);return X(l)(S)}return N.sign(B),X(l)(N)}}function X(l){return async(T)=>{return(await l()).sendRawTransaction(T.serialize())}}function D(l,T){return async(f)=>{let p=await T();if(!p)throw new G.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:O}=await import("@solana/web3.js");if(!(f instanceof O)){let x=await(await l()).getLatestBlockhash();f.recentBlockhash=x.blockhash,f.feePayer=p.publicKey||void 0}if("connect"in p)return await p.signTransaction(f);return f.sign([p]),f}}async function M({phrase:l,derivationPath:T=G.DerivationPath.SOL}){let{HDKey:f}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:p}=await import("@scure/bip39"),{Keypair:O}=await import("@solana/web3.js"),y=p(l),x=f.fromMasterSeed(y);return O.fromSeed(x.derive(T,!0).privateKey)}function a(l){return l.toString()}var b,G,Q;var k=_(()=>{m();b=require("@solana/web3.js"),G=require("@swapkit/helpers"),Q=require("ts-pattern")});var yl={};e(yl,{validateSolanaAddress:()=>P,getSolanaToolbox:()=>Tl,fetchTokenMetaData:()=>v,createKeysForPath:()=>M});module.exports=t(yl);var Bl=_(()=>{k()});Bl();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var If=Object.create;var{getPrototypeOf:Jf,defineProperty:_,getOwnPropertyNames:o,getOwnPropertyDescriptor:Qf}=Object,l=Object.prototype.hasOwnProperty;function n(f){return this[f]}var Xf,Yf,Uf=(f,I,Y)=>{var j=f!=null&&typeof f==="object";if(j){var M=I?Xf??=new WeakMap:Yf??=new WeakMap,x=M.get(f);if(x)return x}Y=f!=null?If(Jf(f)):{};let $=I||!f||!f.__esModule?_(Y,"default",{value:f,enumerable:!0}):Y;for(let L of o(f))if(!l.call($,L))_($,L,{get:n.bind(f,L),enumerable:!0});if(j)M.set(f,$);return $},$f=(f)=>{var I=(u??=new WeakMap).get(f),Y;if(I)return I;if(I=_({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var j of o(f))if(!l.call(I,j))_(I,j,{get:n.bind(f,j),enumerable:!(Y=Qf(f,j))||Y.enumerable})}return u.set(f,I),I},u;var Mf=(f)=>f;function Wf(f,I){this[f]=Mf.bind(null,I)}var jf=(f,I)=>{for(var Y in I)_(f,Y,{get:I[Y],enumerable:!0,configurable:!0,set:Wf.bind(I,Y)})};var K=(f,I)=>()=>(f&&(I=f(f=0)),I);function Of(){function f(){let I=Date.now(),Y=v||I;return v=Y,I>v?I:Y+1}return xf+f().toString(36)}function c(f){return async function(Y,j=!0){let M=await i.SwapKitApi.getChainBalance({address:Y,chain:f,scamFilter:j}),{baseDecimal:x}=E.getChainConfig(f),$=M.map(({identifier:N,value:F,decimal:B})=>{return new E.AssetValue({decimal:B||x,identifier:N,value:F})});if(!$.some((N)=>N.isGasAsset))return[E.AssetValue.from({chain:f}),...$];return $}}var E,i,xf,v=0;var d=K(()=>{E=require("@swapkit/helpers"),i=require("@swapkit/helpers/api"),xf=typeof process<"u"&&process.pid?process.pid.toString(36):""});function R(f){if(!f)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(f)}async function C({phrase:f,derivationPath:I=z.DerivationPath.STRK}){let{HDKey:Y}=await import("@scure/bip32"),{mnemonicToSeedSync:j}=await import("@scure/bip39"),{ec:M,hash:x,encode:$,CallData:L}=await import("starknet"),N=j(f),B=Y.fromMasterSeed(N).derive(I);if(!B.privateKey)throw new z.SwapKitError("toolbox_starknet_no_signer");let H=$.addHexPrefix(Buffer.from(B.privateKey).toString("hex")),y=M.starkCurve.grindKey(H),O=$.addHexPrefix(y),T=M.starkCurve.getStarkKey(O),D=L.compile([T,0]);return{address:x.calculateContractAddressFromHash(T,P,D,0),privateKey:O,publicKey:T}}async function h({phrase:f,derivationPath:I=z.DerivationPath.STRK}){let{Account:Y,RpcProvider:j}=await import("starknet"),{privateKey:M,address:x}=await C({derivationPath:I,phrase:f}),$=await z.getRPCUrl(z.Chain.Starknet),L=new j({nodeUrl:$});return new Y({address:x,provider:L,signer:M})}function s(f){let I=z.Chain.Starknet,Y=f&&"index"in f?f.index||0:0,j=z.derivationPathToString(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:z.updateDerivationPath(z.NetworkDerivationPath[I],{index:Y})),M,x,$;async function L(){if(x)return x;if(M)return x=M.provider,x;let{RpcProvider:q}=await import("starknet"),G=await z.getRPCUrl(I);return x=new q({nodeUrl:G}),x}async function N(q){let G=await L(),J=q||await y();if(!J)return!1;try{return await G.getClassHashAt(J),!0}catch(Q){if(Q instanceof Error&&Q.message.includes("Contract not found"))return!1;let X=Q;if(X?.code===20||X?.code===19)return!1;throw Q}}async function F(){let{CallData:q,hash:G}=await import("starknet"),J=await L(),Q=await H();if(!Q)throw new z.SwapKitError("toolbox_starknet_no_signer");if(!$)throw new z.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await N())return Q.address;let W=q.compile([$,0]);if(G.calculateContractAddressFromHash($,P,W,0).toLowerCase()!==Q.address.toLowerCase())throw new z.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let k={addressSalt:$,classHash:P,constructorCalldata:W},{transaction_hash:V}=await Q.deployAccount(k);return await J.waitForTransaction(V),V}async function B(){if(!await N()){if(!$)throw new z.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await F()}}async function H(){if(M)return M;return M=await U.match(f).with({phrase:U.P.string},async({phrase:q})=>{let{Account:G,RpcProvider:J}=await import("starknet"),{privateKey:Q,address:X,publicKey:W}=await C({derivationPath:j,phrase:q});$=W;let Z=await z.getRPCUrl(z.Chain.Starknet),k=new J({nodeUrl:Z});return new G({address:X,provider:k,signer:Q})}).with({address:U.P.string,privateKey:U.P.string},async({privateKey:q,address:G})=>{let{Account:J}=await import("starknet"),Q=await L();return new J({address:G,provider:Q,signer:q})}).with({signer:U.P.instanceOf(Object)},({signer:q})=>q).otherwise(()=>{return}),M}async function y(){return(await H())?.address??""}async function O(q,G){let J=await L(),{uint256:Q,CallData:X}=await import("starknet"),[W="0",Z="0"]=await J.callContract({calldata:X.compile({account:q}),contractAddress:G,entrypoint:"balanceOf"});return Q.uint256ToBN({high:Z,low:W})}async function T(q){let{baseDecimal:G}=z.getChainConfig(I),J=[],Q=[w,t];for(let X of Q)try{let W=await O(q,X);U.match(X).with(w,()=>{J.push(z.AssetValue.from({chain:I,fromBaseDecimal:G,value:W}))}).with(t,()=>{if(W>0n)J.push(z.AssetValue.from({asset:`${I}.ETH-${X}`,fromBaseDecimal:G,value:W}))}).otherwise(()=>{})}catch{}return J}async function D(q){let G=await H();if(G&&(!q||G.address.toLowerCase()===q.toLowerCase()))return G;if(q){let{Account:J}=await import("starknet"),Q=await L();return new J({address:q,provider:Q,signer:"0x0"})}throw new z.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer"}})}async function A(q,G){try{let J=await D(G),{overall_fee:Q}=await J.estimateInvokeFee(q);if(Q<=0n)throw new z.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Sweep fee estimation returned a non-positive fee",sender:G}});return Q}catch(J){throw new z.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Unable to estimate the sweep fee. Verify RPC availability and that the sender account is deployed.",sender:G}},J)}}async function p(q,G){let J=await S(q),Q=G.isGasAsset?J.find(({isGasAsset:X})=>X):J.find(({address:X})=>X?.toLowerCase()===G.address?.toLowerCase());if(Q)return Q.getBaseValue("bigint");if(G.isGasAsset)return O(q,w);if(G.address)return O(q,G.address);return 0n}async function b({recipient:q,assetValue:G,sender:J,sweep:Q}){let{CallData:X,uint256:W}=await import("starknet");if(!R(q))throw new z.SwapKitError("core_transaction_invalid_recipient_address",{address:q});let Z=G.isGasAsset?w:G.address;if(!Z)throw new z.SwapKitError("toolbox_starknet_invalid_address",{address:Z,assetValue:G});let k=G.getBaseValue("bigint");if(Q){let m=J??await y();if(!R(m))throw new z.SwapKitError("core_transaction_invalid_sender_address",{address:m});if(G.isGasAsset){let qf=[{calldata:X.compile([q,W.bnToUint256(1n)]),contractAddress:Z,entrypoint:"transfer"}],zf=await A(qf,m);k=await p(m,G)-zf}else k=await p(m,G);if(k<=0n)throw new z.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:k.toString(),asset:G.toString()}})}let V=W.bnToUint256(k);return[{calldata:X.compile([q,V]),contractAddress:Z,entrypoint:"transfer"}]}async function a({recipient:q,assetValue:G,sender:J}){let{baseDecimal:Q}=z.getChainConfig(z.Chain.Starknet);try{let X=await b({assetValue:G,recipient:q}),Z=await(await D(J)).estimateInvokeFee(X);if(Z?.overall_fee)return z.AssetValue.from({chain:I,fromBaseDecimal:Q,value:Z.overall_fee})}catch(X){throw new z.SwapKitError("toolbox_starknet_fee_estimation_failed",X)}return z.AssetValue.from({chain:I,value:"0.00001"})}async function e({recipient:q,assetValue:G,memo:J,sweep:Q}){let X=await H();if(!X)throw new z.SwapKitError("toolbox_starknet_no_signer");await B();let W=await b({assetValue:G,memo:J,recipient:q,sender:X.address,sweep:Q});return(await X.execute(W)).transaction_hash}async function ff(q){let G=await H();if(!G)throw new z.SwapKitError("toolbox_starknet_no_signer");let J=await G.signMessage(q);return Array.isArray(J)?J:[J.r.toString(),J.s.toString()]}async function g(q){let G=await H();if(!G)throw new z.SwapKitError("toolbox_starknet_no_signer");return await B(),(await G.execute(q)).transaction_hash}function Gf(q){return g(q)}async function S(q,G=!0){try{return await c(I)(q,G)}catch{return T(q)}}return{broadcastTransaction:g,createKeysForPath:h,createTransaction:b,deployAccount:F,estimateTransactionFee:a,getAddress:y,getBalance:S,getProvider:L,isAccountDeployed:N,signAndBroadcastTransaction:Gf,signMessage:ff,transfer:e,validateAddress:R}}var z,U,w="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",t="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",P="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var r=K(()=>{d();z=require("@swapkit/helpers"),U=require("ts-pattern")});var Zf={};jf(Zf,{validateStarknetAddress:()=>R,starknetCreateKeysForPath:()=>h,getStarknetToolbox:()=>s,deriveStarknetKeys:()=>C});module.exports=$f(Zf);var Nf=K(()=>{r()});Nf();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var QP=Object.create;var{getPrototypeOf:XP,defineProperty:w,getOwnPropertyNames:d,getOwnPropertyDescriptor:YP}=Object,l=Object.prototype.hasOwnProperty;function u(P){return this[P]}var ZP,$P,wP=(P,q,Q)=>{var W=P!=null&&typeof P==="object";if(W){var D=q?ZP??=new WeakMap:$P??=new WeakMap,F=D.get(P);if(F)return F}Q=P!=null?QP(XP(P)):{};let M=q||!P||!P.__esModule?w(Q,"default",{value:P,enumerable:!0}):Q;for(let _ of d(P))if(!l.call(M,_))w(M,_,{get:u.bind(P,_),enumerable:!0});if(W)D.set(P,M);return M},MP=(P)=>{var q=(p??=new WeakMap).get(P),Q;if(q)return q;if(q=w({},"__esModule",{value:!0}),P&&typeof P==="object"||typeof P==="function"){for(var W of d(P))if(!l.call(q,W))w(q,W,{get:u.bind(P,W),enumerable:!(Q=YP(P,W))||Q.enumerable})}return p.set(P,q),q},p;var WP=(P)=>P;function FP(P,q){this[P]=WP.bind(null,q)}var LP=(P,q)=>{for(var Q in q)w(P,Q,{get:q[Q],enumerable:!0,configurable:!0,set:FP.bind(q,Q)})};var c=(P,q)=>()=>(P&&(q=P(P=0)),q);async function i(P){if(T&&Date.now()-T.timestamp<fP)return T.value;let Q=(await P.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(Q===void 0)throw new j.SwapKitError({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return T={timestamp:Date.now(),value:Q},Q}function A(P){return j.AssetValue.from({chain:j.Chain.Stellar,value:P}).getBaseValue("bigint")}function _P(P){let{baseDecimal:q}=j.getChainConfig(j.Chain.Stellar);return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:q,value:P}).getValue("string")}function t({balance:P,baseReserveInStroops:q,numSponsored:Q,numSponsoring:W,sellingLiabilities:D,subentryCount:F}){let M=A(P),_=A(D),K=n+F+W-Q,N=BigInt(K)*BigInt(q),C=M-N-_;return C>0n?C:0n}function NP({account:P,assetValue:q,baseReserveInStroops:Q,fee:W}){let D=P.balances.find((_)=>_.asset_type==="native"),M=(D?t({balance:D.balance,baseReserveInStroops:Q,numSponsored:P.num_sponsored,numSponsoring:P.num_sponsoring,sellingLiabilities:D.selling_liabilities,subentryCount:P.subentry_count}):0n)-BigInt(W);if(M<=0n)throw new j.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:q.toString(),reason:"spendable balance does not cover the transaction fee"}});return M}function UP({baseReserveInStroops:P,sweepAmountInStroops:q}){if(q===void 0||P===void 0)return;let Q=BigInt(n)*BigInt(P);if(q<Q)throw new j.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amountInStroops:q,minimumStartingBalanceInStroops:Q,reason:"starting balance is below the Stellar account minimum"}})}function zP({account:P,assetCode:q,assetValue:Q,issuer:W,sweep:D}){if(!D)return Q.getValue("string");let F=P.balances.find((M)=>("asset_code"in M)&&M.asset_code===q&&M.asset_issuer===W)?.balance??"0";if(A(F)<=0n)throw new j.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Q.toString(),balance:F,reason:"trust-line balance is not positive"}});return F}function OP(P){if(!P)return;if(new TextEncoder().encode(P).length>28)throw new j.SwapKitError("helpers_invalid_memo_type")}function R(P){if(!P||typeof P!=="string"||!P.startsWith("G")||P.length!==56)return!1;return xP.test(P)}function S(P){if(typeof P!=="object"||P===null)return;let q="response"in P?P.response:void 0;return typeof q?.status==="number"?q.status:void 0}function KP(P){return S(P)===504}function EP(P){return P.hash?.().toString("hex")}function kP(P){return[...new Set([P,...j.SKConfig.get("rpcUrls")[j.Chain.Stellar]])].filter(Boolean)}async function r(P){if(!R(P))return!1;try{let{StrKey:q}=await import("@stellar/stellar-sdk");return q.isValidEd25519PublicKey(P)}catch{return!1}}async function o(P){let{address:q,ticker:Q}=P,W=q?await r(q):!1;if(P.chain!==j.Chain.Stellar||P.isGasAsset||!DP.test(Q)||!q||!W)throw new j.SwapKitError({errorKey:"helpers_invalid_asset_identifier",info:{identifier:P.toString()}});return{assetCode:Q,issuer:q}}function a(P={}){let q,Q=P.derivationPath||j.NetworkDerivationPath[j.Chain.Stellar],W=j.derivationPathToString(Q.slice(0,3));async function D({phrase:J,path:G}){let{HDKey:Z}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:X}=await import("@scure/bip39"),{Keypair:Y}=await import("@stellar/stellar-sdk"),$=X(J),x=Z.fromMasterSeed($).derive(G,!0);return Y.fromRawEd25519Seed(Buffer.from(x.privateKey))}async function F(){if(q)return q;let J=I.match(P).with({phrase:I.P.string},({phrase:G})=>G).otherwise(()=>{return});if(!J)throw new j.SwapKitError("toolbox_stellar_no_signer");return q=await D({path:W,phrase:J}),q}async function M(J){let{Horizon:G}=await import("@stellar/stellar-sdk"),Z=J||await j.getRPCUrl(j.Chain.Stellar);return new G.Server(Z)}async function _(J,G){for(let Z of G)try{return(await(await M(Z)).transactions().transaction(J).call()).hash||J}catch{}return}async function K(J,G){let Z=await j.getRPCUrl(j.Chain.Stellar),X=kP(Z),Y=EP(J),$;for(let L of X)try{let x=await M(L),{hash:f}=await x.submitTransaction(J);return f}catch(x){if($=x,!KP(x))break;let f=Y?await _(Y,X):void 0;if(f)return f}throw new j.SwapKitError(G,$)}async function N(){try{return(await F()).publicKey()}catch{return""}}async function C(J){let G=J||await N();if(!G)throw new j.SwapKitError("toolbox_stellar_account_not_found");let Z=await M(),[X,Y]=await Promise.allSettled([Z.loadAccount(G),i(Z)]);if(X.status==="rejected"){let $=X.reason;if(S($)===404)return[j.AssetValue.from({chain:j.Chain.Stellar,value:0})];throw $}if(Y.status==="rejected")throw Y.reason;return X.value.balances.map(($)=>{if($.asset_type==="native"){let f=t({balance:$.balance,baseReserveInStroops:Y.value,numSponsored:X.value.num_sponsored,numSponsoring:X.value.num_sponsoring,sellingLiabilities:$.selling_liabilities,subentryCount:X.value.subentry_count}),{baseDecimal:E}=j.getChainConfig(j.Chain.Stellar);return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:E,value:f})}let L="asset_code"in $?$.asset_code:"",x="asset_issuer"in $?$.asset_issuer:"";return j.AssetValue.from({asset:`${j.Chain.Stellar}.${L}-${x}`,asyncTokenLookup:!1,value:$.balance})})}async function e({address:J,assetValue:G}){if(G.chain!==j.Chain.Stellar)throw new j.SwapKitError({errorKey:"toolbox_stellar_trustline_asset_invalid",info:{asset:G.toString()}});if(G.isGasAsset)return!0;if(!G.address)throw new j.SwapKitError({errorKey:"toolbox_stellar_trustline_asset_invalid",info:{asset:G.toString(),reason:"missing issuer"}});let Z=await M(),X;try{X=await Z.loadAccount(J)}catch(Y){if(S(Y)===404)return!1;throw Y}return X.balances.some((Y)=>("asset_code"in Y)&&Y.asset_code===G.ticker&&Y.asset_issuer===G.address)}async function v({recipient:J,assetValue:G,memo:Z,sender:X,sweep:Y}){if(OP(Z),!await r(J))throw new j.SwapKitError("core_transaction_invalid_recipient_address");let L=X||await N();if(!L)throw new j.SwapKitError("toolbox_stellar_no_signer");let{Asset:x,Memo:f,Networks:E,Operation:U,TransactionBuilder:h}=await import("@stellar/stellar-sdk"),z=await M(),k=await z.fetchBaseFee(),B=await z.loadAccount(L),g=Y&&G.isGasAsset?await i(z):void 0,H=new h(B,{fee:String(k),networkPassphrase:E.PUBLIC});if(G.isGasAsset){let O=Y&&g!==void 0?NP({account:B,assetValue:G,baseReserveInStroops:g,fee:k}):void 0,y=O===void 0?G.getValue("string"):_P(O);try{await z.loadAccount(J),H.addOperation(U.payment({amount:y,asset:x.native(),destination:J}))}catch{UP({baseReserveInStroops:g,sweepAmountInStroops:O}),H.addOperation(U.createAccount({destination:J,startingBalance:y}))}}else{let{assetCode:O,issuer:y}=await o(G),JP=zP({account:B,assetCode:O,assetValue:G,issuer:y,sweep:Y});H.addOperation(U.payment({amount:JP,asset:new x(O,y),destination:J}))}if(Z)H.addMemo(f.text(Z));return H.setTimeout(30).build()}async function V({assetValue:J,limit:G,sender:Z}){let X=Z||await N();if(!X)throw new j.SwapKitError("toolbox_stellar_no_signer");let{Asset:Y,Networks:$,Operation:L,TransactionBuilder:x}=await import("@stellar/stellar-sdk"),{assetCode:f,issuer:E}=await o(J),U=await M(),[h,z]=await Promise.all([U.fetchBaseFee(),U.loadAccount(X)]),k=new Y(f,E),B=G!==void 0?L.changeTrust({asset:k,limit:G}):L.changeTrust({asset:k});return new x(z,{fee:String(h),networkPassphrase:$.PUBLIC}).addOperation(B).setTimeout(30).build()}async function b(J){let{TransactionBuilder:G,Networks:Z}=await import("@stellar/stellar-sdk"),X=await F(),Y=G.fromXDR(J.toXDR(),Z.PUBLIC);return Y.sign(X),Y}function m(J){return K(J,"toolbox_stellar_broadcast_error")}async function PP({recipient:J,assetValue:G,memo:Z,sweep:X}){let Y=await F(),$=Y.publicKey(),L=await v({assetValue:G,memo:Z,recipient:J,sender:$,sweep:X});return L.sign(Y),K(L,"toolbox_stellar_transaction_failed")}async function jP({assetValue:J,limit:G}){let Z=await F(),X=await V({assetValue:J,limit:G,sender:Z.publicKey()});return X.sign(Z),K(X,"toolbox_stellar_transaction_failed")}async function qP(J){let G=await b(J);return m(G)}async function GP(){let{baseDecimal:J}=j.getChainConfig(j.Chain.Stellar);try{let X=(await(await M()).feeStats()).fee_charged.p50;return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:J,value:X})}catch{return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:J,value:"100"})}}return{broadcastTransaction:m,createTransaction:v,createTrustline:jP,createTrustlineTransaction:V,estimateTransactionFee:GP,getAddress:N,getBalance:C,hasTrustline:e,signAndBroadcastTransaction:qP,signTransaction:b,transfer:PP,validateAddress:R}}var j,I,xP,DP,n=2,fP=600000,T;var s=c(()=>{j=require("@swapkit/helpers"),I=require("ts-pattern"),xP=/^G[A-Z2-7]{55}$/,DP=/^[A-Za-z0-9]{1,12}$/});var BP={};LP(BP,{validateStellarAddress:()=>R,getStellarToolbox:()=>a});module.exports=MP(BP);var HP=c(()=>{s()});HP();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var B=Object.create;var{getPrototypeOf:x,defineProperty:q,getOwnPropertyNames:Y,getOwnPropertyDescriptor:K}=Object,Z=Object.prototype.hasOwnProperty;function _(I){return this[I]}var k,w,DI=(I,o,j)=>{var v=I!=null&&typeof I==="object";if(v){var D=o?k??=new WeakMap:w??=new WeakMap,t=D.get(I);if(t)return t}j=I!=null?B(x(I)):{};let f=o||!I||!I.__esModule?q(j,"default",{value:I,enumerable:!0}):j;for(let L of Y(I))if(!Z.call(f,L))q(f,L,{get:_.bind(I,L),enumerable:!0});if(v)D.set(I,f);return f},S=(I)=>{var o=(X??=new WeakMap).get(I),j;if(o)return o;if(o=q({},"__esModule",{value:!0}),I&&typeof I==="object"||typeof I==="function"){for(var v of Y(I))if(!Z.call(o,v))q(o,v,{get:_.bind(I,v),enumerable:!(j=K(I,v))||j.enumerable})}return X.set(I,o),o},X;var h=(I)=>I;function l(I,o){this[I]=h.bind(null,o)}var n=(I,o)=>{for(var j in o)q(I,j,{get:o[j],enumerable:!0,configurable:!0,set:l.bind(o,j)})};var tI=(I,o)=>()=>(I&&(o=I(I=0)),o);var vI={};n(vI,{isKeyringPair:()=>H,getSubstrateToolbox:()=>d,getSubstrateAddressValidator:()=>P,createSubstrateToolbox:()=>b,createKeyring:()=>C,SubstrateNetwork:()=>N});module.exports=S(vI);var T=require("@polkadot/util"),W=require("@polkadot/util-crypto"),y=require("@swapkit/helpers"),F=require("ts-pattern");var O=require("@swapkit/helpers");async function A(I,o,j){let v=[o.set(0)];if(!j)return v;try{let D=await I.query.system?.account?.(j);if(!D)return v;let{data:{free:t}}=D,f=O.SwapKitNumber.fromBigInt(BigInt(t.toString()),o.decimal).getValue("string");return[o.set(f)]}catch(D){let t=D instanceof Error?D.message:String(D);return console.error(`Error fetching substrate balance: ${t}`),v}}async function p(I,o,j){let v=[o.set(0)];if(!j)return v;try{let D=await I.query.flip?.account?.(j);if(!D)return v;let t=D.balance||D.data?.balance;if(!t||t.isEmpty)return v;let f=O.SwapKitNumber.fromBigInt(BigInt(t.toString()),o.decimal).getValue("string");return[o.set(f)]}catch(D){let t=D instanceof Error?D.message:String(D);return console.error(`Error fetching chainflip balance: ${t}`),v}}function $(I,o){return function(v){let D=O.AssetValue.from({chain:I});switch(I){case O.Chain.Chainflip:return p(o,D,v);default:return A(o,D,v)}}}var c={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},g={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},i={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},N={DOT:c,FLIP:g,GENERIC:i};function d(I,o){return F.match(I).with(...y.SubstrateChains,(j)=>b({chain:j,...o})).exhaustive()}function H(I){return"address"in I}async function C(I,o){let{Keyring:j}=await import("@polkadot/keyring"),{cryptoWaitReady:v}=await import("@polkadot/util-crypto");return await v(),new j({ss58Format:o,type:"sr25519"}).addFromUri(I)}var E=(I,o)=>I.rpc.system.accountNextIndex(o),J=(I,{recipient:o,assetValue:j,sweep:v})=>{let D=v?I.tx.balances?.transferAll?.(o,!0):I.tx.balances?.transferAllowDeath?.(o,j.getBaseValue("number"));if(v&&!D)throw new y.SwapKitError("toolbox_substrate_transfer_error");return D},z=(I,o)=>{if(I===y.Chain.Chainflip&&o)throw new y.SwapKitError("toolbox_substrate_not_supported")},e=async(I,o,j)=>{let v=J(I,j);if(!v)throw new y.SwapKitError("toolbox_substrate_transfer_error");let D=H(o),t=D?o.address:j.sender;if(!t)throw new y.SwapKitError("core_transaction_invalid_sender_address");let f=await E(I,t);return(await v.signAndSend(D?o:t,{nonce:f,signer:D?void 0:o})).toString()},r=async(I,o,j,v)=>{let D=J(I,v),t=H(o)?o.address:v.sender;if(!t)return Promise.resolve(j.set(0));let f=await D?.paymentInfo(t,{nonce:await E(I,t)})||{partialFee:0};return j.set(y.SwapKitNumber.fromBigInt(BigInt(f.partialFee.toString()),j.decimal).getValue("string"))},s=async(I,o)=>{if(o)return I.send(o);return(await I.send()).toString()},a=async(I,o)=>{return await o.signAsync(I)},II=(I,o,j)=>{if(j)return o.signAndSend(I,j);return o.signAndSend(I).toString()},oI=async({signer:I,address:o,tx:j,callback:v,api:D})=>{let t=await E(D,o);if(v)j.signAndSend(o,{nonce:t,signer:I},v);return j.signAndSend(o,{nonce:t,signer:I}).toString()};function jI(I,o){let j=W.decodeAddress(I);return W.encodeAddress(j,o)}function U(I,o){return T.isHex(I)?T.hexToU8a(I):W.decodeAddress(I,void 0,o)}function V(I,o="ss58",j){if(o==="hex")return T.u8aToHex(I);return W.encodeAddress(I,j)}function P({chain:I,prefix:o}){let j=o||F.match(I).with(y.Chain.Polkadot,()=>N.DOT.prefix).with(y.Chain.Chainflip,()=>N.FLIP.prefix).otherwise(()=>N.GENERIC.prefix);return function(D){try{let t=U(D,j);return V(t,"ss58",j),!0}catch{return!1}}}function b({chain:I,generic:o=!1,...j}){let v=y.AssetValue.from({chain:I}),D;async function t(){let{ApiPromise:m,WsProvider:M}=await import("@polkadot/api"),R=await y.getRPCUrl(I),G=new M(R);return m.create({noInitWarn:!0,provider:G})}async function f(){if(D)return D;return D=await F.match(j).with({phrase:F.P.string},({phrase:m})=>C(m,N[I].prefix)).with({signer:F.P.any},({signer:m})=>m).otherwise(()=>{return}),D}let L=o?N.GENERIC:N[I];async function Q(m){let M=await f(),R=m||M;if(!R)throw new y.SwapKitError("core_wallet_not_keypair_wallet");return H(R)?R.address:void 0}return{broadcast:s,convertAddress:jI,createKeyring:(m)=>C(m,L.prefix),createTransaction:async(m)=>{z(I,m.sweep);let M=await t();return J(M,m)},decodeAddress:U,encodeAddress:V,estimateTransactionFee:async(m)=>{z(I,m.sweep);let M=await f();if(!M)throw new y.SwapKitError("core_wallet_not_keypair_wallet");let R=await t();return r(R,M,v,m)},gasAsset:v,getAddress:Q,getApi:t,getBalance:async(m)=>{let M=await t(),R=$(I,M),G=m||await Q();return R(G)},network:L,sign:async(m)=>{let M=await f();if(!M)throw new y.SwapKitError("core_wallet_not_keypair_wallet");if(H(M))return a(M,m);throw new y.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx:m,callback:M,address:R})=>{let G=await f();if(!G)throw new y.SwapKitError("core_wallet_not_keypair_wallet");if(H(G))return II(G,m,M);let u=await t();if(R)return oI({address:R,api:u,callback:M,signer:G,tx:m});throw new y.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(m)=>{z(I,m.sweep);let M=await f();if(!M)throw new y.SwapKitError("core_wallet_not_keypair_wallet");let R=await t();return e(R,M,m)},validateAddress:P({chain:I,prefix:L.prefix})}}
|
package/dist/src/sui/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var i=Object.create;var{getPrototypeOf:n,defineProperty:_,getOwnPropertyNames:w,getOwnPropertyDescriptor:t}=Object,T=Object.prototype.hasOwnProperty;function B(W){return this[W]}var a,s,M5=(W,z,Z)=>{var L=W!=null&&typeof W==="object";if(L){var Q=z?a??=new WeakMap:s??=new WeakMap,X=Q.get(W);if(X)return X}Z=W!=null?i(n(W)):{};let H=z||!W||!W.__esModule?_(Z,"default",{value:W,enumerable:!0}):Z;for(let k of w(W))if(!T.call(H,k))_(H,k,{get:B.bind(W,k),enumerable:!0});if(L)Q.set(W,H);return H},e=(W)=>{var z=(m??=new WeakMap).get(W),Z;if(z)return z;if(z=_({},"__esModule",{value:!0}),W&&typeof W==="object"||typeof W==="function"){for(var L of w(W))if(!T.call(z,L))_(z,L,{get:B.bind(W,L),enumerable:!(Z=t(W,L))||Z.enumerable})}return m.set(W,z),z},m;var W5=(W)=>W;function z5(W,z){this[W]=W5.bind(null,z)}var Z5=(W,z)=>{for(var Z in z)_(W,Z,{get:z[Z],enumerable:!0,configurable:!0,set:z5.bind(z,Z)})};var C=(W,z)=>()=>(W&&(z=W(W=0)),z);async function x(W,z,Z,L){let Q=[],X,H=0n;while(!0){let k=await W.getCoins({coinType:Z,cursor:X,owner:z});if(Q.push(...k.data),H+=k.data.reduce((N,q)=>N+BigInt(q.balance),0n),!k.hasNextPage||L!==void 0&&H>=L)return Q;X=k.nextCursor}}async function l(W){return BigInt(await W.getReferenceGasPrice())}function E({coinObjectId:W,digest:z,version:Z}){return{digest:z,objectId:W,version:Z}}function J5(W,z,Z,L=!1){let Q=z.reduce((F,D)=>F+BigInt(D.balance),0n);if(Q<Z)throw new $.SwapKitError("toolbox_sui_insufficient_balance",{available:Q.toString(),required:Z.toString()});let{selectedCoins:X}=z.reduce((F,D)=>{if(F.total>=Z)return F;return{selectedCoins:[...F.selectedCoins,D],total:F.total+BigInt(D.balance)}},{selectedCoins:[],total:0n}),H=X[0],k=W.objectRef(E(H)),N=X.slice(1).map((F)=>W.objectRef(E(F)));if(N.length>0)W.mergeCoins(k,N);if(L)return k;let[q]=W.splitCoins(k,[Z]);return q}function d(W,z){let Z=W.reduce((L,Q)=>L+BigInt(Q.balance),0n);if(Z<=0n)throw new $.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:z,available:Z.toString()}});return Z}function u(W){if(W.length>V)throw new $.SwapKitError({errorKey:"toolbox_sui_transaction_creation_error",info:{coinCount:W.length,maxGasPaymentCoins:V,reason:`SUI transactions support at most ${V} gas payment coins`}})}function b5(W,z,Z,L,Q,X){let H=Z.getBaseValue("bigint");if(X)d(z,Z.toString()),u(z);else o(z,H+BigInt(L));if(W.setGasPayment(z.map(E)),X)W.transferObjects([W.gas],Q);else{let[k]=W.splitCoins(W.gas,[Z.getBaseValue("string")]);W.transferObjects([k],Q)}}function o(W,z){let Z=W.reduce((L,Q)=>L+BigInt(Q.balance),0n);if(Z<z)throw new $.SwapKitError("toolbox_sui_insufficient_balance",{available:Z.toString(),required:z.toString()})}async function Q5({assetValue:W,gasBudget:z,recipient:Z,sender:L,suiClient:Q,sweep:X,tx:H}){let k=W.getBaseValue("bigint"),[N,q]=await Promise.all([l(Q),x(Q,L,y,X?void 0:k+BigInt(z))]);if(H.setGasPrice(N),b5(H,q,W,z,Z,X),X){let F=q.reduce((D,I)=>D+BigInt(I.balance),0n);return F<BigInt(z)?F:z}return z}async function L5({assetValue:W,gasBudget:z,recipient:Z,sender:L,suiClient:Q,sweep:X,tx:H}){let k=W.address;if(!k)throw new $.SwapKitError("toolbox_sui_missing_coin_type");let N=W.getBaseValue("bigint"),[q,F,D]=await Promise.all([l(Q),x(Q,L,y,BigInt(z)),x(Q,L,k,X?void 0:N)]);if(!D.length&&!X)throw new $.SwapKitError("toolbox_sui_no_coins_found",{coinType:k});let I=X?d(D,W.toString()):N;if(o(F,BigInt(z)),X)u(F);H.setGasPrice(q),H.setGasPayment(F.map(E));let f=J5(H,D,I,X);H.transferObjects([f],Z)}function c(W){try{return g.isValidSuiAddress(W)}catch{return!1}}function p(W){return"signWithIntent"in W}function X5({provider:W,...z}={}){let Z;async function L(){if(Z)return Z;return Z=await h.match(z).with({phrase:h.P.string},async({phrase:J})=>{let{Ed25519Keypair:b}=await import("@mysten/sui/keypairs/ed25519");return b.deriveKeypair(J)}).with({signer:h.P.any},({signer:J})=>J).otherwise(()=>{return}),Z}async function Q(J=W){let{SuiJsonRpcClient:b}=await import("@mysten/sui/jsonRpc");return new b({network:"mainnet",url:J||$.getRPCUrlSync($.Chain.Sui)})}async function X(){return(await L())?.toSuiAddress()||""}function H(J){try{let b=$.AssetValue.from({address:J,chain:$.Chain.Sui});return{asset:b.toString(),decimals:b.decimal}}catch{}return null}async function k(J){let b=J||await X();if(!b)throw new $.SwapKitError("toolbox_sui_address_required");let{baseDecimal:M,chain:R}=$.getChainConfig($.Chain.Sui);try{let Y=await(await Q()).getAllBalances({owner:b}),G=Y.find(({coinType:j})=>j===y)?.totalBalance||"0",U=[$.AssetValue.from({chain:R,fromBaseDecimal:M,value:G})];for(let{coinType:j,totalBalance:O}of Y){if(j===y||Number(O)<=0)continue;let P=H(j);if(P)U.push($.AssetValue.from({asset:P.asset,fromBaseDecimal:P.decimals,value:O}))}return U}catch{return[$.AssetValue.from({chain:R})]}}async function N(J){let b=$.AssetValue.from({chain:$.Chain.Sui,value:"0.01"});if(!J)return b;try{let M=await Q(),{txBytes:R}=await q(J),{effects:{status:v,gasUsed:Y}}=await M.dryRunTransactionBlock({transactionBlock:R});if(v.status!=="success")return b;let{baseDecimal:G}=$.getChainConfig($.Chain.Sui),U=BigInt(Y.computationCost)+BigInt(Y.storageCost)-BigInt(Y.storageRebate);return $.AssetValue.from({chain:$.Chain.Sui,fromBaseDecimal:G,value:U.toString()})}catch{return b}}async function q({recipient:J,assetValue:b,gasBudget:M,sender:R,sweep:v}){let{Transaction:Y}=await import("@mysten/sui/transactions"),G=R||await X(),U=M||$5;if(!G)throw new $.SwapKitError("toolbox_sui_no_sender");try{let j=await Q(),O=new Y;O.setSender(G);let P={assetValue:b,gasBudget:U,recipient:J,sender:G,suiClient:j,sweep:v,tx:O},A;if(b.isGasAsset||b.symbol==="SUI"){let K=await Q5(P);if(BigInt(K)<BigInt(U))A=BigInt(K);O.setGasBudget(K)}else await L5(P),O.setGasBudget(U);let S=await O.build({client:j});if(A!==void 0){let{effects:{status:K}}=await j.dryRunTransactionBlock({transactionBlock:S});if(K.status!=="success")throw new $.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:b.toString(),budget:A.toString(),error:K.error}})}return{tx:O,txBytes:S}}catch(j){if(j instanceof $.SwapKitError)throw j;throw new $.SwapKitError("toolbox_sui_transaction_creation_error",{error:j})}}async function F(J){let b=await L();if(!b)throw new $.SwapKitError("toolbox_sui_no_signer");if(J instanceof Uint8Array)return b.signTransaction(J);let{txBytes:M}="tx"in J?J:await q(J);return b.signTransaction(M)}async function D({assetValue:J,gasBudget:b,recipient:M,sweep:R}){let v=await L();if(!v)throw new $.SwapKitError("toolbox_sui_no_signer");let Y=v.toSuiAddress()||await X();if(!Y)throw new $.SwapKitError("toolbox_sui_no_sender");let{txBytes:G}=await q({assetValue:J,gasBudget:b,recipient:M,sender:Y,sweep:R}),U=await Q();if(!p(v)){let O=await v.signTransaction(G),{digest:P}=await U.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return P}let{digest:j}=await U.signAndExecuteTransaction({signer:v,transaction:G});return j}async function I(J){let b=await Q(),{digest:M}=await b.executeTransactionBlock({signature:J.signature,transactionBlock:J.bytes});return M}async function f(J){let b=await L();if(!b)throw new $.SwapKitError("toolbox_sui_no_signer");let M=await Q(),R;if(typeof J==="string")R=Uint8Array.from(Buffer.from(J,"base64"));else if(J instanceof Uint8Array)R=J;else R=await J.build({client:M});if(!p(b)){let Y=await b.signTransaction(R),{digest:G}=await M.executeTransactionBlock({signature:Y.signature,transactionBlock:Y.bytes});return G}let{digest:v}=await M.signAndExecuteTransaction({signer:b,transaction:R});return v}return{broadcastTransaction:I,createTransaction:q,estimateTransactionFee:N,getAddress:X,getBalance:k,signAndBroadcastTransaction:f,signTransaction:F,transfer:D,validateAddress:c}}var g,$,h,y="0x2::sui::SUI",V=256,$5=50000000;var r=C(()=>{g=require("@mysten/sui/utils"),$=require("@swapkit/helpers"),h=require("ts-pattern")});var H5={};Z5(H5,{validateSuiAddress:()=>c,getSuiToolbox:()=>X5});module.exports=e(H5);var F5=C(()=>{r()});F5();
|
package/dist/src/ton/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var X3=Object.create;var{getPrototypeOf:Y3,defineProperty:h,getOwnPropertyNames:A,getOwnPropertyDescriptor:Z3}=Object,c=Object.prototype.hasOwnProperty;function m(v){return this[v]}var $3,q3,h3=(v,Y,z)=>{var k=v!=null&&typeof v==="object";if(k){var B=Y?$3??=new WeakMap:q3??=new WeakMap,U=B.get(v);if(U)return U}z=v!=null?X3(Y3(v)):{};let I=Y||!v||!v.__esModule?h(z,"default",{value:v,enumerable:!0}):z;for(let R of A(v))if(!c.call(I,R))h(I,R,{get:m.bind(v,R),enumerable:!0});if(k)B.set(v,I);return I},x3=(v)=>{var Y=(p??=new WeakMap).get(v),z;if(Y)return Y;if(Y=h({},"__esModule",{value:!0}),v&&typeof v==="object"||typeof v==="function"){for(var k of A(v))if(!c.call(Y,k))h(Y,k,{get:m.bind(v,k),enumerable:!(z=Z3(v,k))||z.enumerable})}return p.set(v,Y),Y},p;var z3=(v)=>v;function H3(v,Y){this[v]=z3.bind(null,Y)}var k3=(v,Y)=>{for(var z in Y)h(v,z,{get:Y[z],enumerable:!0,configurable:!0,set:H3.bind(Y,z)})};var M=(v,Y)=>()=>(v&&(Y=v(v=0)),Y);function j3(){function v(){let Y=Date.now(),z=u||Y;return u=z,Y>u?Y:z+1}return B3+v().toString(36)}function i(v){return async function(z,k=!0){let B=await g.SwapKitApi.getChainBalance({address:z,chain:v,scamFilter:k}),{baseDecimal:U}=y.getChainConfig(v),I=B.map(({identifier:D,value:_,decimal:P})=>{return new y.AssetValue({decimal:P||U,identifier:D,value:_})});if(!I.some((D)=>D.isGasAsset))return[y.AssetValue.from({chain:v}),...I];return I}}var y,g,B3,u=0;var l=M(()=>{y=require("@swapkit/helpers"),g=require("@swapkit/helpers/api"),B3=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function N3(){let v=Date.now();if(j&&v-o<J3)return j;let{getHttpEndpoint:Y}=await import("@orbs-network/ton-access");return j=await Y(),o=v,j}async function F3(){let[v]=q.SKConfig.get("rpcUrls")[q.Chain.Ton]??[];if(v)return v;return await N3()}function K3(v={}){let Y,z,k;async function B(){if(!Y){let{TonClient:G}=await import("@ton/ton"),Q=v.provider??await F3();Y=new G({endpoint:Q})}return Y}async function U(){return(await R()).address.toString()}async function I(){if(k)return k;return k=await K.match(v).with({phrase:K.P.string},async({phrase:G})=>{let{mnemonicToWalletKey:Q}=await import("@ton/crypto");return Q(G.split(" "))}).with({signer:K.P.any},({signer:G})=>G).otherwise(()=>{return}),k}async function R(G){if(!z||G){let Q=await I(),Z=await B(),x=G||Q;if(!x)throw new q.SwapKitError("core_wallet_connection_not_found");let{WalletContractV4:$}=await import("@ton/ton"),H=$.create({publicKey:x.publicKey,workchain:0});z=Z.open(H)}return z}let D=i(q.Chain.Ton);async function _({assetValue:G,recipient:Q,memo:Z,sender:x,sweep:$}){if(G.isGasAsset){if($){let Q3=x||await U(),w=await(await B()).getBalance(X.Address.parse(Q3));if(w<=0n)throw new q.SwapKitError("toolbox_sweep_amount_too_low",{asset:G.toString(),balance:w.toString()})}let G3=Z?S(Z).toBoc().toString("base64"):void 0;return[{address:Q,amount:G.getBaseValue("string"),payload:G3}]}let H=G.address;if(!H)throw new q.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:G.toString()}});let L=x??await U(),J=await C({jettonMasterAddress:H,ownerAddress:L}),N=X.Address.parse(Q),V=X.Address.parse(L),F=$?await e(J):G.getBaseValue("bigint");if($&&F<=0n)throw new q.SwapKitError("toolbox_sweep_amount_too_low",{asset:G.toString(),balance:F.toString()});let O=Z?S(Z):void 0,f=v3({destinationAddress:N,forwardPayload:O,jettonAmount:F,responseAddress:V});return[{address:J.toString(),amount:R3.toString(),payload:f.toBoc().toString("base64")}]}async function P({sender:G,sweep:Q,...Z}){let x=Q&&Z.assetValue.isGasAsset?U3:d;return{messages:await _({...Z,sender:G,sweep:Q}),sendMode:x}}function a(G){if(!Array.isArray(G))return G;let[Q]=G;return{messages:G.map(({sendMode:x,...$})=>$),sendMode:Q?.sendMode??d}}function T(G){return G.map((Q)=>{let Z=Q.payload?X.Cell.fromBase64(Q.payload):void 0,x=Q.stateInit?X.loadStateInit(X.Cell.fromBase64(Q.stateInit).asSlice()):void 0,$=X.Address.parse(Q.address),H=X.Address.isFriendly(Q.address)?X.Address.parseFriendly(Q.address).isBounceable:!0;return X.internal({body:Z,bounce:H,init:x,to:$,value:BigInt(Q.amount)})})}async function W(G){let Q=await I(),Z=await R();if(!Z||!Q)throw new q.SwapKitError("core_wallet_connection_not_found");let x=await B(),{state:$}=await x.getContractState(Z.address),H=$==="active",L=H?await Z.getSeqno():0,{messages:J,sendMode:N}=a(G),V=Z.createTransfer({messages:T(J),secretKey:Q.secretKey,sendMode:N,seqno:L}),F=X.external({body:V,init:H?void 0:Z.init,to:Z.address});return X.beginCell().store(X.storeMessage(F)).endCell()}async function b(G){return await(await B()).sendFile(G.toBoc()),G.hash().toString("hex")}async function E(G){let Q=await W(G);return b(Q)}async function s({assetValue:G,recipient:Q,memo:Z,sweep:x}){let $=await P({assetValue:G,memo:Z,recipient:Q,sweep:x});return E($)}async function t({sender:G,...Q}){let{baseDecimal:Z}=q.getChainConfig(q.Chain.Ton),x=await K.match(G).with(K.P.string,(L)=>{return X.Address.parseFriendly(L).address}).otherwise(async()=>{return(await R()).address});if(!x)throw new q.SwapKitError("toolbox_fee_estimation_failed",{chain:q.Chain.Ton});let $=q.AssetValue.from({chain:q.Chain.Ton,value:"0.01"}),H=await B();try{let L=await P({sender:G,...Q}),J=await I(),N=await R();if(!N||!J)return $;let V=await N.getSeqno(),F=N.createTransfer({messages:T(L.messages),secretKey:J.secretKey,sendMode:L.sendMode,seqno:V}),{source_fees:O}=await H.estimateExternalMessageFee(x,{body:F,ignoreSignature:!0,initCode:null,initData:null}),f=O.in_fwd_fee+O.storage_fee+O.gas_fee+O.fwd_fee;return $.set(q.SwapKitNumber.fromBigInt(BigInt(f),Z))}catch{return $}}async function C({jettonMasterAddress:G,ownerAddress:Q}){try{let Z=await B(),x=X.Address.parse(G),$=X.Address.parse(Q),{JettonMaster:H}=await import("@ton/ton");return await Z.open(H.create(x)).getWalletAddress($)}catch{throw new q.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:G,ownerAddress:Q}})}}async function e(G){try{let Q=await B(),{JettonWallet:Z}=await import("@ton/ton");return await Q.open(Z.create(G)).getBalance()}catch{throw new q.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonWalletAddress:G.toString()}})}}function v3({jettonAmount:G,destinationAddress:Q,responseAddress:Z,forwardAmount:x=L3,forwardPayload:$}){let H=X.beginCell().storeUint(I3,32).storeUint(0,64).storeCoins(G).storeAddress(Q).storeAddress(Z).storeBit(0).storeCoins(x);if($)H.storeBit(1).storeRef($);else H.storeBit(0);return H.endCell()}function S(G){return X.beginCell().storeUint(0,32).storeStringTail(G).endCell()}return{broadcastTransaction:b,createTransaction:P,estimateTransactionFee:t,getAddress:U,getBalance:D,getJettonWalletAddress:C,sign:W,signAndBroadcastTransaction:E,transfer:s,validateAddress:r}}function r(v){try{return X.Address.parse(v),!0}catch{return!1}}var q,X,K,I3=260734629,L3,R3,d,U3,J3=60000,j,o=0;var n=M(()=>{l();q=require("@swapkit/helpers"),X=require("@ton/core"),K=require("ts-pattern"),L3=X.toNano("0.01"),R3=X.toNano("0.05"),d=X.SendMode.PAY_GAS_SEPARATELY+X.SendMode.IGNORE_ERRORS,U3=X.SendMode.CARRY_ALL_REMAINING_BALANCE+X.SendMode.IGNORE_ERRORS});var D3={};k3(D3,{validateTonAddress:()=>r,getTONToolbox:()=>K3});module.exports=x3(D3);var P3=M(()=>{n()});P3();
|
package/dist/src/tron/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var QJ=Object.create;var{getPrototypeOf:ZJ,defineProperty:x,getOwnPropertyNames:qz,getOwnPropertyDescriptor:$J}=Object,Gz=Object.prototype.hasOwnProperty;function Mz(z){return this[z]}var YJ,XJ,vJ=(z,J,Q)=>{var $=z!=null&&typeof z==="object";if($){var X=J?YJ??=new WeakMap:XJ??=new WeakMap,G=X.get(z);if(G)return G}Q=z!=null?QJ(ZJ(z)):{};let W=J||!z||!z.__esModule?x(Q,"default",{value:z,enumerable:!0}):Q;for(let H of qz(z))if(!Gz.call(W,H))x(W,H,{get:Mz.bind(z,H),enumerable:!0});if($)X.set(z,W);return W},jJ=(z)=>{var J=(jz??=new WeakMap).get(z),Q;if(J)return J;if(J=x({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var $ of qz(z))if(!Gz.call(J,$))x(J,$,{get:Mz.bind(z,$),enumerable:!(Q=$J(z,$))||Q.enumerable})}return jz.set(z,J),J},jz;var qJ=(z)=>z;function GJ(z,J){this[z]=qJ.bind(null,J)}var MJ=(z,J)=>{for(var Q in J)x(z,Q,{get:J[Q],enumerable:!0,configurable:!0,set:GJ.bind(J,Q)})};var b=(z,J)=>()=>(z&&(J=z(z=0)),J);function o(z,J){let Q=0n,$=0n,X=J;while(X<z.length&&X-J<10){let G=z[X++];if(G===void 0)break;if(Q|=BigInt(G&127)<<$,$+=7n,(G&128)===0)return[Q,X]}throw new B.SwapKitError("toolbox_tron_transaction_creation_failed")}function w(z){let J=[],Q=z<0n?z+2n**64n:z;while(Q>=128n)J.push(Number(Q&0x7fn)|128),Q>>=7n;return J.push(Number(Q)),J}function A(z,J,Q){let $=z.get(J);if($)$.push(Q);else z.set(J,[Q])}function kJ(z){let J=new Map,Q=0;while(Q<z.length){let[$,X]=o(z,Q);Q=X;let G=Number($>>3n),W=Number($&7n);if(W===E){let[H,L]=o(z,Q);Q=L,A(J,G,{data:new Uint8Array(w(H)),wireType:E})}else if(W===m){let[H,L]=o(z,Q);Q=L;let F=Number(H);if(F<0||Q+F>z.length)throw new B.SwapKitError("toolbox_tron_transaction_creation_failed");let l=z.slice(Q,Q+F);Q+=F,A(J,G,{data:l,wireType:m})}else if(W===Wz){if(Q+8>z.length)throw new B.SwapKitError("toolbox_tron_transaction_creation_failed");let H=z.slice(Q,Q+8);Q+=8,A(J,G,{data:H,wireType:Wz})}else if(W===Oz){if(Q+4>z.length)throw new B.SwapKitError("toolbox_tron_transaction_creation_failed");let H=z.slice(Q,Q+4);Q+=4,A(J,G,{data:H,wireType:Oz})}else throw new B.SwapKitError("toolbox_tron_transaction_creation_failed")}return J}function UJ(z){let J=[];for(let[G,W]of[...z.entries()].sort(([H],[L])=>H-L))for(let{wireType:H,data:L}of W){let F=BigInt(G<<3|H);if(J.push(new Uint8Array(w(F))),H===m)J.push(new Uint8Array(w(BigInt(L.length))));J.push(L)}let Q=J.reduce((G,W)=>G+W.length,0),$=new Uint8Array(Q),X=0;for(let G of J)$.set(G,X),X+=G.length;return $}function kz(z,J){if(!z||z.length%2!==0)throw new B.SwapKitError("toolbox_tron_transaction_creation_failed");let Q=_.hexToBytes(z),$=kJ(Q);if(J.expiration!==void 0)$.set(WJ,[{data:new Uint8Array(w(BigInt(J.expiration))),wireType:E}]);if(J.data!==void 0)$.set(OJ,[{data:_.hexToBytes(J.data),wireType:m}]);if(J.fee_limit!==void 0)$.set(CJ,[{data:new Uint8Array(w(BigInt(J.fee_limit))),wireType:E}]);let X=UJ($),G=_.bytesToHex(X),W=_.bytesToHex(Cz.sha256(X));return{raw_data_hex:G,txID:W}}var Cz,_,B,E=0,Wz=1,m=2,Oz=5,WJ=8,OJ=10,CJ=18;var Uz=b(()=>{Cz=require("@noble/hashes/sha2.js"),_=require("@noble/hashes/utils.js"),B=require("@swapkit/helpers")});function R(z){if(typeof z!=="string")return!1;try{let J=u.decode(z);return J.length===21&&J[0]===Pz}catch{return!1}}function Lz(z){return D.bytesToHex(u.decode(z))}function KJ(z){return u.decode(z).slice(1)}function Nz(z){let J=i.secp256k1.getPublicKey(D.hexToBytes(z),!1),Q=Hz.keccak_256(J.slice(1)).slice(-20),$=new Uint8Array(21);return $[0]=Pz,$.set(Q,1),u.encode($)}function Dz({txID:z,privateKey:J}){let Q=i.secp256k1.sign(D.hexToBytes(z),D.hexToBytes(J),{format:"recovered",prehash:!1}),$=Q[0]??0,X=D.bytesToHex(Q.slice(1,33)),G=D.bytesToHex(Q.slice(33,65)),W=($+27).toString(16).padStart(2,"0");return X+G+W}function T({txID:z,raw_data_hex:J}){let Q=D.bytesToHex(d.sha256(D.hexToBytes(J)));if(z!==Q)throw new n.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:Q,txID:z})}function PJ(z){return`000000000000000000000000${D.bytesToHex(KJ(z))}`}function LJ(z){let J=typeof z==="bigint"?z:BigInt(z);if(J<0n||J>=HJ)throw new n.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});return J.toString(16).padStart(64,"0")}function V(z){return z.map(({type:J,value:Q})=>J==="address"?PJ(Q):LJ(BigInt(Q))).join("")}function Rz(z){return D.bytesToHex(new TextEncoder().encode(z))}var i,d,Hz,D,Kz,n,u,Pz=65,HJ;var t=b(()=>{i=require("@noble/curves/secp256k1.js"),d=require("@noble/hashes/sha2.js"),Hz=require("@noble/hashes/sha3.js"),D=require("@noble/hashes/utils.js"),Kz=require("@scure/base"),n=require("@swapkit/helpers"),u=Kz.createBase58check(d.sha256),HJ=2n**256n});function Sz(){try{return U.getRPCUrlSync(U.Chain.Tron)}catch{return Bz}}function _z(){let z=new AbortController,J=setTimeout(()=>z.abort(),BJ);return{cleanup:()=>clearTimeout(J),signal:z.signal}}async function S(z,J){let{signal:Q,cleanup:$}=_z();try{let X=await fetch(`${Sz()}${z}`,{body:JSON.stringify(J),headers:{"Content-Type":"application/json"},method:"POST",signal:Q});if(!X.ok)throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${z}`});return await X.json()}finally{$()}}async function Tz(z,J){let{signal:Q,cleanup:$}=_z();try{let X=await fetch(`${J??Sz()}${z}`,{headers:{"Content-Type":"application/json"},signal:Q});if(!X.ok)throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${z}`});return await X.json()}finally{$()}}async function p(z){if(!R(z))throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:"Invalid address"});try{let J=await Tz(`/v1/accounts/${z}`,Bz);if(!(J.success&&J.data)||J.data.length===0)return;let Q;try{Q=Lz(z).toLowerCase()}catch{Q=z.toLowerCase()}let $=J.data.find((X)=>X.address.toLowerCase()===Q);if(!$)return;return{balance:$.balance,trc20:$.trc20||[]}}catch(J){if(J instanceof U.SwapKitError)throw J;throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:J instanceof Error?J.message:"Unknown error"})}}async function Vz({from:z,to:J,amount:Q}){let X=await S("/wallet/createtransaction",{amount:Q,owner_address:z,to_address:J,visible:!0});if(!X.txID||!X.raw_data_hex||!X.raw_data)throw new U.SwapKitError("toolbox_tron_transaction_creation_failed");let W=X.raw_data?.contract?.[0]?.parameter?.value;if(W?.to_address!==J||W?.owner_address!==z||W?.amount!==Q)throw new U.SwapKitError("toolbox_tron_transaction_creation_failed");return T(X),X}async function Iz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:$,feeLimit:X,callValue:G=0}){let W=await S("/wallet/triggersmartcontract",{call_value:G,contract_address:J,fee_limit:X,function_selector:Q,owner_address:z,parameter:$,visible:!0});if(!W.result.result||!W.transaction?.txID||!W.transaction?.raw_data_hex)throw new U.SwapKitError("toolbox_tron_transaction_creation_failed");let L=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(L?.contract_address!==J||L?.owner_address!==z)throw new U.SwapKitError("toolbox_tron_transaction_creation_failed");return T(W.transaction),W.transaction}function vz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:$}){return S("/wallet/triggerconstantcontract",{contract_address:J,function_selector:Q,owner_address:z,parameter:$,visible:!0})}function SJ({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:$}){return S("/wallet/estimateenergy",{contract_address:J,function_selector:Q,owner_address:z,parameter:$,visible:!0})}function Fz(z){let J=typeof z==="number"?z:typeof z==="string"?Number(z):Number.NaN;return Number.isFinite(J)&&J>0?J:void 0}async function g(z){try{let{result:J,txid:Q}=await S("/wallet/broadcasttransaction",{raw_data:z.raw_data,raw_data_hex:z.raw_data_hex,signature:z.signature,txID:z.txID,visible:z.visible});if(!J||!Q)throw new U.SwapKitError("toolbox_tron_token_transfer_failed");return Q}catch(J){throw new U.SwapKitError("toolbox_tron_broadcast_failed",{error:J})}}async function y(){let z={};try{let{chainParameter:J}=await Tz("/wallet/getchainparameters");for(let Q of J)z[Q.key]=Q.value}catch(J){U.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${J instanceof Error?J.message:J}`})}return{bandwidthFee:z.getTransactionFee??NJ,createAccountFee:z.getCreateNewAccountFeeInSystemContract??z.getCreateAccountFee??DJ,energyFee:z.getEnergyFee??RJ,memoFee:z.getMemoFee??FJ}}async function a(z){try{let J=await S("/wallet/getaccountresource",{address:z,visible:!0});return{bandwidth:{free:(J.freeNetLimit??600)-(J.freeNetUsed??0),total:J.NetLimit??0,used:J.NetUsed??0},energy:{total:J.EnergyLimit??0,used:J.EnergyUsed??0}}}catch(J){return U.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${J instanceof Error?J.message:J}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function h(z){try{let J=await S("/wallet/getaccount",{address:z,visible:!0});return J&&Object.keys(J).length>0}catch{return!1}}async function r(z){try{let J=await SJ({...z,ownerAddress:z.sender}),Q=J.energy_required??J.energyRequired;if(J.result&&!J.result.result)throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:J.result.message||"estimateenergy failed"});if(Q!==void 0){let $=Fz(Q);if($!==void 0)return $;throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(J){U.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${J instanceof Error?J.message:J}`})}try{let{energy_used:J}=await vz({...z,ownerAddress:z.sender}),Q=Fz(J);if(Q!==void 0)return Q;throw new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(J){throw U.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${J instanceof Error?J.message:J}`}),new U.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${J instanceof Error?J.message:J}`})}}async function fz({assetAddress:z,owner:J,spender:Q}){let $=V([{type:"address",value:J},{type:"address",value:Q}]),G=(await vz({contractAddress:z,functionSelector:"allowance(address,address)",ownerAddress:Q,parameter:$})).constant_result?.[0];if(!G)return 0n;try{return BigInt(`0x${G}`)}catch{return 0n}}var U,Bz="https://api.trongrid.io",NJ=1000,DJ=1e6,RJ=420,FJ=1e6,BJ=30000;var xz=b(()=>{t();U=require("@swapkit/helpers")});function uz({phrase:z,derivationPath:J}){let Q=Az.HDKey.fromMasterSeed(Ez.mnemonicToSeedSync(z)).derive(J);if(!Q.privateKey)throw new Z.SwapKitError("toolbox_tron_no_signer");return hz.bytesToHex(Q.privateKey)}function pz(z,J){return{...z,value:String(J)}}function lz(z,J){if(!J)return z;return{...z,data:J.startsWith("0x")?J:`0x${J}`}}function cz({phrase:z,derivationPath:J,index:Q}){let $=J||Z.derivationPathToString(Z.updateDerivationPath(Z.NetworkDerivationPath[Z.Chain.Tron],{index:Q||0}));return uz({derivationPath:$,phrase:z})}function TJ({phrase:z,derivationPath:J}){let Q=uz({derivationPath:J,phrase:z}),$=Nz(Q);return{getAddress:()=>Promise.resolve($),signTransaction:(X)=>{T(X);let G=Dz({privateKey:Q,txID:X.txID});return Promise.resolve({...X,signature:[G]})}}}function yz({transaction:z,memo:J,expiration:Q,feeLimit:$}){let X={},G={};if($!==void 0&&z.raw_data)X.fee_limit=$,G.fee_limit=$;if(J){let L=J.startsWith("0x")?J.replace(/^0x/,""):Rz(J);X.data=L,G.data=L}if(Q){let L=z.raw_data.expiration+Q*1000;X.expiration=L,G.expiration=L}if(Object.keys(X).length===0)return z;let{raw_data_hex:W,txID:H}=kz(z.raw_data_hex,X);return{...z,raw_data:{...z.raw_data,...G},raw_data_hex:W,txID:H}}function oz(z={}){let J="index"in z?z.index||0:0,Q=Z.derivationPathToString("derivationPath"in z&&z.derivationPath?z.derivationPath:Z.updateDerivationPath(Z.NetworkDerivationPath[Z.Chain.Tron],{index:J})),$,X=!1;function G(){if(X)return Promise.resolve($);return $=I.match(z).with({phrase:I.P.string},({phrase:Y})=>TJ({derivationPath:Q,phrase:Y})).with({signer:I.P.not(I.P.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),X=!0,Promise.resolve($)}async function W(){let Y=await G();if(!Y)throw new Z.SwapKitError("toolbox_tron_no_signer");return Y.getAddress()}async function H(Y,j){let M=Y||wz,q=j??(await y()).energyFee,O=M*q,C=Math.ceil(O*1.5);return Math.min(Math.max(C,1e7),150000000)}async function L({contractAddress:Y,functionSelector:j,parameter:M,sender:q,memo:O,expiration:C,extraEnergy:k=0}){let K=await r({contractAddress:Y,functionSelector:j,parameter:M,sender:q}),P=await H(K+k),N=await Iz({contractAddress:Y,feeLimit:P,functionSelector:j,ownerAddress:q,parameter:M});return yz({expiration:C,feeLimit:P,memo:O,transaction:N})}async function F(Y){if(!R(Y))return[Z.AssetValue.from({chain:Z.Chain.Tron})];try{let j=await p(Y);if(!j)return[Z.AssetValue.from({chain:Z.Chain.Tron})];let M=[Z.AssetValue.from({chain:Z.Chain.Tron,fromBaseDecimal:6,value:String(j.balance)})],q=j.trc20?.find((O)=>(e in O));if(q){let O=q[e];M.push(Z.AssetValue.from({asset:`TRON.USDT-${e}`,fromBaseDecimal:6,value:O}))}return M}catch(j){return Z.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${j instanceof Error?j.message:j}`}),[Z.AssetValue.from({chain:Z.Chain.Tron})]}}async function l({recipient:Y,assetValue:j,memo:M,expiration:q,sweep:O}){if(!R(Y))throw new Z.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let C=await G();if(!C)throw new Z.SwapKitError("toolbox_tron_no_signer");try{let k=await W(),K=await Zz({assetValue:j,expiration:q,memo:M,recipient:Y,sender:k,sweep:O}),P=await C.signTransaction(K),N=await g(P);if(!N)throw new Z.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return N}catch(k){if(k instanceof Z.SwapKitError&&k.errorKey==="toolbox_sweep_amount_too_low")throw k;throw new Z.SwapKitError("toolbox_tron_token_transfer_failed",{message:k instanceof Error?k.message:String(k)})}}function zz({requiredBandwidth:Y,resources:j,feePerUnit:M}){let q=Math.max(0,j.free+j.total-j.used);return Y>q?(Y-q)*M:0}async function Jz({memo:Y,recipient:j,senderAddress:M}){let[q,O,C]=await Promise.all([y(),h(j),a(M)]),k=O?0:q.createAccountFee,K=zz({feePerUnit:q.bandwidthFee,requiredBandwidth:bz,resources:C.bandwidth}),P=Y?q.memoFee:0;return Z.AssetValue.from({chain:Z.Chain.Tron,fromBaseDecimal:Z.BaseDecimal.TRON,value:k+K+P})}async function Qz({assetValue:Y,amountInBaseUnits:j=Y.getBaseValue("string"),memo:M,recipient:q,senderAddress:O}){let C=Y.address;if(!C)throw new Z.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[k,K,P,N]=await Promise.all([y(),h(q),a(O),r({contractAddress:C,functionSelector:"transfer(address,uint256)",parameter:V([{type:"address",value:q},{type:"uint256",value:j}]),sender:O})]),f=N+(K?0:s),c=zz({feePerUnit:k.bandwidthFee,requiredBandwidth:gz,resources:P.bandwidth}),Xz=Math.max(0,P.energy.total-P.energy.used),zJ=f>Xz?(f-Xz)*k.energyFee:0,JJ=M?k.memoFee:0;return Z.AssetValue.from({chain:Z.Chain.Tron,fromBaseDecimal:Z.BaseDecimal.TRON,value:c+zJ+JJ})}async function dz({assetValue:Y,memo:j,recipient:M}){let[q,O]=await Promise.all([y(),h(M)]);if(Y.isGasAsset){let P=O?0:q.createAccountFee,N=j?q.memoFee:0;return Z.AssetValue.from({chain:Z.Chain.Tron,fromBaseDecimal:Z.BaseDecimal.TRON,value:P+bz*q.bandwidthFee+N})}let k=await H(wz+(O?0:s),q.energyFee),K=j?q.memoFee:0;return Z.AssetValue.from({chain:Z.Chain.Tron,fromBaseDecimal:Z.BaseDecimal.TRON,value:k+gz*q.bandwidthFee+K})}async function nz({assetValue:Y,memo:j,recipient:M,sender:q}){let O=await G();try{let C=q?q:O?await W():void 0;if(!C)return dz({assetValue:Y,memo:j,recipient:M});return Y.isGasAsset?Jz({memo:j,recipient:M,senderAddress:C}):Qz({assetValue:Y,memo:j,recipient:M,senderAddress:C})}catch(C){throw Z.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${C instanceof Error?C.message:C}`}),new Z.SwapKitError("toolbox_fee_estimation_failed",{chain:Z.Chain.Tron,error:C})}}async function tz({assetValue:Y,memo:j,recipient:M,sender:q,sweep:O}){if(!O)return Y.getBaseValue("bigint");let[C,k]=await Promise.all([p(q),Jz({memo:j,recipient:M,senderAddress:q})]),K=BigInt(C?.balance??0)-k.getBaseValue("bigint");if(K<=0n)throw new Z.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:K.toString(),asset:Y.toString()}});return K}async function az({assetValue:Y,memo:j,recipient:M,sender:q,sweep:O}){if(!O)return Y.getBaseValue("string");let C=Y.address;if(!C)throw new Z.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let k=await p(q),P=k?.trc20.find((c)=>(C in c))?.[C]??"0";if(BigInt(P)<=0n)throw new Z.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Y.toString(),balance:P}});let N=await Qz({amountInBaseUnits:P,assetValue:Y,memo:j,recipient:M,senderAddress:q}),v=BigInt(k?.balance??0),f=N.getBaseValue("bigint");if(v<f)throw new Z.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Y.toString(),nativeBalance:v.toString(),requiredNativeFee:f.toString()}});return P}async function Zz({recipient:Y,assetValue:j,memo:M,sender:q,expiration:O,sweep:C}){if(!R(Y)||!R(q))throw new Z.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(j.isGasAsset){let N=await tz({assetValue:j,expiration:O,memo:M,recipient:Y,sender:q,sweep:C});if(N>BigInt(Number.MAX_SAFE_INTEGER))throw new Z.SwapKitError({errorKey:"toolbox_tron_transaction_creation_failed",info:{amount:N.toString(),reason:`Native transfer amount exceeds the safe integer limit of ${Number.MAX_SAFE_INTEGER} SUN`}});let v=await Vz({amount:Number(N),from:q,to:Y});return yz({expiration:O,memo:M,transaction:v})}let k=j.address;if(!k)throw new Z.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:j.toString()});let K=await az({assetValue:j,expiration:O,memo:M,recipient:Y,sender:q,sweep:C}),P=await h(Y);return L({contractAddress:k,expiration:O,extraEnergy:P?0:s,functionSelector:"transfer(address,uint256)",memo:M,parameter:V([{type:"address",value:Y},{type:"uint256",value:K}]),sender:q})}async function $z(Y){T(Y);let j=await G();if(!j)throw new Z.SwapKitError("toolbox_tron_no_signer");return j.signTransaction(Y)}async function rz(Y){let j=await $z(Y);return g(j)}function Yz({assetAddress:Y,spenderAddress:j,from:M}){return fz({assetAddress:Y,owner:M,spender:j})}async function sz({assetAddress:Y,spenderAddress:j,from:M,amount:q}){let O=await Yz({assetAddress:Y,from:M,spenderAddress:j});if(!q)return O>0n;return O>=BigInt(q)}async function ez({assetAddress:Y,spenderAddress:j,amount:M,from:q}){if(!R(Y)||!R(j))throw new Z.SwapKitError("toolbox_tron_approve_failed");let O=await G();if(!O)throw new Z.SwapKitError("toolbox_tron_no_signer");let C=q||await W(),k=M!==void 0?BigInt(M).toString():_J;try{let K=await L({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:V([{type:"address",value:j},{type:"uint256",value:k}]),sender:C}),P=await O.signTransaction(K),N=await g(P);if(!N)throw new Z.SwapKitError("toolbox_tron_approve_failed");return N}catch(K){if(K instanceof Z.SwapKitError)throw K;throw new Z.SwapKitError("toolbox_tron_approve_failed",{error:K})}}return{approve:ez,broadcastTransaction:g,createTransaction:Zz,estimateTransactionFee:nz,getAddress:W,getApprovedAmount:Yz,getBalance:F,getRpcUrl:()=>Z.getRPCUrl(Z.Chain.Tron),isApproved:sz,signAndBroadcastTransaction:rz,signTransaction:$z,transfer:l,validateAddress:R}}var hz,Az,Ez,Z,I,mz,bz=268,wz=65000,s=25000,gz=345,e="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",_J="115792089237316195423570985008687907853269984665640564039457584007913129639935";var iz=b(()=>{Uz();xz();t();hz=require("@noble/hashes/utils.js"),Az=require("@scure/bip32"),Ez=require("@scure/bip39"),Z=require("@swapkit/helpers"),I=require("ts-pattern"),mz=R});var VJ={};MJ(VJ,{withTronTransactionValue:()=>pz,withTronTransactionData:()=>lz,validateTronAddress:()=>mz,getTronToolbox:()=>oz,getTronPrivateKeyFromMnemonic:()=>cz});module.exports=jJ(VJ);var IJ=b(()=>{iz()});IJ();
|
package/dist/src/utxo/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var Z0=Object.create;var{getPrototypeOf:G0,defineProperty:fX,getOwnPropertyNames:O2,getOwnPropertyDescriptor:Y0}=Object,b2=Object.prototype.hasOwnProperty;function V2(X){return this[X]}var q0,L0,j1=(X,$,J)=>{var j=X!=null&&typeof X==="object";if(j){var Q=$?q0??=new WeakMap:L0??=new WeakMap,Z=Q.get(X);if(Z)return Z}J=X!=null?Z0(G0(X)):{};let Y=$||!X||!X.__esModule?fX(J,"default",{value:X,enumerable:!0}):J;for(let G of O2(X))if(!b2.call(Y,G))fX(Y,G,{get:V2.bind(X,G),enumerable:!0});if(j)Q.set(X,Y);return Y},z0=(X)=>{var $=(H2??=new WeakMap).get(X),J;if($)return $;if($=fX({},"__esModule",{value:!0}),X&&typeof X==="object"||typeof X==="function"){for(var j of O2(X))if(!b2.call($,j))fX($,j,{get:V2.bind(X,j),enumerable:!(J=Y0(X,j))||J.enumerable})}return H2.set(X,$),$},H2;var W0=(X)=>X;function U0(X,$){this[X]=W0.bind(null,$)}var _0=(X,$)=>{for(var J in $)fX(X,J,{get:$[J],enumerable:!0,configurable:!0,set:U0.bind($,J)})};var y=(X,$)=>()=>(X&&($=X(X=0)),$);function x(X,$){if(!Number.isInteger($)||$<0)throw RangeError(`${X} must be a non-negative integer, got: ${$}`)}function i({accountIndex:X,chain:$,derivationPath:J}){if(X!==void 0)x("accountIndex",X);let j=[...J?.slice(0,3)??k2.NetworkDerivationPath[$].slice(0,3)];if(X!==void 0)j[2]=X;return j}function _X({accountIndex:X,change:$=!1,chain:J,derivationPath:j,index:Q}){return x("index",Q),[...i({accountIndex:X,chain:J,derivationPath:j}),Number($),Q]}function ZX(X){return X[2]??0}function f2({deriveAddress:X,getBalance:$,getUtxos:J}){async function j(G){let{accountIndex:L,count:q,startIndex:U=0,change:_=!1}=G;if(x("count",q),q<1)throw RangeError("count must be at least 1");x("startIndex",U);let z=[];for(let B=0;B<q;B++){let N=await X({accountIndex:L,change:_,index:U+B});if(N)z.push(N)}return z}async function Q(G){let{gapLimit:L=20,change:q=!1}=G??{},U=[],_=0,z=0;while(_<L){let B=await X({change:q,index:z});if(!B)break;if((await $(B.address)).some((b)=>b.getValue("number")>0))U.push(B),_=0;else _++;z++}return U}async function Z(G=20){let[L,q]=await Promise.all([Q({change:!1,gapLimit:G}),Q({change:!0,gapLimit:G})]),U=[...L,...q],_=await Promise.all(U.map(async(B)=>{let V=(await $(B.address)).reduce((b,P)=>b+P.getValue("number"),0);return{...B,balance:V}})),z=_.reduce((B,N)=>B+N.balance,0);return{addresses:_,total:z}}async function Y(G=20){let[L,q]=await Promise.all([Q({change:!1,gapLimit:G}),Q({change:!0,gapLimit:G})]),U=[...L,...q];return(await Promise.all(U.map(async(z)=>{return(await J(z.address)).map((N)=>({...N,address:z.address,derivationIndex:z.index,isChange:z.change}))}))).flat()}return{deriveAddresses:j,getAggregatedBalance:Z,getAggregatedUtxos:Y,scanForAddresses:Q}}var k2;var IX=y(()=>{k2=require("@swapkit/helpers")});function T2(){function X(){let $=Date.now(),J=tX||$;return tX=J,$>tX?$:J+1}return B0+X().toString(36)}function P2(X){return async function(J,j=!0){let Q=await I2.SwapKitApi.getChainBalance({address:J,chain:X,scamFilter:j}),{baseDecimal:Z}=TX.getChainConfig(X),Y=Q.map(({identifier:L,value:q,decimal:U})=>{return new TX.AssetValue({decimal:U||Z,identifier:L,value:q})});if(!Y.some((L)=>L.isGasAsset))return[TX.AssetValue.from({chain:X}),...Y];return Y}}var TX,I2,B0,tX=0;var eX=y(()=>{TX=require("@swapkit/helpers"),I2=require("@swapkit/helpers/api"),B0=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function N0({chain:X,txHash:$}){let J=`${BX(X)}/push/transaction`,j=JSON.stringify({data:$});try{let Q=await D.RequestClient.post(J,{body:j,headers:{"Content-Type":"application/json"}});if(Q.context.code!==200)throw new D.SwapKitError("toolbox_utxo_broadcast_failed",{error:Q.context.error||"Transaction broadcast failed"});return Q.data?.transaction_hash||$}catch(Q){let Z=await D.getRPCUrl(X);if(Z){let Y=JSON.stringify({id:T2(),jsonrpc:"2.0",method:"sendrawtransaction",params:[$]}),G=await D.RequestClient.post(Z,{body:Y,headers:{"Content-Type":"application/json"}});if(G.error)throw new D.SwapKitError("toolbox_utxo_broadcast_failed",{error:G.error?.message});if(G.result.includes('"code":-26'))throw new D.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return G.result}throw Q}}function BX(X){return`https://api.blockchair.com/${M0(X)}`}function F2(X){switch(X){case D.Chain.Bitcoin:return 5;case D.Chain.Dogecoin:return 1e4;case D.Chain.Litecoin:return 1;case D.Chain.Zcash:return 1;default:return 2}}function M0(X){switch(X){case D.Chain.BitcoinCash:return"bitcoin-cash";case D.Chain.Litecoin:return"litecoin";case D.Chain.Dash:return"dash";case D.Chain.Dogecoin:return"dogecoin";case D.Chain.Zcash:return"zcash";case D.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function D0(X){try{let{feePerKb:$}=await D.RequestClient.get(`https://app.bitgo.com/api/v2/${X.toLowerCase()}/tx/fee`),J=$/1000;return Math.max(J,F2(X))}catch{return F2(X)}}async function PX(X,$){let J=await D.RequestClient.get(`${X}${$?`${X.includes("?")?"&":"?"}key=${$}`:""}`);if(!J||J.context.code!==200)throw new D.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${X}`});return J.data}async function C0({chain:X,apiKey:$}){let J=await PX(`${BX(X)}/stats`,$);if(typeof J.best_block_height!=="number")throw new D.SwapKitError("toolbox_utxo_api_error",{error:"Missing best_block_height in stats response"});return J.best_block_height}async function R2({address:X,chain:$,apiKey:J}){if(!X)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await PX(`${BX($)}/dashboards/address/${X}?transaction_details=true`,J))[X]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function H0({address:X,chain:$,apiKey:J}){return(await R2({address:X,apiKey:J,chain:$}))?.address.balance||0}async function A2({chain:X,apiKey:$,txHash:J}){if(!J)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await PX(`${BX(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}`),""}}async function b0({chain:X,apiKey:$,txHash:J}){if(!J)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let Q=(await PX(`${BX(X)}/dashboards/transaction/${J}`,$))?.[J];if(!Q)throw new D.SwapKitError("toolbox_utxo_tx_not_found",{txHash:J});let{transaction:Z,inputs:Y,outputs:G}=Q,L=Y.map((U)=>U.spending_sequence),q=Z.is_rbf===!0||L.some((U)=>U<O0);return{blockId:Z.block_id,confirmed:Z.block_id!==-1,fee:Z.fee,inputs:Y,isRBF:q,outputs:G,sequences:L,size:Z.size,txid:Z.hash,weight:Z.weight}}async function V0({chain:X,address:$,apiKey:J,offset:j=0,limit:Q=30}){return(await PX(`${BX(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:L,script_hex:q,block_id:U,transaction_hash:_,index:z,value:B,spending_signature_hex:N})=>({hash:_,index:z,is_confirmed:U!==-1,is_spent:L,script_hex:q,txHex:N,value:B}))}function k0(X){return X.reduce(($,J)=>$+J.value,0)}function E2(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 y2({chain:X,address:$,apiKey:J,targetValue:j,accumulativeValue:Q=0,offset:Z=0,limit:Y=30}){if(!$)throw new D.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let G=await V0({address:$,apiKey:J,chain:X,limit:Y,offset:Z,targetValue:j}),q=G.length<Y,U=G.filter(({is_spent:b})=>!b),_=k0(U),z=Q+_,B=j&&z>=j;if(q||B)return E2(U,j);let N=await y2({accumulativeValue:z,address:$,apiKey:J,chain:X,limit:Y,offset:Z+Y,targetValue:j}),V=[...U,...N];return E2(V,j)}catch(G){let L=G instanceof Error?G.message:String(G);return console.error(`Failed to fetch unspent UTXOs: ${L}`),[]}}async function f0({address:X,chain:$,apiKey:J,fetchTxHex:j=!0,targetValue:Q}){let Z=await y2({address:X,apiKey:J,chain:$,targetValue:Q}),Y=[];for(let{hash:G,index:L,script_hex:q,value:U}of Z){let _;if(j)_=await A2({apiKey:J,chain:$,txHash:G});Y.push({address:X,hash:G,index:L,txHex:_,value:U,witnessUtxo:{script:Buffer.from(q,"hex"),value:U}})}return Y}function E(X){let $=D.SKConfig.get("apiKeys").blockchair||"";return D.warnOnce({condition:!$,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(J)=>N0({chain:X,txHash:J}),getAddressData:(J)=>R2({address:J,apiKey:$,chain:X}),getBalance:(J)=>H0({address:J,apiKey:$,chain:X}),getBlockHeight:()=>C0({apiKey:$,chain:X}),getRawTx:(J)=>A2({apiKey:$,chain:X,txHash:J}),getSuggestedTxFee:()=>D0(X),getTransactionDetails:(J)=>b0({apiKey:$,chain:X,txHash:J}),getUtxos:(J)=>f0({...J,apiKey:$,chain:X})}}function I0(X){return X}function T0(){return function($){switch($){case D.Chain.Bitcoin:return GX.NETWORKS.bitcoin;case D.Chain.BitcoinCash:return GX.NETWORKS.bitcoinCash;case D.Chain.Dash:return GX.NETWORKS.dash;case D.Chain.Litecoin:return GX.NETWORKS.litecoin;case D.Chain.Dogecoin:return GX.NETWORKS.dogecoin;case D.Chain.Zcash:return GX.NETWORKS.zcash;default:throw new D.SwapKitError("toolbox_utxo_not_supported",{chain:$})}}}var D,GX,O0=4294967294;var v2=y(()=>{eX();D=require("@swapkit/helpers"),GX=require("@swapkit/utxo-signer")});function E0(X,$,J){return p.encodeCashAddr({hash:J,prefix:X,type:P0[$]})}function R0(X){let $=p.decodeCashAddr(X),J=F0[$.type];if(!J)throw Error(`Unknown CashAddr type: ${$.type}`);return{hash:$.hash,prefix:$.prefix,type:J}}var p,P0,F0,X2;var S2=y(()=>{p=require("@swapkit/utxo-signer"),P0={P2PKH:p.CashAddrType.P2PKH,P2SH:p.CashAddrType.P2SH},F0={[p.CashAddrType.P2PKH]:"P2PKH",[p.CashAddrType.P2SH]:"P2SH"};X2={decode:R0,encode:E0}});function j2(X){try{return hX(X),!0}catch{return!1}}function Q2(X){return hX(X)?.network}function d(X){let $=hX(X);if($?.format==="legacy")return X;return v0($)}function FX(X){let $=hX(X);return S0($)}function hX(X){try{let $=A0(X);if($)return $}catch{}try{let $=y0(X);if($)return $}catch{}throw new $2.SwapKitError("toolbox_utxo_invalid_address",{address:X})}function A0(X){try{let $=g2.decode(X);if($.length!==21)throw new $2.SwapKitError("toolbox_utxo_invalid_address",{address:X});let J=$[0],j=Array.prototype.slice.call($,1);switch(J){case YX.legacy.mainnet.p2pkh:return{format:"legacy",hash:j,network:"mainnet",type:"p2pkh"};case YX.legacy.mainnet.p2sh:return{format:"legacy",hash:j,network:"mainnet",type:"p2sh"};case YX.legacy.testnet.p2pkh:return{format:"legacy",hash:j,network:"testnet",type:"p2pkh"};case YX.legacy.testnet.p2sh:return{format:"legacy",hash:j,network:"testnet",type:"p2sh"};case YX.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:j,network:"mainnet",type:"p2pkh"};case YX.bitpay.mainnet.p2sh:return{format:"bitpay",hash:j,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function y0(X){if(X.indexOf(":")!==-1)try{return w2(X)}catch{}else{let $=["bitcoincash","bchtest","bchreg"];for(let J of $)try{return w2(`${J}:${X}`)}catch{}}return}function w2(X){try{let{hash:$,prefix:J,type:j}=X2.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call($,0),network:J==="bitcoincash"?"mainnet":"testnet",type:j==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function v0(X){let $=YX.legacy[X.network][X.type],J=Buffer.alloc(1+X.hash.length);return J[0]=$,J.set(X.hash,1),g2.encode(J)}function S0(X){let $=X.network==="mainnet"?"bitcoincash":"bchtest",J=X.type==="p2pkh"?"P2PKH":"P2SH",j=new Uint8Array(X.hash);return X2.encode($,J,j)}var K2,m2,$2,g2,J2,YX;var l2=y(()=>{S2();K2=require("@noble/hashes/sha2.js"),m2=require("@scure/base"),$2=require("@swapkit/helpers"),g2=m2.createBase58check(K2.sha256);((J)=>{J.Mainnet="mainnet";J.Testnet="testnet"})(J2||={});YX={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function w(X){let $=new Uint8Array(Buffer.from(X,"utf8"));return h2.Script.encode(["RETURN",$])}var x2,h2,w0=1000,cX=10,uX=2,o2=10,K0=41,m0=107,pX,oX,EX,NX=(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 x2.SwapKitError("toolbox_utxo_invalid_address",{address:X})},qX=({inputs:X,outputs:$,feeRate:J})=>{let j=X[0]&&"address"in X[0]&&X[0].address?NX(X[0].address):"P2PKH",Z=(J?X.filter((q)=>q.value>=oX["type"in q&&q.type?q.type:"P2PKH"]*Math.ceil(J)):X).reduce((q,U)=>q+s(U),0),Y=$?.reduce((q,U)=>q+RX(U),0)||EX[j],G=cX+Z+Y;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[NX(X.address)];return K0+m0},RX=(X,$)=>{if(X?.script)return o2+X.script.length+(X.script.length>=74?2:1);if($)return EX[$];if("address"in X&&X.address)return EX[NX(X.address)];return EX.P2PKH};var Z2=y(()=>{x2=require("@swapkit/helpers"),h2=require("@swapkit/utxo-signer");((J)=>{J.P2PKH="P2PKH";J.P2WPKH="P2WPKH"})(pX||={});oX={["P2PKH"]:148,["P2WPKH"]:68},EX={["P2PKH"]:34,["P2WPKH"]:31}});function MX(X){switch(X){case g.Chain.Bitcoin:case g.Chain.BitcoinCash:return 550;case g.Chain.Dash:case g.Chain.Litecoin:return 5500;case g.Chain.Dogecoin:return 1e5;case g.Chain.Zcash:return 546;default:throw new g.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}function l({inputs:X,outputs:$,feeRate:J=1,chain:j=g.Chain.Bitcoin,changeAddress:Q="",sweep:Z=!1}){let Y=MX(j),G=X.filter((b)=>{let P=s(b)*J;return Z?b.value>Math.max(P,Y):P<=b.value});if(Z){let b=Math.ceil(J*qX({inputs:G,outputs:$})),P=G.reduce((K,c)=>K+c.value,0),$X=P-b;if($X<=Y)throw new g.SwapKitError("toolbox_sweep_amount_too_low",{available:P,dustThreshold:Y,fee:b});let JX=$.findIndex((K)=>("address"in K)&&K.address);if(JX===-1)throw new g.SwapKitError("toolbox_utxo_invalid_params",{error:"Sweep requires a recipient output"});return{fee:b,inputs:G,outputs:$.map((K,c)=>c===JX?{...K,value:$X}:K)}}let U=(X[0]&&"address"in X[0]&&X[0].address?NX(X[0].address):"P2PKH")==="P2WPKH"?Math.ceil(uX/4):0,_=cX+U+$.reduce((b,P)=>b+RX(P),0),z=$.reduce((b,P)=>b+P.value,0),B=_*J,N=0,V=[];for(let b of G){let P=s(b),$X=J*P;B+=$X,N+=b.value,V.push(b);let JX=B+z;if(N<JX)continue;let K=N-JX,c=J*RX({address:Q,value:0});if(K>c){let wX=c+B,KX=N-(z+Math.ceil(wX));if(KX>Math.max(s({value:0})*J,MX(j)))return{fee:Math.ceil(wX),inputs:V,outputs:$.concat({address:Q,value:KX})}}return{fee:Math.ceil(B),inputs:V,outputs:$}}return{fee:Math.ceil(J*qX({inputs:X,outputs:$}))}}var g;var c2=y(()=>{Z2();g=require("@swapkit/helpers")});var DX=y(()=>{v2();l2();c2();Z2()});function LX(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function a(X){let $=LX(X);return j2($)&&Q2($)==="mainnet"}var zX;var AX=y(()=>{DX();zX=require("@swapkit/utxo-signer")});function q2({address:X,chain:$}){return Y2.match($).with(W.Chain.BitcoinCash,()=>a(X)).with(W.Chain.Zcash,()=>zX.validateZcashAddress(X)).otherwise(()=>{try{return C.Address(v($)).decode(X),!0}catch{return!1}})}function v(X){return Y2.match(X).with(W.Chain.Bitcoin,()=>C.NETWORKS.bitcoin).with(W.Chain.BitcoinCash,()=>C.NETWORKS.bitcoinCash).with(W.Chain.Dash,()=>C.NETWORKS.dash).with(W.Chain.Dogecoin,()=>C.NETWORKS.dogecoin).with(W.Chain.Litecoin,()=>C.NETWORKS.litecoin).with(W.Chain.Zcash,()=>C.NETWORKS.zcash).exhaustive()}function g0({phrase:X,derivationPath:$,network:J,seed:j}){let Q=j??rX.mnemonicToSeedSync(X),Y=G2.HDKey.fromMasterSeed(Q,J.bip32).derive($);if(!Y.privateKey)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return Y.privateKey}function u2(X){return p2.secp256k1.getPublicKey(X,!0)}function vX({publicKey:X,chain:$,network:J}){if($===W.Chain.BitcoinCash){let Z=C.p2pkh(X,J);if(!Z.hash)throw new W.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return C.encodeCashAddr({hash:Z.hash,prefix:C.CashAddrPrefix.MAINNET,type:C.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let Q=!yX.includes($)?C.p2wpkh(X,J):C.p2pkh(X,J);if(!Q.address)throw new W.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return Q.address}function CX({phrase:X,derivationPath:$,chain:J,wif:j,seed:Q}){let Z=v(J);if(j){let q=C.WIF(Z).decode(j),U=u2(q);return{privateKey:q,publicKey:U}}if(!X)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let Y=$||W.derivationPathToString(W.NetworkDerivationPath[J]),G=g0({derivationPath:Y,network:Z,phrase:X,seed:Q}),L=u2(G);return{privateKey:G,publicKey:L}}function l0(X,$){return C.WIF(v($)).encode(X)}function x0({phrase:X,derivationPath:$,chain:J,seed:j}){let Q=$.split("/");if(Q.length<4)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${Q.length}): ${$}`});let Z=v(J),Y=j??rX.mnemonicToSeedSync(X),G=G2.HDKey.fromMasterSeed(Y,Z.bip32),L=Q.slice(0,4).join("/");return G.derive(L)}function e({inputs:X,outputs:$,chain:J,tx:j,sender:Q,compiledMemo:Z,enableRBF:Y=!1}){let G=v(J),L=!yX.includes(J),q=Y?C.RBF_SEQUENCE:void 0,U=new Set;for(let _ of X){let z=`${_.hash}:${_.index}`;if(U.has(z))throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});U.add(z);let B=typeof _.hash==="string"?t.hex.decode(_.hash):_.hash;if(L&&_.witnessUtxo)j.addInput({index:_.index,sequence:q,txid:B,witnessUtxo:{amount:BigInt(_.witnessUtxo.value),script:_.witnessUtxo.script}});else if(_.txHex)j.addInput({index:_.index,nonWitnessUtxo:t.hex.decode(_.txHex),sequence:q,txid:B,...J===W.Chain.BitcoinCash?{sighashType:C.BCHSigHash.ALL}:{}});else throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let _ of $){let z="address"in _&&_.address?_.address:Q;if(J===W.Chain.BitcoinCash)z=d(z);if(_.script){if(Z)j.addOutput({amount:0n,script:Z})}else j.addOutputAddress(z,BigInt(_.value),G)}return{inputs:X,tx:j}}async function HX(X){let $=await E(X).getSuggestedTxFee();return{[W.FeeOption.Average]:$,[W.FeeOption.Fast]:W.applyFeeMultiplier($,W.FeeOption.Fast),[W.FeeOption.Fastest]:W.applyFeeMultiplier($,W.FeeOption.Fastest)}}async function d2({assetValue:X,recipient:$,memo:J,sender:j,sweep:Q,fetchTxHex:Z=!1}){let Y=X.chain,G=Z||yX.includes(Y),L=X.getBaseValue("number"),q=Q?void 0:Math.ceil(L+(await HX(Y))[W.FeeOption.Fastest]*5000);return{inputs:await E(Y).getUtxos({address:j,fetchTxHex:G,targetValue:q}),outputs:[{address:$,value:Q?0:L},...J?[{address:"",script:w(J),value:0}]:[]]}}async function r2({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q,fetchTxHex:Z=!1,enableRBF:Y=!1,sweep:G}){let L=X.chain,q=J?w(J):null,U=await d2({assetValue:X,fetchTxHex:Z,memo:J,recipient:$,sender:Q,sweep:G}),{inputs:_,outputs:z}=l({...U,chain:L,feeRate:j,sweep:G});if(!(_&&z))throw new W.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});let B=new C.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!q,version:1}),{inputs:N,tx:V}=e({chain:L,compiledMemo:q,enableRBF:Y,inputs:_,outputs:z,sender:Q,tx:B});return{inputs:N,tx:V,utxos:U.inputs}}async function n2({assetValue:X,feeOptionKey:$=W.FeeOption.Fast,feeRate:J,memo:j,sender:Q,recipient:Z,sweep:Y}){let G=X.chain,L=await d2({assetValue:X,memo:j,recipient:Z,sender:Q,sweep:Y}),q=J?Math.floor(J):(await HX(G))[$];return l({...L,chain:G,feeRate:q,sweep:Y})}function h0(X){return async function({from:J,memo:j,feeRate:Q,feeOptionKey:Z=W.FeeOption.Fast,recipient:Y=J,recipients:G=1}){let L=Q??(await HX(X))[Z],U=(await E(X).getUtxos({address:J,fetchTxHex:!1})).filter((V)=>V.value>Math.max(MX(X),s(V)*L));if(!U.length)return W.AssetValue.from({chain:X});let _=typeof G==="number"?Math.max(G,1):G.length,z=typeof G==="number"||_===0?Array.from({length:_||1},()=>({address:Y,value:0})):[...G];if(j)z.push({address:J,script:w(j),value:0});let{outputs:B}=l({chain:X,feeRate:L,inputs:U,outputs:z,sweep:!0}),N=B?.[0]?.value??0;return W.AssetValue.from({chain:X,value:BigInt(N)})}}function o0(X){return async function(J){let{fee:j}=await n2(J);return W.AssetValue.from({chain:X,value:W.SwapKitNumber.fromBigInt(BigInt(j),8).getValue("string")})}}function c0({chain:X,phrase:$,derivationPath:J,seed:j}){let Q=v(X),{privateKey:Z,publicKey:Y}=CX({chain:X,derivationPath:J,phrase:$,seed:j}),G=X===W.Chain.BitcoinCash?[C.BCHSigHash.ALL]:[C.SigHash.ALL];return{getAddress:()=>vX({chain:X,network:Q,publicKey:Y}),privateKey:Z,publicKey:Y,signTransaction:(L)=>{return L.sign(Z,G),L}}}function u0(X,$){return async function({memo:j,recipient:Q,feeOptionKey:Z,feeRate:Y,assetValue:G,enableRBF:L=!1,sweep:q}){let U=await $?.getAddress();if(!($&&U))throw new W.SwapKitError("toolbox_utxo_no_signer");if(!Q)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});W.warnOnce({condition:L&&!dX.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&&dX.includes(X),z=Y||(await HX(X))[Z||W.FeeOption.Fast],{tx:B}=await r2({assetValue:G,enableRBF:_,feeRate:z,memo:j,recipient:Q,sender:U,sweep:q}),N=await $.signTransaction(B);return N.finalize(),E(X).broadcastTx(t.hex.encode(N.extract()))}}function L2(X){return($)=>q2({address:$,chain:X})}function z2(X){let $=v(X);return function(j){if(!j)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return vX({chain:X,network:$,publicKey:j.publicKey})}}function XX({chain:X,...$}){let J="phrase"in $?$.phrase:void 0,j="index"in $?$.index||0:0,Q=J?rX.mnemonicToSeedSync(J):void 0,Z="derivationPath"in $&&$.derivationPath?$.derivationPath:W.updateDerivationPath(W.NetworkDerivationPath[X],{index:j}),Y=W.derivationPathToString(Z),G=J?c0({chain:X,derivationPath:Y,phrase:J,seed:Q}):void 0,L="signer"in $?$.signer:void 0,q=G||L,U=J?CX({chain:X,derivationPath:Y,phrase:J,seed:Q}):void 0;function _(){if(q)return q.getAddress();return Promise.resolve(void 0)}function z(M){if(!J)return;let H=i({accountIndex:M,chain:X,derivationPath:Z});return x0({chain:X,derivationPath:W.derivationPathToString(H),phrase:J,seed:Q})}let B=z();function N(){if(!B)return;return B.publicExtendedKey}function V({accountIndex:M}={}){let H=M===void 0?B:z(M);if(!H)return;let k=i({accountIndex:M,chain:X,derivationPath:Z});return{accountIndex:ZX(k),path:W.derivationPathToString(k),xpub:H.publicExtendedKey}}function b({accountIndex:M,index:H,change:k=!1}){let I=M===void 0?B:z(M);if(!I)return;let T=_X({accountIndex:M,chain:X,change:k,derivationPath:Z,index:H}),m=v(X),h=I.deriveChild(Number(k)).deriveChild(H);if(!h.publicKey)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let S=vX({chain:X,network:m,publicKey:h.publicKey}),n=t.hex.encode(h.publicKey);return{accountIndex:ZX(T),address:S,change:k,index:H,path:W.derivationPathToString(T),pubkey:n}}async function P(M){if(!dX.includes(X))return{reason:`RBF is not supported on ${X}`,supported:!1};let H=await E(X).getTransactionDetails(M);return{canReplace:H.isRBF&&!H.confirmed,confirmed:H.confirmed,enabled:H.isRBF,fee:H.fee,sequences:H.sequences,supported:!0}}async function $X({txid:M,newFeeRate:H,recipient:k,memo:I}){if(!dX.includes(X))throw new W.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:X});let T=await E(X).getTransactionDetails(M);if(!T.isRBF)throw new W.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:M});if(T.confirmed)throw new W.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:T.blockId,txid:M});let m=T.inputs.reduce((A,u)=>A+u.value,0),S=T.outputs.find((A)=>A.recipient===k)?.value||0;if(S===0)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let n=await Promise.all(T.inputs.map(async(A)=>{let u=await E(X).getRawTx(A.transaction_hash);return{hash:A.transaction_hash,index:A.index,txHex:u,value:A.value,witnessUtxo:void 0}})),VX=I?w(I):null,mX=qX({feeRate:H,inputs:n.map((A)=>({...A,type:"P2WPKH"})),outputs:[{address:k,value:S}]}),jX=Math.ceil(mX*H);if(jX<=T.fee)throw new W.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:jX,originalFee:T.fee});let WX=jX-T.fee,UX=S-WX;if(UX<=0)throw new W.SwapKitError("toolbox_utxo_rbf_insufficient_change");let QX=new C.Transaction({allowLegacyWitnessUtxo:!0,version:1}),gX=[{address:k,value:UX},...I?[{address:"",script:w(I),value:0}]:[]],lX=m-UX-jX,kX=await _();if(lX>MX(X)&&kX)gX.push({address:kX,value:lX});return e({chain:X,compiledMemo:VX,inputs:n,outputs:gX,sender:kX||k,tx:QX}),{feeDelta:WX,newFee:jX,originalFee:T.fee,tx:QX}}async function JX({txid:M,newFeeRate:H,recipient:k,memo:I}){let{tx:T,originalFee:m,newFee:h}=await $X({memo:I,newFeeRate:H,recipient:k,txid:M}),S=await sX(T);S.finalize();let n=await E(X).broadcastTx(t.hex.encode(S.extract()));return{newFee:h,originalFee:m,txid:n}}function K({accountIndex:M,index:H,change:k=!1}){x("index",H);let I=M===void 0?B:z(M);if(!I)return;return I.deriveChild(Number(k)).deriveChild(H).privateKey||void 0}function c({tx:M,inputDerivations:H}){if(!B)throw new W.SwapKitError("toolbox_utxo_no_signer");let k=X===W.Chain.BitcoinCash?[C.BCHSigHash.ALL]:[C.SigHash.ALL];for(let I=0;I<H.length;I++){let T=H[I];if(!T)continue;let{derivationIndex:m,isChange:h}=T,S=K({change:h,index:m});if(!S)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${I} at index ${m}`});M.signIdx(S,I,k)}return M}async function wX({utxos:M,recipient:H,assetValue:k,memo:I,feeRate:T,feeOptionKey:m,changeAddress:h,sweep:S}){if(S)throw new W.SwapKitError("toolbox_utxo_invalid_params",{error:"Sweep is not supported for transfers from multiple addresses"});if(!B)throw new W.SwapKitError("toolbox_utxo_no_signer");let n=T||(await HX(X))[m||W.FeeOption.Fast],VX=I?w(I):null,mX=[{address:H,value:k.getBaseValue("number")}];if(VX)mX.push({address:"",script:VX,value:0});let jX=M.map(({hash:A,index:u,value:xX,txHex:Q0,witnessUtxo:aX})=>({hash:A,index:u,txHex:Q0,value:xX,witnessUtxo:aX?{script:aX.script,value:aX.value}:void 0})),{inputs:WX,outputs:UX}=l({chain:X,feeRate:n,inputs:jX,outputs:mX});if(!(WX&&UX))throw new W.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:k,sender:"multiple addresses"});let QX=new C.Transaction({allowLegacyWitnessUtxo:!0,version:1}),gX=M[0]?.address,lX=h||await _()||gX||H;e({chain:X,compiledMemo:VX,inputs:WX,outputs:UX,sender:lX,tx:QX});let kX=WX.map((A)=>{let u=M.find((xX)=>xX.hash===A.hash&&xX.index===A.index);return u?{derivationIndex:u.derivationIndex,isChange:u.isChange}:{derivationIndex:0,isChange:!1}});return c({inputDerivations:kX,tx:QX}),QX.finalize(),E(X).broadcastTx(t.hex.encode(QX.extract()))}function KX({address:M,gapLimit:H=20}){if(!B)return;for(let k=0;k<H;k++){let I=b({change:!1,index:k}),T=b({change:!0,index:k}),m=I?.address===M?!1:T?.address===M;if(I?.address===M||T?.address===M)return{change:m,index:k}}return}function sX(M){if(!q)throw new W.SwapKitError("toolbox_utxo_no_signer");return q.signTransaction(M)}async function j0(M){let H=await sX(M);return H.finalize(),await E(X).broadcastTx(t.hex.encode(H.extract()))}return{accumulative:l,broadcastTx:(M)=>E(X).broadcastTx(M),bumpFee:JX,calculateTxSize:qX,createKeysForPath:(M)=>CX({...M,chain:X}),createReplacementTransaction:$X,createTransaction:r2,deriveAddressAtIndex:b,derivePrivateKeyAtIndex:K,estimateMaxSendableAmount:h0(X),estimateTransactionFee:o0(X),getAddress:_,getAddressFromKeys:z2(X),getBalance:P2(X),getExtendedPublicKey:N,getExtendedPublicKeyInfo:V,getFeeRates:()=>HX(X),getInputsOutputsFee:n2,getNetworkForChain:()=>v(X),getPrivateKeyFromMnemonic:(M)=>l0(CX({...M,chain:X}).privateKey,X),isRBFEnabled:P,keys:U,resolveDerivationIndex:KX,signAndBroadcastTransaction:j0,signTransaction:sX,signTransactionWithMultipleKeys:c,transfer:u0(X,q),transferFromMultipleAddresses:wX,validateAddress:L2(X)}}var p2,t,G2,rX,W,C,Y2,yX,dX;var OX=y(()=>{eX();IX();DX();AX();p2=require("@noble/curves/secp256k1.js"),t=require("@scure/base"),G2=require("@scure/bip32"),rX=require("@scure/bip39"),W=require("@swapkit/helpers"),C=require("@swapkit/utxo-signer"),Y2=require("ts-pattern"),yX=[W.Chain.Dash,W.Chain.Dogecoin,W.Chain.Zcash,W.Chain.BitcoinCash],dX=[W.Chain.Bitcoin]});function SX(X){return LX(FX(X))}function p0(X){let $=v(o);function J(Q){return Q.sign(X.privateKey,[R.BCHSigHash.ALL]),Q}function j(){let Q=R.p2pkh(X.publicKey,$);if(!Q.hash)throw new F.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Z=R.encodeCashAddr({hash:Q.hash,prefix:R.CashAddrPrefix.MAINNET,type:R.CashAddrType.P2PKH});return Promise.resolve(Z.replace(/^bitcoincash:/,""))}return{getAddress:j,signTransaction:J}}function U2(X){let $="phrase"in X?X.phrase:void 0,J="index"in X?X.index||0:0,j=F.derivationPathToString("derivationPath"in X&&X.derivationPath?X.derivationPath:F.updateDerivationPath(F.NetworkDerivationPath[o],{index:J})),Q=$?CX({chain:o,derivationPath:j,phrase:$}):void 0,Z=Q?p0(Q):("signer"in X)?X.signer:void 0;function Y(){return Promise.resolve(Z?.getAddress())}let{getBalance:G,getFeeRates:L,broadcastTx:q,...U}=XX({chain:o});function _(N,V=!0){return G(LX(FX(N)))}function z(N){if(!Z)throw new F.SwapKitError("toolbox_utxo_no_signer");return Z.signTransaction(N)}async function B(N){let V=await z(N);return V.finalize(),await q(W2.hex.encode(V.extract()))}return{...U,broadcastTx:q,buildTx:r0,createTransaction:i2,getAddress:Y,getAddressFromKeys:n0,getBalance:_,getFeeRates:L,signAndBroadcastTransaction:B,signTransaction:z,stripPrefix:LX,stripToCashAddress:SX,transfer:d0({broadcastTx:q,getFeeRates:L,signer:Z}),validateAddress:a}}async function i2({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q,sweep:Z}){if(!a($))throw new F.SwapKitError("toolbox_utxo_invalid_address",{address:$});let Y=Math.ceil(X.getBaseValue("number")+j*7500),G=await E(o).getUtxos({address:SX(Q),fetchTxHex:!0,targetValue:Z?void 0:Y}),L=J?w(J):null,q=[],U=d($);if(q.push({address:U,value:Z?0:X.getBaseValue("number")}),L)q.push({script:L,value:0});let{inputs:_,outputs:z}=l({chain:o,feeRate:j,inputs:G,outputs:q,sweep:Z});if(!(_&&z))throw new F.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});let B=new R.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!L,version:1}),N=d(Q),{inputs:V,tx:b}=e({chain:o,compiledMemo:L,inputs:_,outputs:z.map((P)=>("address"in P)&&P.address?{...P,address:d(P.address)}:P),sender:N,tx:B});return{inputs:V,tx:b,utxos:_}}function d0({broadcastTx:X,getFeeRates:$,signer:J}){return async function({recipient:Q,assetValue:Z,feeOptionKey:Y=F.FeeOption.Fast,sweep:G,...L}){let q=await J?.getAddress();if(!(J&&q))throw new F.SwapKitError("toolbox_utxo_no_signer");if(!Q)throw new F.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let U=L.feeRate||(await $())[Y],{tx:_}=await i2({...L,assetValue:Z,feeRate:U,recipient:Q,sender:q,sweep:G}),z=await J.signTransaction(_);return z.finalize(),X(W2.hex.encode(z.extract()))}}async function r0({assetValue:X,recipient:$,memo:J,feeRate:j,sender:Q}){let Z=FX($);if(!a(Z))throw new F.SwapKitError("toolbox_utxo_invalid_address",{address:Z});let Y=Math.ceil(X.getBaseValue("number")+j*7500),G=await E(o).getUtxos({address:SX(Q),fetchTxHex:!0,targetValue:Y}),L=Number(j.toFixed(0)),q=J?w(J):null,U=[];if(U.push({address:d($),value:X.getBaseValue("number")}),q)U.push({script:q,value:0});let{inputs:_,outputs:z}=l({chain:o,feeRate:L,inputs:G,outputs:U});if(!(_&&z))throw new F.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:Q});let B=new R.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!q,version:1}),{inputs:N,tx:V}=e({chain:o,compiledMemo:q,inputs:_,outputs:z,sender:d(Q),tx:B});return{inputs:N,tx:V,utxos:G}}function n0(X){let $=R.NETWORKS.bitcoinCash,J=R.p2pkh(X.publicKey,$);if(!J.hash)throw new F.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return R.encodeCashAddr({hash:J.hash,prefix:R.CashAddrPrefix.MAINNET,type:R.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var W2,F,R,o;var nX=y(()=>{DX();OX();AX();W2=require("@scure/base"),F=require("@swapkit/helpers"),R=require("@swapkit/utxo-signer"),o=F.Chain.BitcoinCash});function N2(){let{isStagenet:X}=f.SKConfig.get("envs");return X?O.ZCASH_TEST_NETWORK:O.ZCASH_NETWORK}function s0(X){return i0.encode(X)}function a0({phrase:X,derivationPath:$}){let J=B2.mnemonicToSeedSync(X),Q=_2.HDKey.fromMasterSeed(J).derive($);if(!Q.privateKey||!Q.publicKey)throw new f.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:Z,publicKey:Y}=Q,G=O.utils.hash160(Y),{isStagenet:L}=f.SKConfig.get("envs"),q=L?new Uint8Array([29,37]):new Uint8Array([28,184]),U=new Uint8Array(q.length+G.length);U.set(q,0),U.set(G,q.length);let _=s0(U);return{getAddress:()=>Promise.resolve(_),signTransaction:(z)=>{if(z instanceof O.ZcashPSBT){let B=z.toPCZT();return B.signAllInputs(Z,Y,O.ZcashSigHash.ALL),B.finalizeAllInputs(),Promise.resolve(B.extract())}if(z instanceof O.PCZT)return z.signAllInputs(Z,Y,O.ZcashSigHash.ALL),z.finalizeAllInputs(),Promise.resolve(z.extract());return z.signAllInputs(Z,Y,O.ZcashSigHash.ALL),Promise.resolve(z)}}}function t0({inputs:X,outputs:$,tx:J,sender:j,compiledMemo:Q}){let Z=N2();for(let Y of X){let G=O.Address(Z).decode(j),L=O.OutScript.encode(G);J.addInput({index:Y.index,script:L,sequence:4294967295,txid:iX.hex.decode(Y.hash),value:BigInt(Y.value)})}for(let Y of $){let G="address"in Y&&Y.address?Y.address:j,L=Y.script;if(L&&!Q)continue;if(L&&Q)J.addOutput({amount:0n,script:Q});else J.addOutputAddress(G,BigInt(Y.value),Z)}return{inputs:X,tx:J}}async function e0(){let{isStagenet:X}=f.SKConfig.get("envs");if(X)return O.ZcashConsensusBranchId.IRONWOOD;try{let $=await E(f.Chain.Zcash).getBlockHeight();return O.getZcashConsensusBranchId($+1)}catch{return O.ZcashConsensusBranchId.IRONWOOD}}async function s2(X){let{assetValue:$,recipient:J,memo:j,feeRate:Q,sender:Z,fetchTxHex:Y,sweep:G}=X,L=N2();if(!O.isTransparentZcashAddress(Z,L))throw new f.SwapKitError("toolbox_utxo_invalid_address",{address:Z});if(!O.isTransparentZcashAddress(J,L))throw new f.SwapKitError("toolbox_utxo_invalid_address",{address:J,error:"Zcash transaction creation currently supports transparent addresses only"});let q=j?w(j):null,U=await E(f.Chain.Zcash).getUtxos({address:Z,fetchTxHex:Y!==!1}),_=[{address:J,value:G?0:Number($.getBaseValue("string"))},...q?[{script:q,value:0}]:[]],{inputs:z,outputs:B}=l({chain:f.Chain.Zcash,changeAddress:Z,feeRate:Q,inputs:U,outputs:_,sweep:G});if(!(z&&B))throw new f.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:$,sender:Z});let N=O.createZcashTransaction({consensusBranchId:await e0(),expiryHeight:0,lockTime:0,version:4,versionGroupId:O.ZcashVersionGroupId.SAPLING}),{tx:V,inputs:b}=t0({compiledMemo:q,inputs:z,outputs:B,sender:Z,tx:N});return{inputs:b,outputs:B,tx:V}}function M2(X){let $=bX.match(X).with({signer:bX.P.not(bX.P.nullish)},({signer:L})=>L).with({phrase:bX.P.string},({phrase:L,derivationPath:q,index:U=0})=>{let _=q||f.NetworkDerivationPath[f.Chain.Zcash]||[44,133,0,0,0],z=f.updateDerivationPath(_,{index:U}),B=f.derivationPathToString(z);return a0({derivationPath:B,phrase:L})}).otherwise(()=>{return}),J=XX({chain:f.Chain.Zcash,signer:$});async function j(L){if(!$)throw new f.SwapKitError("toolbox_utxo_no_signer");return await $.signTransaction(L)}async function Q(L){let q=await j(L);return J.broadcastTx(q.toHex())}async function Z({recipient:L,assetValue:q,feeOptionKey:U=f.FeeOption.Fast,sweep:_,...z}){let B=await $?.getAddress();if(!($&&B))throw new f.SwapKitError("toolbox_utxo_no_signer");let N=z.feeRate||(await J.getFeeRates())[U],{tx:V}=await s2({...z,assetValue:q,feeRate:N,recipient:L,sender:B,sweep:_}),P=(await $.signTransaction(V)).toHex();return J.broadcastTx(P)}function Y({phrase:L,derivationPath:q="m/44'/133'/0'/0/0"}){let U=B2.mnemonicToSeedSync(L),z=_2.HDKey.fromMasterSeed(U).derive(q);if(!z.privateKey||!z.publicKey)throw new f.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:z.privateKey,publicKey:z.publicKey}}function G({phrase:L,derivationPath:q="m/44'/133'/0'/0/0"}){let U=Y({derivationPath:q,phrase:L}),_=N2();return O.WIF(_).encode(U.privateKey)}return{...J,createKeysForPath:Y,createTransaction:s2,getPrivateKeyFromMnemonic:G,signAndBroadcastTransaction:Q,signTransaction:j,transfer:Z,validateAddress:zX.validateZcashAddress}}var iX,_2,B2,f,O,bX,i0;var D2=y(()=>{DX();OX();AX();iX=require("@scure/base"),_2=require("@scure/bip32"),B2=require("@scure/bip39"),f=require("@swapkit/helpers"),O=require("@swapkit/utxo-signer"),bX=require("ts-pattern");i0=iX.createBase58check(O.utils.sha256)});function X0({xpub:X,chain:$,count:J,startIndex:j=0,accountIndex:Q}){if(x("count",J),J<1)throw RangeError("count must be at least 1");x("startIndex",j);let Z=v($),Y=t2.HDKey.fromExtendedKey(X,Z.bip32),G=i({accountIndex:Q,chain:$}),L=ZX(G),q=[];for(let U of[!1,!0]){let _=Y.deriveChild(Number(U));for(let z=0;z<J;z++){let B=j+z,N=_.deriveChild(B);if(!N.publicKey)continue;let V=_X({accountIndex:Q,chain:$,change:U,index:B});q.push({accountIndex:L,address:vX({chain:$,network:Z,publicKey:N.publicKey}),change:U,index:B,path:e2.derivationPathToString(V),pubkey:a2.hex.encode(N.publicKey)})}}return q}var a2,t2,e2;var $0=y(()=>{IX();OX();a2=require("@scure/base"),t2=require("@scure/bip32"),e2=require("@swapkit/helpers")});function X1(X,$){switch(X){case r.Chain.BitcoinCash:return U2($||{});case r.Chain.Zcash:return M2($);case r.Chain.Bitcoin:case r.Chain.Dogecoin:case r.Chain.Litecoin:case r.Chain.Dash:return XX({chain:X,...$});default:throw new r.SwapKitError("toolbox_utxo_not_supported",{chain:X})}}var r;var J0=y(()=>{nX();OX();D2();IX();$0();nX();AX();r=require("@swapkit/helpers")});var $1={};_0($1,{validateZcashAddress:()=>zX.validateZcashAddress,validateUtxoAddress:()=>q2,validateBchAddress:()=>a,toLegacyAddress:()=>d,toCashAddress:()=>FX,stripToCashAddress:()=>SX,stripPrefix:()=>LX,nonSegwitChains:()=>yX,isValidAddress:()=>j2,getUtxoToolbox:()=>X1,getUtxoNetwork:()=>T0,getUtxoApi:()=>E,getUTXOAddressValidator:()=>L2,getUTXOAddressPath:()=>_X,getUTXOAccountPath:()=>i,getUTXOAccountIndexFromPath:()=>ZX,getScriptTypeForAddress:()=>NX,getOutputSize:()=>RX,getNetworkForChain:()=>v,getInputSize:()=>s,getDustThreshold:()=>MX,detectAddressNetwork:()=>Q2,deriveAddressesFromXpub:()=>X0,createZcashToolbox:()=>M2,createUTXOToolbox:()=>XX,createHDWalletHelpers:()=>f2,createCustomUtxoApi:()=>I0,createBCHToolbox:()=>U2,compileMemo:()=>w,calculateTxSize:()=>qX,assertDerivationIndex:()=>x,addressFromKeysGetter:()=>z2,addInputsAndOutputs:()=>e,accumulative:()=>l,UtxoNetwork:()=>J2,UTXOScriptType:()=>pX,TX_OVERHEAD:()=>cX,SEGWIT_MARKER_FLAG_WEIGHT:()=>uX,OutputSizes:()=>EX,OP_RETURN_OVERHEAD:()=>o2,MIN_TX_FEE:()=>w0,InputSizes:()=>oX});module.exports=z0($1);var J1=y(()=>{OX();IX();DX();J0();nX();D2()});J1();
|