@uswap/toolboxes 4.3.14 → 4.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/cardano/index.cjs +4 -0
  2. package/dist/{src/cardano → cardano}/index.cjs.map +2 -2
  3. package/dist/cardano/index.js +4 -0
  4. package/dist/{src/cardano → cardano}/index.js.map +2 -2
  5. package/dist/cosmos/index.cjs +4 -0
  6. package/dist/{src/cosmos → cosmos}/index.cjs.map +2 -2
  7. package/dist/cosmos/index.js +4 -0
  8. package/dist/{src/cosmos → cosmos}/index.js.map +2 -2
  9. package/dist/evm/index.cjs +4 -0
  10. package/dist/{src/evm → evm}/index.cjs.map +2 -2
  11. package/dist/evm/index.js +4 -0
  12. package/dist/{src/evm → evm}/index.js.map +2 -2
  13. package/dist/index.cjs +5 -0
  14. package/dist/{src/index.cjs.map → index.cjs.map} +2 -2
  15. package/dist/index.js +5 -0
  16. package/dist/{src/index.js.map → index.js.map} +2 -2
  17. package/dist/near/index.cjs +4 -0
  18. package/dist/{src/near → near}/index.cjs.map +2 -2
  19. package/dist/near/index.js +4 -0
  20. package/dist/{src/near → near}/index.js.map +2 -2
  21. package/dist/radix/index.cjs +4 -0
  22. package/dist/{src/radix → radix}/index.cjs.map +2 -2
  23. package/dist/radix/index.js +4 -0
  24. package/dist/{src/radix → radix}/index.js.map +2 -2
  25. package/dist/ripple/index.cjs +4 -0
  26. package/dist/{src/ripple → ripple}/index.cjs.map +2 -2
  27. package/dist/ripple/index.js +4 -0
  28. package/dist/{src/ripple → ripple}/index.js.map +2 -2
  29. package/dist/solana/index.cjs +4 -0
  30. package/dist/{src/solana → solana}/index.cjs.map +2 -2
  31. package/dist/solana/index.js +4 -0
  32. package/dist/{src/solana → solana}/index.js.map +2 -2
  33. package/dist/substrate/index.cjs +4 -0
  34. package/dist/{src/substrate → substrate}/index.cjs.map +2 -2
  35. package/dist/substrate/index.js +4 -0
  36. package/dist/{src/substrate → substrate}/index.js.map +2 -2
  37. package/dist/sui/index.cjs +4 -0
  38. package/dist/{src/sui → sui}/index.cjs.map +2 -2
  39. package/dist/sui/index.js +4 -0
  40. package/dist/{src/sui → sui}/index.js.map +2 -2
  41. package/dist/ton/index.cjs +4 -0
  42. package/dist/{src/ton → ton}/index.cjs.map +2 -2
  43. package/dist/ton/index.js +4 -0
  44. package/dist/{src/ton → ton}/index.js.map +2 -2
  45. package/dist/tron/index.cjs +4 -0
  46. package/dist/{src/tron → tron}/index.cjs.map +2 -2
  47. package/dist/tron/index.js +4 -0
  48. package/dist/{src/tron → tron}/index.js.map +2 -2
  49. package/dist/utxo/index.cjs +5 -0
  50. package/dist/{src/utxo → utxo}/index.cjs.map +2 -2
  51. package/dist/utxo/index.js +5 -0
  52. package/dist/{src/utxo → utxo}/index.js.map +2 -2
  53. package/package.json +28 -28
  54. package/dist/src/cardano/index.cjs +0 -4
  55. package/dist/src/cardano/index.js +0 -4
  56. package/dist/src/cosmos/index.cjs +0 -4
  57. package/dist/src/cosmos/index.js +0 -4
  58. package/dist/src/evm/index.cjs +0 -4
  59. package/dist/src/evm/index.js +0 -4
  60. package/dist/src/index.cjs +0 -5
  61. package/dist/src/index.js +0 -5
  62. package/dist/src/near/index.cjs +0 -4
  63. package/dist/src/near/index.js +0 -4
  64. package/dist/src/radix/index.cjs +0 -4
  65. package/dist/src/radix/index.js +0 -4
  66. package/dist/src/ripple/index.cjs +0 -4
  67. package/dist/src/ripple/index.js +0 -4
  68. package/dist/src/solana/index.cjs +0 -4
  69. package/dist/src/solana/index.js +0 -4
  70. package/dist/src/substrate/index.cjs +0 -4
  71. package/dist/src/substrate/index.js +0 -4
  72. package/dist/src/sui/index.cjs +0 -4
  73. package/dist/src/sui/index.js +0 -4
  74. package/dist/src/ton/index.cjs +0 -4
  75. package/dist/src/ton/index.js +0 -4
  76. package/dist/src/tron/index.cjs +0 -4
  77. package/dist/src/tron/index.js +0 -4
  78. package/dist/src/utxo/index.cjs +0 -5
  79. package/dist/src/utxo/index.js +0 -5
