@swapkit/toolboxes 4.1.11 → 4.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cosmos/index.cjs +2 -2
- package/dist/src/cosmos/index.cjs.map +3 -3
- package/dist/src/cosmos/index.js +2 -2
- package/dist/src/cosmos/index.js.map +3 -3
- package/dist/src/index.cjs +3 -3
- package/dist/src/index.cjs.map +5 -5
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +5 -5
- package/dist/src/near/index.cjs +2 -2
- package/dist/src/near/index.cjs.map +3 -3
- package/dist/src/near/index.js +2 -2
- package/dist/src/near/index.js.map +3 -3
- package/dist/src/substrate/index.cjs +2 -2
- package/dist/src/substrate/index.cjs.map +3 -3
- package/dist/src/substrate/index.js +2 -2
- package/dist/src/substrate/index.js.map +3 -3
- package/dist/types/cosmos/toolbox/cosmos.d.ts +4 -1
- package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
- package/dist/types/cosmos/toolbox/thorchain.d.ts +1 -0
- package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -1
- package/dist/types/near/toolbox.d.ts.map +1 -1
- package/dist/types/near/types/nep141.d.ts +6 -0
- package/dist/types/near/types/nep141.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/src/near/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var St=Object.create;var{getPrototypeOf:Dt,defineProperty:L,getOwnPropertyNames:nt,getOwnPropertyDescriptor:Gt}=Object,rt=Object.prototype.hasOwnProperty;var N=(t,r,i)=>{i=t!=null?St(Dt(t)):{};let T=r||!t||!t.__esModule?L(i,"default",{value:t,enumerable:!0}):i;for(let m of nt(t))if(!rt.call(T,m))L(T,m,{get:()=>t[m],enumerable:!0});return T},tt=new WeakMap,Bt=(t)=>{var r=tt.get(t),i;if(r)return r;if(r=L({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")nt(t).map((T)=>!rt.call(r,T)&&L(r,T,{get:()=>t[T],enumerable:!(i=Gt(t,T))||i.enumerable}));return tt.set(t,r),r};var yt=(t,r)=>{for(var i in r)L(t,i,{get:r[i],enumerable:!0,configurable:!0,set:(T)=>r[i]=()=>T})};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 B(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:i}=await import("@near-js/crypto"),T=t.index||0,m=t.derivationPath?D.derivationPathToString(t.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{secretKey:O}=r(t.phrase,m),a=i.fromString(O);return it(a)}async function U(t){let{KeyPair:r}=await import("@near-js/crypto"),i=r.fromString(t);return it(i)}function it(t){return new et(t)}async function y(t,r){let T=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((E)=>E.access_key.permission==="FullAccess");if(!T)throw new D.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:m}=await import("@near-js/crypto"),O=m.fromString(T.public_key);return{nonce:T.access_key.nonce||0,publicKey:O}}var ot,D,et;var Y=R(()=>{ot=require("@near-js/signers"),D=require("@swapkit/helpers");et=class et extends ot.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 J(t){return"contractId"in t&&"methodName"in t}function M(t){return"actions"in t}function W(t){return"newAccountId"in t}function Q(t){return"contractCode"in t}function Z(t){return"customEstimator"in t}function $(t){let r=0;for(let i of t)switch(i.enum){case"transfer":r+=Number(P.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(P.CONTRACT_CALL);break;case"createAccount":r+=Number(P.ACCOUNT_CREATION);break;case"deployContract":r+=Number(P.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(P.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(P.ACCESS_KEY_DELETION);break;case"stake":r+=Number(P.STAKE);break;default:r+=Number(P.CONTRACT_CALL)}return r.toString()}function z(t){if(t==="ft_transfer"||t==="ft_transfer_call")return P.TOKEN_TRANSFER;if(t==="storage_deposit")return P.STORAGE_DEPOSIT;return P.CONTRACT_CALL}function Ft(t){return(BigInt(t)*BigInt(1000000000000)).toString()}function bt(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var P;var X=R(()=>{P={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 H({account:t,contractId:r,viewMethods:i,changeMethods:T}){let{Contract:m}=await import("@near-js/accounts");return new m(t,r,{changeMethods:T,useLocalViewExecution:!0,viewMethods:i})}function Zt(){function t(){let r=Date.now(),i=V||r;return V=i,r>V?r:i+1}return It+t().toString(36)}function Tt(t){return async function(i,T=!0){let m=await mt.SwapKitApi.getChainBalance({address:i,chain:t,scamFilter:T}),{baseDecimal:O}=F.getChainConfig(t);return m.map(({identifier:a,value:E,decimal:u})=>{return new F.AssetValue({decimal:u||O,identifier:a,value:E})})}}var F,mt,It,V=0;var st=R(()=>{F=require("@swapkit/helpers"),mt=require("@swapkit/helpers/api"),It=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function Ut(t){let{P:r,match:i}=await import("ts-pattern"),{JsonRpcProvider:T}=await import("@near-js/providers"),m=await i(t).with({phrase:r.string},async(n)=>{return await B(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),O=await e.getRPCUrl(e.Chain.Near),a=new T({url:O});async function E(n){let{Account:o}=await import("@near-js/accounts"),s=n||await u();return new o(s,a,m)}async function u(){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");return await m.getAddress()}async function ft(n){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let o=await w({...n,sender:await u()});return h(o)}async function w(n){let{recipient:o,assetValue:s,memo:x,attachedDeposit:C,sender:f,functionCall:g}=n,A=await G();if(!A(o))throw new e.SwapKitError("toolbox_near_invalid_address",{recipient:o});if(!A(f))throw new e.SwapKitError("toolbox_near_invalid_address",{signerId:f});if(g)return b({...g,sender:f});if(!s.isGasAsset){let d=s.address;if(!d)throw new e.SwapKitError("toolbox_near_missing_contract_address");return b({args:{amount:s.getBaseValue("string"),memo:x||null,receiver_id:o},attachedDeposit:C||"1",contractId:d,gas:"250000000000000",methodName:"ft_transfer",sender:f})}let{publicKey:p,nonce:S}=await y(a,f),v=s.getBaseValue("bigint"),{actionCreators:c,createTransaction:Rt}=await import("@near-js/transactions"),{baseDecode:ut}=await import("@near-js/utils"),K=[c.transfer(v)];if(x&&C)K.push(c.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(C)));let pt=await a.block({finality:"final"}),Lt=ut(pt.header.hash);return Rt(f,p,o,S+1,K,Lt)}function gt(n){let o=n.encode();return Buffer.from(o).toString("base64")}async function b(n){let{sender:o}=n,{publicKey:s,nonce:x}=await y(a,o),{createTransaction:C,actionCreators:f}=await import("@near-js/transactions"),{baseDecode:g}=await import("@near-js/utils"),A=await a.block({finality:"final"}),p=g(A.header.hash),S=[f.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return C(o,s,n.contractId,x+1,S,p)}async function Pt(n){let{actionCreators:o}=await import("@near-js/transactions");return o.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function l(n){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let[o,s]=await m.signTransaction(n);return s}async function j(n){return(await a.sendTransaction(n)).transaction.hash}async function h(n){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");try{let o=await l(n);return await j(o)}catch{return m.signAndSendTransactions?.({transactions:[n]})}}async function at(n){if("assetValue"in n){let C=BigInt("115123062500")+BigInt("108059500000"),f=await xt(),g=C*BigInt(f.toString()),{baseDecimal:A}=e.getChainConfig(e.Chain.Near);return e.AssetValue.from({chain:e.Chain.Near,fromBaseDecimal:A,value:g.toString()})}let o=m?await E():void 0;return I(n,o)}async function xt(){try{return await a.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Ct(n,o,s){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let x=await E(),{formatNearAmount:C}=await import("@near-js/utils"),{PublicKey:f}=await import("@near-js/crypto"),g=C(s)||"0";return(await x.createAccount(n,f.fromString(o),BigInt(g))).transaction.hash}async function Et(n){try{if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let{actionCreators:o}=await import("@near-js/transactions"),{contractId:s,methodName:x,args:C,deposit:f}=n,g=await E(),A=await I({args:C||{},contractId:s,methodName:x}),p=o.functionCall(x,C||{},A.getBaseValue("bigint"),BigInt(f||"1"));return(await g.signAndSendTransaction({actions:[p],receiverId:s})).transaction_outcome.id}catch(o){throw new e.SwapKitError("toolbox_near_transfer_failed",{error:o})}}async function At(n){let o=await E();return H({account:o,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function Ot(n){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");if(n.actions.length===0)throw new e.SwapKitError("toolbox_near_empty_batch");return(await(await E()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function I(n,o){let{baseDecimal:s}=e.getChainConfig(e.Chain.Near),x=await i(n).when(q,()=>P.SIMPLE_TRANSFER).when(J,(g)=>z(g.methodName)).when(M,(g)=>$(g.actions)).when(W,()=>P.ACCOUNT_CREATION).when(Q,()=>P.CONTRACT_DEPLOYMENT).when(Z,(g)=>{if(!o)throw new e.SwapKitError("toolbox_near_no_account");return g.customEstimator(o)}).otherwise(()=>{throw new e.SwapKitError("toolbox_near_invalid_gas_params")}),f=BigInt(x)*BigInt(1000000000000);return e.AssetValue.from({chain:e.Chain.Near,fromBaseDecimal:s,value:f})}async function _t(){try{return(await a.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:j,callFunction:Et,createAction:Pt,createContract:At,createContractFunctionCall:b,createSubAccount:Ct,createTransaction:w,estimateGas:I,estimateTransactionFee:at,executeBatchTransaction:Ot,getAddress:u,getBalance:Tt(e.Chain.Near),getGasPrice:_t,getPublicKey:async()=>m?(await m.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>B(n),getSignerFromPrivateKey:U,provider:a,serializeTransaction:gt,signAndSendTransaction:h,signTransaction:l,transfer:ft,validateAddress:await G()}}var e;var k=R(()=>{st();Y();X();e=require("@swapkit/helpers")});var Nt=R(()=>{k()});var Yt={};yt(Yt,{tgasToGas:()=>Ft,isSimpleTransfer:()=>q,isCustomEstimator:()=>Z,isContractDeployment:()=>Q,isContractCall:()=>J,isBatchTransaction:()=>M,isAccountCreation:()=>W,getValidateNearAddress:()=>G,getNearToolbox:()=>Ut,getNearSignerFromPrivateKey:()=>U,getNearSignerFromPhrase:()=>B,getFullAccessPublicKey:()=>y,getContractMethodGas:()=>z,gasToTGas:()=>bt,estimateBatchGas:()=>$,createNearContract:()=>H,GAS_COSTS:()=>P});module.exports=Bt(Yt);var qt=R(()=>{Y();X();k();Nt()});qt();
|
|
1
|
+
var Bt=Object.create;var{getPrototypeOf:Ft,defineProperty:G,getOwnPropertyNames:it,getOwnPropertyDescriptor:bt}=Object,et=Object.prototype.hasOwnProperty;var P=(t,r,e)=>{e=t!=null?Bt(Ft(t)):{};let N=r||!t||!t.__esModule?G(e,"default",{value:t,enumerable:!0}):e;for(let m of it(t))if(!et.call(N,m))G(N,m,{get:()=>t[m],enumerable:!0});return N},ot=new WeakMap,It=(t)=>{var r=ot.get(t),e;if(r)return r;if(r=G({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")it(t).map((N)=>!et.call(r,N)&&G(r,N,{get:()=>t[N],enumerable:!(e=bt(t,N))||e.enumerable}));return ot.set(t,r),r};var Ut=(t,r)=>{for(var e in r)G(t,e,{get:r[e],enumerable:!0,configurable:!0,set:(N)=>r[e]=()=>N})};var L=(t,r)=>()=>(t&&(r=t(t=0)),r);async function B(){let{validateAccountId:t}=await import("near-sdk-js");return(r)=>{try{return t(r)}catch{let e=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&e.test(r)}}}async function F(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:e}=await import("@near-js/crypto"),N=t.index||0,m=t.derivationPath?y.derivationPathToString(t.derivationPath.slice(0,3)):`m/44'/397'/${N}'`,{secretKey:A}=r(t.phrase,m),s=e.fromString(A);return Nt(s)}async function J(t){let{KeyPair:r}=await import("@near-js/crypto"),e=r.fromString(t);return Nt(e)}function Nt(t){return new Tt(t)}async function b(t,r){let N=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((O)=>O.access_key.permission==="FullAccess");if(!N)throw new y.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:m}=await import("@near-js/crypto"),A=m.fromString(N.public_key);return{nonce:N.access_key.nonce||0,publicKey:A}}var mt,y,Tt;var M=L(()=>{mt=require("@near-js/signers"),y=require("@swapkit/helpers");Tt=class Tt extends mt.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 W(t){return"contractId"in t&&"methodName"in t}function Z(t){return"actions"in t}function $(t){return"newAccountId"in t}function p(t){return"contractCode"in t}function z(t){return"customEstimator"in t}function X(t){let r=0;for(let e of t)switch(e.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 H(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 qt(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var C;var k=L(()=>{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 w({account:t,contractId:r,viewMethods:e,changeMethods:N}){let{Contract:m}=await import("@near-js/accounts");return new m(t,r,{changeMethods:N,useLocalViewExecution:!0,viewMethods:e})}function Xt(){function t(){let r=Date.now(),e=V||r;return V=e,r>V?r:e+1}return Jt+t().toString(36)}function gt(t){return async function(e,N=!0){let m=await ft.SwapKitApi.getChainBalance({address:e,chain:t,scamFilter:N}),{baseDecimal:A}=I.getChainConfig(t);return m.map(({identifier:s,value:O,decimal:u})=>{return new I.AssetValue({decimal:u||A,identifier:s,value:O})})}}var I,ft,Jt,V=0;var Pt=L(()=>{I=require("@swapkit/helpers"),ft=require("@swapkit/helpers/api"),Jt=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function Mt(t){let{P:r,match:e}=await import("ts-pattern"),{JsonRpcProvider:N}=await import("@near-js/providers"),m=await e(t).with({phrase:r.string},async(n)=>{return await F(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),A=await i.getRPCUrl(i.Chain.Near),s=new N({url:A});async function O(n){let{Account:o}=await import("@near-js/accounts"),T=n||await u();return new o(T,s,m)}async function u(){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");return await m.getAddress()}async function Ct(n){return(await K({changeMethods:[],contractId:n.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:n.accountId})}async function Et(n){let T=[await Y({args:{account_id:n.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await Y({args:{amount:n.assetValue.getBaseValue("string"),memo:n.memo||null,receiver_id:n.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return c({actions:T,receiverId:n.contractId})}async function st(n){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");let{assetValue:o,recipient:T,memo:x}=n,E=await u();if(!o.isGasAsset&&o.address){if(!await Ct({accountId:T,contractId:o.address}))return Et({assetValue:o,contractId:o.address,memo:x,recipient:T})}let f=await v({...n,sender:E});return l(f)}async function v(n){let{recipient:o,assetValue:T,memo:x,attachedDeposit:E,sender:f,functionCall:g}=n,_=await B();if(!_(o))throw new i.SwapKitError("toolbox_near_invalid_address",{recipient:o});if(!_(f))throw new i.SwapKitError("toolbox_near_invalid_address",{signerId:f});if(g)return U({...g,sender:f});if(!T.isGasAsset){let rt=T.address;if(!rt)throw new i.SwapKitError("toolbox_near_missing_contract_address");return U({args:{amount:T.getBaseValue("string"),memo:x||null,receiver_id:o},attachedDeposit:E||"1",contractId:rt,gas:"250000000000000",methodName:"ft_transfer",sender:f})}let{publicKey:D,nonce:S}=await b(s,f),d=T.getBaseValue("bigint"),{actionCreators:tt,createTransaction:Dt}=await import("@near-js/transactions"),{baseDecode:Gt}=await import("@near-js/utils"),nt=[tt.transfer(d)];if(x&&E)nt.push(tt.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(E)));let St=await s.block({finality:"final"}),yt=Gt(St.header.hash);return Dt(f,D,o,S+1,nt,yt)}function Ot(n){let o=n.encode();return Buffer.from(o).toString("base64")}async function U(n){let{sender:o}=n,{publicKey:T,nonce:x}=await b(s,o),{createTransaction:E,actionCreators:f}=await import("@near-js/transactions"),{baseDecode:g}=await import("@near-js/utils"),_=await s.block({finality:"final"}),D=g(_.header.hash),S=[f.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return E(o,T,n.contractId,x+1,S,D)}async function Y(n){let{actionCreators:o}=await import("@near-js/transactions");return o.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function a(n){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");let[o,T]=await m.signTransaction(n);return T}async function h(n){return(await s.sendTransaction(n)).transaction.hash}async function l(n){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");try{let o=await a(n);return await h(o)}catch{return m.signAndSendTransactions?.({transactions:[n]})}}async function _t(n){if("assetValue"in n){let E=BigInt("115123062500")+BigInt("108059500000"),f=await At(),g=E*BigInt(f.toString()),{baseDecimal:_}=i.getChainConfig(i.Chain.Near);return i.AssetValue.from({chain:i.Chain.Near,fromBaseDecimal:_,value:g.toString()})}let o=m?await O():void 0;return q(n,o)}async function At(){try{return await s.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Rt(n,o,T){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");let x=await O(),{formatNearAmount:E}=await import("@near-js/utils"),{PublicKey:f}=await import("@near-js/crypto"),g=E(T)||"0";return(await x.createAccount(n,f.fromString(o),BigInt(g))).transaction.hash}async function Lt(n){try{if(!m)throw new i.SwapKitError("toolbox_near_no_signer");let{actionCreators:o}=await import("@near-js/transactions"),{contractId:T,methodName:x,args:E,deposit:f}=n,g=await O(),_=await q({args:E||{},contractId:T,methodName:x}),D=o.functionCall(x,E||{},_.getBaseValue("bigint"),BigInt(f||"1"));return(await g.signAndSendTransaction({actions:[D],receiverId:T})).transaction_outcome.id}catch(o){throw new i.SwapKitError("toolbox_near_transfer_failed",{error:o})}}async function K(n){let o=await O();return w({account:o,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function c(n){if(!m)throw new i.SwapKitError("toolbox_near_no_signer");if(n.actions.length===0)throw new i.SwapKitError("toolbox_near_empty_batch");return(await(await O()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function q(n,o){let{baseDecimal:T}=i.getChainConfig(i.Chain.Near),x=await e(n).when(Q,()=>C.SIMPLE_TRANSFER).when(W,(g)=>H(g.methodName)).when(Z,(g)=>X(g.actions)).when($,()=>C.ACCOUNT_CREATION).when(p,()=>C.CONTRACT_DEPLOYMENT).when(z,(g)=>{if(!o)throw new i.SwapKitError("toolbox_near_no_account");return g.customEstimator(o)}).otherwise(()=>{throw new i.SwapKitError("toolbox_near_invalid_gas_params")}),f=BigInt(x)*BigInt(1000000000000);return i.AssetValue.from({chain:i.Chain.Near,fromBaseDecimal:T,value:f})}async function ut(){try{return(await s.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:h,callFunction:Lt,createAction:Y,createContract:K,createContractFunctionCall:U,createSubAccount:Rt,createTransaction:v,estimateGas:q,estimateTransactionFee:_t,executeBatchTransaction:c,getAddress:u,getBalance:gt(i.Chain.Near),getGasPrice:ut,getPublicKey:async()=>m?(await m.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>F(n),getSignerFromPrivateKey:J,provider:s,serializeTransaction:Ot,signAndSendTransaction:l,signTransaction:a,transfer:st,validateAddress:await B()}}var i;var j=L(()=>{Pt();M();k();i=require("@swapkit/helpers")});var xt=L(()=>{j()});var Qt={};Ut(Qt,{tgasToGas:()=>Yt,isSimpleTransfer:()=>Q,isCustomEstimator:()=>z,isContractDeployment:()=>p,isContractCall:()=>W,isBatchTransaction:()=>Z,isAccountCreation:()=>$,getValidateNearAddress:()=>B,getNearToolbox:()=>Mt,getNearSignerFromPrivateKey:()=>J,getNearSignerFromPhrase:()=>F,getFullAccessPublicKey:()=>b,getContractMethodGas:()=>H,gasToTGas:()=>qt,estimateBatchGas:()=>X,createNearContract:()=>w,GAS_COSTS:()=>C});module.exports=It(Qt);var Wt=L(()=>{M();k();j();xt()});Wt();
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=FD82DADC3A59814E64756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
"import type { Account } from \"@near-js/accounts\";\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-js/accounts\";\n\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\nexport interface StorageBalance {\n total: string;\n available: string;\n}\n\nexport interface StorageBalanceBounds {\n min: string;\n max?: string;\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: Contract;\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}) {\n const { Contract } = await import(\"@near-js/accounts\");\n\n return new Contract(account, contractId, { changeMethods, useLocalViewExecution: true, viewMethods }) as T;\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 type { Account, Contract } from \"@near-js/accounts\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport { AssetValue, Chain, getChainConfig, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\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 { 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} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams) {\n const { P, match } = await import(\"ts-pattern\");\n const { JsonRpcProvider } = await import(\"@near-js/providers\");\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 JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"@near-js/accounts\");\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 signAndSendTransaction(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 { actionCreators, createTransaction } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n\n const txActions = [actionCreators.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(actionCreators.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n return createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n function serializeTransaction(transaction: Transaction) {\n const serializedTx = transaction.encode();\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 { createTransaction, actionCreators } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n const actions = [\n actionCreators.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 = createTransaction(accountId, publicKey, params.contractId, nonce + 1, actions, blockHash);\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const action = actionCreators.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 signAndSendTransaction(transaction: Transaction) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n try {\n const signedTx = await signTransaction(transaction);\n const txHash = await broadcastTransaction(signedTx);\n return txHash;\n } catch {\n return signer.signAndSendTransactions?.({ transactions: [transaction] });\n }\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 { formatNearAmount } = await import(\"@near-js/utils\");\n const { PublicKey } = await import(\"@near-js/crypto\");\n\n const balanceInYocto = formatNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(subAccountId, PublicKey.fromString(publicKey), BigInt(balanceInYocto));\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 { actionCreators } = await import(\"@near-js/transactions\");\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 = actionCreators.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 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 {\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 provider,\n serializeTransaction,\n signAndSendTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
9
|
+
"import type { Account, Contract } from \"@near-js/accounts\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport { AssetValue, Chain, getChainConfig, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\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 { 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 { NEP141StorageContract } from \"./types/nep141\";\nimport type {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams) {\n const { P, match } = await import(\"ts-pattern\");\n const { JsonRpcProvider } = await import(\"@near-js/providers\");\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 JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"@near-js/accounts\");\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 checkStorageBalance(params: { contractId: string; accountId: string }) {\n const contract = await createContract<NEP141StorageContract>({\n changeMethods: [],\n contractId: params.contractId,\n viewMethods: [\"storage_balance_of\"],\n });\n\n return contract.storage_balance_of({ account_id: params.accountId });\n }\n\n async function transferTokenWithStorageDeposit(params: {\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n contractId: string;\n }) {\n const storageDeposit = \"1250000000000000000000\"; // 0.00125 NEAR default\n\n const actions = [\n await createAction({\n args: { account_id: params.recipient },\n attachedDeposit: storageDeposit,\n gas: \"150000000000000\", // 150 TGas for storage_deposit\n methodName: \"storage_deposit\",\n }),\n await createAction({\n args: {\n amount: params.assetValue.getBaseValue(\"string\"),\n memo: params.memo || null,\n receiver_id: params.recipient,\n },\n attachedDeposit: \"1\",\n gas: \"150000000000000\", // 150 TGas for ft_transfer\n methodName: \"ft_transfer\",\n }),\n ];\n\n return executeBatchTransaction({ actions, receiverId: params.contractId });\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { assetValue, recipient, memo } = params;\n const sender = await getAddress();\n\n // Handle NEP-141 token transfers - check if recipient needs storage\n if (!assetValue.isGasAsset && assetValue.address) {\n const storageBalance = await checkStorageBalance({ accountId: recipient, contractId: assetValue.address });\n\n if (!storageBalance) {\n return transferTokenWithStorageDeposit({ assetValue, contractId: assetValue.address, memo, recipient });\n }\n }\n\n // Standard transfer (native NEAR or token with registered storage)\n const transaction = await createTransaction({ ...params, sender });\n return signAndSendTransaction(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 { actionCreators, createTransaction } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n\n const txActions = [actionCreators.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(actionCreators.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n return createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n function serializeTransaction(transaction: Transaction) {\n const serializedTx = transaction.encode();\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 { createTransaction, actionCreators } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n const actions = [\n actionCreators.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 = createTransaction(accountId, publicKey, params.contractId, nonce + 1, actions, blockHash);\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const action = actionCreators.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 signAndSendTransaction(transaction: Transaction) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n try {\n const signedTx = await signTransaction(transaction);\n const txHash = await broadcastTransaction(signedTx);\n return txHash;\n } catch {\n return signer.signAndSendTransactions?.({ transactions: [transaction] });\n }\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 { formatNearAmount } = await import(\"@near-js/utils\");\n const { PublicKey } = await import(\"@near-js/crypto\");\n\n const balanceInYocto = formatNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(subAccountId, PublicKey.fromString(publicKey), BigInt(balanceInYocto));\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 { actionCreators } = await import(\"@near-js/transactions\");\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 = actionCreators.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 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 {\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 provider,\n serializeTransaction,\n signAndSendTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
10
10
|
"import type { Signer } from \"@near-js/signers\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\n\nexport interface NearSigner extends Signer, Omit<ChainSigner<Transaction, SignedTransaction>, \"signTransaction\"> {\n signAndSendTransactions?(params: { transactions: Transaction[] }): Promise<string>;\n}\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 StorageBalance,\n StorageBalanceBounds,\n TokenTransferParams,\n} from \"./types/nep141\";\n"
|
|
12
12
|
],
|
|
13
|
-
"mappings": "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
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "FD82DADC3A59814E64756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|
package/dist/src/near/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var ut=Object.create;var{getPrototypeOf:pt,defineProperty:I,getOwnPropertyNames:Lt}=Object;var St=Object.prototype.hasOwnProperty;var s=(t,r,e)=>{e=t!=null?ut(pt(t)):{};let T=r||!t||!t.__esModule?I(e,"default",{value:t,enumerable:!0}):e;for(let i of Lt(t))if(!St.call(T,i))I(T,i,{get:()=>t[i],enumerable:!0});return T};var Dt=(t,r)=>{for(var e in r)I(t,e,{get:r[e],enumerable:!0,configurable:!0,set:(T)=>r[e]=()=>T})};var u=(t,r)=>()=>(t&&(r=t(t=0)),r);var N=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(r,e)=>(typeof require<"u"?require:r)[e]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{KeyPairSigner as Gt}from"@near-js/signers";import{derivationPathToString as Bt,SwapKitError as yt}from"@swapkit/helpers";async function G(){let{validateAccountId:t}=await import("near-sdk-js");return(r)=>{try{return t(r)}catch{let e=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&e.test(r)}}}async function B(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:e}=await import("@near-js/crypto"),T=t.index||0,i=t.derivationPath?Bt(t.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{secretKey:_}=r(t.phrase,i),a=e.fromString(_);return nt(a)}async function U(t){let{KeyPair:r}=await import("@near-js/crypto"),e=r.fromString(t);return nt(e)}function nt(t){return new tt(t)}async function y(t,r){let T=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((A)=>A.access_key.permission==="FullAccess");if(!T)throw new yt("toolbox_near_no_public_key_found");let{PublicKey:i}=await import("@near-js/crypto"),_=i.fromString(T.public_key);return{nonce:T.access_key.nonce||0,publicKey:_}}var tt;var Y=u(()=>{tt=class tt extends Gt{#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 J(t){return"contractId"in t&&"methodName"in t}function M(t){return"actions"in t}function W(t){return"newAccountId"in t}function Q(t){return"contractCode"in t}function Z(t){return"customEstimator"in t}function $(t){let r=0;for(let e of t)switch(e.enum){case"transfer":r+=Number(P.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(P.CONTRACT_CALL);break;case"createAccount":r+=Number(P.ACCOUNT_CREATION);break;case"deployContract":r+=Number(P.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(P.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(P.ACCESS_KEY_DELETION);break;case"stake":r+=Number(P.STAKE);break;default:r+=Number(P.CONTRACT_CALL)}return r.toString()}function z(t){if(t==="ft_transfer"||t==="ft_transfer_call")return P.TOKEN_TRANSFER;if(t==="storage_deposit")return P.STORAGE_DEPOSIT;return P.CONTRACT_CALL}function Ft(t){return(BigInt(t)*BigInt(1000000000000)).toString()}function bt(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var P;var X=u(()=>{P={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 H({account:t,contractId:r,viewMethods:e,changeMethods:T}){let{Contract:i}=await import("@near-js/accounts");return new i(t,r,{changeMethods:T,useLocalViewExecution:!0,viewMethods:e})}import{AssetValue as It,getChainConfig as Ut}from"@swapkit/helpers";import{SwapKitApi as Yt}from"@swapkit/helpers/api";function lt(){function t(){let r=Date.now(),e=V||r;return V=e,r>V?r:e+1}return qt+t().toString(36)}function rt(t){return async function(e,T=!0){let i=await Yt.getChainBalance({address:e,chain:t,scamFilter:T}),{baseDecimal:_}=Ut(t);return i.map(({identifier:a,value:A,decimal:L})=>{return new It({decimal:L||_,identifier:a,value:A})})}}var qt,V=0;var ot=u(()=>{qt=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{AssetValue as et,Chain as p,getChainConfig as it,getRPCUrl as Jt,SwapKitError as C}from"@swapkit/helpers";async function Mt(t){let{P:r,match:e}=await import("ts-pattern"),{JsonRpcProvider:T}=await import("@near-js/providers"),i=await e(t).with({phrase:r.string},async(n)=>{return await B(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),_=await Jt(p.Near),a=new T({url:_});async function A(n){let{Account:o}=await import("@near-js/accounts"),m=n||await L();return new o(m,a,i)}async function L(){if(!i)throw new C("toolbox_near_no_signer");return await i.getAddress()}async function Tt(n){if(!i)throw new C("toolbox_near_no_signer");let o=await w({...n,sender:await L()});return h(o)}async function w(n){let{recipient:o,assetValue:m,memo:x,attachedDeposit:E,sender:f,functionCall:g}=n,O=await G();if(!O(o))throw new C("toolbox_near_invalid_address",{recipient:o});if(!O(f))throw new C("toolbox_near_invalid_address",{signerId:f});if(g)return F({...g,sender:f});if(!m.isGasAsset){let d=m.address;if(!d)throw new C("toolbox_near_missing_contract_address");return F({args:{amount:m.getBaseValue("string"),memo:x||null,receiver_id:o},attachedDeposit:E||"1",contractId:d,gas:"250000000000000",methodName:"ft_transfer",sender:f})}let{publicKey:S,nonce:D}=await y(a,f),v=m.getBaseValue("bigint"),{actionCreators:c,createTransaction:At}=await import("@near-js/transactions"),{baseDecode:Ot}=await import("@near-js/utils"),K=[c.transfer(v)];if(x&&E)K.push(c.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(E)));let _t=await a.block({finality:"final"}),Rt=Ot(_t.header.hash);return At(f,S,o,D+1,K,Rt)}function st(n){let o=n.encode();return Buffer.from(o).toString("base64")}async function F(n){let{sender:o}=n,{publicKey:m,nonce:x}=await y(a,o),{createTransaction:E,actionCreators:f}=await import("@near-js/transactions"),{baseDecode:g}=await import("@near-js/utils"),O=await a.block({finality:"final"}),S=g(O.header.hash),D=[f.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return E(o,m,n.contractId,x+1,D,S)}async function Nt(n){let{actionCreators:o}=await import("@near-js/transactions");return o.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function l(n){if(!i)throw new C("toolbox_near_no_signer");let[o,m]=await i.signTransaction(n);return m}async function j(n){return(await a.sendTransaction(n)).transaction.hash}async function h(n){if(!i)throw new C("toolbox_near_no_signer");try{let o=await l(n);return await j(o)}catch{return i.signAndSendTransactions?.({transactions:[n]})}}async function ft(n){if("assetValue"in n){let E=BigInt("115123062500")+BigInt("108059500000"),f=await gt(),g=E*BigInt(f.toString()),{baseDecimal:O}=it(p.Near);return et.from({chain:p.Near,fromBaseDecimal:O,value:g.toString()})}let o=i?await A():void 0;return b(n,o)}async function gt(){try{return await a.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Pt(n,o,m){if(!i)throw new C("toolbox_near_no_signer");let x=await A(),{formatNearAmount:E}=await import("@near-js/utils"),{PublicKey:f}=await import("@near-js/crypto"),g=E(m)||"0";return(await x.createAccount(n,f.fromString(o),BigInt(g))).transaction.hash}async function at(n){try{if(!i)throw new C("toolbox_near_no_signer");let{actionCreators:o}=await import("@near-js/transactions"),{contractId:m,methodName:x,args:E,deposit:f}=n,g=await A(),O=await b({args:E||{},contractId:m,methodName:x}),S=o.functionCall(x,E||{},O.getBaseValue("bigint"),BigInt(f||"1"));return(await g.signAndSendTransaction({actions:[S],receiverId:m})).transaction_outcome.id}catch(o){throw new C("toolbox_near_transfer_failed",{error:o})}}async function xt(n){let o=await A();return H({account:o,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function Ct(n){if(!i)throw new C("toolbox_near_no_signer");if(n.actions.length===0)throw new C("toolbox_near_empty_batch");return(await(await A()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function b(n,o){let{baseDecimal:m}=it(p.Near),x=await e(n).when(q,()=>P.SIMPLE_TRANSFER).when(J,(g)=>z(g.methodName)).when(M,(g)=>$(g.actions)).when(W,()=>P.ACCOUNT_CREATION).when(Q,()=>P.CONTRACT_DEPLOYMENT).when(Z,(g)=>{if(!o)throw new C("toolbox_near_no_account");return g.customEstimator(o)}).otherwise(()=>{throw new C("toolbox_near_invalid_gas_params")}),f=BigInt(x)*BigInt(1000000000000);return et.from({chain:p.Near,fromBaseDecimal:m,value:f})}async function Et(){try{return(await a.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:j,callFunction:at,createAction:Nt,createContract:xt,createContractFunctionCall:F,createSubAccount:Pt,createTransaction:w,estimateGas:b,estimateTransactionFee:ft,executeBatchTransaction:Ct,getAddress:L,getBalance:rt(p.Near),getGasPrice:Et,getPublicKey:async()=>i?(await i.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>B(n),getSignerFromPrivateKey:U,provider:a,serializeTransaction:st,signAndSendTransaction:h,signTransaction:l,transfer:Tt,validateAddress:await G()}}var k=u(()=>{ot();Y();X()});var mt=u(()=>{k()});var Wt={};Dt(Wt,{tgasToGas:()=>Ft,isSimpleTransfer:()=>q,isCustomEstimator:()=>Z,isContractDeployment:()=>Q,isContractCall:()=>J,isBatchTransaction:()=>M,isAccountCreation:()=>W,getValidateNearAddress:()=>G,getNearToolbox:()=>Mt,getNearSignerFromPrivateKey:()=>U,getNearSignerFromPhrase:()=>B,getFullAccessPublicKey:()=>y,getContractMethodGas:()=>z,gasToTGas:()=>bt,estimateBatchGas:()=>$,createNearContract:()=>H,GAS_COSTS:()=>P});var Qt=u(()=>{Y();X();k();mt()});Qt();export{Ft as tgasToGas,q as isSimpleTransfer,Z as isCustomEstimator,Q as isContractDeployment,J as isContractCall,M as isBatchTransaction,W as isAccountCreation,G as getValidateNearAddress,Mt as getNearToolbox,U as getNearSignerFromPrivateKey,B as getNearSignerFromPhrase,y as getFullAccessPublicKey,z as getContractMethodGas,bt as gasToTGas,$ as estimateBatchGas,H as createNearContract,P as GAS_COSTS};
|
|
1
|
+
var Gt=Object.create;var{getPrototypeOf:St,defineProperty:q,getOwnPropertyNames:yt}=Object;var Bt=Object.prototype.hasOwnProperty;var g=(t,r,i)=>{i=t!=null?Gt(St(t)):{};let N=r||!t||!t.__esModule?q(i,"default",{value:t,enumerable:!0}):i;for(let e of yt(t))if(!Bt.call(N,e))q(N,e,{get:()=>t[e],enumerable:!0});return N};var Ft=(t,r)=>{for(var i in r)q(t,i,{get:r[i],enumerable:!0,configurable:!0,set:(N)=>r[i]=()=>N})};var u=(t,r)=>()=>(t&&(r=t(t=0)),r);var P=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(r,i)=>(typeof require<"u"?require:r)[i]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{KeyPairSigner as bt}from"@near-js/signers";import{derivationPathToString as It,SwapKitError as Ut}from"@swapkit/helpers";async function B(){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 F(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:i}=await import("@near-js/crypto"),N=t.index||0,e=t.derivationPath?It(t.derivationPath.slice(0,3)):`m/44'/397'/${N}'`,{secretKey:R}=r(t.phrase,e),s=i.fromString(R);return it(s)}async function J(t){let{KeyPair:r}=await import("@near-js/crypto"),i=r.fromString(t);return it(i)}function it(t){return new ot(t)}async function b(t,r){let N=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((_)=>_.access_key.permission==="FullAccess");if(!N)throw new Ut("toolbox_near_no_public_key_found");let{PublicKey:e}=await import("@near-js/crypto"),R=e.fromString(N.public_key);return{nonce:N.access_key.nonce||0,publicKey:R}}var ot;var M=u(()=>{ot=class ot extends bt{#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 W(t){return"contractId"in t&&"methodName"in t}function Z(t){return"actions"in t}function $(t){return"newAccountId"in t}function p(t){return"contractCode"in t}function z(t){return"customEstimator"in t}function X(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 H(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 qt(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var C;var k=u(()=>{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 w({account:t,contractId:r,viewMethods:i,changeMethods:N}){let{Contract:e}=await import("@near-js/accounts");return new e(t,r,{changeMethods:N,useLocalViewExecution:!0,viewMethods:i})}import{AssetValue as Jt,getChainConfig as Mt}from"@swapkit/helpers";import{SwapKitApi as Qt}from"@swapkit/helpers/api";function ht(){function t(){let r=Date.now(),i=V||r;return V=i,r>V?r:i+1}return Wt+t().toString(36)}function et(t){return async function(i,N=!0){let e=await Qt.getChainBalance({address:i,chain:t,scamFilter:N}),{baseDecimal:R}=Mt(t);return e.map(({identifier:s,value:_,decimal:G})=>{return new Jt({decimal:G||R,identifier:s,value:_})})}}var Wt,V=0;var mt=u(()=>{Wt=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{AssetValue as Tt,Chain as D,getChainConfig as Nt,getRPCUrl as Zt,SwapKitError as O}from"@swapkit/helpers";async function $t(t){let{P:r,match:i}=await import("ts-pattern"),{JsonRpcProvider:N}=await import("@near-js/providers"),e=await i(t).with({phrase:r.string},async(n)=>{return await F(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),R=await Zt(D.Near),s=new N({url:R});async function _(n){let{Account:o}=await import("@near-js/accounts"),m=n||await G();return new o(m,s,e)}async function G(){if(!e)throw new O("toolbox_near_no_signer");return await e.getAddress()}async function gt(n){return(await K({changeMethods:[],contractId:n.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:n.accountId})}async function Pt(n){let m=[await U({args:{account_id:n.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await U({args:{amount:n.assetValue.getBaseValue("string"),memo:n.memo||null,receiver_id:n.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return c({actions:m,receiverId:n.contractId})}async function xt(n){if(!e)throw new O("toolbox_near_no_signer");let{assetValue:o,recipient:m,memo:x}=n,E=await G();if(!o.isGasAsset&&o.address){if(!await gt({accountId:m,contractId:o.address}))return Pt({assetValue:o,contractId:o.address,memo:x,recipient:m})}let T=await v({...n,sender:E});return l(T)}async function v(n){let{recipient:o,assetValue:m,memo:x,attachedDeposit:E,sender:T,functionCall:f}=n,A=await B();if(!A(o))throw new O("toolbox_near_invalid_address",{recipient:o});if(!A(T))throw new O("toolbox_near_invalid_address",{signerId:T});if(f)return I({...f,sender:T});if(!m.isGasAsset){let rt=m.address;if(!rt)throw new O("toolbox_near_missing_contract_address");return I({args:{amount:m.getBaseValue("string"),memo:x||null,receiver_id:o},attachedDeposit:E||"1",contractId:rt,gas:"250000000000000",methodName:"ft_transfer",sender:T})}let{publicKey:S,nonce:y}=await b(s,T),d=m.getBaseValue("bigint"),{actionCreators:tt,createTransaction:Rt}=await import("@near-js/transactions"),{baseDecode:Lt}=await import("@near-js/utils"),nt=[tt.transfer(d)];if(x&&E)nt.push(tt.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(E)));let ut=await s.block({finality:"final"}),Dt=Lt(ut.header.hash);return Rt(T,S,o,y+1,nt,Dt)}function Ct(n){let o=n.encode();return Buffer.from(o).toString("base64")}async function I(n){let{sender:o}=n,{publicKey:m,nonce:x}=await b(s,o),{createTransaction:E,actionCreators:T}=await import("@near-js/transactions"),{baseDecode:f}=await import("@near-js/utils"),A=await s.block({finality:"final"}),S=f(A.header.hash),y=[T.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return E(o,m,n.contractId,x+1,y,S)}async function U(n){let{actionCreators:o}=await import("@near-js/transactions");return o.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function a(n){if(!e)throw new O("toolbox_near_no_signer");let[o,m]=await e.signTransaction(n);return m}async function h(n){return(await s.sendTransaction(n)).transaction.hash}async function l(n){if(!e)throw new O("toolbox_near_no_signer");try{let o=await a(n);return await h(o)}catch{return e.signAndSendTransactions?.({transactions:[n]})}}async function Et(n){if("assetValue"in n){let E=BigInt("115123062500")+BigInt("108059500000"),T=await st(),f=E*BigInt(T.toString()),{baseDecimal:A}=Nt(D.Near);return Tt.from({chain:D.Near,fromBaseDecimal:A,value:f.toString()})}let o=e?await _():void 0;return Y(n,o)}async function st(){try{return await s.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Ot(n,o,m){if(!e)throw new O("toolbox_near_no_signer");let x=await _(),{formatNearAmount:E}=await import("@near-js/utils"),{PublicKey:T}=await import("@near-js/crypto"),f=E(m)||"0";return(await x.createAccount(n,T.fromString(o),BigInt(f))).transaction.hash}async function _t(n){try{if(!e)throw new O("toolbox_near_no_signer");let{actionCreators:o}=await import("@near-js/transactions"),{contractId:m,methodName:x,args:E,deposit:T}=n,f=await _(),A=await Y({args:E||{},contractId:m,methodName:x}),S=o.functionCall(x,E||{},A.getBaseValue("bigint"),BigInt(T||"1"));return(await f.signAndSendTransaction({actions:[S],receiverId:m})).transaction_outcome.id}catch(o){throw new O("toolbox_near_transfer_failed",{error:o})}}async function K(n){let o=await _();return w({account:o,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function c(n){if(!e)throw new O("toolbox_near_no_signer");if(n.actions.length===0)throw new O("toolbox_near_empty_batch");return(await(await _()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function Y(n,o){let{baseDecimal:m}=Nt(D.Near),x=await i(n).when(Q,()=>C.SIMPLE_TRANSFER).when(W,(f)=>H(f.methodName)).when(Z,(f)=>X(f.actions)).when($,()=>C.ACCOUNT_CREATION).when(p,()=>C.CONTRACT_DEPLOYMENT).when(z,(f)=>{if(!o)throw new O("toolbox_near_no_account");return f.customEstimator(o)}).otherwise(()=>{throw new O("toolbox_near_invalid_gas_params")}),T=BigInt(x)*BigInt(1000000000000);return Tt.from({chain:D.Near,fromBaseDecimal:m,value:T})}async function At(){try{return(await s.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:h,callFunction:_t,createAction:U,createContract:K,createContractFunctionCall:I,createSubAccount:Ot,createTransaction:v,estimateGas:Y,estimateTransactionFee:Et,executeBatchTransaction:c,getAddress:G,getBalance:et(D.Near),getGasPrice:At,getPublicKey:async()=>e?(await e.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>F(n),getSignerFromPrivateKey:J,provider:s,serializeTransaction:Ct,signAndSendTransaction:l,signTransaction:a,transfer:xt,validateAddress:await B()}}var j=u(()=>{mt();M();k()});var ft=u(()=>{j()});var pt={};Ft(pt,{tgasToGas:()=>Yt,isSimpleTransfer:()=>Q,isCustomEstimator:()=>z,isContractDeployment:()=>p,isContractCall:()=>W,isBatchTransaction:()=>Z,isAccountCreation:()=>$,getValidateNearAddress:()=>B,getNearToolbox:()=>$t,getNearSignerFromPrivateKey:()=>J,getNearSignerFromPhrase:()=>F,getFullAccessPublicKey:()=>b,getContractMethodGas:()=>H,gasToTGas:()=>qt,estimateBatchGas:()=>X,createNearContract:()=>w,GAS_COSTS:()=>C});var zt=u(()=>{M();k();j();ft()});zt();export{Yt as tgasToGas,Q as isSimpleTransfer,z as isCustomEstimator,p as isContractDeployment,W as isContractCall,Z as isBatchTransaction,$ as isAccountCreation,B as getValidateNearAddress,$t as getNearToolbox,J as getNearSignerFromPrivateKey,F as getNearSignerFromPhrase,b as getFullAccessPublicKey,H as getContractMethodGas,qt as gasToTGas,X as estimateBatchGas,w as createNearContract,C as GAS_COSTS};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=840125FAC605490B64756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
"import type { Account } from \"@near-js/accounts\";\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-js/accounts\";\n\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\nexport interface StorageBalance {\n total: string;\n available: string;\n}\n\nexport interface StorageBalanceBounds {\n min: string;\n max?: string;\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: Contract;\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}) {\n const { Contract } = await import(\"@near-js/accounts\");\n\n return new Contract(account, contractId, { changeMethods, useLocalViewExecution: true, viewMethods }) as T;\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 type { Account, Contract } from \"@near-js/accounts\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport { AssetValue, Chain, getChainConfig, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\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 { 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} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams) {\n const { P, match } = await import(\"ts-pattern\");\n const { JsonRpcProvider } = await import(\"@near-js/providers\");\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 JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"@near-js/accounts\");\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 signAndSendTransaction(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 { actionCreators, createTransaction } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n\n const txActions = [actionCreators.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(actionCreators.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n return createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n function serializeTransaction(transaction: Transaction) {\n const serializedTx = transaction.encode();\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 { createTransaction, actionCreators } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n const actions = [\n actionCreators.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 = createTransaction(accountId, publicKey, params.contractId, nonce + 1, actions, blockHash);\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const action = actionCreators.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 signAndSendTransaction(transaction: Transaction) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n try {\n const signedTx = await signTransaction(transaction);\n const txHash = await broadcastTransaction(signedTx);\n return txHash;\n } catch {\n return signer.signAndSendTransactions?.({ transactions: [transaction] });\n }\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 { formatNearAmount } = await import(\"@near-js/utils\");\n const { PublicKey } = await import(\"@near-js/crypto\");\n\n const balanceInYocto = formatNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(subAccountId, PublicKey.fromString(publicKey), BigInt(balanceInYocto));\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 { actionCreators } = await import(\"@near-js/transactions\");\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 = actionCreators.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 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 {\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 provider,\n serializeTransaction,\n signAndSendTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
9
|
+
"import type { Account, Contract } from \"@near-js/accounts\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport { AssetValue, Chain, getChainConfig, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\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 { 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 { NEP141StorageContract } from \"./types/nep141\";\nimport type {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams) {\n const { P, match } = await import(\"ts-pattern\");\n const { JsonRpcProvider } = await import(\"@near-js/providers\");\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 JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"@near-js/accounts\");\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 checkStorageBalance(params: { contractId: string; accountId: string }) {\n const contract = await createContract<NEP141StorageContract>({\n changeMethods: [],\n contractId: params.contractId,\n viewMethods: [\"storage_balance_of\"],\n });\n\n return contract.storage_balance_of({ account_id: params.accountId });\n }\n\n async function transferTokenWithStorageDeposit(params: {\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n contractId: string;\n }) {\n const storageDeposit = \"1250000000000000000000\"; // 0.00125 NEAR default\n\n const actions = [\n await createAction({\n args: { account_id: params.recipient },\n attachedDeposit: storageDeposit,\n gas: \"150000000000000\", // 150 TGas for storage_deposit\n methodName: \"storage_deposit\",\n }),\n await createAction({\n args: {\n amount: params.assetValue.getBaseValue(\"string\"),\n memo: params.memo || null,\n receiver_id: params.recipient,\n },\n attachedDeposit: \"1\",\n gas: \"150000000000000\", // 150 TGas for ft_transfer\n methodName: \"ft_transfer\",\n }),\n ];\n\n return executeBatchTransaction({ actions, receiverId: params.contractId });\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { assetValue, recipient, memo } = params;\n const sender = await getAddress();\n\n // Handle NEP-141 token transfers - check if recipient needs storage\n if (!assetValue.isGasAsset && assetValue.address) {\n const storageBalance = await checkStorageBalance({ accountId: recipient, contractId: assetValue.address });\n\n if (!storageBalance) {\n return transferTokenWithStorageDeposit({ assetValue, contractId: assetValue.address, memo, recipient });\n }\n }\n\n // Standard transfer (native NEAR or token with registered storage)\n const transaction = await createTransaction({ ...params, sender });\n return signAndSendTransaction(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 { actionCreators, createTransaction } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n\n const txActions = [actionCreators.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(actionCreators.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n return createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n function serializeTransaction(transaction: Transaction) {\n const serializedTx = transaction.encode();\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 { createTransaction, actionCreators } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n const actions = [\n actionCreators.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 = createTransaction(accountId, publicKey, params.contractId, nonce + 1, actions, blockHash);\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const action = actionCreators.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 signAndSendTransaction(transaction: Transaction) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n try {\n const signedTx = await signTransaction(transaction);\n const txHash = await broadcastTransaction(signedTx);\n return txHash;\n } catch {\n return signer.signAndSendTransactions?.({ transactions: [transaction] });\n }\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 { formatNearAmount } = await import(\"@near-js/utils\");\n const { PublicKey } = await import(\"@near-js/crypto\");\n\n const balanceInYocto = formatNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(subAccountId, PublicKey.fromString(publicKey), BigInt(balanceInYocto));\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 { actionCreators } = await import(\"@near-js/transactions\");\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 = actionCreators.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 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 {\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 provider,\n serializeTransaction,\n signAndSendTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
10
10
|
"import type { Signer } from \"@near-js/signers\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\n\nexport interface NearSigner extends Signer, Omit<ChainSigner<Transaction, SignedTransaction>, \"signTransaction\"> {\n signAndSendTransactions?(params: { transactions: Transaction[] }): Promise<string>;\n}\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 StorageBalance,\n StorageBalanceBounds,\n TokenTransferParams,\n} from \"./types/nep141\";\n"
|
|
12
12
|
],
|
|
13
|
-
"mappings": "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
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "840125FAC605490B64756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var B=Object.create;var{getPrototypeOf:U,defineProperty:f,getOwnPropertyNames:A,getOwnPropertyDescriptor:V}=Object,C=Object.prototype.hasOwnProperty;var P=(e,t,n)=>{n=e!=null?B(U(e)):{};let r=t||!e||!e.__esModule?f(n,"default",{value:e,enumerable:!0}):n;for(let a of A(e))if(!C.call(r,a))f(r,a,{get:()=>e[a],enumerable:!0});return r},v=new WeakMap,L=(e)=>{var t=v.get(e),n;if(t)return t;if(t=f({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")A(e).map((r)=>!C.call(t,r)&&f(t,r,{get:()=>e[r],enumerable:!(n=V(e,r))||n.enumerable}));return v.set(e,t),t};var
|
|
1
|
+
var B=Object.create;var{getPrototypeOf:U,defineProperty:f,getOwnPropertyNames:A,getOwnPropertyDescriptor:V}=Object,C=Object.prototype.hasOwnProperty;var P=(e,t,n)=>{n=e!=null?B(U(e)):{};let r=t||!e||!e.__esModule?f(n,"default",{value:e,enumerable:!0}):n;for(let a of A(e))if(!C.call(r,a))f(r,a,{get:()=>e[a],enumerable:!0});return r},v=new WeakMap,L=(e)=>{var t=v.get(e),n;if(t)return t;if(t=f({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")A(e).map((r)=>!C.call(t,r)&&f(t,r,{get:()=>e[r],enumerable:!(n=V(e,r))||n.enumerable}));return v.set(e,t),t};var W=(e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0,configurable:!0,set:(r)=>t[n]=()=>r})};var g=(e,t)=>()=>(e&&(t=e(e=0)),t);async function H(e,t,n){try{let r=await e.query.system?.account?.(n);if(!r)return[t.set(0)];let{data:{free:a}}=r,o=l.SwapKitNumber.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(o)]}catch(r){return console.error("Error fetching substrate balance:",r),[t.set(0)]}}async function O(e,t,n){try{let r=await e.query.flip?.account?.(n);if(!r)return[t.set(0)];let a=r.balance||r.data?.balance;if(!a||a.isEmpty)return[t.set(0)];let o=l.SwapKitNumber.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(o)]}catch(r){return console.error("Error fetching chainflip balance:",r),[t.set(0)]}}function E(e,t){return function(r){let a=l.AssetValue.from({chain:e});switch(e){case l.Chain.Chainflip:return O(t,a,r);default:return H(t,a,r)}}}var l;var K=g(()=>{l=require("@swapkit/helpers")});var q,z,J,d;var x=g(()=>{q={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},z={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},J={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},d={DOT:q,FLIP:z,GENERIC:J}});function Q(e,t){switch(e){case i.Chain.Chainflip:return N(t);case i.Chain.Polkadot:return j(t);default:throw new i.SwapKitError("toolbox_substrate_not_supported",{chain:e})}}function p(e){return"address"in e}async function S(e,t){let{Keyring:n}=await import("@polkadot/api"),{cryptoWaitReady:r}=await import("@polkadot/util-crypto");return await r(),new n({ss58Format:t,type:"sr25519"}).addFromUri(e)}function re(e,t){let n=m.decodeAddress(e);return m.encodeAddress(n,t)}function R(e,t){return u.isHex(e)?u.hexToU8a(e):m.decodeAddress(e,void 0,t)}function D(e,t="ss58",n){if(t==="hex")return u.u8aToHex(e);return m.encodeAddress(e,n)}async function T({generic:e,chain:t,...n}){let{ApiPromise:r,WsProvider:a}=await import("@polkadot/api"),o=await i.getRPCUrl(t),s=new a(o),c=await r.create({noInitWarn:!0,provider:s}),y=i.AssetValue.from({chain:t}),_=e?d.GENERIC:d[t],G=await b.match(n).with({phrase:b.P.string},({phrase:w})=>S(w,d[t].prefix)).with({signer:b.P.any},({signer:w})=>w).otherwise(()=>{return});return M({api:c,chain:t,gasAsset:y,network:_,signer:G})}var u,m,i,b,j=({generic:e=!1,...t}={})=>{return T({chain:i.Chain.Polkadot,generic:e,...t})},N=async({generic:e=!1,...t}={})=>{return{...await T({chain:i.Chain.Chainflip,generic:e,...t})}},k=(e,t)=>e.rpc.system.accountNextIndex(t),h=(e,t)=>{try{let n=R(e,t);return D(n,"ss58",t),!0}catch{return!1}},I=(e,{recipient:t,assetValue:n})=>e.tx.balances?.transferAllowDeath?.(t,n.getBaseValue("number")),X=async(e,t,{recipient:n,assetValue:r,sender:a})=>{let o=I(e,{assetValue:r,recipient:n});if(!o)throw new i.SwapKitError("toolbox_substrate_transfer_error");let s=p(t),c=s?t.address:a;if(!c)throw new i.SwapKitError("core_transaction_invalid_sender_address");let y=await k(e,c);return(await o.signAndSend(s?t:c,{nonce:y,signer:s?void 0:t})).toString()},Y=async(e,t,n,{recipient:r,assetValue:a,sender:o})=>{let s=I(e,{assetValue:a,recipient:r}),c=p(t)?t.address:o;if(!c)return;let y=await s?.paymentInfo(c,{nonce:await k(e,c)})||{partialFee:0};return n.set(i.SwapKitNumber.fromBigInt(BigInt(y.partialFee.toString()),n.decimal).getValue("string"))},Z=async(e,t)=>{if(t)return e.send(t);return(await e.send()).toString()},$=async(e,t)=>{return await t.signAsync(e)},ee=(e,t,n)=>{if(n)return t.signAndSend(e,n);return t.signAndSend(e).toString()},te=async({signer:e,address:t,tx:n,callback:r,api:a})=>{let o=await k(a,t);if(r)n.signAndSend(t,{nonce:o,signer:e},r);return n.signAndSend(t,{nonce:o,signer:e}).toString()},M=({api:e,network:t,gasAsset:n,signer:r,chain:a})=>({api:e,broadcast:Z,convertAddress:re,createKeyring:(o)=>S(o,t.prefix),createTransaction:(o)=>I(e,o),decodeAddress:R,encodeAddress:D,estimateTransactionFee:(o)=>{if(!r)throw new i.SwapKitError("core_wallet_not_keypair_wallet");return Y(e,r,n,o)},gasAsset:n,getAddress:(o)=>{let s=o||r;if(!s)throw new i.SwapKitError("core_wallet_not_keypair_wallet");return p(s)?s.address:void 0},getBalance:E(a||i.Chain.Polkadot,e),network:t,sign:(o)=>{if(!r)throw new i.SwapKitError("core_wallet_not_keypair_wallet");if(p(r))return $(r,o);throw new i.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:o,callback:s,address:c})=>{if(!r)throw new i.SwapKitError("core_wallet_not_keypair_wallet");if(p(r))return ee(r,o,s);if(c)return te({address:c,api:e,callback:s,signer:r,tx:o});throw new i.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(o)=>{if(!r)throw new i.SwapKitError("core_wallet_not_keypair_wallet");return X(e,r,o)},validateAddress:(o)=>h(o,t.prefix)}),ne=({address:e,chain:t})=>{let{prefix:n}=t===i.Chain.Polkadot?d.DOT:d.FLIP;return h(e,n)||h(e,d.GENERIC.prefix)};var F=g(()=>{K();x();u=require("@polkadot/util"),m=require("@polkadot/util-crypto"),i=require("@swapkit/helpers"),b=require("ts-pattern")});var oe={};W(oe,{substrateValidateAddress:()=>ne,isKeyringPair:()=>p,getSubstrateToolbox:()=>Q,createSubstrateToolbox:()=>T,createKeyring:()=>S,SubstrateNetwork:()=>d,PolkadotToolbox:()=>j,ChainflipToolbox:()=>N,BaseSubstrateToolbox:()=>M});module.exports=L(oe);var ie=g(()=>{F();x()});ie();
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=BE1A6FA0098C085064756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { ApiPromise } from \"@polkadot/api\";\nimport { AssetValue, Chain, SwapKitNumber } from \"@swapkit/helpers\";\n\n/**\n * Get balance for standard Substrate chains (Polkadot, etc.)\n * Uses api.query.system.account to query free and reserved balances\n */\nexport async function getSubstrateBalance(\n api: ApiPromise,\n gasAsset: AssetValue,\n address: string,\n): Promise<AssetValue[]> {\n try {\n const account = await api.query.system?.account?.(address);\n\n if (!account) {\n return [gasAsset.set(0)];\n }\n\n const {\n // @ts-expect-error\n data: { free },\n } = account;\n\n // Convert the free balance to string using SwapKitNumber for proper decimal handling\n const freeBalance = SwapKitNumber.fromBigInt(BigInt(free.toString()), gasAsset.decimal).getValue(\"string\");\n\n return [gasAsset.set(freeBalance)];\n } catch (error) {\n console.error(\"Error fetching substrate balance:\", error);\n return [gasAsset.set(0)];\n }\n}\n\n/**\n * Get balance for Chainflip chain\n * Uses api.query.flip.account to query FLIP balances\n */\nexport async function getChainflipBalance(\n api: ApiPromise,\n gasAsset: AssetValue,\n address: string,\n): Promise<AssetValue[]> {\n try {\n // Chainflip uses a custom flip pallet for account balances\n const flipAccount = await api.query.flip?.account?.(address);\n\n if (!flipAccount) {\n return [gasAsset.set(0)];\n }\n\n // Extract balance from the flip account structure\n // The structure has a balance field directly\n //@ts-expect-error\n const balance = flipAccount.balance || flipAccount.data?.balance;\n\n if (!balance || balance.isEmpty) {\n return [gasAsset.set(0)];\n }\n\n // Convert balance to string using SwapKitNumber\n const balanceStr = SwapKitNumber.fromBigInt(BigInt(balance.toString()), gasAsset.decimal).getValue(\"string\");\n\n return [gasAsset.set(balanceStr)];\n } catch (error) {\n console.error(\"Error fetching chainflip balance:\", error);\n return [gasAsset.set(0)];\n }\n}\n\n/**\n * Factory function to create chain-specific balance getter\n */\nexport function createBalanceGetter(chain: Chain, api: ApiPromise) {\n return function getBalance(address: string): Promise<AssetValue[]> {\n const gasAsset = AssetValue.from({ chain });\n\n switch (chain) {\n case Chain.Chainflip:\n return getChainflipBalance(api, gasAsset, address);\n\n default:\n return getSubstrateBalance(api, gasAsset, address);\n }\n };\n}\n",
|
|
6
6
|
"import type { Signer as InjectedSigner } from \"@polkadot/api/types\";\nimport type { ProviderInterface } from \"@polkadot/rpc-provider/types\";\nimport type { ExtDef } from \"@polkadot/types/extrinsic/signedExtensions/types\";\nimport type { KeypairType } from \"@polkadot/util-crypto/types\";\nimport type { GenericTransferParams, SubstrateChain } from \"@swapkit/helpers\";\n\nconst polkadotNetwork = {\n decimals: [10],\n displayName: \"Polkadot Relay Chain\",\n network: \"polkadot\",\n prefix: 0,\n standardAccount: \"*25519\",\n symbols: [\"DOT\"],\n website: \"https://polkadot.network\",\n};\n\nconst chainflipNetwork = {\n decimals: [18],\n displayName: \"Chainflip\",\n network: \"chainflip\",\n prefix: 2112,\n standardAccount: \"*25519\",\n symbols: [\"FLIP\"],\n website: \"https://chainflip.io/\",\n};\n\nconst subtrateNetwork = {\n decimals: [],\n displayName: \"Substrate\",\n network: \"substrate\",\n prefix: 42,\n standardAccount: \"*25519\",\n symbols: [],\n website: \"https://substrate.io/\",\n};\n\nexport const SubstrateNetwork: Record<SubstrateChain | \"GENERIC\", SubstrateNetwork> = {\n DOT: polkadotNetwork,\n FLIP: chainflipNetwork,\n GENERIC: subtrateNetwork,\n};\n\nexport type SubstrateNetwork = typeof polkadotNetwork | typeof chainflipNetwork | typeof subtrateNetwork;\n\nexport type SubstrateTransferParams = GenericTransferParams & { sender?: string };\n\ntype Unsubcall = () => void;\n\ninterface InjectedAccount {\n address: string;\n genesisHash?: string | null;\n name?: string;\n type?: KeypairType;\n}\n\ninterface InjectedAccounts {\n get: (anyType?: boolean) => Promise<InjectedAccount[]>;\n subscribe: (cb: (accounts: InjectedAccount[]) => void | Promise<void>) => Unsubcall;\n}\ninterface InjectedExtensionInfo {\n name: string;\n version: string;\n}\ninterface ProviderMeta {\n network: string;\n node: \"full\" | \"light\";\n source: string;\n transport: string;\n}\ninterface MetadataDefBase {\n chain: string;\n genesisHash: string;\n icon: string;\n ss58Format: number;\n chainType?: \"substrate\" | \"ethereum\";\n}\ninterface MetadataDef extends MetadataDefBase {\n color?: string;\n specVersion: number;\n tokenDecimals: number;\n tokenSymbol: string;\n types: Record<string, Record<string, string> | string>;\n metaCalls?: string;\n userExtensions?: ExtDef;\n}\ninterface InjectedMetadataKnown {\n genesisHash: string;\n specVersion: number;\n}\ninterface InjectedMetadata {\n get: () => Promise<InjectedMetadataKnown[]>;\n provide: (definition: MetadataDef) => Promise<boolean>;\n}\ntype ProviderList = Record<string, ProviderMeta>;\n\ninterface InjectedProvider extends ProviderInterface {\n listProviders: () => Promise<ProviderList>;\n startProvider: (key: string) => Promise<ProviderMeta>;\n}\n\ntype InjectedWalletData = {\n accounts: InjectedAccounts;\n metadata?: InjectedMetadata;\n provider?: InjectedProvider;\n signer: InjectedSigner;\n};\n\nexport type SubstrateInjectedExtension = Record<\n string,\n {\n connect?: (origin: string) => Promise<InjectedExtensionInfo & InjectedWalletData>;\n enable?: (origin: string) => Promise<InjectedWalletData>;\n version?: string;\n }\n>;\n",
|
|
7
|
-
"import type { ApiPromise } from \"@polkadot/api\";\nimport type { SubmittableExtrinsic } from \"@polkadot/api/types\";\nimport type { KeyringPair } from \"@polkadot/keyring/types\";\nimport type { Callback, IKeyringPair, ISubmittableResult, Signer } from \"@polkadot/types/types\";\nimport { hexToU8a, isHex, u8aToHex } from \"@polkadot/util\";\nimport { decodeAddress as decodePolkadotAddress, encodeAddress as encodePolkadotAddress } from \"@polkadot/util-crypto\";\nimport {\n AssetValue,\n Chain,\n type DerivationPathArray,\n type GenericCreateTransactionParams,\n getRPCUrl,\n type SubstrateChain,\n SwapKitError,\n SwapKitNumber,\n} from \"@swapkit/helpers\";\n\nimport { match, P } from \"ts-pattern\";\nimport { createBalanceGetter } from \"./balance\";\nimport { SubstrateNetwork, type SubstrateTransferParams } from \"./types\";\n\nexport const PolkadotToolbox = ({ generic = false, ...signerParams }: ToolboxParams = {}) => {\n return createSubstrateToolbox({ chain: Chain.Polkadot, generic, ...signerParams });\n};\n\nexport const ChainflipToolbox = async ({ generic = false, ...signerParams }: ToolboxParams = {}) => {\n const toolbox = await createSubstrateToolbox({ chain: Chain.Chainflip, generic, ...signerParams });\n\n return { ...toolbox };\n};\n\nexport type SubstrateToolboxes = {\n DOT: Awaited<ReturnType<typeof PolkadotToolbox>>;\n FLIP: Awaited<ReturnType<typeof ChainflipToolbox>>;\n};\n\nexport function getSubstrateToolbox<T extends SubstrateChain>(chain: T, params?: ToolboxParams) {\n switch (chain) {\n case Chain.Chainflip: {\n return ChainflipToolbox(params);\n }\n case Chain.Polkadot: {\n return PolkadotToolbox(params);\n }\n default:\n throw new SwapKitError(\"toolbox_substrate_not_supported\", { chain });\n }\n}\n\nexport function isKeyringPair(account: IKeyringPair | Signer): account is IKeyringPair {\n return \"address\" in account;\n}\n\nexport async function createKeyring(phrase: string, networkPrefix: number) {\n const { Keyring } = await import(\"@polkadot/api\");\n const { cryptoWaitReady } = await import(\"@polkadot/util-crypto\");\n await cryptoWaitReady();\n\n return new Keyring({ ss58Format: networkPrefix, type: \"sr25519\" }).addFromUri(phrase);\n}\n\nconst getNonce = (api: ApiPromise, address: string) => api.rpc.system.accountNextIndex(address);\n\nconst validateAddress = (address: string, networkPrefix: number) => {\n try {\n const decodedAddress = decodeAddress(address, networkPrefix);\n\n encodeAddress(decodedAddress, \"ss58\", networkPrefix);\n\n return true;\n } catch {\n return false;\n }\n};\n\nconst createTransaction = (api: ApiPromise, { recipient, assetValue }: SubstrateTransferParams) =>\n api.tx.balances?.transferAllowDeath?.(recipient, assetValue.getBaseValue(\"number\"));\n\nconst transfer = async (\n api: ApiPromise,\n signer: IKeyringPair | Signer,\n { recipient, assetValue, sender }: SubstrateTransferParams,\n) => {\n const transfer = createTransaction(api, { assetValue, recipient });\n if (!transfer) throw new SwapKitError(\"toolbox_substrate_transfer_error\");\n\n const isKeyring = isKeyringPair(signer);\n\n const address = isKeyring ? (signer as IKeyringPair).address : sender;\n if (!address) throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n\n const nonce = await getNonce(api, address);\n\n const tx = await transfer.signAndSend(isKeyring ? signer : address, {\n nonce,\n signer: isKeyring ? undefined : signer,\n });\n\n return tx.toString();\n};\n\nconst estimateTransactionFee = async (\n api: ApiPromise,\n signer: IKeyringPair | Signer,\n gasAsset: AssetValue,\n { recipient, assetValue, sender }: SubstrateTransferParams,\n) => {\n const transfer = createTransaction(api, { assetValue, recipient });\n\n const address = isKeyringPair(signer) ? signer.address : sender;\n if (!address) return;\n\n const paymentInfo = (await transfer?.paymentInfo(address, { nonce: await getNonce(api, address) })) || {\n partialFee: 0,\n };\n return gasAsset.set(\n SwapKitNumber.fromBigInt(BigInt(paymentInfo.partialFee.toString()), gasAsset.decimal).getValue(\"string\"),\n );\n};\n\nconst broadcast = async (tx: SubmittableExtrinsic<\"promise\">, callback?: Callback<ISubmittableResult>) => {\n if (callback) return tx.send(callback);\n const hash = await tx.send();\n return hash.toString();\n};\n\nconst sign = async (signer: IKeyringPair, tx: SubmittableExtrinsic<\"promise\">) => {\n const signedTx = await tx.signAsync(signer);\n return signedTx;\n};\n\nconst signAndBroadcastKeyring = (\n signer: IKeyringPair,\n tx: SubmittableExtrinsic<\"promise\">,\n callback?: Callback<ISubmittableResult>,\n) => {\n if (callback) return tx.signAndSend(signer, callback);\n const hash = tx.signAndSend(signer);\n return hash.toString();\n};\n\nconst signAndBroadcast = async ({\n signer,\n address,\n tx,\n callback,\n api,\n}: {\n signer: Signer;\n address: string;\n tx: SubmittableExtrinsic<\"promise\">;\n api: ApiPromise;\n callback?: Callback<ISubmittableResult>;\n}) => {\n const nonce = await getNonce(api, address);\n if (callback) {\n tx.signAndSend(address, { nonce, signer }, callback);\n }\n const hash = tx.signAndSend(address, { nonce, signer });\n return hash.toString();\n};\n\nfunction convertAddress(address: string, newPrefix: number) {\n const decodedAddress = decodePolkadotAddress(address);\n const convertedAddress = encodePolkadotAddress(decodedAddress, newPrefix);\n return convertedAddress;\n}\n\nfunction decodeAddress(address: string, networkPrefix?: number) {\n return isHex(address) ? hexToU8a(address) : decodePolkadotAddress(address, undefined, networkPrefix);\n}\n\nfunction encodeAddress(address: Uint8Array, encoding: \"ss58\" | \"hex\" = \"ss58\", networkPrefix?: number) {\n if (encoding === \"hex\") {\n return u8aToHex(address);\n }\n\n return encodePolkadotAddress(address, networkPrefix);\n}\n\nexport const BaseSubstrateToolbox = ({\n api,\n network,\n gasAsset,\n signer,\n chain,\n}: {\n api: ApiPromise;\n network: SubstrateNetwork;\n gasAsset: AssetValue;\n signer?: IKeyringPair | Signer;\n chain?: SubstrateChain;\n}) => ({\n api,\n broadcast,\n convertAddress,\n createKeyring: (phrase: string) => createKeyring(phrase, network.prefix),\n createTransaction: (params: GenericCreateTransactionParams) => createTransaction(api, params),\n decodeAddress,\n encodeAddress,\n estimateTransactionFee: (params: SubstrateTransferParams) => {\n if (!signer) throw new SwapKitError(\"core_wallet_not_keypair_wallet\");\n return estimateTransactionFee(api, signer, gasAsset, params);\n },\n gasAsset,\n getAddress: (keyring?: IKeyringPair | Signer) => {\n const keyringPair = keyring || signer;\n if (!keyringPair) throw new SwapKitError(\"core_wallet_not_keypair_wallet\");\n\n return isKeyringPair(keyringPair) ? keyringPair.address : undefined;\n },\n getBalance: createBalanceGetter(chain || Chain.Polkadot, api),\n network,\n sign: (tx: SubmittableExtrinsic<\"promise\">) => {\n if (!signer) throw new SwapKitError(\"core_wallet_not_keypair_wallet\");\n if (isKeyringPair(signer)) return sign(signer, tx);\n\n throw new SwapKitError(\n \"core_wallet_not_keypair_wallet\",\n \"Signer does not have keyring pair capabilities required for signing.\",\n );\n },\n signAndBroadcast: ({\n tx,\n callback,\n address,\n }: {\n tx: SubmittableExtrinsic<\"promise\">;\n callback?: Callback<ISubmittableResult>;\n address?: string;\n }) => {\n if (!signer) throw new SwapKitError(\"core_wallet_not_keypair_wallet\");\n if (isKeyringPair(signer)) return signAndBroadcastKeyring(signer, tx, callback);\n\n if (address) {\n return signAndBroadcast({ address, api, callback, signer, tx });\n }\n\n throw new SwapKitError(\n \"core_wallet_not_keypair_wallet\",\n \"Signer does not have keyring pair capabilities required for signing.\",\n );\n },\n transfer: (params: SubstrateTransferParams) => {\n if (!signer) throw new SwapKitError(\"core_wallet_not_keypair_wallet\");\n return transfer(api, signer, params);\n },\n validateAddress: (address: string) => validateAddress(address, network.prefix),\n});\n\nexport const substrateValidateAddress = ({ address, chain }: { address: string; chain: SubstrateChain }) => {\n const { prefix } = chain === Chain.Polkadot ? SubstrateNetwork.DOT : SubstrateNetwork.FLIP;\n\n return validateAddress(address, prefix) || validateAddress(address, SubstrateNetwork.GENERIC.prefix);\n};\n\nexport async function createSubstrateToolbox({\n generic,\n chain,\n ...signerParams\n}: ToolboxParams & { chain: SubstrateChain }) {\n const { ApiPromise, WsProvider } = await import(\"@polkadot/api\");\n\n const rpcUrl = await getRPCUrl(chain);\n const provider = new WsProvider(rpcUrl);\n const api = await ApiPromise.create({ provider });\n const gasAsset = AssetValue.from({ chain });\n const network = generic ? SubstrateNetwork.GENERIC : SubstrateNetwork[chain];\n\n const signer = await match(signerParams)\n .with({ phrase: P.string }, ({ phrase }) => createKeyring(phrase, SubstrateNetwork[chain].prefix))\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n return BaseSubstrateToolbox({ api, chain, gasAsset, network, signer });\n}\n\nexport type ToolboxParams = { generic?: boolean } & (\n | { signer?: KeyringPair | Signer }\n | { phrase?: string; derivationPath?: DerivationPathArray; index?: number }\n);\n",
|
|
7
|
+
"import type { ApiPromise } from \"@polkadot/api\";\nimport type { SubmittableExtrinsic } from \"@polkadot/api/types\";\nimport type { KeyringPair } from \"@polkadot/keyring/types\";\nimport type { Callback, IKeyringPair, ISubmittableResult, Signer } from \"@polkadot/types/types\";\nimport { hexToU8a, isHex, u8aToHex } from \"@polkadot/util\";\nimport { decodeAddress as decodePolkadotAddress, encodeAddress as encodePolkadotAddress } from \"@polkadot/util-crypto\";\nimport {\n AssetValue,\n Chain,\n type DerivationPathArray,\n type GenericCreateTransactionParams,\n getRPCUrl,\n type SubstrateChain,\n SwapKitError,\n SwapKitNumber,\n} from \"@swapkit/helpers\";\n\nimport { match, P } from \"ts-pattern\";\nimport { createBalanceGetter } from \"./balance\";\nimport { SubstrateNetwork, type SubstrateTransferParams } from \"./types\";\n\nexport const PolkadotToolbox = ({ generic = false, ...signerParams }: ToolboxParams = {}) => {\n return createSubstrateToolbox({ chain: Chain.Polkadot, generic, ...signerParams });\n};\n\nexport const ChainflipToolbox = async ({ generic = false, ...signerParams }: ToolboxParams = {}) => {\n const toolbox = await createSubstrateToolbox({ chain: Chain.Chainflip, generic, ...signerParams });\n\n return { ...toolbox };\n};\n\nexport type SubstrateToolboxes = {\n DOT: Awaited<ReturnType<typeof PolkadotToolbox>>;\n FLIP: Awaited<ReturnType<typeof ChainflipToolbox>>;\n};\n\nexport function getSubstrateToolbox<T extends SubstrateChain>(chain: T, params?: ToolboxParams) {\n switch (chain) {\n case Chain.Chainflip: {\n return ChainflipToolbox(params);\n }\n case Chain.Polkadot: {\n return PolkadotToolbox(params);\n }\n default:\n throw new SwapKitError(\"toolbox_substrate_not_supported\", { chain });\n }\n}\n\nexport function isKeyringPair(account: IKeyringPair | Signer): account is IKeyringPair {\n return \"address\" in account;\n}\n\nexport async function createKeyring(phrase: string, networkPrefix: number) {\n const { Keyring } = await import(\"@polkadot/api\");\n const { cryptoWaitReady } = await import(\"@polkadot/util-crypto\");\n await cryptoWaitReady();\n\n return new Keyring({ ss58Format: networkPrefix, type: \"sr25519\" }).addFromUri(phrase);\n}\n\nconst getNonce = (api: ApiPromise, address: string) => api.rpc.system.accountNextIndex(address);\n\nconst validateAddress = (address: string, networkPrefix: number) => {\n try {\n const decodedAddress = decodeAddress(address, networkPrefix);\n\n encodeAddress(decodedAddress, \"ss58\", networkPrefix);\n\n return true;\n } catch {\n return false;\n }\n};\n\nconst createTransaction = (api: ApiPromise, { recipient, assetValue }: SubstrateTransferParams) =>\n api.tx.balances?.transferAllowDeath?.(recipient, assetValue.getBaseValue(\"number\"));\n\nconst transfer = async (\n api: ApiPromise,\n signer: IKeyringPair | Signer,\n { recipient, assetValue, sender }: SubstrateTransferParams,\n) => {\n const transfer = createTransaction(api, { assetValue, recipient });\n if (!transfer) throw new SwapKitError(\"toolbox_substrate_transfer_error\");\n\n const isKeyring = isKeyringPair(signer);\n\n const address = isKeyring ? (signer as IKeyringPair).address : sender;\n if (!address) throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n\n const nonce = await getNonce(api, address);\n\n const tx = await transfer.signAndSend(isKeyring ? signer : address, {\n nonce,\n signer: isKeyring ? undefined : signer,\n });\n\n return tx.toString();\n};\n\nconst estimateTransactionFee = async (\n api: ApiPromise,\n signer: IKeyringPair | Signer,\n gasAsset: AssetValue,\n { recipient, assetValue, sender }: SubstrateTransferParams,\n) => {\n const transfer = createTransaction(api, { assetValue, recipient });\n\n const address = isKeyringPair(signer) ? signer.address : sender;\n if (!address) return;\n\n const paymentInfo = (await transfer?.paymentInfo(address, { nonce: await getNonce(api, address) })) || {\n partialFee: 0,\n };\n return gasAsset.set(\n SwapKitNumber.fromBigInt(BigInt(paymentInfo.partialFee.toString()), gasAsset.decimal).getValue(\"string\"),\n );\n};\n\nconst broadcast = async (tx: SubmittableExtrinsic<\"promise\">, callback?: Callback<ISubmittableResult>) => {\n if (callback) return tx.send(callback);\n const hash = await tx.send();\n return hash.toString();\n};\n\nconst sign = async (signer: IKeyringPair, tx: SubmittableExtrinsic<\"promise\">) => {\n const signedTx = await tx.signAsync(signer);\n return signedTx;\n};\n\nconst signAndBroadcastKeyring = (\n signer: IKeyringPair,\n tx: SubmittableExtrinsic<\"promise\">,\n callback?: Callback<ISubmittableResult>,\n) => {\n if (callback) return tx.signAndSend(signer, callback);\n const hash = tx.signAndSend(signer);\n return hash.toString();\n};\n\nconst signAndBroadcast = async ({\n signer,\n address,\n tx,\n callback,\n api,\n}: {\n signer: Signer;\n address: string;\n tx: SubmittableExtrinsic<\"promise\">;\n api: ApiPromise;\n callback?: Callback<ISubmittableResult>;\n}) => {\n const nonce = await getNonce(api, address);\n if (callback) {\n tx.signAndSend(address, { nonce, signer }, callback);\n }\n const hash = tx.signAndSend(address, { nonce, signer });\n return hash.toString();\n};\n\nfunction convertAddress(address: string, newPrefix: number) {\n const decodedAddress = decodePolkadotAddress(address);\n const convertedAddress = encodePolkadotAddress(decodedAddress, newPrefix);\n return convertedAddress;\n}\n\nfunction decodeAddress(address: string, networkPrefix?: number) {\n return isHex(address) ? hexToU8a(address) : decodePolkadotAddress(address, undefined, networkPrefix);\n}\n\nfunction encodeAddress(address: Uint8Array, encoding: \"ss58\" | \"hex\" = \"ss58\", networkPrefix?: number) {\n if (encoding === \"hex\") {\n return u8aToHex(address);\n }\n\n return encodePolkadotAddress(address, networkPrefix);\n}\n\nexport const BaseSubstrateToolbox = ({\n api,\n network,\n gasAsset,\n signer,\n chain,\n}: {\n api: ApiPromise;\n network: SubstrateNetwork;\n gasAsset: AssetValue;\n signer?: IKeyringPair | Signer;\n chain?: SubstrateChain;\n}) => ({\n api,\n broadcast,\n convertAddress,\n createKeyring: (phrase: string) => createKeyring(phrase, network.prefix),\n createTransaction: (params: GenericCreateTransactionParams) => createTransaction(api, params),\n decodeAddress,\n encodeAddress,\n estimateTransactionFee: (params: SubstrateTransferParams) => {\n if (!signer) throw new SwapKitError(\"core_wallet_not_keypair_wallet\");\n return estimateTransactionFee(api, signer, gasAsset, params);\n },\n gasAsset,\n getAddress: (keyring?: IKeyringPair | Signer) => {\n const keyringPair = keyring || signer;\n if (!keyringPair) throw new SwapKitError(\"core_wallet_not_keypair_wallet\");\n\n return isKeyringPair(keyringPair) ? keyringPair.address : undefined;\n },\n getBalance: createBalanceGetter(chain || Chain.Polkadot, api),\n network,\n sign: (tx: SubmittableExtrinsic<\"promise\">) => {\n if (!signer) throw new SwapKitError(\"core_wallet_not_keypair_wallet\");\n if (isKeyringPair(signer)) return sign(signer, tx);\n\n throw new SwapKitError(\n \"core_wallet_not_keypair_wallet\",\n \"Signer does not have keyring pair capabilities required for signing.\",\n );\n },\n signAndBroadcast: ({\n tx,\n callback,\n address,\n }: {\n tx: SubmittableExtrinsic<\"promise\">;\n callback?: Callback<ISubmittableResult>;\n address?: string;\n }) => {\n if (!signer) throw new SwapKitError(\"core_wallet_not_keypair_wallet\");\n if (isKeyringPair(signer)) return signAndBroadcastKeyring(signer, tx, callback);\n\n if (address) {\n return signAndBroadcast({ address, api, callback, signer, tx });\n }\n\n throw new SwapKitError(\n \"core_wallet_not_keypair_wallet\",\n \"Signer does not have keyring pair capabilities required for signing.\",\n );\n },\n transfer: (params: SubstrateTransferParams) => {\n if (!signer) throw new SwapKitError(\"core_wallet_not_keypair_wallet\");\n return transfer(api, signer, params);\n },\n validateAddress: (address: string) => validateAddress(address, network.prefix),\n});\n\nexport const substrateValidateAddress = ({ address, chain }: { address: string; chain: SubstrateChain }) => {\n const { prefix } = chain === Chain.Polkadot ? SubstrateNetwork.DOT : SubstrateNetwork.FLIP;\n\n return validateAddress(address, prefix) || validateAddress(address, SubstrateNetwork.GENERIC.prefix);\n};\n\nexport async function createSubstrateToolbox({\n generic,\n chain,\n ...signerParams\n}: ToolboxParams & { chain: SubstrateChain }) {\n const { ApiPromise, WsProvider } = await import(\"@polkadot/api\");\n\n const rpcUrl = await getRPCUrl(chain);\n const provider = new WsProvider(rpcUrl);\n const api = await ApiPromise.create({ noInitWarn: true, provider });\n const gasAsset = AssetValue.from({ chain });\n const network = generic ? SubstrateNetwork.GENERIC : SubstrateNetwork[chain];\n\n const signer = await match(signerParams)\n .with({ phrase: P.string }, ({ phrase }) => createKeyring(phrase, SubstrateNetwork[chain].prefix))\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n return BaseSubstrateToolbox({ api, chain, gasAsset, network, signer });\n}\n\nexport type ToolboxParams = { generic?: boolean } & (\n | { signer?: KeyringPair | Signer }\n | { phrase?: string; derivationPath?: DerivationPathArray; index?: number }\n);\n",
|
|
8
8
|
"export * from \"./substrate\";\nexport * from \"./types\";\n"
|
|
9
9
|
],
|
|
10
|
-
"mappings": "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
|
|
11
|
-
"debugId": "
|
|
10
|
+
"mappings": "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",
|
|
11
|
+
"debugId": "BE1A6FA0098C085064756E2164756E21",
|
|
12
12
|
"names": []
|
|
13
13
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var G=Object.create;var{getPrototypeOf:B,defineProperty:f,getOwnPropertyNames:U}=Object;var V=Object.prototype.hasOwnProperty;var b=(e,t,r)=>{r=e!=null?G(B(e)):{};let n=t||!e||!e.__esModule?f(r,"default",{value:e,enumerable:!0}):r;for(let i of U(e))if(!V.call(n,i))f(n,i,{get:()=>e[i],enumerable:!0});return n};var L=(e,t)=>{for(var r in t)f(e,r,{get:t[r],enumerable:!0,configurable:!0,set:(n)=>t[r]=()=>n})};var m=(e,t)=>()=>(e&&(t=e(e=0)),t);var g=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{AssetValue as
|
|
1
|
+
var G=Object.create;var{getPrototypeOf:B,defineProperty:f,getOwnPropertyNames:U}=Object;var V=Object.prototype.hasOwnProperty;var b=(e,t,r)=>{r=e!=null?G(B(e)):{};let n=t||!e||!e.__esModule?f(r,"default",{value:e,enumerable:!0}):r;for(let i of U(e))if(!V.call(n,i))f(n,i,{get:()=>e[i],enumerable:!0});return n};var L=(e,t)=>{for(var r in t)f(e,r,{get:t[r],enumerable:!0,configurable:!0,set:(n)=>t[r]=()=>n})};var m=(e,t)=>()=>(e&&(t=e(e=0)),t);var g=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{AssetValue as W,Chain as H,SwapKitNumber as T}from"@swapkit/helpers";async function O(e,t,r){try{let n=await e.query.system?.account?.(r);if(!n)return[t.set(0)];let{data:{free:i}}=n,o=T.fromBigInt(BigInt(i.toString()),t.decimal).getValue("string");return[t.set(o)]}catch(n){return console.error("Error fetching substrate balance:",n),[t.set(0)]}}async function q(e,t,r){try{let n=await e.query.flip?.account?.(r);if(!n)return[t.set(0)];let i=n.balance||n.data?.balance;if(!i||i.isEmpty)return[t.set(0)];let o=T.fromBigInt(BigInt(i.toString()),t.decimal).getValue("string");return[t.set(o)]}catch(n){return console.error("Error fetching chainflip balance:",n),[t.set(0)]}}function _(e,t){return function(n){let i=W.from({chain:e});switch(e){case H.Chainflip:return q(t,i,n);default:return O(t,i,n)}}}var v=()=>{};var z,J,Q,d;var w=m(()=>{z={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},J={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},Q={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},d={DOT:z,FLIP:J,GENERIC:Q}});import{hexToU8a as X,isHex as Y,u8aToHex as Z}from"@polkadot/util";import{decodeAddress as C,encodeAddress as E}from"@polkadot/util-crypto";import{AssetValue as $,Chain as p,getRPCUrl as ee,SwapKitError as c,SwapKitNumber as te}from"@swapkit/helpers";import{match as re,P as A}from"ts-pattern";function ne(e,t){switch(e){case p.Chainflip:return j(t);case p.Polkadot:return K(t);default:throw new c("toolbox_substrate_not_supported",{chain:e})}}function l(e){return"address"in e}async function x(e,t){let{Keyring:r}=await import("@polkadot/api"),{cryptoWaitReady:n}=await import("@polkadot/util-crypto");return await n(),new r({ss58Format:t,type:"sr25519"}).addFromUri(e)}function le(e,t){let r=C(e);return E(r,t)}function N(e,t){return Y(e)?X(e):C(e,void 0,t)}function R(e,t="ss58",r){if(t==="hex")return Z(e);return E(e,r)}async function k({generic:e,chain:t,...r}){let{ApiPromise:n,WsProvider:i}=await import("@polkadot/api"),o=await ee(t),a=new i(o),s=await n.create({noInitWarn:!0,provider:a}),u=$.from({chain:t}),I=e?d.GENERIC:d[t],F=await re(r).with({phrase:A.string},({phrase:y})=>x(y,d[t].prefix)).with({signer:A.any},({signer:y})=>y).otherwise(()=>{return});return D({api:s,chain:t,gasAsset:u,network:I,signer:F})}var K=({generic:e=!1,...t}={})=>{return k({chain:p.Polkadot,generic:e,...t})},j=async({generic:e=!1,...t}={})=>{return{...await k({chain:p.Chainflip,generic:e,...t})}},h=(e,t)=>e.rpc.system.accountNextIndex(t),P=(e,t)=>{try{let r=N(e,t);return R(r,"ss58",t),!0}catch{return!1}},S=(e,{recipient:t,assetValue:r})=>e.tx.balances?.transferAllowDeath?.(t,r.getBaseValue("number")),oe=async(e,t,{recipient:r,assetValue:n,sender:i})=>{let o=S(e,{assetValue:n,recipient:r});if(!o)throw new c("toolbox_substrate_transfer_error");let a=l(t),s=a?t.address:i;if(!s)throw new c("core_transaction_invalid_sender_address");let u=await h(e,s);return(await o.signAndSend(a?t:s,{nonce:u,signer:a?void 0:t})).toString()},ie=async(e,t,r,{recipient:n,assetValue:i,sender:o})=>{let a=S(e,{assetValue:i,recipient:n}),s=l(t)?t.address:o;if(!s)return;let u=await a?.paymentInfo(s,{nonce:await h(e,s)})||{partialFee:0};return r.set(te.fromBigInt(BigInt(u.partialFee.toString()),r.decimal).getValue("string"))},ae=async(e,t)=>{if(t)return e.send(t);return(await e.send()).toString()},se=async(e,t)=>{return await t.signAsync(e)},ce=(e,t,r)=>{if(r)return t.signAndSend(e,r);return t.signAndSend(e).toString()},de=async({signer:e,address:t,tx:r,callback:n,api:i})=>{let o=await h(i,t);if(n)r.signAndSend(t,{nonce:o,signer:e},n);return r.signAndSend(t,{nonce:o,signer:e}).toString()},D=({api:e,network:t,gasAsset:r,signer:n,chain:i})=>({api:e,broadcast:ae,convertAddress:le,createKeyring:(o)=>x(o,t.prefix),createTransaction:(o)=>S(e,o),decodeAddress:N,encodeAddress:R,estimateTransactionFee:(o)=>{if(!n)throw new c("core_wallet_not_keypair_wallet");return ie(e,n,r,o)},gasAsset:r,getAddress:(o)=>{let a=o||n;if(!a)throw new c("core_wallet_not_keypair_wallet");return l(a)?a.address:void 0},getBalance:_(i||p.Polkadot,e),network:t,sign:(o)=>{if(!n)throw new c("core_wallet_not_keypair_wallet");if(l(n))return se(n,o);throw new c("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:({tx:o,callback:a,address:s})=>{if(!n)throw new c("core_wallet_not_keypair_wallet");if(l(n))return ce(n,o,a);if(s)return de({address:s,api:e,callback:a,signer:n,tx:o});throw new c("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:(o)=>{if(!n)throw new c("core_wallet_not_keypair_wallet");return oe(e,n,o)},validateAddress:(o)=>P(o,t.prefix)}),pe=({address:e,chain:t})=>{let{prefix:r}=t===p.Polkadot?d.DOT:d.FLIP;return P(e,r)||P(e,d.GENERIC.prefix)};var M=m(()=>{v();w()});var ue={};L(ue,{substrateValidateAddress:()=>pe,isKeyringPair:()=>l,getSubstrateToolbox:()=>ne,createSubstrateToolbox:()=>k,createKeyring:()=>x,SubstrateNetwork:()=>d,PolkadotToolbox:()=>K,ChainflipToolbox:()=>j,BaseSubstrateToolbox:()=>D});var me=m(()=>{M();w()});me();export{pe as substrateValidateAddress,l as isKeyringPair,ne as getSubstrateToolbox,k as createSubstrateToolbox,x as createKeyring,d as SubstrateNetwork,K as PolkadotToolbox,j as ChainflipToolbox,D as BaseSubstrateToolbox};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=4311C937013AEC3564756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|