@swapkit/toolboxes 4.0.23 → 4.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/src/cosmos/index.cjs +2 -2
  2. package/dist/src/cosmos/index.cjs.map +4 -4
  3. package/dist/src/cosmos/index.js +2 -2
  4. package/dist/src/cosmos/index.js.map +4 -4
  5. package/dist/src/evm/index.cjs +2 -2
  6. package/dist/src/evm/index.cjs.map +2 -2
  7. package/dist/src/evm/index.js +1 -1
  8. package/dist/src/evm/index.js.map +1 -1
  9. package/dist/src/index.cjs +3 -3
  10. package/dist/src/index.cjs.map +7 -7
  11. package/dist/src/index.js +3 -3
  12. package/dist/src/index.js.map +7 -7
  13. package/dist/src/near/index.cjs +2 -2
  14. package/dist/src/near/index.cjs.map +4 -4
  15. package/dist/src/near/index.js +2 -2
  16. package/dist/src/near/index.js.map +4 -4
  17. package/dist/src/radix/index.js +1 -1
  18. package/dist/src/radix/index.js.map +1 -1
  19. package/dist/src/ripple/index.js +1 -1
  20. package/dist/src/ripple/index.js.map +1 -1
  21. package/dist/src/solana/index.js +1 -1
  22. package/dist/src/solana/index.js.map +1 -1
  23. package/dist/src/substrate/index.cjs +2 -2
  24. package/dist/src/substrate/index.cjs.map +2 -2
  25. package/dist/src/substrate/index.js +1 -1
  26. package/dist/src/substrate/index.js.map +1 -1
  27. package/dist/src/tron/index.cjs +2 -2
  28. package/dist/src/tron/index.cjs.map +2 -2
  29. package/dist/src/tron/index.js +1 -1
  30. package/dist/src/tron/index.js.map +1 -1
  31. package/dist/src/utxo/index.cjs +3 -3
  32. package/dist/src/utxo/index.cjs.map +2 -2
  33. package/dist/src/utxo/index.js +1 -1
  34. package/dist/src/utxo/index.js.map +1 -1
  35. package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
  36. package/dist/types/cosmos/toolbox/index.d.ts +2 -2
  37. package/dist/types/cosmos/toolbox/index.d.ts.map +1 -1
  38. package/dist/types/near/toolbox.d.ts.map +1 -1
  39. package/dist/types/near/types.d.ts +1 -1
  40. package/dist/types/near/types.d.ts.map +1 -1
  41. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- var bn=Object.create;var{getPrototypeOf:an,defineProperty:S,getOwnPropertyNames:d,getOwnPropertyDescriptor:Un}=Object,c=Object.prototype.hasOwnProperty;var E=(n,r,i)=>{i=n!=null?bn(an(n)):{};let o=r||!n||!n.__esModule?S(i,"default",{value:n,enumerable:!0}):i;for(let m of d(n))if(!c.call(o,m))S(o,m,{get:()=>n[m],enumerable:!0});return o},K=new WeakMap,Yn=(n)=>{var r=K.get(n),i;if(r)return r;if(r=S({},"__esModule",{value:!0}),n&&typeof n==="object"||typeof n==="function")d(n).map((o)=>!c.call(r,o)&&S(r,o,{get:()=>n[o],enumerable:!(i=Un(n,o))||i.enumerable}));return K.set(n,r),r};var qn=(n,r)=>{for(var i in r)S(n,i,{get:r[i],enumerable:!0,configurable:!0,set:(o)=>r[i]=()=>o})};var D=(n,r)=>()=>(n&&(r=n(n=0)),r);async function G(){let{validateAccountId:n}=await import("near-sdk-js");return(r)=>{try{return n(r)}catch{let i=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&i.test(r)}}}async function a(n){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:i}=await import("near-api-js"),o=n.index||0,m=n.derivationPath?b.derivationPathToString(n.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:P}=r(n.phrase,m),N=i.fromString(P);return rn(N)}async function M(n){let{KeyPair:r}=await import("near-api-js/lib/utils"),i=r.fromString(n);return rn(i)}function rn(n){return new tn(n)}async function U(n,r){let o=(await n.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((O)=>O.access_key.permission==="FullAccess");if(!o)throw new b.SwapKitError("toolbox_near_invalid_address");let{utils:m}=await import("near-api-js"),P=m.PublicKey.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:P}}var b,nn,tn;var Q=D(()=>{b=require("@swapkit/helpers"),nn=require("near-api-js");tn=class tn extends nn.KeyPairSigner{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),r=Buffer.from(n.data).toString("hex");return Promise.resolve(r)}}});function Z(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function $(n){return"contractId"in n&&"methodName"in n}function p(n){return"actions"in n}function z(n){return"newAccountId"in n}function X(n){return"contractCode"in n}function H(n){return"customEstimator"in n}function k(n){let r=0;for(let i of n)switch(i.enum){case"transfer":r+=Number(_.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(_.CONTRACT_CALL);break;case"createAccount":r+=Number(_.ACCOUNT_CREATION);break;case"deployContract":r+=Number(_.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(_.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(_.ACCESS_KEY_DELETION);break;case"stake":r+=Number(_.STAKE);break;default:r+=Number(_.CONTRACT_CALL)}return r.toString()}function V(n){if(n==="ft_transfer"||n==="ft_transfer_call")return _.TOKEN_TRANSFER;if(n==="storage_deposit")return _.STORAGE_DEPOSIT;return _.CONTRACT_CALL}function Fn(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function Jn(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var _;var w=D(()=>{_={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function Y({account:n,contractId:r,viewMethods:i,changeMethods:o}){let{Contract:m}=await import("near-api-js");return new m(n,r,{changeMethods:o,useLocalViewExecution:!0,viewMethods:i})}async function j({contractId:n,account:r}){let i=(await import("bn.js")).default,o=await Y({account:r,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:n,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),m=async(P)=>{if(!await o.storage_balance_of({account_id:P})){let A=(await o.storage_balance_bounds())?.min||"1250000000000000000000";await o.storage_deposit({account_id:P},new i("100000000000000"),new i(A))}};return{balanceOf:(P)=>o.ft_balance_of({account_id:P}),contract:o,ensureStorage:m,metadata:()=>o.ft_metadata(),storageBalanceOf:(P)=>o.storage_balance_of({account_id:P}),storageDeposit:(P,N)=>o.storage_deposit({account_id:P},new i("100000000000000"),new i(N||"1250000000000000000000")),totalSupply:()=>o.ft_total_supply(),transfer:async(P,N,O)=>{return await m(P),o.ft_transfer({amount:N,memo:O,receiver_id:P},new i("100000000000000"),new i("1"))},transferCall:async(P,N,O,A)=>{return await m(P),o.ft_transfer_call({amount:N,memo:A,msg:O,receiver_id:P},new i("100000000000000"),new i("1"))}}}function Xn(){function n(){let r=Date.now(),i=h||r;return h=i,r>h?r:i+1}return Wn+n().toString(36)}function on(n){return async function(i,o=!0){let m=await Tn.SwapKitApi.getChainBalance({address:i,chain:n,scamFilter:o}),{baseDecimal:P}=q.getChainConfig(n);return m.map(({identifier:N,value:O,decimal:A})=>{return new q.AssetValue({decimal:A||P,identifier:N,value:O})})}}var q,Tn,Wn,h=0;var en=D(()=>{q=require("@swapkit/helpers"),Tn=require("@swapkit/helpers/api"),Wn=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function Bn(n){let{P:r,match:i}=await import("ts-pattern"),{providers:o}=await import("near-api-js"),m=await i(n).with({phrase:r.string},async(t)=>{return await a(t)}).with({signer:r.any},({signer:t})=>t).otherwise(()=>{return}),P=await e.getRPCUrl(e.Chain.Near),N=new o.JsonRpcProvider({url:P});async function O(t){let{Account:T}=await import("near-api-js"),f=t||await A();return new T(f,N,m)}async function A(){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");return await m.getAddress()}async function fn(t){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let{recipient:T,assetValue:f}=t;if(!(await G())(T))throw new e.SwapKitError("toolbox_near_invalid_address");let s=await O();if(f.isGasAsset===!1){let g=f.address;if(!g)throw new e.SwapKitError("toolbox_near_missing_contract_address");let x=f.getBaseValue("string");return v({args:{amount:x,memo:t.memo,receiver_id:T},contractId:g,methodName:"ft_transfer"})}try{let g=f.getBaseValue("string");return(await s.transfer({amount:g,receiverId:T})).transaction_outcome.id}catch(g){throw new e.SwapKitError("toolbox_near_transfer_failed",{error:g})}}async function gn(t){let{recipient:T,assetValue:f,memo:C,attachedDeposit:s,sender:g,functionCall:x}=t,y=await G();if(!y(T))throw new e.SwapKitError("toolbox_near_invalid_address",{recipient:T});if(!y(g))throw new e.SwapKitError("toolbox_near_invalid_address",{signerId:g});if(x)return F({...x,sender:g});if(!f.isGasAsset){let I=f.address;if(!I)throw new e.SwapKitError("toolbox_near_missing_contract_address");return F({args:{amount:f.getBaseValue("string"),memo:C||null,receiver_id:T},attachedDeposit:s||"1",contractId:I,gas:"250000000000000",methodName:"ft_transfer",sender:g})}let{publicKey:L,nonce:W}=await U(N,g),Dn=f.getBaseValue("bigint"),{transactions:B,utils:Ln}=await import("near-api-js"),u=[B.transfer(Dn)];if(C&&s)u.push(B.functionCall("memo",{memo:C},BigInt("250000000000000"),BigInt(s)));let Sn=await N.block({finality:"final"}),Gn=Ln.serialize.base_decode(Sn.header.hash);return B.createTransaction(g,L,T,W+1,u,Gn)}async function Pn(t){let{SCHEMA:T}=await import("near-api-js/lib/transaction"),{utils:f}=await import("near-api-js"),C=f.serialize.serialize(T.Transaction,t);return Buffer.from(C).toString("base64")}async function F(t){let{sender:T}=t,{publicKey:f,nonce:C}=await U(N,T),{transactions:s,utils:g}=await import("near-api-js"),x=await N.block({finality:"final"}),y=g.serialize.base_decode(x.header.hash),L=[s.functionCall(t.methodName,Buffer.from(JSON.stringify(t.args)),BigInt(t.gas),BigInt(t.attachedDeposit))];return s.createTransaction(T,f,t.contractId,C+1,L,y)}async function Nn(t){let{transactions:T}=await import("near-api-js");return T.functionCall(t.methodName,Buffer.from(JSON.stringify(t.args)),BigInt(t.gas),BigInt(t.attachedDeposit))}async function xn(t){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let[T,f]=await m.signTransaction(t);return f}async function Cn(t){return(await N.sendTransaction(t)).transaction.hash}async function sn(t){if("assetValue"in t){let s=BigInt("115123062500")+BigInt("108059500000"),g=await En(),x=s*BigInt(g.toString()),{baseDecimal:y}=e.getChainConfig(e.Chain.Near);return e.AssetValue.from({chain:e.Chain.Near,fromBaseDecimal:y,value:x.toString()})}let T=m?await O():void 0;return J(t,T)}async function En(){try{return await N.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function On(t,T,f){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let C=await O(),{utils:s}=await import("near-api-js"),g=s.format.parseNearAmount(f)||"0";return(await C.createAccount(t,s.PublicKey.fromString(T),BigInt(g))).transaction.hash}async function v(t){try{if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let{transactions:T}=await import("near-api-js"),{contractId:f,methodName:C,args:s,deposit:g}=t,x=await O(),y=await J({args:s||{},contractId:f,methodName:C}),L=T.functionCall(C,s||{},y.getBaseValue("bigint"),BigInt(g||"1"));return(await x.signAndSendTransaction({actions:[L],receiverId:f})).transaction_outcome.id}catch(T){throw new e.SwapKitError("toolbox_near_transfer_failed",{error:T})}}async function _n(t){let T=await O();return Y({account:T,changeMethods:t.changeMethods,contractId:t.contractId,viewMethods:t.viewMethods})}async function An(t){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");if(t.actions.length===0)throw new e.SwapKitError("toolbox_near_empty_batch");return(await(await O()).signAndSendTransaction({actions:t.actions,receiverId:t.receiverId})).transaction.hash}async function yn(t){let T=await O();return j({account:T,contractId:t})}async function J(t,T){let{baseDecimal:f}=e.getChainConfig(e.Chain.Near),C=await i(t).when(Z,()=>_.SIMPLE_TRANSFER).when($,(x)=>V(x.methodName)).when(p,(x)=>k(x.actions)).when(z,()=>_.ACCOUNT_CREATION).when(X,()=>_.CONTRACT_DEPLOYMENT).when(H,(x)=>{if(!T)throw new e.SwapKitError("toolbox_near_no_account");return x.customEstimator(T)}).otherwise(()=>{throw new e.SwapKitError("toolbox_near_invalid_gas_params")}),g=BigInt(C)*BigInt(1000000000000);return e.AssetValue.from({chain:e.Chain.Near,fromBaseDecimal:f,value:g})}async function Rn(){try{return(await N.gasPrice(null)).gas_price||"100000000"}catch(t){return"100000000"}}return{broadcastTransaction:Cn,callFunction:v,createAction:Nn,createContract:_n,createContractFunctionCall:F,createSubAccount:On,createTransaction:gn,estimateGas:J,estimateTransactionFee:sn,executeBatchTransaction:An,getAddress:A,getBalance:on(e.Chain.Near),getGasPrice:Rn,getPublicKey:async()=>m?(await m.getPublicKey()).toString():"",getSignerFromPhrase:(t)=>a(t),getSignerFromPrivateKey:M,nep141:yn,provider:N,serializeTransaction:Pn,signTransaction:xn,transfer:fn,validateAddress:await G()}}var e;var l=D(()=>{e=require("@swapkit/helpers");en();Q();w()});var mn=D(()=>{l()});var Mn={};qn(Mn,{tgasToGas:()=>Fn,isSimpleTransfer:()=>Z,isCustomEstimator:()=>H,isContractDeployment:()=>X,isContractCall:()=>$,isBatchTransaction:()=>p,isAccountCreation:()=>z,getValidateNearAddress:()=>G,getNearToolbox:()=>Bn,getNearSignerFromPrivateKey:()=>M,getNearSignerFromPhrase:()=>a,getFullAccessPublicKey:()=>U,getContractMethodGas:()=>V,gasToTGas:()=>Jn,estimateBatchGas:()=>k,createNearContract:()=>Y,createNEP141Token:()=>j,GAS_COSTS:()=>_});module.exports=Yn(Mn);var Qn=D(()=>{Q();w();l();mn()});Qn();
1
+ var Lt=Object.create;var{getPrototypeOf:Gt,defineProperty:D,getOwnPropertyNames:tt,getOwnPropertyDescriptor:pt}=Object,rt=Object.prototype.hasOwnProperty;var N=(t,r,i)=>{i=t!=null?Lt(Gt(t)):{};let e=r||!t||!t.__esModule?D(i,"default",{value:t,enumerable:!0}):i;for(let m of tt(t))if(!rt.call(e,m))D(e,m,{get:()=>t[m],enumerable:!0});return e},c=new WeakMap,bt=(t)=>{var r=c.get(t),i;if(r)return r;if(r=D({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")tt(t).map((e)=>!rt.call(r,e)&&D(r,e,{get:()=>t[e],enumerable:!(i=pt(t,e))||i.enumerable}));return c.set(t,r),r};var Ut=(t,r)=>{for(var i in r)D(t,i,{get:r[i],enumerable:!0,configurable:!0,set:(e)=>r[i]=()=>e})};var R=(t,r)=>()=>(t&&(r=t(t=0)),r);async function G(){let{validateAccountId:t}=await import("near-sdk-js");return(r)=>{try{return t(r)}catch{let i=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&i.test(r)}}}async function p(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:i}=await import("near-api-js"),e=t.index||0,m=t.derivationPath?L.derivationPathToString(t.derivationPath.slice(0,3)):`m/44'/397'/${e}'`,{secretKey:f}=r(t.phrase,m),P=i.fromString(f);return et(P)}async function B(t){let{KeyPair:r}=await import("near-api-js/lib/utils"),i=r.fromString(t);return et(i)}function et(t){return new it(t)}async function b(t,r){let e=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((E)=>E.access_key.permission==="FullAccess");if(!e)throw new L.SwapKitError("toolbox_near_invalid_address");let{utils:m}=await import("near-api-js"),f=m.PublicKey.fromString(e.public_key);return{nonce:e.access_key.nonce||0,publicKey:f}}var L,nt,it;var M=R(()=>{L=require("@swapkit/helpers"),nt=require("near-api-js");it=class it extends nt.KeyPairSigner{#t;constructor(t){super(t);this.#t=t}getAddress(){let t=this.#t.getPublicKey(),r=Buffer.from(t.data).toString("hex");return Promise.resolve(r)}}});function Q(t){return"recipient"in t&&"amount"in t&&!("contractId"in t)}function Z(t){return"contractId"in t&&"methodName"in t}function $(t){return"actions"in t}function z(t){return"newAccountId"in t}function X(t){return"contractCode"in t}function H(t){return"customEstimator"in t}function V(t){let r=0;for(let i of t)switch(i.enum){case"transfer":r+=Number(C.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(C.CONTRACT_CALL);break;case"createAccount":r+=Number(C.ACCOUNT_CREATION);break;case"deployContract":r+=Number(C.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(C.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(C.ACCESS_KEY_DELETION);break;case"stake":r+=Number(C.STAKE);break;default:r+=Number(C.CONTRACT_CALL)}return r.toString()}function k(t){if(t==="ft_transfer"||t==="ft_transfer_call")return C.TOKEN_TRANSFER;if(t==="storage_deposit")return C.STORAGE_DEPOSIT;return C.CONTRACT_CALL}function Yt(t){return(BigInt(t)*BigInt(1000000000000)).toString()}function Ft(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var C;var w=R(()=>{C={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function U({account:t,contractId:r,viewMethods:i,changeMethods:e}){let{Contract:m}=await import("near-api-js");return new m(t,r,{changeMethods:e,useLocalViewExecution:!0,viewMethods:i})}async function j({contractId:t,account:r}){let i=(await import("bn.js")).default,e=await U({account:r,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:t,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),m=async(f)=>{if(!await e.storage_balance_of({account_id:f})){let A=(await e.storage_balance_bounds())?.min||"1250000000000000000000";await e.storage_deposit({account_id:f},new i("100000000000000"),new i(A))}};return{balanceOf:(f)=>e.ft_balance_of({account_id:f}),contract:e,ensureStorage:m,metadata:()=>e.ft_metadata(),storageBalanceOf:(f)=>e.storage_balance_of({account_id:f}),storageDeposit:(f,P)=>e.storage_deposit({account_id:f},new i("100000000000000"),new i(P||"1250000000000000000000")),totalSupply:()=>e.ft_total_supply(),transfer:async(f,P,E)=>{return await m(f),e.ft_transfer({amount:P,memo:E,receiver_id:f},new i("100000000000000"),new i("1"))},transferCall:async(f,P,E,A)=>{return await m(f),e.ft_transfer_call({amount:P,memo:A,msg:E,receiver_id:f},new i("100000000000000"),new i("1"))}}}function zt(){function t(){let r=Date.now(),i=l||r;return l=i,r>l?r:i+1}return qt+t().toString(36)}function Tt(t){return async function(i,e=!0){let m=await ot.SwapKitApi.getChainBalance({address:i,chain:t,scamFilter:e}),{baseDecimal:f}=Y.getChainConfig(t);return m.map(({identifier:P,value:E,decimal:A})=>{return new Y.AssetValue({decimal:A||f,identifier:P,value:E})})}}var Y,ot,qt,l=0;var mt=R(()=>{Y=require("@swapkit/helpers"),ot=require("@swapkit/helpers/api"),qt=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function Jt(t){let{P:r,match:i}=await import("ts-pattern"),{providers:e}=await import("near-api-js"),m=await i(t).with({phrase:r.string},async(n)=>{return await p(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),f=await T.getRPCUrl(T.Chain.Near),P=new e.JsonRpcProvider({url:f});async function E(n){let{Account:o}=await import("near-api-js"),g=n||await A();return new o(g,P,m)}async function A(){if(!m)throw new T.SwapKitError("toolbox_near_no_signer");return await m.getAddress()}async function gt(n){if(!m)throw new T.SwapKitError("toolbox_near_no_signer");let o=await h({...n,sender:await A()});return I(await v(o))}async function h(n){let{recipient:o,assetValue:g,memo:s,attachedDeposit:O,sender:x,functionCall:_}=n,a=await G();if(!a(o))throw new T.SwapKitError("toolbox_near_invalid_address",{recipient:o});if(!a(x))throw new T.SwapKitError("toolbox_near_invalid_address",{signerId:x});if(_)return F({..._,sender:x});if(!g.isGasAsset){let d=g.address;if(!d)throw new T.SwapKitError("toolbox_near_missing_contract_address");return F({args:{amount:g.getBaseValue("string"),memo:s||null,receiver_id:o},attachedDeposit:O||"1",contractId:d,gas:"250000000000000",methodName:"ft_transfer",sender:x})}let{publicKey:S,nonce:J}=await b(P,x),yt=g.getBaseValue("bigint"),{transactions:W,utils:Rt}=await import("near-api-js"),K=[W.transfer(yt)];if(s&&O)K.push(W.functionCall("memo",{memo:s},BigInt("250000000000000"),BigInt(O)));let St=await P.block({finality:"final"}),Dt=Rt.serialize.base_decode(St.header.hash);return W.createTransaction(x,S,o,J+1,K,Dt)}async function Pt(n){let{SCHEMA:o}=await import("near-api-js/lib/transaction"),{utils:g}=await import("near-api-js"),s=g.serialize.serialize(o.Transaction,n);return Buffer.from(s).toString("base64")}async function F(n){let{sender:o}=n,{publicKey:g,nonce:s}=await b(P,o),{transactions:O,utils:x}=await import("near-api-js"),_=await P.block({finality:"final"}),a=x.serialize.base_decode(_.header.hash),S=[O.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return O.createTransaction(o,g,n.contractId,s+1,S,a)}async function Nt(n){let{transactions:o}=await import("near-api-js");return o.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function v(n){if(!m)throw new T.SwapKitError("toolbox_near_no_signer");let[o,g]=await m.signTransaction(n);return g}async function I(n){return(await P.sendTransaction(n)).transaction.hash}async function st(n){if("assetValue"in n){let O=BigInt("115123062500")+BigInt("108059500000"),x=await xt(),_=O*BigInt(x.toString()),{baseDecimal:a}=T.getChainConfig(T.Chain.Near);return T.AssetValue.from({chain:T.Chain.Near,fromBaseDecimal:a,value:_.toString()})}let o=m?await E():void 0;return q(n,o)}async function xt(){try{return await P.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Ct(n,o,g){if(!m)throw new T.SwapKitError("toolbox_near_no_signer");let s=await E(),{utils:O}=await import("near-api-js"),x=O.format.parseNearAmount(g)||"0";return(await s.createAccount(n,O.PublicKey.fromString(o),BigInt(x))).transaction.hash}async function Et(n){try{if(!m)throw new T.SwapKitError("toolbox_near_no_signer");let{transactions:o}=await import("near-api-js"),{contractId:g,methodName:s,args:O,deposit:x}=n,_=await E(),a=await q({args:O||{},contractId:g,methodName:s}),S=o.functionCall(s,O||{},a.getBaseValue("bigint"),BigInt(x||"1"));return(await _.signAndSendTransaction({actions:[S],receiverId:g})).transaction_outcome.id}catch(o){throw new T.SwapKitError("toolbox_near_transfer_failed",{error:o})}}async function Ot(n){let o=await E();return U({account:o,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function _t(n){if(!m)throw new T.SwapKitError("toolbox_near_no_signer");if(n.actions.length===0)throw new T.SwapKitError("toolbox_near_empty_batch");return(await(await E()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function At(n){let o=await E();return j({account:o,contractId:n})}async function q(n,o){let{baseDecimal:g}=T.getChainConfig(T.Chain.Near),s=await i(n).when(Q,()=>C.SIMPLE_TRANSFER).when(Z,(_)=>k(_.methodName)).when($,(_)=>V(_.actions)).when(z,()=>C.ACCOUNT_CREATION).when(X,()=>C.CONTRACT_DEPLOYMENT).when(H,(_)=>{if(!o)throw new T.SwapKitError("toolbox_near_no_account");return _.customEstimator(o)}).otherwise(()=>{throw new T.SwapKitError("toolbox_near_invalid_gas_params")}),x=BigInt(s)*BigInt(1000000000000);return T.AssetValue.from({chain:T.Chain.Near,fromBaseDecimal:g,value:x})}async function at(){try{return(await P.gasPrice(null)).gas_price||"100000000"}catch(n){return"100000000"}}return{broadcastTransaction:I,callFunction:Et,createAction:Nt,createContract:Ot,createContractFunctionCall:F,createSubAccount:Ct,createTransaction:h,estimateGas:q,estimateTransactionFee:st,executeBatchTransaction:_t,getAddress:A,getBalance:Tt(T.Chain.Near),getGasPrice:at,getPublicKey:async()=>m?(await m.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>p(n),getSignerFromPrivateKey:B,nep141:At,provider:P,serializeTransaction:Pt,signTransaction:v,transfer:gt,validateAddress:await G()}}var T;var u=R(()=>{mt();M();w();T=require("@swapkit/helpers")});var ft=R(()=>{u()});var Wt={};Ut(Wt,{tgasToGas:()=>Yt,isSimpleTransfer:()=>Q,isCustomEstimator:()=>H,isContractDeployment:()=>X,isContractCall:()=>Z,isBatchTransaction:()=>$,isAccountCreation:()=>z,getValidateNearAddress:()=>G,getNearToolbox:()=>Jt,getNearSignerFromPrivateKey:()=>B,getNearSignerFromPhrase:()=>p,getFullAccessPublicKey:()=>b,getContractMethodGas:()=>k,gasToTGas:()=>Ft,estimateBatchGas:()=>V,createNearContract:()=>U,createNEP141Token:()=>j,GAS_COSTS:()=>C});module.exports=bt(Wt);var Bt=R(()=>{M();w();u();ft()});Bt();
2
2
 
3
- //# debugId=A423ECE9DBBB731E64756E2164756E21
3
+ //# debugId=D021C22160BBD9B364756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -6,11 +6,11 @@
6
6
  "import type { Account } from \"near-api-js\";\nimport type { NearGasEstimateParams } from \"../types/contract\";\n\nexport const GAS_COSTS = {\n ACCESS_KEY_ADDITION: \"5\",\n ACCESS_KEY_DELETION: \"5\",\n ACCOUNT_CREATION: \"30\",\n CONTRACT_CALL: \"150\",\n CONTRACT_DEPLOYMENT: \"200\",\n SIMPLE_TRANSFER: \"1\",\n STAKE: \"10\",\n STORAGE_DEPOSIT: \"150\",\n TOKEN_TRANSFER: \"150\",\n} as const;\n\nexport function isSimpleTransfer(params: NearGasEstimateParams): params is { recipient: string; amount: string } {\n return \"recipient\" in params && \"amount\" in params && !(\"contractId\" in params);\n}\n\nexport function isContractCall(\n params: NearGasEstimateParams,\n): params is { contractId: string; methodName: string; args?: Record<string, any>; attachedDeposit?: string } {\n return \"contractId\" in params && \"methodName\" in params;\n}\n\nexport function isBatchTransaction(params: NearGasEstimateParams): params is { actions: any[] } {\n return \"actions\" in params;\n}\n\nexport function isAccountCreation(\n params: NearGasEstimateParams,\n): params is { newAccountId: string; publicKey?: string } {\n return \"newAccountId\" in params;\n}\n\nexport function isContractDeployment(params: NearGasEstimateParams): params is { contractCode: Uint8Array } {\n return \"contractCode\" in params;\n}\n\nexport function isCustomEstimator(\n params: NearGasEstimateParams,\n): params is { customEstimator: (account: Account) => Promise<string> } {\n return \"customEstimator\" in params;\n}\n\nexport function estimateBatchGas(actions: any[]) {\n let totalGas = 0;\n\n for (const action of actions) {\n switch (action.enum) {\n case \"transfer\":\n totalGas += Number(GAS_COSTS.SIMPLE_TRANSFER);\n break;\n case \"functionCall\":\n totalGas += Number(GAS_COSTS.CONTRACT_CALL);\n break;\n case \"createAccount\":\n totalGas += Number(GAS_COSTS.ACCOUNT_CREATION);\n break;\n case \"deployContract\":\n totalGas += Number(GAS_COSTS.CONTRACT_DEPLOYMENT);\n break;\n case \"addKey\":\n totalGas += Number(GAS_COSTS.ACCESS_KEY_ADDITION);\n break;\n case \"deleteKey\":\n totalGas += Number(GAS_COSTS.ACCESS_KEY_DELETION);\n break;\n case \"stake\":\n totalGas += Number(GAS_COSTS.STAKE);\n break;\n default:\n totalGas += Number(GAS_COSTS.CONTRACT_CALL);\n }\n }\n\n return totalGas.toString();\n}\n\nexport function getContractMethodGas(methodName: string) {\n if (methodName === \"ft_transfer\" || methodName === \"ft_transfer_call\") {\n return GAS_COSTS.TOKEN_TRANSFER;\n }\n if (methodName === \"storage_deposit\") {\n return GAS_COSTS.STORAGE_DEPOSIT;\n }\n return GAS_COSTS.CONTRACT_CALL;\n}\n\nexport function tgasToGas(tgas: string): string {\n return (BigInt(tgas) * BigInt(10 ** 12)).toString();\n}\n\nexport function gasToTGas(gas: string): string {\n return (BigInt(gas) / BigInt(10 ** 12)).toString();\n}\n",
7
7
  "import type { Account, Contract } from \"near-api-js\";\n\nconst DEFAULT_STORAGE_DEPOSIT = \"1250000000000000000000\"; // 0.00125 NEAR\n\n// NEP-141 metadata interface\nexport interface NEP141Metadata {\n spec: string;\n name: string;\n symbol: string;\n icon?: string;\n reference?: string;\n reference_hash?: string;\n decimals: number;\n}\n\n// Storage balance response\nexport interface StorageBalance {\n total: string;\n available: string;\n}\n\n// Storage balance bounds\nexport interface StorageBalanceBounds {\n min: string;\n max?: string;\n}\n\n// BN.js is dynamically imported, but we need the type\n// Using any here is acceptable as BN.js doesn't export proper TypeScript types\ntype BN = any; // BN.js instance\n\n// Define NEP-141 contract interface\nexport interface NEP141Contract extends Contract {\n // View methods\n ft_balance_of(args: { account_id: string }): Promise<string>;\n ft_total_supply(): Promise<string>;\n ft_metadata(): Promise<NEP141Metadata>;\n storage_balance_of(args: { account_id: string }): Promise<StorageBalance | null>;\n storage_balance_bounds(): Promise<StorageBalanceBounds>;\n\n // Change methods\n ft_transfer(args: { receiver_id: string; amount: string; memo?: string }, gas: BN, deposit: BN): Promise<void>;\n ft_transfer_call(\n args: { receiver_id: string; amount: string; msg: string; memo?: string },\n gas: BN,\n deposit: BN,\n ): Promise<void>;\n storage_deposit(\n args: { account_id?: string; registration_only?: boolean },\n gas: BN,\n deposit: BN,\n ): Promise<StorageBalance>;\n storage_withdraw(args: { amount?: string }, gas: BN, deposit?: BN): Promise<StorageBalance>;\n storage_unregister(force?: boolean, gas?: BN): Promise<boolean>;\n}\n\nexport type NEP141Token = {\n transfer: (receiverId: string, amount: string, memo?: string) => Promise<void>;\n transferCall: (receiverId: string, amount: string, msg: string, memo?: string) => Promise<void>;\n balanceOf: (accountId: string) => Promise<string>;\n totalSupply: () => Promise<string>;\n metadata: () => Promise<NEP141Metadata>;\n storageBalanceOf: (accountId: string) => Promise<StorageBalance | null>;\n storageDeposit: (accountId?: string, amount?: string) => Promise<StorageBalance>;\n ensureStorage: (accountId: string) => Promise<void>;\n contract: NEP141Contract;\n};\n\n// Create a Near contract instance\nexport async function createNearContract<T extends Contract>({\n account,\n contractId,\n viewMethods,\n changeMethods,\n}: {\n account: Account;\n contractId: string;\n viewMethods: string[];\n changeMethods: string[];\n}): Promise<T> {\n const { Contract } = await import(\"near-api-js\");\n\n return new Contract(account, contractId, {\n changeMethods,\n useLocalViewExecution: true, // Enable local view execution for efficiency\n viewMethods,\n }) as T;\n}\n\nexport async function createNEP141Token({\n contractId,\n account,\n}: {\n contractId: string;\n account: Account;\n}): Promise<NEP141Token> {\n const BN = (await import(\"bn.js\")).default;\n\n const contract = await createNearContract<NEP141Contract>({\n account,\n changeMethods: [\"ft_transfer\", \"ft_transfer_call\", \"storage_deposit\", \"storage_withdraw\", \"storage_unregister\"],\n contractId,\n viewMethods: [\"ft_balance_of\", \"ft_total_supply\", \"ft_metadata\", \"storage_balance_of\", \"storage_balance_bounds\"],\n });\n\n // Helper to ensure storage before transfers\n const ensureStorageFor = async (accountId: string) => {\n const balance = await contract.storage_balance_of({ account_id: accountId });\n if (!balance) {\n // Get minimum storage requirement\n const bounds = await contract.storage_balance_bounds();\n const deposit = bounds?.min || DEFAULT_STORAGE_DEPOSIT;\n\n await contract.storage_deposit(\n { account_id: accountId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(deposit),\n );\n }\n };\n\n return {\n balanceOf: (accountId: string) => contract.ft_balance_of({ account_id: accountId }),\n\n // Raw contract access for advanced use cases\n contract,\n\n ensureStorage: ensureStorageFor,\n\n metadata: () => contract.ft_metadata(),\n\n storageBalanceOf: (accountId: string) => contract.storage_balance_of({ account_id: accountId }),\n\n storageDeposit: (accountId?: string, amount?: string) =>\n contract.storage_deposit(\n { account_id: accountId },\n new BN(\"100000000000000\"),\n new BN(amount || DEFAULT_STORAGE_DEPOSIT),\n ),\n\n totalSupply: () => contract.ft_total_supply(),\n transfer: async (receiverId: string, amount: string, memo?: string) => {\n // Ensure recipient has storage before transfer\n await ensureStorageFor(receiverId);\n\n return contract.ft_transfer(\n { amount, memo, receiver_id: receiverId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(\"1\"), // 1 yoctoNEAR for security\n );\n },\n\n transferCall: async (receiverId: string, amount: string, msg: string, memo?: string) => {\n // Ensure recipient has storage before transfer\n await ensureStorageFor(receiverId);\n\n return contract.ft_transfer_call(\n { amount, memo, msg, receiver_id: receiverId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(\"1\"), // 1 yoctoNEAR for security\n );\n },\n };\n}\n",
8
8
  "import { AssetValue, type Chain, getChainConfig } from \"@swapkit/helpers\";\nimport { SwapKitApi } from \"@swapkit/helpers/api\";\n\nconst pid = typeof process !== \"undefined\" && process.pid ? process.pid.toString(36) : \"\";\n\nlet last = 0;\nexport function uniqid() {\n function now() {\n const time = Date.now();\n const lastTime = last || time;\n last = lastTime;\n\n return time > last ? time : lastTime + 1;\n }\n\n return pid + now().toString(36);\n}\n\nexport function getBalance<T extends Chain>(chain: T) {\n return async function getBalance(address: string, scamFilter = true) {\n const balances = await SwapKitApi.getChainBalance({ address, chain, scamFilter });\n const { baseDecimal } = getChainConfig(chain);\n return balances.map(({ identifier, value, decimal }) => {\n return new AssetValue({ decimal: decimal || baseDecimal, identifier, value });\n });\n };\n}\n",
9
- "import { AssetValue, Chain, getChainConfig, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\nimport type { Account, Contract } from \"near-api-js\";\nimport type { SignedTransaction, Transaction } from \"near-api-js/lib/transaction\";\nimport { getBalance } from \"../utils\";\nimport {\n getFullAccessPublicKey,\n getNearSignerFromPhrase,\n getNearSignerFromPrivateKey,\n getValidateNearAddress,\n} from \"./helpers/core\";\nimport {\n estimateBatchGas,\n GAS_COSTS,\n getContractMethodGas,\n isAccountCreation,\n isBatchTransaction,\n isContractCall,\n isContractDeployment,\n isCustomEstimator,\n isSimpleTransfer,\n} from \"./helpers/gasEstimation\";\nimport { createNEP141Token, createNearContract } from \"./helpers/nep141\";\nimport type {\n NearCreateTransactionParams,\n NearFunctionCallParams,\n NearToolboxParams,\n NearTransferParams,\n} from \"./types\";\nimport type { NearContractInterface, NearGasEstimateParams } from \"./types/contract\";\nimport type {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n NearToolbox,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams): Promise<NearToolbox> {\n const { P, match } = await import(\"ts-pattern\");\n const { providers } = await import(\"near-api-js\");\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, async (params) => {\n const signer = await getNearSignerFromPhrase(params);\n return signer;\n })\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const url = await getRPCUrl(Chain.Near);\n\n const provider = new providers.JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"near-api-js\");\n\n const _address = address || (await getAddress());\n\n const account = new Account(_address, provider, signer);\n\n return account;\n }\n\n async function getAddress() {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { recipient, assetValue } = params;\n\n const nearValidateAddress = await getValidateNearAddress();\n\n if (!nearValidateAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\");\n }\n\n const account = await getAccount();\n\n if (assetValue.isGasAsset === false) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n const amount = assetValue.getBaseValue(\"string\");\n\n return callFunction({\n args: { amount, memo: params.memo, receiver_id: recipient },\n contractId,\n methodName: \"ft_transfer\",\n });\n }\n\n try {\n const transferAmount = assetValue.getBaseValue(\"string\");\n\n const result = await account.transfer({ amount: transferAmount, receiverId: recipient });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new SwapKitError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n async function createTransaction(params: NearCreateTransactionParams) {\n const { recipient, assetValue, memo, attachedDeposit, sender: signerId, functionCall } = params;\n const validateNearAddress = await getValidateNearAddress();\n\n if (!validateNearAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { recipient: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { signerId: signerId });\n }\n\n if (functionCall) {\n return createContractFunctionCall({ ...functionCall, sender: signerId });\n }\n\n if (!assetValue.isGasAsset) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n return createContractFunctionCall({\n args: { amount: assetValue.getBaseValue(\"string\"), memo: memo || null, receiver_id: recipient },\n attachedDeposit: attachedDeposit || \"1\",\n contractId,\n gas: \"250000000000000\",\n methodName: \"ft_transfer\",\n sender: signerId,\n });\n }\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, signerId);\n const baseAmount = assetValue.getBaseValue(\"bigint\");\n\n const { transactions, utils } = await import(\"near-api-js\");\n\n const txActions = [transactions.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(transactions.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n return transactions.createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n async function serializeTransaction(transaction: Transaction) {\n const { SCHEMA } = await import(\"near-api-js/lib/transaction\");\n const { utils } = await import(\"near-api-js\");\n\n const serializedTx = utils.serialize.serialize(SCHEMA.Transaction, transaction);\n return Buffer.from(serializedTx).toString(\"base64\");\n }\n\n async function createContractFunctionCall(params: ContractFunctionCallParams) {\n const { sender: accountId } = params;\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, accountId);\n\n const { transactions, utils } = await import(\"near-api-js\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n const actions = [\n transactions.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n ),\n ];\n\n const transaction = transactions.createTransaction(\n accountId,\n publicKey,\n params.contractId,\n nonce + 1,\n actions,\n blockHash,\n );\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { transactions } = await import(\"near-api-js\");\n\n const action = transactions.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n );\n\n return action;\n }\n\n async function signTransaction(transaction: Transaction): Promise<SignedTransaction> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const [_hash, signedTx] = await signer.signTransaction(transaction);\n return signedTx;\n }\n\n async function broadcastTransaction(signedTransaction: SignedTransaction) {\n const result = await provider.sendTransaction(signedTransaction);\n return result.transaction.hash;\n }\n\n async function estimateTransactionFee(params: NearTransferParams | NearGasEstimateParams) {\n if (\"assetValue\" in params) {\n const baseTransferCost = \"115123062500\";\n const receiptCreationCost = \"108059500000\";\n\n const totalGasUnits = BigInt(baseTransferCost) + BigInt(receiptCreationCost);\n\n const gasPrice = await getCurrentGasPrice();\n\n const totalCostYocto = totalGasUnits * BigInt(gasPrice.toString());\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: totalCostYocto.toString() });\n }\n\n const account = signer ? await getAccount() : undefined;\n return estimateGas(params, account);\n }\n\n async function getCurrentGasPrice() {\n try {\n const result = await provider.query({\n account_id: \"system\",\n args_base64: \"\",\n finality: \"final\",\n method_name: \"gas_price\",\n request_type: \"call_function\",\n });\n\n return result;\n } catch {\n return \"100000000\"; // 0.0001 NEAR per Tgas\n }\n }\n\n async function createSubAccount(subAccountId: string, publicKey: string, initialBalance: string): Promise<string> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { utils } = await import(\"near-api-js\");\n\n const balanceInYocto = utils.format.parseNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(\n subAccountId,\n utils.PublicKey.fromString(publicKey),\n BigInt(balanceInYocto),\n );\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { transactions } = await import(\"near-api-js\");\n\n const { contractId, methodName, args, deposit } = params;\n const account = await getAccount();\n\n const estimatedGas = await estimateGas({ args: args || {}, contractId, methodName });\n\n const functionAction = transactions.functionCall(\n methodName,\n args || {},\n estimatedGas.getBaseValue(\"bigint\"),\n BigInt(deposit || \"1\"),\n );\n\n const result = await account.signAndSendTransaction({ actions: [functionAction], receiverId: contractId });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new SwapKitError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n // Create typed contract interface\n async function createContract<T extends Contract = Contract>(contractInterface: NearContractInterface): Promise<T> {\n const account = await getAccount();\n\n return createNearContract<T>({\n account,\n changeMethods: contractInterface.changeMethods,\n contractId: contractInterface.contractId,\n viewMethods: contractInterface.viewMethods,\n });\n }\n\n async function executeBatchTransaction(batch: BatchTransaction): Promise<string> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new SwapKitError(\"toolbox_near_empty_batch\");\n }\n\n const account = await getAccount();\n\n // Use account.signAndSendTransaction for batch operations\n const result = await account.signAndSendTransaction({ actions: batch.actions, receiverId: batch.receiverId });\n\n return result.transaction.hash;\n }\n\n async function nep141(contractId: string) {\n const account = await getAccount();\n return createNEP141Token({ account, contractId });\n }\n\n async function estimateGas(params: NearGasEstimateParams, account?: Account) {\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n const gasInTGas = await match(params)\n .when(isSimpleTransfer, () => GAS_COSTS.SIMPLE_TRANSFER)\n .when(isContractCall, (p) => getContractMethodGas(p.methodName))\n .when(isBatchTransaction, (p) => estimateBatchGas(p.actions))\n .when(isAccountCreation, () => GAS_COSTS.ACCOUNT_CREATION)\n .when(isContractDeployment, () => GAS_COSTS.CONTRACT_DEPLOYMENT)\n .when(isCustomEstimator, (p) => {\n if (!account) {\n throw new SwapKitError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new SwapKitError(\"toolbox_near_invalid_gas_params\");\n });\n\n const gasInUnits = BigInt(gasInTGas) * BigInt(10 ** 12);\n const costInYoctoNear = gasInUnits;\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: costInYoctoNear });\n }\n\n // Get current gas price from network\n async function getGasPrice() {\n try {\n const result = await provider.gasPrice(null);\n return result.gas_price || \"100000000\";\n } catch (_error) {\n // Fallback to default\n return \"100000000\";\n }\n }\n\n return {\n broadcastTransaction,\n callFunction,\n createAction,\n createContract,\n createContractFunctionCall,\n createSubAccount,\n createTransaction,\n estimateGas,\n estimateTransactionFee,\n executeBatchTransaction,\n getAddress,\n getBalance: getBalance(Chain.Near),\n getGasPrice,\n getPublicKey: async () => (signer ? (await signer.getPublicKey()).toString() : \"\"),\n getSignerFromPhrase: (params: GetSignerFromPhraseParams) => getNearSignerFromPhrase(params),\n getSignerFromPrivateKey: getNearSignerFromPrivateKey,\n nep141,\n provider,\n serializeTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
10
- "import type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\nimport type { KeyPairSigner, Signer, transactions } from \"near-api-js\";\n\ninterface NearKeyPairSigner\n extends KeyPairSigner,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\ninterface NearGeneralSigner\n extends Signer,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\nexport type NearSigner = NearKeyPairSigner | NearGeneralSigner;\n\nexport type NearToolboxParams =\n | { signer?: NearSigner; accountId?: string }\n | { phrase?: string; index?: number; derivationPath?: DerivationPathArray };\n\nexport interface NearTransferParams extends GenericTransferParams {}\n\nexport interface NearConfig {\n networkId: \"mainnet\" | \"testnet\" | \"betanet\";\n nodeUrl: string;\n walletUrl?: string;\n helperUrl?: string;\n keyStore?: any;\n}\n\nexport interface NearFunctionCallParams {\n contractId: string;\n methodName: string;\n args: Uint8Array | Record<string, any>;\n deposit?: bigint | string | number;\n gas?: bigint | string | number;\n}\n\nexport interface NearCreateTransactionParams extends GenericCreateTransactionParams {\n attachedDeposit?: string;\n functionCall?: { methodName: string; args: object; attachedDeposit: string; gas: string; contractId: string };\n}\n\nexport * from \"./toolbox\";\nexport * from \"./types/contract\";\nexport * from \"./types/nep141\";\nexport * from \"./types/toolbox\";\n",
9
+ "import { AssetValue, Chain, getChainConfig, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\nimport type { Account, Contract } from \"near-api-js\";\nimport type { SignedTransaction, Transaction } from \"near-api-js/lib/transaction\";\nimport { getBalance } from \"../utils\";\nimport {\n getFullAccessPublicKey,\n getNearSignerFromPhrase,\n getNearSignerFromPrivateKey,\n getValidateNearAddress,\n} from \"./helpers/core\";\nimport {\n estimateBatchGas,\n GAS_COSTS,\n getContractMethodGas,\n isAccountCreation,\n isBatchTransaction,\n isContractCall,\n isContractDeployment,\n isCustomEstimator,\n isSimpleTransfer,\n} from \"./helpers/gasEstimation\";\nimport { createNEP141Token, createNearContract } from \"./helpers/nep141\";\nimport type {\n NearCreateTransactionParams,\n NearFunctionCallParams,\n NearToolboxParams,\n NearTransferParams,\n} from \"./types\";\nimport type { NearContractInterface, NearGasEstimateParams } from \"./types/contract\";\nimport type {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n NearToolbox,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams): Promise<NearToolbox> {\n const { P, match } = await import(\"ts-pattern\");\n const { providers } = await import(\"near-api-js\");\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, async (params) => {\n const signer = await getNearSignerFromPhrase(params);\n return signer;\n })\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const url = await getRPCUrl(Chain.Near);\n\n const provider = new providers.JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"near-api-js\");\n\n const _address = address || (await getAddress());\n\n const account = new Account(_address, provider, signer);\n\n return account;\n }\n\n async function getAddress() {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const transaction = await createTransaction({ ...params, sender: await getAddress() });\n\n return broadcastTransaction(await signTransaction(transaction));\n }\n\n async function createTransaction(params: NearCreateTransactionParams) {\n const { recipient, assetValue, memo, attachedDeposit, sender: signerId, functionCall } = params;\n const validateNearAddress = await getValidateNearAddress();\n\n if (!validateNearAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { recipient: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { signerId: signerId });\n }\n\n if (functionCall) {\n return createContractFunctionCall({ ...functionCall, sender: signerId });\n }\n\n if (!assetValue.isGasAsset) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n return createContractFunctionCall({\n args: { amount: assetValue.getBaseValue(\"string\"), memo: memo || null, receiver_id: recipient },\n attachedDeposit: attachedDeposit || \"1\",\n contractId,\n gas: \"250000000000000\",\n methodName: \"ft_transfer\",\n sender: signerId,\n });\n }\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, signerId);\n const baseAmount = assetValue.getBaseValue(\"bigint\");\n\n const { transactions, utils } = await import(\"near-api-js\");\n\n const txActions = [transactions.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(transactions.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n return transactions.createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n async function serializeTransaction(transaction: Transaction) {\n const { SCHEMA } = await import(\"near-api-js/lib/transaction\");\n const { utils } = await import(\"near-api-js\");\n\n const serializedTx = utils.serialize.serialize(SCHEMA.Transaction, transaction);\n return Buffer.from(serializedTx).toString(\"base64\");\n }\n\n async function createContractFunctionCall(params: ContractFunctionCallParams) {\n const { sender: accountId } = params;\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, accountId);\n\n const { transactions, utils } = await import(\"near-api-js\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n const actions = [\n transactions.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n ),\n ];\n\n const transaction = transactions.createTransaction(\n accountId,\n publicKey,\n params.contractId,\n nonce + 1,\n actions,\n blockHash,\n );\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { transactions } = await import(\"near-api-js\");\n\n const action = transactions.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n );\n\n return action;\n }\n\n async function signTransaction(transaction: Transaction): Promise<SignedTransaction> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const [_hash, signedTx] = await signer.signTransaction(transaction);\n return signedTx;\n }\n\n async function broadcastTransaction(signedTransaction: SignedTransaction) {\n const result = await provider.sendTransaction(signedTransaction);\n return result.transaction.hash;\n }\n\n async function estimateTransactionFee(params: NearTransferParams | NearGasEstimateParams) {\n if (\"assetValue\" in params) {\n const baseTransferCost = \"115123062500\";\n const receiptCreationCost = \"108059500000\";\n\n const totalGasUnits = BigInt(baseTransferCost) + BigInt(receiptCreationCost);\n\n const gasPrice = await getCurrentGasPrice();\n\n const totalCostYocto = totalGasUnits * BigInt(gasPrice.toString());\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: totalCostYocto.toString() });\n }\n\n const account = signer ? await getAccount() : undefined;\n return estimateGas(params, account);\n }\n\n async function getCurrentGasPrice() {\n try {\n const result = await provider.query({\n account_id: \"system\",\n args_base64: \"\",\n finality: \"final\",\n method_name: \"gas_price\",\n request_type: \"call_function\",\n });\n\n return result;\n } catch {\n return \"100000000\"; // 0.0001 NEAR per Tgas\n }\n }\n\n async function createSubAccount(subAccountId: string, publicKey: string, initialBalance: string): Promise<string> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { utils } = await import(\"near-api-js\");\n\n const balanceInYocto = utils.format.parseNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(\n subAccountId,\n utils.PublicKey.fromString(publicKey),\n BigInt(balanceInYocto),\n );\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { transactions } = await import(\"near-api-js\");\n\n const { contractId, methodName, args, deposit } = params;\n const account = await getAccount();\n\n const estimatedGas = await estimateGas({ args: args || {}, contractId, methodName });\n\n const functionAction = transactions.functionCall(\n methodName,\n args || {},\n estimatedGas.getBaseValue(\"bigint\"),\n BigInt(deposit || \"1\"),\n );\n\n const result = await account.signAndSendTransaction({ actions: [functionAction], receiverId: contractId });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new SwapKitError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n // Create typed contract interface\n async function createContract<T extends Contract = Contract>(contractInterface: NearContractInterface): Promise<T> {\n const account = await getAccount();\n\n return createNearContract<T>({\n account,\n changeMethods: contractInterface.changeMethods,\n contractId: contractInterface.contractId,\n viewMethods: contractInterface.viewMethods,\n });\n }\n\n async function executeBatchTransaction(batch: BatchTransaction): Promise<string> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new SwapKitError(\"toolbox_near_empty_batch\");\n }\n\n const account = await getAccount();\n\n // Use account.signAndSendTransaction for batch operations\n const result = await account.signAndSendTransaction({ actions: batch.actions, receiverId: batch.receiverId });\n\n return result.transaction.hash;\n }\n\n async function nep141(contractId: string) {\n const account = await getAccount();\n return createNEP141Token({ account, contractId });\n }\n\n async function estimateGas(params: NearGasEstimateParams, account?: Account) {\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n const gasInTGas = await match(params)\n .when(isSimpleTransfer, () => GAS_COSTS.SIMPLE_TRANSFER)\n .when(isContractCall, (p) => getContractMethodGas(p.methodName))\n .when(isBatchTransaction, (p) => estimateBatchGas(p.actions))\n .when(isAccountCreation, () => GAS_COSTS.ACCOUNT_CREATION)\n .when(isContractDeployment, () => GAS_COSTS.CONTRACT_DEPLOYMENT)\n .when(isCustomEstimator, (p) => {\n if (!account) {\n throw new SwapKitError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new SwapKitError(\"toolbox_near_invalid_gas_params\");\n });\n\n const gasInUnits = BigInt(gasInTGas) * BigInt(10 ** 12);\n const costInYoctoNear = gasInUnits;\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: costInYoctoNear });\n }\n\n // Get current gas price from network\n async function getGasPrice() {\n try {\n const result = await provider.gasPrice(null);\n return result.gas_price || \"100000000\";\n } catch (_error) {\n // Fallback to default\n return \"100000000\";\n }\n }\n\n return {\n broadcastTransaction,\n callFunction,\n createAction,\n createContract,\n createContractFunctionCall,\n createSubAccount,\n createTransaction,\n estimateGas,\n estimateTransactionFee,\n executeBatchTransaction,\n getAddress,\n getBalance: getBalance(Chain.Near),\n getGasPrice,\n getPublicKey: async () => (signer ? (await signer.getPublicKey()).toString() : \"\"),\n getSignerFromPhrase: (params: GetSignerFromPhraseParams) => getNearSignerFromPhrase(params),\n getSignerFromPrivateKey: getNearSignerFromPrivateKey,\n nep141,\n provider,\n serializeTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
10
+ "import type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\nimport type { KeyPairSigner, Signer, transactions } from \"near-api-js\";\n\ninterface NearKeyPairSigner\n extends KeyPairSigner,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\ninterface NearGeneralSigner\n extends Signer,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\nexport type NearSigner = NearKeyPairSigner | NearGeneralSigner;\n\nexport type NearToolboxParams =\n | { signer?: NearSigner; accountId?: string }\n | { phrase?: string; index?: number; derivationPath?: DerivationPathArray };\n\nexport interface NearTransferParams extends GenericTransferParams {}\n\nexport interface NearConfig {\n networkId: \"mainnet\" | \"testnet\" | \"betanet\";\n nodeUrl: string;\n walletUrl?: string;\n helperUrl?: string;\n keyStore?: any;\n}\n\nexport interface NearFunctionCallParams {\n contractId: string;\n methodName: string;\n args: Uint8Array | Record<string, any>;\n deposit?: bigint | string | number;\n gas?: bigint | string | number;\n}\n\nexport interface NearCreateTransactionParams extends Omit<GenericCreateTransactionParams, \"feeRate\"> {\n attachedDeposit?: string;\n functionCall?: { methodName: string; args: object; attachedDeposit: string; gas: string; contractId: string };\n}\n\nexport * from \"./toolbox\";\nexport * from \"./types/contract\";\nexport * from \"./types/nep141\";\nexport * from \"./types/toolbox\";\n",
11
11
  "import type { getNearToolbox } from \"./toolbox\";\n\nexport * from \"./helpers/core\";\nexport * from \"./helpers/gasEstimation\";\nexport * from \"./helpers/nep141\";\nexport * from \"./toolbox\";\nexport * from \"./types\";\n\nexport type NearWallet = Awaited<ReturnType<typeof getNearToolbox>>;\n\nexport type {\n NearCallParams,\n NearContractInterface,\n NearGasEstimateParams,\n} from \"./types/contract\";\nexport type {\n FungibleTokenMetadata,\n NEP141Contract,\n StorageBalance,\n StorageBalanceBounds,\n TokenTransferParams,\n} from \"./types/nep141\";\n"
12
12
  ],
13
- "mappings": "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",
14
- "debugId": "A423ECE9DBBB731E64756E2164756E21",
13
+ "mappings": "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",
14
+ "debugId": "D021C22160BBD9B364756E2164756E21",
15
15
  "names": []
16
16
  }
@@ -1,4 +1,4 @@
1
- var Ln=Object.create;var{getPrototypeOf:Sn,defineProperty:B,getOwnPropertyNames:Gn}=Object;var bn=Object.prototype.hasOwnProperty;var s=(n,r,i)=>{i=n!=null?Ln(Sn(n)):{};let o=r||!n||!n.__esModule?B(i,"default",{value:n,enumerable:!0}):i;for(let e of Gn(n))if(!bn.call(o,e))B(o,e,{get:()=>n[e],enumerable:!0});return o};var an=(n,r)=>{for(var i in r)B(n,i,{get:r[i],enumerable:!0,configurable:!0,set:(o)=>r[i]=()=>o})};var L=(n,r)=>()=>(n&&(r=n(n=0)),r);var E=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(r,i)=>(typeof require<"u"?require:r)[i]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{derivationPathToString as Un,SwapKitError as Yn}from"@swapkit/helpers";import{KeyPairSigner as qn}from"near-api-js";async function b(){let{validateAccountId:n}=await import("near-sdk-js");return(r)=>{try{return n(r)}catch{let i=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&i.test(r)}}}async function a(n){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:i}=await import("near-api-js"),o=n.index||0,e=n.derivationPath?Un(n.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:g}=r(n.phrase,e),P=i.fromString(g);return d(P)}async function M(n){let{KeyPair:r}=await import("near-api-js/lib/utils"),i=r.fromString(n);return d(i)}function d(n){return new K(n)}async function U(n,r){let o=(await n.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((O)=>O.access_key.permission==="FullAccess");if(!o)throw new Yn("toolbox_near_invalid_address");let{utils:e}=await import("near-api-js"),g=e.PublicKey.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:g}}var K;var Q=L(()=>{K=class K extends qn{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),r=Buffer.from(n.data).toString("hex");return Promise.resolve(r)}}});function Z(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function $(n){return"contractId"in n&&"methodName"in n}function p(n){return"actions"in n}function z(n){return"newAccountId"in n}function X(n){return"contractCode"in n}function H(n){return"customEstimator"in n}function k(n){let r=0;for(let i of n)switch(i.enum){case"transfer":r+=Number(_.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(_.CONTRACT_CALL);break;case"createAccount":r+=Number(_.ACCOUNT_CREATION);break;case"deployContract":r+=Number(_.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(_.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(_.ACCESS_KEY_DELETION);break;case"stake":r+=Number(_.STAKE);break;default:r+=Number(_.CONTRACT_CALL)}return r.toString()}function V(n){if(n==="ft_transfer"||n==="ft_transfer_call")return _.TOKEN_TRANSFER;if(n==="storage_deposit")return _.STORAGE_DEPOSIT;return _.CONTRACT_CALL}function Fn(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function Jn(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var _;var w=L(()=>{_={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function Y({account:n,contractId:r,viewMethods:i,changeMethods:o}){let{Contract:e}=await import("near-api-js");return new e(n,r,{changeMethods:o,useLocalViewExecution:!0,viewMethods:i})}async function j({contractId:n,account:r}){let i=(await import("bn.js")).default,o=await Y({account:r,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:n,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),e=async(g)=>{if(!await o.storage_balance_of({account_id:g})){let y=(await o.storage_balance_bounds())?.min||"1250000000000000000000";await o.storage_deposit({account_id:g},new i("100000000000000"),new i(y))}};return{balanceOf:(g)=>o.ft_balance_of({account_id:g}),contract:o,ensureStorage:e,metadata:()=>o.ft_metadata(),storageBalanceOf:(g)=>o.storage_balance_of({account_id:g}),storageDeposit:(g,P)=>o.storage_deposit({account_id:g},new i("100000000000000"),new i(P||"1250000000000000000000")),totalSupply:()=>o.ft_total_supply(),transfer:async(g,P,O)=>{return await e(g),o.ft_transfer({amount:P,memo:O,receiver_id:g},new i("100000000000000"),new i("1"))},transferCall:async(g,P,O,y)=>{return await e(g),o.ft_transfer_call({amount:P,memo:y,msg:O,receiver_id:g},new i("100000000000000"),new i("1"))}}}import{AssetValue as Wn,getChainConfig as Bn}from"@swapkit/helpers";import{SwapKitApi as Mn}from"@swapkit/helpers/api";function vn(){function n(){let r=Date.now(),i=h||r;return h=i,r>h?r:i+1}return Qn+n().toString(36)}function c(n){return async function(i,o=!0){let e=await Mn.getChainBalance({address:i,chain:n,scamFilter:o}),{baseDecimal:g}=Bn(n);return e.map(({identifier:P,value:O,decimal:y})=>{return new Wn({decimal:y||g,identifier:P,value:O})})}}var Qn,h=0;var nn=L(()=>{Qn=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{AssetValue as tn,Chain as S,getChainConfig as rn,getRPCUrl as Zn,SwapKitError as A}from"@swapkit/helpers";async function $n(n){let{P:r,match:i}=await import("ts-pattern"),{providers:o}=await import("near-api-js"),e=await i(n).with({phrase:r.string},async(t)=>{return await a(t)}).with({signer:r.any},({signer:t})=>t).otherwise(()=>{return}),g=await Zn(S.Near),P=new o.JsonRpcProvider({url:g});async function O(t){let{Account:T}=await import("near-api-js"),m=t||await y();return new T(m,P,e)}async function y(){if(!e)throw new A("toolbox_near_no_signer");return await e.getAddress()}async function on(t){if(!e)throw new A("toolbox_near_no_signer");let{recipient:T,assetValue:m}=t;if(!(await b())(T))throw new A("toolbox_near_invalid_address");let C=await O();if(m.isGasAsset===!1){let f=m.address;if(!f)throw new A("toolbox_near_missing_contract_address");let N=m.getBaseValue("string");return v({args:{amount:N,memo:t.memo,receiver_id:T},contractId:f,methodName:"ft_transfer"})}try{let f=m.getBaseValue("string");return(await C.transfer({amount:f,receiverId:T})).transaction_outcome.id}catch(f){throw new A("toolbox_near_transfer_failed",{error:f})}}async function en(t){let{recipient:T,assetValue:m,memo:x,attachedDeposit:C,sender:f,functionCall:N}=t,R=await b();if(!R(T))throw new A("toolbox_near_invalid_address",{recipient:T});if(!R(f))throw new A("toolbox_near_invalid_address",{signerId:f});if(N)return q({...N,sender:f});if(!m.isGasAsset){let I=m.address;if(!I)throw new A("toolbox_near_missing_contract_address");return q({args:{amount:m.getBaseValue("string"),memo:x||null,receiver_id:T},attachedDeposit:C||"1",contractId:I,gas:"250000000000000",methodName:"ft_transfer",sender:f})}let{publicKey:G,nonce:J}=await U(P,f),An=m.getBaseValue("bigint"),{transactions:W,utils:yn}=await import("near-api-js"),u=[W.transfer(An)];if(x&&C)u.push(W.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(C)));let Rn=await P.block({finality:"final"}),Dn=yn.serialize.base_decode(Rn.header.hash);return W.createTransaction(f,G,T,J+1,u,Dn)}async function mn(t){let{SCHEMA:T}=await import("near-api-js/lib/transaction"),{utils:m}=await import("near-api-js"),x=m.serialize.serialize(T.Transaction,t);return Buffer.from(x).toString("base64")}async function q(t){let{sender:T}=t,{publicKey:m,nonce:x}=await U(P,T),{transactions:C,utils:f}=await import("near-api-js"),N=await P.block({finality:"final"}),R=f.serialize.base_decode(N.header.hash),G=[C.functionCall(t.methodName,Buffer.from(JSON.stringify(t.args)),BigInt(t.gas),BigInt(t.attachedDeposit))];return C.createTransaction(T,m,t.contractId,x+1,G,R)}async function fn(t){let{transactions:T}=await import("near-api-js");return T.functionCall(t.methodName,Buffer.from(JSON.stringify(t.args)),BigInt(t.gas),BigInt(t.attachedDeposit))}async function gn(t){if(!e)throw new A("toolbox_near_no_signer");let[T,m]=await e.signTransaction(t);return m}async function Pn(t){return(await P.sendTransaction(t)).transaction.hash}async function Nn(t){if("assetValue"in t){let C=BigInt("115123062500")+BigInt("108059500000"),f=await xn(),N=C*BigInt(f.toString()),{baseDecimal:R}=rn(S.Near);return tn.from({chain:S.Near,fromBaseDecimal:R,value:N.toString()})}let T=e?await O():void 0;return F(t,T)}async function xn(){try{return await P.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Cn(t,T,m){if(!e)throw new A("toolbox_near_no_signer");let x=await O(),{utils:C}=await import("near-api-js"),f=C.format.parseNearAmount(m)||"0";return(await x.createAccount(t,C.PublicKey.fromString(T),BigInt(f))).transaction.hash}async function v(t){try{if(!e)throw new A("toolbox_near_no_signer");let{transactions:T}=await import("near-api-js"),{contractId:m,methodName:x,args:C,deposit:f}=t,N=await O(),R=await F({args:C||{},contractId:m,methodName:x}),G=T.functionCall(x,C||{},R.getBaseValue("bigint"),BigInt(f||"1"));return(await N.signAndSendTransaction({actions:[G],receiverId:m})).transaction_outcome.id}catch(T){throw new A("toolbox_near_transfer_failed",{error:T})}}async function sn(t){let T=await O();return Y({account:T,changeMethods:t.changeMethods,contractId:t.contractId,viewMethods:t.viewMethods})}async function En(t){if(!e)throw new A("toolbox_near_no_signer");if(t.actions.length===0)throw new A("toolbox_near_empty_batch");return(await(await O()).signAndSendTransaction({actions:t.actions,receiverId:t.receiverId})).transaction.hash}async function On(t){let T=await O();return j({account:T,contractId:t})}async function F(t,T){let{baseDecimal:m}=rn(S.Near),x=await i(t).when(Z,()=>_.SIMPLE_TRANSFER).when($,(N)=>V(N.methodName)).when(p,(N)=>k(N.actions)).when(z,()=>_.ACCOUNT_CREATION).when(X,()=>_.CONTRACT_DEPLOYMENT).when(H,(N)=>{if(!T)throw new A("toolbox_near_no_account");return N.customEstimator(T)}).otherwise(()=>{throw new A("toolbox_near_invalid_gas_params")}),f=BigInt(x)*BigInt(1000000000000);return tn.from({chain:S.Near,fromBaseDecimal:m,value:f})}async function _n(){try{return(await P.gasPrice(null)).gas_price||"100000000"}catch(t){return"100000000"}}return{broadcastTransaction:Pn,callFunction:v,createAction:fn,createContract:sn,createContractFunctionCall:q,createSubAccount:Cn,createTransaction:en,estimateGas:F,estimateTransactionFee:Nn,executeBatchTransaction:En,getAddress:y,getBalance:c(S.Near),getGasPrice:_n,getPublicKey:async()=>e?(await e.getPublicKey()).toString():"",getSignerFromPhrase:(t)=>a(t),getSignerFromPrivateKey:M,nep141:On,provider:P,serializeTransaction:mn,signTransaction:gn,transfer:on,validateAddress:await b()}}var l=L(()=>{nn();Q();w()});var Tn=L(()=>{l()});var pn={};an(pn,{tgasToGas:()=>Fn,isSimpleTransfer:()=>Z,isCustomEstimator:()=>H,isContractDeployment:()=>X,isContractCall:()=>$,isBatchTransaction:()=>p,isAccountCreation:()=>z,getValidateNearAddress:()=>b,getNearToolbox:()=>$n,getNearSignerFromPrivateKey:()=>M,getNearSignerFromPhrase:()=>a,getFullAccessPublicKey:()=>U,getContractMethodGas:()=>V,gasToTGas:()=>Jn,estimateBatchGas:()=>k,createNearContract:()=>Y,createNEP141Token:()=>j,GAS_COSTS:()=>_});var zn=L(()=>{Q();w();l();Tn()});zn();export{Fn as tgasToGas,Z as isSimpleTransfer,H as isCustomEstimator,X as isContractDeployment,$ as isContractCall,p as isBatchTransaction,z as isAccountCreation,b as getValidateNearAddress,$n as getNearToolbox,M as getNearSignerFromPrivateKey,a as getNearSignerFromPhrase,U as getFullAccessPublicKey,V as getContractMethodGas,Jn as gasToTGas,k as estimateBatchGas,Y as createNearContract,j as createNEP141Token,_ as GAS_COSTS};
1
+ var Rt=Object.create;var{getPrototypeOf:St,defineProperty:W,getOwnPropertyNames:Dt}=Object;var Lt=Object.prototype.hasOwnProperty;var P=(t,n,i)=>{i=t!=null?Rt(St(t)):{};let o=n||!t||!t.__esModule?W(i,"default",{value:t,enumerable:!0}):i;for(let T of Dt(t))if(!Lt.call(o,T))W(o,T,{get:()=>t[T],enumerable:!0});return o};var Gt=(t,n)=>{for(var i in n)W(t,i,{get:n[i],enumerable:!0,configurable:!0,set:(o)=>n[i]=()=>o})};var S=(t,n)=>()=>(t&&(n=t(t=0)),n);var N=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(n,i)=>(typeof require<"u"?require:n)[i]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{derivationPathToString as pt,SwapKitError as bt}from"@swapkit/helpers";import{KeyPairSigner as Ut}from"near-api-js";async function G(){let{validateAccountId:t}=await import("near-sdk-js");return(n)=>{try{return t(n)}catch{let i=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return n.length>=2&&n.length<=64&&i.test(n)}}}async function p(t){let{parseSeedPhrase:n}=await import("near-seed-phrase"),{KeyPair:i}=await import("near-api-js"),o=t.index||0,T=t.derivationPath?pt(t.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:m}=n(t.phrase,T),g=i.fromString(m);return tt(g)}async function B(t){let{KeyPair:n}=await import("near-api-js/lib/utils"),i=n.fromString(t);return tt(i)}function tt(t){return new c(t)}async function b(t,n){let o=(await t.query({account_id:n,finality:"final",request_type:"view_access_key_list"})).keys.find((E)=>E.access_key.permission==="FullAccess");if(!o)throw new bt("toolbox_near_invalid_address");let{utils:T}=await import("near-api-js"),m=T.PublicKey.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:m}}var c;var M=S(()=>{c=class c extends Ut{#t;constructor(t){super(t);this.#t=t}getAddress(){let t=this.#t.getPublicKey(),n=Buffer.from(t.data).toString("hex");return Promise.resolve(n)}}});function Q(t){return"recipient"in t&&"amount"in t&&!("contractId"in t)}function Z(t){return"contractId"in t&&"methodName"in t}function $(t){return"actions"in t}function z(t){return"newAccountId"in t}function X(t){return"contractCode"in t}function H(t){return"customEstimator"in t}function V(t){let n=0;for(let i of t)switch(i.enum){case"transfer":n+=Number(C.SIMPLE_TRANSFER);break;case"functionCall":n+=Number(C.CONTRACT_CALL);break;case"createAccount":n+=Number(C.ACCOUNT_CREATION);break;case"deployContract":n+=Number(C.CONTRACT_DEPLOYMENT);break;case"addKey":n+=Number(C.ACCESS_KEY_ADDITION);break;case"deleteKey":n+=Number(C.ACCESS_KEY_DELETION);break;case"stake":n+=Number(C.STAKE);break;default:n+=Number(C.CONTRACT_CALL)}return n.toString()}function k(t){if(t==="ft_transfer"||t==="ft_transfer_call")return C.TOKEN_TRANSFER;if(t==="storage_deposit")return C.STORAGE_DEPOSIT;return C.CONTRACT_CALL}function Yt(t){return(BigInt(t)*BigInt(1000000000000)).toString()}function Ft(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var C;var w=S(()=>{C={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function U({account:t,contractId:n,viewMethods:i,changeMethods:o}){let{Contract:T}=await import("near-api-js");return new T(t,n,{changeMethods:o,useLocalViewExecution:!0,viewMethods:i})}async function j({contractId:t,account:n}){let i=(await import("bn.js")).default,o=await U({account:n,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:t,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),T=async(m)=>{if(!await o.storage_balance_of({account_id:m})){let a=(await o.storage_balance_bounds())?.min||"1250000000000000000000";await o.storage_deposit({account_id:m},new i("100000000000000"),new i(a))}};return{balanceOf:(m)=>o.ft_balance_of({account_id:m}),contract:o,ensureStorage:T,metadata:()=>o.ft_metadata(),storageBalanceOf:(m)=>o.storage_balance_of({account_id:m}),storageDeposit:(m,g)=>o.storage_deposit({account_id:m},new i("100000000000000"),new i(g||"1250000000000000000000")),totalSupply:()=>o.ft_total_supply(),transfer:async(m,g,E)=>{return await T(m),o.ft_transfer({amount:g,memo:E,receiver_id:m},new i("100000000000000"),new i("1"))},transferCall:async(m,g,E,a)=>{return await T(m),o.ft_transfer_call({amount:g,memo:a,msg:E,receiver_id:m},new i("100000000000000"),new i("1"))}}}import{AssetValue as qt,getChainConfig as Jt}from"@swapkit/helpers";import{SwapKitApi as Wt}from"@swapkit/helpers/api";function ut(){function t(){let n=Date.now(),i=l||n;return l=i,n>l?n:i+1}return Bt+t().toString(36)}function rt(t){return async function(i,o=!0){let T=await Wt.getChainBalance({address:i,chain:t,scamFilter:o}),{baseDecimal:m}=Jt(t);return T.map(({identifier:g,value:E,decimal:a})=>{return new qt({decimal:a||m,identifier:g,value:E})})}}var Bt,l=0;var nt=S(()=>{Bt=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{AssetValue as it,Chain as D,getChainConfig as et,getRPCUrl as Mt,SwapKitError as A}from"@swapkit/helpers";async function Qt(t){let{P:n,match:i}=await import("ts-pattern"),{providers:o}=await import("near-api-js"),T=await i(t).with({phrase:n.string},async(r)=>{return await p(r)}).with({signer:n.any},({signer:r})=>r).otherwise(()=>{return}),m=await Mt(D.Near),g=new o.JsonRpcProvider({url:m});async function E(r){let{Account:e}=await import("near-api-js"),f=r||await a();return new e(f,g,T)}async function a(){if(!T)throw new A("toolbox_near_no_signer");return await T.getAddress()}async function Tt(r){if(!T)throw new A("toolbox_near_no_signer");let e=await h({...r,sender:await a()});return I(await v(e))}async function h(r){let{recipient:e,assetValue:f,memo:s,attachedDeposit:O,sender:x,functionCall:_}=r,y=await G();if(!y(e))throw new A("toolbox_near_invalid_address",{recipient:e});if(!y(x))throw new A("toolbox_near_invalid_address",{signerId:x});if(_)return Y({..._,sender:x});if(!f.isGasAsset){let d=f.address;if(!d)throw new A("toolbox_near_missing_contract_address");return Y({args:{amount:f.getBaseValue("string"),memo:s||null,receiver_id:e},attachedDeposit:O||"1",contractId:d,gas:"250000000000000",methodName:"ft_transfer",sender:x})}let{publicKey:L,nonce:q}=await b(g,x),_t=f.getBaseValue("bigint"),{transactions:J,utils:At}=await import("near-api-js"),K=[J.transfer(_t)];if(s&&O)K.push(J.functionCall("memo",{memo:s},BigInt("250000000000000"),BigInt(O)));let at=await g.block({finality:"final"}),yt=At.serialize.base_decode(at.header.hash);return J.createTransaction(x,L,e,q+1,K,yt)}async function mt(r){let{SCHEMA:e}=await import("near-api-js/lib/transaction"),{utils:f}=await import("near-api-js"),s=f.serialize.serialize(e.Transaction,r);return Buffer.from(s).toString("base64")}async function Y(r){let{sender:e}=r,{publicKey:f,nonce:s}=await b(g,e),{transactions:O,utils:x}=await import("near-api-js"),_=await g.block({finality:"final"}),y=x.serialize.base_decode(_.header.hash),L=[O.functionCall(r.methodName,Buffer.from(JSON.stringify(r.args)),BigInt(r.gas),BigInt(r.attachedDeposit))];return O.createTransaction(e,f,r.contractId,s+1,L,y)}async function ft(r){let{transactions:e}=await import("near-api-js");return e.functionCall(r.methodName,Buffer.from(JSON.stringify(r.args)),BigInt(r.gas),BigInt(r.attachedDeposit))}async function v(r){if(!T)throw new A("toolbox_near_no_signer");let[e,f]=await T.signTransaction(r);return f}async function I(r){return(await g.sendTransaction(r)).transaction.hash}async function gt(r){if("assetValue"in r){let O=BigInt("115123062500")+BigInt("108059500000"),x=await Pt(),_=O*BigInt(x.toString()),{baseDecimal:y}=et(D.Near);return it.from({chain:D.Near,fromBaseDecimal:y,value:_.toString()})}let e=T?await E():void 0;return F(r,e)}async function Pt(){try{return await g.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Nt(r,e,f){if(!T)throw new A("toolbox_near_no_signer");let s=await E(),{utils:O}=await import("near-api-js"),x=O.format.parseNearAmount(f)||"0";return(await s.createAccount(r,O.PublicKey.fromString(e),BigInt(x))).transaction.hash}async function st(r){try{if(!T)throw new A("toolbox_near_no_signer");let{transactions:e}=await import("near-api-js"),{contractId:f,methodName:s,args:O,deposit:x}=r,_=await E(),y=await F({args:O||{},contractId:f,methodName:s}),L=e.functionCall(s,O||{},y.getBaseValue("bigint"),BigInt(x||"1"));return(await _.signAndSendTransaction({actions:[L],receiverId:f})).transaction_outcome.id}catch(e){throw new A("toolbox_near_transfer_failed",{error:e})}}async function xt(r){let e=await E();return U({account:e,changeMethods:r.changeMethods,contractId:r.contractId,viewMethods:r.viewMethods})}async function Ct(r){if(!T)throw new A("toolbox_near_no_signer");if(r.actions.length===0)throw new A("toolbox_near_empty_batch");return(await(await E()).signAndSendTransaction({actions:r.actions,receiverId:r.receiverId})).transaction.hash}async function Et(r){let e=await E();return j({account:e,contractId:r})}async function F(r,e){let{baseDecimal:f}=et(D.Near),s=await i(r).when(Q,()=>C.SIMPLE_TRANSFER).when(Z,(_)=>k(_.methodName)).when($,(_)=>V(_.actions)).when(z,()=>C.ACCOUNT_CREATION).when(X,()=>C.CONTRACT_DEPLOYMENT).when(H,(_)=>{if(!e)throw new A("toolbox_near_no_account");return _.customEstimator(e)}).otherwise(()=>{throw new A("toolbox_near_invalid_gas_params")}),x=BigInt(s)*BigInt(1000000000000);return it.from({chain:D.Near,fromBaseDecimal:f,value:x})}async function Ot(){try{return(await g.gasPrice(null)).gas_price||"100000000"}catch(r){return"100000000"}}return{broadcastTransaction:I,callFunction:st,createAction:ft,createContract:xt,createContractFunctionCall:Y,createSubAccount:Nt,createTransaction:h,estimateGas:F,estimateTransactionFee:gt,executeBatchTransaction:Ct,getAddress:a,getBalance:rt(D.Near),getGasPrice:Ot,getPublicKey:async()=>T?(await T.getPublicKey()).toString():"",getSignerFromPhrase:(r)=>p(r),getSignerFromPrivateKey:B,nep141:Et,provider:g,serializeTransaction:mt,signTransaction:v,transfer:Tt,validateAddress:await G()}}var u=S(()=>{nt();M();w()});var ot=S(()=>{u()});var Zt={};Gt(Zt,{tgasToGas:()=>Yt,isSimpleTransfer:()=>Q,isCustomEstimator:()=>H,isContractDeployment:()=>X,isContractCall:()=>Z,isBatchTransaction:()=>$,isAccountCreation:()=>z,getValidateNearAddress:()=>G,getNearToolbox:()=>Qt,getNearSignerFromPrivateKey:()=>B,getNearSignerFromPhrase:()=>p,getFullAccessPublicKey:()=>b,getContractMethodGas:()=>k,gasToTGas:()=>Ft,estimateBatchGas:()=>V,createNearContract:()=>U,createNEP141Token:()=>j,GAS_COSTS:()=>C});var $t=S(()=>{M();w();u();ot()});$t();export{Yt as tgasToGas,Q as isSimpleTransfer,H as isCustomEstimator,X as isContractDeployment,Z as isContractCall,$ as isBatchTransaction,z as isAccountCreation,G as getValidateNearAddress,Qt as getNearToolbox,B as getNearSignerFromPrivateKey,p as getNearSignerFromPhrase,b as getFullAccessPublicKey,k as getContractMethodGas,Ft as gasToTGas,V as estimateBatchGas,U as createNearContract,j as createNEP141Token,C as GAS_COSTS};
2
2
 
3
- //# debugId=E3FE8B4106D3310B64756E2164756E21
3
+ //# debugId=6ED7D22D336C642C64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -6,11 +6,11 @@
6
6
  "import type { Account } from \"near-api-js\";\nimport type { NearGasEstimateParams } from \"../types/contract\";\n\nexport const GAS_COSTS = {\n ACCESS_KEY_ADDITION: \"5\",\n ACCESS_KEY_DELETION: \"5\",\n ACCOUNT_CREATION: \"30\",\n CONTRACT_CALL: \"150\",\n CONTRACT_DEPLOYMENT: \"200\",\n SIMPLE_TRANSFER: \"1\",\n STAKE: \"10\",\n STORAGE_DEPOSIT: \"150\",\n TOKEN_TRANSFER: \"150\",\n} as const;\n\nexport function isSimpleTransfer(params: NearGasEstimateParams): params is { recipient: string; amount: string } {\n return \"recipient\" in params && \"amount\" in params && !(\"contractId\" in params);\n}\n\nexport function isContractCall(\n params: NearGasEstimateParams,\n): params is { contractId: string; methodName: string; args?: Record<string, any>; attachedDeposit?: string } {\n return \"contractId\" in params && \"methodName\" in params;\n}\n\nexport function isBatchTransaction(params: NearGasEstimateParams): params is { actions: any[] } {\n return \"actions\" in params;\n}\n\nexport function isAccountCreation(\n params: NearGasEstimateParams,\n): params is { newAccountId: string; publicKey?: string } {\n return \"newAccountId\" in params;\n}\n\nexport function isContractDeployment(params: NearGasEstimateParams): params is { contractCode: Uint8Array } {\n return \"contractCode\" in params;\n}\n\nexport function isCustomEstimator(\n params: NearGasEstimateParams,\n): params is { customEstimator: (account: Account) => Promise<string> } {\n return \"customEstimator\" in params;\n}\n\nexport function estimateBatchGas(actions: any[]) {\n let totalGas = 0;\n\n for (const action of actions) {\n switch (action.enum) {\n case \"transfer\":\n totalGas += Number(GAS_COSTS.SIMPLE_TRANSFER);\n break;\n case \"functionCall\":\n totalGas += Number(GAS_COSTS.CONTRACT_CALL);\n break;\n case \"createAccount\":\n totalGas += Number(GAS_COSTS.ACCOUNT_CREATION);\n break;\n case \"deployContract\":\n totalGas += Number(GAS_COSTS.CONTRACT_DEPLOYMENT);\n break;\n case \"addKey\":\n totalGas += Number(GAS_COSTS.ACCESS_KEY_ADDITION);\n break;\n case \"deleteKey\":\n totalGas += Number(GAS_COSTS.ACCESS_KEY_DELETION);\n break;\n case \"stake\":\n totalGas += Number(GAS_COSTS.STAKE);\n break;\n default:\n totalGas += Number(GAS_COSTS.CONTRACT_CALL);\n }\n }\n\n return totalGas.toString();\n}\n\nexport function getContractMethodGas(methodName: string) {\n if (methodName === \"ft_transfer\" || methodName === \"ft_transfer_call\") {\n return GAS_COSTS.TOKEN_TRANSFER;\n }\n if (methodName === \"storage_deposit\") {\n return GAS_COSTS.STORAGE_DEPOSIT;\n }\n return GAS_COSTS.CONTRACT_CALL;\n}\n\nexport function tgasToGas(tgas: string): string {\n return (BigInt(tgas) * BigInt(10 ** 12)).toString();\n}\n\nexport function gasToTGas(gas: string): string {\n return (BigInt(gas) / BigInt(10 ** 12)).toString();\n}\n",
7
7
  "import type { Account, Contract } from \"near-api-js\";\n\nconst DEFAULT_STORAGE_DEPOSIT = \"1250000000000000000000\"; // 0.00125 NEAR\n\n// NEP-141 metadata interface\nexport interface NEP141Metadata {\n spec: string;\n name: string;\n symbol: string;\n icon?: string;\n reference?: string;\n reference_hash?: string;\n decimals: number;\n}\n\n// Storage balance response\nexport interface StorageBalance {\n total: string;\n available: string;\n}\n\n// Storage balance bounds\nexport interface StorageBalanceBounds {\n min: string;\n max?: string;\n}\n\n// BN.js is dynamically imported, but we need the type\n// Using any here is acceptable as BN.js doesn't export proper TypeScript types\ntype BN = any; // BN.js instance\n\n// Define NEP-141 contract interface\nexport interface NEP141Contract extends Contract {\n // View methods\n ft_balance_of(args: { account_id: string }): Promise<string>;\n ft_total_supply(): Promise<string>;\n ft_metadata(): Promise<NEP141Metadata>;\n storage_balance_of(args: { account_id: string }): Promise<StorageBalance | null>;\n storage_balance_bounds(): Promise<StorageBalanceBounds>;\n\n // Change methods\n ft_transfer(args: { receiver_id: string; amount: string; memo?: string }, gas: BN, deposit: BN): Promise<void>;\n ft_transfer_call(\n args: { receiver_id: string; amount: string; msg: string; memo?: string },\n gas: BN,\n deposit: BN,\n ): Promise<void>;\n storage_deposit(\n args: { account_id?: string; registration_only?: boolean },\n gas: BN,\n deposit: BN,\n ): Promise<StorageBalance>;\n storage_withdraw(args: { amount?: string }, gas: BN, deposit?: BN): Promise<StorageBalance>;\n storage_unregister(force?: boolean, gas?: BN): Promise<boolean>;\n}\n\nexport type NEP141Token = {\n transfer: (receiverId: string, amount: string, memo?: string) => Promise<void>;\n transferCall: (receiverId: string, amount: string, msg: string, memo?: string) => Promise<void>;\n balanceOf: (accountId: string) => Promise<string>;\n totalSupply: () => Promise<string>;\n metadata: () => Promise<NEP141Metadata>;\n storageBalanceOf: (accountId: string) => Promise<StorageBalance | null>;\n storageDeposit: (accountId?: string, amount?: string) => Promise<StorageBalance>;\n ensureStorage: (accountId: string) => Promise<void>;\n contract: NEP141Contract;\n};\n\n// Create a Near contract instance\nexport async function createNearContract<T extends Contract>({\n account,\n contractId,\n viewMethods,\n changeMethods,\n}: {\n account: Account;\n contractId: string;\n viewMethods: string[];\n changeMethods: string[];\n}): Promise<T> {\n const { Contract } = await import(\"near-api-js\");\n\n return new Contract(account, contractId, {\n changeMethods,\n useLocalViewExecution: true, // Enable local view execution for efficiency\n viewMethods,\n }) as T;\n}\n\nexport async function createNEP141Token({\n contractId,\n account,\n}: {\n contractId: string;\n account: Account;\n}): Promise<NEP141Token> {\n const BN = (await import(\"bn.js\")).default;\n\n const contract = await createNearContract<NEP141Contract>({\n account,\n changeMethods: [\"ft_transfer\", \"ft_transfer_call\", \"storage_deposit\", \"storage_withdraw\", \"storage_unregister\"],\n contractId,\n viewMethods: [\"ft_balance_of\", \"ft_total_supply\", \"ft_metadata\", \"storage_balance_of\", \"storage_balance_bounds\"],\n });\n\n // Helper to ensure storage before transfers\n const ensureStorageFor = async (accountId: string) => {\n const balance = await contract.storage_balance_of({ account_id: accountId });\n if (!balance) {\n // Get minimum storage requirement\n const bounds = await contract.storage_balance_bounds();\n const deposit = bounds?.min || DEFAULT_STORAGE_DEPOSIT;\n\n await contract.storage_deposit(\n { account_id: accountId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(deposit),\n );\n }\n };\n\n return {\n balanceOf: (accountId: string) => contract.ft_balance_of({ account_id: accountId }),\n\n // Raw contract access for advanced use cases\n contract,\n\n ensureStorage: ensureStorageFor,\n\n metadata: () => contract.ft_metadata(),\n\n storageBalanceOf: (accountId: string) => contract.storage_balance_of({ account_id: accountId }),\n\n storageDeposit: (accountId?: string, amount?: string) =>\n contract.storage_deposit(\n { account_id: accountId },\n new BN(\"100000000000000\"),\n new BN(amount || DEFAULT_STORAGE_DEPOSIT),\n ),\n\n totalSupply: () => contract.ft_total_supply(),\n transfer: async (receiverId: string, amount: string, memo?: string) => {\n // Ensure recipient has storage before transfer\n await ensureStorageFor(receiverId);\n\n return contract.ft_transfer(\n { amount, memo, receiver_id: receiverId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(\"1\"), // 1 yoctoNEAR for security\n );\n },\n\n transferCall: async (receiverId: string, amount: string, msg: string, memo?: string) => {\n // Ensure recipient has storage before transfer\n await ensureStorageFor(receiverId);\n\n return contract.ft_transfer_call(\n { amount, memo, msg, receiver_id: receiverId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(\"1\"), // 1 yoctoNEAR for security\n );\n },\n };\n}\n",
8
8
  "import { AssetValue, type Chain, getChainConfig } from \"@swapkit/helpers\";\nimport { SwapKitApi } from \"@swapkit/helpers/api\";\n\nconst pid = typeof process !== \"undefined\" && process.pid ? process.pid.toString(36) : \"\";\n\nlet last = 0;\nexport function uniqid() {\n function now() {\n const time = Date.now();\n const lastTime = last || time;\n last = lastTime;\n\n return time > last ? time : lastTime + 1;\n }\n\n return pid + now().toString(36);\n}\n\nexport function getBalance<T extends Chain>(chain: T) {\n return async function getBalance(address: string, scamFilter = true) {\n const balances = await SwapKitApi.getChainBalance({ address, chain, scamFilter });\n const { baseDecimal } = getChainConfig(chain);\n return balances.map(({ identifier, value, decimal }) => {\n return new AssetValue({ decimal: decimal || baseDecimal, identifier, value });\n });\n };\n}\n",
9
- "import { AssetValue, Chain, getChainConfig, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\nimport type { Account, Contract } from \"near-api-js\";\nimport type { SignedTransaction, Transaction } from \"near-api-js/lib/transaction\";\nimport { getBalance } from \"../utils\";\nimport {\n getFullAccessPublicKey,\n getNearSignerFromPhrase,\n getNearSignerFromPrivateKey,\n getValidateNearAddress,\n} from \"./helpers/core\";\nimport {\n estimateBatchGas,\n GAS_COSTS,\n getContractMethodGas,\n isAccountCreation,\n isBatchTransaction,\n isContractCall,\n isContractDeployment,\n isCustomEstimator,\n isSimpleTransfer,\n} from \"./helpers/gasEstimation\";\nimport { createNEP141Token, createNearContract } from \"./helpers/nep141\";\nimport type {\n NearCreateTransactionParams,\n NearFunctionCallParams,\n NearToolboxParams,\n NearTransferParams,\n} from \"./types\";\nimport type { NearContractInterface, NearGasEstimateParams } from \"./types/contract\";\nimport type {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n NearToolbox,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams): Promise<NearToolbox> {\n const { P, match } = await import(\"ts-pattern\");\n const { providers } = await import(\"near-api-js\");\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, async (params) => {\n const signer = await getNearSignerFromPhrase(params);\n return signer;\n })\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const url = await getRPCUrl(Chain.Near);\n\n const provider = new providers.JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"near-api-js\");\n\n const _address = address || (await getAddress());\n\n const account = new Account(_address, provider, signer);\n\n return account;\n }\n\n async function getAddress() {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { recipient, assetValue } = params;\n\n const nearValidateAddress = await getValidateNearAddress();\n\n if (!nearValidateAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\");\n }\n\n const account = await getAccount();\n\n if (assetValue.isGasAsset === false) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n const amount = assetValue.getBaseValue(\"string\");\n\n return callFunction({\n args: { amount, memo: params.memo, receiver_id: recipient },\n contractId,\n methodName: \"ft_transfer\",\n });\n }\n\n try {\n const transferAmount = assetValue.getBaseValue(\"string\");\n\n const result = await account.transfer({ amount: transferAmount, receiverId: recipient });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new SwapKitError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n async function createTransaction(params: NearCreateTransactionParams) {\n const { recipient, assetValue, memo, attachedDeposit, sender: signerId, functionCall } = params;\n const validateNearAddress = await getValidateNearAddress();\n\n if (!validateNearAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { recipient: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { signerId: signerId });\n }\n\n if (functionCall) {\n return createContractFunctionCall({ ...functionCall, sender: signerId });\n }\n\n if (!assetValue.isGasAsset) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n return createContractFunctionCall({\n args: { amount: assetValue.getBaseValue(\"string\"), memo: memo || null, receiver_id: recipient },\n attachedDeposit: attachedDeposit || \"1\",\n contractId,\n gas: \"250000000000000\",\n methodName: \"ft_transfer\",\n sender: signerId,\n });\n }\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, signerId);\n const baseAmount = assetValue.getBaseValue(\"bigint\");\n\n const { transactions, utils } = await import(\"near-api-js\");\n\n const txActions = [transactions.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(transactions.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n return transactions.createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n async function serializeTransaction(transaction: Transaction) {\n const { SCHEMA } = await import(\"near-api-js/lib/transaction\");\n const { utils } = await import(\"near-api-js\");\n\n const serializedTx = utils.serialize.serialize(SCHEMA.Transaction, transaction);\n return Buffer.from(serializedTx).toString(\"base64\");\n }\n\n async function createContractFunctionCall(params: ContractFunctionCallParams) {\n const { sender: accountId } = params;\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, accountId);\n\n const { transactions, utils } = await import(\"near-api-js\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n const actions = [\n transactions.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n ),\n ];\n\n const transaction = transactions.createTransaction(\n accountId,\n publicKey,\n params.contractId,\n nonce + 1,\n actions,\n blockHash,\n );\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { transactions } = await import(\"near-api-js\");\n\n const action = transactions.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n );\n\n return action;\n }\n\n async function signTransaction(transaction: Transaction): Promise<SignedTransaction> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const [_hash, signedTx] = await signer.signTransaction(transaction);\n return signedTx;\n }\n\n async function broadcastTransaction(signedTransaction: SignedTransaction) {\n const result = await provider.sendTransaction(signedTransaction);\n return result.transaction.hash;\n }\n\n async function estimateTransactionFee(params: NearTransferParams | NearGasEstimateParams) {\n if (\"assetValue\" in params) {\n const baseTransferCost = \"115123062500\";\n const receiptCreationCost = \"108059500000\";\n\n const totalGasUnits = BigInt(baseTransferCost) + BigInt(receiptCreationCost);\n\n const gasPrice = await getCurrentGasPrice();\n\n const totalCostYocto = totalGasUnits * BigInt(gasPrice.toString());\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: totalCostYocto.toString() });\n }\n\n const account = signer ? await getAccount() : undefined;\n return estimateGas(params, account);\n }\n\n async function getCurrentGasPrice() {\n try {\n const result = await provider.query({\n account_id: \"system\",\n args_base64: \"\",\n finality: \"final\",\n method_name: \"gas_price\",\n request_type: \"call_function\",\n });\n\n return result;\n } catch {\n return \"100000000\"; // 0.0001 NEAR per Tgas\n }\n }\n\n async function createSubAccount(subAccountId: string, publicKey: string, initialBalance: string): Promise<string> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { utils } = await import(\"near-api-js\");\n\n const balanceInYocto = utils.format.parseNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(\n subAccountId,\n utils.PublicKey.fromString(publicKey),\n BigInt(balanceInYocto),\n );\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { transactions } = await import(\"near-api-js\");\n\n const { contractId, methodName, args, deposit } = params;\n const account = await getAccount();\n\n const estimatedGas = await estimateGas({ args: args || {}, contractId, methodName });\n\n const functionAction = transactions.functionCall(\n methodName,\n args || {},\n estimatedGas.getBaseValue(\"bigint\"),\n BigInt(deposit || \"1\"),\n );\n\n const result = await account.signAndSendTransaction({ actions: [functionAction], receiverId: contractId });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new SwapKitError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n // Create typed contract interface\n async function createContract<T extends Contract = Contract>(contractInterface: NearContractInterface): Promise<T> {\n const account = await getAccount();\n\n return createNearContract<T>({\n account,\n changeMethods: contractInterface.changeMethods,\n contractId: contractInterface.contractId,\n viewMethods: contractInterface.viewMethods,\n });\n }\n\n async function executeBatchTransaction(batch: BatchTransaction): Promise<string> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new SwapKitError(\"toolbox_near_empty_batch\");\n }\n\n const account = await getAccount();\n\n // Use account.signAndSendTransaction for batch operations\n const result = await account.signAndSendTransaction({ actions: batch.actions, receiverId: batch.receiverId });\n\n return result.transaction.hash;\n }\n\n async function nep141(contractId: string) {\n const account = await getAccount();\n return createNEP141Token({ account, contractId });\n }\n\n async function estimateGas(params: NearGasEstimateParams, account?: Account) {\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n const gasInTGas = await match(params)\n .when(isSimpleTransfer, () => GAS_COSTS.SIMPLE_TRANSFER)\n .when(isContractCall, (p) => getContractMethodGas(p.methodName))\n .when(isBatchTransaction, (p) => estimateBatchGas(p.actions))\n .when(isAccountCreation, () => GAS_COSTS.ACCOUNT_CREATION)\n .when(isContractDeployment, () => GAS_COSTS.CONTRACT_DEPLOYMENT)\n .when(isCustomEstimator, (p) => {\n if (!account) {\n throw new SwapKitError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new SwapKitError(\"toolbox_near_invalid_gas_params\");\n });\n\n const gasInUnits = BigInt(gasInTGas) * BigInt(10 ** 12);\n const costInYoctoNear = gasInUnits;\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: costInYoctoNear });\n }\n\n // Get current gas price from network\n async function getGasPrice() {\n try {\n const result = await provider.gasPrice(null);\n return result.gas_price || \"100000000\";\n } catch (_error) {\n // Fallback to default\n return \"100000000\";\n }\n }\n\n return {\n broadcastTransaction,\n callFunction,\n createAction,\n createContract,\n createContractFunctionCall,\n createSubAccount,\n createTransaction,\n estimateGas,\n estimateTransactionFee,\n executeBatchTransaction,\n getAddress,\n getBalance: getBalance(Chain.Near),\n getGasPrice,\n getPublicKey: async () => (signer ? (await signer.getPublicKey()).toString() : \"\"),\n getSignerFromPhrase: (params: GetSignerFromPhraseParams) => getNearSignerFromPhrase(params),\n getSignerFromPrivateKey: getNearSignerFromPrivateKey,\n nep141,\n provider,\n serializeTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
10
- "import type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\nimport type { KeyPairSigner, Signer, transactions } from \"near-api-js\";\n\ninterface NearKeyPairSigner\n extends KeyPairSigner,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\ninterface NearGeneralSigner\n extends Signer,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\nexport type NearSigner = NearKeyPairSigner | NearGeneralSigner;\n\nexport type NearToolboxParams =\n | { signer?: NearSigner; accountId?: string }\n | { phrase?: string; index?: number; derivationPath?: DerivationPathArray };\n\nexport interface NearTransferParams extends GenericTransferParams {}\n\nexport interface NearConfig {\n networkId: \"mainnet\" | \"testnet\" | \"betanet\";\n nodeUrl: string;\n walletUrl?: string;\n helperUrl?: string;\n keyStore?: any;\n}\n\nexport interface NearFunctionCallParams {\n contractId: string;\n methodName: string;\n args: Uint8Array | Record<string, any>;\n deposit?: bigint | string | number;\n gas?: bigint | string | number;\n}\n\nexport interface NearCreateTransactionParams extends GenericCreateTransactionParams {\n attachedDeposit?: string;\n functionCall?: { methodName: string; args: object; attachedDeposit: string; gas: string; contractId: string };\n}\n\nexport * from \"./toolbox\";\nexport * from \"./types/contract\";\nexport * from \"./types/nep141\";\nexport * from \"./types/toolbox\";\n",
9
+ "import { AssetValue, Chain, getChainConfig, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\nimport type { Account, Contract } from \"near-api-js\";\nimport type { SignedTransaction, Transaction } from \"near-api-js/lib/transaction\";\nimport { getBalance } from \"../utils\";\nimport {\n getFullAccessPublicKey,\n getNearSignerFromPhrase,\n getNearSignerFromPrivateKey,\n getValidateNearAddress,\n} from \"./helpers/core\";\nimport {\n estimateBatchGas,\n GAS_COSTS,\n getContractMethodGas,\n isAccountCreation,\n isBatchTransaction,\n isContractCall,\n isContractDeployment,\n isCustomEstimator,\n isSimpleTransfer,\n} from \"./helpers/gasEstimation\";\nimport { createNEP141Token, createNearContract } from \"./helpers/nep141\";\nimport type {\n NearCreateTransactionParams,\n NearFunctionCallParams,\n NearToolboxParams,\n NearTransferParams,\n} from \"./types\";\nimport type { NearContractInterface, NearGasEstimateParams } from \"./types/contract\";\nimport type {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n NearToolbox,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams): Promise<NearToolbox> {\n const { P, match } = await import(\"ts-pattern\");\n const { providers } = await import(\"near-api-js\");\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, async (params) => {\n const signer = await getNearSignerFromPhrase(params);\n return signer;\n })\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const url = await getRPCUrl(Chain.Near);\n\n const provider = new providers.JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"near-api-js\");\n\n const _address = address || (await getAddress());\n\n const account = new Account(_address, provider, signer);\n\n return account;\n }\n\n async function getAddress() {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const transaction = await createTransaction({ ...params, sender: await getAddress() });\n\n return broadcastTransaction(await signTransaction(transaction));\n }\n\n async function createTransaction(params: NearCreateTransactionParams) {\n const { recipient, assetValue, memo, attachedDeposit, sender: signerId, functionCall } = params;\n const validateNearAddress = await getValidateNearAddress();\n\n if (!validateNearAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { recipient: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { signerId: signerId });\n }\n\n if (functionCall) {\n return createContractFunctionCall({ ...functionCall, sender: signerId });\n }\n\n if (!assetValue.isGasAsset) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n return createContractFunctionCall({\n args: { amount: assetValue.getBaseValue(\"string\"), memo: memo || null, receiver_id: recipient },\n attachedDeposit: attachedDeposit || \"1\",\n contractId,\n gas: \"250000000000000\",\n methodName: \"ft_transfer\",\n sender: signerId,\n });\n }\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, signerId);\n const baseAmount = assetValue.getBaseValue(\"bigint\");\n\n const { transactions, utils } = await import(\"near-api-js\");\n\n const txActions = [transactions.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(transactions.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n return transactions.createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n async function serializeTransaction(transaction: Transaction) {\n const { SCHEMA } = await import(\"near-api-js/lib/transaction\");\n const { utils } = await import(\"near-api-js\");\n\n const serializedTx = utils.serialize.serialize(SCHEMA.Transaction, transaction);\n return Buffer.from(serializedTx).toString(\"base64\");\n }\n\n async function createContractFunctionCall(params: ContractFunctionCallParams) {\n const { sender: accountId } = params;\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, accountId);\n\n const { transactions, utils } = await import(\"near-api-js\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n const actions = [\n transactions.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n ),\n ];\n\n const transaction = transactions.createTransaction(\n accountId,\n publicKey,\n params.contractId,\n nonce + 1,\n actions,\n blockHash,\n );\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { transactions } = await import(\"near-api-js\");\n\n const action = transactions.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n );\n\n return action;\n }\n\n async function signTransaction(transaction: Transaction): Promise<SignedTransaction> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const [_hash, signedTx] = await signer.signTransaction(transaction);\n return signedTx;\n }\n\n async function broadcastTransaction(signedTransaction: SignedTransaction) {\n const result = await provider.sendTransaction(signedTransaction);\n return result.transaction.hash;\n }\n\n async function estimateTransactionFee(params: NearTransferParams | NearGasEstimateParams) {\n if (\"assetValue\" in params) {\n const baseTransferCost = \"115123062500\";\n const receiptCreationCost = \"108059500000\";\n\n const totalGasUnits = BigInt(baseTransferCost) + BigInt(receiptCreationCost);\n\n const gasPrice = await getCurrentGasPrice();\n\n const totalCostYocto = totalGasUnits * BigInt(gasPrice.toString());\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: totalCostYocto.toString() });\n }\n\n const account = signer ? await getAccount() : undefined;\n return estimateGas(params, account);\n }\n\n async function getCurrentGasPrice() {\n try {\n const result = await provider.query({\n account_id: \"system\",\n args_base64: \"\",\n finality: \"final\",\n method_name: \"gas_price\",\n request_type: \"call_function\",\n });\n\n return result;\n } catch {\n return \"100000000\"; // 0.0001 NEAR per Tgas\n }\n }\n\n async function createSubAccount(subAccountId: string, publicKey: string, initialBalance: string): Promise<string> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { utils } = await import(\"near-api-js\");\n\n const balanceInYocto = utils.format.parseNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(\n subAccountId,\n utils.PublicKey.fromString(publicKey),\n BigInt(balanceInYocto),\n );\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { transactions } = await import(\"near-api-js\");\n\n const { contractId, methodName, args, deposit } = params;\n const account = await getAccount();\n\n const estimatedGas = await estimateGas({ args: args || {}, contractId, methodName });\n\n const functionAction = transactions.functionCall(\n methodName,\n args || {},\n estimatedGas.getBaseValue(\"bigint\"),\n BigInt(deposit || \"1\"),\n );\n\n const result = await account.signAndSendTransaction({ actions: [functionAction], receiverId: contractId });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new SwapKitError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n // Create typed contract interface\n async function createContract<T extends Contract = Contract>(contractInterface: NearContractInterface): Promise<T> {\n const account = await getAccount();\n\n return createNearContract<T>({\n account,\n changeMethods: contractInterface.changeMethods,\n contractId: contractInterface.contractId,\n viewMethods: contractInterface.viewMethods,\n });\n }\n\n async function executeBatchTransaction(batch: BatchTransaction): Promise<string> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new SwapKitError(\"toolbox_near_empty_batch\");\n }\n\n const account = await getAccount();\n\n // Use account.signAndSendTransaction for batch operations\n const result = await account.signAndSendTransaction({ actions: batch.actions, receiverId: batch.receiverId });\n\n return result.transaction.hash;\n }\n\n async function nep141(contractId: string) {\n const account = await getAccount();\n return createNEP141Token({ account, contractId });\n }\n\n async function estimateGas(params: NearGasEstimateParams, account?: Account) {\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n const gasInTGas = await match(params)\n .when(isSimpleTransfer, () => GAS_COSTS.SIMPLE_TRANSFER)\n .when(isContractCall, (p) => getContractMethodGas(p.methodName))\n .when(isBatchTransaction, (p) => estimateBatchGas(p.actions))\n .when(isAccountCreation, () => GAS_COSTS.ACCOUNT_CREATION)\n .when(isContractDeployment, () => GAS_COSTS.CONTRACT_DEPLOYMENT)\n .when(isCustomEstimator, (p) => {\n if (!account) {\n throw new SwapKitError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new SwapKitError(\"toolbox_near_invalid_gas_params\");\n });\n\n const gasInUnits = BigInt(gasInTGas) * BigInt(10 ** 12);\n const costInYoctoNear = gasInUnits;\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: costInYoctoNear });\n }\n\n // Get current gas price from network\n async function getGasPrice() {\n try {\n const result = await provider.gasPrice(null);\n return result.gas_price || \"100000000\";\n } catch (_error) {\n // Fallback to default\n return \"100000000\";\n }\n }\n\n return {\n broadcastTransaction,\n callFunction,\n createAction,\n createContract,\n createContractFunctionCall,\n createSubAccount,\n createTransaction,\n estimateGas,\n estimateTransactionFee,\n executeBatchTransaction,\n getAddress,\n getBalance: getBalance(Chain.Near),\n getGasPrice,\n getPublicKey: async () => (signer ? (await signer.getPublicKey()).toString() : \"\"),\n getSignerFromPhrase: (params: GetSignerFromPhraseParams) => getNearSignerFromPhrase(params),\n getSignerFromPrivateKey: getNearSignerFromPrivateKey,\n nep141,\n provider,\n serializeTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
10
+ "import type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\nimport type { KeyPairSigner, Signer, transactions } from \"near-api-js\";\n\ninterface NearKeyPairSigner\n extends KeyPairSigner,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\ninterface NearGeneralSigner\n extends Signer,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\nexport type NearSigner = NearKeyPairSigner | NearGeneralSigner;\n\nexport type NearToolboxParams =\n | { signer?: NearSigner; accountId?: string }\n | { phrase?: string; index?: number; derivationPath?: DerivationPathArray };\n\nexport interface NearTransferParams extends GenericTransferParams {}\n\nexport interface NearConfig {\n networkId: \"mainnet\" | \"testnet\" | \"betanet\";\n nodeUrl: string;\n walletUrl?: string;\n helperUrl?: string;\n keyStore?: any;\n}\n\nexport interface NearFunctionCallParams {\n contractId: string;\n methodName: string;\n args: Uint8Array | Record<string, any>;\n deposit?: bigint | string | number;\n gas?: bigint | string | number;\n}\n\nexport interface NearCreateTransactionParams extends Omit<GenericCreateTransactionParams, \"feeRate\"> {\n attachedDeposit?: string;\n functionCall?: { methodName: string; args: object; attachedDeposit: string; gas: string; contractId: string };\n}\n\nexport * from \"./toolbox\";\nexport * from \"./types/contract\";\nexport * from \"./types/nep141\";\nexport * from \"./types/toolbox\";\n",
11
11
  "import type { getNearToolbox } from \"./toolbox\";\n\nexport * from \"./helpers/core\";\nexport * from \"./helpers/gasEstimation\";\nexport * from \"./helpers/nep141\";\nexport * from \"./toolbox\";\nexport * from \"./types\";\n\nexport type NearWallet = Awaited<ReturnType<typeof getNearToolbox>>;\n\nexport type {\n NearCallParams,\n NearContractInterface,\n NearGasEstimateParams,\n} from \"./types/contract\";\nexport type {\n FungibleTokenMetadata,\n NEP141Contract,\n StorageBalance,\n StorageBalanceBounds,\n TokenTransferParams,\n} from \"./types/nep141\";\n"
12
12
  ],
13
- "mappings": "gsBACA,iCAAmC,mBAAwB,0BAC3D,wBAAuB,qBAGvB,eAAsB,CAAsB,EAAG,CAC7C,IAAQ,qBAAsB,KAAa,uBAC3C,MAAO,CAAC,IAAoB,CAE1B,GAAI,CACF,OAAO,EAAkB,CAAO,EAChC,KAAM,CACN,IAAM,EAAmB,wDAEzB,OAAO,EAAQ,QAAU,GAAK,EAAQ,QAAU,IAAM,EAAiB,KAAK,CAAO,IAKzF,eAAsB,CAAuB,CAAC,EAI3C,CACD,IAAQ,mBAAoB,KAAa,6BACjC,WAAY,KAAa,uBAE3B,EAAQ,EAAO,OAAS,EACxB,EAAiB,EAAO,eAC1B,GAAuB,EAAO,eAAe,MAAM,EAAG,CAAC,CAA6B,EACpF,cAAc,MAEV,aAAc,EAAgB,EAAO,OAAQ,CAAc,EAC7D,EAAU,EAAQ,WAAW,CAAgB,EAEnD,OAAO,EAA4B,CAAO,EAG5C,eAAsB,CAA2B,CAAC,EAAoB,CACpE,IAAQ,WAAY,KAAa,iCAC3B,EAAU,EAAQ,WAAW,CAAiB,EACpD,OAAO,EAA4B,CAAO,EAkB5C,SAAS,CAA2B,CAAC,EAA8B,CAGjE,OAFsB,IAAI,EAAgB,CAAO,EAKnD,eAAsB,CAAsB,CAAC,EAAoB,EAAmB,CAOlF,IAAM,GANW,MAAM,EAAS,MAAM,CACpC,WAAY,EACZ,SAAU,QACV,aAAc,sBAChB,CAAC,GAEuC,KAAK,KAAK,CAAC,IAAa,EAAI,WAAW,aAAe,YAAY,EAE1G,GAAI,CAAC,EACH,MAAM,IAAI,GAAa,8BAA8B,EAGvD,IAAQ,SAAU,KAAa,uBACzB,EAAY,EAAM,UAAU,WAAW,EAAc,UAAU,EAGrE,MAAO,CAAE,MAFM,EAAc,WAAW,OAAoB,EAE5C,WAAU,MAtCtB,iBAAN,MAAM,UAAwB,EAAc,CAC1C,GAEA,WAAW,CAAC,EAAkB,CAC5B,MAAM,CAAO,EACb,KAAK,GAAW,EAGlB,UAAU,EAAoB,CAC5B,IAAM,EAAY,KAAK,GAAS,aAAa,EACvC,EAAa,OAAO,KAAK,EAAU,IAAI,EAAE,SAAS,KAAK,EAC7D,OAAO,QAAQ,QAAQ,CAAU,EAErC,IC1CO,SAAS,CAAgB,CAAC,EAAgF,CAC/G,MAAO,cAAe,GAAU,WAAY,GAAU,EAAE,eAAgB,GAGnE,SAAS,CAAc,CAC5B,EAC4G,CAC5G,MAAO,eAAgB,GAAU,eAAgB,EAG5C,SAAS,CAAkB,CAAC,EAA6D,CAC9F,MAAO,YAAa,EAGf,SAAS,CAAiB,CAC/B,EACwD,CACxD,MAAO,iBAAkB,EAGpB,SAAS,CAAoB,CAAC,EAAuE,CAC1G,MAAO,iBAAkB,EAGpB,SAAS,CAAiB,CAC/B,EACsE,CACtE,MAAO,oBAAqB,EAGvB,SAAS,CAAgB,CAAC,EAAgB,CAC/C,IAAI,EAAW,EAEf,QAAW,KAAU,EACnB,OAAQ,EAAO,UACR,WACH,GAAY,OAAO,EAAU,eAAe,EAC5C,UACG,eACH,GAAY,OAAO,EAAU,aAAa,EAC1C,UACG,gBACH,GAAY,OAAO,EAAU,gBAAgB,EAC7C,UACG,iBACH,GAAY,OAAO,EAAU,mBAAmB,EAChD,UACG,SACH,GAAY,OAAO,EAAU,mBAAmB,EAChD,UACG,YACH,GAAY,OAAO,EAAU,mBAAmB,EAChD,UACG,QACH,GAAY,OAAO,EAAU,KAAK,EAClC,cAEA,GAAY,OAAO,EAAU,aAAa,EAIhD,OAAO,EAAS,SAAS,EAGpB,SAAS,CAAoB,CAAC,EAAoB,CACvD,GAAI,IAAe,eAAiB,IAAe,mBACjD,OAAO,EAAU,eAEnB,GAAI,IAAe,kBACjB,OAAO,EAAU,gBAEnB,OAAO,EAAU,cAGZ,SAAS,EAAS,CAAC,EAAsB,CAC9C,OAAQ,OAAO,CAAI,EAAI,OAAO,aAAQ,GAAG,SAAS,EAG7C,SAAS,EAAS,CAAC,EAAqB,CAC7C,OAAQ,OAAO,CAAG,EAAI,OAAO,aAAQ,GAAG,SAAS,MA3FtC,iBAAY,CACvB,oBAAqB,IACrB,oBAAqB,IACrB,iBAAkB,KAClB,cAAe,MACf,oBAAqB,MACrB,gBAAiB,IACjB,MAAO,KACP,gBAAiB,MACjB,eAAgB,KAClB,ICwDA,eAAsB,CAAsC,EAC1D,UACA,aACA,cACA,iBAMa,CACb,IAAQ,YAAa,KAAa,uBAElC,OAAO,IAAI,EAAS,EAAS,EAAY,CACvC,gBACA,sBAAuB,GACvB,aACF,CAAC,EAGH,eAAsB,CAAiB,EACrC,aACA,WAIuB,CACvB,IAAM,GAAM,KAAa,kBAAU,QAE7B,EAAW,MAAM,EAAmC,CACxD,UACA,cAAe,CAAC,cAAe,mBAAoB,kBAAmB,mBAAoB,oBAAoB,EAC9G,aACA,YAAa,CAAC,gBAAiB,kBAAmB,cAAe,qBAAsB,wBAAwB,CACjH,CAAC,EAGK,EAAmB,MAAO,IAAsB,CAEpD,GAAI,CADY,MAAM,EAAS,mBAAmB,CAAE,WAAY,CAAU,CAAC,EAC7D,CAGZ,IAAM,GADS,MAAM,EAAS,uBAAuB,IAC7B,KA7GE,yBA+G1B,MAAM,EAAS,gBACb,CAAE,WAAY,CAAU,EACxB,IAAI,EAAG,iBAAiB,EACxB,IAAI,EAAG,CAAO,CAChB,IAIJ,MAAO,CACL,UAAW,CAAC,IAAsB,EAAS,cAAc,CAAE,WAAY,CAAU,CAAC,EAGlF,WAEA,cAAe,EAEf,SAAU,IAAM,EAAS,YAAY,EAErC,iBAAkB,CAAC,IAAsB,EAAS,mBAAmB,CAAE,WAAY,CAAU,CAAC,EAE9F,eAAgB,CAAC,EAAoB,IACnC,EAAS,gBACP,CAAE,WAAY,CAAU,EACxB,IAAI,EAAG,iBAAiB,EACxB,IAAI,EAAG,GAvIiB,wBAuIgB,CAC1C,EAEF,YAAa,IAAM,EAAS,gBAAgB,EAC5C,SAAU,MAAO,EAAoB,EAAgB,IAAkB,CAIrE,OAFA,MAAM,EAAiB,CAAU,EAE1B,EAAS,YACd,CAAE,SAAQ,OAAM,YAAa,CAAW,EACxC,IAAI,EAAG,iBAAiB,EACxB,IAAI,EAAG,GAAG,CACZ,GAGF,aAAc,MAAO,EAAoB,EAAgB,EAAa,IAAkB,CAItF,OAFA,MAAM,EAAiB,CAAU,EAE1B,EAAS,iBACd,CAAE,SAAQ,OAAM,MAAK,YAAa,CAAW,EAC7C,IAAI,EAAG,iBAAiB,EACxB,IAAI,EAAG,GAAG,CACZ,EAEJ,EClKF,qBAAS,qBAAwB,0BACjC,qBAAS,8BAKF,SAAS,EAAM,EAAG,CACvB,SAAS,CAAG,EAAG,CACb,IAAM,EAAO,KAAK,IAAI,EAChB,EAAW,GAAQ,EAGzB,OAFA,EAAO,EAEA,EAAO,EAAO,EAAO,EAAW,EAGzC,OAAO,GAAM,EAAI,EAAE,SAAS,EAAE,EAGzB,SAAS,CAA2B,CAAC,EAAU,CACpD,OAAO,cAAyB,CAAC,EAAiB,EAAa,GAAM,CACnE,IAAM,EAAW,MAAM,GAAW,gBAAgB,CAAE,UAAS,QAAO,YAAW,CAAC,GACxE,eAAgB,GAAe,CAAK,EAC5C,OAAO,EAAS,IAAI,EAAG,aAAY,QAAO,aAAc,CACtD,OAAO,IAAI,GAAW,CAAE,QAAS,GAAW,EAAa,aAAY,OAAM,CAAC,EAC7E,OArBC,GAEF,EAAO,gBAFL,GAAM,OAAO,QAAY,KAAe,QAAQ,IAAM,QAAQ,IAAI,SAAS,EAAE,EAAI,KCHvF,qBAAS,YAAY,oBAAO,gBAAgB,mBAAW,yBAqCvD,eAAsB,EAAc,CAAC,EAAyD,CAC5F,IAAQ,IAAG,SAAU,KAAa,uBAC1B,aAAc,KAAa,uBAC7B,EAAS,MAAM,EAAM,CAAa,EACrC,KAAK,CAAE,OAAQ,EAAE,MAAO,EAAG,MAAO,IAAW,CAE5C,OADe,MAAM,EAAwB,CAAM,EAEpD,EACA,KAAK,CAAE,OAAQ,EAAE,GAAI,EAAG,EAAG,YAAa,CAAM,EAC9C,UAAU,IAAG,CAAG,OAAS,EAEtB,EAAM,MAAM,GAAU,EAAM,IAAI,EAEhC,EAAW,IAAI,EAAU,gBAAgB,CAAE,KAAI,CAAC,EAEtD,eAAe,CAAU,CAAC,EAAkB,CAC1C,IAAQ,WAAY,KAAa,uBAE3B,EAAW,GAAY,MAAM,EAAW,EAI9C,OAFgB,IAAI,EAAQ,EAAU,EAAU,CAAM,EAKxD,eAAe,CAAU,EAAG,CAC1B,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,wBAAwB,EAGjD,OADgB,MAAM,EAAO,WAAW,EAI1C,eAAe,EAAQ,CAAC,EAA4B,CAClD,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,wBAAwB,EAGjD,IAAQ,YAAW,cAAe,EAIlC,GAAI,EAFwB,MAAM,EAAuB,GAEhC,CAAS,EAChC,MAAM,IAAI,EAAa,8BAA8B,EAGvD,IAAM,EAAU,MAAM,EAAW,EAEjC,GAAI,EAAW,aAAe,GAAO,CACnC,IAAM,EAAa,EAAW,QAC9B,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,uCAAuC,EAGhE,IAAM,EAAS,EAAW,aAAa,QAAQ,EAE/C,OAAO,EAAa,CAClB,KAAM,CAAE,SAAQ,KAAM,EAAO,KAAM,YAAa,CAAU,EAC1D,aACA,WAAY,aACd,CAAC,EAGH,GAAI,CACF,IAAM,EAAiB,EAAW,aAAa,QAAQ,EAIvD,OAFe,MAAM,EAAQ,SAAS,CAAE,OAAQ,EAAgB,WAAY,CAAU,CAAC,GAEzE,oBAAoB,GAClC,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,+BAAgC,CAAE,OAAM,CAAC,GAIpE,eAAe,EAAiB,CAAC,EAAqC,CACpE,IAAQ,YAAW,aAAY,OAAM,kBAAiB,OAAQ,EAAU,gBAAiB,EACnF,EAAsB,MAAM,EAAuB,EAEzD,GAAI,CAAC,EAAoB,CAAS,EAChC,MAAM,IAAI,EAAa,+BAAgC,CAAE,UAAW,CAAU,CAAC,EAGjF,GAAI,CAAC,EAAoB,CAAQ,EAC/B,MAAM,IAAI,EAAa,+BAAgC,CAAE,SAAU,CAAS,CAAC,EAG/E,GAAI,EACF,OAAO,EAA2B,IAAK,EAAc,OAAQ,CAAS,CAAC,EAGzE,GAAI,CAAC,EAAW,WAAY,CAC1B,IAAM,EAAa,EAAW,QAC9B,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,uCAAuC,EAGhE,OAAO,EAA2B,CAChC,KAAM,CAAE,OAAQ,EAAW,aAAa,QAAQ,EAAG,KAAM,GAAQ,KAAM,YAAa,CAAU,EAC9F,gBAAiB,GAAmB,IACpC,aACA,IAAK,kBACL,WAAY,cACZ,OAAQ,CACV,CAAC,EAGH,IAAQ,YAAW,SAAU,MAAM,EAAuB,EAAU,CAAQ,EACtE,GAAa,EAAW,aAAa,QAAQ,GAE3C,eAAc,UAAU,KAAa,uBAEvC,EAAY,CAAC,EAAa,SAAS,EAAU,CAAC,EAEpD,GAAI,GAAQ,EACV,EAAU,KAAK,EAAa,aAAa,OAAQ,CAAE,MAAK,EAAG,OAAO,iBAAiB,EAAG,OAAO,CAAe,CAAC,CAAC,EAGhH,IAAM,GAAQ,MAAM,EAAS,MAAM,CAAE,SAAU,OAAQ,CAAC,EAClD,GAAY,GAAM,UAAU,YAAY,GAAM,OAAO,IAAI,EAE/D,OAAO,EAAa,kBAAkB,EAAU,EAAW,EAAW,EAAQ,EAAG,EAAW,EAAS,EAGvG,eAAe,EAAoB,CAAC,EAA0B,CAC5D,IAAQ,UAAW,KAAa,wCACxB,SAAU,KAAa,uBAEzB,EAAe,EAAM,UAAU,UAAU,EAAO,YAAa,CAAW,EAC9E,OAAO,OAAO,KAAK,CAAY,EAAE,SAAS,QAAQ,EAGpD,eAAe,CAA0B,CAAC,EAAoC,CAC5E,IAAQ,OAAQ,GAAc,GAEtB,YAAW,SAAU,MAAM,EAAuB,EAAU,CAAS,GAErE,eAAc,SAAU,KAAa,uBACvC,EAAQ,MAAM,EAAS,MAAM,CAAE,SAAU,OAAQ,CAAC,EAClD,EAAY,EAAM,UAAU,YAAY,EAAM,OAAO,IAAI,EAEzD,EAAU,CACd,EAAa,aACX,EAAO,WACP,OAAO,KAAK,KAAK,UAAU,EAAO,IAAI,CAAC,EACvC,OAAO,EAAO,GAAG,EACjB,OAAO,EAAO,eAAe,CAC/B,CACF,EAWA,OAToB,EAAa,kBAC/B,EACA,EACA,EAAO,WACP,EAAQ,EACR,EACA,CACF,EAKF,eAAe,EAAY,CAAC,EAA4B,CACtD,IAAQ,gBAAiB,KAAa,uBAStC,OAPe,EAAa,aAC1B,EAAO,WACP,OAAO,KAAK,KAAK,UAAU,EAAO,IAAI,CAAC,EACvC,OAAO,EAAO,GAAG,EACjB,OAAO,EAAO,eAAe,CAC/B,EAKF,eAAe,EAAe,CAAC,EAAsD,CACnF,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,wBAAwB,EAGjD,IAAO,EAAO,GAAY,MAAM,EAAO,gBAAgB,CAAW,EAClE,OAAO,EAGT,eAAe,EAAoB,CAAC,EAAsC,CAExE,OADe,MAAM,EAAS,gBAAgB,CAAiB,GACjD,YAAY,KAG5B,eAAe,EAAsB,CAAC,EAAoD,CACxF,GAAI,eAAgB,EAAQ,CAI1B,IAAM,EAAgB,OAHG,cAGoB,EAAI,OAFrB,cAE+C,EAErE,EAAW,MAAM,GAAmB,EAEpC,EAAiB,EAAgB,OAAO,EAAS,SAAS,CAAC,GACzD,eAAgB,GAAe,EAAM,IAAI,EAEjD,OAAO,GAAW,KAAK,CAAE,MAAO,EAAM,KAAM,gBAAiB,EAAa,MAAO,EAAe,SAAS,CAAE,CAAC,EAG9G,IAAM,EAAU,EAAS,MAAM,EAAW,EAAI,OAC9C,OAAO,EAAY,EAAQ,CAAO,EAGpC,eAAe,EAAkB,EAAG,CAClC,GAAI,CASF,OARe,MAAM,EAAS,MAAM,CAClC,WAAY,SACZ,YAAa,GACb,SAAU,QACV,YAAa,YACb,aAAc,eAChB,CAAC,EAGD,KAAM,CACN,MAAO,aAIX,eAAe,EAAgB,CAAC,EAAsB,EAAmB,EAAyC,CAChH,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,wBAAwB,EAGjD,IAAM,EAAU,MAAM,EAAW,GACzB,SAAU,KAAa,uBAEzB,EAAiB,EAAM,OAAO,gBAAgB,CAAc,GAAK,IAQvE,OANe,MAAM,EAAQ,cAC3B,EACA,EAAM,UAAU,WAAW,CAAS,EACpC,OAAO,CAAc,CACvB,GAEc,YAAY,KAG5B,eAAe,CAAY,CAAC,EAAiD,CAC3E,GAAI,CACF,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,wBAAwB,EAGjD,IAAQ,gBAAiB,KAAa,wBAE9B,aAAY,aAAY,OAAM,WAAY,EAC5C,EAAU,MAAM,EAAW,EAE3B,EAAe,MAAM,EAAY,CAAE,KAAM,GAAQ,CAAC,EAAG,aAAY,YAAW,CAAC,EAE7E,EAAiB,EAAa,aAClC,EACA,GAAQ,CAAC,EACT,EAAa,aAAa,QAAQ,EAClC,OAAO,GAAW,GAAG,CACvB,EAIA,OAFe,MAAM,EAAQ,uBAAuB,CAAE,QAAS,CAAC,CAAc,EAAG,WAAY,CAAW,CAAC,GAE3F,oBAAoB,GAClC,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,+BAAgC,CAAE,OAAM,CAAC,GAKpE,eAAe,EAA6C,CAAC,EAAsD,CACjH,IAAM,EAAU,MAAM,EAAW,EAEjC,OAAO,EAAsB,CAC3B,UACA,cAAe,EAAkB,cACjC,WAAY,EAAkB,WAC9B,YAAa,EAAkB,WACjC,CAAC,EAGH,eAAe,EAAuB,CAAC,EAA0C,CAC/E,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,wBAAwB,EAGjD,GAAI,EAAM,QAAQ,SAAW,EAC3B,MAAM,IAAI,EAAa,0BAA0B,EAQnD,OAFe,MAHC,MAAM,EAAW,GAGJ,uBAAuB,CAAE,QAAS,EAAM,QAAS,WAAY,EAAM,UAAW,CAAC,GAE9F,YAAY,KAG5B,eAAe,EAAM,CAAC,EAAoB,CACxC,IAAM,EAAU,MAAM,EAAW,EACjC,OAAO,EAAkB,CAAE,UAAS,YAAW,CAAC,EAGlD,eAAe,CAAW,CAAC,EAA+B,EAAmB,CAC3E,IAAQ,eAAgB,GAAe,EAAM,IAAI,EAE3C,EAAY,MAAM,EAAM,CAAM,EACjC,KAAK,EAAkB,IAAM,EAAU,eAAe,EACtD,KAAK,EAAgB,CAAC,IAAM,EAAqB,EAAE,UAAU,CAAC,EAC9D,KAAK,EAAoB,CAAC,IAAM,EAAiB,EAAE,OAAO,CAAC,EAC3D,KAAK,EAAmB,IAAM,EAAU,gBAAgB,EACxD,KAAK,EAAsB,IAAM,EAAU,mBAAmB,EAC9D,KAAK,EAAmB,CAAC,IAAM,CAC9B,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,yBAAyB,EAElD,OAAO,EAAE,gBAAgB,CAAO,EACjC,EACA,UAAU,IAAM,CACf,MAAM,IAAI,EAAa,iCAAiC,EACzD,EAGG,EADa,OAAO,CAAS,EAAI,OAAO,aAAQ,EAGtD,OAAO,GAAW,KAAK,CAAE,MAAO,EAAM,KAAM,gBAAiB,EAAa,MAAO,CAAgB,CAAC,EAIpG,eAAe,EAAW,EAAG,CAC3B,GAAI,CAEF,OADe,MAAM,EAAS,SAAS,IAAI,GAC7B,WAAa,YAC3B,MAAO,EAAQ,CAEf,MAAO,aAIX,MAAO,CACL,wBACA,eACA,gBACA,kBACA,6BACA,oBACA,qBACA,cACA,0BACA,2BACA,aACA,WAAY,EAAW,EAAM,IAAI,EACjC,eACA,aAAc,SAAa,GAAU,MAAM,EAAO,aAAa,GAAG,SAAS,EAAI,GAC/E,oBAAqB,CAAC,IAAsC,EAAwB,CAAM,EAC1F,wBAAyB,EACzB,UACA,WACA,wBACA,mBACA,YACA,gBAAiB,MAAM,EAAuB,CAChD,eA7YF,KACA,IAMA,oBCmCA,4dC3CA,IACA,IAEA,IACA",
14
- "debugId": "E3FE8B4106D3310B64756E2164756E21",
13
+ "mappings": "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",
14
+ "debugId": "6ED7D22D336C642C64756E2164756E21",
15
15
  "names": []
16
16
  }
@@ -1,4 +1,4 @@
1
1
  var q=Object.create;var{getPrototypeOf:G,defineProperty:V,getOwnPropertyNames:v}=Object;var x=Object.prototype.hasOwnProperty;var X=(j,z,H)=>{H=j!=null?q(G(j)):{};let J=z||!j||!j.__esModule?V(H,"default",{value:j,enumerable:!0}):H;for(let K of v(j))if(!x.call(J,K))V(J,K,{get:()=>j[K],enumerable:!0});return J};var B=(j,z)=>{for(var H in z)V(j,H,{get:z[H],enumerable:!0,configurable:!0,set:(J)=>z[H]=()=>J})};var I=(j,z)=>()=>(j&&(z=j(j=0)),z);var Y=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(z,H)=>(typeof require<"u"?require:z)[H]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});var R={};B(R,{radixValidateAddress:()=>_,RadixToolbox:()=>P});import{AssetValue as S,Chain as Z,SKConfig as T,SwapKitError as C}from"@swapkit/helpers";function _(j){return j.startsWith("account_rdx1")&&j.length===66}function D({networkApi:j}){return async function(H){let J=await h({address:H,networkApi:j});return E({networkApi:j,resources:J})}}async function h({address:j,networkApi:z}){let H=!0,J,K=[],L=await F(z);while(H){let Q={address:j,at_ledger_state:{state_version:L},cursor:J,limit_per_page:100},N=await z.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:Q});if(K=K.concat(N.items),N.next_cursor)J=N.next_cursor;else H=!1}return K}async function E({resources:j,networkApi:z}){let H=[],J=50,K=[];for(let L=0;L<j.length;L+=50)K.push(j.slice(L,L+50));for(let L of K){let Q=L.map((M)=>M.resource_address),N=await z.state.getEntityDetailsVaultAggregated(Q),W=new Map;for(let M of N)if(M.details!==void 0){let O=M.metadata?.items.find(($)=>$.key==="symbol"),U=O?.value.typed.type==="String"?O.value.typed.value:"?";if(M.details.type==="FungibleResource")W.set(M.address,{decimals:M.details.divisibility,symbol:U})}for(let M of L)if(M.aggregation_level==="Global"){let O=W.get(M.resource_address)||{decimals:0,symbol:"?"},U=S.from({asset:O.symbol!==Z.Radix?`${Z.Radix}.${O.symbol}-${M.resource_address}`:"XRD.XRD",value:M.amount});H.push(U)}}return H}function F(j){return j.status.getCurrent().then((z)=>z.ledger_state.state_version)}var P=async({dappConfig:j}={})=>{let{RadixDappToolkit:z}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:H}=await import("@radixdlt/babylon-gateway-api-sdk"),J=j||T.get("integrations").radix,K=z({...J,networkId:J.network?.networkId||1}),L=H.initialize(K.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:D({networkApi:L}),networkApi:L,signAndBroadcast:()=>{throw new C("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:_}};var f=()=>{};f();export{_ as radixValidateAddress,P as RadixToolbox};
2
2
 
3
- //# debugId=D99A89EEA6D2B0D264756E2164756E21
3
+ //# debugId=053DB751D845FA7764756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -5,6 +5,6 @@
5
5
  "import type {\n FungibleResourcesCollectionItem,\n GatewayApiClient,\n StateEntityDetailsVaultResponseItem,\n StateEntityFungiblesPageRequest,\n StateEntityFungiblesPageResponse,\n} from \"@radixdlt/babylon-gateway-api-sdk\";\nimport { AssetValue, Chain, SKConfig, type SKConfigIntegrations, SwapKitError } from \"@swapkit/helpers\";\n\nexport type RadixWallet = Awaited<ReturnType<typeof RadixToolbox>>;\n\ntype RadixGetBalanceParams = { address: string; networkApi: GatewayApiClient };\n// Could not find anything sync in SDK, ask Radix team\nexport function radixValidateAddress(address: string) {\n return address.startsWith(\"account_rdx1\") && address.length === 66;\n}\n\nfunction getBalance({ networkApi }: { networkApi: GatewayApiClient }) {\n return async function getBalance(address: string) {\n const fungibleResources = await fetchFungibleResources({ address, networkApi });\n const fungibleBalances = convertResourcesToBalances({ networkApi, resources: fungibleResources });\n return fungibleBalances;\n };\n}\n\nasync function fetchFungibleResources({\n address,\n networkApi,\n}: RadixGetBalanceParams): Promise<FungibleResourcesCollectionItem[]> {\n let hasNextPage = true;\n let nextCursor: string | undefined;\n let fungibleResources: FungibleResourcesCollectionItem[] = [];\n const stateVersion = await currentStateVersion(networkApi);\n while (hasNextPage) {\n const stateEntityFungiblesPageRequest: StateEntityFungiblesPageRequest = {\n address: address,\n at_ledger_state: { state_version: stateVersion },\n cursor: nextCursor,\n limit_per_page: 100,\n };\n\n const stateEntityFungiblesPageResponse: StateEntityFungiblesPageResponse =\n await networkApi.state.innerClient.entityFungiblesPage({\n stateEntityFungiblesPageRequest: stateEntityFungiblesPageRequest,\n });\n\n fungibleResources = fungibleResources.concat(stateEntityFungiblesPageResponse.items);\n if (stateEntityFungiblesPageResponse.next_cursor) {\n nextCursor = stateEntityFungiblesPageResponse.next_cursor;\n } else {\n hasNextPage = false;\n }\n }\n return fungibleResources;\n}\n\nasync function convertResourcesToBalances({\n resources,\n networkApi,\n}: {\n resources: FungibleResourcesCollectionItem[]; //| NonFungibleResourcesCollectionItem[];\n networkApi: GatewayApiClient;\n}): Promise<AssetValue[]> {\n const balances: AssetValue[] = [];\n const BATCH_SIZE = 50;\n\n // Split resources into batches of up to 50 items\n const resourceBatches: FungibleResourcesCollectionItem[][] = [];\n for (let i = 0; i < resources.length; i += BATCH_SIZE) {\n resourceBatches.push(resources.slice(i, i + BATCH_SIZE));\n }\n\n for (const batch of resourceBatches) {\n const addresses = batch.map((item) => item.resource_address);\n const response: StateEntityDetailsVaultResponseItem[] =\n await networkApi.state.getEntityDetailsVaultAggregated(addresses);\n\n const divisibilities = new Map<string, { decimals: number; symbol: string }>();\n\n for (const result of response) {\n if (result.details !== undefined) {\n const metaDataSymbol = result.metadata?.items.find((item) => item.key === \"symbol\");\n const symbol = metaDataSymbol?.value.typed.type === \"String\" ? metaDataSymbol.value.typed.value : \"?\";\n\n if (result.details.type === \"FungibleResource\") {\n divisibilities.set(result.address, { decimals: result.details.divisibility, symbol });\n }\n }\n }\n\n for (const item of batch) {\n if (item.aggregation_level === \"Global\") {\n const assetInfo = divisibilities.get(item.resource_address) || { decimals: 0, symbol: \"?\" };\n\n const balance = AssetValue.from({\n asset:\n assetInfo.symbol !== Chain.Radix\n ? `${Chain.Radix}.${assetInfo.symbol}-${item.resource_address}`\n : \"XRD.XRD\",\n value: item.amount,\n });\n balances.push(balance);\n }\n }\n }\n\n return balances;\n}\n\nfunction currentStateVersion(networkApi: GatewayApiClient) {\n return networkApi.status.getCurrent().then((status) => status.ledger_state.state_version);\n}\n\nexport const RadixToolbox = async ({ dappConfig }: { dappConfig?: SKConfigIntegrations[\"radix\"] } = {}) => {\n const { RadixDappToolkit } = await import(\"@radixdlt/radix-dapp-toolkit\");\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const config = dappConfig || SKConfig.get(\"integrations\").radix;\n\n const radixToolkit = RadixDappToolkit({ ...config, networkId: config.network?.networkId || 1 });\n\n const networkApi = GatewayApiClient.initialize(radixToolkit.gatewayApi.clientConfig);\n\n return {\n getAddress: () => \"\",\n getBalance: getBalance({ networkApi }),\n networkApi,\n signAndBroadcast: (() => {\n throw new SwapKitError(\"toolbox_radix_method_not_supported\", { method: \"signAndBroadcast\" });\n }) as (params: any) => Promise<string>,\n validateAddress: radixValidateAddress,\n };\n};\n"
6
6
  ],
7
7
  "mappings": "qvBAOA,qBAAS,WAAY,cAAO,kBAAqC,yBAM1D,SAAS,CAAoB,CAAC,EAAiB,CACpD,OAAO,EAAQ,WAAW,cAAc,GAAK,EAAQ,SAAW,GAGlE,SAAS,CAAU,EAAG,cAAgD,CACpE,OAAO,cAAyB,CAAC,EAAiB,CAChD,IAAM,EAAoB,MAAM,EAAuB,CAAE,UAAS,YAAW,CAAC,EAE9E,OADyB,EAA2B,CAAE,aAAY,UAAW,CAAkB,CAAC,GAKpG,eAAe,CAAsB,EACnC,UACA,cACoE,CACpE,IAAI,EAAc,GACd,EACA,EAAuD,CAAC,EACtD,EAAe,MAAM,EAAoB,CAAU,EACzD,MAAO,EAAa,CAClB,IAAM,EAAmE,CACvE,QAAS,EACT,gBAAiB,CAAE,cAAe,CAAa,EAC/C,OAAQ,EACR,eAAgB,GAClB,EAEM,EACJ,MAAM,EAAW,MAAM,YAAY,oBAAoB,CACrD,gCAAiC,CACnC,CAAC,EAGH,GADA,EAAoB,EAAkB,OAAO,EAAiC,KAAK,EAC/E,EAAiC,YACnC,EAAa,EAAiC,YAE9C,OAAc,GAGlB,OAAO,EAGT,eAAe,CAA0B,EACvC,YACA,cAIwB,CACxB,IAAM,EAAyB,CAAC,EAC1B,EAAa,GAGb,EAAuD,CAAC,EAC9D,QAAS,EAAI,EAAG,EAAI,EAAU,OAAQ,GAJnB,GAKjB,EAAgB,KAAK,EAAU,MAAM,EAAG,EALvB,EAKqC,CAAC,EAGzD,QAAW,KAAS,EAAiB,CACnC,IAAM,EAAY,EAAM,IAAI,CAAC,IAAS,EAAK,gBAAgB,EACrD,EACJ,MAAM,EAAW,MAAM,gCAAgC,CAAS,EAE5D,EAAiB,IAAI,IAE3B,QAAW,KAAU,EACnB,GAAI,EAAO,UAAY,OAAW,CAChC,IAAM,EAAiB,EAAO,UAAU,MAAM,KAAK,CAAC,IAAS,EAAK,MAAQ,QAAQ,EAC5E,EAAS,GAAgB,MAAM,MAAM,OAAS,SAAW,EAAe,MAAM,MAAM,MAAQ,IAElG,GAAI,EAAO,QAAQ,OAAS,mBAC1B,EAAe,IAAI,EAAO,QAAS,CAAE,SAAU,EAAO,QAAQ,aAAc,QAAO,CAAC,EAK1F,QAAW,KAAQ,EACjB,GAAI,EAAK,oBAAsB,SAAU,CACvC,IAAM,EAAY,EAAe,IAAI,EAAK,gBAAgB,GAAK,CAAE,SAAU,EAAG,OAAQ,GAAI,EAEpF,EAAU,EAAW,KAAK,CAC9B,MACE,EAAU,SAAW,EAAM,MACvB,GAAG,EAAM,SAAS,EAAU,UAAU,EAAK,mBAC3C,UACN,MAAO,EAAK,MACd,CAAC,EACD,EAAS,KAAK,CAAO,GAK3B,OAAO,EAGT,SAAS,CAAmB,CAAC,EAA8B,CACzD,OAAO,EAAW,OAAO,WAAW,EAAE,KAAK,CAAC,IAAW,EAAO,aAAa,aAAa,MAG7E,EAAe,OAAS,cAA+D,CAAC,IAAM,CACzG,IAAQ,oBAAqB,KAAa,yCAClC,oBAAqB,KAAa,6CACpC,EAAS,GAAc,EAAS,IAAI,cAAc,EAAE,MAEpD,EAAe,EAAiB,IAAK,EAAQ,UAAW,EAAO,SAAS,WAAa,CAAE,CAAC,EAExF,EAAa,EAAiB,WAAW,EAAa,WAAW,YAAY,EAEnF,MAAO,CACL,WAAY,IAAM,GAClB,WAAY,EAAW,CAAE,YAAW,CAAC,EACrC,aACA,iBAAmB,IAAM,CACvB,MAAM,IAAI,EAAa,qCAAsC,CAAE,OAAQ,kBAAmB,CAAC,GAE7F,gBAAiB,CACnB",
8
- "debugId": "D99A89EEA6D2B0D264756E2164756E21",
8
+ "debugId": "053DB751D845FA7764756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
1
  var P=Object.create;var{getPrototypeOf:U,defineProperty:k,getOwnPropertyNames:f}=Object;var R=Object.prototype.hasOwnProperty;var c=(j,q,y)=>{y=j!=null?P(U(j)):{};let G=q||!j||!j.__esModule?k(y,"default",{value:j,enumerable:!0}):y;for(let Y of f(j))if(!R.call(G,Y))k(G,Y,{get:()=>j[Y],enumerable:!0});return G};var D=(j,q)=>{for(var y in q)k(j,y,{get:q[y],enumerable:!0,configurable:!0,set:(G)=>q[y]=()=>G})};var b=(j,q)=>()=>(j&&(q=j(j=0)),q);var d=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(q,y)=>(typeof require<"u"?require:q)[y]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});var V={};D(V,{rippleValidateAddress:()=>B,hashes:()=>h,getRippleToolbox:()=>x});import{AssetValue as v,Chain as Q,getChainConfig as W,getRPCUrl as K,SwapKitError as X,SwapKitNumber as A}from"@swapkit/helpers";import{Client as T,isValidAddress as w,Wallet as E,xrpToDrops as S}from"xrpl";import{hashes as h}from"xrpl";function H(j){let q=E.fromMnemonic(j);return{getAddress:()=>Promise.resolve(q.address),signTransaction:(y)=>Promise.resolve(q.sign(y))}}function B(j){return w(j)}var u,x=async(j={})=>{let q="signer"in j&&j.signer?j.signer:("phrase"in j)&&j.phrase?H(j.phrase):void 0,y=await K(Q.Ripple);if(!y)throw new X({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Q.Ripple}});let G=new T(y);await G.connect();let Y=()=>{if(!q)throw new X({errorKey:"toolbox_ripple_signer_not_found"});return q.getAddress()},O=async(z)=>{let M=z||await Y(),{baseDecimal:J}=W(Q.Ripple);try{let $=(await G.request({account:M,command:"account_info"})).result.account_data.Balance;return[v.from({chain:Q.Ripple,fromBaseDecimal:J,value:$})]}catch(Z){if(Z.data.error_code===u.ACCOUNT_NOT_FOUND)return[v.from({chain:Q.Ripple,value:0})];throw new X("toolbox_ripple_get_balance_error",{info:{address:M,error:Z}})}},_=async()=>{let M=(await G.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:J}=W(Q.Ripple);return v.from({chain:Q.Ripple,fromBaseDecimal:J,value:A.fromBigInt(BigInt(M),J)})},F=async({assetValue:z,recipient:M,memo:J,sender:Z})=>{if(!B(M))throw new X({errorKey:"core_transaction_invalid_recipient_address"});let $=Z||await Y();if(!z.isGasAsset||z.chain!==Q.Ripple)throw new X({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:z.toString()}});let N={Account:$,Amount:S(z.getValue("string")),Destination:M,TransactionType:"Payment"};if(J)N.Memos=[{Memo:{MemoData:Buffer.from(J).toString("hex")}}];return await G.autofill(N)},I=(z)=>{if(!q)throw new X({errorKey:"toolbox_ripple_signer_not_found"});return q.signTransaction(z)},L=async(z)=>{let J=(await G.submitAndWait(z)).result;if(J.validated)return J.hash;throw new X({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Q.Ripple}})};return{broadcastTransaction:L,createSigner:H,createTransaction:F,disconnect:()=>G.disconnect(),estimateTransactionFee:_,getAddress:Y,getBalance:O,signer:q,signTransaction:I,transfer:async(z)=>{if(!q)throw new X({errorKey:"toolbox_ripple_signer_not_found"});let M=await q.getAddress(),J=await F({...z,sender:M}),Z=await I(J);return L(Z.tx_blob)},validateAddress:B}};var C=b(()=>{u={ACCOUNT_NOT_FOUND:19}});C();export{B as rippleValidateAddress,h as hashes,x as getRippleToolbox};
2
2
 
3
- //# debugId=13E408981CF92BBD64756E2164756E21
3
+ //# debugId=76AC5E2993569E1964756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -5,6 +5,6 @@
5
5
  "import {\n AssetValue,\n Chain,\n type ChainSigner,\n type GenericTransferParams,\n getChainConfig,\n getRPCUrl,\n SwapKitError,\n SwapKitNumber,\n} from \"@swapkit/helpers\";\nimport type { Transaction } from \"xrpl\";\nimport { Client, isValidAddress, type Payment, Wallet, xrpToDrops } from \"xrpl\";\n\nexport type RippleWallet = Awaited<ReturnType<typeof getRippleToolbox>>;\n\nexport { hashes, type Transaction } from \"xrpl\";\n\nconst RIPPLE_ERROR_CODES = { ACCOUNT_NOT_FOUND: 19 } as const;\n\n// Note: Ripple seeds generate a single address, no derivation path/index support.\nfunction createSigner(phrase: string): ChainSigner<Transaction, { tx_blob: string; hash: string }> {\n const wallet = Wallet.fromMnemonic(phrase);\n return {\n // publicKey: wallet.publicKey,\n // Address is sync, but interface requires async\n getAddress: () => Promise.resolve(wallet.address),\n // Signing is sync, but interface requires async\n signTransaction: (tx: Transaction) => Promise.resolve(wallet.sign(tx as Transaction)), // Cast needed as Wallet.sign expects Transaction\n };\n}\n\nexport function rippleValidateAddress(address: string) {\n return isValidAddress(address);\n}\n\ntype RippleToolboxParams =\n | { phrase?: string }\n | { signer?: ChainSigner<Transaction, { tx_blob: string; hash: string }> };\n\nexport const getRippleToolbox = async (params: RippleToolboxParams = {}) => {\n const signer =\n \"signer\" in params && params.signer\n ? params.signer\n : \"phrase\" in params && params.phrase\n ? createSigner(params.phrase)\n : undefined;\n\n const rpcUrl = await getRPCUrl(Chain.Ripple);\n if (!rpcUrl) {\n throw new SwapKitError({ errorKey: \"toolbox_ripple_rpc_not_configured\", info: { chain: Chain.Ripple } });\n }\n\n const client = new Client(rpcUrl);\n await client.connect();\n\n const getAddress = () => {\n if (!signer) {\n throw new SwapKitError({ errorKey: \"toolbox_ripple_signer_not_found\" });\n }\n return signer.getAddress();\n };\n\n const getBalance = async (address?: string) => {\n const addr = address || (await getAddress());\n const { baseDecimal } = getChainConfig(Chain.Ripple);\n\n try {\n const accountInfo = await client.request({ account: addr, command: \"account_info\" });\n\n const balance = accountInfo.result.account_data.Balance;\n\n return [AssetValue.from({ chain: Chain.Ripple, fromBaseDecimal: baseDecimal, value: balance })];\n } catch (error) {\n // empty account\n if ((error as any).data.error_code === RIPPLE_ERROR_CODES.ACCOUNT_NOT_FOUND) {\n return [AssetValue.from({ chain: Chain.Ripple, value: 0 })];\n }\n throw new SwapKitError(\"toolbox_ripple_get_balance_error\", { info: { address: addr, error } });\n }\n };\n\n const estimateTransactionFee = async () => {\n const feeResponse = await client.request({ command: \"fee\" });\n const feeDrops = feeResponse.result.drops.open_ledger_fee; // Fee in drops\n\n const { baseDecimal } = getChainConfig(Chain.Ripple);\n\n return AssetValue.from({\n chain: Chain.Ripple,\n fromBaseDecimal: baseDecimal,\n value: SwapKitNumber.fromBigInt(BigInt(feeDrops), baseDecimal),\n });\n };\n\n const createTransaction = async ({\n assetValue,\n recipient,\n memo,\n sender,\n }: {\n assetValue: AssetValue;\n recipient: string;\n sender?: string;\n memo?: string;\n }) => {\n if (!rippleValidateAddress(recipient)) {\n throw new SwapKitError({ errorKey: \"core_transaction_invalid_recipient_address\" });\n }\n\n const senderAddress = sender || (await getAddress());\n\n if (!assetValue.isGasAsset || assetValue.chain !== Chain.Ripple) {\n throw new SwapKitError({\n errorKey: \"toolbox_ripple_asset_not_supported\",\n info: { asset: assetValue.toString() },\n });\n }\n\n const transaction: Payment = {\n Account: senderAddress,\n Amount: xrpToDrops(assetValue.getValue(\"string\")),\n Destination: recipient,\n TransactionType: \"Payment\",\n };\n\n if (memo) {\n transaction.Memos = [{ Memo: { MemoData: Buffer.from(memo).toString(\"hex\") } }];\n }\n\n const preparedTx = await client.autofill(transaction);\n return preparedTx;\n };\n\n const signTransaction = (tx: Transaction) => {\n if (!signer) {\n throw new SwapKitError({ errorKey: \"toolbox_ripple_signer_not_found\" });\n }\n return signer.signTransaction(tx);\n };\n\n const broadcastTransaction = async (signedTxHex: string) => {\n const submitResult = await client.submitAndWait(signedTxHex);\n const result = submitResult.result;\n\n if (result.validated) {\n return result.hash;\n }\n\n throw new SwapKitError({ errorKey: \"toolbox_ripple_broadcast_error\", info: { chain: Chain.Ripple } });\n };\n\n const transfer = async (params: GenericTransferParams) => {\n if (!signer) {\n throw new SwapKitError({ errorKey: \"toolbox_ripple_signer_not_found\" });\n }\n const sender = await signer.getAddress();\n const tx = await createTransaction({ ...params, sender });\n const signedTx = await signTransaction(tx);\n return broadcastTransaction(signedTx.tx_blob);\n };\n\n const disconnect = () => client.disconnect();\n\n return {\n broadcastTransaction,\n createSigner, // Expose the helper\n createTransaction,\n disconnect,\n estimateTransactionFee,\n // Core methods\n getAddress,\n getBalance,\n // Signer related\n signer, // Expose the signer instance if created/provided\n signTransaction,\n transfer,\n validateAddress: rippleValidateAddress,\n };\n};\n"
6
6
  ],
7
7
  "mappings": "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",
8
- "debugId": "13E408981CF92BBD64756E2164756E21",
8
+ "debugId": "76AC5E2993569E1964756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
1
  var A=Object.create;var{getPrototypeOf:p,defineProperty:I,getOwnPropertyNames:C}=Object;var P=Object.prototype.hasOwnProperty;var J=(j,q,w)=>{w=j!=null?A(p(j)):{};let z=q||!j||!j.__esModule?I(w,"default",{value:j,enumerable:!0}):w;for(let B of C(j))if(!P.call(z,B))I(z,B,{get:()=>j[B],enumerable:!0});return z};var l=(j,q)=>{for(var w in q)I(j,w,{get:q[w],enumerable:!0,configurable:!0,set:(z)=>q[w]=()=>z})};var k=(j,q)=>()=>(j&&(q=j(j=0)),q);var N=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(q,w)=>(typeof require<"u"?require:q)[w]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});import{AssetValue as M,Chain as Y,DerivationPath as u,derivationPathToString as m,getChainConfig as K,getRPCUrl as d,NetworkDerivationPath as g,SwapKitError as Z,updateDerivationPath as c}from"@swapkit/helpers";import{match as a,P as T}from"ts-pattern";async function o(j){try{let q=await fetch(`https://lite-api.jup.ag/tokens/v1/token/${j}`);if(!q.ok)return null;return await q.json()}catch{return null}}async function r(j){let q=await X(),{PublicKey:w}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:z}=await import("@solana/spl-token"),B=new w(j),F=[],G=await q.getBalance(B);if(G>0){let{baseDecimal:Q}=K(Y.Solana);F.push(M.from({chain:Y.Solana,fromBaseDecimal:Q,value:G}))}let O=await q.getParsedTokenAccountsByOwner(B,{programId:z});for(let{account:Q}of O.value){let R=Q.data.parsed.info,U=R.mint,_=R.tokenAmount.amount;if(Number(_)===0)continue;let L=await o(U),W=L?.symbol||"UNKNOWN",$=L?.decimals||R.tokenAmount.decimals;F.push(M.from({asset:`${Y.Solana}.${W}-${U}`,fromBaseDecimal:$,value:_}))}return F}async function S(){let{PublicKey:j}=await import("@solana/web3.js");return(q)=>{try{let w=new j(q);return j.isOnCurve(w.toBytes())}catch(w){return!1}}}async function s(j){let q=j&&"index"in j?j.index||0:0,w=m(j&&"derivationPath"in j&&j.derivationPath?j.derivationPath:c(g[Y.Solana],{index:q})),z=await a(j).with({phrase:T.string},({phrase:F})=>H({derivationPath:w,phrase:F})).with({signer:T.any},({signer:F})=>F).otherwise(()=>{return});function B(){return z?.publicKey?v(z.publicKey):""}return{broadcastTransaction:x(X),createKeysForPath:H,createTransaction:f(X),createTransactionFromInstructions:n,estimateTransactionFee:t(X),getAddress:B,getAddressFromPubKey:v,getAddressValidator:S,getBalance:(F)=>{let G=F||B();if(!G)throw new Z("core_wallet_connection_not_found");return r(G)},getConnection:X,getPubkeyFromAddress:V,signTransaction:qj(X,z),transfer:jj(X,z)}}function t(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:B,sender:F})=>{let G=await j(),Q=(await f(j)({assetValue:w,isProgramDerivedAddress:B,memo:z,recipient:q,sender:F})).compileMessage(),R=await G.getFeeForMessage(Q);if(R.value===null)throw new Z("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:U}=K(Y.Solana);return M.from({chain:Y.Solana,fromBaseDecimal:U,value:R.value})}}async function X(){let{Connection:j}=await import("@solana/web3.js"),q=await d(Y.Solana);return new j(q,"confirmed")}function i(j){return async({assetValue:q,recipient:w,sender:z,isProgramDerivedAddress:B})=>{let F=await j(),G=await V(z);if(q.isGasAsset){let{Transaction:O,SystemProgram:Q,PublicKey:R}=await import("@solana/web3.js");return new O().add(Q.transfer({fromPubkey:G,lamports:q.getBaseValue("number"),toPubkey:new R(w)}))}if(q.address)return e({amount:q.getBaseValue("number"),connection:F,decimals:q.decimal,from:G,isProgramDerivedAddress:B,recipient:w,tokenAddress:q.address});return}}async function e({tokenAddress:j,recipient:q,from:w,connection:z,amount:B,decimals:F,isProgramDerivedAddress:G}){let{getAssociatedTokenAddress:O,getAccount:Q,createAssociatedTokenAccountInstruction:R,createTransferCheckedInstruction:U}=await import("@solana/spl-token"),{Transaction:_,PublicKey:L}=await import("@solana/web3.js"),W=new _,$=new L(j),y=await O($,w),D=new L(q),E=await O($,D,G),h=!1;try{await Q(z,E),h=!0}catch(Bj){}if(!h)W.add(R(w,E,D,$));return W.add(U(y,$,E,w,B,F)),W}function f(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:B,sender:F})=>{let{createMemoInstruction:G}=await import("@solana/spl-memo"),O=await V(F),Q=await S();if(!(B||Q(q)))throw new Z("core_transaction_invalid_recipient_address");let R=await j(),U=await i(j)({assetValue:w,isProgramDerivedAddress:B,recipient:q,sender:F});if(!U)throw new Z("core_transaction_invalid_sender_address");if(z)U.add(G(z));let _=await R.getLatestBlockhash();return U.recentBlockhash=_.blockhash,U.feePayer=O,U}}async function n({instructions:j}){let{Transaction:q}=await import("@solana/web3.js"),w=new q().add(...j);if(!w)throw new Z("core_transaction_invalid_sender_address");return w}function jj(j,q){return async({recipient:w,assetValue:z,memo:B,isProgramDerivedAddress:F})=>{if(!q)throw new Z("core_transaction_invalid_sender_address");let G=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),O=await f(j)({assetValue:z,isProgramDerivedAddress:F,memo:B,recipient:w,sender:G});if("signTransaction"in q){let Q=await q.signTransaction(O);return x(j)(Q)}return O.sign(q),x(j)(O)}}function x(j){return async(q)=>{return(await j()).sendRawTransaction(q.serialize())}}function qj(j,q){return async(w)=>{let{VersionedTransaction:z}=await import("@solana/web3.js");if(!q)throw new Z("toolbox_solana_no_signer");if(!(w instanceof z)){let F=await(await j()).getLatestBlockhash();w.recentBlockhash=F.blockhash,w.feePayer=q.publicKey||void 0}if("connect"in q)return await q.signTransaction(w);return await w.sign([q]),w}}async function H({phrase:j,derivationPath:q=u.SOL}){let{HDKey:w}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:z}=await import("@scure/bip39"),{Keypair:B}=await import("@solana/web3.js"),F=z(j),G=w.fromMasterSeed(F);return B.fromSeed(G.derive(q,!0).privateKey)}function v(j){return j.toString()}async function V(j){let{PublicKey:q}=await import("@solana/web3.js");return new q(j)}var b=()=>{};var wj={};l(wj,{getSolanaToolbox:()=>s,getSolanaAddressValidator:()=>S,createKeysForPath:()=>H});var zj=k(()=>{b()});zj();export{s as getSolanaToolbox,S as getSolanaAddressValidator,H as createKeysForPath};
2
2
 
3
- //# debugId=9371C697CB9F6C3764756E2164756E21
3
+ //# debugId=F1992FE2D1287CD964756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -6,6 +6,6 @@
6
6
  "import type { PublicKey, Transaction, VersionedTransaction } from \"@solana/web3.js\";\nimport type { GenericCreateTransactionParams, GenericTransferParams } from \"@swapkit/helpers\";\nimport type { getSolanaToolbox } from \"./toolbox\";\n\n// type DisplayEncoding = \"utf8\" | \"hex\";\n\n// type PhantomRequestMethod =\n// | \"connect\"\n// | \"disconnect\"\n// | \"signAndSendTransaction\"\n// | \"signAndSendTransactionV0\"\n// | \"signAndSendTransactionV0WithLookupTable\"\n// | \"signTransaction\"\n// | \"signAllTransactions\"\n// | \"signMessage\";\n\ninterface ConnectOpts {\n onlyIfTrusted: boolean;\n}\n\nexport * from \"./toolbox\";\n\nexport type SolanaWallet = Awaited<ReturnType<typeof getSolanaToolbox>>;\n\nexport interface SolanaProvider {\n connect: (opts?: Partial<ConnectOpts>) => Promise<{ publicKey: PublicKey }>;\n disconnect: () => Promise<void>;\n publicKey: PublicKey | null;\n signTransaction: <T extends Transaction | VersionedTransaction = Transaction>(transaction: T) => Promise<T>;\n}\n\nexport type SolanaCreateTransactionParams = Omit<GenericCreateTransactionParams, \"feeRate\"> & {\n isProgramDerivedAddress?: boolean;\n};\n\nexport type SolanaTransferParams = Omit<GenericTransferParams, \"feeRate\"> & { isProgramDerivedAddress?: boolean };\n"
7
7
  ],
8
8
  "mappings": "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",
9
- "debugId": "9371C697CB9F6C3764756E2164756E21",
9
+ "debugId": "F1992FE2D1287CD964756E2164756E21",
10
10
  "names": []
11
11
  }