@swapkit/toolboxes 4.20.0 → 4.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/{chunk-r2htb2ce.js → chunk-x9db9hmg.js} +1 -1
- package/dist/chunk-xs0j1eze.js +2 -0
- package/dist/src/evm/index.cjs +1 -1
- package/dist/src/evm/index.js +1 -1
- package/dist/src/hypercore/index.cjs +1 -1
- package/dist/src/hypercore/index.js +1 -1
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/ton/index.cjs +1 -1
- package/dist/src/ton/index.js +1 -1
- package/dist/src/tron/index.cjs +1 -1
- package/dist/src/tron/index.js +1 -1
- package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +90 -5
- package/dist/types/evm/toolbox/evm.d.ts +1584 -88
- package/dist/types/evm/toolbox/op.d.ts +72 -4
- package/dist/types/evm/types.d.ts +7 -7
- package/dist/types/ton/toolbox.d.ts +5 -5
- package/dist/types/ton/types.d.ts +5 -0
- package/dist/types/tron/index.d.ts +2 -2
- package/dist/types/tron/toolbox.d.ts +3 -1
- package/dist/types/tron/types.d.ts +5 -0
- package/package.json +2 -2
- package/dist/chunk-4q573g5z.js +0 -2
package/dist/src/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ea as t}from"../chunk-ntbvmmch.js";import{AssetValue as R,Chain as o,CosmosChains as x,EVMChains as c,FeeOption as W,SwapKitError as k,UTXOChains as b}from"@swapkit/helpers";async function V(){let{match:s}=await import("ts-pattern"),{validateAptosAddress:r}=await import("./aptos/index.js"),{validateEVMAddress:i}=await import("./evm/index.js"),{validateCardanoAddress:e}=await import("./cardano/index.js"),{getCosmosAddressValidator:a}=await import("./cosmos/index.js"),{validateHyperCoreAddress:l}=await import("./hypercore/index.js"),{validateSolanaAddress:T}=await import("./solana/index.js"),{validateStarknetAddress:p}=await import("./starknet/index.js"),{validateSuiAddress:C}=await import("./sui/index.js"),{validateTonAddress:h}=await import("./ton/index.js"),{getUTXOAddressValidator:u}=await import("./utxo/index.js"),{validateNearAddress:d}=await import("./near/index.js"),{validateRadixAddress:f}=await import("./radix/index.js"),{validateRippleAddress:g}=await import("./ripple/index.js"),{validateTronAddress:w}=await import("./tron/index.js"),{validateStellarAddress:S}=await import("./stellar/index.js");return function({address:n,chain:P}){return s(P).with(...c,()=>i(n)).with(...b,(m)=>{return u(m)(n)}).with(...x,(m)=>{return a(m)(n)}).with(o.Aptos,()=>r(n)).with(o.Radix,()=>f(n)).with(o.Hype,()=>l(n)).with(o.Near,()=>d(n)).with(o.Ripple,()=>g(n)).with(o.Solana,()=>T(n)).with(o.Stellar,()=>S(n)).with(o.Starknet,()=>p(n)).with(o.Sui,()=>C(n)).with(o.Ton,()=>h(n)).with(o.Tron,()=>w(n)).with(o.Cardano,()=>e(n)).otherwise(()=>!1)}}function E(s){return async function(i){let{match:e}=await import("ts-pattern");return e(s).returnType().with(...c,async(a)=>{let l=await y(a),T=await l.createTransaction(i),p="feeOptionKey"in i?i.feeOptionKey:W.Fast;return l.estimateTransactionFee({...T,feeOption:p})}).with(o.Bitcoin,o.BitcoinCash,o.Dogecoin,o.Dash,o.Litecoin,o.Solana,o.Ripple,o.Tron,o.Near,o.Cardano,o.Hype,async(a)=>{return(await y(a)).estimateTransactionFee(i)}).with(o.Aptos,async()=>{let{getAptosToolbox:a}=await import("./aptos/index.js");return a().estimateTransactionFee(i)}).with(o.Starknet,async()=>{let{getStarknetToolbox:a}=await import("./starknet/index.js");return(await a()).estimateTransactionFee(i)}).with(o.Stellar,async()=>{let{getStellarToolbox:a}=await import("./stellar/index.js");return a().estimateTransactionFee()}).with(o.Sui,async()=>{let{getSuiToolbox:a}=await import("./sui/index.js");return a().estimateTransactionFee(i)}).with(o.Ton,async()=>{let{getTONToolbox:a}=await import("./ton/index.js");return a().estimateTransactionFee(i)}).with(...x,async()=>{let{estimateTransactionFee:a}=await import("./cosmos/index.js");return a(i)}).otherwise(async()=>R.from({chain:s}))}}async function y(s,r){let{match:i}=await import("ts-pattern");return i(s).returnType().with(...c,async()=>{let{getEvmToolboxAsync:e}=await import("../chunk-
|
|
1
|
+
import{ea as t}from"../chunk-ntbvmmch.js";import{AssetValue as R,Chain as o,CosmosChains as x,EVMChains as c,FeeOption as W,SwapKitError as k,UTXOChains as b}from"@swapkit/helpers";async function V(){let{match:s}=await import("ts-pattern"),{validateAptosAddress:r}=await import("./aptos/index.js"),{validateEVMAddress:i}=await import("./evm/index.js"),{validateCardanoAddress:e}=await import("./cardano/index.js"),{getCosmosAddressValidator:a}=await import("./cosmos/index.js"),{validateHyperCoreAddress:l}=await import("./hypercore/index.js"),{validateSolanaAddress:T}=await import("./solana/index.js"),{validateStarknetAddress:p}=await import("./starknet/index.js"),{validateSuiAddress:C}=await import("./sui/index.js"),{validateTonAddress:h}=await import("./ton/index.js"),{getUTXOAddressValidator:u}=await import("./utxo/index.js"),{validateNearAddress:d}=await import("./near/index.js"),{validateRadixAddress:f}=await import("./radix/index.js"),{validateRippleAddress:g}=await import("./ripple/index.js"),{validateTronAddress:w}=await import("./tron/index.js"),{validateStellarAddress:S}=await import("./stellar/index.js");return function({address:n,chain:P}){return s(P).with(...c,()=>i(n)).with(...b,(m)=>{return u(m)(n)}).with(...x,(m)=>{return a(m)(n)}).with(o.Aptos,()=>r(n)).with(o.Radix,()=>f(n)).with(o.Hype,()=>l(n)).with(o.Near,()=>d(n)).with(o.Ripple,()=>g(n)).with(o.Solana,()=>T(n)).with(o.Stellar,()=>S(n)).with(o.Starknet,()=>p(n)).with(o.Sui,()=>C(n)).with(o.Ton,()=>h(n)).with(o.Tron,()=>w(n)).with(o.Cardano,()=>e(n)).otherwise(()=>!1)}}function E(s){return async function(i){let{match:e}=await import("ts-pattern");return e(s).returnType().with(...c,async(a)=>{let l=await y(a),T=await l.createTransaction(i),p="feeOptionKey"in i?i.feeOptionKey:W.Fast;return l.estimateTransactionFee({...T,feeOption:p})}).with(o.Bitcoin,o.BitcoinCash,o.Dogecoin,o.Dash,o.Litecoin,o.Solana,o.Ripple,o.Tron,o.Near,o.Cardano,o.Hype,async(a)=>{return(await y(a)).estimateTransactionFee(i)}).with(o.Aptos,async()=>{let{getAptosToolbox:a}=await import("./aptos/index.js");return a().estimateTransactionFee(i)}).with(o.Starknet,async()=>{let{getStarknetToolbox:a}=await import("./starknet/index.js");return(await a()).estimateTransactionFee(i)}).with(o.Stellar,async()=>{let{getStellarToolbox:a}=await import("./stellar/index.js");return a().estimateTransactionFee()}).with(o.Sui,async()=>{let{getSuiToolbox:a}=await import("./sui/index.js");return a().estimateTransactionFee(i)}).with(o.Ton,async()=>{let{getTONToolbox:a}=await import("./ton/index.js");return a().estimateTransactionFee(i)}).with(...x,async()=>{let{estimateTransactionFee:a}=await import("./cosmos/index.js");return a(i)}).otherwise(async()=>R.from({chain:s}))}}async function y(s,r){let{match:i}=await import("ts-pattern");return i(s).returnType().with(...c,async()=>{let{getEvmToolboxAsync:e}=await import("../chunk-x9db9hmg.js");return await e(s,r)}).with(...b,async()=>{let{getUtxoToolbox:e}=await import("./utxo/index.js");return e(s,r)}).with(...x,async()=>{let{getCosmosToolbox:e}=await import("./cosmos/index.js");return e(s,r)}).with(o.Aptos,async()=>{let{getAptosToolbox:e}=await import("./aptos/index.js");return e(r)}).with(o.Hype,async()=>{let{getHyperCoreToolbox:e}=await import("./hypercore/index.js");return e(r)}).with(o.Radix,async()=>{let{getRadixToolbox:e}=await import("./radix/index.js");return e(r)}).with(o.Ripple,async()=>{let{getRippleToolbox:e}=await import("./ripple/index.js");return e(r)}).with(o.Solana,async()=>{let{getSolanaToolbox:e}=await import("./solana/index.js");return e(r)}).with(o.Stellar,async()=>{let{getStellarToolbox:e}=await import("./stellar/index.js");return e(r)}).with(o.Starknet,async()=>{let{getStarknetToolbox:e}=await import("./starknet/index.js");return e(r)}).with(o.Sui,async()=>{let{getSuiToolbox:e}=await import("./sui/index.js");return e(r)}).with(o.Tron,async()=>{let{getTronToolbox:e}=await import("./tron/index.js");return e(r)}).with(o.Near,async()=>{let{getNearToolbox:e}=await import("./near/index.js");return e(r)}).with(o.Cardano,async()=>{let{getCardanoToolbox:e}=await import("./cardano/index.js");return e(r)}).with(o.Ton,async()=>{let{getTONToolbox:e}=await import("./ton/index.js");return e(r)}).otherwise(()=>{throw new k("toolbox_not_supported",{chain:s})})}export{y as getToolbox,E as getFeeEstimator,V as getAddressValidator};
|
package/dist/src/ton/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var v3=Object.create;var{getPrototypeOf:
|
|
1
|
+
var v3=Object.create;var{getPrototypeOf:G3,defineProperty:h,getOwnPropertyNames:p,getOwnPropertyDescriptor:Q3}=Object,A=Object.prototype.hasOwnProperty;function c(v){return this[v]}var X3,Y3,O3=(v,Y,x)=>{var k=v!=null&&typeof v==="object";if(k){var L=Y?X3??=new WeakMap:Y3??=new WeakMap,J=L.get(v);if(J)return J}x=v!=null?v3(G3(v)):{};let B=Y||!v||!v.__esModule?h(x,"default",{value:v,enumerable:!0}):x;for(let R of p(v))if(!A.call(B,R))h(B,R,{get:c.bind(v,R),enumerable:!0});if(k)L.set(v,B);return B},Z3=(v)=>{var Y=(w??=new WeakMap).get(v),x;if(Y)return Y;if(Y=h({},"__esModule",{value:!0}),v&&typeof v==="object"||typeof v==="function"){for(var k of p(v))if(!A.call(Y,k))h(Y,k,{get:c.bind(v,k),enumerable:!(x=Q3(v,k))||x.enumerable})}return w.set(v,Y),Y},w;var $3=(v)=>v;function q3(v,Y){this[v]=$3.bind(null,Y)}var x3=(v,Y)=>{for(var x in Y)h(v,x,{get:Y[x],enumerable:!0,configurable:!0,set:q3.bind(Y,x)})};var W=(v,Y)=>()=>(v&&(Y=v(v=0)),Y);function D3(){function v(){let Y=Date.now(),x=u||Y;return u=x,Y>u?Y:x+1}return z3+v().toString(36)}function g(v){return async function(x,k=!0){let L=await m.SwapKitApi.getChainBalance({address:x,chain:v,scamFilter:k}),{baseDecimal:J}=P.getChainConfig(v),B=L.map(({identifier:O,value:_,decimal:j})=>{return new P.AssetValue({decimal:j||J,identifier:O,value:_})});if(!B.some((O)=>O.isGasAsset))return[P.AssetValue.from({chain:v}),...B];return B}}var P,m,z3,u=0;var i=W(()=>{P=require("@swapkit/helpers"),m=require("@swapkit/helpers/api"),z3=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function R3(){let v=Date.now();if(y&&v-d<L3)return y;let{getHttpEndpoint:Y}=await import("@orbs-network/ton-access");return y=await Y(),d=v,y}async function J3(){let[v]=q.SKConfig.get("rpcUrls")[q.Chain.Ton]??[];if(v)return v;return await R3()}function K3(v={}){let Y,x,k;async function L(){if(!Y){let{TonClient:G}=await import("@ton/ton"),Q=v.provider??await J3();Y=new G({endpoint:Q})}return Y}async function J(){return(await R()).address.toString()}async function B(){if(k)return k;return k=await U.match(v).with({phrase:U.P.string},async({phrase:G})=>{let{mnemonicToWalletKey:Q}=await import("@ton/crypto");return Q(G.split(" "))}).with({signer:U.P.any},({signer:G})=>G).otherwise(()=>{return}),k}async function R(G){if(!x||G){let Q=await B(),Z=await L(),z=G||Q;if(!z)throw new q.SwapKitError("core_wallet_connection_not_found");let{WalletContractV4:$}=await import("@ton/ton"),H=$.create({publicKey:z.publicKey,workchain:0});x=Z.open(H)}return x}let O=g(q.Chain.Ton);async function _({assetValue:G,recipient:Q,memo:Z,sender:z,sweep:$}){if(G.isGasAsset){let e=Z?S(Z).toBoc().toString("base64"):void 0;return[{address:Q,amount:G.getBaseValue("string"),payload:e}]}if($)throw new q.SwapKitError({errorKey:"core_swap_invalid_params",info:{asset:G.toString(),reason:"TON sweep is only supported for the native gas asset"}});let H=G.address;if(!H)throw new q.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:G.toString()}});let I=z??await J(),N=await E({jettonMasterAddress:H,ownerAddress:I}),K=X.Address.parse(Q),D=X.Address.parse(I),V=G.getBaseValue("bigint"),F=Z?S(Z):void 0,f=s({destinationAddress:K,forwardPayload:F,jettonAmount:V,responseAddress:D});return[{address:N.toString(),amount:B3.toString(),payload:f.toBoc().toString("base64")}]}async function j({sender:G,sweep:Q,...Z}){return{messages:await _({...Z,sender:G,sweep:Q}),sendMode:Q?I3:l}}function n(G){if(!Array.isArray(G))return G;let[Q]=G;return{messages:G.map(({sendMode:z,...$})=>$),sendMode:Q?.sendMode??l}}function M(G){return G.map((Q)=>{let Z=Q.payload?X.Cell.fromBase64(Q.payload):void 0,z=Q.stateInit?X.loadStateInit(X.Cell.fromBase64(Q.stateInit).asSlice()):void 0,$=X.Address.parse(Q.address),H=X.Address.isFriendly(Q.address)?X.Address.parseFriendly(Q.address).isBounceable:!0;return X.internal({body:Z,bounce:H,init:z,to:$,value:BigInt(Q.amount)})})}async function b(G){let Q=await B(),Z=await R();if(!Z||!Q)throw new q.SwapKitError("core_wallet_connection_not_found");let z=await L(),{state:$}=await z.getContractState(Z.address),H=$==="active",I=H?await Z.getSeqno():0,{messages:N,sendMode:K}=n(G),D=Z.createTransfer({messages:M(N),secretKey:Q.secretKey,sendMode:K,seqno:I}),V=X.external({body:D,init:H?void 0:Z.init,to:Z.address});return X.beginCell().store(X.storeMessage(V)).endCell()}async function T(G){return await(await L()).sendFile(G.toBoc()),G.hash().toString("hex")}async function C(G){let Q=await b(G);return T(Q)}async function a({assetValue:G,recipient:Q,memo:Z,sweep:z}){let $=await j({assetValue:G,memo:Z,recipient:Q,sweep:z});return C($)}async function t({sender:G,...Q}){let{baseDecimal:Z}=q.getChainConfig(q.Chain.Ton),z=await U.match(G).with(U.P.string,(I)=>{return X.Address.parseFriendly(I).address}).otherwise(async()=>{return(await R()).address});if(!z)throw new q.SwapKitError("toolbox_fee_estimation_failed",{chain:q.Chain.Ton});let $=q.AssetValue.from({chain:q.Chain.Ton,value:"0.01"}),H=await L();try{let I=await j({sender:G,...Q}),N=await B(),K=await R();if(!K||!N)return $;let D=await K.getSeqno(),V=K.createTransfer({messages:M(I.messages),secretKey:N.secretKey,sendMode:I.sendMode,seqno:D}),{source_fees:F}=await H.estimateExternalMessageFee(z,{body:V,ignoreSignature:!0,initCode:null,initData:null}),f=F.in_fwd_fee+F.storage_fee+F.gas_fee+F.fwd_fee;return $.set(q.SwapKitNumber.fromBigInt(BigInt(f),Z))}catch{return $}}async function E({jettonMasterAddress:G,ownerAddress:Q}){try{let Z=await L(),z=X.Address.parse(G),$=X.Address.parse(Q),{JettonMaster:H}=await import("@ton/ton");return await Z.open(H.create(z)).getWalletAddress($)}catch{throw new q.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:G,ownerAddress:Q}})}}function s({jettonAmount:G,destinationAddress:Q,responseAddress:Z,forwardAmount:z=k3,forwardPayload:$}){let H=X.beginCell().storeUint(H3,32).storeUint(0,64).storeCoins(G).storeAddress(Q).storeAddress(Z).storeBit(0).storeCoins(z);if($)H.storeBit(1).storeRef($);else H.storeBit(0);return H.endCell()}function S(G){return X.beginCell().storeUint(0,32).storeStringTail(G).endCell()}return{broadcastTransaction:T,createTransaction:j,estimateTransactionFee:t,getAddress:J,getBalance:O,getJettonWalletAddress:E,sign:b,signAndBroadcastTransaction:C,transfer:a,validateAddress:o}}function o(v){try{return X.Address.parse(v),!0}catch{return!1}}var q,X,U,H3=260734629,k3,B3,l,I3,L3=60000,y,d=0;var r=W(()=>{i();q=require("@swapkit/helpers"),X=require("@ton/core"),U=require("ts-pattern"),k3=X.toNano("0.01"),B3=X.toNano("0.05"),l=X.SendMode.PAY_GAS_SEPARATELY+X.SendMode.IGNORE_ERRORS,I3=X.SendMode.CARRY_ALL_REMAINING_BALANCE+X.SendMode.IGNORE_ERRORS});var N3={};x3(N3,{validateTonAddress:()=>o,getTONToolbox:()=>K3});module.exports=Z3(N3);var F3=W(()=>{r()});F3();
|
package/dist/src/ton/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{da as
|
|
1
|
+
import{da as p}from"../../chunk-54gntgt1.js";import{ea as U}from"../../chunk-ntbvmmch.js";import{AssetValue as n,Chain as K,getChainConfig as a,SKConfig as s,SwapKitError as I,SwapKitNumber as t}from"@swapkit/helpers";import{Address as k,beginCell as h,Cell as S,external as e,internal as QQ,loadStateInit as XQ,SendMode as N,storeMessage as YQ,toNano as m}from"@ton/core";import{match as u,P as y}from"ts-pattern";var ZQ=260734629,$Q=m("0.01"),zQ=m("0.05"),w=N.PAY_GAS_SEPARATELY+N.IGNORE_ERRORS,GQ=N.CARRY_ALL_REMAINING_BALANCE+N.IGNORE_ERRORS,HQ=60000,j,A=0;async function kQ(){let H=Date.now();if(j&&H-A<HQ)return j;let{getHttpEndpoint:L}=await import("@orbs-network/ton-access");return j=await L(),A=H,j}async function qQ(){let[H]=s.get("rpcUrls")[K.Ton]??[];if(H)return H;return await kQ()}function JQ(H={}){let L,D,F;async function R(){if(!L){let{TonClient:Q}=await import("@ton/ton"),X=H.provider??await qQ();L=new Q({endpoint:X})}return L}async function W(){return(await O()).address.toString()}async function P(){if(F)return F;return F=await u(H).with({phrase:y.string},async({phrase:Q})=>{let{mnemonicToWalletKey:X}=await import("@ton/crypto");return X(Q.split(" "))}).with({signer:y.any},({signer:Q})=>Q).otherwise(()=>{return}),F}async function O(Q){if(!D||Q){let X=await P(),Y=await R(),$=Q||X;if(!$)throw new I("core_wallet_connection_not_found");let{WalletContractV4:Z}=await import("@ton/ton"),z=Z.create({publicKey:$.publicKey,workchain:0});D=Y.open(z)}return D}let g=p(K.Ton);async function c({assetValue:Q,recipient:X,memo:Y,sender:$,sweep:Z}){if(Q.isGasAsset){let r=Y?C(Y).toBoc().toString("base64"):void 0;return[{address:X,amount:Q.getBaseValue("string"),payload:r}]}if(Z)throw new I({errorKey:"core_swap_invalid_params",info:{asset:Q.toString(),reason:"TON sweep is only supported for the native gas asset"}});let z=Q.address;if(!z)throw new I({errorKey:"core_swap_contract_not_found",info:{asset:Q.toString()}});let G=$??await W(),v=await f({jettonMasterAddress:z,ownerAddress:G}),q=k.parse(X),J=k.parse(G),B=Q.getBaseValue("bigint"),x=Y?C(Y):void 0,_=o({destinationAddress:q,forwardPayload:x,jettonAmount:B,responseAddress:J});return[{address:v.toString(),amount:zQ.toString(),payload:_.toBoc().toString("base64")}]}async function V({sender:Q,sweep:X,...Y}){return{messages:await c({...Y,sender:Q,sweep:X}),sendMode:X?GQ:w}}function i(Q){if(!Array.isArray(Q))return Q;let[X]=Q;return{messages:Q.map(({sendMode:$,...Z})=>Z),sendMode:X?.sendMode??w}}function M(Q){return Q.map((X)=>{let Y=X.payload?S.fromBase64(X.payload):void 0,$=X.stateInit?XQ(S.fromBase64(X.stateInit).asSlice()):void 0,Z=k.parse(X.address),z=k.isFriendly(X.address)?k.parseFriendly(X.address).isBounceable:!0;return QQ({body:Y,bounce:z,init:$,to:Z,value:BigInt(X.amount)})})}async function b(Q){let X=await P(),Y=await O();if(!Y||!X)throw new I("core_wallet_connection_not_found");let $=await R(),{state:Z}=await $.getContractState(Y.address),z=Z==="active",G=z?await Y.getSeqno():0,{messages:v,sendMode:q}=i(Q),J=Y.createTransfer({messages:M(v),secretKey:X.secretKey,sendMode:q,seqno:G}),B=e({body:J,init:z?void 0:Y.init,to:Y.address});return h().store(YQ(B)).endCell()}async function E(Q){return await(await R()).sendFile(Q.toBoc()),Q.hash().toString("hex")}async function T(Q){let X=await b(Q);return E(X)}async function l({assetValue:Q,recipient:X,memo:Y,sweep:$}){let Z=await V({assetValue:Q,memo:Y,recipient:X,sweep:$});return T(Z)}async function d({sender:Q,...X}){let{baseDecimal:Y}=a(K.Ton),$=await u(Q).with(y.string,(G)=>{return k.parseFriendly(G).address}).otherwise(async()=>{return(await O()).address});if(!$)throw new I("toolbox_fee_estimation_failed",{chain:K.Ton});let Z=n.from({chain:K.Ton,value:"0.01"}),z=await R();try{let G=await V({sender:Q,...X}),v=await P(),q=await O();if(!q||!v)return Z;let J=await q.getSeqno(),B=q.createTransfer({messages:M(G.messages),secretKey:v.secretKey,sendMode:G.sendMode,seqno:J}),{source_fees:x}=await z.estimateExternalMessageFee($,{body:B,ignoreSignature:!0,initCode:null,initData:null}),_=x.in_fwd_fee+x.storage_fee+x.gas_fee+x.fwd_fee;return Z.set(t.fromBigInt(BigInt(_),Y))}catch{return Z}}async function f({jettonMasterAddress:Q,ownerAddress:X}){try{let Y=await R(),$=k.parse(Q),Z=k.parse(X),{JettonMaster:z}=await import("@ton/ton");return await Y.open(z.create($)).getWalletAddress(Z)}catch{throw new I({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:Q,ownerAddress:X}})}}function o({jettonAmount:Q,destinationAddress:X,responseAddress:Y,forwardAmount:$=$Q,forwardPayload:Z}){let z=h().storeUint(ZQ,32).storeUint(0,64).storeCoins(Q).storeAddress(X).storeAddress(Y).storeBit(0).storeCoins($);if(Z)z.storeBit(1).storeRef(Z);else z.storeBit(0);return z.endCell()}function C(Q){return h().storeUint(0,32).storeStringTail(Q).endCell()}return{broadcastTransaction:E,createTransaction:V,estimateTransactionFee:d,getAddress:W,getBalance:g,getJettonWalletAddress:f,sign:b,signAndBroadcastTransaction:T,transfer:l,validateAddress:vQ}}function vQ(H){try{return k.parse(H),!0}catch{return!1}}export{vQ as validateTonAddress,JQ as getTONToolbox};
|
package/dist/src/tron/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var sz=Object.create;var{getPrototypeOf:rz,defineProperty:T,getOwnPropertyNames:Zz,getOwnPropertyDescriptor:ez}=Object,$z=Object.prototype.hasOwnProperty;function Yz(z){return this[z]}var zJ,JJ,VJ=(z,J,Q)=>{var Z=z!=null&&typeof z==="object";if(Z){var Y=J?zJ??=new WeakMap:JJ??=new WeakMap,q=Y.get(z);if(q)return q}Q=z!=null?sz(rz(z)):{};let W=J||!z||!z.__esModule?T(Q,"default",{value:z,enumerable:!0}):Q;for(let k of Zz(z))if(!$z.call(W,k))T(W,k,{get:Yz.bind(z,k),enumerable:!0});if(Z)Y.set(z,W);return W},QJ=(z)=>{var J=(Qz??=new WeakMap).get(z),Q;if(J)return J;if(J=T({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var Z of Zz(z))if(!$z.call(J,Z))T(J,Z,{get:Yz.bind(z,Z),enumerable:!(Q=ez(z,Z))||Q.enumerable})}return Qz.set(z,J),J},Qz;var ZJ=(z)=>z;function $J(z,J){this[z]=ZJ.bind(null,J)}var YJ=(z,J)=>{for(var Q in J)T(z,Q,{get:J[Q],enumerable:!0,configurable:!0,set:$J.bind(J,Q)})};var f=(z,J)=>()=>(z&&(J=z(z=0)),J);function u(z,J){let Q=0n,Z=0n,Y=J;while(Y<z.length&&Y-J<10){let q=z[Y++];if(q===void 0)break;if(Q|=BigInt(q&127)<<Z,Z+=7n,(q&128)===0)return[Q,Y]}throw new R.SwapKitError("toolbox_tron_transaction_creation_failed")}function x(z){let J=[],Q=z<0n?z+2n**64n:z;while(Q>=128n)J.push(Number(Q&0x7fn)|128),Q>>=7n;return J.push(Number(Q)),J}function A(z,J,Q){let Z=z.get(J);if(Z)Z.push(Q);else z.set(J,[Q])}function GJ(z){let J=new Map,Q=0;while(Q<z.length){let[Z,Y]=u(z,Q);Q=Y;let q=Number(Z>>3n),W=Number(Z&7n);if(W===y){let[k,H]=u(z,Q);Q=H,A(J,q,{data:new Uint8Array(x(k)),wireType:y})}else if(W===h){let[k,H]=u(z,Q);Q=H;let D=Number(k);if(D<0||Q+D>z.length)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let m=z.slice(Q,Q+D);Q+=D,A(J,q,{data:m,wireType:h})}else if(W===Xz){if(Q+8>z.length)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let k=z.slice(Q,Q+8);Q+=8,A(J,q,{data:k,wireType:Xz})}else if(W===jz){if(Q+4>z.length)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let k=z.slice(Q,Q+4);Q+=4,A(J,q,{data:k,wireType:jz})}else throw new R.SwapKitError("toolbox_tron_transaction_creation_failed")}return J}function WJ(z){let J=[];for(let[q,W]of[...z.entries()].sort(([k],[H])=>k-H))for(let{wireType:k,data:H}of W){let D=BigInt(q<<3|k);if(J.push(new Uint8Array(x(D))),k===h)J.push(new Uint8Array(x(BigInt(H.length))));J.push(H)}let Q=J.reduce((q,W)=>q+W.length,0),Z=new Uint8Array(Q),Y=0;for(let q of J)Z.set(q,Y),Y+=q.length;return Z}function Gz(z,J){if(!z||z.length%2!==0)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let Q=S.hexToBytes(z),Z=GJ(Q);if(J.expiration!==void 0)Z.set(XJ,[{data:new Uint8Array(x(BigInt(J.expiration))),wireType:y}]);if(J.data!==void 0)Z.set(jJ,[{data:S.hexToBytes(J.data),wireType:h}]);if(J.fee_limit!==void 0)Z.set(qJ,[{data:new Uint8Array(x(BigInt(J.fee_limit))),wireType:y}]);let Y=WJ(Z),q=S.bytesToHex(Y),W=S.bytesToHex(qz.sha256(Y));return{raw_data_hex:q,txID:W}}var qz,S,R,y=0,Xz=1,h=2,jz=5,XJ=8,jJ=10,qJ=18;var Wz=f(()=>{qz=require("@noble/hashes/sha2.js"),S=require("@noble/hashes/utils.js"),R=require("@swapkit/helpers")});function B(z){if(typeof z!=="string")return!1;try{let J=E.decode(z);return J.length===21&&J[0]===Uz}catch{return!1}}function Cz(z){return N.bytesToHex(E.decode(z))}function OJ(z){return E.decode(z).slice(1)}function kz(z){let J=p.secp256k1.getPublicKey(N.hexToBytes(z),!1),Q=Mz.keccak_256(J.slice(1)).slice(-20),Z=new Uint8Array(21);return Z[0]=Uz,Z.set(Q,1),E.encode(Z)}function Hz({txID:z,privateKey:J}){let Q=p.secp256k1.sign(N.hexToBytes(z),N.hexToBytes(J),{format:"recovered",prehash:!1}),Z=Q[0]??0,Y=N.bytesToHex(Q.slice(1,33)),q=N.bytesToHex(Q.slice(33,65)),W=(Z+27).toString(16).padStart(2,"0");return Y+q+W}function _({txID:z,raw_data_hex:J}){let Q=N.bytesToHex(l.sha256(N.hexToBytes(J)));if(z!==Q)throw new c.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:Q,txID:z})}function UJ(z){return`000000000000000000000000${N.bytesToHex(OJ(z))}`}function CJ(z){let J=typeof z==="bigint"?z:BigInt(z);if(J<0n||J>=MJ)throw new c.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});return J.toString(16).padStart(64,"0")}function I(z){return z.map(({type:J,value:Q})=>J==="address"?UJ(Q):CJ(BigInt(Q))).join("")}function Kz(z){return N.bytesToHex(new TextEncoder().encode(z))}var p,l,Mz,N,Oz,c,E,Uz=65,MJ;var o=f(()=>{p=require("@noble/curves/secp256k1.js"),l=require("@noble/hashes/sha2.js"),Mz=require("@noble/hashes/sha3.js"),N=require("@noble/hashes/utils.js"),Oz=require("@scure/base"),c=require("@swapkit/helpers"),E=Oz.createBase58check(l.sha256),MJ=2n**256n});function Nz(){try{return C.getRPCUrlSync(C.Chain.Tron)}catch{return Lz}}function Bz(){let z=new AbortController,J=setTimeout(()=>z.abort(),LJ);return{cleanup:()=>clearTimeout(J),signal:z.signal}}async function V(z,J){let{signal:Q,cleanup:Z}=Bz();try{let Y=await fetch(`${Nz()}${z}`,{body:JSON.stringify(J),headers:{"Content-Type":"application/json"},method:"POST",signal:Q});if(!Y.ok)throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${Y.status} ${Y.statusText} on ${z}`});return await Y.json()}finally{Z()}}async function Dz(z,J){let{signal:Q,cleanup:Z}=Bz();try{let Y=await fetch(`${J??Nz()}${z}`,{headers:{"Content-Type":"application/json"},signal:Q});if(!Y.ok)throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${Y.status} ${Y.statusText} on ${z}`});return await Y.json()}finally{Z()}}async function Fz(z){if(!B(z))throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:"Invalid address"});try{let J=await Dz(`/v1/accounts/${z}`,Lz);if(!(J.success&&J.data)||J.data.length===0)return;let Q;try{Q=Cz(z).toLowerCase()}catch{Q=z.toLowerCase()}let Z=J.data.find((Y)=>Y.address.toLowerCase()===Q);if(!Z)return;return{balance:Z.balance,trc20:Z.trc20||[]}}catch(J){if(J instanceof C.SwapKitError)throw J;throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:J instanceof Error?J.message:"Unknown error"})}}async function Rz({from:z,to:J,amount:Q}){let Y=await V("/wallet/createtransaction",{amount:Q,owner_address:z,to_address:J,visible:!0});if(!Y.txID||!Y.raw_data_hex||!Y.raw_data)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");let W=Y.raw_data?.contract?.[0]?.parameter?.value;if(W?.to_address!==J||W?.owner_address!==z||W?.amount!==Q)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");return _(Y),Y}async function Vz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:Z,feeLimit:Y,callValue:q=0}){let W=await V("/wallet/triggersmartcontract",{call_value:q,contract_address:J,fee_limit:Y,function_selector:Q,owner_address:z,parameter:Z,visible:!0});if(!W.result.result||!W.transaction?.txID||!W.transaction?.raw_data_hex)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");let H=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(H?.contract_address!==J||H?.owner_address!==z)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");return _(W.transaction),W.transaction}function Sz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:Z}){return V("/wallet/triggerconstantcontract",{contract_address:J,function_selector:Q,owner_address:z,parameter:Z,visible:!0})}function NJ({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:Z}){return V("/wallet/estimateenergy",{contract_address:J,function_selector:Q,owner_address:z,parameter:Z,visible:!0})}function Pz(z){let J=typeof z==="number"?z:typeof z==="string"?Number(z):Number.NaN;return Number.isFinite(J)&&J>0?J:void 0}async function w(z){try{let{result:J,txid:Q}=await V("/wallet/broadcasttransaction",{raw_data:z.raw_data,raw_data_hex:z.raw_data_hex,signature:z.signature,txID:z.txID,visible:z.visible});if(!J||!Q)throw new C.SwapKitError("toolbox_tron_token_transfer_failed");return Q}catch(J){throw new C.SwapKitError("toolbox_tron_broadcast_failed",{error:J})}}async function b(){let z={};try{let{chainParameter:J}=await Dz("/wallet/getchainparameters");for(let Q of J)z[Q.key]=Q.value}catch(J){C.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${J instanceof Error?J.message:J}`})}return{bandwidthFee:z.getTransactionFee??kJ,createAccountFee:z.getCreateNewAccountFeeInSystemContract??z.getCreateAccountFee??HJ,energyFee:z.getEnergyFee??KJ,memoFee:z.getMemoFee??PJ}}async function i(z){try{let J=await V("/wallet/getaccountresource",{address:z,visible:!0});return{bandwidth:{free:(J.freeNetLimit??600)-(J.freeNetUsed??0),total:J.NetLimit??0,used:J.NetUsed??0},energy:{total:J.EnergyLimit??0,used:J.EnergyUsed??0}}}catch(J){return C.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${J instanceof Error?J.message:J}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function g(z){try{let J=await V("/wallet/getaccount",{address:z,visible:!0});return J&&Object.keys(J).length>0}catch{return!1}}async function n(z){try{let J=await NJ({...z,ownerAddress:z.sender}),Q=J.energy_required??J.energyRequired;if(J.result&&!J.result.result)throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:J.result.message||"estimateenergy failed"});if(Q!==void 0){let Z=Pz(Q);if(Z!==void 0)return Z;throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(J){C.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${J instanceof Error?J.message:J}`})}try{let{energy_used:J}=await Sz({...z,ownerAddress:z.sender}),Q=Pz(J);if(Q!==void 0)return Q;throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(J){throw C.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${J instanceof Error?J.message:J}`}),new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${J instanceof Error?J.message:J}`})}}async function _z({assetAddress:z,owner:J,spender:Q}){let Z=I([{type:"address",value:J},{type:"address",value:Q}]),q=(await Sz({contractAddress:z,functionSelector:"allowance(address,address)",ownerAddress:Q,parameter:Z})).constant_result?.[0];if(!q)return 0n;try{return BigInt(`0x${q}`)}catch{return 0n}}var C,Lz="https://api.trongrid.io",kJ=1000,HJ=1e6,KJ=420,PJ=1e6,LJ=30000;var Iz=f(()=>{o();C=require("@swapkit/helpers")});function yz({phrase:z,derivationPath:J}){let Q=bz.HDKey.fromMasterSeed(gz.mnemonicToSeedSync(z)).derive(J);if(!Q.privateKey)throw new $.SwapKitError("toolbox_tron_no_signer");return wz.bytesToHex(Q.privateKey)}function hz({phrase:z,derivationPath:J,index:Q}){let Z=J||$.derivationPathToString($.updateDerivationPath($.NetworkDerivationPath[$.Chain.Tron],{index:Q||0}));return yz({derivationPath:Z,phrase:z})}function DJ({phrase:z,derivationPath:J}){let Q=yz({derivationPath:J,phrase:z}),Z=kz(Q);return{getAddress:()=>Promise.resolve(Z),signTransaction:(Y)=>{_(Y);let q=Hz({privateKey:Q,txID:Y.txID});return Promise.resolve({...Y,signature:[q]})}}}function xz({transaction:z,memo:J,expiration:Q,feeLimit:Z}){let Y={},q={};if(Z!==void 0&&z.raw_data)Y.fee_limit=Z,q.fee_limit=Z;if(J){let H=J.startsWith("0x")?J.replace(/^0x/,""):Kz(J);Y.data=H,q.data=H}if(Q){let H=z.raw_data.expiration+Q*1000;Y.expiration=H,q.expiration=H}if(Object.keys(Y).length===0)return z;let{raw_data_hex:W,txID:k}=Gz(z.raw_data_hex,Y);return{...z,raw_data:{...z.raw_data,...q},raw_data_hex:W,txID:k}}function Ez(z={}){let J="index"in z?z.index||0:0,Q=$.derivationPathToString("derivationPath"in z&&z.derivationPath?z.derivationPath:$.updateDerivationPath($.NetworkDerivationPath[$.Chain.Tron],{index:J})),Z,Y=!1;function q(){if(Y)return Promise.resolve(Z);return Z=v.match(z).with({phrase:v.P.string},({phrase:X})=>DJ({derivationPath:Q,phrase:X})).with({signer:v.P.not(v.P.nullish)},({signer:X})=>X).otherwise(()=>{return}),Y=!0,Promise.resolve(Z)}async function W(){let X=await q();if(!X)throw new $.SwapKitError("toolbox_tron_no_signer");return X.getAddress()}async function k(X,j){let M=X||Tz,G=j??(await b()).energyFee,U=M*G,O=Math.ceil(U*1.5);return Math.min(Math.max(O,1e7),150000000)}async function H({contractAddress:X,functionSelector:j,parameter:M,sender:G,memo:U,expiration:O,extraEnergy:P=0}){let K=await n({contractAddress:X,functionSelector:j,parameter:M,sender:G}),L=await k(K+P),F=await Vz({contractAddress:X,feeLimit:L,functionSelector:j,ownerAddress:G,parameter:M});return xz({expiration:O,feeLimit:L,memo:U,transaction:F})}async function D(X){if(!B(X))return[$.AssetValue.from({chain:$.Chain.Tron})];try{let j=await Fz(X);if(!j)return[$.AssetValue.from({chain:$.Chain.Tron})];let M=[$.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:6,value:String(j.balance)})],G=j.trc20?.find((U)=>(t in U));if(G){let U=G[t];M.push($.AssetValue.from({asset:`TRON.USDT-${t}`,fromBaseDecimal:6,value:U}))}return M}catch(j){return $.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${j instanceof Error?j.message:j}`}),[$.AssetValue.from({chain:$.Chain.Tron})]}}async function m({recipient:X,assetValue:j,memo:M,expiration:G}){if(!B(X))throw new $.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let U=await q();if(!U)throw new $.SwapKitError("toolbox_tron_no_signer");try{let O=await W(),P=await s({assetValue:j,expiration:G,memo:M,recipient:X,sender:O}),K=await U.signTransaction(P),L=await w(K);if(!L)throw new $.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return L}catch(O){throw new $.SwapKitError("toolbox_tron_token_transfer_failed",{message:O instanceof Error?O.message:String(O)})}}function a({requiredBandwidth:X,resources:j,feePerUnit:M}){let G=Math.max(0,j.free+j.total-j.used);return X>G?(X-G)*M:0}async function uz({memo:X,recipient:j,senderAddress:M}){let[G,U,O]=await Promise.all([b(),g(j),i(M)]),P=U?0:G.createAccountFee,K=a({feePerUnit:G.bandwidthFee,requiredBandwidth:vz,resources:O.bandwidth}),L=X?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:P+K+L})}async function pz({assetValue:X,memo:j,recipient:M,senderAddress:G}){let U=X.address;if(!U)throw new $.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:X.toString()});let[O,P,K,L]=await Promise.all([b(),g(M),i(G),n({contractAddress:U,functionSelector:"transfer(address,uint256)",parameter:I([{type:"address",value:M},{type:"uint256",value:X.getBaseValue("string")}]),sender:G})]),zz=L+(P?0:d),dz=a({feePerUnit:O.bandwidthFee,requiredBandwidth:fz,resources:K.bandwidth}),Jz=Math.max(0,K.energy.total-K.energy.used),tz=zz>Jz?(zz-Jz)*O.energyFee:0,az=j?O.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:dz+tz+az})}async function lz({assetValue:X,memo:j,recipient:M}){let[G,U]=await Promise.all([b(),g(M)]);if(X.isGasAsset){let L=U?0:G.createAccountFee,F=j?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:L+vz*G.bandwidthFee+F})}let P=await k(Tz+(U?0:d),G.energyFee),K=j?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:P+fz*G.bandwidthFee+K})}async function cz({assetValue:X,memo:j,recipient:M,sender:G}){let U=await q();try{let O=G?G:U?await W():void 0;if(!O)return lz({assetValue:X,memo:j,recipient:M});return X.isGasAsset?uz({memo:j,recipient:M,senderAddress:O}):pz({assetValue:X,memo:j,recipient:M,senderAddress:O})}catch(O){throw $.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${O instanceof Error?O.message:O}`}),new $.SwapKitError("toolbox_fee_estimation_failed",{chain:$.Chain.Tron,error:O})}}async function s({recipient:X,assetValue:j,memo:M,sender:G,expiration:U}){if(!B(X)||!B(G))throw new $.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(j.isGasAsset){let K=await Rz({amount:j.getBaseValue("number"),from:G,to:X});return xz({expiration:U,memo:M,transaction:K})}let O=j.address;if(!O)throw new $.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:j.toString()});let P=await g(X);return H({contractAddress:O,expiration:U,extraEnergy:P?0:d,functionSelector:"transfer(address,uint256)",memo:M,parameter:I([{type:"address",value:X},{type:"uint256",value:j.getBaseValue("string")}]),sender:G})}async function r(X){_(X);let j=await q();if(!j)throw new $.SwapKitError("toolbox_tron_no_signer");return j.signTransaction(X)}async function oz(X){let j=await r(X);return w(j)}function e({assetAddress:X,spenderAddress:j,from:M}){return _z({assetAddress:X,owner:M,spender:j})}async function iz({assetAddress:X,spenderAddress:j,from:M,amount:G}){let U=await e({assetAddress:X,from:M,spenderAddress:j});if(!G)return U>0n;return U>=BigInt(G)}async function nz({assetAddress:X,spenderAddress:j,amount:M,from:G}){if(!B(X)||!B(j))throw new $.SwapKitError("toolbox_tron_approve_failed");let U=await q();if(!U)throw new $.SwapKitError("toolbox_tron_no_signer");let O=G||await W(),P=M!==void 0?BigInt(M).toString():BJ;try{let K=await H({contractAddress:X,functionSelector:"approve(address,uint256)",parameter:I([{type:"address",value:j},{type:"uint256",value:P}]),sender:O}),L=await U.signTransaction(K),F=await w(L);if(!F)throw new $.SwapKitError("toolbox_tron_approve_failed");return F}catch(K){if(K instanceof $.SwapKitError)throw K;throw new $.SwapKitError("toolbox_tron_approve_failed",{error:K})}}return{approve:nz,broadcastTransaction:w,createTransaction:s,estimateTransactionFee:cz,getAddress:W,getApprovedAmount:e,getBalance:D,getRpcUrl:()=>$.getRPCUrl($.Chain.Tron),isApproved:iz,signAndBroadcastTransaction:oz,signTransaction:r,transfer:m,validateAddress:B}}var wz,bz,gz,$,v,Az,vz=268,Tz=65000,d=25000,fz=345,t="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",BJ="115792089237316195423570985008687907853269984665640564039457584007913129639935";var mz=f(()=>{Wz();Iz();o();wz=require("@noble/hashes/utils.js"),bz=require("@scure/bip32"),gz=require("@scure/bip39"),$=require("@swapkit/helpers"),v=require("ts-pattern"),Az=B});var FJ={};YJ(FJ,{validateTronAddress:()=>Az,getTronToolbox:()=>Ez,getTronPrivateKeyFromMnemonic:()=>hz});module.exports=QJ(FJ);var RJ=f(()=>{mz()});RJ();
|
|
1
|
+
var ez=Object.create;var{getPrototypeOf:zJ,defineProperty:v,getOwnPropertyNames:Zz,getOwnPropertyDescriptor:JJ}=Object,$z=Object.prototype.hasOwnProperty;function Yz(z){return this[z]}var QJ,ZJ,_J=(z,J,Q)=>{var Z=z!=null&&typeof z==="object";if(Z){var Y=J?QJ??=new WeakMap:ZJ??=new WeakMap,q=Y.get(z);if(q)return q}Q=z!=null?ez(zJ(z)):{};let M=J||!z||!z.__esModule?v(Q,"default",{value:z,enumerable:!0}):Q;for(let k of Zz(z))if(!$z.call(M,k))v(M,k,{get:Yz.bind(z,k),enumerable:!0});if(Z)Y.set(z,M);return M},$J=(z)=>{var J=(Qz??=new WeakMap).get(z),Q;if(J)return J;if(J=v({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var Z of Zz(z))if(!$z.call(J,Z))v(J,Z,{get:Yz.bind(z,Z),enumerable:!(Q=JJ(z,Z))||Q.enumerable})}return Qz.set(z,J),J},Qz;var YJ=(z)=>z;function XJ(z,J){this[z]=YJ.bind(null,J)}var jJ=(z,J)=>{for(var Q in J)v(z,Q,{get:J[Q],enumerable:!0,configurable:!0,set:XJ.bind(J,Q)})};var f=(z,J)=>()=>(z&&(J=z(z=0)),J);function u(z,J){let Q=0n,Z=0n,Y=J;while(Y<z.length&&Y-J<10){let q=z[Y++];if(q===void 0)break;if(Q|=BigInt(q&127)<<Z,Z+=7n,(q&128)===0)return[Q,Y]}throw new R.SwapKitError("toolbox_tron_transaction_creation_failed")}function w(z){let J=[],Q=z<0n?z+2n**64n:z;while(Q>=128n)J.push(Number(Q&0x7fn)|128),Q>>=7n;return J.push(Number(Q)),J}function A(z,J,Q){let Z=z.get(J);if(Z)Z.push(Q);else z.set(J,[Q])}function WJ(z){let J=new Map,Q=0;while(Q<z.length){let[Z,Y]=u(z,Q);Q=Y;let q=Number(Z>>3n),M=Number(Z&7n);if(M===y){let[k,H]=u(z,Q);Q=H,A(J,q,{data:new Uint8Array(w(k)),wireType:y})}else if(M===h){let[k,H]=u(z,Q);Q=H;let D=Number(k);if(D<0||Q+D>z.length)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let m=z.slice(Q,Q+D);Q+=D,A(J,q,{data:m,wireType:h})}else if(M===Xz){if(Q+8>z.length)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let k=z.slice(Q,Q+8);Q+=8,A(J,q,{data:k,wireType:Xz})}else if(M===jz){if(Q+4>z.length)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let k=z.slice(Q,Q+4);Q+=4,A(J,q,{data:k,wireType:jz})}else throw new R.SwapKitError("toolbox_tron_transaction_creation_failed")}return J}function OJ(z){let J=[];for(let[q,M]of[...z.entries()].sort(([k],[H])=>k-H))for(let{wireType:k,data:H}of M){let D=BigInt(q<<3|k);if(J.push(new Uint8Array(w(D))),k===h)J.push(new Uint8Array(w(BigInt(H.length))));J.push(H)}let Q=J.reduce((q,M)=>q+M.length,0),Z=new Uint8Array(Q),Y=0;for(let q of J)Z.set(q,Y),Y+=q.length;return Z}function Gz(z,J){if(!z||z.length%2!==0)throw new R.SwapKitError("toolbox_tron_transaction_creation_failed");let Q=S.hexToBytes(z),Z=WJ(Q);if(J.expiration!==void 0)Z.set(qJ,[{data:new Uint8Array(w(BigInt(J.expiration))),wireType:y}]);if(J.data!==void 0)Z.set(GJ,[{data:S.hexToBytes(J.data),wireType:h}]);if(J.fee_limit!==void 0)Z.set(MJ,[{data:new Uint8Array(w(BigInt(J.fee_limit))),wireType:y}]);let Y=OJ(Z),q=S.bytesToHex(Y),M=S.bytesToHex(qz.sha256(Y));return{raw_data_hex:q,txID:M}}var qz,S,R,y=0,Xz=1,h=2,jz=5,qJ=8,GJ=10,MJ=18;var Mz=f(()=>{qz=require("@noble/hashes/sha2.js"),S=require("@noble/hashes/utils.js"),R=require("@swapkit/helpers")});function B(z){if(typeof z!=="string")return!1;try{let J=E.decode(z);return J.length===21&&J[0]===Uz}catch{return!1}}function Cz(z){return N.bytesToHex(E.decode(z))}function CJ(z){return E.decode(z).slice(1)}function kz(z){let J=p.secp256k1.getPublicKey(N.hexToBytes(z),!1),Q=Wz.keccak_256(J.slice(1)).slice(-20),Z=new Uint8Array(21);return Z[0]=Uz,Z.set(Q,1),E.encode(Z)}function Hz({txID:z,privateKey:J}){let Q=p.secp256k1.sign(N.hexToBytes(z),N.hexToBytes(J),{format:"recovered",prehash:!1}),Z=Q[0]??0,Y=N.bytesToHex(Q.slice(1,33)),q=N.bytesToHex(Q.slice(33,65)),M=(Z+27).toString(16).padStart(2,"0");return Y+q+M}function _({txID:z,raw_data_hex:J}){let Q=N.bytesToHex(l.sha256(N.hexToBytes(J)));if(z!==Q)throw new c.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:Q,txID:z})}function kJ(z){return`000000000000000000000000${N.bytesToHex(CJ(z))}`}function HJ(z){let J=typeof z==="bigint"?z:BigInt(z);if(J<0n||J>=UJ)throw new c.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});return J.toString(16).padStart(64,"0")}function T(z){return z.map(({type:J,value:Q})=>J==="address"?kJ(Q):HJ(BigInt(Q))).join("")}function Kz(z){return N.bytesToHex(new TextEncoder().encode(z))}var p,l,Wz,N,Oz,c,E,Uz=65,UJ;var o=f(()=>{p=require("@noble/curves/secp256k1.js"),l=require("@noble/hashes/sha2.js"),Wz=require("@noble/hashes/sha3.js"),N=require("@noble/hashes/utils.js"),Oz=require("@scure/base"),c=require("@swapkit/helpers"),E=Oz.createBase58check(l.sha256),UJ=2n**256n});function Nz(){try{return C.getRPCUrlSync(C.Chain.Tron)}catch{return Lz}}function Bz(){let z=new AbortController,J=setTimeout(()=>z.abort(),BJ);return{cleanup:()=>clearTimeout(J),signal:z.signal}}async function V(z,J){let{signal:Q,cleanup:Z}=Bz();try{let Y=await fetch(`${Nz()}${z}`,{body:JSON.stringify(J),headers:{"Content-Type":"application/json"},method:"POST",signal:Q});if(!Y.ok)throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${Y.status} ${Y.statusText} on ${z}`});return await Y.json()}finally{Z()}}async function Dz(z,J){let{signal:Q,cleanup:Z}=Bz();try{let Y=await fetch(`${J??Nz()}${z}`,{headers:{"Content-Type":"application/json"},signal:Q});if(!Y.ok)throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${Y.status} ${Y.statusText} on ${z}`});return await Y.json()}finally{Z()}}async function Fz(z){if(!B(z))throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:"Invalid address"});try{let J=await Dz(`/v1/accounts/${z}`,Lz);if(!(J.success&&J.data)||J.data.length===0)return;let Q;try{Q=Cz(z).toLowerCase()}catch{Q=z.toLowerCase()}let Z=J.data.find((Y)=>Y.address.toLowerCase()===Q);if(!Z)return;return{balance:Z.balance,trc20:Z.trc20||[]}}catch(J){if(J instanceof C.SwapKitError)throw J;throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:J instanceof Error?J.message:"Unknown error"})}}async function Rz({from:z,to:J,amount:Q}){let Y=await V("/wallet/createtransaction",{amount:Q,owner_address:z,to_address:J,visible:!0});if(!Y.txID||!Y.raw_data_hex||!Y.raw_data)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");let M=Y.raw_data?.contract?.[0]?.parameter?.value;if(M?.to_address!==J||M?.owner_address!==z||M?.amount!==Q)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");return _(Y),Y}async function Vz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:Z,feeLimit:Y,callValue:q=0}){let M=await V("/wallet/triggersmartcontract",{call_value:q,contract_address:J,fee_limit:Y,function_selector:Q,owner_address:z,parameter:Z,visible:!0});if(!M.result.result||!M.transaction?.txID||!M.transaction?.raw_data_hex)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");let H=M.transaction.raw_data?.contract?.[0]?.parameter?.value;if(H?.contract_address!==J||H?.owner_address!==z)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");return _(M.transaction),M.transaction}function Sz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:Z}){return V("/wallet/triggerconstantcontract",{contract_address:J,function_selector:Q,owner_address:z,parameter:Z,visible:!0})}function DJ({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:Z}){return V("/wallet/estimateenergy",{contract_address:J,function_selector:Q,owner_address:z,parameter:Z,visible:!0})}function Pz(z){let J=typeof z==="number"?z:typeof z==="string"?Number(z):Number.NaN;return Number.isFinite(J)&&J>0?J:void 0}async function x(z){try{let{result:J,txid:Q}=await V("/wallet/broadcasttransaction",{raw_data:z.raw_data,raw_data_hex:z.raw_data_hex,signature:z.signature,txID:z.txID,visible:z.visible});if(!J||!Q)throw new C.SwapKitError("toolbox_tron_token_transfer_failed");return Q}catch(J){throw new C.SwapKitError("toolbox_tron_broadcast_failed",{error:J})}}async function b(){let z={};try{let{chainParameter:J}=await Dz("/wallet/getchainparameters");for(let Q of J)z[Q.key]=Q.value}catch(J){C.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${J instanceof Error?J.message:J}`})}return{bandwidthFee:z.getTransactionFee??KJ,createAccountFee:z.getCreateNewAccountFeeInSystemContract??z.getCreateAccountFee??PJ,energyFee:z.getEnergyFee??LJ,memoFee:z.getMemoFee??NJ}}async function i(z){try{let J=await V("/wallet/getaccountresource",{address:z,visible:!0});return{bandwidth:{free:(J.freeNetLimit??600)-(J.freeNetUsed??0),total:J.NetLimit??0,used:J.NetUsed??0},energy:{total:J.EnergyLimit??0,used:J.EnergyUsed??0}}}catch(J){return C.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${J instanceof Error?J.message:J}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function g(z){try{let J=await V("/wallet/getaccount",{address:z,visible:!0});return J&&Object.keys(J).length>0}catch{return!1}}async function n(z){try{let J=await DJ({...z,ownerAddress:z.sender}),Q=J.energy_required??J.energyRequired;if(J.result&&!J.result.result)throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:J.result.message||"estimateenergy failed"});if(Q!==void 0){let Z=Pz(Q);if(Z!==void 0)return Z;throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(J){C.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${J instanceof Error?J.message:J}`})}try{let{energy_used:J}=await Sz({...z,ownerAddress:z.sender}),Q=Pz(J);if(Q!==void 0)return Q;throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(J){throw C.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${J instanceof Error?J.message:J}`}),new C.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${J instanceof Error?J.message:J}`})}}async function _z({assetAddress:z,owner:J,spender:Q}){let Z=T([{type:"address",value:J},{type:"address",value:Q}]),q=(await Sz({contractAddress:z,functionSelector:"allowance(address,address)",ownerAddress:Q,parameter:Z})).constant_result?.[0];if(!q)return 0n;try{return BigInt(`0x${q}`)}catch{return 0n}}var C,Lz="https://api.trongrid.io",KJ=1000,PJ=1e6,LJ=420,NJ=1e6,BJ=30000;var Tz=f(()=>{o();C=require("@swapkit/helpers")});function yz({phrase:z,derivationPath:J}){let Q=bz.HDKey.fromMasterSeed(gz.mnemonicToSeedSync(z)).derive(J);if(!Q.privateKey)throw new $.SwapKitError("toolbox_tron_no_signer");return xz.bytesToHex(Q.privateKey)}function hz(z,J){return{...z,value:String(J)}}function Ez(z,J){if(!J)return z;return{...z,data:J.startsWith("0x")?J:`0x${J}`}}function mz({phrase:z,derivationPath:J,index:Q}){let Z=J||$.derivationPathToString($.updateDerivationPath($.NetworkDerivationPath[$.Chain.Tron],{index:Q||0}));return yz({derivationPath:Z,phrase:z})}function RJ({phrase:z,derivationPath:J}){let Q=yz({derivationPath:J,phrase:z}),Z=kz(Q);return{getAddress:()=>Promise.resolve(Z),signTransaction:(Y)=>{_(Y);let q=Hz({privateKey:Q,txID:Y.txID});return Promise.resolve({...Y,signature:[q]})}}}function wz({transaction:z,memo:J,expiration:Q,feeLimit:Z}){let Y={},q={};if(Z!==void 0&&z.raw_data)Y.fee_limit=Z,q.fee_limit=Z;if(J){let H=J.startsWith("0x")?J.replace(/^0x/,""):Kz(J);Y.data=H,q.data=H}if(Q){let H=z.raw_data.expiration+Q*1000;Y.expiration=H,q.expiration=H}if(Object.keys(Y).length===0)return z;let{raw_data_hex:M,txID:k}=Gz(z.raw_data_hex,Y);return{...z,raw_data:{...z.raw_data,...q},raw_data_hex:M,txID:k}}function uz(z={}){let J="index"in z?z.index||0:0,Q=$.derivationPathToString("derivationPath"in z&&z.derivationPath?z.derivationPath:$.updateDerivationPath($.NetworkDerivationPath[$.Chain.Tron],{index:J})),Z,Y=!1;function q(){if(Y)return Promise.resolve(Z);return Z=I.match(z).with({phrase:I.P.string},({phrase:X})=>RJ({derivationPath:Q,phrase:X})).with({signer:I.P.not(I.P.nullish)},({signer:X})=>X).otherwise(()=>{return}),Y=!0,Promise.resolve(Z)}async function M(){let X=await q();if(!X)throw new $.SwapKitError("toolbox_tron_no_signer");return X.getAddress()}async function k(X,j){let W=X||vz,G=j??(await b()).energyFee,U=W*G,O=Math.ceil(U*1.5);return Math.min(Math.max(O,1e7),150000000)}async function H({contractAddress:X,functionSelector:j,parameter:W,sender:G,memo:U,expiration:O,extraEnergy:P=0}){let K=await n({contractAddress:X,functionSelector:j,parameter:W,sender:G}),L=await k(K+P),F=await Vz({contractAddress:X,feeLimit:L,functionSelector:j,ownerAddress:G,parameter:W});return wz({expiration:O,feeLimit:L,memo:U,transaction:F})}async function D(X){if(!B(X))return[$.AssetValue.from({chain:$.Chain.Tron})];try{let j=await Fz(X);if(!j)return[$.AssetValue.from({chain:$.Chain.Tron})];let W=[$.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:6,value:String(j.balance)})],G=j.trc20?.find((U)=>(t in U));if(G){let U=G[t];W.push($.AssetValue.from({asset:`TRON.USDT-${t}`,fromBaseDecimal:6,value:U}))}return W}catch(j){return $.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${j instanceof Error?j.message:j}`}),[$.AssetValue.from({chain:$.Chain.Tron})]}}async function m({recipient:X,assetValue:j,memo:W,expiration:G}){if(!B(X))throw new $.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let U=await q();if(!U)throw new $.SwapKitError("toolbox_tron_no_signer");try{let O=await M(),P=await s({assetValue:j,expiration:G,memo:W,recipient:X,sender:O}),K=await U.signTransaction(P),L=await x(K);if(!L)throw new $.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return L}catch(O){throw new $.SwapKitError("toolbox_tron_token_transfer_failed",{message:O instanceof Error?O.message:String(O)})}}function a({requiredBandwidth:X,resources:j,feePerUnit:W}){let G=Math.max(0,j.free+j.total-j.used);return X>G?(X-G)*W:0}async function lz({memo:X,recipient:j,senderAddress:W}){let[G,U,O]=await Promise.all([b(),g(j),i(W)]),P=U?0:G.createAccountFee,K=a({feePerUnit:G.bandwidthFee,requiredBandwidth:Iz,resources:O.bandwidth}),L=X?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:P+K+L})}async function cz({assetValue:X,memo:j,recipient:W,senderAddress:G}){let U=X.address;if(!U)throw new $.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:X.toString()});let[O,P,K,L]=await Promise.all([b(),g(W),i(G),n({contractAddress:U,functionSelector:"transfer(address,uint256)",parameter:T([{type:"address",value:W},{type:"uint256",value:X.getBaseValue("string")}]),sender:G})]),zz=L+(P?0:d),az=a({feePerUnit:O.bandwidthFee,requiredBandwidth:fz,resources:K.bandwidth}),Jz=Math.max(0,K.energy.total-K.energy.used),sz=zz>Jz?(zz-Jz)*O.energyFee:0,rz=j?O.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:az+sz+rz})}async function oz({assetValue:X,memo:j,recipient:W}){let[G,U]=await Promise.all([b(),g(W)]);if(X.isGasAsset){let L=U?0:G.createAccountFee,F=j?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:L+Iz*G.bandwidthFee+F})}let P=await k(vz+(U?0:d),G.energyFee),K=j?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:P+fz*G.bandwidthFee+K})}async function iz({assetValue:X,memo:j,recipient:W,sender:G}){let U=await q();try{let O=G?G:U?await M():void 0;if(!O)return oz({assetValue:X,memo:j,recipient:W});return X.isGasAsset?lz({memo:j,recipient:W,senderAddress:O}):cz({assetValue:X,memo:j,recipient:W,senderAddress:O})}catch(O){throw $.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${O instanceof Error?O.message:O}`}),new $.SwapKitError("toolbox_fee_estimation_failed",{chain:$.Chain.Tron,error:O})}}async function s({recipient:X,assetValue:j,memo:W,sender:G,expiration:U}){if(!B(X)||!B(G))throw new $.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(j.isGasAsset){let K=await Rz({amount:j.getBaseValue("number"),from:G,to:X});return wz({expiration:U,memo:W,transaction:K})}let O=j.address;if(!O)throw new $.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:j.toString()});let P=await g(X);return H({contractAddress:O,expiration:U,extraEnergy:P?0:d,functionSelector:"transfer(address,uint256)",memo:W,parameter:T([{type:"address",value:X},{type:"uint256",value:j.getBaseValue("string")}]),sender:G})}async function r(X){_(X);let j=await q();if(!j)throw new $.SwapKitError("toolbox_tron_no_signer");return j.signTransaction(X)}async function nz(X){let j=await r(X);return x(j)}function e({assetAddress:X,spenderAddress:j,from:W}){return _z({assetAddress:X,owner:W,spender:j})}async function dz({assetAddress:X,spenderAddress:j,from:W,amount:G}){let U=await e({assetAddress:X,from:W,spenderAddress:j});if(!G)return U>0n;return U>=BigInt(G)}async function tz({assetAddress:X,spenderAddress:j,amount:W,from:G}){if(!B(X)||!B(j))throw new $.SwapKitError("toolbox_tron_approve_failed");let U=await q();if(!U)throw new $.SwapKitError("toolbox_tron_no_signer");let O=G||await M(),P=W!==void 0?BigInt(W).toString():FJ;try{let K=await H({contractAddress:X,functionSelector:"approve(address,uint256)",parameter:T([{type:"address",value:j},{type:"uint256",value:P}]),sender:O}),L=await U.signTransaction(K),F=await x(L);if(!F)throw new $.SwapKitError("toolbox_tron_approve_failed");return F}catch(K){if(K instanceof $.SwapKitError)throw K;throw new $.SwapKitError("toolbox_tron_approve_failed",{error:K})}}return{approve:tz,broadcastTransaction:x,createTransaction:s,estimateTransactionFee:iz,getAddress:M,getApprovedAmount:e,getBalance:D,getRpcUrl:()=>$.getRPCUrl($.Chain.Tron),isApproved:dz,signAndBroadcastTransaction:nz,signTransaction:r,transfer:m,validateAddress:B}}var xz,bz,gz,$,I,Az,Iz=268,vz=65000,d=25000,fz=345,t="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",FJ="115792089237316195423570985008687907853269984665640564039457584007913129639935";var pz=f(()=>{Mz();Tz();o();xz=require("@noble/hashes/utils.js"),bz=require("@scure/bip32"),gz=require("@scure/bip39"),$=require("@swapkit/helpers"),I=require("ts-pattern"),Az=B});var VJ={};jJ(VJ,{withTronTransactionValue:()=>hz,withTronTransactionData:()=>Ez,validateTronAddress:()=>Az,getTronToolbox:()=>uz,getTronPrivateKeyFromMnemonic:()=>mz});module.exports=$J(VJ);var SJ=f(()=>{pz()});SJ();
|
package/dist/src/tron/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../../chunk-ntbvmmch.js";import{bytesToHex as qJ}from"@noble/hashes/utils.js";import{HDKey as GJ}from"@scure/bip32";import{mnemonicToSeedSync as WJ}from"@scure/bip39";import{AssetValue as D,BaseDecimal as m,Chain as N,derivationPathToString as Iz,getRPCUrl as MJ,NetworkDerivationPath as vz,SwapKitError as H,updateDerivationPath as Tz,warnOnce as Fz}from"@swapkit/helpers";import{match as OJ,P as o}from"ts-pattern";import{sha256 as pz}from"@noble/hashes/sha2.js";import{bytesToHex as zz,hexToBytes as Jz}from"@noble/hashes/utils.js";import{SwapKitError as S}from"@swapkit/helpers";var g=0,Qz=1,A=2,Zz=5,lz=8,cz=10,oz=18;function p(J,z){let Q=0n,Z=0n,$=z;while($<J.length&&$-z<10){let j=J[$++];if(j===void 0)break;if(Q|=BigInt(j&127)<<Z,Z+=7n,(j&128)===0)return[Q,$]}throw new S("toolbox_tron_transaction_creation_failed")}function T(J){let z=[],Q=J<0n?J+2n**64n:J;while(Q>=128n)z.push(Number(Q&0x7fn)|128),Q>>=7n;return z.push(Number(Q)),z}function b(J,z,Q){let Z=J.get(z);if(Z)Z.push(Q);else J.set(z,[Q])}function iz(J){let z=new Map,Q=0;while(Q<J.length){let[Z,$]=p(J,Q);Q=$;let j=Number(Z>>3n),W=Number(Z&7n);if(W===g){let[k,U]=p(J,Q);Q=U,b(z,j,{data:new Uint8Array(T(k)),wireType:g})}else if(W===A){let[k,U]=p(J,Q);Q=U;let F=Number(k);if(F<0||Q+F>J.length)throw new S("toolbox_tron_transaction_creation_failed");let u=J.slice(Q,Q+F);Q+=F,b(z,j,{data:u,wireType:A})}else if(W===Qz){if(Q+8>J.length)throw new S("toolbox_tron_transaction_creation_failed");let k=J.slice(Q,Q+8);Q+=8,b(z,j,{data:k,wireType:Qz})}else if(W===Zz){if(Q+4>J.length)throw new S("toolbox_tron_transaction_creation_failed");let k=J.slice(Q,Q+4);Q+=4,b(z,j,{data:k,wireType:Zz})}else throw new S("toolbox_tron_transaction_creation_failed")}return z}function nz(J){let z=[];for(let[j,W]of[...J.entries()].sort(([k],[U])=>k-U))for(let{wireType:k,data:U}of W){let F=BigInt(j<<3|k);if(z.push(new Uint8Array(T(F))),k===A)z.push(new Uint8Array(T(BigInt(U.length))));z.push(U)}let Q=z.reduce((j,W)=>j+W.length,0),Z=new Uint8Array(Q),$=0;for(let j of z)Z.set(j,$),$+=j.length;return Z}function $z(J,z){if(!J||J.length%2!==0)throw new S("toolbox_tron_transaction_creation_failed");let Q=Jz(J),Z=iz(Q);if(z.expiration!==void 0)Z.set(lz,[{data:new Uint8Array(T(BigInt(z.expiration))),wireType:g}]);if(z.data!==void 0)Z.set(cz,[{data:Jz(z.data),wireType:A}]);if(z.fee_limit!==void 0)Z.set(oz,[{data:new Uint8Array(T(BigInt(z.fee_limit))),wireType:g}]);let $=nz(Z),j=zz($),W=zz(pz($));return{raw_data_hex:j,txID:W}}import{Chain as zJ,getRPCUrlSync as JJ,SwapKitError as K,warnOnce as E}from"@swapkit/helpers";import{secp256k1 as Yz}from"@noble/curves/secp256k1.js";import{sha256 as Xz}from"@noble/hashes/sha2.js";import{keccak_256 as dz}from"@noble/hashes/sha3.js";import{bytesToHex as _,hexToBytes as y}from"@noble/hashes/utils.js";import{createBase58check as tz}from"@scure/base";import{SwapKitError as jz}from"@swapkit/helpers";var h=tz(Xz),qz=65,az=2n**256n;function B(J){if(typeof J!=="string")return!1;try{let z=h.decode(J);return z.length===21&&z[0]===qz}catch{return!1}}function Gz(J){return _(h.decode(J))}function sz(J){return h.decode(J).slice(1)}function Wz(J){let z=Yz.getPublicKey(y(J),!1),Q=dz(z.slice(1)).slice(-20),Z=new Uint8Array(21);return Z[0]=qz,Z.set(Q,1),h.encode(Z)}function Mz({txID:J,privateKey:z}){let Q=Yz.sign(y(J),y(z),{format:"recovered",prehash:!1}),Z=Q[0]??0,$=_(Q.slice(1,33)),j=_(Q.slice(33,65)),W=(Z+27).toString(16).padStart(2,"0");return $+j+W}function I({txID:J,raw_data_hex:z}){let Q=_(Xz(y(z)));if(J!==Q)throw new jz("toolbox_tron_invalid_transaction_integrity",{expected:Q,txID:J})}function rz(J){return`000000000000000000000000${_(sz(J))}`}function ez(J){let z=typeof J==="bigint"?J:BigInt(J);if(z<0n||z>=az)throw new jz("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});return z.toString(16).padStart(64,"0")}function v(J){return J.map(({type:z,value:Q})=>z==="address"?rz(Q):ez(BigInt(Q))).join("")}function Oz(J){return _(new TextEncoder().encode(J))}var Cz="https://api.trongrid.io",QJ=1000,ZJ=1e6,$J=420,YJ=1e6,XJ=30000;function kz(){try{return JJ(zJ.Tron)}catch{return Cz}}function Hz(){let J=new AbortController,z=setTimeout(()=>J.abort(),XJ);return{cleanup:()=>clearTimeout(z),signal:J.signal}}async function V(J,z){let{signal:Q,cleanup:Z}=Hz();try{let $=await fetch(`${kz()}${J}`,{body:JSON.stringify(z),headers:{"Content-Type":"application/json"},method:"POST",signal:Q});if(!$.ok)throw new K("toolbox_tron_trongrid_api_error",{message:`${$.status} ${$.statusText} on ${J}`});return await $.json()}finally{Z()}}async function Kz(J,z){let{signal:Q,cleanup:Z}=Hz();try{let $=await fetch(`${z??kz()}${J}`,{headers:{"Content-Type":"application/json"},signal:Q});if(!$.ok)throw new K("toolbox_tron_trongrid_api_error",{message:`${$.status} ${$.statusText} on ${J}`});return await $.json()}finally{Z()}}async function Pz(J){if(!B(J))throw new K("toolbox_tron_trongrid_api_error",{address:J,message:"Invalid address"});try{let z=await Kz(`/v1/accounts/${J}`,Cz);if(!(z.success&&z.data)||z.data.length===0)return;let Q;try{Q=Gz(J).toLowerCase()}catch{Q=J.toLowerCase()}let Z=z.data.find(($)=>$.address.toLowerCase()===Q);if(!Z)return;return{balance:Z.balance,trc20:Z.trc20||[]}}catch(z){if(z instanceof K)throw z;throw new K("toolbox_tron_trongrid_api_error",{address:J,message:z instanceof Error?z.message:"Unknown error"})}}async function Lz({from:J,to:z,amount:Q}){let $=await V("/wallet/createtransaction",{amount:Q,owner_address:J,to_address:z,visible:!0});if(!$.txID||!$.raw_data_hex||!$.raw_data)throw new K("toolbox_tron_transaction_creation_failed");let W=$.raw_data?.contract?.[0]?.parameter?.value;if(W?.to_address!==z||W?.owner_address!==J||W?.amount!==Q)throw new K("toolbox_tron_transaction_creation_failed");return I($),$}async function Nz({ownerAddress:J,contractAddress:z,functionSelector:Q,parameter:Z,feeLimit:$,callValue:j=0}){let W=await V("/wallet/triggersmartcontract",{call_value:j,contract_address:z,fee_limit:$,function_selector:Q,owner_address:J,parameter:Z,visible:!0});if(!W.result.result||!W.transaction?.txID||!W.transaction?.raw_data_hex)throw new K("toolbox_tron_transaction_creation_failed");let U=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(U?.contract_address!==z||U?.owner_address!==J)throw new K("toolbox_tron_transaction_creation_failed");return I(W.transaction),W.transaction}function Bz({ownerAddress:J,contractAddress:z,functionSelector:Q,parameter:Z}){return V("/wallet/triggerconstantcontract",{contract_address:z,function_selector:Q,owner_address:J,parameter:Z,visible:!0})}function jJ({ownerAddress:J,contractAddress:z,functionSelector:Q,parameter:Z}){return V("/wallet/estimateenergy",{contract_address:z,function_selector:Q,owner_address:J,parameter:Z,visible:!0})}function Uz(J){let z=typeof J==="number"?J:typeof J==="string"?Number(J):Number.NaN;return Number.isFinite(z)&&z>0?z:void 0}async function f(J){try{let{result:z,txid:Q}=await V("/wallet/broadcasttransaction",{raw_data:J.raw_data,raw_data_hex:J.raw_data_hex,signature:J.signature,txID:J.txID,visible:J.visible});if(!z||!Q)throw new K("toolbox_tron_token_transfer_failed");return Q}catch(z){throw new K("toolbox_tron_broadcast_failed",{error:z})}}async function x(){let J={};try{let{chainParameter:z}=await Kz("/wallet/getchainparameters");for(let Q of z)J[Q.key]=Q.value}catch(z){E({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${z instanceof Error?z.message:z}`})}return{bandwidthFee:J.getTransactionFee??QJ,createAccountFee:J.getCreateNewAccountFeeInSystemContract??J.getCreateAccountFee??ZJ,energyFee:J.getEnergyFee??$J,memoFee:J.getMemoFee??YJ}}async function l(J){try{let z=await V("/wallet/getaccountresource",{address:J,visible:!0});return{bandwidth:{free:(z.freeNetLimit??600)-(z.freeNetUsed??0),total:z.NetLimit??0,used:z.NetUsed??0},energy:{total:z.EnergyLimit??0,used:z.EnergyUsed??0}}}catch(z){return E({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${z instanceof Error?z.message:z}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function w(J){try{let z=await V("/wallet/getaccount",{address:J,visible:!0});return z&&Object.keys(z).length>0}catch{return!1}}async function c(J){try{let z=await jJ({...J,ownerAddress:J.sender}),Q=z.energy_required??z.energyRequired;if(z.result&&!z.result.result)throw new K("toolbox_tron_trongrid_api_error",{message:z.result.message||"estimateenergy failed"});if(Q!==void 0){let Z=Uz(Q);if(Z!==void 0)return Z;throw new K("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(z){E({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${z instanceof Error?z.message:z}`})}try{let{energy_used:z}=await Bz({...J,ownerAddress:J.sender}),Q=Uz(z);if(Q!==void 0)return Q;throw new K("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(z){throw E({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${z instanceof Error?z.message:z}`}),new K("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${z instanceof Error?z.message:z}`})}}async function Dz({assetAddress:J,owner:z,spender:Q}){let Z=v([{type:"address",value:z},{type:"address",value:Q}]),j=(await Bz({contractAddress:J,functionSelector:"allowance(address,address)",ownerAddress:Q,parameter:Z})).constant_result?.[0];if(!j)return 0n;try{return BigInt(`0x${j}`)}catch{return 0n}}var UJ=B,Rz=268,Vz=65000,i=25000,Sz=345,n="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",CJ="115792089237316195423570985008687907853269984665640564039457584007913129639935";function fz({phrase:J,derivationPath:z}){let Q=GJ.fromMasterSeed(WJ(J)).derive(z);if(!Q.privateKey)throw new H("toolbox_tron_no_signer");return qJ(Q.privateKey)}function kJ({phrase:J,derivationPath:z,index:Q}){let Z=z||Iz(Tz(vz[N.Tron],{index:Q||0}));return fz({derivationPath:Z,phrase:J})}function HJ({phrase:J,derivationPath:z}){let Q=fz({derivationPath:z,phrase:J}),Z=Wz(Q);return{getAddress:()=>Promise.resolve(Z),signTransaction:($)=>{I($);let j=Mz({privateKey:Q,txID:$.txID});return Promise.resolve({...$,signature:[j]})}}}function _z({transaction:J,memo:z,expiration:Q,feeLimit:Z}){let $={},j={};if(Z!==void 0&&J.raw_data)$.fee_limit=Z,j.fee_limit=Z;if(z){let U=z.startsWith("0x")?z.replace(/^0x/,""):Oz(z);$.data=U,j.data=U}if(Q){let U=J.raw_data.expiration+Q*1000;$.expiration=U,j.expiration=U}if(Object.keys($).length===0)return J;let{raw_data_hex:W,txID:k}=$z(J.raw_data_hex,$);return{...J,raw_data:{...J.raw_data,...j},raw_data_hex:W,txID:k}}function KJ(J={}){let z="index"in J?J.index||0:0,Q=Iz("derivationPath"in J&&J.derivationPath?J.derivationPath:Tz(vz[N.Tron],{index:z})),Z,$=!1;function j(){if($)return Promise.resolve(Z);return Z=OJ(J).with({phrase:o.string},({phrase:Y})=>HJ({derivationPath:Q,phrase:Y})).with({signer:o.not(o.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),$=!0,Promise.resolve(Z)}async function W(){let Y=await j();if(!Y)throw new H("toolbox_tron_no_signer");return Y.getAddress()}async function k(Y,X){let G=Y||Vz,q=X??(await x()).energyFee,O=G*q,M=Math.ceil(O*1.5);return Math.min(Math.max(M,1e7),150000000)}async function U({contractAddress:Y,functionSelector:X,parameter:G,sender:q,memo:O,expiration:M,extraEnergy:P=0}){let C=await c({contractAddress:Y,functionSelector:X,parameter:G,sender:q}),L=await k(C+P),R=await Nz({contractAddress:Y,feeLimit:L,functionSelector:X,ownerAddress:q,parameter:G});return _z({expiration:M,feeLimit:L,memo:O,transaction:R})}async function F(Y){if(!B(Y))return[D.from({chain:N.Tron})];try{let X=await Pz(Y);if(!X)return[D.from({chain:N.Tron})];let G=[D.from({chain:N.Tron,fromBaseDecimal:6,value:String(X.balance)})],q=X.trc20?.find((O)=>(n in O));if(q){let O=q[n];G.push(D.from({asset:`TRON.USDT-${n}`,fromBaseDecimal:6,value:O}))}return G}catch(X){return Fz({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${X instanceof Error?X.message:X}`}),[D.from({chain:N.Tron})]}}async function u({recipient:Y,assetValue:X,memo:G,expiration:q}){if(!B(Y))throw new H("toolbox_tron_token_transfer_failed",{message:"invalid address"});let O=await j();if(!O)throw new H("toolbox_tron_no_signer");try{let M=await W(),P=await t({assetValue:X,expiration:q,memo:G,recipient:Y,sender:M}),C=await O.signTransaction(P),L=await f(C);if(!L)throw new H("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return L}catch(M){throw new H("toolbox_tron_token_transfer_failed",{message:M instanceof Error?M.message:String(M)})}}function d({requiredBandwidth:Y,resources:X,feePerUnit:G}){let q=Math.max(0,X.free+X.total-X.used);return Y>q?(Y-q)*G:0}async function xz({memo:Y,recipient:X,senderAddress:G}){let[q,O,M]=await Promise.all([x(),w(X),l(G)]),P=O?0:q.createAccountFee,C=d({feePerUnit:q.bandwidthFee,requiredBandwidth:Rz,resources:M.bandwidth}),L=Y?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:m.TRON,value:P+C+L})}async function wz({assetValue:Y,memo:X,recipient:G,senderAddress:q}){let O=Y.address;if(!O)throw new H("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[M,P,C,L]=await Promise.all([x(),w(G),l(q),c({contractAddress:O,functionSelector:"transfer(address,uint256)",parameter:v([{type:"address",value:G},{type:"uint256",value:Y.getBaseValue("string")}]),sender:q})]),r=L+(P?0:i),Ez=d({feePerUnit:M.bandwidthFee,requiredBandwidth:Sz,resources:C.bandwidth}),e=Math.max(0,C.energy.total-C.energy.used),mz=r>e?(r-e)*M.energyFee:0,uz=X?M.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:m.TRON,value:Ez+mz+uz})}async function bz({assetValue:Y,memo:X,recipient:G}){let[q,O]=await Promise.all([x(),w(G)]);if(Y.isGasAsset){let L=O?0:q.createAccountFee,R=X?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:m.TRON,value:L+Rz*q.bandwidthFee+R})}let P=await k(Vz+(O?0:i),q.energyFee),C=X?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:m.TRON,value:P+Sz*q.bandwidthFee+C})}async function gz({assetValue:Y,memo:X,recipient:G,sender:q}){let O=await j();try{let M=q?q:O?await W():void 0;if(!M)return bz({assetValue:Y,memo:X,recipient:G});return Y.isGasAsset?xz({memo:X,recipient:G,senderAddress:M}):wz({assetValue:Y,memo:X,recipient:G,senderAddress:M})}catch(M){throw Fz({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${M instanceof Error?M.message:M}`}),new H("toolbox_fee_estimation_failed",{chain:N.Tron,error:M})}}async function t({recipient:Y,assetValue:X,memo:G,sender:q,expiration:O}){if(!B(Y)||!B(q))throw new H("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(X.isGasAsset){let C=await Lz({amount:X.getBaseValue("number"),from:q,to:Y});return _z({expiration:O,memo:G,transaction:C})}let M=X.address;if(!M)throw new H("toolbox_tron_invalid_token_identifier",{identifier:X.toString()});let P=await w(Y);return U({contractAddress:M,expiration:O,extraEnergy:P?0:i,functionSelector:"transfer(address,uint256)",memo:G,parameter:v([{type:"address",value:Y},{type:"uint256",value:X.getBaseValue("string")}]),sender:q})}async function a(Y){I(Y);let X=await j();if(!X)throw new H("toolbox_tron_no_signer");return X.signTransaction(Y)}async function Az(Y){let X=await a(Y);return f(X)}function s({assetAddress:Y,spenderAddress:X,from:G}){return Dz({assetAddress:Y,owner:G,spender:X})}async function yz({assetAddress:Y,spenderAddress:X,from:G,amount:q}){let O=await s({assetAddress:Y,from:G,spenderAddress:X});if(!q)return O>0n;return O>=BigInt(q)}async function hz({assetAddress:Y,spenderAddress:X,amount:G,from:q}){if(!B(Y)||!B(X))throw new H("toolbox_tron_approve_failed");let O=await j();if(!O)throw new H("toolbox_tron_no_signer");let M=q||await W(),P=G!==void 0?BigInt(G).toString():CJ;try{let C=await U({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:v([{type:"address",value:X},{type:"uint256",value:P}]),sender:M}),L=await O.signTransaction(C),R=await f(L);if(!R)throw new H("toolbox_tron_approve_failed");return R}catch(C){if(C instanceof H)throw C;throw new H("toolbox_tron_approve_failed",{error:C})}}return{approve:hz,broadcastTransaction:f,createTransaction:t,estimateTransactionFee:gz,getAddress:W,getApprovedAmount:s,getBalance:F,getRpcUrl:()=>MJ(N.Tron),isApproved:yz,signAndBroadcastTransaction:Az,signTransaction:a,transfer:u,validateAddress:B}}export{UJ as validateTronAddress,KJ as getTronToolbox,kJ as getTronPrivateKeyFromMnemonic};
|
|
1
|
+
import"../../chunk-ntbvmmch.js";import{bytesToHex as qJ}from"@noble/hashes/utils.js";import{HDKey as GJ}from"@scure/bip32";import{mnemonicToSeedSync as MJ}from"@scure/bip39";import{AssetValue as D,BaseDecimal as m,Chain as N,derivationPathToString as Tz,getRPCUrl as WJ,NetworkDerivationPath as Iz,SwapKitError as H,updateDerivationPath as vz,warnOnce as Fz}from"@swapkit/helpers";import{match as OJ,P as o}from"ts-pattern";import{sha256 as pz}from"@noble/hashes/sha2.js";import{bytesToHex as zz,hexToBytes as Jz}from"@noble/hashes/utils.js";import{SwapKitError as S}from"@swapkit/helpers";var g=0,Qz=1,A=2,Zz=5,lz=8,cz=10,oz=18;function p(J,z){let Q=0n,Z=0n,$=z;while($<J.length&&$-z<10){let j=J[$++];if(j===void 0)break;if(Q|=BigInt(j&127)<<Z,Z+=7n,(j&128)===0)return[Q,$]}throw new S("toolbox_tron_transaction_creation_failed")}function v(J){let z=[],Q=J<0n?J+2n**64n:J;while(Q>=128n)z.push(Number(Q&0x7fn)|128),Q>>=7n;return z.push(Number(Q)),z}function b(J,z,Q){let Z=J.get(z);if(Z)Z.push(Q);else J.set(z,[Q])}function iz(J){let z=new Map,Q=0;while(Q<J.length){let[Z,$]=p(J,Q);Q=$;let j=Number(Z>>3n),M=Number(Z&7n);if(M===g){let[k,U]=p(J,Q);Q=U,b(z,j,{data:new Uint8Array(v(k)),wireType:g})}else if(M===A){let[k,U]=p(J,Q);Q=U;let F=Number(k);if(F<0||Q+F>J.length)throw new S("toolbox_tron_transaction_creation_failed");let u=J.slice(Q,Q+F);Q+=F,b(z,j,{data:u,wireType:A})}else if(M===Qz){if(Q+8>J.length)throw new S("toolbox_tron_transaction_creation_failed");let k=J.slice(Q,Q+8);Q+=8,b(z,j,{data:k,wireType:Qz})}else if(M===Zz){if(Q+4>J.length)throw new S("toolbox_tron_transaction_creation_failed");let k=J.slice(Q,Q+4);Q+=4,b(z,j,{data:k,wireType:Zz})}else throw new S("toolbox_tron_transaction_creation_failed")}return z}function nz(J){let z=[];for(let[j,M]of[...J.entries()].sort(([k],[U])=>k-U))for(let{wireType:k,data:U}of M){let F=BigInt(j<<3|k);if(z.push(new Uint8Array(v(F))),k===A)z.push(new Uint8Array(v(BigInt(U.length))));z.push(U)}let Q=z.reduce((j,M)=>j+M.length,0),Z=new Uint8Array(Q),$=0;for(let j of z)Z.set(j,$),$+=j.length;return Z}function $z(J,z){if(!J||J.length%2!==0)throw new S("toolbox_tron_transaction_creation_failed");let Q=Jz(J),Z=iz(Q);if(z.expiration!==void 0)Z.set(lz,[{data:new Uint8Array(v(BigInt(z.expiration))),wireType:g}]);if(z.data!==void 0)Z.set(cz,[{data:Jz(z.data),wireType:A}]);if(z.fee_limit!==void 0)Z.set(oz,[{data:new Uint8Array(v(BigInt(z.fee_limit))),wireType:g}]);let $=nz(Z),j=zz($),M=zz(pz($));return{raw_data_hex:j,txID:M}}import{Chain as zJ,getRPCUrlSync as JJ,SwapKitError as K,warnOnce as E}from"@swapkit/helpers";import{secp256k1 as Yz}from"@noble/curves/secp256k1.js";import{sha256 as Xz}from"@noble/hashes/sha2.js";import{keccak_256 as dz}from"@noble/hashes/sha3.js";import{bytesToHex as _,hexToBytes as y}from"@noble/hashes/utils.js";import{createBase58check as tz}from"@scure/base";import{SwapKitError as jz}from"@swapkit/helpers";var h=tz(Xz),qz=65,az=2n**256n;function B(J){if(typeof J!=="string")return!1;try{let z=h.decode(J);return z.length===21&&z[0]===qz}catch{return!1}}function Gz(J){return _(h.decode(J))}function sz(J){return h.decode(J).slice(1)}function Mz(J){let z=Yz.getPublicKey(y(J),!1),Q=dz(z.slice(1)).slice(-20),Z=new Uint8Array(21);return Z[0]=qz,Z.set(Q,1),h.encode(Z)}function Wz({txID:J,privateKey:z}){let Q=Yz.sign(y(J),y(z),{format:"recovered",prehash:!1}),Z=Q[0]??0,$=_(Q.slice(1,33)),j=_(Q.slice(33,65)),M=(Z+27).toString(16).padStart(2,"0");return $+j+M}function T({txID:J,raw_data_hex:z}){let Q=_(Xz(y(z)));if(J!==Q)throw new jz("toolbox_tron_invalid_transaction_integrity",{expected:Q,txID:J})}function rz(J){return`000000000000000000000000${_(sz(J))}`}function ez(J){let z=typeof J==="bigint"?J:BigInt(J);if(z<0n||z>=az)throw new jz("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});return z.toString(16).padStart(64,"0")}function I(J){return J.map(({type:z,value:Q})=>z==="address"?rz(Q):ez(BigInt(Q))).join("")}function Oz(J){return _(new TextEncoder().encode(J))}var Cz="https://api.trongrid.io",QJ=1000,ZJ=1e6,$J=420,YJ=1e6,XJ=30000;function kz(){try{return JJ(zJ.Tron)}catch{return Cz}}function Hz(){let J=new AbortController,z=setTimeout(()=>J.abort(),XJ);return{cleanup:()=>clearTimeout(z),signal:J.signal}}async function V(J,z){let{signal:Q,cleanup:Z}=Hz();try{let $=await fetch(`${kz()}${J}`,{body:JSON.stringify(z),headers:{"Content-Type":"application/json"},method:"POST",signal:Q});if(!$.ok)throw new K("toolbox_tron_trongrid_api_error",{message:`${$.status} ${$.statusText} on ${J}`});return await $.json()}finally{Z()}}async function Kz(J,z){let{signal:Q,cleanup:Z}=Hz();try{let $=await fetch(`${z??kz()}${J}`,{headers:{"Content-Type":"application/json"},signal:Q});if(!$.ok)throw new K("toolbox_tron_trongrid_api_error",{message:`${$.status} ${$.statusText} on ${J}`});return await $.json()}finally{Z()}}async function Pz(J){if(!B(J))throw new K("toolbox_tron_trongrid_api_error",{address:J,message:"Invalid address"});try{let z=await Kz(`/v1/accounts/${J}`,Cz);if(!(z.success&&z.data)||z.data.length===0)return;let Q;try{Q=Gz(J).toLowerCase()}catch{Q=J.toLowerCase()}let Z=z.data.find(($)=>$.address.toLowerCase()===Q);if(!Z)return;return{balance:Z.balance,trc20:Z.trc20||[]}}catch(z){if(z instanceof K)throw z;throw new K("toolbox_tron_trongrid_api_error",{address:J,message:z instanceof Error?z.message:"Unknown error"})}}async function Lz({from:J,to:z,amount:Q}){let $=await V("/wallet/createtransaction",{amount:Q,owner_address:J,to_address:z,visible:!0});if(!$.txID||!$.raw_data_hex||!$.raw_data)throw new K("toolbox_tron_transaction_creation_failed");let M=$.raw_data?.contract?.[0]?.parameter?.value;if(M?.to_address!==z||M?.owner_address!==J||M?.amount!==Q)throw new K("toolbox_tron_transaction_creation_failed");return T($),$}async function Nz({ownerAddress:J,contractAddress:z,functionSelector:Q,parameter:Z,feeLimit:$,callValue:j=0}){let M=await V("/wallet/triggersmartcontract",{call_value:j,contract_address:z,fee_limit:$,function_selector:Q,owner_address:J,parameter:Z,visible:!0});if(!M.result.result||!M.transaction?.txID||!M.transaction?.raw_data_hex)throw new K("toolbox_tron_transaction_creation_failed");let U=M.transaction.raw_data?.contract?.[0]?.parameter?.value;if(U?.contract_address!==z||U?.owner_address!==J)throw new K("toolbox_tron_transaction_creation_failed");return T(M.transaction),M.transaction}function Bz({ownerAddress:J,contractAddress:z,functionSelector:Q,parameter:Z}){return V("/wallet/triggerconstantcontract",{contract_address:z,function_selector:Q,owner_address:J,parameter:Z,visible:!0})}function jJ({ownerAddress:J,contractAddress:z,functionSelector:Q,parameter:Z}){return V("/wallet/estimateenergy",{contract_address:z,function_selector:Q,owner_address:J,parameter:Z,visible:!0})}function Uz(J){let z=typeof J==="number"?J:typeof J==="string"?Number(J):Number.NaN;return Number.isFinite(z)&&z>0?z:void 0}async function f(J){try{let{result:z,txid:Q}=await V("/wallet/broadcasttransaction",{raw_data:J.raw_data,raw_data_hex:J.raw_data_hex,signature:J.signature,txID:J.txID,visible:J.visible});if(!z||!Q)throw new K("toolbox_tron_token_transfer_failed");return Q}catch(z){throw new K("toolbox_tron_broadcast_failed",{error:z})}}async function w(){let J={};try{let{chainParameter:z}=await Kz("/wallet/getchainparameters");for(let Q of z)J[Q.key]=Q.value}catch(z){E({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${z instanceof Error?z.message:z}`})}return{bandwidthFee:J.getTransactionFee??QJ,createAccountFee:J.getCreateNewAccountFeeInSystemContract??J.getCreateAccountFee??ZJ,energyFee:J.getEnergyFee??$J,memoFee:J.getMemoFee??YJ}}async function l(J){try{let z=await V("/wallet/getaccountresource",{address:J,visible:!0});return{bandwidth:{free:(z.freeNetLimit??600)-(z.freeNetUsed??0),total:z.NetLimit??0,used:z.NetUsed??0},energy:{total:z.EnergyLimit??0,used:z.EnergyUsed??0}}}catch(z){return E({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${z instanceof Error?z.message:z}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function x(J){try{let z=await V("/wallet/getaccount",{address:J,visible:!0});return z&&Object.keys(z).length>0}catch{return!1}}async function c(J){try{let z=await jJ({...J,ownerAddress:J.sender}),Q=z.energy_required??z.energyRequired;if(z.result&&!z.result.result)throw new K("toolbox_tron_trongrid_api_error",{message:z.result.message||"estimateenergy failed"});if(Q!==void 0){let Z=Uz(Q);if(Z!==void 0)return Z;throw new K("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(z){E({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${z instanceof Error?z.message:z}`})}try{let{energy_used:z}=await Bz({...J,ownerAddress:J.sender}),Q=Uz(z);if(Q!==void 0)return Q;throw new K("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(z){throw E({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${z instanceof Error?z.message:z}`}),new K("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${z instanceof Error?z.message:z}`})}}async function Dz({assetAddress:J,owner:z,spender:Q}){let Z=I([{type:"address",value:z},{type:"address",value:Q}]),j=(await Bz({contractAddress:J,functionSelector:"allowance(address,address)",ownerAddress:Q,parameter:Z})).constant_result?.[0];if(!j)return 0n;try{return BigInt(`0x${j}`)}catch{return 0n}}var UJ=B,Rz=268,Vz=65000,i=25000,Sz=345,n="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",CJ="115792089237316195423570985008687907853269984665640564039457584007913129639935";function fz({phrase:J,derivationPath:z}){let Q=GJ.fromMasterSeed(MJ(J)).derive(z);if(!Q.privateKey)throw new H("toolbox_tron_no_signer");return qJ(Q.privateKey)}function kJ(J,z){return{...J,value:String(z)}}function HJ(J,z){if(!z)return J;return{...J,data:z.startsWith("0x")?z:`0x${z}`}}function KJ({phrase:J,derivationPath:z,index:Q}){let Z=z||Tz(vz(Iz[N.Tron],{index:Q||0}));return fz({derivationPath:Z,phrase:J})}function PJ({phrase:J,derivationPath:z}){let Q=fz({derivationPath:z,phrase:J}),Z=Mz(Q);return{getAddress:()=>Promise.resolve(Z),signTransaction:($)=>{T($);let j=Wz({privateKey:Q,txID:$.txID});return Promise.resolve({...$,signature:[j]})}}}function _z({transaction:J,memo:z,expiration:Q,feeLimit:Z}){let $={},j={};if(Z!==void 0&&J.raw_data)$.fee_limit=Z,j.fee_limit=Z;if(z){let U=z.startsWith("0x")?z.replace(/^0x/,""):Oz(z);$.data=U,j.data=U}if(Q){let U=J.raw_data.expiration+Q*1000;$.expiration=U,j.expiration=U}if(Object.keys($).length===0)return J;let{raw_data_hex:M,txID:k}=$z(J.raw_data_hex,$);return{...J,raw_data:{...J.raw_data,...j},raw_data_hex:M,txID:k}}function LJ(J={}){let z="index"in J?J.index||0:0,Q=Tz("derivationPath"in J&&J.derivationPath?J.derivationPath:vz(Iz[N.Tron],{index:z})),Z,$=!1;function j(){if($)return Promise.resolve(Z);return Z=OJ(J).with({phrase:o.string},({phrase:Y})=>PJ({derivationPath:Q,phrase:Y})).with({signer:o.not(o.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),$=!0,Promise.resolve(Z)}async function M(){let Y=await j();if(!Y)throw new H("toolbox_tron_no_signer");return Y.getAddress()}async function k(Y,X){let G=Y||Vz,q=X??(await w()).energyFee,O=G*q,W=Math.ceil(O*1.5);return Math.min(Math.max(W,1e7),150000000)}async function U({contractAddress:Y,functionSelector:X,parameter:G,sender:q,memo:O,expiration:W,extraEnergy:P=0}){let C=await c({contractAddress:Y,functionSelector:X,parameter:G,sender:q}),L=await k(C+P),R=await Nz({contractAddress:Y,feeLimit:L,functionSelector:X,ownerAddress:q,parameter:G});return _z({expiration:W,feeLimit:L,memo:O,transaction:R})}async function F(Y){if(!B(Y))return[D.from({chain:N.Tron})];try{let X=await Pz(Y);if(!X)return[D.from({chain:N.Tron})];let G=[D.from({chain:N.Tron,fromBaseDecimal:6,value:String(X.balance)})],q=X.trc20?.find((O)=>(n in O));if(q){let O=q[n];G.push(D.from({asset:`TRON.USDT-${n}`,fromBaseDecimal:6,value:O}))}return G}catch(X){return Fz({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${X instanceof Error?X.message:X}`}),[D.from({chain:N.Tron})]}}async function u({recipient:Y,assetValue:X,memo:G,expiration:q}){if(!B(Y))throw new H("toolbox_tron_token_transfer_failed",{message:"invalid address"});let O=await j();if(!O)throw new H("toolbox_tron_no_signer");try{let W=await M(),P=await t({assetValue:X,expiration:q,memo:G,recipient:Y,sender:W}),C=await O.signTransaction(P),L=await f(C);if(!L)throw new H("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return L}catch(W){throw new H("toolbox_tron_token_transfer_failed",{message:W instanceof Error?W.message:String(W)})}}function d({requiredBandwidth:Y,resources:X,feePerUnit:G}){let q=Math.max(0,X.free+X.total-X.used);return Y>q?(Y-q)*G:0}async function wz({memo:Y,recipient:X,senderAddress:G}){let[q,O,W]=await Promise.all([w(),x(X),l(G)]),P=O?0:q.createAccountFee,C=d({feePerUnit:q.bandwidthFee,requiredBandwidth:Rz,resources:W.bandwidth}),L=Y?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:m.TRON,value:P+C+L})}async function xz({assetValue:Y,memo:X,recipient:G,senderAddress:q}){let O=Y.address;if(!O)throw new H("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[W,P,C,L]=await Promise.all([w(),x(G),l(q),c({contractAddress:O,functionSelector:"transfer(address,uint256)",parameter:I([{type:"address",value:G},{type:"uint256",value:Y.getBaseValue("string")}]),sender:q})]),r=L+(P?0:i),Ez=d({feePerUnit:W.bandwidthFee,requiredBandwidth:Sz,resources:C.bandwidth}),e=Math.max(0,C.energy.total-C.energy.used),mz=r>e?(r-e)*W.energyFee:0,uz=X?W.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:m.TRON,value:Ez+mz+uz})}async function bz({assetValue:Y,memo:X,recipient:G}){let[q,O]=await Promise.all([w(),x(G)]);if(Y.isGasAsset){let L=O?0:q.createAccountFee,R=X?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:m.TRON,value:L+Rz*q.bandwidthFee+R})}let P=await k(Vz+(O?0:i),q.energyFee),C=X?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:m.TRON,value:P+Sz*q.bandwidthFee+C})}async function gz({assetValue:Y,memo:X,recipient:G,sender:q}){let O=await j();try{let W=q?q:O?await M():void 0;if(!W)return bz({assetValue:Y,memo:X,recipient:G});return Y.isGasAsset?wz({memo:X,recipient:G,senderAddress:W}):xz({assetValue:Y,memo:X,recipient:G,senderAddress:W})}catch(W){throw Fz({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${W instanceof Error?W.message:W}`}),new H("toolbox_fee_estimation_failed",{chain:N.Tron,error:W})}}async function t({recipient:Y,assetValue:X,memo:G,sender:q,expiration:O}){if(!B(Y)||!B(q))throw new H("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(X.isGasAsset){let C=await Lz({amount:X.getBaseValue("number"),from:q,to:Y});return _z({expiration:O,memo:G,transaction:C})}let W=X.address;if(!W)throw new H("toolbox_tron_invalid_token_identifier",{identifier:X.toString()});let P=await x(Y);return U({contractAddress:W,expiration:O,extraEnergy:P?0:i,functionSelector:"transfer(address,uint256)",memo:G,parameter:I([{type:"address",value:Y},{type:"uint256",value:X.getBaseValue("string")}]),sender:q})}async function a(Y){T(Y);let X=await j();if(!X)throw new H("toolbox_tron_no_signer");return X.signTransaction(Y)}async function Az(Y){let X=await a(Y);return f(X)}function s({assetAddress:Y,spenderAddress:X,from:G}){return Dz({assetAddress:Y,owner:G,spender:X})}async function yz({assetAddress:Y,spenderAddress:X,from:G,amount:q}){let O=await s({assetAddress:Y,from:G,spenderAddress:X});if(!q)return O>0n;return O>=BigInt(q)}async function hz({assetAddress:Y,spenderAddress:X,amount:G,from:q}){if(!B(Y)||!B(X))throw new H("toolbox_tron_approve_failed");let O=await j();if(!O)throw new H("toolbox_tron_no_signer");let W=q||await M(),P=G!==void 0?BigInt(G).toString():CJ;try{let C=await U({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:I([{type:"address",value:X},{type:"uint256",value:P}]),sender:W}),L=await O.signTransaction(C),R=await f(L);if(!R)throw new H("toolbox_tron_approve_failed");return R}catch(C){if(C instanceof H)throw C;throw new H("toolbox_tron_approve_failed",{error:C})}}return{approve:hz,broadcastTransaction:f,createTransaction:t,estimateTransactionFee:gz,getAddress:M,getApprovedAmount:s,getBalance:F,getRpcUrl:()=>WJ(N.Tron),isApproved:yz,signAndBroadcastTransaction:Az,signTransaction:a,transfer:u,validateAddress:B}}export{kJ as withTronTransactionValue,HJ as withTronTransactionData,UJ as validateTronAddress,LJ as getTronToolbox,KJ as getTronPrivateKeyFromMnemonic};
|
|
@@ -18,11 +18,79 @@ export declare function BaseEVMToolbox<P extends Provider | BrowserProvider, S e
|
|
|
18
18
|
approvedAmount: ({ assetAddress, spenderAddress, from }: IsApprovedParams) => Promise<bigint>;
|
|
19
19
|
broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
|
|
20
20
|
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: CallParams) => Promise<T>;
|
|
21
|
-
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: ApproveParams) => Promise<
|
|
21
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: ApproveParams) => Promise<{
|
|
22
|
+
value: string;
|
|
23
|
+
to: string;
|
|
24
|
+
data: string;
|
|
25
|
+
from?: string;
|
|
26
|
+
type?: number;
|
|
27
|
+
nonce?: number;
|
|
28
|
+
gasLimit?: bigint;
|
|
29
|
+
gasPrice?: bigint;
|
|
30
|
+
maxPriorityFeePerGas?: bigint;
|
|
31
|
+
maxFeePerGas?: bigint;
|
|
32
|
+
chainId?: bigint;
|
|
33
|
+
accessList?: import("ethers").AccessList;
|
|
34
|
+
authorizationList?: Array<import("ethers").Authorization>;
|
|
35
|
+
customData?: any;
|
|
36
|
+
blockTag?: import("ethers").BlockTag;
|
|
37
|
+
enableCcipRead?: boolean;
|
|
38
|
+
}>;
|
|
22
39
|
createContract: (address: string, abi: readonly (JsonFragment | Fragment)[]) => Contract;
|
|
23
|
-
createContractTxObject: ({ contractAddress, abi, funcName, funcParams, txOverrides }: CallParams) => Promise<
|
|
24
|
-
|
|
25
|
-
|
|
40
|
+
createContractTxObject: ({ contractAddress, abi, funcName, funcParams, txOverrides }: CallParams) => Promise<{
|
|
41
|
+
value: string;
|
|
42
|
+
to: string;
|
|
43
|
+
data: string;
|
|
44
|
+
from?: string;
|
|
45
|
+
type?: number;
|
|
46
|
+
nonce?: number;
|
|
47
|
+
gasLimit?: bigint;
|
|
48
|
+
gasPrice?: bigint;
|
|
49
|
+
maxPriorityFeePerGas?: bigint;
|
|
50
|
+
maxFeePerGas?: bigint;
|
|
51
|
+
chainId?: bigint;
|
|
52
|
+
accessList?: import("ethers").AccessList;
|
|
53
|
+
authorizationList?: Array<import("ethers").Authorization>;
|
|
54
|
+
customData?: any;
|
|
55
|
+
blockTag?: import("ethers").BlockTag;
|
|
56
|
+
enableCcipRead?: boolean;
|
|
57
|
+
}>;
|
|
58
|
+
createTransaction: ({ assetValue, memo, recipient, data, sender: fromOverride, maxFeePerGas, maxPriorityFeePerGas, gasPrice, ...tx }: EVMCreateTransactionParams) => Promise<{
|
|
59
|
+
value: string;
|
|
60
|
+
to: string;
|
|
61
|
+
data: string;
|
|
62
|
+
from?: string;
|
|
63
|
+
type?: number;
|
|
64
|
+
nonce?: number;
|
|
65
|
+
gasLimit?: bigint;
|
|
66
|
+
gasPrice?: bigint;
|
|
67
|
+
maxPriorityFeePerGas?: bigint;
|
|
68
|
+
maxFeePerGas?: bigint;
|
|
69
|
+
chainId?: bigint;
|
|
70
|
+
accessList?: import("ethers").AccessList;
|
|
71
|
+
authorizationList?: Array<import("ethers").Authorization>;
|
|
72
|
+
customData?: any;
|
|
73
|
+
blockTag?: import("ethers").BlockTag;
|
|
74
|
+
enableCcipRead?: boolean;
|
|
75
|
+
}>;
|
|
76
|
+
createTransferTx: ({ assetValue, memo, recipient, data, sender: fromOverride, maxFeePerGas, maxPriorityFeePerGas, gasPrice, ...tx }: EVMCreateTransactionParams) => Promise<{
|
|
77
|
+
value: string;
|
|
78
|
+
to: string;
|
|
79
|
+
data: string;
|
|
80
|
+
from?: string;
|
|
81
|
+
type?: number;
|
|
82
|
+
nonce?: number;
|
|
83
|
+
gasLimit?: bigint;
|
|
84
|
+
gasPrice?: bigint;
|
|
85
|
+
maxPriorityFeePerGas?: bigint;
|
|
86
|
+
maxFeePerGas?: bigint;
|
|
87
|
+
chainId?: bigint;
|
|
88
|
+
accessList?: import("ethers").AccessList;
|
|
89
|
+
authorizationList?: Array<import("ethers").Authorization>;
|
|
90
|
+
customData?: any;
|
|
91
|
+
blockTag?: import("ethers").BlockTag;
|
|
92
|
+
enableCcipRead?: boolean;
|
|
93
|
+
}>;
|
|
26
94
|
EIP1193SendTransaction: ({ value, ...params }: EVMTxParams | ContractTransaction) => Promise<string>;
|
|
27
95
|
estimateCall: ({ contractAddress, abi, funcName, funcParams, txOverrides }: EstimateCallParams) => Promise<bigint>;
|
|
28
96
|
estimateGasLimit: ({ assetValue, recipient, memo, data, sender, funcName, funcParams, txOverrides, }: EVMTransferParams & {
|
|
@@ -71,7 +139,24 @@ export declare function getEIP1193SendTransaction(provider: Provider | BrowserPr
|
|
|
71
139
|
export declare function getChecksumAddressFromAsset(asset: Asset, chain: EVMChain): string;
|
|
72
140
|
export declare const ContractAddress: Record<EVMChain, string>;
|
|
73
141
|
export declare function getTokenAddress({ chain, symbol, ticker }: Asset, baseAssetChain: EVMChain): string | null;
|
|
74
|
-
export declare function getCreateContractTxObject({ provider }: ToolboxWrapParams): ({ contractAddress, abi, funcName, funcParams, txOverrides }: CallParams) => Promise<
|
|
142
|
+
export declare function getCreateContractTxObject({ provider }: ToolboxWrapParams): ({ contractAddress, abi, funcName, funcParams, txOverrides }: CallParams) => Promise<{
|
|
143
|
+
value: string;
|
|
144
|
+
to: string;
|
|
145
|
+
data: string;
|
|
146
|
+
from?: string;
|
|
147
|
+
type?: number;
|
|
148
|
+
nonce?: number;
|
|
149
|
+
gasLimit?: bigint;
|
|
150
|
+
gasPrice?: bigint;
|
|
151
|
+
maxPriorityFeePerGas?: bigint;
|
|
152
|
+
maxFeePerGas?: bigint;
|
|
153
|
+
chainId?: bigint;
|
|
154
|
+
accessList?: import("ethers").AccessList;
|
|
155
|
+
authorizationList?: Array<import("ethers").Authorization>;
|
|
156
|
+
customData?: any;
|
|
157
|
+
blockTag?: import("ethers").BlockTag;
|
|
158
|
+
enableCcipRead?: boolean;
|
|
159
|
+
}>;
|
|
75
160
|
export declare function getEstimateGasPrices({ chain, provider, isEIP1559Compatible, }: {
|
|
76
161
|
provider: Provider;
|
|
77
162
|
isEIP1559Compatible?: boolean;
|