@swapkit/toolboxes 4.17.6 → 4.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/dist/src/aptos/index.cjs +1 -1
- package/dist/src/aptos/index.js +1 -1
- 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/substrate/index.cjs +1 -1
- package/dist/src/substrate/index.js +1 -1
- package/dist/src/sui/index.cjs +1 -1
- package/dist/src/sui/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/evm.d.ts +95 -5
- package/dist/types/evm/types.d.ts +3 -1
- package/dist/types/ton/toolbox.d.ts +4 -1
- package/dist/types/ton/types.d.ts +1 -0
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
var D=Object.create;var{getPrototypeOf:G,defineProperty:S,getOwnPropertyNames:_,getOwnPropertyDescriptor:F}=Object,v=Object.prototype.hasOwnProperty;function A(e){return this[e]}var M,U,ie=(e,t,r)=>{var n=e!=null&&typeof e==="object";if(n){var i=t?M??=new WeakMap:U??=new WeakMap,a=i.get(e);if(a)return a}r=e!=null?D(G(e)):{};let s=t||!e||!e.__esModule?S(r,"default",{value:e,enumerable:!0}):r;for(let p of _(e))if(!v.call(s,p))S(s,p,{get:A.bind(e,p),enumerable:!0});if(n)i.set(e,s);return s},V=(e)=>{var t=(T??=new WeakMap).get(e),r;if(t)return t;if(t=S({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var n of _(e))if(!v.call(t,n))S(t,n,{get:A.bind(e,n),enumerable:!(r=F(e,n))||r.enumerable})}return T.set(e,t),t},T;var W=(e)=>e;function H(e,t){this[e]=W.bind(null,t)}var L=(e,t)=>{for(var r in t)S(e,r,{get:t[r],enumerable:!0,configurable:!0,set:H.bind(t,r)})};var ae=(e,t)=>()=>(e&&(t=e(e=0)),t);var ne={};L(ne,{isKeyringPair:()=>b,getSubstrateToolbox:()=>Q,getSubstrateAddressValidator:()=>j,createSubstrateToolbox:()=>R,createKeyring:()=>h,SubstrateNetwork:()=>m});module.exports=V(ne);var x=require("@polkadot/api"),w=require("@polkadot/util"),P=require("@polkadot/util-crypto"),c=require("@swapkit/helpers"),y=require("ts-pattern");var l=require("@swapkit/helpers");async function O(e,t,r){let n=[t.set(0)];if(!r)return n;try{let i=await e.query.system?.account?.(r);if(!i)return n;let{data:{free:a}}=i,s=l.SwapKitNumber.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(s)]}catch(i){let a=i instanceof Error?i.message:String(i);return console.error(`Error fetching substrate balance: ${a}`),n}}async function q(e,t,r){let n=[t.set(0)];if(!r)return n;try{let i=await e.query.flip?.account?.(r);if(!i)return n;let a=i.balance||i.data?.balance;if(!a||a.isEmpty)return n;let s=l.SwapKitNumber.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(s)]}catch(i){let a=i instanceof Error?i.message:String(i);return console.error(`Error fetching chainflip balance: ${a}`),n}}function C(e,t){return function(n){let i=l.AssetValue.from({chain:e});switch(e){case l.Chain.Chainflip:return q(t,i,n);default:return O(t,i,n)}}}var z={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},B={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},J={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},m={DOT:z,FLIP:B,GENERIC:J};function Q(e,t){return y.match(e).with(...c.SubstrateChains,(r)=>R({chain:r,...t})).exhaustive()}function b(e){return"address"in e}async function h(e,t){let{Keyring:r}=await import("@polkadot/
|
|
1
|
+
var D=Object.create;var{getPrototypeOf:G,defineProperty:S,getOwnPropertyNames:_,getOwnPropertyDescriptor:F}=Object,v=Object.prototype.hasOwnProperty;function A(e){return this[e]}var M,U,ie=(e,t,r)=>{var n=e!=null&&typeof e==="object";if(n){var i=t?M??=new WeakMap:U??=new WeakMap,a=i.get(e);if(a)return a}r=e!=null?D(G(e)):{};let s=t||!e||!e.__esModule?S(r,"default",{value:e,enumerable:!0}):r;for(let p of _(e))if(!v.call(s,p))S(s,p,{get:A.bind(e,p),enumerable:!0});if(n)i.set(e,s);return s},V=(e)=>{var t=(T??=new WeakMap).get(e),r;if(t)return t;if(t=S({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var n of _(e))if(!v.call(t,n))S(t,n,{get:A.bind(e,n),enumerable:!(r=F(e,n))||r.enumerable})}return T.set(e,t),t},T;var W=(e)=>e;function H(e,t){this[e]=W.bind(null,t)}var L=(e,t)=>{for(var r in t)S(e,r,{get:t[r],enumerable:!0,configurable:!0,set:H.bind(t,r)})};var ae=(e,t)=>()=>(e&&(t=e(e=0)),t);var ne={};L(ne,{isKeyringPair:()=>b,getSubstrateToolbox:()=>Q,getSubstrateAddressValidator:()=>j,createSubstrateToolbox:()=>R,createKeyring:()=>h,SubstrateNetwork:()=>m});module.exports=V(ne);var x=require("@polkadot/api"),w=require("@polkadot/util"),P=require("@polkadot/util-crypto"),c=require("@swapkit/helpers"),y=require("ts-pattern");var l=require("@swapkit/helpers");async function O(e,t,r){let n=[t.set(0)];if(!r)return n;try{let i=await e.query.system?.account?.(r);if(!i)return n;let{data:{free:a}}=i,s=l.SwapKitNumber.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(s)]}catch(i){let a=i instanceof Error?i.message:String(i);return console.error(`Error fetching substrate balance: ${a}`),n}}async function q(e,t,r){let n=[t.set(0)];if(!r)return n;try{let i=await e.query.flip?.account?.(r);if(!i)return n;let a=i.balance||i.data?.balance;if(!a||a.isEmpty)return n;let s=l.SwapKitNumber.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(s)]}catch(i){let a=i instanceof Error?i.message:String(i);return console.error(`Error fetching chainflip balance: ${a}`),n}}function C(e,t){return function(n){let i=l.AssetValue.from({chain:e});switch(e){case l.Chain.Chainflip:return q(t,i,n);default:return O(t,i,n)}}}var z={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},B={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},J={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},m={DOT:z,FLIP:B,GENERIC:J};function Q(e,t){return y.match(e).with(...c.SubstrateChains,(r)=>R({chain:r,...t})).exhaustive()}function b(e){return"address"in e}async function h(e,t){let{Keyring:r}=await import("@polkadot/keyring"),{cryptoWaitReady:n}=await import("@polkadot/util-crypto");return await n(),new r({ss58Format:t,type:"sr25519"}).addFromUri(e)}var I=(e,t)=>e.rpc.system.accountNextIndex(t),k=(e,{recipient:t,assetValue:r})=>e.tx.balances?.transferAllowDeath?.(t,r.getBaseValue("number")),X=async(e,t,{recipient:r,assetValue:n,sender:i})=>{let a=k(e,{assetValue:n,recipient:r});if(!a)throw new c.SwapKitError("toolbox_substrate_transfer_error");let s=b(t),p=s?t.address:i;if(!p)throw new c.SwapKitError("core_transaction_invalid_sender_address");let g=await I(e,p);return(await a.signAndSend(s?t:p,{nonce:g,signer:s?void 0:t})).toString()},Y=async(e,t,r,{recipient:n,assetValue:i,sender:a})=>{let s=k(e,{assetValue:i,recipient:n}),p=b(t)?t.address:a;if(!p)return Promise.resolve(r.set(0));let g=await s?.paymentInfo(p,{nonce:await I(e,p)})||{partialFee:0};return r.set(c.SwapKitNumber.fromBigInt(BigInt(g.partialFee.toString()),r.decimal).getValue("string"))},Z=async(e,t)=>{if(t)return e.send(t);return(await e.send()).toString()},$=async(e,t)=>{return await t.signAsync(e)},ee=(e,t,r)=>{if(r)return t.signAndSend(e,r);return t.signAndSend(e).toString()},te=async({signer:e,address:t,tx:r,callback:n,api:i})=>{let a=await I(i,t);if(n)r.signAndSend(t,{nonce:a,signer:e},n);return r.signAndSend(t,{nonce:a,signer:e}).toString()};function re(e,t){let r=P.decodeAddress(e);return P.encodeAddress(r,t)}function E(e,t){return w.isHex(e)?w.hexToU8a(e):P.decodeAddress(e,void 0,t)}function K(e,t="ss58",r){if(t==="hex")return w.u8aToHex(e);return P.encodeAddress(e,r)}function j({chain:e,prefix:t}){let r=t||y.match(e).with(c.Chain.Polkadot,()=>m.DOT.prefix).with(c.Chain.Chainflip,()=>m.FLIP.prefix).otherwise(()=>m.GENERIC.prefix);return function(i){try{let a=E(i,r);return K(a,"ss58",r),!0}catch{return!1}}}function R({chain:e,generic:t=!1,...r}){let n=c.AssetValue.from({chain:e}),i;async function a(){let o=await c.getRPCUrl(e),d=new x.WsProvider(o);return x.ApiPromise.create({noInitWarn:!0,provider:d})}async function s(){if(i)return i;return i=await y.match(r).with({phrase:y.P.string},({phrase:o})=>h(o,m[e].prefix)).with({signer:y.P.any},({signer:o})=>o).otherwise(()=>{return}),i}let p=t?m.GENERIC:m[e];async function g(o){let d=await s(),u=o||d;if(!u)throw new c.SwapKitError("core_wallet_not_keypair_wallet");return b(u)?u.address:void 0}return{broadcast:Z,convertAddress:re,createKeyring:(o)=>h(o,p.prefix),createTransaction:async(o)=>{let d=await a();return k(d,o)},decodeAddress:E,encodeAddress:K,estimateTransactionFee:async(o)=>{let d=await s();if(!d)throw new c.SwapKitError("core_wallet_not_keypair_wallet");let u=await a();return Y(u,d,n,o)},gasAsset:n,getAddress:g,getApi:a,getBalance:async(o)=>{let d=await a(),u=C(e,d),f=o||await g();return u(f)},network:p,sign:async(o)=>{let d=await s();if(!d)throw new c.SwapKitError("core_wallet_not_keypair_wallet");if(b(d))return $(d,o);throw new c.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx:o,callback:d,address:u})=>{let f=await s();if(!f)throw new c.SwapKitError("core_wallet_not_keypair_wallet");if(b(f))return ee(f,o,d);let N=await a();if(u)return te({address:u,api:N,callback:d,signer:f,tx:o});throw new c.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(o)=>{let d=await s();if(!d)throw new c.SwapKitError("core_wallet_not_keypair_wallet");let u=await a();return X(u,d,o)},validateAddress:j({chain:e,prefix:p.prefix})}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var E=Object.defineProperty;var K=(e)=>e;function j(e,t){this[e]=K.bind(null,t)}var ie=(e,t)=>{for(var r in t)E(e,r,{get:t[r],enumerable:!0,configurable:!0,set:j.bind(t,r)})};var ae=(e,t)=>()=>(e&&(t=e(e=0)),t);var P=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{ApiPromise as V,WsProvider as W}from"@polkadot/api";import{hexToU8a as H,isHex as L,u8aToHex as O}from"@polkadot/util";import{decodeAddress as T,encodeAddress as _}from"@polkadot/util-crypto";import{AssetValue as q,Chain as h,getRPCUrl as z,SubstrateChains as B,SwapKitError as u,SwapKitNumber as J}from"@swapkit/helpers";import{match as f,P as I}from"ts-pattern";import{AssetValue as R,Chain as N,SwapKitNumber as S}from"@swapkit/helpers";async function D(e,t,r){let i=[t.set(0)];if(!r)return i;try{let n=await e.query.system?.account?.(r);if(!n)return i;let{data:{free:a}}=n,c=S.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(c)]}catch(n){let a=n instanceof Error?n.message:String(n);return console.error(`Error fetching substrate balance: ${a}`),i}}async function G(e,t,r){let i=[t.set(0)];if(!r)return i;try{let n=await e.query.flip?.account?.(r);if(!n)return i;let a=n.balance||n.data?.balance;if(!a||a.isEmpty)return i;let c=S.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(c)]}catch(n){let a=n instanceof Error?n.message:String(n);return console.error(`Error fetching chainflip balance: ${a}`),i}}function x(e,t){return function(i){let n=R.from({chain:e});switch(e){case N.Chainflip:return G(t,n,i);default:return D(t,n,i)}}}var F={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},M={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},U={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},m={DOT:F,FLIP:M,GENERIC:U};function be(e,t){return f(e).with(...B,(r)=>ne({chain:r,...t})).exhaustive()}function g(e){return"address"in e}async function k(e,t){let{Keyring:r}=await import("@polkadot/
|
|
1
|
+
var E=Object.defineProperty;var K=(e)=>e;function j(e,t){this[e]=K.bind(null,t)}var ie=(e,t)=>{for(var r in t)E(e,r,{get:t[r],enumerable:!0,configurable:!0,set:j.bind(t,r)})};var ae=(e,t)=>()=>(e&&(t=e(e=0)),t);var P=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{ApiPromise as V,WsProvider as W}from"@polkadot/api";import{hexToU8a as H,isHex as L,u8aToHex as O}from"@polkadot/util";import{decodeAddress as T,encodeAddress as _}from"@polkadot/util-crypto";import{AssetValue as q,Chain as h,getRPCUrl as z,SubstrateChains as B,SwapKitError as u,SwapKitNumber as J}from"@swapkit/helpers";import{match as f,P as I}from"ts-pattern";import{AssetValue as R,Chain as N,SwapKitNumber as S}from"@swapkit/helpers";async function D(e,t,r){let i=[t.set(0)];if(!r)return i;try{let n=await e.query.system?.account?.(r);if(!n)return i;let{data:{free:a}}=n,c=S.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(c)]}catch(n){let a=n instanceof Error?n.message:String(n);return console.error(`Error fetching substrate balance: ${a}`),i}}async function G(e,t,r){let i=[t.set(0)];if(!r)return i;try{let n=await e.query.flip?.account?.(r);if(!n)return i;let a=n.balance||n.data?.balance;if(!a||a.isEmpty)return i;let c=S.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(c)]}catch(n){let a=n instanceof Error?n.message:String(n);return console.error(`Error fetching chainflip balance: ${a}`),i}}function x(e,t){return function(i){let n=R.from({chain:e});switch(e){case N.Chainflip:return G(t,n,i);default:return D(t,n,i)}}}var F={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},M={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},U={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},m={DOT:F,FLIP:M,GENERIC:U};function be(e,t){return f(e).with(...B,(r)=>ne({chain:r,...t})).exhaustive()}function g(e){return"address"in e}async function k(e,t){let{Keyring:r}=await import("@polkadot/keyring"),{cryptoWaitReady:i}=await import("@polkadot/util-crypto");return await i(),new r({ss58Format:t,type:"sr25519"}).addFromUri(e)}var b=(e,t)=>e.rpc.system.accountNextIndex(t),w=(e,{recipient:t,assetValue:r})=>e.tx.balances?.transferAllowDeath?.(t,r.getBaseValue("number")),Q=async(e,t,{recipient:r,assetValue:i,sender:n})=>{let a=w(e,{assetValue:i,recipient:r});if(!a)throw new u("toolbox_substrate_transfer_error");let c=g(t),p=c?t.address:n;if(!p)throw new u("core_transaction_invalid_sender_address");let l=await b(e,p);return(await a.signAndSend(c?t:p,{nonce:l,signer:c?void 0:t})).toString()},X=async(e,t,r,{recipient:i,assetValue:n,sender:a})=>{let c=w(e,{assetValue:n,recipient:i}),p=g(t)?t.address:a;if(!p)return Promise.resolve(r.set(0));let l=await c?.paymentInfo(p,{nonce:await b(e,p)})||{partialFee:0};return r.set(J.fromBigInt(BigInt(l.partialFee.toString()),r.decimal).getValue("string"))},Y=async(e,t)=>{if(t)return e.send(t);return(await e.send()).toString()},Z=async(e,t)=>{return await t.signAsync(e)},$=(e,t,r)=>{if(r)return t.signAndSend(e,r);return t.signAndSend(e).toString()},ee=async({signer:e,address:t,tx:r,callback:i,api:n})=>{let a=await b(n,t);if(i)r.signAndSend(t,{nonce:a,signer:e},i);return r.signAndSend(t,{nonce:a,signer:e}).toString()};function te(e,t){let r=T(e);return _(r,t)}function v(e,t){return L(e)?H(e):T(e,void 0,t)}function A(e,t="ss58",r){if(t==="hex")return O(e);return _(e,r)}function re({chain:e,prefix:t}){let r=t||f(e).with(h.Polkadot,()=>m.DOT.prefix).with(h.Chainflip,()=>m.FLIP.prefix).otherwise(()=>m.GENERIC.prefix);return function(n){try{let a=v(n,r);return A(a,"ss58",r),!0}catch{return!1}}}function ne({chain:e,generic:t=!1,...r}){let i=q.from({chain:e}),n;async function a(){let o=await z(e),s=new W(o);return V.create({noInitWarn:!0,provider:s})}async function c(){if(n)return n;return n=await f(r).with({phrase:I.string},({phrase:o})=>k(o,m[e].prefix)).with({signer:I.any},({signer:o})=>o).otherwise(()=>{return}),n}let p=t?m.GENERIC:m[e];async function l(o){let s=await c(),d=o||s;if(!d)throw new u("core_wallet_not_keypair_wallet");return g(d)?d.address:void 0}return{broadcast:Y,convertAddress:te,createKeyring:(o)=>k(o,p.prefix),createTransaction:async(o)=>{let s=await a();return w(s,o)},decodeAddress:v,encodeAddress:A,estimateTransactionFee:async(o)=>{let s=await c();if(!s)throw new u("core_wallet_not_keypair_wallet");let d=await a();return X(d,s,i,o)},gasAsset:i,getAddress:l,getApi:a,getBalance:async(o)=>{let s=await a(),d=x(e,s),y=o||await l();return d(y)},network:p,sign:async(o)=>{let s=await c();if(!s)throw new u("core_wallet_not_keypair_wallet");if(g(s))return Z(s,o);throw new u("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx:o,callback:s,address:d})=>{let y=await c();if(!y)throw new u("core_wallet_not_keypair_wallet");if(g(y))return $(y,o,s);let C=await a();if(d)return ee({address:d,api:C,callback:s,signer:y,tx:o});throw new u("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(o)=>{let s=await c();if(!s)throw new u("core_wallet_not_keypair_wallet");let d=await a();return Q(d,s,o)},validateAddress:re({chain:e,prefix:p.prefix})}}export{g as isKeyringPair,be as getSubstrateToolbox,re as getSubstrateAddressValidator,ne as createSubstrateToolbox,k as createKeyring,m as SubstrateNetwork};
|
package/dist/src/sui/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var r=Object.create;var{getPrototypeOf:i,defineProperty:_,getOwnPropertyNames:x,getOwnPropertyDescriptor:t}=Object,m=Object.prototype.hasOwnProperty;function V(W){return this[W]}var n,s,L5=(W,
|
|
1
|
+
var r=Object.create;var{getPrototypeOf:i,defineProperty:_,getOwnPropertyNames:x,getOwnPropertyDescriptor:t}=Object,m=Object.prototype.hasOwnProperty;function V(W){return this[W]}var n,s,L5=(W,X,$)=>{var J=W!=null&&typeof W==="object";if(J){var k=X?n??=new WeakMap:s??=new WeakMap,j=k.get(W);if(j)return j}$=W!=null?r(i(W)):{};let q=X||!W||!W.__esModule?_($,"default",{value:W,enumerable:!0}):$;for(let Y of x(W))if(!m.call(q,Y))_(q,Y,{get:V.bind(W,Y),enumerable:!0});if(J)k.set(W,q);return q},a=(W)=>{var X=(h??=new WeakMap).get(W),$;if(X)return X;if(X=_({},"__esModule",{value:!0}),W&&typeof W==="object"||typeof W==="function"){for(var J of x(W))if(!m.call(X,J))_(X,J,{get:V.bind(W,J),enumerable:!($=t(W,J))||$.enumerable})}return h.set(W,X),X},h;var e=(W)=>W;function W5(W,X){this[W]=e.bind(null,X)}var z5=(W,X)=>{for(var $ in X)_(W,$,{get:X[$],enumerable:!0,configurable:!0,set:W5.bind(X,$)})};var S=(W,X)=>()=>(W&&(X=W(W=0)),X);async function f(W,X,$,J,k=[],j){let q=await W.getCoins({coinType:$,cursor:j,owner:X}),Y=[...k,...q.data],P=Y.reduce((H,F)=>H+BigInt(F.balance),0n);return q.hasNextPage&&P<J?f(W,X,$,J,Y,q.nextCursor):Y}function y({coinObjectId:W,digest:X,version:$}){return{digest:X,objectId:W,version:$}}function X5(W,X,$){let J=X.reduce((H,F)=>H+BigInt(F.balance),0n);if(J<$)throw new Z.SwapKitError("toolbox_sui_insufficient_balance",{available:J.toString(),required:$.toString()});let{selectedCoins:k}=X.reduce((H,F)=>{if(H.total>=$)return H;return{selectedCoins:[...H.selectedCoins,F],total:H.total+BigInt(F.balance)}},{selectedCoins:[],total:0n}),j=k[0],q=W.objectRef(y(j)),Y=k.slice(1).map((H)=>W.objectRef(y(H)));if(Y.length>0)W.mergeCoins(q,Y);let[P]=W.splitCoins(q,[$]);return P}function p(W,X){let $=W.reduce((J,k)=>J+BigInt(k.balance),0n);if($<X)throw new Z.SwapKitError("toolbox_sui_insufficient_balance",{available:$.toString(),required:X.toString()})}function C(W){try{return B.isValidSuiAddress(W)}catch{return!1}}function T(W){return"signWithIntent"in W}function Z5({provider:W,...X}={}){let $;async function J(){if($)return $;return $=await K.match(X).with({phrase:K.P.string},async({phrase:z})=>{let{Ed25519Keypair:M}=await import("@mysten/sui/keypairs/ed25519");return M.deriveKeypair(z)}).with({signer:K.P.any},({signer:z})=>z).otherwise(()=>{return}),$}async function k(z=W){let{SuiJsonRpcClient:M}=await import("@mysten/sui/jsonRpc");return new M({network:"mainnet",url:z||Z.getRPCUrlSync(Z.Chain.Sui)})}async function j(z){return BigInt(await z.getReferenceGasPrice())}async function q(){return(await J())?.toSuiAddress()||""}function Y(z){try{let M=Z.AssetValue.from({address:z,chain:Z.Chain.Sui});return{asset:M.toString(),decimals:M.decimal}}catch{}return null}async function P(z){let M=z||await q();if(!M)throw new Z.SwapKitError("toolbox_sui_address_required");let{baseDecimal:v,chain:L}=Z.getChainConfig(Z.Chain.Sui);try{let b=await(await k()).getAllBalances({owner:M}),N=b.find(({coinType:G})=>G===I)?.totalBalance||"0",Q=[Z.AssetValue.from({chain:L,fromBaseDecimal:v,value:N})];for(let{coinType:G,totalBalance:O}of b){if(G===I||Number(O)<=0)continue;let R=Y(G);if(R)Q.push(Z.AssetValue.from({asset:R.asset,fromBaseDecimal:R.decimals,value:O}))}return Q}catch{return[Z.AssetValue.from({chain:L})]}}async function H(z){let M=Z.AssetValue.from({chain:Z.Chain.Sui,value:"0.01"});if(!z)return M;try{let v=await k(),{txBytes:L}=await F(z),{effects:{status:D,gasUsed:b}}=await v.dryRunTransactionBlock({transactionBlock:L});if(D.status!=="success")return M;let{baseDecimal:N}=Z.getChainConfig(Z.Chain.Sui),Q=BigInt(b.computationCost)+BigInt(b.storageCost)-BigInt(b.storageRebate);return Z.AssetValue.from({chain:Z.Chain.Sui,fromBaseDecimal:N,value:Q.toString()})}catch{return M}}async function F({recipient:z,assetValue:M,gasBudget:v,sender:L}){let{Transaction:D}=await import("@mysten/sui/transactions"),b=L||await q(),N=v||M5;if(!b)throw new Z.SwapKitError("toolbox_sui_no_sender");try{let Q=await k(),G=new D;if(G.setSender(b),M.isGasAsset||M.symbol==="SUI"){let R=M.getBaseValue("bigint"),[U,w]=await Promise.all([j(Q),f(Q,b,I,R+BigInt(N))]);p(w,R+BigInt(N)),G.setGasPrice(U),G.setGasPayment(w.map(y));let[E]=G.splitCoins(G.gas,[M.getBaseValue("string")]);G.transferObjects([E],z)}else{let R=M.address;if(!R)throw new Z.SwapKitError("toolbox_sui_missing_coin_type");let U=M.getBaseValue("bigint"),[w,E,A]=await Promise.all([j(Q),f(Q,b,I,BigInt(N)),f(Q,b,R,U)]);if(!A.length)throw new Z.SwapKitError("toolbox_sui_no_coins_found",{coinType:R});p(E,BigInt(N)),G.setGasPrice(w),G.setGasPayment(E.map(y));let c=X5(G,A,U);G.transferObjects([c],z)}G.setGasBudget(N);let O=await G.build({client:Q});return{tx:G,txBytes:O}}catch(Q){if(Q instanceof Z.SwapKitError)throw Q;throw new Z.SwapKitError("toolbox_sui_transaction_creation_error",{error:Q})}}async function u(z){let M=await J();if(!M)throw new Z.SwapKitError("toolbox_sui_no_signer");if(z instanceof Uint8Array)return M.signTransaction(z);let{txBytes:v}="tx"in z?z:await F(z);return M.signTransaction(v)}async function d({assetValue:z,gasBudget:M,recipient:v}){let L=await J();if(!L)throw new Z.SwapKitError("toolbox_sui_no_signer");let D=L.toSuiAddress()||await q();if(!D)throw new Z.SwapKitError("toolbox_sui_no_sender");let{txBytes:b}=await F({assetValue:z,gasBudget:M,recipient:v,sender:D}),N=await k();if(!T(L)){let G=await L.signTransaction(b),{digest:O}=await N.executeTransactionBlock({signature:G.signature,transactionBlock:G.bytes});return O}let{digest:Q}=await N.signAndExecuteTransaction({signer:L,transaction:b});return Q}async function l(z){let M=await k(),{digest:v}=await M.executeTransactionBlock({signature:z.signature,transactionBlock:z.bytes});return v}async function o(z){let M=await J();if(!M)throw new Z.SwapKitError("toolbox_sui_no_signer");let v=await k(),L;if(typeof z==="string")L=Uint8Array.from(Buffer.from(z,"base64"));else if(z instanceof Uint8Array)L=z;else L=await z.build({client:v});if(!T(M)){let b=await M.signTransaction(L),{digest:N}=await v.executeTransactionBlock({signature:b.signature,transactionBlock:b.bytes});return N}let{digest:D}=await v.signAndExecuteTransaction({signer:M,transaction:L});return D}return{broadcastTransaction:l,createTransaction:F,estimateTransactionFee:H,getAddress:q,getBalance:P,signAndBroadcastTransaction:o,signTransaction:u,transfer:d,validateAddress:C}}var B,Z,K,I="0x2::sui::SUI",M5=50000000;var g=S(()=>{B=require("@mysten/sui/utils"),Z=require("@swapkit/helpers"),K=require("ts-pattern")});var G5={};z5(G5,{validateSuiAddress:()=>C,getSuiToolbox:()=>Z5});module.exports=a(G5);var J5=S(()=>{g()});J5();
|
package/dist/src/sui/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var o=Object.defineProperty;var c=(
|
|
1
|
+
var o=Object.defineProperty;var c=(M)=>M;function r(M,X){this[M]=c.bind(null,X)}var i=(M,X)=>{for(var Z in X)o(M,Z,{get:X[Z],enumerable:!0,configurable:!0,set:r.bind(X,Z)})};var x=(M,X)=>()=>(M&&(X=M(M=0)),X);var A=((M)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(M,{get:(X,Z)=>(typeof require<"u"?require:X)[Z]}):M)(function(M){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+M+'" is not supported')});import{isValidSuiAddress as t}from"@mysten/sui/utils";import{AssetValue as P,Chain as _,getChainConfig as m,getRPCUrlSync as n,SwapKitError as N}from"@swapkit/helpers";import{match as s,P as V}from"ts-pattern";async function f(M,X,Z,q,k=[],D){let Y=await M.getCoins({coinType:Z,cursor:D,owner:X}),j=[...k,...Y.data],K=j.reduce((v,H)=>v+BigInt(H.balance),0n);return Y.hasNextPage&&K<q?f(M,X,Z,q,j,Y.nextCursor):j}function y({coinObjectId:M,digest:X,version:Z}){return{digest:X,objectId:M,version:Z}}function e(M,X,Z){let q=X.reduce((v,H)=>v+BigInt(H.balance),0n);if(q<Z)throw new N("toolbox_sui_insufficient_balance",{available:q.toString(),required:Z.toString()});let{selectedCoins:k}=X.reduce((v,H)=>{if(v.total>=Z)return v;return{selectedCoins:[...v.selectedCoins,H],total:v.total+BigInt(H.balance)}},{selectedCoins:[],total:0n}),D=k[0],Y=M.objectRef(y(D)),j=k.slice(1).map((v)=>M.objectRef(y(v)));if(j.length>0)M.mergeCoins(Y,j);let[K]=M.splitCoins(Y,[Z]);return K}function S(M,X){let Z=M.reduce((q,k)=>q+BigInt(k.balance),0n);if(Z<X)throw new N("toolbox_sui_insufficient_balance",{available:Z.toString(),required:X.toString()})}function T(M){try{return t(M)}catch{return!1}}function p(M){return"signWithIntent"in M}function W5({provider:M,...X}={}){let Z;async function q(){if(Z)return Z;return Z=await s(X).with({phrase:V.string},async({phrase:W})=>{let{Ed25519Keypair:z}=await import("@mysten/sui/keypairs/ed25519");return z.deriveKeypair(W)}).with({signer:V.any},({signer:W})=>W).otherwise(()=>{return}),Z}async function k(W=M){let{SuiJsonRpcClient:z}=await import("@mysten/sui/jsonRpc");return new z({network:"mainnet",url:W||n(_.Sui)})}async function D(W){return BigInt(await W.getReferenceGasPrice())}async function Y(){return(await q())?.toSuiAddress()||""}function j(W){try{let z=P.from({address:W,chain:_.Sui});return{asset:z.toString(),decimals:z.decimal}}catch{}return null}async function K(W){let z=W||await Y();if(!z)throw new N("toolbox_sui_address_required");let{baseDecimal:b,chain:G}=m(_.Sui);try{let J=await(await k()).getAllBalances({owner:z}),Q=J.find(({coinType:$})=>$===I)?.totalBalance||"0",L=[P.from({chain:G,fromBaseDecimal:b,value:Q})];for(let{coinType:$,totalBalance:O}of J){if($===I||Number(O)<=0)continue;let F=j($);if(F)L.push(P.from({asset:F.asset,fromBaseDecimal:F.decimals,value:O}))}return L}catch{return[P.from({chain:G})]}}async function v(W){let z=P.from({chain:_.Sui,value:"0.01"});if(!W)return z;try{let b=await k(),{txBytes:G}=await H(W),{effects:{status:R,gasUsed:J}}=await b.dryRunTransactionBlock({transactionBlock:G});if(R.status!=="success")return z;let{baseDecimal:Q}=m(_.Sui),L=BigInt(J.computationCost)+BigInt(J.storageCost)-BigInt(J.storageRebate);return P.from({chain:_.Sui,fromBaseDecimal:Q,value:L.toString()})}catch{return z}}async function H({recipient:W,assetValue:z,gasBudget:b,sender:G}){let{Transaction:R}=await import("@mysten/sui/transactions"),J=G||await Y(),Q=b||a;if(!J)throw new N("toolbox_sui_no_sender");try{let L=await k(),$=new R;if($.setSender(J),z.isGasAsset||z.symbol==="SUI"){let F=z.getBaseValue("bigint"),[U,w]=await Promise.all([D(L),f(L,J,I,F+BigInt(Q))]);S(w,F+BigInt(Q)),$.setGasPrice(U),$.setGasPayment(w.map(y));let[E]=$.splitCoins($.gas,[z.getBaseValue("string")]);$.transferObjects([E],W)}else{let F=z.address;if(!F)throw new N("toolbox_sui_missing_coin_type");let U=z.getBaseValue("bigint"),[w,E,h]=await Promise.all([D(L),f(L,J,I,BigInt(Q)),f(L,J,F,U)]);if(!h.length)throw new N("toolbox_sui_no_coins_found",{coinType:F});S(E,BigInt(Q)),$.setGasPrice(w),$.setGasPayment(E.map(y));let l=e($,h,U);$.transferObjects([l],W)}$.setGasBudget(Q);let O=await $.build({client:L});return{tx:$,txBytes:O}}catch(L){if(L instanceof N)throw L;throw new N("toolbox_sui_transaction_creation_error",{error:L})}}async function C(W){let z=await q();if(!z)throw new N("toolbox_sui_no_signer");if(W instanceof Uint8Array)return z.signTransaction(W);let{txBytes:b}="tx"in W?W:await H(W);return z.signTransaction(b)}async function g({assetValue:W,gasBudget:z,recipient:b}){let G=await q();if(!G)throw new N("toolbox_sui_no_signer");let R=G.toSuiAddress()||await Y();if(!R)throw new N("toolbox_sui_no_sender");let{txBytes:J}=await H({assetValue:W,gasBudget:z,recipient:b,sender:R}),Q=await k();if(!p(G)){let $=await G.signTransaction(J),{digest:O}=await Q.executeTransactionBlock({signature:$.signature,transactionBlock:$.bytes});return O}let{digest:L}=await Q.signAndExecuteTransaction({signer:G,transaction:J});return L}async function u(W){let z=await k(),{digest:b}=await z.executeTransactionBlock({signature:W.signature,transactionBlock:W.bytes});return b}async function d(W){let z=await q();if(!z)throw new N("toolbox_sui_no_signer");let b=await k(),G;if(typeof W==="string")G=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)G=W;else G=await W.build({client:b});if(!p(z)){let J=await z.signTransaction(G),{digest:Q}=await b.executeTransactionBlock({signature:J.signature,transactionBlock:J.bytes});return Q}let{digest:R}=await b.signAndExecuteTransaction({signer:z,transaction:G});return R}return{broadcastTransaction:u,createTransaction:H,estimateTransactionFee:v,getAddress:Y,getBalance:K,signAndBroadcastTransaction:d,signTransaction:C,transfer:g,validateAddress:T}}var I="0x2::sui::SUI",a=50000000;var B=()=>{};var M5={};i(M5,{validateSuiAddress:()=>T,getSuiToolbox:()=>W5});var X5=x(()=>{B()});X5();export{T as validateSuiAddress,W5 as getSuiToolbox};
|
package/dist/src/ton/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var G3=Object.create;var{getPrototypeOf:Q3,defineProperty:D,getOwnPropertyNames:w,getOwnPropertyDescriptor:X3}=Object,c=Object.prototype.hasOwnProperty;function A(v){return this[v]}var Z3,$3,D3=(v,X,q)=>{var x=v!=null&&typeof v==="object";if(x){var B=X?Z3??=new WeakMap:$3??=new WeakMap,R=B.get(v);if(R)return R}q=v!=null?G3(Q3(v)):{};let I=X||!v||!v.__esModule?D(q,"default",{value:v,enumerable:!0}):q;for(let L of w(v))if(!c.call(I,L))D(I,L,{get:A.bind(v,L),enumerable:!0});if(x)B.set(v,I);return I},q3=(v)=>{var X=(p??=new WeakMap).get(v),q;if(X)return X;if(X=D({},"__esModule",{value:!0}),v&&typeof v==="object"||typeof v==="function"){for(var x of w(v))if(!c.call(X,x))D(X,x,{get:A.bind(v,x),enumerable:!(q=X3(v,x))||q.enumerable})}return p.set(v,X),X},p;var H3=(v)=>v;function Y3(v,X){this[v]=H3.bind(null,X)}var k3=(v,X)=>{for(var q in X)D(v,q,{get:X[q],enumerable:!0,configurable:!0,set:Y3.bind(X,q)})};var f=(v,X)=>()=>(v&&(X=v(v=0)),X);function y3(){function v(){let X=Date.now(),q=W||X;return W=q,X>W?X:q+1}return x3+v().toString(36)}function g(v){return async function(q,x=!0){let B=await m.SwapKitApi.getChainBalance({address:q,chain:v,scamFilter:x}),{baseDecimal:R}=V.getChainConfig(v),I=B.map(({identifier:O,value:h,decimal:j})=>{return new V.AssetValue({decimal:j||R,identifier:O,value:h})});if(!I.some((O)=>O.isGasAsset))return[V.AssetValue.from({chain:v}),...I];return I}}var V,m,x3,W=0;var i=f(()=>{V=require("@swapkit/helpers"),m=require("@swapkit/helpers/api"),x3=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function U3(){let v=Date.now();if(y&&v-o<R3)return y;return y=await d.getHttpEndpoint(),o=v,y}async function K3(){let[v]=$.SKConfig.get("rpcUrls")[$.Chain.Ton]??[];if(v)return v;return await U3()}function N3(v={}){let X,q,x;async function B(){if(!X){let z=v.provider??await K3();X=new G.TonClient({endpoint:z})}return X}async function R(){return(await L()).address.toString()}async function I(){if(x)return x;return x=await K.match(v).with({phrase:K.P.string},async({phrase:z})=>n.mnemonicToWalletKey(z.split(" "))).with({signer:K.P.any},({signer:z})=>z).otherwise(()=>{return}),x}async function L(z){if(!q||z){let Q=await I(),Z=await B(),Y=z||Q;if(!Y)throw new $.SwapKitError("core_wallet_connection_not_found");let H=G.WalletContractV4.create({publicKey:Y.publicKey,workchain:0});q=Z.open(H)}return q}let O=g($.Chain.Ton);async function h({assetValue:z,recipient:Q,memo:Z,sender:Y,sweep:H}){if(z.isGasAsset){let v3=Z?S(Z).toBoc().toString("base64"):void 0,z3=H?L3:void 0;return[{address:Q,amount:z.getBaseValue("string"),payload:v3,sendMode:z3}]}if(H)throw new $.SwapKitError({errorKey:"core_swap_invalid_params",info:{asset:z.toString(),reason:"TON sweep is only supported for the native gas asset"}});let k=z.address;if(!k)throw new $.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:z.toString()}});let J=Y??await R(),N=await C({jettonMasterAddress:k,ownerAddress:J}),U=G.Address.parse(Q),P=G.Address.parse(J),u=z.getBaseValue("bigint"),F=Z?S(Z):void 0,_=e({destinationAddress:U,forwardPayload:F,jettonAmount:u,responseAddress:P});return[{address:N.toString(),amount:J3.toString(),payload:_.toBoc().toString("base64")}]}function j({sender:z,...Q}){return h({...Q,sender:z})}function M(z){return z.map((Q)=>{let Z=Q.payload?G.Cell.fromBase64(Q.payload):void 0,Y=Q.stateInit?G.loadStateInit(G.Cell.fromBase64(Q.stateInit).asSlice()):void 0,H=G.Address.parse(Q.address),k=G.Address.isFriendly(Q.address)?G.Address.parseFriendly(Q.address).isBounceable:!0;return G.internal({body:Z,bounce:k,init:Y,to:H,value:BigInt(Q.amount)})})}async function b(z){let Q=await I(),Z=await L();if(!Z||!Q)throw new $.SwapKitError("core_wallet_connection_not_found");let Y=await B(),{state:H}=await Y.getContractState(Z.address),k=H==="active",J=k?await Z.getSeqno():0,N=Z.createTransfer({messages:M(z),secretKey:Q.secretKey,sendMode:z[0]?.sendMode??l,seqno:J}),U=G.external({body:N,init:k?void 0:Z.init,to:Z.address});return G.beginCell().store(G.storeMessage(U)).endCell()}async function T(z){return await(await B()).sendFile(z.toBoc()),z.hash().toString("hex")}async function E(z){let Q=await b(z);return T(Q)}async function a({assetValue:z,recipient:Q,memo:Z,sweep:Y}){let H=await j({assetValue:z,memo:Z,recipient:Q,sweep:Y});return E(H)}async function s({sender:z,...Q}){let{baseDecimal:Z}=$.getChainConfig($.Chain.Ton),Y=await K.match(z).with(K.P.string,(J)=>{return G.Address.parseFriendly(J).address}).otherwise(async()=>{return(await L()).address});if(!Y)throw new $.SwapKitError("toolbox_fee_estimation_failed",{chain:$.Chain.Ton});let H=$.AssetValue.from({chain:$.Chain.Ton,value:"0.01"}),k=await B();try{let J=await j({sender:z,...Q}),N=await I(),U=await L();if(!U||!N)return H;let P=await U.getSeqno(),u=U.createTransfer({messages:M(J),secretKey:N.secretKey,sendMode:J[0]?.sendMode??l,seqno:P}),{source_fees:F}=await k.estimateExternalMessageFee(Y,{body:u,ignoreSignature:!0,initCode:null,initData:null}),_=F.in_fwd_fee+F.storage_fee+F.gas_fee+F.fwd_fee;return H.set($.SwapKitNumber.fromBigInt(BigInt(_),Z))}catch{return H}}async function C({jettonMasterAddress:z,ownerAddress:Q}){try{let Z=await B(),Y=G.Address.parse(z),H=G.Address.parse(Q);return await Z.open(G.JettonMaster.create(Y)).getWalletAddress(H)}catch{throw new $.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:z,ownerAddress:Q}})}}function e({jettonAmount:z,destinationAddress:Q,responseAddress:Z,forwardAmount:Y=B3,forwardPayload:H}){let k=G.beginCell().storeUint(I3,32).storeUint(0,64).storeCoins(z).storeAddress(Q).storeAddress(Z).storeBit(0).storeCoins(Y);if(H)k.storeBit(1).storeRef(H);else k.storeBit(0);return k.endCell()}function S(z){return G.beginCell().storeUint(0,32).storeStringTail(z).endCell()}return{broadcastTransaction:T,createTransaction:j,estimateTransactionFee:s,getAddress:R,getBalance:O,getJettonWalletAddress:C,sign:b,signAndBroadcastTransaction:E,transfer:a,validateAddress:r}}function r(v){try{return G.Address.parse(v),!0}catch{return!1}}var d,$,n,G,K,I3=260734629,B3,J3,l,L3,R3=60000,y,o=0;var t=f(()=>{i();d=require("@orbs-network/ton-access"),$=require("@swapkit/helpers"),n=require("@ton/crypto"),G=require("@ton/ton"),K=require("ts-pattern"),B3=G.toNano("0.01"),J3=G.toNano("0.05"),l=G.SendMode.PAY_GAS_SEPARATELY+G.SendMode.IGNORE_ERRORS,L3=G.SendMode.CARRY_ALL_REMAINING_BALANCE+G.SendMode.IGNORE_ERRORS});var O3={};k3(O3,{validateTonAddress:()=>r,getTONToolbox:()=>N3});module.exports=q3(O3);var j3=f(()=>{t()});j3();
|
package/dist/src/ton/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var v3=Object.defineProperty;var z3=(z)=>z;function G3(z,X){this[z]=z3.bind(null,X)}var Q3=(z,X)=>{for(var H in X)v3(z,H,{get:X[H],enumerable:!0,configurable:!0,set:G3.bind(X,H)})};var _=(z,X)=>()=>(z&&(X=z(z=0)),X);var W3=((z)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(z,{get:(X,H)=>(typeof require<"u"?require:X)[H]}):z)(function(z){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+z+'" is not supported')});import{AssetValue as w,getChainConfig as X3}from"@swapkit/helpers";import{SwapKitApi as Z3}from"@swapkit/helpers/api";function E3(){function z(){let X=Date.now(),H=f||X;return f=H,X>f?X:H+1}return $3+z().toString(36)}function c(z){return async function(H,J=!0){let x=await Z3.getChainBalance({address:H,chain:z,scamFilter:J}),{baseDecimal:j}=X3(z),I=x.map(({identifier:N,value:y,decimal:F})=>{return new w({decimal:F||j,identifier:N,value:y})});if(!I.some((N)=>N.isGasAsset))return[w.from({chain:z}),...I];return I}}var $3,f=0;var A=_(()=>{$3=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{getHttpEndpoint as q3}from"@orbs-network/ton-access";import{AssetValue as H3,Chain as O,getChainConfig as Y3,SKConfig as k3,SwapKitError as U,SwapKitNumber as x3}from"@swapkit/helpers";import{mnemonicToWalletKey as I3}from"@ton/crypto";import{Address as k,beginCell as W,Cell as m,external as B3,internal as J3,JettonMaster as L3,loadStateInit as R3,SendMode as V,storeMessage as U3,TonClient as K3,toNano as o,WalletContractV4 as N3}from"@ton/ton";import{match as g,P as M}from"ts-pattern";async function y3(){let z=Date.now();if(D&&z-l<V3)return D;return D=await q3(),l=z,D}async function h3(){let[z]=k3.get("rpcUrls")[O.Ton]??[];if(z)return z;return await y3()}function P3(z={}){let X,H,J;async function x(){if(!X){let v=z.provider??await h3();X=new K3({endpoint:v})}return X}async function j(){return(await K()).address.toString()}async function I(){if(J)return J;return J=await g(z).with({phrase:M.string},async({phrase:v})=>I3(v.split(" "))).with({signer:M.any},({signer:v})=>v).otherwise(()=>{return}),J}async function K(v){if(!H||v){let G=await I(),Q=await x(),$=v||G;if(!$)throw new U("core_wallet_connection_not_found");let Z=N3.create({publicKey:$.publicKey,workchain:0});H=Q.open(Z)}return H}let N=c(O.Ton);async function y({assetValue:v,recipient:G,memo:Q,sender:$,sweep:Z}){if(v.isGasAsset){let s=Q?p(Q).toBoc().toString("base64"):void 0,e=Z?D3:void 0;return[{address:G,amount:v.getBaseValue("string"),payload:s,sendMode:e}]}if(Z)throw new U({errorKey:"core_swap_invalid_params",info:{asset:v.toString(),reason:"TON sweep is only supported for the native gas asset"}});let q=v.address;if(!q)throw new U({errorKey:"core_swap_contract_not_found",info:{asset:v.toString()}});let Y=$??await j(),L=await S({jettonMasterAddress:q,ownerAddress:Y}),B=k.parse(G),h=k.parse(Y),P=v.getBaseValue("bigint"),R=Q?p(Q):void 0,u=a({destinationAddress:B,forwardPayload:R,jettonAmount:P,responseAddress:h});return[{address:L.toString(),amount:j3.toString(),payload:u.toBoc().toString("base64")}]}function F({sender:v,...G}){return y({...G,sender:v})}function b(v){return v.map((G)=>{let Q=G.payload?m.fromBase64(G.payload):void 0,$=G.stateInit?R3(m.fromBase64(G.stateInit).asSlice()):void 0,Z=k.parse(G.address),q=k.isFriendly(G.address)?k.parseFriendly(G.address).isBounceable:!0;return J3({body:Q,bounce:q,init:$,to:Z,value:BigInt(G.amount)})})}async function T(v){let G=await I(),Q=await K();if(!Q||!G)throw new U("core_wallet_connection_not_found");let $=await x(),{state:Z}=await $.getContractState(Q.address),q=Z==="active",Y=q?await Q.getSeqno():0,L=Q.createTransfer({messages:b(v),secretKey:G.secretKey,sendMode:v[0]?.sendMode??i,seqno:Y}),B=B3({body:L,init:q?void 0:Q.init,to:Q.address});return W().store(U3(B)).endCell()}async function E(v){return await(await x()).sendFile(v.toBoc()),v.hash().toString("hex")}async function C(v){let G=await T(v);return E(G)}async function r({assetValue:v,recipient:G,memo:Q,sweep:$}){let Z=await F({assetValue:v,memo:Q,recipient:G,sweep:$});return C(Z)}async function t({sender:v,...G}){let{baseDecimal:Q}=Y3(O.Ton),$=await g(v).with(M.string,(Y)=>{return k.parseFriendly(Y).address}).otherwise(async()=>{return(await K()).address});if(!$)throw new U("toolbox_fee_estimation_failed",{chain:O.Ton});let Z=H3.from({chain:O.Ton,value:"0.01"}),q=await x();try{let Y=await F({sender:v,...G}),L=await I(),B=await K();if(!B||!L)return Z;let h=await B.getSeqno(),P=B.createTransfer({messages:b(Y),secretKey:L.secretKey,sendMode:Y[0]?.sendMode??i,seqno:h}),{source_fees:R}=await q.estimateExternalMessageFee($,{body:P,ignoreSignature:!0,initCode:null,initData:null}),u=R.in_fwd_fee+R.storage_fee+R.gas_fee+R.fwd_fee;return Z.set(x3.fromBigInt(BigInt(u),Q))}catch{return Z}}async function S({jettonMasterAddress:v,ownerAddress:G}){try{let Q=await x(),$=k.parse(v),Z=k.parse(G);return await Q.open(L3.create($)).getWalletAddress(Z)}catch{throw new U({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:v,ownerAddress:G}})}}function a({jettonAmount:v,destinationAddress:G,responseAddress:Q,forwardAmount:$=O3,forwardPayload:Z}){let q=W().storeUint(F3,32).storeUint(0,64).storeCoins(v).storeAddress(G).storeAddress(Q).storeBit(0).storeCoins($);if(Z)q.storeBit(1).storeRef(Z);else q.storeBit(0);return q.endCell()}function p(v){return W().storeUint(0,32).storeStringTail(v).endCell()}return{broadcastTransaction:E,createTransaction:F,estimateTransactionFee:t,getAddress:j,getBalance:N,getJettonWalletAddress:S,sign:T,signAndBroadcastTransaction:C,transfer:r,validateAddress:d}}function d(z){try{return k.parse(z),!0}catch{return!1}}var F3=260734629,O3,j3,i,D3,V3=60000,D,l=0;var n=_(()=>{A();O3=o("0.01"),j3=o("0.05"),i=V.PAY_GAS_SEPARATELY+V.IGNORE_ERRORS,D3=V.CARRY_ALL_REMAINING_BALANCE+V.IGNORE_ERRORS});var _3={};Q3(_3,{validateTonAddress:()=>d,getTONToolbox:()=>P3});var f3=_(()=>{n()});f3();export{d as validateTonAddress,P3 as getTONToolbox};
|
package/dist/src/tron/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var az=Object.create;var{getPrototypeOf:rz,defineProperty:T,getOwnPropertyNames:Zz,getOwnPropertyDescriptor:sz}=Object,$z=Object.prototype.hasOwnProperty;function Yz(z){return this[z]}var ez,zJ,RJ=(z,J,Q)=>{var Z=z!=null&&typeof z==="object";if(Z){var Y=J?ez??=new WeakMap:zJ??=new WeakMap,q=Y.get(z);if(q)return q}Q=z!=null?az(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},JJ=(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=sz(z,Z))||Q.enumerable})}return Qz.set(z,J),J},Qz;var QJ=(z)=>z;function ZJ(z,J){this[z]=QJ.bind(null,J)}var $J=(z,J)=>{for(var Q in J)T(z,Q,{get:J[Q],enumerable:!0,configurable:!0,set:ZJ.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 y(z,J,Q){let Z=z.get(J);if(Z)Z.push(Q);else z.set(J,[Q])}function qJ(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===E){let[k,K]=u(z,Q);Q=K,y(J,q,{data:new Uint8Array(w(k)),wireType:E})}else if(W===A){let[k,K]=u(z,Q);Q=K;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,y(J,q,{data:m,wireType:A})}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,y(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,y(J,q,{data:k,wireType:jz})}else throw new R.SwapKitError("toolbox_tron_transaction_creation_failed")}return J}function GJ(z){let J=[];for(let[q,W]of[...z.entries()].sort(([k],[K])=>k-K))for(let{wireType:k,data:K}of W){let D=BigInt(q<<3|k);if(J.push(new Uint8Array(w(D))),k===A)J.push(new Uint8Array(w(BigInt(K.length))));J.push(K)}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=qJ(Q);if(J.expiration!==void 0)Z.set(YJ,[{data:new Uint8Array(w(BigInt(J.expiration))),wireType:E}]);if(J.data!==void 0)Z.set(XJ,[{data:S.hexToBytes(J.data),wireType:A}]);if(J.fee_limit!==void 0)Z.set(jJ,[{data:new Uint8Array(w(BigInt(J.fee_limit))),wireType:E}]);let Y=GJ(Z),q=S.bytesToHex(Y),W=S.bytesToHex(qz.sha256(Y));return{raw_data_hex:q,txID:W}}var qz,S,R,E=0,Xz=1,A=2,jz=5,YJ=8,XJ=10,jJ=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=h.decode(z);return J.length===21&&J[0]===Uz}catch{return!1}}function Cz(z){return N.bytesToHex(h.decode(z))}function MJ(z){return h.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),h.encode(Z)}function Kz({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 v({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 OJ(z){return`000000000000000000000000${N.bytesToHex(MJ(z))}`}function UJ(z){let J=typeof z==="bigint"?z:BigInt(z);if(J<0n||J>=WJ)throw new c.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});return J.toString(16).padStart(64,"0")}function _(z){return z.map(({type:J,value:Q})=>J==="address"?OJ(Q):UJ(BigInt(Q))).join("")}function Pz(z){return N.bytesToHex(new TextEncoder().encode(z))}var p,l,Mz,N,Oz,c,h,Uz=65,WJ;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"),h=Oz.createBase58check(l.sha256),WJ=2n**256n});function Lz(){try{return C.getRPCUrlSync(C.Chain.Tron)}catch{return Hz}}function Nz(){let z=new AbortController,J=setTimeout(()=>z.abort(),HJ);return{cleanup:()=>clearTimeout(J),signal:z.signal}}async function V(z,J){let{signal:Q,cleanup:Z}=Nz();try{let Y=await fetch(`${Lz()}${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 Bz(z,J){let{signal:Q,cleanup:Z}=Nz();try{let Y=await fetch(`${J??Lz()}${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 Dz(z){if(!B(z))throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:"Invalid address"});try{let J=await Bz(`/v1/accounts/${z}`,Hz);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 Fz({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 v(Y),Y}async function Rz({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 K=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(K?.contract_address!==J||K?.owner_address!==z)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");return v(W.transaction),W.transaction}function Vz({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 LJ({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})}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 g(){let z={};try{let{chainParameter:J}=await Bz("/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??CJ,createAccountFee:z.getCreateNewAccountFeeInSystemContract??z.getCreateAccountFee??kJ,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 b(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 LJ({...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){if(Number.isFinite(Q)&&Q>0)return Q;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 Vz({...z,ownerAddress:z.sender});return J}catch(J){return C.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${J instanceof Error?J.message:J}`}),65000}}async function Sz({assetAddress:z,owner:J,spender:Q}){let Z=_([{type:"address",value:J},{type:"address",value:Q}]),q=(await Vz({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,Hz="https://api.trongrid.io",CJ=1000,kJ=1e6,KJ=420,PJ=1e6,HJ=30000;var vz=f(()=>{o();C=require("@swapkit/helpers")});function yz({phrase:z,derivationPath:J}){let Q=xz.HDKey.fromMasterSeed(gz.mnemonicToSeedSync(z)).derive(J);if(!Q.privateKey)throw new $.SwapKitError("toolbox_tron_no_signer");return wz.bytesToHex(Q.privateKey)}function Ez({phrase:z,derivationPath:J,index:Q}){let Z=J||$.derivationPathToString($.updateDerivationPath($.NetworkDerivationPath[$.Chain.Tron],{index:Q||0}));return yz({derivationPath:Z,phrase:z})}function BJ({phrase:z,derivationPath:J}){let Q=yz({derivationPath:J,phrase:z}),Z=kz(Q);return{getAddress:()=>Promise.resolve(Z),signTransaction:(Y)=>{v(Y);let q=Kz({privateKey:Q,txID:Y.txID});return Promise.resolve({...Y,signature:[q]})}}}function fz({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 K=Pz(J);Y.data=K,q.data=K}if(Q){let K=z.raw_data.expiration+Q*1000;Y.expiration=K,q.expiration=K}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 Az(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})=>BJ({derivationPath:Q,phrase:X})).with({signer:I.P.not(I.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||Iz,G=j??(await g()).energyFee,U=M*G,O=Math.ceil(U*1.5);return Math.min(Math.max(O,1e7),150000000)}async function K({contractAddress:X,functionSelector:j,parameter:M,sender:G,memo:U,expiration:O,extraEnergy:H=0}){let P=await n({contractAddress:X,functionSelector:j,parameter:M,sender:G}),L=await k(P+H),F=await Rz({contractAddress:X,feeLimit:L,functionSelector:j,ownerAddress:G,parameter:M});return fz({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 Dz(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(),H=await r({assetValue:j,expiration:G,memo:M,recipient:X,sender:O}),P=await U.signTransaction(H),L=await x(P);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 mz({memo:X,recipient:j,senderAddress:M}){let[G,U,O]=await Promise.all([g(),b(j),i(M)]),H=U?0:G.createAccountFee,P=a({feePerUnit:G.bandwidthFee,requiredBandwidth:_z,resources:O.bandwidth}),L=X?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:H+P+L})}async function uz({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,H,P,L]=await Promise.all([g(),b(M),i(G),n({contractAddress:U,functionSelector:"transfer(address,uint256)",parameter:_([{type:"address",value:M},{type:"uint256",value:X.getBaseValue("string")}]),sender:G})]),zz=L+(H?0:d),nz=a({feePerUnit:O.bandwidthFee,requiredBandwidth:Tz,resources:P.bandwidth}),Jz=Math.max(0,P.energy.total-P.energy.used),dz=zz>Jz?(zz-Jz)*O.energyFee:0,tz=j?O.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:nz+dz+tz})}async function pz({assetValue:X,memo:j,recipient:M}){let[G,U]=await Promise.all([g(),b(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+_z*G.bandwidthFee+F})}let H=await k(Iz+(U?0:d),G.energyFee),P=j?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:H+Tz*G.bandwidthFee+P})}async function lz({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 pz({assetValue:X,memo:j,recipient:M});return X.isGasAsset?mz({memo:j,recipient:M,senderAddress:O}):uz({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 r({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 P=await Fz({amount:j.getBaseValue("number"),from:G,to:X});return fz({expiration:U,memo:M,transaction:P})}let O=j.address;if(!O)throw new $.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:j.toString()});let H=await b(X);return K({contractAddress:O,expiration:U,extraEnergy:H?0:d,functionSelector:"transfer(address,uint256)",memo:M,parameter:_([{type:"address",value:X},{type:"uint256",value:j.getBaseValue("string")}]),sender:G})}async function s(X){v(X);let j=await q();if(!j)throw new $.SwapKitError("toolbox_tron_no_signer");return j.signTransaction(X)}async function cz(X){let j=await s(X);return x(j)}function e({assetAddress:X,spenderAddress:j,from:M}){return Sz({assetAddress:X,owner:M,spender:j})}async function oz({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 iz({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(),H=M!==void 0?BigInt(M).toString():NJ;try{let P=await K({contractAddress:X,functionSelector:"approve(address,uint256)",parameter:_([{type:"address",value:j},{type:"uint256",value:H}]),sender:O}),L=await U.signTransaction(P),F=await x(L);if(!F)throw new $.SwapKitError("toolbox_tron_approve_failed");return F}catch(P){if(P instanceof $.SwapKitError)throw P;throw new $.SwapKitError("toolbox_tron_approve_failed",{error:P})}}return{approve:iz,broadcastTransaction:x,createTransaction:r,estimateTransactionFee:lz,getAddress:W,getApprovedAmount:e,getBalance:D,getRpcUrl:()=>$.getRPCUrl($.Chain.Tron),isApproved:oz,signAndBroadcastTransaction:cz,signTransaction:s,transfer:m,validateAddress:B}}var wz,xz,gz,$,I,bz,_z=268,Iz=65000,d=25000,Tz=345,t="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",NJ="115792089237316195423570985008687907853269984665640564039457584007913129639935";var hz=f(()=>{Wz();vz();o();wz=require("@noble/hashes/utils.js"),xz=require("@scure/bip32"),gz=require("@scure/bip39"),$=require("@swapkit/helpers"),I=require("ts-pattern"),bz=B});var DJ={};$J(DJ,{validateTronAddress:()=>bz,getTronToolbox:()=>Az,getTronPrivateKeyFromMnemonic:()=>Ez});module.exports=JJ(DJ);var FJ=f(()=>{hz()});FJ();
|
|
1
|
+
var az=Object.create;var{getPrototypeOf:rz,defineProperty:T,getOwnPropertyNames:Zz,getOwnPropertyDescriptor:sz}=Object,$z=Object.prototype.hasOwnProperty;function Yz(z){return this[z]}var ez,zJ,RJ=(z,J,Q)=>{var Z=z!=null&&typeof z==="object";if(Z){var Y=J?ez??=new WeakMap:zJ??=new WeakMap,q=Y.get(z);if(q)return q}Q=z!=null?az(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},JJ=(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=sz(z,Z))||Q.enumerable})}return Qz.set(z,J),J},Qz;var QJ=(z)=>z;function ZJ(z,J){this[z]=QJ.bind(null,J)}var $J=(z,J)=>{for(var Q in J)T(z,Q,{get:J[Q],enumerable:!0,configurable:!0,set:ZJ.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 y(z,J,Q){let Z=z.get(J);if(Z)Z.push(Q);else z.set(J,[Q])}function qJ(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===E){let[k,K]=u(z,Q);Q=K,y(J,q,{data:new Uint8Array(w(k)),wireType:E})}else if(W===A){let[k,K]=u(z,Q);Q=K;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,y(J,q,{data:m,wireType:A})}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,y(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,y(J,q,{data:k,wireType:jz})}else throw new R.SwapKitError("toolbox_tron_transaction_creation_failed")}return J}function GJ(z){let J=[];for(let[q,W]of[...z.entries()].sort(([k],[K])=>k-K))for(let{wireType:k,data:K}of W){let D=BigInt(q<<3|k);if(J.push(new Uint8Array(w(D))),k===A)J.push(new Uint8Array(w(BigInt(K.length))));J.push(K)}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=qJ(Q);if(J.expiration!==void 0)Z.set(YJ,[{data:new Uint8Array(w(BigInt(J.expiration))),wireType:E}]);if(J.data!==void 0)Z.set(XJ,[{data:S.hexToBytes(J.data),wireType:A}]);if(J.fee_limit!==void 0)Z.set(jJ,[{data:new Uint8Array(w(BigInt(J.fee_limit))),wireType:E}]);let Y=GJ(Z),q=S.bytesToHex(Y),W=S.bytesToHex(qz.sha256(Y));return{raw_data_hex:q,txID:W}}var qz,S,R,E=0,Xz=1,A=2,jz=5,YJ=8,XJ=10,jJ=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=h.decode(z);return J.length===21&&J[0]===Uz}catch{return!1}}function Cz(z){return N.bytesToHex(h.decode(z))}function MJ(z){return h.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),h.encode(Z)}function Kz({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 v({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 OJ(z){return`000000000000000000000000${N.bytesToHex(MJ(z))}`}function UJ(z){let J=typeof z==="bigint"?z:BigInt(z);if(J<0n||J>=WJ)throw new c.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});return J.toString(16).padStart(64,"0")}function _(z){return z.map(({type:J,value:Q})=>J==="address"?OJ(Q):UJ(BigInt(Q))).join("")}function Pz(z){return N.bytesToHex(new TextEncoder().encode(z))}var p,l,Mz,N,Oz,c,h,Uz=65,WJ;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"),h=Oz.createBase58check(l.sha256),WJ=2n**256n});function Lz(){try{return C.getRPCUrlSync(C.Chain.Tron)}catch{return Hz}}function Nz(){let z=new AbortController,J=setTimeout(()=>z.abort(),HJ);return{cleanup:()=>clearTimeout(J),signal:z.signal}}async function V(z,J){let{signal:Q,cleanup:Z}=Nz();try{let Y=await fetch(`${Lz()}${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 Bz(z,J){let{signal:Q,cleanup:Z}=Nz();try{let Y=await fetch(`${J??Lz()}${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 Dz(z){if(!B(z))throw new C.SwapKitError("toolbox_tron_trongrid_api_error",{address:z,message:"Invalid address"});try{let J=await Bz(`/v1/accounts/${z}`,Hz);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 Fz({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 v(Y),Y}async function Rz({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 K=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(K?.contract_address!==J||K?.owner_address!==z)throw new C.SwapKitError("toolbox_tron_transaction_creation_failed");return v(W.transaction),W.transaction}function Vz({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 LJ({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})}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 g(){let z={};try{let{chainParameter:J}=await Bz("/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??CJ,createAccountFee:z.getCreateNewAccountFeeInSystemContract??z.getCreateAccountFee??kJ,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 b(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 LJ({...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){if(Number.isFinite(Q)&&Q>0)return Q;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 Vz({...z,ownerAddress:z.sender});return J}catch(J){return C.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${J instanceof Error?J.message:J}`}),65000}}async function Sz({assetAddress:z,owner:J,spender:Q}){let Z=_([{type:"address",value:J},{type:"address",value:Q}]),q=(await Vz({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,Hz="https://api.trongrid.io",CJ=1000,kJ=1e6,KJ=420,PJ=1e6,HJ=30000;var vz=f(()=>{o();C=require("@swapkit/helpers")});function yz({phrase:z,derivationPath:J}){let Q=xz.HDKey.fromMasterSeed(gz.mnemonicToSeedSync(z)).derive(J);if(!Q.privateKey)throw new $.SwapKitError("toolbox_tron_no_signer");return wz.bytesToHex(Q.privateKey)}function Ez({phrase:z,derivationPath:J,index:Q}){let Z=J||$.derivationPathToString($.updateDerivationPath($.NetworkDerivationPath[$.Chain.Tron],{index:Q||0}));return yz({derivationPath:Z,phrase:z})}function BJ({phrase:z,derivationPath:J}){let Q=yz({derivationPath:J,phrase:z}),Z=kz(Q);return{getAddress:()=>Promise.resolve(Z),signTransaction:(Y)=>{v(Y);let q=Kz({privateKey:Q,txID:Y.txID});return Promise.resolve({...Y,signature:[q]})}}}function fz({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 K=J.startsWith("0x")?J.replace(/^0x/,""):Pz(J);Y.data=K,q.data=K}if(Q){let K=z.raw_data.expiration+Q*1000;Y.expiration=K,q.expiration=K}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 Az(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})=>BJ({derivationPath:Q,phrase:X})).with({signer:I.P.not(I.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||Iz,G=j??(await g()).energyFee,U=M*G,O=Math.ceil(U*1.5);return Math.min(Math.max(O,1e7),150000000)}async function K({contractAddress:X,functionSelector:j,parameter:M,sender:G,memo:U,expiration:O,extraEnergy:H=0}){let P=await n({contractAddress:X,functionSelector:j,parameter:M,sender:G}),L=await k(P+H),F=await Rz({contractAddress:X,feeLimit:L,functionSelector:j,ownerAddress:G,parameter:M});return fz({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 Dz(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(),H=await r({assetValue:j,expiration:G,memo:M,recipient:X,sender:O}),P=await U.signTransaction(H),L=await x(P);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 mz({memo:X,recipient:j,senderAddress:M}){let[G,U,O]=await Promise.all([g(),b(j),i(M)]),H=U?0:G.createAccountFee,P=a({feePerUnit:G.bandwidthFee,requiredBandwidth:_z,resources:O.bandwidth}),L=X?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:H+P+L})}async function uz({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,H,P,L]=await Promise.all([g(),b(M),i(G),n({contractAddress:U,functionSelector:"transfer(address,uint256)",parameter:_([{type:"address",value:M},{type:"uint256",value:X.getBaseValue("string")}]),sender:G})]),zz=L+(H?0:d),nz=a({feePerUnit:O.bandwidthFee,requiredBandwidth:Tz,resources:P.bandwidth}),Jz=Math.max(0,P.energy.total-P.energy.used),dz=zz>Jz?(zz-Jz)*O.energyFee:0,tz=j?O.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:nz+dz+tz})}async function pz({assetValue:X,memo:j,recipient:M}){let[G,U]=await Promise.all([g(),b(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+_z*G.bandwidthFee+F})}let H=await k(Iz+(U?0:d),G.energyFee),P=j?G.memoFee:0;return $.AssetValue.from({chain:$.Chain.Tron,fromBaseDecimal:$.BaseDecimal.TRON,value:H+Tz*G.bandwidthFee+P})}async function lz({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 pz({assetValue:X,memo:j,recipient:M});return X.isGasAsset?mz({memo:j,recipient:M,senderAddress:O}):uz({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 r({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 P=await Fz({amount:j.getBaseValue("number"),from:G,to:X});return fz({expiration:U,memo:M,transaction:P})}let O=j.address;if(!O)throw new $.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:j.toString()});let H=await b(X);return K({contractAddress:O,expiration:U,extraEnergy:H?0:d,functionSelector:"transfer(address,uint256)",memo:M,parameter:_([{type:"address",value:X},{type:"uint256",value:j.getBaseValue("string")}]),sender:G})}async function s(X){v(X);let j=await q();if(!j)throw new $.SwapKitError("toolbox_tron_no_signer");return j.signTransaction(X)}async function cz(X){let j=await s(X);return x(j)}function e({assetAddress:X,spenderAddress:j,from:M}){return Sz({assetAddress:X,owner:M,spender:j})}async function oz({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 iz({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(),H=M!==void 0?BigInt(M).toString():NJ;try{let P=await K({contractAddress:X,functionSelector:"approve(address,uint256)",parameter:_([{type:"address",value:j},{type:"uint256",value:H}]),sender:O}),L=await U.signTransaction(P),F=await x(L);if(!F)throw new $.SwapKitError("toolbox_tron_approve_failed");return F}catch(P){if(P instanceof $.SwapKitError)throw P;throw new $.SwapKitError("toolbox_tron_approve_failed",{error:P})}}return{approve:iz,broadcastTransaction:x,createTransaction:r,estimateTransactionFee:lz,getAddress:W,getApprovedAmount:e,getBalance:D,getRpcUrl:()=>$.getRPCUrl($.Chain.Tron),isApproved:oz,signAndBroadcastTransaction:cz,signTransaction:s,transfer:m,validateAddress:B}}var wz,xz,gz,$,I,bz,_z=268,Iz=65000,d=25000,Tz=345,t="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",NJ="115792089237316195423570985008687907853269984665640564039457584007913129639935";var hz=f(()=>{Wz();vz();o();wz=require("@noble/hashes/utils.js"),xz=require("@scure/bip32"),gz=require("@scure/bip39"),$=require("@swapkit/helpers"),I=require("ts-pattern"),bz=B});var DJ={};$J(DJ,{validateTronAddress:()=>bz,getTronToolbox:()=>Az,getTronPrivateKeyFromMnemonic:()=>Ez});module.exports=JJ(DJ);var FJ=f(()=>{hz()});FJ();
|
package/dist/src/tron/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var tz=Object.defineProperty;var az=(z)=>z;function rz(z,J){this[z]=az.bind(null,J)}var sz=(z,J)=>{for(var Q in J)tz(z,Q,{get:J[Q],enumerable:!0,configurable:!0,set:rz.bind(J,Q)})};var T=(z,J)=>()=>(z&&(J=z(z=0)),J);var _J=((z)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(z,{get:(J,Q)=>(typeof require<"u"?require:J)[Q]}):z)(function(z){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+z+'" is not supported')});import{sha256 as ez}from"@noble/hashes/sha2.js";import{bytesToHex as Qz,hexToBytes as Zz}from"@noble/hashes/utils.js";import{SwapKitError as S}from"@swapkit/helpers";function l(z,J){let Q=0n,Z=0n,$=J;while($<z.length&&$-J<10){let j=z[$++];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 f(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 b(z,J,Q){let Z=z.get(J);if(Z)Z.push(Q);else z.set(J,[Q])}function ZJ(z){let J=new Map,Q=0;while(Q<z.length){let[Z,$]=l(z,Q);Q=$;let j=Number(Z>>3n),W=Number(Z&7n);if(W===y){let[k,U]=l(z,Q);Q=U,b(J,j,{data:new Uint8Array(f(k)),wireType:y})}else if(W===E){let[k,U]=l(z,Q);Q=U;let F=Number(k);if(F<0||Q+F>z.length)throw new S("toolbox_tron_transaction_creation_failed");let p=z.slice(Q,Q+F);Q+=F,b(J,j,{data:p,wireType:E})}else if(W===$z){if(Q+8>z.length)throw new S("toolbox_tron_transaction_creation_failed");let k=z.slice(Q,Q+8);Q+=8,b(J,j,{data:k,wireType:$z})}else if(W===Yz){if(Q+4>z.length)throw new S("toolbox_tron_transaction_creation_failed");let k=z.slice(Q,Q+4);Q+=4,b(J,j,{data:k,wireType:Yz})}else throw new S("toolbox_tron_transaction_creation_failed")}return J}function $J(z){let J=[];for(let[j,W]of[...z.entries()].sort(([k],[U])=>k-U))for(let{wireType:k,data:U}of W){let F=BigInt(j<<3|k);if(J.push(new Uint8Array(f(F))),k===E)J.push(new Uint8Array(f(BigInt(U.length))));J.push(U)}let Q=J.reduce((j,W)=>j+W.length,0),Z=new Uint8Array(Q),$=0;for(let j of J)Z.set(j,$),$+=j.length;return Z}function Xz(z,J){if(!z||z.length%2!==0)throw new S("toolbox_tron_transaction_creation_failed");let Q=Zz(z),Z=ZJ(Q);if(J.expiration!==void 0)Z.set(zJ,[{data:new Uint8Array(f(BigInt(J.expiration))),wireType:y}]);if(J.data!==void 0)Z.set(JJ,[{data:Zz(J.data),wireType:E}]);if(J.fee_limit!==void 0)Z.set(QJ,[{data:new Uint8Array(f(BigInt(J.fee_limit))),wireType:y}]);let $=$J(Z),j=Qz($),W=Qz(ez($));return{raw_data_hex:j,txID:W}}var y=0,$z=1,E=2,Yz=5,zJ=8,JJ=10,QJ=18;var jz=()=>{};import{secp256k1 as qz}from"@noble/curves/secp256k1.js";import{sha256 as Gz}from"@noble/hashes/sha2.js";import{keccak_256 as YJ}from"@noble/hashes/sha3.js";import{bytesToHex as v,hexToBytes as A}from"@noble/hashes/utils.js";import{createBase58check as XJ}from"@scure/base";import{SwapKitError as Wz}from"@swapkit/helpers";function B(z){if(typeof z!=="string")return!1;try{let J=h.decode(z);return J.length===21&&J[0]===Mz}catch{return!1}}function Oz(z){return v(h.decode(z))}function qJ(z){return h.decode(z).slice(1)}function Uz(z){let J=qz.getPublicKey(A(z),!1),Q=YJ(J.slice(1)).slice(-20),Z=new Uint8Array(21);return Z[0]=Mz,Z.set(Q,1),h.encode(Z)}function Cz({txID:z,privateKey:J}){let Q=qz.sign(A(z),A(J),{format:"recovered",prehash:!1}),Z=Q[0]??0,$=v(Q.slice(1,33)),j=v(Q.slice(33,65)),W=(Z+27).toString(16).padStart(2,"0");return $+j+W}function _({txID:z,raw_data_hex:J}){let Q=v(Gz(A(J)));if(z!==Q)throw new Wz("toolbox_tron_invalid_transaction_integrity",{expected:Q,txID:z})}function GJ(z){return`000000000000000000000000${v(qJ(z))}`}function WJ(z){let J=typeof z==="bigint"?z:BigInt(z);if(J<0n||J>=jJ)throw new Wz("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"?GJ(Q):WJ(BigInt(Q))).join("")}function kz(z){return v(new TextEncoder().encode(z))}var h,Mz=65,jJ;var c=T(()=>{h=XJ(Gz),jJ=2n**256n});import{Chain as MJ,getRPCUrlSync as OJ,SwapKitError as L,warnOnce as m}from"@swapkit/helpers";function Pz(){try{return OJ(MJ.Tron)}catch{return Kz}}function Hz(){let z=new AbortController,J=setTimeout(()=>z.abort(),PJ);return{cleanup:()=>clearTimeout(J),signal:z.signal}}async function V(z,J){let{signal:Q,cleanup:Z}=Hz();try{let $=await fetch(`${Pz()}${z}`,{body:JSON.stringify(J),headers:{"Content-Type":"application/json"},method:"POST",signal:Q});if(!$.ok)throw new L("toolbox_tron_trongrid_api_error",{message:`${$.status} ${$.statusText} on ${z}`});return await $.json()}finally{Z()}}async function Lz(z,J){let{signal:Q,cleanup:Z}=Hz();try{let $=await fetch(`${J??Pz()}${z}`,{headers:{"Content-Type":"application/json"},signal:Q});if(!$.ok)throw new L("toolbox_tron_trongrid_api_error",{message:`${$.status} ${$.statusText} on ${z}`});return await $.json()}finally{Z()}}async function Nz(z){if(!B(z))throw new L("toolbox_tron_trongrid_api_error",{address:z,message:"Invalid address"});try{let J=await Lz(`/v1/accounts/${z}`,Kz);if(!(J.success&&J.data)||J.data.length===0)return;let Q;try{Q=Oz(z).toLowerCase()}catch{Q=z.toLowerCase()}let Z=J.data.find(($)=>$.address.toLowerCase()===Q);if(!Z)return;return{balance:Z.balance,trc20:Z.trc20||[]}}catch(J){if(J instanceof L)throw J;throw new L("toolbox_tron_trongrid_api_error",{address:z,message:J instanceof Error?J.message:"Unknown error"})}}async function Bz({from:z,to:J,amount:Q}){let $=await V("/wallet/createtransaction",{amount:Q,owner_address:z,to_address:J,visible:!0});if(!$.txID||!$.raw_data_hex||!$.raw_data)throw new L("toolbox_tron_transaction_creation_failed");let W=$.raw_data?.contract?.[0]?.parameter?.value;if(W?.to_address!==J||W?.owner_address!==z||W?.amount!==Q)throw new L("toolbox_tron_transaction_creation_failed");return _($),$}async function Dz({ownerAddress:z,contractAddress:J,functionSelector:Q,parameter:Z,feeLimit:$,callValue:j=0}){let W=await V("/wallet/triggersmartcontract",{call_value:j,contract_address:J,fee_limit:$,function_selector:Q,owner_address:z,parameter:Z,visible:!0});if(!W.result.result||!W.transaction?.txID||!W.transaction?.raw_data_hex)throw new L("toolbox_tron_transaction_creation_failed");let U=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(U?.contract_address!==J||U?.owner_address!==z)throw new L("toolbox_tron_transaction_creation_failed");return _(W.transaction),W.transaction}function Fz({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 HJ({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})}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 L("toolbox_tron_token_transfer_failed");return Q}catch(J){throw new L("toolbox_tron_broadcast_failed",{error:J})}}async function x(){let z={};try{let{chainParameter:J}=await Lz("/wallet/getchainparameters");for(let Q of J)z[Q.key]=Q.value}catch(J){m({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??UJ,createAccountFee:z.getCreateNewAccountFeeInSystemContract??z.getCreateAccountFee??CJ,energyFee:z.getEnergyFee??kJ,memoFee:z.getMemoFee??KJ}}async function o(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 m({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 i(z){try{let J=await HJ({...z,ownerAddress:z.sender}),Q=J.energy_required??J.energyRequired;if(J.result&&!J.result.result)throw new L("toolbox_tron_trongrid_api_error",{message:J.result.message||"estimateenergy failed"});if(Q!==void 0){if(Number.isFinite(Q)&&Q>0)return Q;throw new L("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(J){m({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 Fz({...z,ownerAddress:z.sender});return J}catch(J){return m({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${J instanceof Error?J.message:J}`}),65000}}async function Rz({assetAddress:z,owner:J,spender:Q}){let Z=I([{type:"address",value:J},{type:"address",value:Q}]),j=(await Fz({contractAddress:z,functionSelector:"allowance(address,address)",ownerAddress:Q,parameter:Z})).constant_result?.[0];if(!j)return 0n;try{return BigInt(`0x${j}`)}catch{return 0n}}var Kz="https://api.trongrid.io",UJ=1000,CJ=1e6,kJ=420,KJ=1e6,PJ=30000;var Vz=T(()=>{c()});import{bytesToHex as LJ}from"@noble/hashes/utils.js";import{HDKey as NJ}from"@scure/bip32";import{mnemonicToSeedSync as BJ}from"@scure/bip39";import{AssetValue as D,BaseDecimal as u,Chain as N,derivationPathToString as fz,getRPCUrl as DJ,NetworkDerivationPath as wz,SwapKitError as K,updateDerivationPath as xz,warnOnce as Sz}from"@swapkit/helpers";import{match as FJ,P as n}from"ts-pattern";function bz({phrase:z,derivationPath:J}){let Q=NJ.fromMasterSeed(BJ(z)).derive(J);if(!Q.privateKey)throw new K("toolbox_tron_no_signer");return LJ(Q.privateKey)}function yz({phrase:z,derivationPath:J,index:Q}){let Z=J||fz(xz(wz[N.Tron],{index:Q||0}));return bz({derivationPath:Z,phrase:z})}function VJ({phrase:z,derivationPath:J}){let Q=bz({derivationPath:J,phrase:z}),Z=Uz(Q);return{getAddress:()=>Promise.resolve(Z),signTransaction:($)=>{_($);let j=Cz({privateKey:Q,txID:$.txID});return Promise.resolve({...$,signature:[j]})}}}function Tz({transaction:z,memo:J,expiration:Q,feeLimit:Z}){let $={},j={};if(Z!==void 0&&z.raw_data)$.fee_limit=Z,j.fee_limit=Z;if(J){let U=kz(J);$.data=U,j.data=U}if(Q){let U=z.raw_data.expiration+Q*1000;$.expiration=U,j.expiration=U}if(Object.keys($).length===0)return z;let{raw_data_hex:W,txID:k}=Xz(z.raw_data_hex,$);return{...z,raw_data:{...z.raw_data,...j},raw_data_hex:W,txID:k}}function Ez(z={}){let J="index"in z?z.index||0:0,Q=fz("derivationPath"in z&&z.derivationPath?z.derivationPath:xz(wz[N.Tron],{index:J})),Z,$=!1;function j(){if($)return Promise.resolve(Z);return Z=FJ(z).with({phrase:n.string},({phrase:Y})=>VJ({derivationPath:Q,phrase:Y})).with({signer:n.not(n.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),$=!0,Promise.resolve(Z)}async function W(){let Y=await j();if(!Y)throw new K("toolbox_tron_no_signer");return Y.getAddress()}async function k(Y,X){let G=Y||_z,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 i({contractAddress:Y,functionSelector:X,parameter:G,sender:q}),H=await k(C+P),R=await Dz({contractAddress:Y,feeLimit:H,functionSelector:X,ownerAddress:q,parameter:G});return Tz({expiration:M,feeLimit:H,memo:O,transaction:R})}async function F(Y){if(!B(Y))return[D.from({chain:N.Tron})];try{let X=await Nz(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)=>(t in O));if(q){let O=q[t];G.push(D.from({asset:`TRON.USDT-${t}`,fromBaseDecimal:6,value:O}))}return G}catch(X){return Sz({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 p({recipient:Y,assetValue:X,memo:G,expiration:q}){if(!B(Y))throw new K("toolbox_tron_token_transfer_failed",{message:"invalid address"});let O=await j();if(!O)throw new K("toolbox_tron_no_signer");try{let M=await W(),P=await r({assetValue:X,expiration:q,memo:G,recipient:Y,sender:M}),C=await O.signTransaction(P),H=await w(C);if(!H)throw new K("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return H}catch(M){throw new K("toolbox_tron_token_transfer_failed",{message:M instanceof Error?M.message:String(M)})}}function a({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 hz({memo:Y,recipient:X,senderAddress:G}){let[q,O,M]=await Promise.all([x(),g(X),o(G)]),P=O?0:q.createAccountFee,C=a({feePerUnit:q.bandwidthFee,requiredBandwidth:vz,resources:M.bandwidth}),H=Y?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:u.TRON,value:P+C+H})}async function mz({assetValue:Y,memo:X,recipient:G,senderAddress:q}){let O=Y.address;if(!O)throw new K("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[M,P,C,H]=await Promise.all([x(),g(G),o(q),i({contractAddress:O,functionSelector:"transfer(address,uint256)",parameter:I([{type:"address",value:G},{type:"uint256",value:Y.getBaseValue("string")}]),sender:q})]),zz=H+(P?0:d),iz=a({feePerUnit:M.bandwidthFee,requiredBandwidth:Iz,resources:C.bandwidth}),Jz=Math.max(0,C.energy.total-C.energy.used),nz=zz>Jz?(zz-Jz)*M.energyFee:0,dz=X?M.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:u.TRON,value:iz+nz+dz})}async function uz({assetValue:Y,memo:X,recipient:G}){let[q,O]=await Promise.all([x(),g(G)]);if(Y.isGasAsset){let H=O?0:q.createAccountFee,R=X?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:u.TRON,value:H+vz*q.bandwidthFee+R})}let P=await k(_z+(O?0:d),q.energyFee),C=X?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:u.TRON,value:P+Iz*q.bandwidthFee+C})}async function pz({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 uz({assetValue:Y,memo:X,recipient:G});return Y.isGasAsset?hz({memo:X,recipient:G,senderAddress:M}):mz({assetValue:Y,memo:X,recipient:G,senderAddress:M})}catch(M){throw Sz({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${M instanceof Error?M.message:M}`}),new K("toolbox_fee_estimation_failed",{chain:N.Tron,error:M})}}async function r({recipient:Y,assetValue:X,memo:G,sender:q,expiration:O}){if(!B(Y)||!B(q))throw new K("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(X.isGasAsset){let C=await Bz({amount:X.getBaseValue("number"),from:q,to:Y});return Tz({expiration:O,memo:G,transaction:C})}let M=X.address;if(!M)throw new K("toolbox_tron_invalid_token_identifier",{identifier:X.toString()});let P=await g(Y);return U({contractAddress:M,expiration:O,extraEnergy:P?0:d,functionSelector:"transfer(address,uint256)",memo:G,parameter:I([{type:"address",value:Y},{type:"uint256",value:X.getBaseValue("string")}]),sender:q})}async function s(Y){_(Y);let X=await j();if(!X)throw new K("toolbox_tron_no_signer");return X.signTransaction(Y)}async function lz(Y){let X=await s(Y);return w(X)}function e({assetAddress:Y,spenderAddress:X,from:G}){return Rz({assetAddress:Y,owner:G,spender:X})}async function cz({assetAddress:Y,spenderAddress:X,from:G,amount:q}){let O=await e({assetAddress:Y,from:G,spenderAddress:X});if(!q)return O>0n;return O>=BigInt(q)}async function oz({assetAddress:Y,spenderAddress:X,amount:G,from:q}){if(!B(Y)||!B(X))throw new K("toolbox_tron_approve_failed");let O=await j();if(!O)throw new K("toolbox_tron_no_signer");let M=q||await W(),P=G!==void 0?BigInt(G).toString():RJ;try{let C=await U({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:I([{type:"address",value:X},{type:"uint256",value:P}]),sender:M}),H=await O.signTransaction(C),R=await w(H);if(!R)throw new K("toolbox_tron_approve_failed");return R}catch(C){if(C instanceof K)throw C;throw new K("toolbox_tron_approve_failed",{error:C})}}return{approve:oz,broadcastTransaction:w,createTransaction:r,estimateTransactionFee:pz,getAddress:W,getApprovedAmount:e,getBalance:F,getRpcUrl:()=>DJ(N.Tron),isApproved:cz,signAndBroadcastTransaction:lz,signTransaction:s,transfer:p,validateAddress:B}}var gz,vz=268,_z=65000,d=25000,Iz=345,t="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",RJ="115792089237316195423570985008687907853269984665640564039457584007913129639935";var Az=T(()=>{jz();Vz();c();gz=B});var SJ={};sz(SJ,{validateTronAddress:()=>gz,getTronToolbox:()=>Ez,getTronPrivateKeyFromMnemonic:()=>yz});var vJ=T(()=>{Az()});vJ();export{gz as validateTronAddress,Ez as getTronToolbox,yz as getTronPrivateKeyFromMnemonic};
|
|
1
|
+
var tz=Object.defineProperty;var az=(J)=>J;function rz(J,z){this[J]=az.bind(null,z)}var sz=(J,z)=>{for(var Q in z)tz(J,Q,{get:z[Q],enumerable:!0,configurable:!0,set:rz.bind(z,Q)})};var T=(J,z)=>()=>(J&&(z=J(J=0)),z);var _J=((J)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(J,{get:(z,Q)=>(typeof require<"u"?require:z)[Q]}):J)(function(J){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+J+'" is not supported')});import{sha256 as ez}from"@noble/hashes/sha2.js";import{bytesToHex as Qz,hexToBytes as Zz}from"@noble/hashes/utils.js";import{SwapKitError as S}from"@swapkit/helpers";function l(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 f(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 ZJ(J){let z=new Map,Q=0;while(Q<J.length){let[Z,$]=l(J,Q);Q=$;let j=Number(Z>>3n),W=Number(Z&7n);if(W===y){let[k,U]=l(J,Q);Q=U,b(z,j,{data:new Uint8Array(f(k)),wireType:y})}else if(W===E){let[k,U]=l(J,Q);Q=U;let F=Number(k);if(F<0||Q+F>J.length)throw new S("toolbox_tron_transaction_creation_failed");let p=J.slice(Q,Q+F);Q+=F,b(z,j,{data:p,wireType:E})}else if(W===$z){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:$z})}else if(W===Yz){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:Yz})}else throw new S("toolbox_tron_transaction_creation_failed")}return z}function $J(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(f(F))),k===E)z.push(new Uint8Array(f(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 Xz(J,z){if(!J||J.length%2!==0)throw new S("toolbox_tron_transaction_creation_failed");let Q=Zz(J),Z=ZJ(Q);if(z.expiration!==void 0)Z.set(zJ,[{data:new Uint8Array(f(BigInt(z.expiration))),wireType:y}]);if(z.data!==void 0)Z.set(JJ,[{data:Zz(z.data),wireType:E}]);if(z.fee_limit!==void 0)Z.set(QJ,[{data:new Uint8Array(f(BigInt(z.fee_limit))),wireType:y}]);let $=$J(Z),j=Qz($),W=Qz(ez($));return{raw_data_hex:j,txID:W}}var y=0,$z=1,E=2,Yz=5,zJ=8,JJ=10,QJ=18;var jz=()=>{};import{secp256k1 as qz}from"@noble/curves/secp256k1.js";import{sha256 as Gz}from"@noble/hashes/sha2.js";import{keccak_256 as YJ}from"@noble/hashes/sha3.js";import{bytesToHex as v,hexToBytes as A}from"@noble/hashes/utils.js";import{createBase58check as XJ}from"@scure/base";import{SwapKitError as Wz}from"@swapkit/helpers";function B(J){if(typeof J!=="string")return!1;try{let z=h.decode(J);return z.length===21&&z[0]===Mz}catch{return!1}}function Oz(J){return v(h.decode(J))}function qJ(J){return h.decode(J).slice(1)}function Uz(J){let z=qz.getPublicKey(A(J),!1),Q=YJ(z.slice(1)).slice(-20),Z=new Uint8Array(21);return Z[0]=Mz,Z.set(Q,1),h.encode(Z)}function Cz({txID:J,privateKey:z}){let Q=qz.sign(A(J),A(z),{format:"recovered",prehash:!1}),Z=Q[0]??0,$=v(Q.slice(1,33)),j=v(Q.slice(33,65)),W=(Z+27).toString(16).padStart(2,"0");return $+j+W}function _({txID:J,raw_data_hex:z}){let Q=v(Gz(A(z)));if(J!==Q)throw new Wz("toolbox_tron_invalid_transaction_integrity",{expected:Q,txID:J})}function GJ(J){return`000000000000000000000000${v(qJ(J))}`}function WJ(J){let z=typeof J==="bigint"?J:BigInt(J);if(z<0n||z>=jJ)throw new Wz("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"?GJ(Q):WJ(BigInt(Q))).join("")}function kz(J){return v(new TextEncoder().encode(J))}var h,Mz=65,jJ;var c=T(()=>{h=XJ(Gz),jJ=2n**256n});import{Chain as MJ,getRPCUrlSync as OJ,SwapKitError as L,warnOnce as m}from"@swapkit/helpers";function Pz(){try{return OJ(MJ.Tron)}catch{return Kz}}function Hz(){let J=new AbortController,z=setTimeout(()=>J.abort(),PJ);return{cleanup:()=>clearTimeout(z),signal:J.signal}}async function V(J,z){let{signal:Q,cleanup:Z}=Hz();try{let $=await fetch(`${Pz()}${J}`,{body:JSON.stringify(z),headers:{"Content-Type":"application/json"},method:"POST",signal:Q});if(!$.ok)throw new L("toolbox_tron_trongrid_api_error",{message:`${$.status} ${$.statusText} on ${J}`});return await $.json()}finally{Z()}}async function Lz(J,z){let{signal:Q,cleanup:Z}=Hz();try{let $=await fetch(`${z??Pz()}${J}`,{headers:{"Content-Type":"application/json"},signal:Q});if(!$.ok)throw new L("toolbox_tron_trongrid_api_error",{message:`${$.status} ${$.statusText} on ${J}`});return await $.json()}finally{Z()}}async function Nz(J){if(!B(J))throw new L("toolbox_tron_trongrid_api_error",{address:J,message:"Invalid address"});try{let z=await Lz(`/v1/accounts/${J}`,Kz);if(!(z.success&&z.data)||z.data.length===0)return;let Q;try{Q=Oz(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 L)throw z;throw new L("toolbox_tron_trongrid_api_error",{address:J,message:z instanceof Error?z.message:"Unknown error"})}}async function Bz({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 L("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 L("toolbox_tron_transaction_creation_failed");return _($),$}async function Dz({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 L("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 L("toolbox_tron_transaction_creation_failed");return _(W.transaction),W.transaction}function Fz({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 HJ({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})}async function w(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 L("toolbox_tron_token_transfer_failed");return Q}catch(z){throw new L("toolbox_tron_broadcast_failed",{error:z})}}async function x(){let J={};try{let{chainParameter:z}=await Lz("/wallet/getchainparameters");for(let Q of z)J[Q.key]=Q.value}catch(z){m({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??UJ,createAccountFee:J.getCreateNewAccountFeeInSystemContract??J.getCreateAccountFee??CJ,energyFee:J.getEnergyFee??kJ,memoFee:J.getMemoFee??KJ}}async function o(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 m({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 g(J){try{let z=await V("/wallet/getaccount",{address:J,visible:!0});return z&&Object.keys(z).length>0}catch{return!1}}async function i(J){try{let z=await HJ({...J,ownerAddress:J.sender}),Q=z.energy_required??z.energyRequired;if(z.result&&!z.result.result)throw new L("toolbox_tron_trongrid_api_error",{message:z.result.message||"estimateenergy failed"});if(Q!==void 0){if(Number.isFinite(Q)&&Q>0)return Q;throw new L("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(z){m({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 Fz({...J,ownerAddress:J.sender});return z}catch(z){return m({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${z instanceof Error?z.message:z}`}),65000}}async function Rz({assetAddress:J,owner:z,spender:Q}){let Z=I([{type:"address",value:z},{type:"address",value:Q}]),j=(await Fz({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 Kz="https://api.trongrid.io",UJ=1000,CJ=1e6,kJ=420,KJ=1e6,PJ=30000;var Vz=T(()=>{c()});import{bytesToHex as LJ}from"@noble/hashes/utils.js";import{HDKey as NJ}from"@scure/bip32";import{mnemonicToSeedSync as BJ}from"@scure/bip39";import{AssetValue as D,BaseDecimal as u,Chain as N,derivationPathToString as fz,getRPCUrl as DJ,NetworkDerivationPath as wz,SwapKitError as K,updateDerivationPath as xz,warnOnce as Sz}from"@swapkit/helpers";import{match as FJ,P as n}from"ts-pattern";function bz({phrase:J,derivationPath:z}){let Q=NJ.fromMasterSeed(BJ(J)).derive(z);if(!Q.privateKey)throw new K("toolbox_tron_no_signer");return LJ(Q.privateKey)}function yz({phrase:J,derivationPath:z,index:Q}){let Z=z||fz(xz(wz[N.Tron],{index:Q||0}));return bz({derivationPath:Z,phrase:J})}function VJ({phrase:J,derivationPath:z}){let Q=bz({derivationPath:z,phrase:J}),Z=Uz(Q);return{getAddress:()=>Promise.resolve(Z),signTransaction:($)=>{_($);let j=Cz({privateKey:Q,txID:$.txID});return Promise.resolve({...$,signature:[j]})}}}function Tz({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/,""):kz(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}=Xz(J.raw_data_hex,$);return{...J,raw_data:{...J.raw_data,...j},raw_data_hex:W,txID:k}}function Ez(J={}){let z="index"in J?J.index||0:0,Q=fz("derivationPath"in J&&J.derivationPath?J.derivationPath:xz(wz[N.Tron],{index:z})),Z,$=!1;function j(){if($)return Promise.resolve(Z);return Z=FJ(J).with({phrase:n.string},({phrase:Y})=>VJ({derivationPath:Q,phrase:Y})).with({signer:n.not(n.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),$=!0,Promise.resolve(Z)}async function W(){let Y=await j();if(!Y)throw new K("toolbox_tron_no_signer");return Y.getAddress()}async function k(Y,X){let G=Y||_z,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 i({contractAddress:Y,functionSelector:X,parameter:G,sender:q}),H=await k(C+P),R=await Dz({contractAddress:Y,feeLimit:H,functionSelector:X,ownerAddress:q,parameter:G});return Tz({expiration:M,feeLimit:H,memo:O,transaction:R})}async function F(Y){if(!B(Y))return[D.from({chain:N.Tron})];try{let X=await Nz(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)=>(t in O));if(q){let O=q[t];G.push(D.from({asset:`TRON.USDT-${t}`,fromBaseDecimal:6,value:O}))}return G}catch(X){return Sz({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 p({recipient:Y,assetValue:X,memo:G,expiration:q}){if(!B(Y))throw new K("toolbox_tron_token_transfer_failed",{message:"invalid address"});let O=await j();if(!O)throw new K("toolbox_tron_no_signer");try{let M=await W(),P=await r({assetValue:X,expiration:q,memo:G,recipient:Y,sender:M}),C=await O.signTransaction(P),H=await w(C);if(!H)throw new K("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return H}catch(M){throw new K("toolbox_tron_token_transfer_failed",{message:M instanceof Error?M.message:String(M)})}}function a({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 hz({memo:Y,recipient:X,senderAddress:G}){let[q,O,M]=await Promise.all([x(),g(X),o(G)]),P=O?0:q.createAccountFee,C=a({feePerUnit:q.bandwidthFee,requiredBandwidth:vz,resources:M.bandwidth}),H=Y?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:u.TRON,value:P+C+H})}async function mz({assetValue:Y,memo:X,recipient:G,senderAddress:q}){let O=Y.address;if(!O)throw new K("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[M,P,C,H]=await Promise.all([x(),g(G),o(q),i({contractAddress:O,functionSelector:"transfer(address,uint256)",parameter:I([{type:"address",value:G},{type:"uint256",value:Y.getBaseValue("string")}]),sender:q})]),zz=H+(P?0:d),iz=a({feePerUnit:M.bandwidthFee,requiredBandwidth:Iz,resources:C.bandwidth}),Jz=Math.max(0,C.energy.total-C.energy.used),nz=zz>Jz?(zz-Jz)*M.energyFee:0,dz=X?M.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:u.TRON,value:iz+nz+dz})}async function uz({assetValue:Y,memo:X,recipient:G}){let[q,O]=await Promise.all([x(),g(G)]);if(Y.isGasAsset){let H=O?0:q.createAccountFee,R=X?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:u.TRON,value:H+vz*q.bandwidthFee+R})}let P=await k(_z+(O?0:d),q.energyFee),C=X?q.memoFee:0;return D.from({chain:N.Tron,fromBaseDecimal:u.TRON,value:P+Iz*q.bandwidthFee+C})}async function pz({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 uz({assetValue:Y,memo:X,recipient:G});return Y.isGasAsset?hz({memo:X,recipient:G,senderAddress:M}):mz({assetValue:Y,memo:X,recipient:G,senderAddress:M})}catch(M){throw Sz({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${M instanceof Error?M.message:M}`}),new K("toolbox_fee_estimation_failed",{chain:N.Tron,error:M})}}async function r({recipient:Y,assetValue:X,memo:G,sender:q,expiration:O}){if(!B(Y)||!B(q))throw new K("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(X.isGasAsset){let C=await Bz({amount:X.getBaseValue("number"),from:q,to:Y});return Tz({expiration:O,memo:G,transaction:C})}let M=X.address;if(!M)throw new K("toolbox_tron_invalid_token_identifier",{identifier:X.toString()});let P=await g(Y);return U({contractAddress:M,expiration:O,extraEnergy:P?0:d,functionSelector:"transfer(address,uint256)",memo:G,parameter:I([{type:"address",value:Y},{type:"uint256",value:X.getBaseValue("string")}]),sender:q})}async function s(Y){_(Y);let X=await j();if(!X)throw new K("toolbox_tron_no_signer");return X.signTransaction(Y)}async function lz(Y){let X=await s(Y);return w(X)}function e({assetAddress:Y,spenderAddress:X,from:G}){return Rz({assetAddress:Y,owner:G,spender:X})}async function cz({assetAddress:Y,spenderAddress:X,from:G,amount:q}){let O=await e({assetAddress:Y,from:G,spenderAddress:X});if(!q)return O>0n;return O>=BigInt(q)}async function oz({assetAddress:Y,spenderAddress:X,amount:G,from:q}){if(!B(Y)||!B(X))throw new K("toolbox_tron_approve_failed");let O=await j();if(!O)throw new K("toolbox_tron_no_signer");let M=q||await W(),P=G!==void 0?BigInt(G).toString():RJ;try{let C=await U({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:I([{type:"address",value:X},{type:"uint256",value:P}]),sender:M}),H=await O.signTransaction(C),R=await w(H);if(!R)throw new K("toolbox_tron_approve_failed");return R}catch(C){if(C instanceof K)throw C;throw new K("toolbox_tron_approve_failed",{error:C})}}return{approve:oz,broadcastTransaction:w,createTransaction:r,estimateTransactionFee:pz,getAddress:W,getApprovedAmount:e,getBalance:F,getRpcUrl:()=>DJ(N.Tron),isApproved:cz,signAndBroadcastTransaction:lz,signTransaction:s,transfer:p,validateAddress:B}}var gz,vz=268,_z=65000,d=25000,Iz=345,t="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",RJ="115792089237316195423570985008687907853269984665640564039457584007913129639935";var Az=T(()=>{jz();Vz();c();gz=B});var SJ={};sz(SJ,{validateTronAddress:()=>gz,getTronToolbox:()=>Ez,getTronPrivateKeyFromMnemonic:()=>yz});var vJ=T(()=>{Az()});vJ();export{gz as validateTronAddress,Ez as getTronToolbox,yz as getTronPrivateKeyFromMnemonic};
|
|
@@ -634,6 +634,51 @@ export declare const HYPEREVMToolbox: ({ provider, ...toolboxParams }: EVMToolbo
|
|
|
634
634
|
transfer: ({ assetValue, memo, recipient, feeOptionKey, sender, ...tx }: import("..").EVMTransferParams) => Promise<string>;
|
|
635
635
|
validateAddress: typeof import("./baseEVMToolbox").validateEVMAddress;
|
|
636
636
|
};
|
|
637
|
+
export declare const LINEAToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
638
|
+
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
639
|
+
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
640
|
+
broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
|
|
641
|
+
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
642
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<import("ethers").ContractTransaction>;
|
|
643
|
+
createContract: (address: string, abi: readonly (import("ethers").JsonFragment | import("ethers").Fragment)[]) => import("ethers").Contract;
|
|
644
|
+
createContractTxObject: ({ contractAddress, abi, funcName, funcParams, txOverrides }: import("..").CallParams) => Promise<import("ethers").ContractTransaction>;
|
|
645
|
+
createTransaction: ({ assetValue, memo, recipient, data, sender: fromOverride, maxFeePerGas, maxPriorityFeePerGas, gasPrice, ...tx }: import("..").EVMCreateTransactionParams) => Promise<import("ethers").ContractTransaction>;
|
|
646
|
+
createTransferTx: ({ assetValue, memo, recipient, data, sender: fromOverride, maxFeePerGas, maxPriorityFeePerGas, gasPrice, ...tx }: import("..").EVMCreateTransactionParams) => Promise<import("ethers").ContractTransaction>;
|
|
647
|
+
EIP1193SendTransaction: ({ value, ...params }: import("..").EVMTxParams | import("ethers").ContractTransaction) => Promise<string>;
|
|
648
|
+
estimateCall: ({ contractAddress, abi, funcName, funcParams, txOverrides }: import("..").EstimateCallParams) => Promise<bigint>;
|
|
649
|
+
estimateGasLimit: ({ assetValue, recipient, memo, data, sender, funcName, funcParams, txOverrides, }: import("..").EVMTransferParams & {
|
|
650
|
+
assetValue: import("@swapkit/helpers").AssetValue;
|
|
651
|
+
funcName?: string;
|
|
652
|
+
funcParams?: unknown[];
|
|
653
|
+
txOverrides?: import("..").EVMTxParams;
|
|
654
|
+
data?: string;
|
|
655
|
+
}) => Promise<bigint>;
|
|
656
|
+
estimateGasPrices: () => Promise<{ [key in FeeOption]: {
|
|
657
|
+
l1GasPrice?: bigint;
|
|
658
|
+
gasPrice?: bigint;
|
|
659
|
+
maxFeePerGas?: bigint;
|
|
660
|
+
maxPriorityFeePerGas?: bigint;
|
|
661
|
+
}; }>;
|
|
662
|
+
estimateTransactionFee: ({ feeOption, ...txObject }: import("..").EIP1559TxParams & {
|
|
663
|
+
feeOption: FeeOption;
|
|
664
|
+
}) => Promise<import("@swapkit/helpers").AssetValue>;
|
|
665
|
+
getAddress: () => string | Promise<string> | undefined;
|
|
666
|
+
getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
|
|
667
|
+
getNetworkParams: () => import("@swapkit/helpers").NetworkParams | undefined;
|
|
668
|
+
isApproved: ({ assetAddress, spenderAddress, from, amount }: import("..").IsApprovedParams) => Promise<boolean>;
|
|
669
|
+
sendTransaction: ({ feeOptionKey, ...tx }: import("..").EVMTxParams & {
|
|
670
|
+
feeOptionKey?: FeeOption;
|
|
671
|
+
}) => Promise<string>;
|
|
672
|
+
signAuthorization: ((params: {
|
|
673
|
+
address: string;
|
|
674
|
+
nonce?: number | bigint;
|
|
675
|
+
chainId?: bigint;
|
|
676
|
+
}) => Promise<import("ethers").Authorization>) | undefined;
|
|
677
|
+
signMessage: ((message: string | Uint8Array) => Promise<string>) | undefined;
|
|
678
|
+
signTypedData: (({ domain, types, value }: import("..").SignTypedDataParams) => Promise<string>) | undefined;
|
|
679
|
+
transfer: ({ assetValue, memo, recipient, feeOptionKey, sender, ...tx }: import("..").EVMTransferParams) => Promise<string>;
|
|
680
|
+
validateAddress: typeof import("./baseEVMToolbox").validateEVMAddress;
|
|
681
|
+
};
|
|
637
682
|
export declare const MATICToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
638
683
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
639
684
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
@@ -679,7 +724,7 @@ export declare const MATICToolbox: ({ provider, ...toolboxParams }: EVMToolboxPa
|
|
|
679
724
|
transfer: ({ assetValue, memo, recipient, feeOptionKey, sender, ...tx }: import("..").EVMTransferParams) => Promise<string>;
|
|
680
725
|
validateAddress: typeof import("./baseEVMToolbox").validateEVMAddress;
|
|
681
726
|
};
|
|
682
|
-
export declare const
|
|
727
|
+
export declare const MEGAETHToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
683
728
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
684
729
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
685
730
|
broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
|
|
@@ -724,7 +769,7 @@ export declare const SONICToolbox: ({ provider, ...toolboxParams }: EVMToolboxPa
|
|
|
724
769
|
transfer: ({ assetValue, memo, recipient, feeOptionKey, sender, ...tx }: import("..").EVMTransferParams) => Promise<string>;
|
|
725
770
|
validateAddress: typeof import("./baseEVMToolbox").validateEVMAddress;
|
|
726
771
|
};
|
|
727
|
-
export declare const
|
|
772
|
+
export declare const MONADToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
728
773
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
729
774
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
730
775
|
broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
|
|
@@ -769,7 +814,7 @@ export declare const UNIToolbox: ({ provider, ...toolboxParams }: EVMToolboxPara
|
|
|
769
814
|
transfer: ({ assetValue, memo, recipient, feeOptionKey, sender, ...tx }: import("..").EVMTransferParams) => Promise<string>;
|
|
770
815
|
validateAddress: typeof import("./baseEVMToolbox").validateEVMAddress;
|
|
771
816
|
};
|
|
772
|
-
export declare const
|
|
817
|
+
export declare const PLASMAToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
773
818
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
774
819
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
775
820
|
broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
|
|
@@ -814,7 +859,7 @@ export declare const XLayerToolbox: ({ provider, ...toolboxParams }: EVMToolboxP
|
|
|
814
859
|
transfer: ({ assetValue, memo, recipient, feeOptionKey, sender, ...tx }: import("..").EVMTransferParams) => Promise<string>;
|
|
815
860
|
validateAddress: typeof import("./baseEVMToolbox").validateEVMAddress;
|
|
816
861
|
};
|
|
817
|
-
export declare const
|
|
862
|
+
export declare const SONICToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
818
863
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
819
864
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
820
865
|
broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
|
|
@@ -859,7 +904,52 @@ export declare const MONADToolbox: ({ provider, ...toolboxParams }: EVMToolboxPa
|
|
|
859
904
|
transfer: ({ assetValue, memo, recipient, feeOptionKey, sender, ...tx }: import("..").EVMTransferParams) => Promise<string>;
|
|
860
905
|
validateAddress: typeof import("./baseEVMToolbox").validateEVMAddress;
|
|
861
906
|
};
|
|
862
|
-
export declare const
|
|
907
|
+
export declare const UNIToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
908
|
+
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
909
|
+
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
910
|
+
broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
|
|
911
|
+
call: <T>({ callProvider, contractAddress, abi, funcName, funcParams, txOverrides, feeOption, }: import("..").CallParams) => Promise<T>;
|
|
912
|
+
createApprovalTx: ({ assetAddress, spenderAddress, amount, from: fromParam }: import("..").ApproveParams) => Promise<import("ethers").ContractTransaction>;
|
|
913
|
+
createContract: (address: string, abi: readonly (import("ethers").JsonFragment | import("ethers").Fragment)[]) => import("ethers").Contract;
|
|
914
|
+
createContractTxObject: ({ contractAddress, abi, funcName, funcParams, txOverrides }: import("..").CallParams) => Promise<import("ethers").ContractTransaction>;
|
|
915
|
+
createTransaction: ({ assetValue, memo, recipient, data, sender: fromOverride, maxFeePerGas, maxPriorityFeePerGas, gasPrice, ...tx }: import("..").EVMCreateTransactionParams) => Promise<import("ethers").ContractTransaction>;
|
|
916
|
+
createTransferTx: ({ assetValue, memo, recipient, data, sender: fromOverride, maxFeePerGas, maxPriorityFeePerGas, gasPrice, ...tx }: import("..").EVMCreateTransactionParams) => Promise<import("ethers").ContractTransaction>;
|
|
917
|
+
EIP1193SendTransaction: ({ value, ...params }: import("..").EVMTxParams | import("ethers").ContractTransaction) => Promise<string>;
|
|
918
|
+
estimateCall: ({ contractAddress, abi, funcName, funcParams, txOverrides }: import("..").EstimateCallParams) => Promise<bigint>;
|
|
919
|
+
estimateGasLimit: ({ assetValue, recipient, memo, data, sender, funcName, funcParams, txOverrides, }: import("..").EVMTransferParams & {
|
|
920
|
+
assetValue: import("@swapkit/helpers").AssetValue;
|
|
921
|
+
funcName?: string;
|
|
922
|
+
funcParams?: unknown[];
|
|
923
|
+
txOverrides?: import("..").EVMTxParams;
|
|
924
|
+
data?: string;
|
|
925
|
+
}) => Promise<bigint>;
|
|
926
|
+
estimateGasPrices: () => Promise<{ [key in FeeOption]: {
|
|
927
|
+
l1GasPrice?: bigint;
|
|
928
|
+
gasPrice?: bigint;
|
|
929
|
+
maxFeePerGas?: bigint;
|
|
930
|
+
maxPriorityFeePerGas?: bigint;
|
|
931
|
+
}; }>;
|
|
932
|
+
estimateTransactionFee: ({ feeOption, ...txObject }: import("..").EIP1559TxParams & {
|
|
933
|
+
feeOption: FeeOption;
|
|
934
|
+
}) => Promise<import("@swapkit/helpers").AssetValue>;
|
|
935
|
+
getAddress: () => string | Promise<string> | undefined;
|
|
936
|
+
getBalance: (address: string, scamFilter?: boolean) => Promise<import("@swapkit/helpers").AssetValue[]>;
|
|
937
|
+
getNetworkParams: () => import("@swapkit/helpers").NetworkParams | undefined;
|
|
938
|
+
isApproved: ({ assetAddress, spenderAddress, from, amount }: import("..").IsApprovedParams) => Promise<boolean>;
|
|
939
|
+
sendTransaction: ({ feeOptionKey, ...tx }: import("..").EVMTxParams & {
|
|
940
|
+
feeOptionKey?: FeeOption;
|
|
941
|
+
}) => Promise<string>;
|
|
942
|
+
signAuthorization: ((params: {
|
|
943
|
+
address: string;
|
|
944
|
+
nonce?: number | bigint;
|
|
945
|
+
chainId?: bigint;
|
|
946
|
+
}) => Promise<import("ethers").Authorization>) | undefined;
|
|
947
|
+
signMessage: ((message: string | Uint8Array) => Promise<string>) | undefined;
|
|
948
|
+
signTypedData: (({ domain, types, value }: import("..").SignTypedDataParams) => Promise<string>) | undefined;
|
|
949
|
+
transfer: ({ assetValue, memo, recipient, feeOptionKey, sender, ...tx }: import("..").EVMTransferParams) => Promise<string>;
|
|
950
|
+
validateAddress: typeof import("./baseEVMToolbox").validateEVMAddress;
|
|
951
|
+
};
|
|
952
|
+
export declare const XLayerToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
|
|
863
953
|
approve: ({ assetAddress, spenderAddress, feeOptionKey, amount, gasLimitFallback, from: fromParam, nonce, }: import("..").ApproveParams) => Promise<string>;
|
|
864
954
|
approvedAmount: ({ assetAddress, spenderAddress, from }: import("..").IsApprovedParams) => Promise<bigint>;
|
|
865
955
|
broadcastTransaction: ((signedTx: string) => Promise<import("ethers").TransactionResponse>) | ((signedTx: string) => Promise<import("ethers").TransactionResponse>);
|