@@ -1,4 +0,0 @@
1
- var o=Object.create;var{getPrototypeOf:U,defineProperty:L,getOwnPropertyNames:v,getOwnPropertyDescriptor:h}=Object,x=Object.prototype.hasOwnProperty;var Z=(b,O,W)=>{W=b!=null?o(U(b)):{};let K=O||!b||!b.__esModule?L(W,"default",{value:b,enumerable:!0}):W;for(let z of v(b))if(!x.call(K,z))L(K,z,{get:()=>b[z],enumerable:!0});return K},H=new WeakMap,m=(b)=>{var O=H.get(b),W;if(O)return O;if(O=L({},"__esModule",{value:!0}),b&&typeof b==="object"||typeof b==="function")v(b).map((K)=>!x.call(O,K)&&L(O,K,{get:()=>b[K],enumerable:!(W=h(b,K))||W.enumerable}));return H.set(b,O),O};var p=(b,O)=>{for(var W in O)L(b,W,{get:O[W],enumerable:!0,configurable:!0,set:(K)=>O[W]=()=>K})};var _=(b,O)=>()=>(b&&(O=b(b=0)),O);async function D(){let{isValidSuiAddress:b}=await import("@mysten/sui/utils");return function(W){try{return b(W)}catch{return!1}}}async function C({provider:b,...O}={}){let W=await D(),K=await M.match(O).with({phrase:M.P.string},async({phrase:G})=>{let{Ed25519Keypair:f}=await import("@mysten/sui/keypairs/ed25519");return f.deriveKeypair(G)}).with({signer:M.P.any},({signer:G})=>G).otherwise(()=>{return});async function z(G=b){let{SuiClient:f,getFullnodeUrl:j}=await import("@mysten/sui/client");return new f({url:G||j("mainnet")})}function N(){return K?.toSuiAddress()||""}async function T(G){let f=G||N();if(!f)throw new R.USwapError("toolbox_sui_address_required");let{baseDecimal:j,chain:k}=R.getChainConfig(R.Chain.Sui);try{let I=await z(),{totalBalance:q}=await I.getBalance({owner:f}),P=[R.AssetValue.from({chain:k,fromBaseDecimal:j,value:q})],$=await I.getAllBalances({owner:f});for(let{coinType:J,totalBalance:Y}of $){if(J==="0x2::sui::SUI")continue;if(Number(Y)>0){let E=J.split("::").pop()?.toUpperCase()||"UNKNOWN",S=`${k}.${E}-${J}`;P.push(R.AssetValue.from({asset:S,fromBaseDecimal:j,value:Y}))}}return P}catch{return[R.AssetValue.from({chain:k})]}}async function y(G){let f=R.AssetValue.from({chain:R.Chain.Sui,value:"0.01"});if(!G)return f;try{let j=await z(),{txBytes:k}=await X(G),{effects:{status:I,gasUsed:q}}=await j.dryRunTransactionBlock({transactionBlock:k});if(I.status!=="success")return f;let P=Number(q.computationCost)+Number(q.storageCost)-Number(q.storageRebate);return R.AssetValue.from({chain:R.Chain.Sui,value:P.toString()})}catch{return f}}async function X({recipient:G,assetValue:f,gasBudget:j,sender:k}){let{Transaction:I}=await import("@mysten/sui/transactions"),q=k||N();if(!q)throw new R.USwapError("toolbox_sui_no_sender");try{let P=new I;if(P.setSender(q),f.isGasAsset||f.symbol==="SUI"){let[Y]=P.splitCoins(P.gas,[f.getBaseValue("string")]);P.transferObjects([Y],G)}else throw new R.USwapError("toolbox_sui_custom_token_transfer_not_implemented");if(j)P.setGasBudget(j);let $=await z(),J=await P.build({client:$});return{tx:P,txBytes:J}}catch(P){throw new R.USwapError("toolbox_sui_transaction_creation_error",{error:P})}}async function F(G){if(!K)throw new R.USwapError("toolbox_sui_no_signer");if(G instanceof Uint8Array)return K.signTransaction(G);let{txBytes:f}="tx"in G?G:await X(G);return K.signTransaction(f)}async function w({assetValue:G,gasBudget:f,recipient:j}){if(!K)throw new R.USwapError("toolbox_sui_no_signer");let k=K.toSuiAddress()||N();if(!k)throw new R.USwapError("toolbox_sui_no_sender");let{txBytes:I}=await X({assetValue:G,gasBudget:f,recipient:j,sender:k}),q=await z(),{digest:P}=await q.signAndExecuteTransaction({signer:K,transaction:I});return P}return{createTransaction:X,estimateTransactionFee:y,getAddress:N,getBalance:T,signTransaction:F,transfer:w,validateAddress:W}}var R,M;var Q=_(()=>{R=require("@uswap/helpers"),M=require("ts-pattern")});var V={};p(V,{getSuiToolbox:()=>C,getSuiAddressValidator:()=>D});module.exports=m(V);var B=_(()=>{Q()});B();
2
-
3
- //# debugId=5A0CDFBA7062355964756E2164756E21
4
- //# sourceMappingURL=index.cjs.map
@@ -1,4 +0,0 @@
1
- var o=Object.create;var{getPrototypeOf:U,defineProperty:H,getOwnPropertyNames:h}=Object;var m=Object.prototype.hasOwnProperty;var Y=(b,f,K)=>{K=b!=null?o(U(b)):{};let P=f||!b||!b.__esModule?H(K,"default",{value:b,enumerable:!0}):K;for(let q of h(b))if(!m.call(P,q))H(P,q,{get:()=>b[q],enumerable:!0});return P};var p=(b,f)=>{for(var K in f)H(b,K,{get:f[K],enumerable:!0,configurable:!0,set:(P)=>f[K]=()=>P})};var x=(b,f)=>()=>(b&&(f=b(b=0)),f);var Z=((b)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(b,{get:(f,K)=>(typeof require<"u"?require:f)[K]}):b)(function(b){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+b+'" is not supported')});import{AssetValue as L,Chain as v,getChainConfig as C,USwapError as I}from"@uswap/helpers";import{match as A,P as _}from"ts-pattern";async function D(){let{isValidSuiAddress:b}=await import("@mysten/sui/utils");return function(K){try{return b(K)}catch{return!1}}}async function V({provider:b,...f}={}){let K=await D(),P=await A(f).with({phrase:_.string},async({phrase:G})=>{let{Ed25519Keypair:R}=await import("@mysten/sui/keypairs/ed25519");return R.deriveKeypair(G)}).with({signer:_.any},({signer:G})=>G).otherwise(()=>{return});async function q(G=b){let{SuiClient:R,getFullnodeUrl:W}=await import("@mysten/sui/client");return new R({url:G||W("mainnet")})}function M(){return P?.toSuiAddress()||""}async function T(G){let R=G||M();if(!R)throw new I("toolbox_sui_address_required");let{baseDecimal:W,chain:j}=C(v.Sui);try{let z=await q(),{totalBalance:k}=await z.getBalance({owner:R}),O=[L.from({chain:j,fromBaseDecimal:W,value:k})],$=await z.getAllBalances({owner:R});for(let{coinType:J,totalBalance:X}of $){if(J==="0x2::sui::SUI")continue;if(Number(X)>0){let E=J.split("::").pop()?.toUpperCase()||"UNKNOWN",S=`${j}.${E}-${J}`;O.push(L.from({asset:S,fromBaseDecimal:W,value:X}))}}return O}catch{return[L.from({chain:j})]}}async function y(G){let R=L.from({chain:v.Sui,value:"0.01"});if(!G)return R;try{let W=await q(),{txBytes:j}=await N(G),{effects:{status:z,gasUsed:k}}=await W.dryRunTransactionBlock({transactionBlock:j});if(z.status!=="success")return R;let O=Number(k.computationCost)+Number(k.storageCost)-Number(k.storageRebate);return L.from({chain:v.Sui,value:O.toString()})}catch{return R}}async function N({recipient:G,assetValue:R,gasBudget:W,sender:j}){let{Transaction:z}=await import("@mysten/sui/transactions"),k=j||M();if(!k)throw new I("toolbox_sui_no_sender");try{let O=new z;if(O.setSender(k),R.isGasAsset||R.symbol==="SUI"){let[X]=O.splitCoins(O.gas,[R.getBaseValue("string")]);O.transferObjects([X],G)}else throw new I("toolbox_sui_custom_token_transfer_not_implemented");if(W)O.setGasBudget(W);let $=await q(),J=await O.build({client:$});return{tx:O,txBytes:J}}catch(O){throw new I("toolbox_sui_transaction_creation_error",{error:O})}}async function F(G){if(!P)throw new I("toolbox_sui_no_signer");if(G instanceof Uint8Array)return P.signTransaction(G);let{txBytes:R}="tx"in G?G:await N(G);return P.signTransaction(R)}async function w({assetValue:G,gasBudget:R,recipient:W}){if(!P)throw new I("toolbox_sui_no_signer");let j=P.toSuiAddress()||M();if(!j)throw new I("toolbox_sui_no_sender");let{txBytes:z}=await N({assetValue:G,gasBudget:R,recipient:W,sender:j}),k=await q(),{digest:O}=await k.signAndExecuteTransaction({signer:P,transaction:z});return O}return{createTransaction:N,estimateTransactionFee:y,getAddress:M,getBalance:T,signTransaction:F,transfer:w,validateAddress:K}}var Q=()=>{};var c={};p(c,{getSuiToolbox:()=>V,getSuiAddressValidator:()=>D});var g=x(()=>{Q()});g();export{V as getSuiToolbox,D as getSuiAddressValidator};
2
-
3
- //# debugId=9B4FCE31099BDDDA64756E2164756E21
4
- //# sourceMappingURL=index.js.map
@@ -1,4 +0,0 @@
1
- var G=Object.create;var{getPrototypeOf:k,defineProperty:p,getOwnPropertyNames:N,getOwnPropertyDescriptor:z}=Object,O=Object.prototype.hasOwnProperty;var d=(t,n,o)=>{o=t!=null?G(k(t)):{};let s=n||!t||!t.__esModule?p(o,"default",{value:t,enumerable:!0}):o;for(let l of N(t))if(!O.call(s,l))p(s,l,{get:()=>t[l],enumerable:!0});return s},_=new WeakMap,E=(t)=>{var n=_.get(t),o;if(n)return n;if(n=p({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")N(t).map((s)=>!O.call(n,s)&&p(n,s,{get:()=>t[s],enumerable:!(o=z(t,s))||o.enumerable}));return _.set(t,n),n};var F=(t,n)=>{for(var o in n)p(t,o,{get:n[o],enumerable:!0,configurable:!0,set:(s)=>n[o]=()=>s})};var x=(t,n)=>()=>(t&&(n=t(t=0)),n);async function H(t={}){let{mnemonicToWalletKey:n}=await import("@ton/crypto"),{Address:o,TonClient:s,WalletContractV4:l}=await import("@ton/ton"),P=await b(),m,y,w=await u.match(t).with({phrase:u.P.string},async({phrase:r})=>n(r.split(" "))).with({signer:u.P.any},({signer:r})=>r).otherwise(()=>{return});function g(){let{rpcUrls:r}=e.getChainConfig(e.Chain.Ton),[a]=r;if(!m||m.parameters.endpoint!==a)m=new s({endpoint:a});return m}function T(r){if(!y||r){let a=g(),i=r||w;if(!i)throw new e.USwapError("core_wallet_connection_not_found");let c=l.create({publicKey:i.publicKey,workchain:0});y=a.open(c)}return y}async function A(r){let a=g(),{baseDecimal:i}=e.getChainConfig(e.Chain.Ton);try{let c=await a.getBalance(o.parse(r));return[e.AssetValue.from({chain:e.Chain.Ton,value:e.USwapNumber.fromBigInt(c,i)})]}catch{return[e.AssetValue.from({chain:e.Chain.Ton})]}}async function h({assetValue:r,recipient:a,memo:i}){let c=T();if(!c||!w)throw new e.USwapError("core_wallet_connection_not_found");let{toNano:f,comment:W,internal:B}=await import("@ton/ton"),D=await c.getSeqno(),U=f(r.getValue("string")),q=i?W(i):void 0;return c.createTransfer({messages:[B({body:q,to:a,value:U})],secretKey:w.secretKey,seqno:D})}async function S({assetValue:r,recipient:a,memo:i}){let c=T();if(!c||!w)throw new e.USwapError("core_wallet_connection_not_found");let f=await h({assetValue:r,memo:i,recipient:a});return await c.send(f),f.hash().toString()}async function v(r){let a=T();if(!a)throw new e.USwapError("core_wallet_connection_not_found");try{return await a.send(r),r.hash().toString("hex")}catch(i){throw new e.USwapError("core_wallet_connection_not_found",{error:i})}}function V(){return T().address.toString()}function K(){return Promise.resolve(e.AssetValue.from({chain:e.Chain.Ton,value:"0.0001"}))}return{createTransaction:h,estimateTransactionFee:K,getAddress:V,getBalance:A,sendTransaction:v,transfer:S,validateAddress:P}}async function b(){let{Address:t}=await import("@ton/ton");return function(o){try{return t.parse(o),!0}catch{return!1}}}var e,u;var C=x(()=>{e=require("@uswap/helpers"),u=require("ts-pattern")});var M={};F(M,{getTONToolbox:()=>H,getTONAddressValidator:()=>b});module.exports=E(M);var R=x(()=>{C()});R();
2
-
3
- //# debugId=2AA847C55D87988264756E2164756E21
4
- //# sourceMappingURL=index.cjs.map
@@ -1,4 +0,0 @@
1
- var k=Object.create;var{getPrototypeOf:z,defineProperty:g,getOwnPropertyNames:E}=Object;var F=Object.prototype.hasOwnProperty;var T=(t,n,r)=>{r=t!=null?k(z(t)):{};let i=n||!t||!t.__esModule?g(r,"default",{value:t,enumerable:!0}):r;for(let c of E(t))if(!F.call(i,c))g(i,c,{get:()=>t[c],enumerable:!0});return i};var H=(t,n)=>{for(var r in n)g(t,r,{get:n[r],enumerable:!0,configurable:!0,set:(i)=>n[r]=()=>i})};var O=(t,n)=>()=>(t&&(n=t(t=0)),n);var d=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(n,r)=>(typeof require<"u"?require:n)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{AssetValue as h,Chain as f,getChainConfig as x,USwapError as p,USwapNumber as I}from"@uswap/helpers";import{match as M,P as b}from"ts-pattern";async function R(t={}){let{mnemonicToWalletKey:n}=await import("@ton/crypto"),{Address:r,TonClient:i,WalletContractV4:c}=await import("@ton/ton"),A=await C(),u,y,m=await M(t).with({phrase:b.string},async({phrase:e})=>n(e.split(" "))).with({signer:b.any},({signer:e})=>e).otherwise(()=>{return});function _(){let{rpcUrls:e}=x(f.Ton),[o]=e;if(!u||u.parameters.endpoint!==o)u=new i({endpoint:o});return u}function w(e){if(!y||e){let o=_(),a=e||m;if(!a)throw new p("core_wallet_connection_not_found");let s=c.create({publicKey:a.publicKey,workchain:0});y=o.open(s)}return y}async function S(e){let o=_(),{baseDecimal:a}=x(f.Ton);try{let s=await o.getBalance(r.parse(e));return[h.from({chain:f.Ton,value:I.fromBigInt(s,a)})]}catch{return[h.from({chain:f.Ton})]}}async function N({assetValue:e,recipient:o,memo:a}){let s=w();if(!s||!m)throw new p("core_wallet_connection_not_found");let{toNano:l,comment:B,internal:D}=await import("@ton/ton"),U=await s.getSeqno(),q=l(e.getValue("string")),G=a?B(a):void 0;return s.createTransfer({messages:[D({body:G,to:o,value:q})],secretKey:m.secretKey,seqno:U})}async function v({assetValue:e,recipient:o,memo:a}){let s=w();if(!s||!m)throw new p("core_wallet_connection_not_found");let l=await N({assetValue:e,memo:a,recipient:o});return await s.send(l),l.hash().toString()}async function V(e){let o=w();if(!o)throw new p("core_wallet_connection_not_found");try{return await o.send(e),e.hash().toString("hex")}catch(a){throw new p("core_wallet_connection_not_found",{error:a})}}function K(){return w().address.toString()}function W(){return Promise.resolve(h.from({chain:f.Ton,value:"0.0001"}))}return{createTransaction:N,estimateTransactionFee:W,getAddress:K,getBalance:S,sendTransaction:V,transfer:v,validateAddress:A}}async function C(){let{Address:t}=await import("@ton/ton");return function(r){try{return t.parse(r),!0}catch{return!1}}}var P=()=>{};var J={};H(J,{getTONToolbox:()=>R,getTONAddressValidator:()=>C});var L=O(()=>{P()});L();export{R as getTONToolbox,C as getTONAddressValidator};
2
-
3
- //# debugId=F7F74C29477562E864756E2164756E21
4
- //# sourceMappingURL=index.js.map
@@ -1,4 +0,0 @@
1
- var Qy=Object.create;var{getPrototypeOf:Zy,defineProperty:P,getOwnPropertyNames:l,getOwnPropertyDescriptor:$y}=Object,A=Object.prototype.hasOwnProperty;var m=(f,Q,j)=>{j=f!=null?Qy(Zy(f)):{};let $=Q||!f||!f.__esModule?P(j,"default",{value:f,enumerable:!0}):j;for(let M of l(f))if(!A.call($,M))P($,M,{get:()=>f[M],enumerable:!0});return $},b=new WeakMap,jy=(f)=>{var Q=b.get(f),j;if(Q)return Q;if(Q=P({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function")l(f).map(($)=>!A.call(Q,$)&&P(Q,$,{get:()=>f[$],enumerable:!(j=$y(f,$))||j.enumerable}));return b.set(f,Q),Q};var Yy=(f,Q)=>{for(var j in Q)P(f,j,{get:Q[j],enumerable:!0,configurable:!0,set:($)=>Q[j]=()=>$})};var R=(f,Q)=>()=>(f&&(Q=f(f=0)),Q);var C;var T=R(()=>{C=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});async function i(f){let Q=await import("tronweb"),j=Q.TronWeb??Q.default?.TronWeb;try{let $=await fetch(`${Xy}/v1/accounts/${f}`);if(!$.ok)throw Error(`TronGrid API error: ${$.status} ${$.statusText}`);let M=await $.json();if(!(M.success&&M.data)||M.data.length===0)throw Error("Invalid response from TronGrid API");let Z;try{Z=j.address.toHex(f).toLowerCase()}catch{Z=f.toLowerCase()}let k=M.data.find((v)=>{return v.address.toLowerCase()===Z});if(!k)return;return{balance:k.balance,trc20:k.trc20||[]}}catch($){throw new h.USwapError("toolbox_tron_trongrid_api_error",{address:f,message:$ instanceof Error?$.message:"Unknown error"})}}var h,Xy="https://api.trongrid.io";var t=R(()=>{h=require("@uswap/helpers")});async function N(){let f=await import("tronweb"),Q=f.TronWeb??f.default?.TronWeb;return(j)=>{return Q.isAddress(j)}}async function c({phrase:f,derivationPath:Q,index:j}){let $=Q||y.derivationPathToString(y.updateDerivationPath(y.NetworkDerivationPath[y.Chain.Tron],{index:j||0})),{HDKey:M}=await import("@scure/bip32"),{mnemonicToSeedSync:Z}=await import("@scure/bip39"),k=Z(f),X=M.fromMasterSeed(k).derive($);if(!X.privateKey)throw new y.USwapError("toolbox_tron_no_signer");return Buffer.from(X.privateKey).toString("hex")}async function Iy({phrase:f,derivationPath:Q,tronWeb:j}){let{HDKey:$}=await import("@scure/bip32"),{mnemonicToSeedSync:M}=await import("@scure/bip39"),Z=M(f),v=$.fromMasterSeed(Z).derive(Q);if(!v.privateKey)throw new y.USwapError("toolbox_tron_no_signer");let X=Buffer.from(v.privateKey).toString("hex");j.setPrivateKey(X);let F=j?.address.fromPrivateKey(X);return{getAddress:()=>Promise.resolve(typeof F==="string"?F:""),signTransaction:async(V)=>{return await j.trx.sign(V,X)}}}var y,x,Gy=268,Ly=13000,My=345,n="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Ky="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",o=async(f={})=>{let Q=await import("tronweb"),j=Q.TronWeb??Q.default?.TronWeb,$=await y.getRPCUrl(y.Chain.Tron),M=void 0,Z=new j({fullHost:$,headers:void 0}),k="index"in f?f.index||0:0,v=y.derivationPathToString("derivationPath"in f&&f.derivationPath?f.derivationPath:y.updateDerivationPath(y.NetworkDerivationPath[y.Chain.Tron],{index:k})),X=await x.match(f).with({phrase:x.P.string},async({phrase:q})=>Iy({derivationPath:v,phrase:q,tronWeb:Z})).with({signer:x.P.any},({signer:q})=>Promise.resolve(q)).otherwise(()=>Promise.resolve(void 0)),F=async()=>{if(!X)throw new y.USwapError("toolbox_tron_no_signer");return await X.getAddress()},V=()=>{return 1e8},D=async()=>{try{let q=await Z.trx.getChainParameters(),z={};for(let _ of q)z[_.key]=_.value;return{bandwidthFee:z.getTransactionFee||1000,createAccountFee:z.getCreateAccountFee||1e5,energyFee:z.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},s=async(q)=>{try{let z=await Z.trx.getAccount(q);return z&&Object.keys(z).length>0}catch{return!1}},a=async(q)=>{try{let z=await Z.trx.getAccountResources(q);return{bandwidth:{free:z.freeNetLimit-z.freeNetUsed,total:z.NetLimit||0,used:z.NetUsed||0},energy:{total:z.EnergyLimit||0,used:z.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},e=async(q,z)=>{try{let _=Z.contract(C,z);if(!_.methods?.balanceOf)return 0n;let[J]=await _.methods.balanceOf(q).call();return J?typeof J==="bigint"?J:BigInt(J):0n}catch(_){let J=_ instanceof Error?_.message:String(_);return console.warn(`balanceOf() failed for ${z}: ${J}`),0n}},r=async(q,z)=>{try{Z.setAddress(z);let _=Z.contract(C,q),[J,u]=await Promise.all([_.symbol().call().catch(()=>"UNKNOWN"),_.decimals().call().catch(()=>"18")]);return{decimals:Number(u??18),symbol:J??"UNKNOWN"}}catch(_){return y.warnOnce({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${q}: ${_ instanceof Error?_.message:_}`}),null}},yy=async(q,z=!0)=>{let _=[y.AssetValue.from({chain:y.Chain.Tron})];try{let J=await i(q);if(J){let u=[];u.push(y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:6,value:J.balance}));for(let Y of J.trc20){let[K,I]=Object.entries(Y)[0]||[];if(!(K&&I))continue;let G=await r(K,q);if(!G)continue;u.push(y.AssetValue.from({asset:`TRON.${G.symbol}-${K}`,fromBaseDecimal:G.decimals,value:BigInt(I||0)}))}return u}return _}catch(J){y.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${J instanceof Error?J.message:J}`});try{let u=[],Y=await Z.trx.getBalance(q);if(Y&&Number(Y)>0)u.push(y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:6,value:Y}));let K=await e(q,n);if(K)u.push(y.AssetValue.from({asset:`TRON.USDT-${n}`,fromBaseDecimal:6,value:K}));if(u.length===0)return _;return u}catch(u){let Y=u instanceof Error?u.message:String(u);return console.error(`Tron balance fetch failed: ${Y}`),_}}},fy=async({recipient:q,assetValue:z,memo:_,expiration:J})=>{if(!X)throw new y.USwapError("toolbox_tron_no_signer");let u=await F();Z.setAddress(u);let Y=await E({assetValue:z,expiration:J,memo:_,recipient:q,sender:u}),K=await X.signTransaction(Y),{txid:I}=await Z.trx.sendRawTransaction(K);if(!I)throw new y.USwapError("toolbox_tron_token_transfer_failed");return I},uy=async({assetValue:q,recipient:z,sender:_})=>{let J=q.isGasAsset;try{let u=_?_:X?await F():void 0;if(!u)return J?y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:0,value:0.1}):y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:0,value:15});let Y=await D(),I=await s(z)?0:Y.createAccountFee,G=await a(u);if(J){let B=Gy,w=G.bandwidth.free+(G.bandwidth.total-G.bandwidth.used),W=0;if(B>w)W=(B-w)*Y.bandwidthFee;let Jy=I+W;return y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:y.BaseDecimal.TRON,value:Jy})}let L=My,O=Ly,p=G.bandwidth.free+(G.bandwidth.total-G.bandwidth.used),H=G.energy.total-G.energy.used,U=0;if(L>p)U=(L-p)*Y.bandwidthFee;let g=0;if(O>H)g=(O-H)*Y.energyFee;let zy=I+U+g;return y.AssetValue.from({chain:y.Chain.Tron,fromBaseDecimal:y.BaseDecimal.TRON,value:zy})}catch(u){throw y.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${u instanceof Error?u.message:u}`}),new y.USwapError("toolbox_tron_fee_estimation_failed",{error:u})}},E=async(q)=>{let{recipient:z,assetValue:_,memo:J,sender:u,expiration:Y}=q,K=_.isGasAsset,I=async({transaction:L,memo:O,expiration:p})=>{let H=O?await Z.transactionBuilder.addUpdateData(L,O,"utf8"):L;return p?await Z.transactionBuilder.extendExpiration(H,p):H};if(K){let L=await Z.transactionBuilder.sendTrx(z,_.getBaseValue("number"),u);return I({expiration:Y,memo:J,transaction:L})}Z.setAddress(u);let G=_.address;if(!G)throw new y.USwapError("toolbox_tron_invalid_token_identifier",{identifier:_.toString()});try{let O=[{type:"address",value:z},{type:"uint256",value:_.getBaseValue("string")}],p={callValue:0,feeLimit:V()},{transaction:H}=await Z.transactionBuilder.triggerSmartContract(G,"transfer(address,uint256)",p,O,u);return I({expiration:Y,memo:J,transaction:H})}catch(L){throw new y.USwapError("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction.",originalError:L instanceof Error?L.message:String(L)})}},_y=async(q)=>{if(!X)throw new y.USwapError("toolbox_tron_no_signer");return await X.signTransaction(q)},qy=async(q)=>{let{txid:z}=await Z.trx.sendRawTransaction(q);return z},S=async({assetAddress:q,spenderAddress:z,from:_})=>{try{let J=Z.contract(C,q);if(!J.methods?.allowance)throw new y.USwapError("toolbox_tron_invalid_token_contract");let[u]=await J.methods.allowance(_,z).call();return u?typeof u==="bigint"?u:BigInt(u):0n}catch(J){throw new y.USwapError("toolbox_tron_allowance_check_failed",{error:J})}};return{approve:async({assetAddress:q,spenderAddress:z,amount:_,from:J})=>{if(!X)throw new y.USwapError("toolbox_tron_no_signer");let u=J||await F(),Y=_!==void 0?BigInt(_).toString():Ky,K="approve(address,uint256)",I=[{type:"address",value:z},{type:"uint256",value:Y}],L={callValue:0,feeLimit:V()};try{let{transaction:O}=await Z.transactionBuilder.triggerSmartContract(q,K,L,I,u),p=await X.signTransaction(O),{txid:H}=await Z.trx.sendRawTransaction(p);if(!H)throw new y.USwapError("toolbox_tron_approve_failed");return H}catch(O){throw new y.USwapError("toolbox_tron_approve_failed",{error:O})}},broadcastTransaction:qy,createTransaction:E,estimateTransactionFee:uy,getAddress:F,getApprovedAmount:S,getBalance:yy,isApproved:async({assetAddress:q,spenderAddress:z,from:_,amount:J})=>{let u=await S({assetAddress:q,from:_,spenderAddress:z});if(!J)return u>0n;let Y=BigInt(J);return u>=Y},signTransaction:_y,transfer:fy,tronWeb:Z,validateAddress:await N()}};var d=R(()=>{T();t();y=require("@uswap/helpers"),x=require("ts-pattern")});var Oy={};Yy(Oy,{trc20ABI:()=>C,getTronPrivateKeyFromMnemonic:()=>c,getTronAddressValidator:()=>N,createTronToolbox:()=>o});module.exports=jy(Oy);var Hy=R(()=>{T();d()});Hy();
2
-
3
- //# debugId=8B1B2BC1DA3EDC0964756E2164756E21
4
- //# sourceMappingURL=index.cjs.map
@@ -1,4 +0,0 @@
1
- var Yy=Object.create;var{getPrototypeOf:Xy,defineProperty:N,getOwnPropertyNames:Gy}=Object;var Ly=Object.prototype.hasOwnProperty;var P=(u,Q,Z)=>{Z=u!=null?Yy(Xy(u)):{};let j=Q||!u||!u.__esModule?N(Z,"default",{value:u,enumerable:!0}):Z;for(let M of Gy(u))if(!Ly.call(j,M))N(j,M,{get:()=>u[M],enumerable:!0});return j};var My=(u,Q)=>{for(var Z in Q)N(u,Z,{get:Q[Z],enumerable:!0,configurable:!0,set:(j)=>Q[Z]=()=>j})};var T=(u,Q)=>()=>(u&&(Q=u(u=0)),Q);var x=((u)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(u,{get:(Q,Z)=>(typeof require<"u"?require:Q)[Z]}):u)(function(u){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+u+'" is not supported')});var V;var D=T(()=>{V=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"remaining",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}]});import{USwapError as Ky}from"@uswap/helpers";async function h(u){let Q=await import("tronweb"),Z=Q.TronWeb??Q.default?.TronWeb;try{let j=await fetch(`${Iy}/v1/accounts/${u}`);if(!j.ok)throw Error(`TronGrid API error: ${j.status} ${j.statusText}`);let M=await j.json();if(!(M.success&&M.data)||M.data.length===0)throw Error("Invalid response from TronGrid API");let J;try{J=Z.address.toHex(u).toLowerCase()}catch{J=u.toLowerCase()}let F=M.data.find((m)=>{return m.address.toLowerCase()===J});if(!F)return;return{balance:F.balance,trc20:F.trc20||[]}}catch(j){throw new Ky("toolbox_tron_trongrid_api_error",{address:u,message:j instanceof Error?j.message:"Unknown error"})}}var Iy="https://api.trongrid.io";var i=()=>{};import{AssetValue as v,BaseDecimal as t,Chain as p,derivationPathToString as o,getRPCUrl as Oy,NetworkDerivationPath as d,USwapError as L,updateDerivationPath as s,warnOnce as E}from"@uswap/helpers";import{match as Hy,P as n}from"ts-pattern";async function S(){let u=await import("tronweb"),Q=u.TronWeb??u.default?.TronWeb;return(Z)=>{return Q.isAddress(Z)}}async function a({phrase:u,derivationPath:Q,index:Z}){let j=Q||o(s(d[p.Tron],{index:Z||0})),{HDKey:M}=await import("@scure/bip32"),{mnemonicToSeedSync:J}=await import("@scure/bip39"),F=J(u),Y=M.fromMasterSeed(F).derive(j);if(!Y.privateKey)throw new L("toolbox_tron_no_signer");return Buffer.from(Y.privateKey).toString("hex")}async function my({phrase:u,derivationPath:Q,tronWeb:Z}){let{HDKey:j}=await import("@scure/bip32"),{mnemonicToSeedSync:M}=await import("@scure/bip39"),J=M(u),m=j.fromMasterSeed(J).derive(Q);if(!m.privateKey)throw new L("toolbox_tron_no_signer");let Y=Buffer.from(m.privateKey).toString("hex");Z.setPrivateKey(Y);let C=Z?.address.fromPrivateKey(Y);return{getAddress:()=>Promise.resolve(typeof C==="string"?C:""),signTransaction:async(U)=>{return await Z.trx.sign(U,Y)}}}var py=268,ky=13000,vy=345,c="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Fy="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",e=async(u={})=>{let Q=await import("tronweb"),Z=Q.TronWeb??Q.default?.TronWeb,j=await Oy(p.Tron),M=void 0,J=new Z({fullHost:j,headers:void 0}),F="index"in u?u.index||0:0,m=o("derivationPath"in u&&u.derivationPath?u.derivationPath:s(d[p.Tron],{index:F})),Y=await Hy(u).with({phrase:n.string},async({phrase:_})=>my({derivationPath:m,phrase:_,tronWeb:J})).with({signer:n.any},({signer:_})=>Promise.resolve(_)).otherwise(()=>Promise.resolve(void 0)),C=async()=>{if(!Y)throw new L("toolbox_tron_no_signer");return await Y.getAddress()},U=()=>{return 1e8},g=async()=>{try{let _=await J.trx.getChainParameters(),q={};for(let f of _)q[f.key]=f.value;return{bandwidthFee:q.getTransactionFee||1000,createAccountFee:q.getCreateAccountFee||1e5,energyFee:q.getEnergyFee||420}}catch{return{bandwidthFee:1000,createAccountFee:1e5,energyFee:420}}},yy=async(_)=>{try{let q=await J.trx.getAccount(_);return q&&Object.keys(q).length>0}catch{return!1}},fy=async(_)=>{try{let q=await J.trx.getAccountResources(_);return{bandwidth:{free:q.freeNetLimit-q.freeNetUsed,total:q.NetLimit||0,used:q.NetUsed||0},energy:{total:q.EnergyLimit||0,used:q.EnergyUsed||0}}}catch{return{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}},uy=async(_,q)=>{try{let f=J.contract(V,q);if(!f.methods?.balanceOf)return 0n;let[z]=await f.methods.balanceOf(_).call();return z?typeof z==="bigint"?z:BigInt(z):0n}catch(f){let z=f instanceof Error?f.message:String(f);return console.warn(`balanceOf() failed for ${q}: ${z}`),0n}},_y=async(_,q)=>{try{J.setAddress(q);let f=J.contract(V,_),[z,y]=await Promise.all([f.symbol().call().catch(()=>"UNKNOWN"),f.decimals().call().catch(()=>"18")]);return{decimals:Number(y??18),symbol:z??"UNKNOWN"}}catch(f){return E({condition:!0,id:"tron_toolbox_get_token_metadata_failed",warning:`Failed to get token metadata for ${_}: ${f instanceof Error?f.message:f}`}),null}},qy=async(_,q=!0)=>{let f=[v.from({chain:p.Tron})];try{let z=await h(_);if(z){let y=[];y.push(v.from({chain:p.Tron,fromBaseDecimal:6,value:z.balance}));for(let $ of z.trc20){let[K,I]=Object.entries($)[0]||[];if(!(K&&I))continue;let X=await _y(K,_);if(!X)continue;y.push(v.from({asset:`TRON.${X.symbol}-${K}`,fromBaseDecimal:X.decimals,value:BigInt(I||0)}))}return y}return f}catch(z){E({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${z instanceof Error?z.message:z}`});try{let y=[],$=await J.trx.getBalance(_);if($&&Number($)>0)y.push(v.from({chain:p.Tron,fromBaseDecimal:6,value:$}));let K=await uy(_,c);if(K)y.push(v.from({asset:`TRON.USDT-${c}`,fromBaseDecimal:6,value:K}));if(y.length===0)return f;return y}catch(y){let $=y instanceof Error?y.message:String(y);return console.error(`Tron balance fetch failed: ${$}`),f}}},zy=async({recipient:_,assetValue:q,memo:f,expiration:z})=>{if(!Y)throw new L("toolbox_tron_no_signer");let y=await C();J.setAddress(y);let $=await w({assetValue:q,expiration:z,memo:f,recipient:_,sender:y}),K=await Y.signTransaction($),{txid:I}=await J.trx.sendRawTransaction(K);if(!I)throw new L("toolbox_tron_token_transfer_failed");return I},Jy=async({assetValue:_,recipient:q,sender:f})=>{let z=_.isGasAsset;try{let y=f?f:Y?await C():void 0;if(!y)return z?v.from({chain:p.Tron,fromBaseDecimal:0,value:0.1}):v.from({chain:p.Tron,fromBaseDecimal:0,value:15});let $=await g(),I=await yy(q)?0:$.createAccountFee,X=await fy(y);if(z){let R=py,l=X.bandwidth.free+(X.bandwidth.total-X.bandwidth.used),A=0;if(R>l)A=(R-l)*$.bandwidthFee;let jy=I+A;return v.from({chain:p.Tron,fromBaseDecimal:t.TRON,value:jy})}let G=vy,O=ky,k=X.bandwidth.free+(X.bandwidth.total-X.bandwidth.used),H=X.energy.total-X.energy.used,B=0;if(G>k)B=(G-k)*$.bandwidthFee;let b=0;if(O>H)b=(O-H)*$.energyFee;let $y=I+B+b;return v.from({chain:p.Tron,fromBaseDecimal:t.TRON,value:$y})}catch(y){throw E({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee, using conservative estimate: ${y instanceof Error?y.message:y}`}),new L("toolbox_tron_fee_estimation_failed",{error:y})}},w=async(_)=>{let{recipient:q,assetValue:f,memo:z,sender:y,expiration:$}=_,K=f.isGasAsset,I=async({transaction:G,memo:O,expiration:k})=>{let H=O?await J.transactionBuilder.addUpdateData(G,O,"utf8"):G;return k?await J.transactionBuilder.extendExpiration(H,k):H};if(K){let G=await J.transactionBuilder.sendTrx(q,f.getBaseValue("number"),y);return I({expiration:$,memo:z,transaction:G})}J.setAddress(y);let X=f.address;if(!X)throw new L("toolbox_tron_invalid_token_identifier",{identifier:f.toString()});try{let O=[{type:"address",value:q},{type:"uint256",value:f.getBaseValue("string")}],k={callValue:0,feeLimit:U()},{transaction:H}=await J.transactionBuilder.triggerSmartContract(X,"transfer(address,uint256)",k,O,y);return I({expiration:$,memo:z,transaction:H})}catch(G){throw new L("toolbox_tron_transaction_creation_failed",{message:"Failed to create TRC20 transaction.",originalError:G instanceof Error?G.message:String(G)})}},Qy=async(_)=>{if(!Y)throw new L("toolbox_tron_no_signer");return await Y.signTransaction(_)},Zy=async(_)=>{let{txid:q}=await J.trx.sendRawTransaction(_);return q},W=async({assetAddress:_,spenderAddress:q,from:f})=>{try{let z=J.contract(V,_);if(!z.methods?.allowance)throw new L("toolbox_tron_invalid_token_contract");let[y]=await z.methods.allowance(f,q).call();return y?typeof y==="bigint"?y:BigInt(y):0n}catch(z){throw new L("toolbox_tron_allowance_check_failed",{error:z})}};return{approve:async({assetAddress:_,spenderAddress:q,amount:f,from:z})=>{if(!Y)throw new L("toolbox_tron_no_signer");let y=z||await C(),$=f!==void 0?BigInt(f).toString():Fy,K="approve(address,uint256)",I=[{type:"address",value:q},{type:"uint256",value:$}],G={callValue:0,feeLimit:U()};try{let{transaction:O}=await J.transactionBuilder.triggerSmartContract(_,K,G,I,y),k=await Y.signTransaction(O),{txid:H}=await J.trx.sendRawTransaction(k);if(!H)throw new L("toolbox_tron_approve_failed");return H}catch(O){throw new L("toolbox_tron_approve_failed",{error:O})}},broadcastTransaction:Zy,createTransaction:w,estimateTransactionFee:Jy,getAddress:C,getApprovedAmount:W,getBalance:qy,isApproved:async({assetAddress:_,spenderAddress:q,from:f,amount:z})=>{let y=await W({assetAddress:_,from:f,spenderAddress:q});if(!z)return y>0n;let $=BigInt(z);return y>=$},signTransaction:Qy,transfer:zy,tronWeb:J,validateAddress:await S()}};var r=T(()=>{D();i()});var Cy={};My(Cy,{trc20ABI:()=>V,getTronPrivateKeyFromMnemonic:()=>a,getTronAddressValidator:()=>S,createTronToolbox:()=>e});var Py=T(()=>{D();r()});Py();export{V as trc20ABI,a as getTronPrivateKeyFromMnemonic,S as getTronAddressValidator,e as createTronToolbox};
2
-
3
- //# debugId=27DB8CB71689C93C64756E2164756E21
4
- //# sourceMappingURL=index.js.map
@@ -1,5 +0,0 @@
1
- var IB=Object.create;var{getPrototypeOf:MB,defineProperty:r,getOwnPropertyNames:gX,getOwnPropertyDescriptor:_B}=Object,mX=Object.prototype.hasOwnProperty;var g=(X,B,Z)=>{Z=X!=null?IB(MB(X)):{};let G=B||!X||!X.__esModule?r(Z,"default",{value:X,enumerable:!0}):Z;for(let $ of gX(X))if(!mX.call(G,$))r(G,$,{get:()=>X[$],enumerable:!0});return G},xX=new WeakMap,HB=(X)=>{var B=xX.get(X),Z;if(B)return B;if(B=r({},"__esModule",{value:!0}),X&&typeof X==="object"||typeof X==="function")gX(X).map((G)=>!mX.call(B,G)&&r(B,G,{get:()=>X[G],enumerable:!(Z=_B(X,G))||Z.enumerable}));return xX.set(X,B),B};var vB=(X,B)=>{for(var Z in B)r(X,Z,{get:B[Z],enumerable:!0,configurable:!0,set:(G)=>B[Z]=()=>G})};var y=(X,B)=>()=>(X&&(B=X(X=0)),B);function hX(){function X(){let B=Date.now(),Z=CX||B;return CX=Z,B>CX?B:Z+1}return NB+X().toString(36)}function cX(X){return async function(Z,G=!0){let $=await lX.USwapApi.getChainBalance({address:Z,chain:X,scamFilter:G}),{baseDecimal:Q}=d.getChainConfig(X),J=$.map(({identifier:q,value:W,decimal:Y})=>{return new d.AssetValue({decimal:Y||Q,identifier:q,value:W})});if(!J.some((q)=>q.isGasAsset))return[d.AssetValue.from({chain:X}),...J];return J}}var d,lX,NB,CX=0;var IX=y(()=>{d=require("@uswap/helpers"),lX=require("@uswap/helpers/api"),NB=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function yB({chain:X,txHash:B}){let Z=`${GX(X)}/push/transaction`,G=JSON.stringify({data:B});try{let $=await z.RequestClient.post(Z,{body:G,headers:{"Content-Type":"application/json"}});if($.context.code!==200)throw new z.USwapError("toolbox_utxo_broadcast_failed",{error:$.context.error||"Transaction broadcast failed"});return $.data?.transaction_hash||B}catch($){let Q=await z.getRPCUrl(X);if(Q){let J=JSON.stringify({id:hX(),jsonrpc:"2.0",method:"sendrawtransaction",params:[B]}),j=await z.RequestClient.post(Q,{body:J,headers:{"Content-Type":"application/json"}});if(j.error)throw new z.USwapError("toolbox_utxo_broadcast_failed",{error:j.error?.message});if(j.result.includes('"code":-26'))throw new z.USwapError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return j.result}throw $}}function GX(X){return`https://api.blockchair.com/${OB(X)}`}function pX(X){switch(X){case z.Chain.Bitcoin:return 5;case z.Chain.Dogecoin:return 1e4;case z.Chain.Litecoin:return 1;case z.Chain.Zcash:return 1;default:return 2}}function OB(X){switch(X){case z.Chain.BitcoinCash:return"bitcoin-cash";case z.Chain.Litecoin:return"litecoin";case z.Chain.Dash:return"dash";case z.Chain.Dogecoin:return"dogecoin";case z.Chain.Zcash:return"zcash";case z.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function UB(X){try{let{feePerKb:B}=await z.RequestClient.get(`https://app.bitgo.com/api/v2/${X.toLowerCase()}/tx/fee`),Z=B/1000;return Math.max(Z,pX(X))}catch{return pX(X)}}async function MX(X,B){let Z=await z.RequestClient.get(`${X}${B?`${X.includes("?")?"&":"?"}key=${B}`:""}`);if(!Z||Z.context.code!==200)throw new z.USwapError("toolbox_utxo_api_error",{error:`Failed to query ${X}`});return Z.data}async function rX({address:X,chain:B,apiKey:Z}){if(!X)throw new z.USwapError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await MX(`${GX(B)}/dashboards/address/${X}?transaction_details=true`,Z))[X]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function KB({address:X,chain:B,apiKey:Z}){return(await rX({address:X,apiKey:Z,chain:B}))?.address.balance||0}async function dX({chain:X,apiKey:B,txHash:Z}){if(!Z)throw new z.USwapError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await MX(`${GX(X)}/raw/transaction/${Z}`,B))?.[Z]?.raw_transaction||""}catch(G){let $=G instanceof Error?G.message:String(G);return console.error(`Failed to fetch raw transaction: ${$}`),""}}async function kB({chain:X,address:B,apiKey:Z,offset:G=0,limit:$=30}){return(await MX(`${GX(X)}/outputs?q=recipient(${B}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${$}&offset=${G}`,Z)).map(({is_spent:q,script_hex:W,block_id:Y,transaction_hash:T,index:C,value:D,spending_signature_hex:I})=>({hash:T,index:C,is_confirmed:Y!==-1,is_spent:q,script_hex:W,txHex:I,value:D}))}function AB(X){return X.reduce((B,Z)=>B+Z.value,0)}function oX(X,B){let Z=[...X].sort((G,$)=>$.value-G.value);if(B){let G=[],$=0;for(let Q of Z)if(G.push(Q),$+=Q.value,$>=B)break;return G}return Z}async function iX({chain:X,address:B,apiKey:Z,targetValue:G,accumulativeValue:$=0,offset:Q=0,limit:J=30}){if(!B)throw new z.USwapError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let j=await kB({address:B,apiKey:Z,chain:X,limit:J,offset:Q,targetValue:G}),W=j.length<J,Y=j.filter(({is_spent:H})=>!H),T=AB(Y),C=$+T,D=G&&C>=G;if(W||D)return oX(Y,G);let I=await iX({accumulativeValue:C,address:B,apiKey:Z,chain:X,limit:J,offset:Q+J,targetValue:G}),v=[...Y,...I];return oX(v,G)}catch(j){let q=j instanceof Error?j.message:String(j);return console.error(`Failed to fetch unspent UTXOs: ${q}`),[]}}async function FB({address:X,chain:B,apiKey:Z,fetchTxHex:G=!0,targetValue:$}){let Q=await iX({address:X,apiKey:Z,chain:B,targetValue:$}),J=[];for(let{hash:j,index:q,script_hex:W,value:Y}of Q){let T;if(G)T=await dX({apiKey:Z,chain:B,txHash:j});J.push({address:X,hash:j,index:q,txHex:T,value:Y,witnessUtxo:{script:Buffer.from(W,"hex"),value:Y}})}return J}function N(X){let B=z.USwapConfig.get("apiKeys").blockchair||"";return z.warnOnce({condition:!B,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(Z)=>yB({chain:X,txHash:Z}),getAddressData:(Z)=>rX({address:Z,apiKey:B,chain:X}),getBalance:(Z)=>KB({address:Z,apiKey:B,chain:X}),getRawTx:(Z)=>dX({apiKey:B,chain:X,txHash:Z}),getSuggestedTxFee:()=>UB(X),getUtxos:(Z)=>FB({...Z,apiKey:B,chain:X})}}function EB(X){return X}function K(){return function(B){switch(B){case z.Chain.Bitcoin:return uX.networks.bitcoin;case z.Chain.BitcoinCash:return m.default.bitcoincash.main.toBitcoinJS();case z.Chain.Dash:return m.default.dash.main.toBitcoinJS();case z.Chain.Litecoin:return m.default.litecoin.main.toBitcoinJS();case z.Chain.Dogecoin:{let Z={private:70615956,public:70617039},G=m.default.dogecoin.test;return G.versions.bip32=Z,m.default.dogecoin.main.toBitcoinJS()}case z.Chain.Zcash:return nX.networks.zcash;default:throw new z.USwapError("toolbox_utxo_not_supported",{chain:B})}}}var nX,z,uX,m;var sX=y(()=>{IX();nX=require("@bitgo/utxo-lib"),z=require("@uswap/helpers"),uX=require("bitcoinjs-lib"),m=g(require("coininfo"))});function yX(X){try{return JX(X),!0}catch{return!1}}function OX(X){return JX(X)?.network}function l(X){let B=JX(X);if(B?.format==="legacy")return X;return PB(B)}function i(X){let B=JX(X);return VB(B)}function JX(X){try{let B=fB(X);if(B)return B}catch{}try{let B=RB(X);if(B)return B}catch{}throw new _X.USwapError("toolbox_utxo_invalid_address",{address:X})}function fB(X){try{let B=HX.default.decode(X);if(B.length!==21)throw new _X.USwapError("toolbox_utxo_invalid_address",{address:X});let Z=B[0],G=Array.prototype.slice.call(B,1);switch(Z){case S.legacy.mainnet.p2pkh:return{format:"legacy",hash:G,network:"mainnet",type:"p2pkh"};case S.legacy.mainnet.p2sh:return{format:"legacy",hash:G,network:"mainnet",type:"p2sh"};case S.legacy.testnet.p2pkh:return{format:"legacy",hash:G,network:"testnet",type:"p2pkh"};case S.legacy.testnet.p2sh:return{format:"legacy",hash:G,network:"testnet",type:"p2sh"};case S.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:G,network:"mainnet",type:"p2pkh"};case S.bitpay.mainnet.p2sh:return{format:"bitpay",hash:G,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function RB(X){if(X.indexOf(":")!==-1)try{return aX(X)}catch{}else{let B=["bitcoincash","bchtest","bchreg"];for(let Z of B)try{return aX(`${Z}:${X}`)}catch{}}return}function aX(X){try{let{hash:B,prefix:Z,type:G}=vX.default.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call(B,0),network:Z==="bitcoincash"?"mainnet":"testnet",type:G==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function PB(X){let B=S.legacy[X.network][X.type],Z=Buffer.alloc(1+X.hash.length);return Z[0]=B,Z.set(X.hash,1),HX.default.encode(Z)}function VB(X){let B=X.network==="mainnet"?"bitcoincash":"bchtest",Z=X.type==="p2pkh"?"P2PKH":"P2SH",G=new Uint8Array(X.hash);return vX.default.encode(B,Z,G)}var _X,HX,vX,NX,S;var tX=y(()=>{_X=require("@uswap/helpers"),HX=g(require("bs58check")),vX=g(require("cashaddrjs"));((Z)=>{Z.Mainnet="mainnet";Z.Testnet="testnet"})(NX||={});S={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function k(X){let B=Buffer.from(X,"utf8");return jX.script.compile([jX.opcodes.OP_RETURN,B])}var eX,jX,SB=1000,qX=10,XB=10,wB=41,bB=107,WX,QX,$X,s=(X)=>{if(X.startsWith("bc1")||X.startsWith("tb1")||X.startsWith("ltc1")||X.startsWith("tltc1"))return"P2WPKH";if(X.startsWith("1")||X.startsWith("m")||X.startsWith("n")||X.startsWith("bitcoincash:q")||X.startsWith("bitcoincash:p")||X.startsWith("q")||X.startsWith("p")||X.startsWith("L")||X.startsWith("M")||X.startsWith("3")||X.startsWith("D")||X.startsWith("A")||X.startsWith("9")||X.startsWith("X")||X.startsWith("7")||X.startsWith("y")||X.startsWith("t1")||X.startsWith("t3")||X.startsWith("tm"))return"P2PKH";throw new eX.USwapError("toolbox_utxo_invalid_address",{address:X})},h=({inputs:X,outputs:B,feeRate:Z})=>{let G=X[0]&&"address"in X[0]&&X[0].address?s(X[0].address):"P2PKH",$=X.filter((J)=>J.value>=QX["type"in J?J.type:"P2PKH"]*Math.ceil(Z)).reduce((J,j)=>J+R(j),0),Q=B?.reduce((J,j)=>J+a(j),0)||$X[G];return qX+$+Q},R=(X)=>{if("type"in X)return QX[X.type];if("address"in X&&X.address)return QX[s(X.address)];return wB+bB},a=(X,B)=>{if(X?.script)return XB+X.script.length+(X.script.length>=74?2:1);if(B)return $X[B];return $X.P2PKH};var UX=y(()=>{eX=require("@uswap/helpers"),jX=require("bitcoinjs-lib");((Z)=>{Z.P2PKH="P2PKH";Z.P2WPKH="P2WPKH"})(WX||={});QX={["P2PKH"]:148,["P2WPKH"]:68},$X={["P2PKH"]:34,["P2WPKH"]:31}});function LX(X){switch(X){case A.Chain.Bitcoin:case A.Chain.BitcoinCash:return 550;case A.Chain.Dash:case A.Chain.Litecoin:return 5500;case A.Chain.Dogecoin:return 1e5;case A.Chain.Zcash:return 546;default:throw new A.USwapError("toolbox_utxo_not_supported",{chain:X})}}function F({inputs:X,outputs:B,feeRate:Z=1,chain:G=A.Chain.Bitcoin,changeAddress:$=""}){let Q=Math.ceil(Z),J=X[0]&&"address"in X[0]&&X[0].address?s(X[0].address):"P2PKH",j=X.filter((D)=>R(D)*Q<=D.value),q=qX+B.reduce((D,I)=>D+a(I,J),0),W=B.reduce((D,I)=>D+I.value,0),Y=q*Q,T=0,C=[];for(let D of j){let I=R(D),v=Q*I;Y+=v,T+=D.value,C.push(D);let H=Y+W;if(T<H)continue;let u=T-H,V=Q*a({address:"",value:0},J);if(u>V){let wX=V+Y,bX=T-(W+wX);if(bX>Math.max(R({})*Q,LX(G)))return{fee:wX,inputs:C,outputs:B.concat({address:$,value:bX})}}return{fee:Y,inputs:C,outputs:B}}return{fee:Q*h({feeRate:Q,inputs:X,outputs:B})}}var A;var BB=y(()=>{UX();A=require("@uswap/helpers")});var c=y(()=>{sX();tX();BB();UX()});function w(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function P(X){let B=w(X);return yX(B)&&OX(B)==="mainnet"}function p(X){try{if(X.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let B=YX.networks.zcash;try{return YX.address.toOutputScript(X,B),!0}catch{let Z=ZB.default.decode(X);if(Z.length<21)return!1;let G=Z[0];return G===B.pubKeyHash||G===B.scriptHash}}catch{return!1}}var YX,ZB;var t=y(()=>{c();YX=require("@bitgo/utxo-lib"),ZB=g(require("bs58check"))});function QB({inputs:X,outputs:B,chain:Z,psbt:G,sender:$,compiledMemo:Q}){for(let J of X){let j=!!J.witnessUtxo&&!e.includes(Z)&&{witnessUtxo:J.witnessUtxo},q=e.includes(Z)&&{nonWitnessUtxo:J.txHex?Buffer.from(J.txHex,"hex"):void 0};G.addInput({hash:J.hash,index:J.index,...j,...q})}for(let J of B){let j="address"in J&&J.address?J.address:$,q=J.script;if(q&&!Q)continue;let W=q?{script:Q,value:0}:{address:j,value:J.value};E.initEccLib(TX.default),G.addOutput(W)}return{inputs:X,psbt:G}}async function $B({assetValue:X,recipient:B,memo:Z,feeRate:G,sender:$,fetchTxHex:Q=!1}){let J=X.chain,j=Z?await k(Z):null,q=await WB({assetValue:X,fetchTxHex:Q,memo:Z,recipient:B,sender:$}),{inputs:W,outputs:Y}=F({...q,chain:J,feeRate:G});if(!(W&&Y))throw new L.USwapError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:$});let T=await K(),C=new E.Psbt({network:T(J)});if(J===L.Chain.Dogecoin)C.setMaximumFeeRate(650000000);let{psbt:D,inputs:I}=await QB({chain:J,compiledMemo:j,inputs:W,outputs:Y,psbt:C,sender:$});return{inputs:I,psbt:D,utxos:q.inputs}}async function jB(){let X=await K();return function({address:Z,chain:G}){if(G===L.Chain.BitcoinCash)return P(Z);if(G===L.Chain.Zcash)return p(Z);try{return E.initEccLib(TX.default),E.address.toOutputScript(Z,X(G)),!0}catch{return!1}}}async function xB({chain:X,phrase:B,derivationPath:Z}){let G=(await XX(X))({derivationPath:Z,phrase:B});async function $(J){return await J.signAllInputs(G),J}function Q(){return kX(X)(G)}return{getAddress:Q,signTransaction:$}}async function b({chain:X,...B}){let Z="phrase"in B?B.phrase:void 0,G="index"in B?B.index||0:0,$=L.derivationPathToString("derivationPath"in B&&B.derivationPath?B.derivationPath:L.updateDerivationPath(L.NetworkDerivationPath[X],{index:G})),Q=Z?await xB({chain:X,derivationPath:$,phrase:Z}):("signer"in B)?B.signer:void 0;function J(){return Promise.resolve(Q?.getAddress())}let j=await jB(),q=await XX(X);return{accumulative:F,broadcastTx:(W)=>N(X).broadcastTx(W),calculateTxSize:h,createKeysForPath:q,createTransaction:$B,estimateMaxSendableAmount:gB(X),estimateTransactionFee:mB(X),getAddress:J,getAddressFromKeys:kX(X),getBalance:cX(X),getFeeRates:()=>BX(X),getInputsOutputsFee:qB,getPrivateKeyFromMnemonic:(W)=>{return q(W).toWIF()},transfer:lB(Q),validateAddress:(W)=>j({address:W,chain:X})}}async function qB({assetValue:X,feeOptionKey:B=L.FeeOption.Fast,feeRate:Z,memo:G,sender:$,recipient:Q}){let J=X.chain,j=await WB({assetValue:X,memo:G,recipient:Q,sender:$}),q=Z?Math.floor(Z):(await BX(J))[B];return F({...j,chain:J,feeRate:q})}function gB(X){return async function({from:Z,memo:G,feeRate:$,feeOptionKey:Q=L.FeeOption.Fast,recipients:J=1}){let j=await N(X).getAddressData(Z),q=$?Math.ceil($):(await BX(X))[Q],W=j?.utxo.map((I)=>({...I,hash:"",type:"P2PKH"})).filter((I)=>I.value>Math.max(LX(X),R(I)*q));if(!W?.length)return L.AssetValue.from({chain:X});let Y=L.AssetValue.from({chain:X,value:W.reduce((I,v)=>I+v.value,0)}),T=typeof J==="number"?Array.from({length:J},()=>({address:Z,value:0})):J;if(G){let I=await k(G);T.push({address:Z,script:I,value:0})}let D=h({feeRate:q,inputs:W,outputs:T})*q;return Y.sub(D)}}function mB(X){return async(B)=>{let Z=await qB(B);return L.AssetValue.from({chain:X,value:L.USwapNumber.fromBigInt(BigInt(Z.fee),8).getValue("string")})}}async function XX(X){let B=await K();switch(X){case L.Chain.BitcoinCash:return function({phrase:G,derivationPath:$=`${L.DerivationPath.BCH}/0`,wif:Q}){let J=B(X);if(Q)return DX.ECPair.fromWIF(Q,J);if(!G)throw new L.USwapError("toolbox_utxo_invalid_params",{error:"No phrase provided"});return DX.HDNode.fromSeedBuffer(Buffer.from(KX.mnemonicToSeedSync(G)),J).derivePath($).keyPair};case L.Chain.Bitcoin:case L.Chain.Dogecoin:case L.Chain.Litecoin:case L.Chain.Zcash:case L.Chain.Dash:return function({phrase:G,wif:$,derivationPath:Q}){if(!($||G))throw new L.USwapError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let J=JB.ECPairFactory(TX.default),j=B(X);if($)return J.fromWIF($,j);let q=KX.mnemonicToSeedSync(G),W=GB.HDKey.fromMasterSeed(q,j).derive(Q);if(!W.privateKey)throw new L.USwapError("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return J.fromPrivateKey(Buffer.from(W.privateKey),{network:j})};default:throw new L.USwapError("toolbox_utxo_not_supported",{chain:X})}}function kX(X){let B=K();return function(G){if(!G)throw new L.USwapError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let $=e.includes(X)?E.payments.p2pkh:E.payments.p2wpkh,{address:Q}=$({network:B(X),pubkey:G.publicKey});if(!Q)throw new L.USwapError("toolbox_utxo_invalid_address",{error:"Address not defined"});return Q}}function lB(X){return async function({memo:Z,recipient:G,feeOptionKey:$,feeRate:Q,assetValue:J}){let j=await X?.getAddress(),q=J.chain;if(!(X&&j))throw new L.USwapError("toolbox_utxo_no_signer");if(!G)throw new L.USwapError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let W=Q||(await BX(q))[$||L.FeeOption.Fast],{psbt:Y}=await $B({assetValue:J,feeRate:W,memo:Z,recipient:G,sender:j}),T=await X.signTransaction(Y);return T.finalizeAllInputs(),N(q).broadcastTx(T.extractTransaction().toHex())}}async function BX(X){let B=await N(X).getSuggestedTxFee();return{[L.FeeOption.Average]:B,[L.FeeOption.Fast]:L.applyFeeMultiplier(B,L.FeeOption.Fast),[L.FeeOption.Fastest]:L.applyFeeMultiplier(B,L.FeeOption.Fastest)}}async function WB({assetValue:X,recipient:B,memo:Z,sender:G,fetchTxHex:$=!1}){let Q=X.chain,J=(await BX(Q))[L.FeeOption.Fastest],j=$||e.includes(Q),q=X.getBaseValue("number"),W=Math.ceil(q+J*5000);return{inputs:await N(Q).getUtxos({address:G,fetchTxHex:j,targetValue:W}),outputs:[{address:B,value:q},...Z?[{address:"",script:await k(Z),value:0}]:[]]}}var TX,DX,GB,KX,L,E,JB,e;var ZX=y(()=>{IX();c();t();TX=g(require("@bitcoinerlab/secp256k1")),DX=require("@psf/bitcoincashjs-lib"),GB=require("@scure/bip32"),KX=require("@scure/bip39"),L=require("@uswap/helpers"),E=require("bitcoinjs-lib"),JB=require("ecpair"),e=[L.Chain.Dash,L.Chain.Dogecoin,L.Chain.Zcash,L.Chain.BitcoinCash]});function x(X){return w(i(X))}function hB(X){function B({builder:G,utxos:$}){return $.forEach((Q,J)=>{G.sign(J,X,void 0,65,Q.witnessUtxo?.value)}),G.build()}return{getAddress:()=>{let G=X.getAddress(0);return Promise.resolve(x(G))},signTransaction:B}}async function AX(X){let B="phrase"in X?X.phrase:void 0,Z="index"in X?X.index||0:0,G=_.derivationPathToString("derivationPath"in X&&X.derivationPath?X.derivationPath:_.updateDerivationPath(_.NetworkDerivationPath[O],{index:Z})),$=B?(await XX(O))({derivationPath:G,phrase:B}):void 0,Q=$?hB($):("signer"in X)?X.signer:void 0;function J(){return Promise.resolve(Q?.getAddress())}let{getBalance:j,getFeeRates:q,broadcastTx:W,...Y}=await b({chain:O});function T(C,D=!0){return j(w(i(C)))}return{...Y,broadcastTx:W,buildTx:pB,createTransaction:YB,getAddress:J,getAddressFromKeys:oB,getBalance:T,getFeeRates:q,stripPrefix:w,stripToCashAddress:x,transfer:cB({broadcastTx:W,getFeeRates:q,signer:Q}),validateAddress:P}}async function YB({assetValue:X,recipient:B,memo:Z,feeRate:G,sender:$}){if(!P(B))throw new _.USwapError("toolbox_utxo_invalid_address",{address:B});let Q=Math.ceil(X.getBaseValue("number")+G*7500),J=await N(O).getUtxos({address:x($),fetchTxHex:!0,targetValue:Q}),j=Z?await k(Z):null,q=[];q.push({address:B,value:X.getBaseValue("number")});let{inputs:W,outputs:Y}=F({chain:O,feeRate:G,inputs:J,outputs:q});if(!(W&&Y))throw new _.USwapError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:$});let T=await K(),C=new o.TransactionBuilder(T(O));await Promise.all(W.map(async(D)=>{let I=await N(O).getRawTx(D.hash);C.addInput(o.Transaction.fromBuffer(Buffer.from(I,"hex")),D.index)}));for(let D of Y){let I="address"in D&&D.address?D.address:l($),v=await K(),H=o.address.toOutputScript(l(I),v(O));C.addOutput(H,D.value)}if(j)C.addOutput(j,0);return{builder:C,utxos:W}}function cB({broadcastTx:X,getFeeRates:B,signer:Z}){return async function({recipient:$,assetValue:Q,feeOptionKey:J=_.FeeOption.Fast,...j}){let q=await Z?.getAddress();if(!(Z&&q))throw new _.USwapError("toolbox_utxo_no_signer");if(!$)throw new _.USwapError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let W=j.feeRate||(await B())[J],{builder:Y,utxos:T}=await YB({...j,assetValue:Q,feeRate:W,recipient:$,sender:q}),D=(await Z.signTransaction({builder:Y,utxos:T})).toHex();return X(D)}}async function pB({assetValue:X,recipient:B,memo:Z,feeRate:G,sender:$,setSigHashType:Q}){let J=i(B);if(!P(J))throw new _.USwapError("toolbox_utxo_invalid_address",{address:J});let j=Math.ceil(X.getBaseValue("number")+G*7500),q=await N(O).getUtxos({address:x($),fetchTxHex:!1,targetValue:j}),W=Number(G.toFixed(0)),Y=Z?await k(Z):null,T=[];if(T.push({address:l(B),value:X.getBaseValue("number")}),Y)T.push({script:Y,value:0});let{inputs:C,outputs:D}=F({chain:O,feeRate:W,inputs:q,outputs:T});if(!(C&&D))throw new _.USwapError("toolbox_utxo_insufficient_balance",{assetValue:X,sender:$});let I=await K(),v=new LB.Psbt({network:I(O)});for(let{hash:H,index:u,witnessUtxo:V}of C)v.addInput({hash:H,index:u,sighashType:Q?65:void 0,witnessUtxo:V});for(let H of D){let u="address"in H&&H.address?H.address:l($),V=H.script?Y?{script:Y,value:0}:void 0:{address:u,value:H.value};if(V)v.addOutput(V)}return{inputs:C,psbt:v,utxos:q}}function oB(X){let B=X.getAddress(0);return x(B)}var o,_,LB,O;var zX=y(()=>{c();ZX();t();o=require("@psf/bitcoincashjs-lib"),_=require("@uswap/helpers"),LB=require("bitcoinjs-lib"),O=_.Chain.BitcoinCash});function EX(){return U.networks.zcash}function zB(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
- `,pubKeyHash:28,scriptHash:28,wif:128}}function nB({phrase:X,derivationPath:B}){let Z=RX.mnemonicToSeedSync(X),$=fX.HDKey.fromMasterSeed(Z).derive(B);if(!$.privateKey)throw new M.USwapError("toolbox_utxo_invalid_params");let Q=zB(),J=U.ECPair.fromPrivateKey(Buffer.from($.privateKey),{network:Q}),j=U.crypto.hash160(J.publicKey),{isStagenet:q}=M.USwapConfig.get("envs"),W=q?Buffer.from([29,37]):Buffer.from([28,184]),Y=Buffer.concat([W,j]),T=DB.default.encode(Y);return{getAddress:()=>Promise.resolve(T),signTransaction:(C)=>{let D=C.signAllInputs(J);return Promise.resolve(D)}}}function uB({inputs:X,outputs:B,psbt:Z,sender:G,compiledMemo:$}){for(let Q of X){let J=!!Q.witnessUtxo&&{witnessUtxo:{...Q.witnessUtxo,value:BigInt(Q.value)}},j=!Q.witnessUtxo&&{nonWitnessUtxo:Q.txHex?Buffer.from(Q.txHex,"hex"):void 0};Z.addInput({hash:Q.hash,index:Q.index,...J,...j})}for(let Q of B){let J="address"in Q&&Q.address?Q.address:G,j=Q.script;if(j&&!$)continue;let q=j?{script:$,value:0n}:{script:U.address.toOutputScript(J,EX()),value:BigInt(Q.value)};Z.addOutput(q)}return{inputs:X,psbt:Z}}async function TB(X){let{assetValue:B,recipient:Z,memo:G,feeRate:$,sender:Q,fetchTxHex:J}=X,j=G?k(G):null,q=await N(M.Chain.Zcash).getUtxos({address:Q,fetchTxHex:J!==!1}),W=[{address:Z,value:Number(B.getBaseValue("string"))},...j?[{script:j,value:0}]:[]],{inputs:Y,outputs:T}=F({chain:M.Chain.Zcash,changeAddress:Q,feeRate:$,inputs:q,outputs:W});if(!(Y&&T))throw new M.USwapError("toolbox_utxo_insufficient_balance",{assetValue:B,sender:Q});let C=U.bitgo.createPsbtForNetwork({network:EX()},{version:FX.ZcashTransaction.VERSION4_BRANCH_NU6_1}),{psbt:D,inputs:I}=await uB({compiledMemo:j,inputs:Y,outputs:T,psbt:C,sender:Q});return D.setDefaultsForVersion(EX(),FX.ZcashTransaction.VERSION4_BRANCH_NU6_1),{inputs:I,outputs:T,psbt:D}}async function PX(X){let B=await n.match(X).with({signer:n.P.not(n.P.nullish)},({signer:J})=>Promise.resolve(J)).with({phrase:n.P.string},({phrase:J,derivationPath:j,index:q=0})=>{let W=j||M.NetworkDerivationPath[M.Chain.Zcash]||[44,133,0,0,0],Y=M.updateDerivationPath(W,{index:q}),T=M.derivationPathToString(Y);return nB({derivationPath:T,phrase:J})}).otherwise(()=>Promise.resolve(void 0)),Z=await b({chain:M.Chain.Zcash,signer:B});async function G({recipient:J,assetValue:j,feeOptionKey:q=M.FeeOption.Fast,...W}){let Y=await B?.getAddress();if(!(B&&Y))throw new M.USwapError("toolbox_utxo_no_signer");let T=W.feeRate||(await Z.getFeeRates())[q],{psbt:C}=await TB({...W,assetValue:j,feeRate:T,recipient:J,sender:Y}),D=await B.signTransaction(C);D.validateSignaturesOfAllInputs(),D.finalizeAllInputs();let v=D.extractTransaction().toHex();return Z.broadcastTx(v)}function $({phrase:J,derivationPath:j="m/44'/133'/0'/0/0"}){let q=RX.mnemonicToSeedSync(J),Y=fX.HDKey.fromMasterSeed(q).derive(j);if(!Y.privateKey)throw new M.USwapError("toolbox_utxo_invalid_params");let T=zB();return U.ECPair.fromPrivateKey(Buffer.from(Y.privateKey),{network:T})}function Q({phrase:J,derivationPath:j="m/44'/133'/0'/0/0"}){return $({derivationPath:j,phrase:J}).toWIF()}return{...Z,createKeysForPath:$,createTransaction:TB,getPrivateKeyFromMnemonic:Q,transfer:G,validateAddress:p}}var U,FX,fX,RX,M,DB,n;var VX=y(()=>{c();ZX();t();U=require("@bitgo/utxo-lib"),FX=require("@bitgo/utxo-lib/dist/src/bitgo"),fX=require("@scure/bip32"),RX=require("@scure/bip39"),M=require("@uswap/helpers"),DB=g(require("bs58check")),n=require("ts-pattern")});async function rB(X,B){switch(X){case f.Chain.BitcoinCash:return await AX(B||{});case f.Chain.Zcash:return await PX(B);case f.Chain.Bitcoin:case f.Chain.Dogecoin:case f.Chain.Litecoin:case f.Chain.Dash:return await b({chain:X,...B});default:throw new f.USwapError("toolbox_utxo_not_supported",{chain:X})}}var f;var CB=y(()=>{zX();ZX();VX();zX();t();f=require("@uswap/helpers")});var dB={};vB(dB,{validateZcashAddress:()=>p,toLegacyAddress:()=>l,toCashAddress:()=>i,stripToCashAddress:()=>x,stripPrefix:()=>w,nonSegwitChains:()=>e,isValidAddress:()=>yX,getUtxoToolbox:()=>rB,getUtxoNetwork:()=>K,getUtxoApi:()=>N,getUTXOAddressValidator:()=>jB,getScriptTypeForAddress:()=>s,getOutputSize:()=>a,getInputSize:()=>R,getDustThreshold:()=>LX,getCreateKeysForPath:()=>XX,detectAddressNetwork:()=>OX,createZcashToolbox:()=>PX,createUTXOToolbox:()=>b,createCustomUtxoApi:()=>EB,createBCHToolbox:()=>AX,compileMemo:()=>k,calculateTxSize:()=>h,bchValidateAddress:()=>P,addressFromKeysGetter:()=>kX,addInputsAndOutputs:()=>QB,accumulative:()=>F,UtxoNetwork:()=>NX,UTXOScriptType:()=>WX,TX_OVERHEAD:()=>qX,OutputSizes:()=>$X,OP_RETURN_OVERHEAD:()=>XB,MIN_TX_FEE:()=>SB,InputSizes:()=>QX});module.exports=HB(dB);var iB=y(()=>{c();CB();zX();ZX();VX()});iB();
3
-
4
- //# debugId=16D842E8DB0B790864756E2164756E21
5
- //# sourceMappingURL=index.cjs.map
@@ -1,5 +0,0 @@
1
- var jB=Object.create;var{getPrototypeOf:qB,defineProperty:WX,getOwnPropertyNames:WB}=Object;var LB=Object.prototype.hasOwnProperty;var VZ=(X,B,Z)=>{Z=X!=null?jB(qB(X)):{};let G=B||!X||!X.__esModule?WX(Z,"default",{value:X,enumerable:!0}):Z;for(let $ of WB(X))if(!LB.call(G,$))WX(G,$,{get:()=>X[$],enumerable:!0});return G};var YB=(X,B)=>{for(var Z in B)WX(X,Z,{get:B[Z],enumerable:!0,configurable:!0,set:(G)=>B[Z]=()=>G})};var v=(X,B)=>()=>(X&&(B=X(X=0)),B);var SZ=((X)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(X,{get:(B,Z)=>(typeof require<"u"?require:B)[Z]}):X)(function(X){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+X+'" is not supported')});import{AssetValue as FX,getChainConfig as TB}from"@uswap/helpers";import{USwapApi as DB}from"@uswap/helpers/api";function EX(){function X(){let B=Date.now(),Z=LX||B;return LX=Z,B>LX?B:Z+1}return zB+X().toString(36)}function fX(X){return async function(Z,G=!0){let $=await DB.getChainBalance({address:Z,chain:X,scamFilter:G}),{baseDecimal:Q}=TB(X),J=$.map(({identifier:q,value:W,decimal:L})=>{return new FX({decimal:L||Q,identifier:q,value:W})});if(!J.some((q)=>q.isGasAsset))return[FX.from({chain:X}),...J];return J}}var zB,LX=0;var YX=v(()=>{zB=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{networks as CB}from"@bitgo/utxo-lib";import{Chain as C,getRPCUrl as IB,RequestClient as t,USwapConfig as MB,USwapError as A,warnOnce as _B}from"@uswap/helpers";import{networks as HB}from"bitcoinjs-lib";import p from"coininfo";async function vB({chain:X,txHash:B}){let Z=`${e(X)}/push/transaction`,G=JSON.stringify({data:B});try{let $=await t.post(Z,{body:G,headers:{"Content-Type":"application/json"}});if($.context.code!==200)throw new A("toolbox_utxo_broadcast_failed",{error:$.context.error||"Transaction broadcast failed"});return $.data?.transaction_hash||B}catch($){let Q=await IB(X);if(Q){let J=JSON.stringify({id:EX(),jsonrpc:"2.0",method:"sendrawtransaction",params:[B]}),j=await t.post(Q,{body:J,headers:{"Content-Type":"application/json"}});if(j.error)throw new A("toolbox_utxo_broadcast_failed",{error:j.error?.message});if(j.result.includes('"code":-26'))throw new A("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return j.result}throw $}}function e(X){return`https://api.blockchair.com/${NB(X)}`}function RX(X){switch(X){case C.Bitcoin:return 5;case C.Dogecoin:return 1e4;case C.Litecoin:return 1;case C.Zcash:return 1;default:return 2}}function NB(X){switch(X){case C.BitcoinCash:return"bitcoin-cash";case C.Litecoin:return"litecoin";case C.Dash:return"dash";case C.Dogecoin:return"dogecoin";case C.Zcash:return"zcash";case C.Polkadot:return"polkadot";default:return"bitcoin"}}async function yB(X){try{let{feePerKb:B}=await t.get(`https://app.bitgo.com/api/v2/${X.toLowerCase()}/tx/fee`),Z=B/1000;return Math.max(Z,RX(X))}catch{return RX(X)}}async function TX(X,B){let Z=await t.get(`${X}${B?`${X.includes("?")?"&":"?"}key=${B}`:""}`);if(!Z||Z.context.code!==200)throw new A("toolbox_utxo_api_error",{error:`Failed to query ${X}`});return Z.data}async function VX({address:X,chain:B,apiKey:Z}){if(!X)throw new A("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await TX(`${e(B)}/dashboards/address/${X}?transaction_details=true`,Z))[X]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function OB({address:X,chain:B,apiKey:Z}){return(await VX({address:X,apiKey:Z,chain:B}))?.address.balance||0}async function SX({chain:X,apiKey:B,txHash:Z}){if(!Z)throw new A("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await TX(`${e(X)}/raw/transaction/${Z}`,B))?.[Z]?.raw_transaction||""}catch(G){let $=G instanceof Error?G.message:String(G);return console.error(`Failed to fetch raw transaction: ${$}`),""}}async function UB({chain:X,address:B,apiKey:Z,offset:G=0,limit:$=30}){return(await TX(`${e(X)}/outputs?q=recipient(${B}),is_spent(false),value(..2000000000000000)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${$}&offset=${G}`,Z)).map(({is_spent:q,script_hex:W,block_id:L,transaction_hash:Y,index:D,value:T,spending_signature_hex:z})=>({hash:Y,index:D,is_confirmed:L!==-1,is_spent:q,script_hex:W,txHex:z,value:T}))}function KB(X){return X.reduce((B,Z)=>B+Z.value,0)}function PX(X,B){let Z=[...X].sort((G,$)=>$.value-G.value);if(B){let G=[],$=0;for(let Q of Z)if(G.push(Q),$+=Q.value,$>=B)break;return G}return Z}async function wX({chain:X,address:B,apiKey:Z,targetValue:G,accumulativeValue:$=0,offset:Q=0,limit:J=30}){if(!B)throw new A("toolbox_utxo_invalid_params",{error:"Address is required"});try{let j=await UB({address:B,apiKey:Z,chain:X,limit:J,offset:Q,targetValue:G}),W=j.length<J,L=j.filter(({is_spent:I})=>!I),Y=KB(L),D=$+Y,T=G&&D>=G;if(W||T)return PX(L,G);let z=await wX({accumulativeValue:D,address:B,apiKey:Z,chain:X,limit:J,offset:Q+J,targetValue:G}),M=[...L,...z];return PX(M,G)}catch(j){let q=j instanceof Error?j.message:String(j);return console.error(`Failed to fetch unspent UTXOs: ${q}`),[]}}async function kB({address:X,chain:B,apiKey:Z,fetchTxHex:G=!0,targetValue:$}){let Q=await wX({address:X,apiKey:Z,chain:B,targetValue:$}),J=[];for(let{hash:j,index:q,script_hex:W,value:L}of Q){let Y;if(G)Y=await SX({apiKey:Z,chain:B,txHash:j});J.push({address:X,hash:j,index:q,txHex:Y,value:L,witnessUtxo:{script:Buffer.from(W,"hex"),value:L}})}return J}function _(X){let B=MB.get("apiKeys").blockchair||"";return _B({condition:!B,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(Z)=>vB({chain:X,txHash:Z}),getAddressData:(Z)=>VX({address:Z,apiKey:B,chain:X}),getBalance:(Z)=>OB({address:Z,apiKey:B,chain:X}),getRawTx:(Z)=>SX({apiKey:B,chain:X,txHash:Z}),getSuggestedTxFee:()=>yB(X),getUtxos:(Z)=>kB({...Z,apiKey:B,chain:X})}}function AB(X){return X}function y(){return function(B){switch(B){case C.Bitcoin:return HB.bitcoin;case C.BitcoinCash:return p.bitcoincash.main.toBitcoinJS();case C.Dash:return p.dash.main.toBitcoinJS();case C.Litecoin:return p.litecoin.main.toBitcoinJS();case C.Dogecoin:{let Z={private:70615956,public:70617039},G=p.dogecoin.test;return G.versions.bip32=Z,p.dogecoin.main.toBitcoinJS()}case C.Zcash:return CB.zcash;default:throw new A("toolbox_utxo_not_supported",{chain:B})}}}var bX=v(()=>{YX()});import{USwapError as gX}from"@uswap/helpers";import mX from"bs58check";import lX from"cashaddrjs";function zX(X){try{return XX(X),!0}catch{return!1}}function CX(X){return XX(X)?.network}function b(X){let B=XX(X);if(B?.format==="legacy")return X;return fB(B)}function o(X){let B=XX(X);return RB(B)}function XX(X){try{let B=FB(X);if(B)return B}catch{}try{let B=EB(X);if(B)return B}catch{}throw new gX("toolbox_utxo_invalid_address",{address:X})}function FB(X){try{let B=mX.decode(X);if(B.length!==21)throw new gX("toolbox_utxo_invalid_address",{address:X});let Z=B[0],G=Array.prototype.slice.call(B,1);switch(Z){case R.legacy.mainnet.p2pkh:return{format:"legacy",hash:G,network:"mainnet",type:"p2pkh"};case R.legacy.mainnet.p2sh:return{format:"legacy",hash:G,network:"mainnet",type:"p2sh"};case R.legacy.testnet.p2pkh:return{format:"legacy",hash:G,network:"testnet",type:"p2pkh"};case R.legacy.testnet.p2sh:return{format:"legacy",hash:G,network:"testnet",type:"p2sh"};case R.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:G,network:"mainnet",type:"p2pkh"};case R.bitpay.mainnet.p2sh:return{format:"bitpay",hash:G,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function EB(X){if(X.indexOf(":")!==-1)try{return xX(X)}catch{}else{let B=["bitcoincash","bchtest","bchreg"];for(let Z of B)try{return xX(`${Z}:${X}`)}catch{}}return}function xX(X){try{let{hash:B,prefix:Z,type:G}=lX.decode(X);return{format:"cashaddr",hash:Array.prototype.slice.call(B,0),network:Z==="bitcoincash"?"mainnet":"testnet",type:G==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function fB(X){let B=R.legacy[X.network][X.type],Z=Buffer.alloc(1+X.hash.length);return Z[0]=B,Z.set(X.hash,1),mX.encode(Z)}function RB(X){let B=X.network==="mainnet"?"bitcoincash":"bchtest",Z=X.type==="p2pkh"?"P2PKH":"P2SH",G=new Uint8Array(X.hash);return lX.encode(B,Z,G)}var DX,R;var hX=v(()=>{((Z)=>{Z.Mainnet="mainnet";Z.Testnet="testnet"})(DX||={});R={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{USwapError as PB}from"@uswap/helpers";import{opcodes as VB,script as SB}from"bitcoinjs-lib";function O(X){let B=Buffer.from(X,"utf8");return SB.compile([VB.OP_RETURN,B])}var wB=1000,GX=10,cX=10,bB=41,xB=107,JX,BX,ZX,n=(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 PB("toolbox_utxo_invalid_address",{address:X})},x=({inputs:X,outputs:B,feeRate:Z})=>{let G=X[0]&&"address"in X[0]&&X[0].address?n(X[0].address):"P2PKH",$=X.filter((J)=>J.value>=BX["type"in J?J.type:"P2PKH"]*Math.ceil(Z)).reduce((J,j)=>J+F(j),0),Q=B?.reduce((J,j)=>J+u(j),0)||ZX[G];return GX+$+Q},F=(X)=>{if("type"in X)return BX[X.type];if("address"in X&&X.address)return BX[n(X.address)];return bB+xB},u=(X,B)=>{if(X?.script)return cX+X.script.length+(X.script.length>=74?2:1);if(B)return ZX[B];return ZX.P2PKH};var IX=v(()=>{((Z)=>{Z.P2PKH="P2PKH";Z.P2WPKH="P2WPKH"})(JX||={});BX={["P2PKH"]:148,["P2WPKH"]:68},ZX={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as P,USwapError as gB}from"@uswap/helpers";function QX(X){switch(X){case P.Bitcoin:case P.BitcoinCash:return 550;case P.Dash:case P.Litecoin:return 5500;case P.Dogecoin:return 1e5;case P.Zcash:return 546;default:throw new gB("toolbox_utxo_not_supported",{chain:X})}}function U({inputs:X,outputs:B,feeRate:Z=1,chain:G=P.Bitcoin,changeAddress:$=""}){let Q=Math.ceil(Z),J=X[0]&&"address"in X[0]&&X[0].address?n(X[0].address):"P2PKH",j=X.filter((T)=>F(T)*Q<=T.value),q=GX+B.reduce((T,z)=>T+u(z,J),0),W=B.reduce((T,z)=>T+z.value,0),L=q*Q,Y=0,D=[];for(let T of j){let z=F(T),M=Q*z;L+=M,Y+=T.value,D.push(T);let I=L+W;if(Y<I)continue;let c=Y-I,f=Q*u({address:"",value:0},J);if(c>f){let kX=f+L,AX=Y-(W+kX);if(AX>Math.max(F({})*Q,QX(G)))return{fee:kX,inputs:D,outputs:B.concat({address:$,value:AX})}}return{fee:L,inputs:D,outputs:B}}return{fee:Q*x({feeRate:Q,inputs:X,outputs:B})}}var pX=v(()=>{IX()});var g=v(()=>{bX();hX();pX();IX()});import{networks as mB,address as lB}from"@bitgo/utxo-lib";import hB from"bs58check";function V(X){return X.replace(/(bchtest:|bitcoincash:)/,"")}function E(X){let B=V(X);return zX(B)&&CX(B)==="mainnet"}function m(X){try{if(X.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let B=mB.zcash;try{return lB.toOutputScript(X,B),!0}catch{let Z=hB.decode(X);if(Z.length<21)return!1;let G=Z[0];return G===B.pubKeyHash||G===B.scriptHash}}catch{return!1}}var r=v(()=>{g()});import _X from"@bitcoinerlab/secp256k1";import{ECPair as cB,HDNode as pB}from"@psf/bitcoincashjs-lib";import{HDKey as oB}from"@scure/bip32";import{mnemonicToSeedSync as oX}from"@scure/bip39";import{AssetValue as MX,applyFeeMultiplier as nX,Chain as H,DerivationPath as nB,derivationPathToString as uB,FeeOption as K,NetworkDerivationPath as rB,USwapError as k,USwapNumber as dB,updateDerivationPath as iB}from"@uswap/helpers";import{address as sB,initEccLib as rX,Psbt as aB,payments as uX}from"bitcoinjs-lib";import{ECPairFactory as tB}from"ecpair";function dX({inputs:X,outputs:B,chain:Z,psbt:G,sender:$,compiledMemo:Q}){for(let J of X){let j=!!J.witnessUtxo&&!d.includes(Z)&&{witnessUtxo:J.witnessUtxo},q=d.includes(Z)&&{nonWitnessUtxo:J.txHex?Buffer.from(J.txHex,"hex"):void 0};G.addInput({hash:J.hash,index:J.index,...j,...q})}for(let J of B){let j="address"in J&&J.address?J.address:$,q=J.script;if(q&&!Q)continue;let W=q?{script:Q,value:0}:{address:j,value:J.value};rX(_X),G.addOutput(W)}return{inputs:X,psbt:G}}async function iX({assetValue:X,recipient:B,memo:Z,feeRate:G,sender:$,fetchTxHex:Q=!1}){let J=X.chain,j=Z?await O(Z):null,q=await tX({assetValue:X,fetchTxHex:Q,memo:Z,recipient:B,sender:$}),{inputs:W,outputs:L}=U({...q,chain:J,feeRate:G});if(!(W&&L))throw new k("toolbox_utxo_insufficient_balance",{assetValue:X,sender:$});let Y=await y(),D=new aB({network:Y(J)});if(J===H.Dogecoin)D.setMaximumFeeRate(650000000);let{psbt:T,inputs:z}=await dX({chain:J,compiledMemo:j,inputs:W,outputs:L,psbt:D,sender:$});return{inputs:z,psbt:T,utxos:q.inputs}}async function sX(){let X=await y();return function({address:Z,chain:G}){if(G===H.BitcoinCash)return E(Z);if(G===H.Zcash)return m(Z);try{return rX(_X),sB.toOutputScript(Z,X(G)),!0}catch{return!1}}}async function eB({chain:X,phrase:B,derivationPath:Z}){let G=(await i(X))({derivationPath:Z,phrase:B});async function $(J){return await J.signAllInputs(G),J}function Q(){return HX(X)(G)}return{getAddress:Q,signTransaction:$}}async function S({chain:X,...B}){let Z="phrase"in B?B.phrase:void 0,G="index"in B?B.index||0:0,$=uB("derivationPath"in B&&B.derivationPath?B.derivationPath:iB(rB[X],{index:G})),Q=Z?await eB({chain:X,derivationPath:$,phrase:Z}):("signer"in B)?B.signer:void 0;function J(){return Promise.resolve(Q?.getAddress())}let j=await sX(),q=await i(X);return{accumulative:U,broadcastTx:(W)=>_(X).broadcastTx(W),calculateTxSize:x,createKeysForPath:q,createTransaction:iX,estimateMaxSendableAmount:XZ(X),estimateTransactionFee:BZ(X),getAddress:J,getAddressFromKeys:HX(X),getBalance:fX(X),getFeeRates:()=>s(X),getInputsOutputsFee:aX,getPrivateKeyFromMnemonic:(W)=>{return q(W).toWIF()},transfer:ZZ(Q),validateAddress:(W)=>j({address:W,chain:X})}}async function aX({assetValue:X,feeOptionKey:B=K.Fast,feeRate:Z,memo:G,sender:$,recipient:Q}){let J=X.chain,j=await tX({assetValue:X,memo:G,recipient:Q,sender:$}),q=Z?Math.floor(Z):(await s(J))[B];return U({...j,chain:J,feeRate:q})}function XZ(X){return async function({from:Z,memo:G,feeRate:$,feeOptionKey:Q=K.Fast,recipients:J=1}){let j=await _(X).getAddressData(Z),q=$?Math.ceil($):(await s(X))[Q],W=j?.utxo.map((z)=>({...z,hash:"",type:"P2PKH"})).filter((z)=>z.value>Math.max(QX(X),F(z)*q));if(!W?.length)return MX.from({chain:X});let L=MX.from({chain:X,value:W.reduce((z,M)=>z+M.value,0)}),Y=typeof J==="number"?Array.from({length:J},()=>({address:Z,value:0})):J;if(G){let z=await O(G);Y.push({address:Z,script:z,value:0})}let T=x({feeRate:q,inputs:W,outputs:Y})*q;return L.sub(T)}}function BZ(X){return async(B)=>{let Z=await aX(B);return MX.from({chain:X,value:dB.fromBigInt(BigInt(Z.fee),8).getValue("string")})}}async function i(X){let B=await y();switch(X){case H.BitcoinCash:return function({phrase:G,derivationPath:$=`${nB.BCH}/0`,wif:Q}){let J=B(X);if(Q)return cB.fromWIF(Q,J);if(!G)throw new k("toolbox_utxo_invalid_params",{error:"No phrase provided"});return pB.fromSeedBuffer(Buffer.from(oX(G)),J).derivePath($).keyPair};case H.Bitcoin:case H.Dogecoin:case H.Litecoin:case H.Zcash:case H.Dash:return function({phrase:G,wif:$,derivationPath:Q}){if(!($||G))throw new k("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let J=tB(_X),j=B(X);if($)return J.fromWIF($,j);let q=oX(G),W=oB.fromMasterSeed(q,j).derive(Q);if(!W.privateKey)throw new k("toolbox_utxo_invalid_params",{error:"Could not get private key from phrase"});return J.fromPrivateKey(Buffer.from(W.privateKey),{network:j})};default:throw new k("toolbox_utxo_not_supported",{chain:X})}}function HX(X){let B=y();return function(G){if(!G)throw new k("toolbox_utxo_invalid_params",{error:"Keys must be provided"});let $=d.includes(X)?uX.p2pkh:uX.p2wpkh,{address:Q}=$({network:B(X),pubkey:G.publicKey});if(!Q)throw new k("toolbox_utxo_invalid_address",{error:"Address not defined"});return Q}}function ZZ(X){return async function({memo:Z,recipient:G,feeOptionKey:$,feeRate:Q,assetValue:J}){let j=await X?.getAddress(),q=J.chain;if(!(X&&j))throw new k("toolbox_utxo_no_signer");if(!G)throw new k("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let W=Q||(await s(q))[$||K.Fast],{psbt:L}=await iX({assetValue:J,feeRate:W,memo:Z,recipient:G,sender:j}),Y=await X.signTransaction(L);return Y.finalizeAllInputs(),_(q).broadcastTx(Y.extractTransaction().toHex())}}async function s(X){let B=await _(X).getSuggestedTxFee();return{[K.Average]:B,[K.Fast]:nX(B,K.Fast),[K.Fastest]:nX(B,K.Fastest)}}async function tX({assetValue:X,recipient:B,memo:Z,sender:G,fetchTxHex:$=!1}){let Q=X.chain,J=(await s(Q))[K.Fastest],j=$||d.includes(Q),q=X.getBaseValue("number"),W=Math.ceil(q+J*5000);return{inputs:await _(Q).getUtxos({address:G,fetchTxHex:j,targetValue:W}),outputs:[{address:B,value:q},...Z?[{address:"",script:await O(Z),value:0}]:[]]}}var d;var a=v(()=>{YX();g();r();d=[H.Dash,H.Dogecoin,H.Zcash,H.BitcoinCash]});import{address as GZ,Transaction as JZ,TransactionBuilder as QZ}from"@psf/bitcoincashjs-lib";import{Chain as $Z,derivationPathToString as jZ,FeeOption as qZ,NetworkDerivationPath as WZ,USwapError as l,updateDerivationPath as LZ}from"@uswap/helpers";import{Psbt as YZ}from"bitcoinjs-lib";function w(X){return V(o(X))}function TZ(X){function B({builder:G,utxos:$}){return $.forEach((Q,J)=>{G.sign(J,X,void 0,65,Q.witnessUtxo?.value)}),G.build()}return{getAddress:()=>{let G=X.getAddress(0);return Promise.resolve(w(G))},signTransaction:B}}async function vX(X){let B="phrase"in X?X.phrase:void 0,Z="index"in X?X.index||0:0,G=jZ("derivationPath"in X&&X.derivationPath?X.derivationPath:LZ(WZ[N],{index:Z})),$=B?(await i(N))({derivationPath:G,phrase:B}):void 0,Q=$?TZ($):("signer"in X)?X.signer:void 0;function J(){return Promise.resolve(Q?.getAddress())}let{getBalance:j,getFeeRates:q,broadcastTx:W,...L}=await S({chain:N});function Y(D,T=!0){return j(V(o(D)))}return{...L,broadcastTx:W,buildTx:zZ,createTransaction:eX,getAddress:J,getAddressFromKeys:CZ,getBalance:Y,getFeeRates:q,stripPrefix:V,stripToCashAddress:w,transfer:DZ({broadcastTx:W,getFeeRates:q,signer:Q}),validateAddress:E}}async function eX({assetValue:X,recipient:B,memo:Z,feeRate:G,sender:$}){if(!E(B))throw new l("toolbox_utxo_invalid_address",{address:B});let Q=Math.ceil(X.getBaseValue("number")+G*7500),J=await _(N).getUtxos({address:w($),fetchTxHex:!0,targetValue:Q}),j=Z?await O(Z):null,q=[];q.push({address:B,value:X.getBaseValue("number")});let{inputs:W,outputs:L}=U({chain:N,feeRate:G,inputs:J,outputs:q});if(!(W&&L))throw new l("toolbox_utxo_insufficient_balance",{assetValue:X,sender:$});let Y=await y(),D=new QZ(Y(N));await Promise.all(W.map(async(T)=>{let z=await _(N).getRawTx(T.hash);D.addInput(JZ.fromBuffer(Buffer.from(z,"hex")),T.index)}));for(let T of L){let z="address"in T&&T.address?T.address:b($),M=await y(),I=GZ.toOutputScript(b(z),M(N));D.addOutput(I,T.value)}if(j)D.addOutput(j,0);return{builder:D,utxos:W}}function DZ({broadcastTx:X,getFeeRates:B,signer:Z}){return async function({recipient:$,assetValue:Q,feeOptionKey:J=qZ.Fast,...j}){let q=await Z?.getAddress();if(!(Z&&q))throw new l("toolbox_utxo_no_signer");if(!$)throw new l("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let W=j.feeRate||(await B())[J],{builder:L,utxos:Y}=await eX({...j,assetValue:Q,feeRate:W,recipient:$,sender:q}),T=(await Z.signTransaction({builder:L,utxos:Y})).toHex();return X(T)}}async function zZ({assetValue:X,recipient:B,memo:Z,feeRate:G,sender:$,setSigHashType:Q}){let J=o(B);if(!E(J))throw new l("toolbox_utxo_invalid_address",{address:J});let j=Math.ceil(X.getBaseValue("number")+G*7500),q=await _(N).getUtxos({address:w($),fetchTxHex:!1,targetValue:j}),W=Number(G.toFixed(0)),L=Z?await O(Z):null,Y=[];if(Y.push({address:b(B),value:X.getBaseValue("number")}),L)Y.push({script:L,value:0});let{inputs:D,outputs:T}=U({chain:N,feeRate:W,inputs:q,outputs:Y});if(!(D&&T))throw new l("toolbox_utxo_insufficient_balance",{assetValue:X,sender:$});let z=await y(),M=new YZ({network:z(N)});for(let{hash:I,index:c,witnessUtxo:f}of D)M.addInput({hash:I,index:c,sighashType:Q?65:void 0,witnessUtxo:f});for(let I of T){let c="address"in I&&I.address?I.address:b($),f=I.script?L?{script:L,value:0}:void 0:{address:c,value:I.value};if(f)M.addOutput(f)}return{inputs:D,psbt:M,utxos:q}}function CZ(X){let B=X.getAddress(0);return w(B)}var N;var $X=v(()=>{g();a();r();N=$Z.BitcoinCash});import{bitgo as IZ,crypto as MZ,ECPair as ZB,networks as _Z,address as HZ}from"@bitgo/utxo-lib";import{ZcashTransaction as XB}from"@bitgo/utxo-lib/dist/src/bitgo";import{HDKey as GB}from"@scure/bip32";import{mnemonicToSeedSync as JB}from"@scure/bip39";import{Chain as jX,derivationPathToString as vZ,FeeOption as NZ,NetworkDerivationPath as yZ,USwapConfig as OZ,USwapError as qX,updateDerivationPath as UZ}from"@uswap/helpers";import KZ from"bs58check";import{match as kZ,P as NX}from"ts-pattern";function yX(){return _Z.zcash}function QB(){return{bech32:void 0,bip32:{private:76066276,public:76067358},messagePrefix:`\x18ZCash Signed Message:
2
- `,pubKeyHash:28,scriptHash:28,wif:128}}function AZ({phrase:X,derivationPath:B}){let Z=JB(X),$=GB.fromMasterSeed(Z).derive(B);if(!$.privateKey)throw new qX("toolbox_utxo_invalid_params");let Q=QB(),J=ZB.fromPrivateKey(Buffer.from($.privateKey),{network:Q}),j=MZ.hash160(J.publicKey),{isStagenet:q}=OZ.get("envs"),W=q?Buffer.from([29,37]):Buffer.from([28,184]),L=Buffer.concat([W,j]),Y=KZ.encode(L);return{getAddress:()=>Promise.resolve(Y),signTransaction:(D)=>{let T=D.signAllInputs(J);return Promise.resolve(T)}}}function FZ({inputs:X,outputs:B,psbt:Z,sender:G,compiledMemo:$}){for(let Q of X){let J=!!Q.witnessUtxo&&{witnessUtxo:{...Q.witnessUtxo,value:BigInt(Q.value)}},j=!Q.witnessUtxo&&{nonWitnessUtxo:Q.txHex?Buffer.from(Q.txHex,"hex"):void 0};Z.addInput({hash:Q.hash,index:Q.index,...J,...j})}for(let Q of B){let J="address"in Q&&Q.address?Q.address:G,j=Q.script;if(j&&!$)continue;let q=j?{script:$,value:0n}:{script:HZ.toOutputScript(J,yX()),value:BigInt(Q.value)};Z.addOutput(q)}return{inputs:X,psbt:Z}}async function BB(X){let{assetValue:B,recipient:Z,memo:G,feeRate:$,sender:Q,fetchTxHex:J}=X,j=G?O(G):null,q=await _(jX.Zcash).getUtxos({address:Q,fetchTxHex:J!==!1}),W=[{address:Z,value:Number(B.getBaseValue("string"))},...j?[{script:j,value:0}]:[]],{inputs:L,outputs:Y}=U({chain:jX.Zcash,changeAddress:Q,feeRate:$,inputs:q,outputs:W});if(!(L&&Y))throw new qX("toolbox_utxo_insufficient_balance",{assetValue:B,sender:Q});let D=IZ.createPsbtForNetwork({network:yX()},{version:XB.VERSION4_BRANCH_NU6_1}),{psbt:T,inputs:z}=await FZ({compiledMemo:j,inputs:L,outputs:Y,psbt:D,sender:Q});return T.setDefaultsForVersion(yX(),XB.VERSION4_BRANCH_NU6_1),{inputs:z,outputs:Y,psbt:T}}async function OX(X){let B=await kZ(X).with({signer:NX.not(NX.nullish)},({signer:J})=>Promise.resolve(J)).with({phrase:NX.string},({phrase:J,derivationPath:j,index:q=0})=>{let W=j||yZ[jX.Zcash]||[44,133,0,0,0],L=UZ(W,{index:q}),Y=vZ(L);return AZ({derivationPath:Y,phrase:J})}).otherwise(()=>Promise.resolve(void 0)),Z=await S({chain:jX.Zcash,signer:B});async function G({recipient:J,assetValue:j,feeOptionKey:q=NZ.Fast,...W}){let L=await B?.getAddress();if(!(B&&L))throw new qX("toolbox_utxo_no_signer");let Y=W.feeRate||(await Z.getFeeRates())[q],{psbt:D}=await BB({...W,assetValue:j,feeRate:Y,recipient:J,sender:L}),T=await B.signTransaction(D);T.validateSignaturesOfAllInputs(),T.finalizeAllInputs();let M=T.extractTransaction().toHex();return Z.broadcastTx(M)}function $({phrase:J,derivationPath:j="m/44'/133'/0'/0/0"}){let q=JB(J),L=GB.fromMasterSeed(q).derive(j);if(!L.privateKey)throw new qX("toolbox_utxo_invalid_params");let Y=QB();return ZB.fromPrivateKey(Buffer.from(L.privateKey),{network:Y})}function Q({phrase:J,derivationPath:j="m/44'/133'/0'/0/0"}){return $({derivationPath:j,phrase:J}).toWIF()}return{...Z,createKeysForPath:$,createTransaction:BB,getPrivateKeyFromMnemonic:Q,transfer:G,validateAddress:m}}var UX=v(()=>{g();a();r()});import{Chain as h,USwapError as EZ}from"@uswap/helpers";async function fZ(X,B){switch(X){case h.BitcoinCash:return await vX(B||{});case h.Zcash:return await OX(B);case h.Bitcoin:case h.Dogecoin:case h.Litecoin:case h.Dash:return await S({chain:X,...B});default:throw new EZ("toolbox_utxo_not_supported",{chain:X})}}var $B=v(()=>{$X();a();UX();$X();r()});var RZ={};YB(RZ,{validateZcashAddress:()=>m,toLegacyAddress:()=>b,toCashAddress:()=>o,stripToCashAddress:()=>w,stripPrefix:()=>V,nonSegwitChains:()=>d,isValidAddress:()=>zX,getUtxoToolbox:()=>fZ,getUtxoNetwork:()=>y,getUtxoApi:()=>_,getUTXOAddressValidator:()=>sX,getScriptTypeForAddress:()=>n,getOutputSize:()=>u,getInputSize:()=>F,getDustThreshold:()=>QX,getCreateKeysForPath:()=>i,detectAddressNetwork:()=>CX,createZcashToolbox:()=>OX,createUTXOToolbox:()=>S,createCustomUtxoApi:()=>AB,createBCHToolbox:()=>vX,compileMemo:()=>O,calculateTxSize:()=>x,bchValidateAddress:()=>E,addressFromKeysGetter:()=>HX,addInputsAndOutputs:()=>dX,accumulative:()=>U,UtxoNetwork:()=>DX,UTXOScriptType:()=>JX,TX_OVERHEAD:()=>GX,OutputSizes:()=>ZX,OP_RETURN_OVERHEAD:()=>cX,MIN_TX_FEE:()=>wB,InputSizes:()=>BX});var PZ=v(()=>{g();$B();$X();a();UX()});PZ();export{m as validateZcashAddress,b as toLegacyAddress,o as toCashAddress,w as stripToCashAddress,V as stripPrefix,d as nonSegwitChains,zX as isValidAddress,fZ as getUtxoToolbox,y as getUtxoNetwork,_ as getUtxoApi,sX as getUTXOAddressValidator,n as getScriptTypeForAddress,u as getOutputSize,F as getInputSize,QX as getDustThreshold,i as getCreateKeysForPath,CX as detectAddressNetwork,OX as createZcashToolbox,S as createUTXOToolbox,AB as createCustomUtxoApi,vX as createBCHToolbox,O as compileMemo,x as calculateTxSize,E as bchValidateAddress,HX as addressFromKeysGetter,dX as addInputsAndOutputs,U as accumulative,DX as UtxoNetwork,JX as UTXOScriptType,GX as TX_OVERHEAD,ZX as OutputSizes,cX as OP_RETURN_OVERHEAD,wB as MIN_TX_FEE,BX as InputSizes};
3
-
4
- //# debugId=79F8E2A2B845A6CE64756E2164756E21
5
- //# sourceMappingURL=index.js.map