@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.
@@ -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/api"),{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
+ 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/api"),{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};
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};
@@ -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,M,Z)=>{var G=W!=null&&typeof W==="object";if(G){var k=M?n??=new WeakMap:s??=new WeakMap,j=k.get(W);if(j)return j}Z=W!=null?r(i(W)):{};let q=M||!W||!W.__esModule?_(Z,"default",{value:W,enumerable:!0}):Z;for(let Y of x(W))if(!m.call(q,Y))_(q,Y,{get:V.bind(W,Y),enumerable:!0});if(G)k.set(W,q);return q},a=(W)=>{var M=(h??=new WeakMap).get(W),Z;if(M)return M;if(M=_({},"__esModule",{value:!0}),W&&typeof W==="object"||typeof W==="function"){for(var G of x(W))if(!m.call(M,G))_(M,G,{get:V.bind(W,G),enumerable:!(Z=t(W,G))||Z.enumerable})}return h.set(W,M),M},h;var e=(W)=>W;function W5(W,M){this[W]=e.bind(null,M)}var z5=(W,M)=>{for(var Z in M)_(W,Z,{get:M[Z],enumerable:!0,configurable:!0,set:W5.bind(M,Z)})};var S=(W,M)=>()=>(W&&(M=W(W=0)),M);async function f(W,M,Z,G,k=[],j){let q=await W.getCoins({coinType:Z,cursor:j,owner:M}),Y=[...k,...q.data],P=Y.reduce((H,R)=>H+BigInt(R.balance),0n);return q.hasNextPage&&P<G?f(W,M,Z,G,Y,q.nextCursor):Y}function y({coinObjectId:W,digest:M,version:Z}){return{digest:M,objectId:W,version:Z}}function M5(W,M,Z){let G=M.reduce((H,R)=>H+BigInt(R.balance),0n);if(G<Z)throw new X.SwapKitError("toolbox_sui_insufficient_balance",{available:G.toString(),required:Z.toString()});let{selectedCoins:k}=M.reduce((H,R)=>{if(H.total>=Z)return H;return{selectedCoins:[...H.selectedCoins,R],total:H.total+BigInt(R.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,[Z]);return P}function p(W,M){let Z=W.reduce((G,k)=>G+BigInt(k.balance),0n);if(Z<M)throw new X.SwapKitError("toolbox_sui_insufficient_balance",{available:Z.toString(),required:M.toString()})}function C(W){try{return B.isValidSuiAddress(W)}catch{return!1}}function T(W){return"signWithIntent"in W}function X5({provider:W,...M}={}){let Z;async function G(){if(Z)return Z;return Z=await K.match(M).with({phrase:K.P.string},async({phrase:z})=>{let{Ed25519Keypair:J}=await import("@mysten/sui/keypairs/ed25519");return J.deriveKeypair(z)}).with({signer:K.P.any},({signer:z})=>z).otherwise(()=>{return}),Z}async function k(z=W){let{SuiClient:J}=await import("@mysten/sui/client");return new J({url:z||X.getRPCUrlSync(X.Chain.Sui)})}async function j(z){return BigInt(await z.getReferenceGasPrice())}async function q(){return(await G())?.toSuiAddress()||""}function Y(z){try{let J=X.AssetValue.from({address:z,chain:X.Chain.Sui});return{asset:J.toString(),decimals:J.decimal}}catch{}return null}async function P(z){let J=z||await q();if(!J)throw new X.SwapKitError("toolbox_sui_address_required");let{baseDecimal:v,chain:L}=X.getChainConfig(X.Chain.Sui);try{let b=await(await k()).getAllBalances({owner:J}),N=b.find(({coinType:$})=>$===I)?.totalBalance||"0",Q=[X.AssetValue.from({chain:L,fromBaseDecimal:v,value:N})];for(let{coinType:$,totalBalance:O}of b){if($===I||Number(O)<=0)continue;let F=Y($);if(F)Q.push(X.AssetValue.from({asset:F.asset,fromBaseDecimal:F.decimals,value:O}))}return Q}catch{return[X.AssetValue.from({chain:L})]}}async function H(z){let J=X.AssetValue.from({chain:X.Chain.Sui,value:"0.01"});if(!z)return J;try{let v=await k(),{txBytes:L}=await R(z),{effects:{status:D,gasUsed:b}}=await v.dryRunTransactionBlock({transactionBlock:L});if(D.status!=="success")return J;let{baseDecimal:N}=X.getChainConfig(X.Chain.Sui),Q=BigInt(b.computationCost)+BigInt(b.storageCost)-BigInt(b.storageRebate);return X.AssetValue.from({chain:X.Chain.Sui,fromBaseDecimal:N,value:Q.toString()})}catch{return J}}async function R({recipient:z,assetValue:J,gasBudget:v,sender:L}){let{Transaction:D}=await import("@mysten/sui/transactions"),b=L||await q(),N=v||J5;if(!b)throw new X.SwapKitError("toolbox_sui_no_sender");try{let Q=await k(),$=new D;if($.setSender(b),J.isGasAsset||J.symbol==="SUI"){let F=J.getBaseValue("bigint"),[U,w]=await Promise.all([j(Q),f(Q,b,I,F+BigInt(N))]);p(w,F+BigInt(N)),$.setGasPrice(U),$.setGasPayment(w.map(y));let[E]=$.splitCoins($.gas,[J.getBaseValue("string")]);$.transferObjects([E],z)}else{let F=J.address;if(!F)throw new X.SwapKitError("toolbox_sui_missing_coin_type");let U=J.getBaseValue("bigint"),[w,E,A]=await Promise.all([j(Q),f(Q,b,I,BigInt(N)),f(Q,b,F,U)]);if(!A.length)throw new X.SwapKitError("toolbox_sui_no_coins_found",{coinType:F});p(E,BigInt(N)),$.setGasPrice(w),$.setGasPayment(E.map(y));let c=M5($,A,U);$.transferObjects([c],z)}$.setGasBudget(N);let O=await $.build({client:Q});return{tx:$,txBytes:O}}catch(Q){if(Q instanceof X.SwapKitError)throw Q;throw new X.SwapKitError("toolbox_sui_transaction_creation_error",{error:Q})}}async function u(z){let J=await G();if(!J)throw new X.SwapKitError("toolbox_sui_no_signer");if(z instanceof Uint8Array)return J.signTransaction(z);let{txBytes:v}="tx"in z?z:await R(z);return J.signTransaction(v)}async function d({assetValue:z,gasBudget:J,recipient:v}){let L=await G();if(!L)throw new X.SwapKitError("toolbox_sui_no_signer");let D=L.toSuiAddress()||await q();if(!D)throw new X.SwapKitError("toolbox_sui_no_sender");let{txBytes:b}=await R({assetValue:z,gasBudget:J,recipient:v,sender:D}),N=await k();if(!T(L)){let $=await L.signTransaction(b),{digest:O}=await N.executeTransactionBlock({signature:$.signature,transactionBlock:$.bytes});return O}let{digest:Q}=await N.signAndExecuteTransaction({signer:L,transaction:b});return Q}async function l(z){let J=await k(),{digest:v}=await J.executeTransactionBlock({signature:z.signature,transactionBlock:z.bytes});return v}async function o(z){let J=await G();if(!J)throw new X.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(J)){let b=await J.signTransaction(L),{digest:N}=await v.executeTransactionBlock({signature:b.signature,transactionBlock:b.bytes});return N}let{digest:D}=await v.signAndExecuteTransaction({signer:J,transaction:L});return D}return{broadcastTransaction:l,createTransaction:R,estimateTransactionFee:H,getAddress:q,getBalance:P,signAndBroadcastTransaction:o,signTransaction:u,transfer:d,validateAddress:C}}var B,X,K,I="0x2::sui::SUI",J5=50000000;var g=S(()=>{B=require("@mysten/sui/utils"),X=require("@swapkit/helpers"),K=require("ts-pattern")});var $5={};z5($5,{validateSuiAddress:()=>C,getSuiToolbox:()=>X5});module.exports=a($5);var G5=S(()=>{g()});G5();
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();
@@ -1 +1 @@
1
- var o=Object.defineProperty;var c=(J)=>J;function r(J,M){this[J]=c.bind(null,M)}var i=(J,M)=>{for(var X in M)o(J,X,{get:M[X],enumerable:!0,configurable:!0,set:r.bind(M,X)})};var x=(J,M)=>()=>(J&&(M=J(J=0)),M);var A=((J)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(J,{get:(M,X)=>(typeof require<"u"?require:M)[X]}):J)(function(J){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+J+'" 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(J,M,X,q,k=[],D){let Y=await J.getCoins({coinType:X,cursor:D,owner:M}),j=[...k,...Y.data],K=j.reduce((v,H)=>v+BigInt(H.balance),0n);return Y.hasNextPage&&K<q?f(J,M,X,q,j,Y.nextCursor):j}function y({coinObjectId:J,digest:M,version:X}){return{digest:M,objectId:J,version:X}}function e(J,M,X){let q=M.reduce((v,H)=>v+BigInt(H.balance),0n);if(q<X)throw new N("toolbox_sui_insufficient_balance",{available:q.toString(),required:X.toString()});let{selectedCoins:k}=M.reduce((v,H)=>{if(v.total>=X)return v;return{selectedCoins:[...v.selectedCoins,H],total:v.total+BigInt(H.balance)}},{selectedCoins:[],total:0n}),D=k[0],Y=J.objectRef(y(D)),j=k.slice(1).map((v)=>J.objectRef(y(v)));if(j.length>0)J.mergeCoins(Y,j);let[K]=J.splitCoins(Y,[X]);return K}function S(J,M){let X=J.reduce((q,k)=>q+BigInt(k.balance),0n);if(X<M)throw new N("toolbox_sui_insufficient_balance",{available:X.toString(),required:M.toString()})}function T(J){try{return t(J)}catch{return!1}}function p(J){return"signWithIntent"in J}function W5({provider:J,...M}={}){let X;async function q(){if(X)return X;return X=await s(M).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}),X}async function k(W=J){let{SuiClient:z}=await import("@mysten/sui/client");return new z({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:$}=m(_.Sui);try{let G=await(await k()).getAllBalances({owner:z}),Q=G.find(({coinType:Z})=>Z===I)?.totalBalance||"0",L=[P.from({chain:$,fromBaseDecimal:b,value:Q})];for(let{coinType:Z,totalBalance:O}of G){if(Z===I||Number(O)<=0)continue;let R=j(Z);if(R)L.push(P.from({asset:R.asset,fromBaseDecimal:R.decimals,value:O}))}return L}catch{return[P.from({chain:$})]}}async function v(W){let z=P.from({chain:_.Sui,value:"0.01"});if(!W)return z;try{let b=await k(),{txBytes:$}=await H(W),{effects:{status:F,gasUsed:G}}=await b.dryRunTransactionBlock({transactionBlock:$});if(F.status!=="success")return z;let{baseDecimal:Q}=m(_.Sui),L=BigInt(G.computationCost)+BigInt(G.storageCost)-BigInt(G.storageRebate);return P.from({chain:_.Sui,fromBaseDecimal:Q,value:L.toString()})}catch{return z}}async function H({recipient:W,assetValue:z,gasBudget:b,sender:$}){let{Transaction:F}=await import("@mysten/sui/transactions"),G=$||await Y(),Q=b||a;if(!G)throw new N("toolbox_sui_no_sender");try{let L=await k(),Z=new F;if(Z.setSender(G),z.isGasAsset||z.symbol==="SUI"){let R=z.getBaseValue("bigint"),[U,w]=await Promise.all([D(L),f(L,G,I,R+BigInt(Q))]);S(w,R+BigInt(Q)),Z.setGasPrice(U),Z.setGasPayment(w.map(y));let[E]=Z.splitCoins(Z.gas,[z.getBaseValue("string")]);Z.transferObjects([E],W)}else{let R=z.address;if(!R)throw new N("toolbox_sui_missing_coin_type");let U=z.getBaseValue("bigint"),[w,E,h]=await Promise.all([D(L),f(L,G,I,BigInt(Q)),f(L,G,R,U)]);if(!h.length)throw new N("toolbox_sui_no_coins_found",{coinType:R});S(E,BigInt(Q)),Z.setGasPrice(w),Z.setGasPayment(E.map(y));let l=e(Z,h,U);Z.transferObjects([l],W)}Z.setGasBudget(Q);let O=await Z.build({client:L});return{tx:Z,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 $=await q();if(!$)throw new N("toolbox_sui_no_signer");let F=$.toSuiAddress()||await Y();if(!F)throw new N("toolbox_sui_no_sender");let{txBytes:G}=await H({assetValue:W,gasBudget:z,recipient:b,sender:F}),Q=await k();if(!p($)){let Z=await $.signTransaction(G),{digest:O}=await Q.executeTransactionBlock({signature:Z.signature,transactionBlock:Z.bytes});return O}let{digest:L}=await Q.signAndExecuteTransaction({signer:$,transaction:G});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(),$;if(typeof W==="string")$=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)$=W;else $=await W.build({client:b});if(!p(z)){let G=await z.signTransaction($),{digest:Q}=await b.executeTransactionBlock({signature:G.signature,transactionBlock:G.bytes});return Q}let{digest:F}=await b.signAndExecuteTransaction({signer:z,transaction:$});return F}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 J5={};i(J5,{validateSuiAddress:()=>T,getSuiToolbox:()=>W5});var M5=x(()=>{B()});M5();export{T as validateSuiAddress,W5 as getSuiToolbox};
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};
@@ -1 +1 @@
1
- var xx=Object.create;var{getPrototypeOf:vx,defineProperty:D,getOwnPropertyNames:C,getOwnPropertyDescriptor:zx}=Object,c=Object.prototype.hasOwnProperty;function A(x){return this[x]}var Gx,Qx,Jx=(x,Q,Z)=>{var H=x!=null&&typeof x==="object";if(H){var B=Q?Gx??=new WeakMap:Qx??=new WeakMap,y=B.get(x);if(y)return y}Z=x!=null?xx(vx(x)):{};let N=Q||!x||!x.__esModule?D(Z,"default",{value:x,enumerable:!0}):Z;for(let I of C(x))if(!c.call(N,I))D(N,I,{get:A.bind(x,I),enumerable:!0});if(H)B.set(x,N);return N},Xx=(x)=>{var Q=(w??=new WeakMap).get(x),Z;if(Q)return Q;if(Q=D({},"__esModule",{value:!0}),x&&typeof x==="object"||typeof x==="function"){for(var H of C(x))if(!c.call(Q,H))D(Q,H,{get:A.bind(x,H),enumerable:!(Z=zx(x,H))||Z.enumerable})}return w.set(x,Q),Q},w;var Yx=(x)=>x;function Zx(x,Q){this[x]=Yx.bind(null,Q)}var $x=(x,Q)=>{for(var Z in Q)D(x,Z,{get:Q[Z],enumerable:!0,configurable:!0,set:Zx.bind(Q,Z)})};var V=(x,Q)=>()=>(x&&(Q=x(x=0)),Q);function Ux(){function x(){let Q=Date.now(),Z=T||Q;return T=Z,Q>T?Q:Z+1}return kx+x().toString(36)}function i(x){return async function(Z,H=!0){let B=await m.SwapKitApi.getChainBalance({address:Z,chain:x,scamFilter:H}),{baseDecimal:y}=u.getChainConfig(x),N=B.map(({identifier:p,value:h,decimal:U})=>{return new u.AssetValue({decimal:U||y,identifier:p,value:h})});if(!N.some((p)=>p.isGasAsset))return[u.AssetValue.from({chain:x}),...N];return N}}var u,m,kx,T=0;var g=V(()=>{u=require("@swapkit/helpers"),m=require("@swapkit/helpers/api"),kx=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function Ix(){let x=Date.now();if(F&&x-o<Bx)return F;return F=await d.getHttpEndpoint(),o=x,F}async function Ox(){let[x]=Y.SKConfig.get("rpcUrls")[Y.Chain.Ton]??[];if(x)return x;return await Ix()}function yx(x={}){let Q,Z,H;async function B(){if(!Q){let v=x.provider??await Ox();Q=new z.TonClient({endpoint:v})}return Q}async function y(){return(await I()).address.toString()}async function N(){if(H)return H;return H=await K.match(x).with({phrase:K.P.string},async({phrase:v})=>r.mnemonicToWalletKey(v.split(" "))).with({signer:K.P.any},({signer:v})=>v).otherwise(()=>{return}),H}async function I(v){if(!Z||v){let G=await N(),X=await B(),$=v||G;if(!$)throw new Y.SwapKitError("core_wallet_connection_not_found");let k=z.WalletContractV4.create({publicKey:$.publicKey,workchain:0});Z=X.open(k)}return Z}let p=i(Y.Chain.Ton);async function h({assetValue:v,recipient:G,memo:X,sender:$}){if(v.isGasAsset){let f=X?S(X).toBoc().toString("base64"):void 0;return[{address:G,amount:v.getBaseValue("string"),payload:f}]}let k=v.address;if(!k)throw new Y.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:v.toString()}});let q=$??await y(),O=await E({jettonMasterAddress:k,ownerAddress:q}),L=z.Address.parse(G),R=z.Address.parse(q),j=v.getBaseValue("bigint"),P=X?S(X):void 0,J=e({destinationAddress:L,forwardPayload:P,jettonAmount:j,responseAddress:R});return[{address:O.toString(),amount:Nx.toString(),payload:J.toBoc().toString("base64")}]}function U({sender:v,...G}){return h({...G,sender:v})}function M(v){return v.map((G)=>{let X=G.payload?z.Cell.fromBase64(G.payload):void 0,$=G.stateInit?z.loadStateInit(z.Cell.fromBase64(G.stateInit).asSlice()):void 0,k=z.Address.parse(G.address),q=z.Address.isFriendly(G.address)?z.Address.parseFriendly(G.address).isBounceable:!0;return z.internal({body:X,bounce:q,init:$,to:k,value:BigInt(G.amount)})})}async function _(v){let G=await N(),X=await I();if(!X||!G)throw new Y.SwapKitError("core_wallet_connection_not_found");let $=await B(),{state:k}=await $.getContractState(X.address),q=k==="active",O=q?await X.getSeqno():0,L=X.createTransfer({messages:M(v),secretKey:G.secretKey,sendMode:l,seqno:O}),R=z.external({body:L,init:q?void 0:X.init,to:X.address});return z.beginCell().store(z.storeMessage(R)).endCell()}async function b(v){return await(await B()).sendFile(v.toBoc()),v.hash().toString("hex")}async function W(v){let G=await _(v);return b(G)}async function a({assetValue:v,recipient:G,memo:X}){let $=await U({assetValue:v,memo:X,recipient:G});return W($)}async function s({sender:v,...G}){let{baseDecimal:X}=Y.getChainConfig(Y.Chain.Ton),$=await K.match(v).with(K.P.string,(O)=>{return z.Address.parseFriendly(O).address}).otherwise(async()=>{return(await I()).address});if(!$)throw new Y.SwapKitError("toolbox_fee_estimation_failed",{chain:Y.Chain.Ton});let k=Y.AssetValue.from({chain:Y.Chain.Ton,value:"0.01"}),q=await B();try{let O=await U({sender:v,...G}),L=await N(),R=await I();if(!R||!L)return k;let j=await R.getSeqno(),P=R.createTransfer({messages:M(O),secretKey:L.secretKey,sendMode:l,seqno:j}),{source_fees:J}=await q.estimateExternalMessageFee($,{body:P,ignoreSignature:!0,initCode:null,initData:null}),f=J.in_fwd_fee+J.storage_fee+J.gas_fee+J.fwd_fee;return k.set(Y.SwapKitNumber.fromBigInt(BigInt(f),X))}catch{return k}}async function E({jettonMasterAddress:v,ownerAddress:G}){try{let X=await B(),$=z.Address.parse(v),k=z.Address.parse(G);return await X.open(z.JettonMaster.create($)).getWalletAddress(k)}catch{throw new Y.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:v,ownerAddress:G}})}}function e({jettonAmount:v,destinationAddress:G,responseAddress:X,forwardAmount:$=Hx,forwardPayload:k}){let q=z.beginCell().storeUint(qx,32).storeUint(0,64).storeCoins(v).storeAddress(G).storeAddress(X).storeBit(0).storeCoins($);if(k)q.storeBit(1).storeRef(k);else q.storeBit(0);return q.endCell()}function S(v){return z.beginCell().storeUint(0,32).storeStringTail(v).endCell()}return{broadcastTransaction:b,createTransaction:U,estimateTransactionFee:s,getAddress:y,getBalance:p,getJettonWalletAddress:E,sign:_,signAndBroadcastTransaction:W,transfer:a,validateAddress:n}}function n(x){try{return z.Address.parse(x),!0}catch{return!1}}var d,Y,r,z,K,qx=260734629,Hx,Nx,l,Bx=60000,F,o=0;var t=V(()=>{g();d=require("@orbs-network/ton-access"),Y=require("@swapkit/helpers"),r=require("@ton/crypto"),z=require("@ton/ton"),K=require("ts-pattern"),Hx=z.toNano("0.01"),Nx=z.toNano("0.05"),l=z.SendMode.PAY_GAS_SEPARATELY+z.SendMode.IGNORE_ERRORS});var Kx={};$x(Kx,{validateTonAddress:()=>n,getTONToolbox:()=>yx});module.exports=Xx(Kx);var Lx=V(()=>{t()});Lx();
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();
@@ -1 +1 @@
1
- var s=Object.defineProperty;var e=(v)=>v;function xx(v,Q){this[v]=e.bind(null,Q)}var vx=(v,Q)=>{for(var $ in Q)s(v,$,{get:Q[$],enumerable:!0,configurable:!0,set:xx.bind(Q,$)})};var P=(v,Q)=>()=>(v&&(Q=v(v=0)),Q);var Px=((v)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(v,{get:(Q,$)=>(typeof require<"u"?require:Q)[$]}):v)(function(v){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+v+'" is not supported')});import{AssetValue as w,getChainConfig as zx}from"@swapkit/helpers";import{SwapKitApi as Gx}from"@swapkit/helpers/api";function Mx(){function v(){let Q=Date.now(),$=f||Q;return f=$,Q>f?Q:$+1}return Qx+v().toString(36)}function C(v){return async function($,I=!0){let H=await Gx.getChainBalance({address:$,chain:v,scamFilter:I}),{baseDecimal:U}=zx(v),N=H.map(({identifier:K,value:u,decimal:L})=>{return new w({decimal:L||U,identifier:K,value:u})});if(!N.some((K)=>K.isGasAsset))return[w.from({chain:v}),...N];return N}}var Qx,f=0;var c=P(()=>{Qx=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{getHttpEndpoint as Xx}from"@orbs-network/ton-access";import{AssetValue as Yx,Chain as p,getChainConfig as Zx,SKConfig as $x,SwapKitError as J,SwapKitNumber as kx}from"@swapkit/helpers";import{mnemonicToWalletKey as qx}from"@ton/crypto";import{Address as k,beginCell as V,Cell as A,external as Hx,internal as Nx,JettonMaster as Bx,loadStateInit as Ix,SendMode as m,storeMessage as Ox,TonClient as yx,toNano as o,WalletContractV4 as Rx}from"@ton/ton";import{match as i,P as T}from"ts-pattern";async function Ux(){let v=Date.now();if(D&&v-l<px)return D;return D=await Xx(),l=v,D}async function Dx(){let[v]=$x.get("rpcUrls")[p.Ton]??[];if(v)return v;return await Ux()}function ux(v={}){let Q,$,I;async function H(){if(!Q){let x=v.provider??await Dx();Q=new yx({endpoint:x})}return Q}async function U(){return(await R()).address.toString()}async function N(){if(I)return I;return I=await i(v).with({phrase:T.string},async({phrase:x})=>qx(x.split(" "))).with({signer:T.any},({signer:x})=>x).otherwise(()=>{return}),I}async function R(x){if(!$||x){let z=await N(),G=await H(),X=x||z;if(!X)throw new J("core_wallet_connection_not_found");let Y=Rx.create({publicKey:X.publicKey,workchain:0});$=G.open(Y)}return $}let K=C(p.Ton);async function u({assetValue:x,recipient:z,memo:G,sender:X}){if(x.isGasAsset){let j=G?S(G).toBoc().toString("base64"):void 0;return[{address:z,amount:x.getBaseValue("string"),payload:j}]}let Y=x.address;if(!Y)throw new J({errorKey:"core_swap_contract_not_found",info:{asset:x.toString()}});let Z=X??await U(),q=await E({jettonMasterAddress:Y,ownerAddress:Z}),O=k.parse(z),B=k.parse(Z),F=x.getBaseValue("bigint"),h=G?S(G):void 0,y=a({destinationAddress:O,forwardPayload:h,jettonAmount:F,responseAddress:B});return[{address:q.toString(),amount:Jx.toString(),payload:y.toBoc().toString("base64")}]}function L({sender:x,...z}){return u({...z,sender:x})}function M(x){return x.map((z)=>{let G=z.payload?A.fromBase64(z.payload):void 0,X=z.stateInit?Ix(A.fromBase64(z.stateInit).asSlice()):void 0,Y=k.parse(z.address),Z=k.isFriendly(z.address)?k.parseFriendly(z.address).isBounceable:!0;return Nx({body:G,bounce:Z,init:X,to:Y,value:BigInt(z.amount)})})}async function _(x){let z=await N(),G=await R();if(!G||!z)throw new J("core_wallet_connection_not_found");let X=await H(),{state:Y}=await X.getContractState(G.address),Z=Y==="active",q=Z?await G.getSeqno():0,O=G.createTransfer({messages:M(x),secretKey:z.secretKey,sendMode:g,seqno:q}),B=Hx({body:O,init:Z?void 0:G.init,to:G.address});return V().store(Ox(B)).endCell()}async function b(x){return await(await H()).sendFile(x.toBoc()),x.hash().toString("hex")}async function W(x){let z=await _(x);return b(z)}async function n({assetValue:x,recipient:z,memo:G}){let X=await L({assetValue:x,memo:G,recipient:z});return W(X)}async function t({sender:x,...z}){let{baseDecimal:G}=Zx(p.Ton),X=await i(x).with(T.string,(q)=>{return k.parseFriendly(q).address}).otherwise(async()=>{return(await R()).address});if(!X)throw new J("toolbox_fee_estimation_failed",{chain:p.Ton});let Y=Yx.from({chain:p.Ton,value:"0.01"}),Z=await H();try{let q=await L({sender:x,...z}),O=await N(),B=await R();if(!B||!O)return Y;let F=await B.getSeqno(),h=B.createTransfer({messages:M(q),secretKey:O.secretKey,sendMode:g,seqno:F}),{source_fees:y}=await Z.estimateExternalMessageFee(X,{body:h,ignoreSignature:!0,initCode:null,initData:null}),j=y.in_fwd_fee+y.storage_fee+y.gas_fee+y.fwd_fee;return Y.set(kx.fromBigInt(BigInt(j),G))}catch{return Y}}async function E({jettonMasterAddress:x,ownerAddress:z}){try{let G=await H(),X=k.parse(x),Y=k.parse(z);return await G.open(Bx.create(X)).getWalletAddress(Y)}catch{throw new J({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:x,ownerAddress:z}})}}function a({jettonAmount:x,destinationAddress:z,responseAddress:G,forwardAmount:X=Lx,forwardPayload:Y}){let Z=V().storeUint(Kx,32).storeUint(0,64).storeCoins(x).storeAddress(z).storeAddress(G).storeBit(0).storeCoins(X);if(Y)Z.storeBit(1).storeRef(Y);else Z.storeBit(0);return Z.endCell()}function S(x){return V().storeUint(0,32).storeStringTail(x).endCell()}return{broadcastTransaction:b,createTransaction:L,estimateTransactionFee:t,getAddress:U,getBalance:K,getJettonWalletAddress:E,sign:_,signAndBroadcastTransaction:W,transfer:n,validateAddress:d}}function d(v){try{return k.parse(v),!0}catch{return!1}}var Kx=260734629,Lx,Jx,g,px=60000,D,l=0;var r=P(()=>{c();Lx=o("0.01"),Jx=o("0.05"),g=m.PAY_GAS_SEPARATELY+m.IGNORE_ERRORS});var hx={};vx(hx,{validateTonAddress:()=>d,getTONToolbox:()=>ux});var jx=P(()=>{r()});jx();export{d as validateTonAddress,ux as getTONToolbox};
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};
@@ -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();
@@ -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 SONICToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
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 UNIToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
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 XLayerToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
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 MONADToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
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 MEGAETHToolbox: ({ provider, ...toolboxParams }: EVMToolboxParams) => {
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>);