@swapkit/toolboxes 1.0.0-beta.15 → 1.0.0-beta.17
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/{chunk-p1kdg37m.js → chunk-38ztynv0.js} +1 -1
- package/dist/{chunk-p1kdg37m.js.map → chunk-38ztynv0.js.map} +1 -1
- package/dist/{chunk-0f0249b1.js → chunk-cv69ewns.js} +1 -1
- package/dist/cosmos/index.js +1 -1
- package/dist/evm/index.cjs +2 -2
- package/dist/evm/index.cjs.map +3 -3
- package/dist/evm/index.js +2 -2
- package/dist/evm/index.js.map +3 -3
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/radix/index.js +1 -1
- package/dist/ripple/index.cjs +2 -2
- package/dist/ripple/index.cjs.map +3 -3
- package/dist/ripple/index.js +2 -2
- package/dist/ripple/index.js.map +3 -3
- package/dist/solana/index.cjs +2 -2
- package/dist/solana/index.cjs.map +3 -3
- package/dist/solana/index.js +2 -2
- package/dist/solana/index.js.map +3 -3
- package/dist/substrate/index.js +1 -1
- package/dist/utxo/index.js +1 -1
- package/package.json +16 -16
- package/src/evm/__tests__/ethereum.test.ts +1 -1
- package/src/evm/toolbox/op.ts +11 -5
- package/src/index.ts +5 -0
- package/src/ripple/index.ts +14 -21
- package/src/solana/toolbox.ts +75 -2
- /package/dist/{chunk-0f0249b1.js.map → chunk-cv69ewns.js.map} +0 -0
package/dist/evm/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{b as tt}from"../chunk-0h4xdrwz.js";import{c as C,d as z}from"../chunk-p1kdg37m.js";import{SKConfig as Jt,warnOnce as Ct}from"@swapkit/helpers";function S(t){let u=Jt.get("apis")[t];if(u)return Ct(!0,"Using custom EVM API. Be sure to implement all methods to avoid issues."),u;return zt(t)}function Tn(t){return t}function zt(t){return{getBalance:tt(t)}}import{AssetValue as K,BaseDecimal as gt,Chain as L,ChainToExplorerUrl as Ft,ChainToHexChainId as It,FeeOption as at,SKConfig as pt,SwapKitNumber as r}from"@swapkit/helpers";import{Chain as E,ContractAddress as q,FeeOption as f,SwapKitError as B,SwapKitNumber as nt,isGasAsset as kt}from"@swapkit/helpers";import{erc20ABI as Y}from"@swapkit/helpers/contracts";import{BrowserProvider as Gt,Contract as ut,Interface as et,getAddress as h}from"ethers";var _=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function j({chain:t=E.Ethereum,provider:u,signer:n,isEIP1559Compatible:e=!0}){return{getAddress:()=>{return n?n.getAddress():void 0},call:A({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),estimateCall:ot({provider:u,signer:n}),EIP1193SendTransaction:F(u),approve:Nt({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),approvedAmount:yt({provider:u,chain:t}),broadcastTransaction:u.broadcastTransaction,createApprovalTx:jt({provider:u,signer:n,chain:t}),createContract:Wt({provider:u,chain:t}),createContractTxObject:Z({provider:u,chain:t}),createTransferTx:P({provider:u,signer:n,chain:t}),createTransaction:P({provider:u,signer:n,chain:t}),estimateGasLimit:Vt({provider:u,signer:n,chain:t}),estimateGasPrices:k({chain:t,provider:u,isEIP1559Compatible:e}),isApproved:Xt({provider:u,chain:t}),sendTransaction:lt({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),signMessage:n?.signMessage,transfer:St({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),validateAddress:(y)=>$t({address:y})}}function $t({address:t}){try{return h(t),!0}catch(u){return!1}}function g(t){return t instanceof Gt}function O(t,u,n){return new ut(t,et.from(u),n)}function Wt({provider:t}){return function u(n,e){return new ut(n,et.from(e),t)}}var Qt=["payable","nonpayable"];function Yt({abi:t,funcName:u}){let n=t.find((e)=>e.name===u);if(!n)throw new B("toolbox_evm_no_abi_fragment",{funcName:u});return n.stateMutability&&Qt.includes(n.stateMutability)}function fn(t){return h(t)}function F(t){return function u({value:n,...e}){if(!g(t))throw new B("toolbox_evm_provider_not_eip1193_compatible");return t.send("eth_sendTransaction",[{value:V(BigInt(n||0)),...e}])}}function Bn(t,u){let n=I(t,u);if(n)return h(n.toLowerCase());throw new B("toolbox_evm_invalid_gas_asset_address")}var Zt={[E.Arbitrum]:q.ARB,[E.Avalanche]:q.AVAX,[E.Base]:q.BASE,[E.BinanceSmartChain]:q.BSC,[E.Ethereum]:q.ETH,[E.Optimism]:q.OP,[E.Polygon]:q.MATIC};function I({chain:t,symbol:u,ticker:n},e){try{let y=t===E.BinanceSmartChain&&u==="BNB"&&n==="BNB",o=t===e&&u===e&&n===e,l=[E.Arbitrum,E.Base].includes(t)&&u==="ETH"&&n==="ETH";if(o||y||l)return Zt[e];return h(u.slice(n.length+1).replace(/^0X/,""))}catch(y){return null}}function Z({provider:t}){return async({contractAddress:u,abi:n,funcName:e,funcParams:y=[],txOverrides:o})=>O(u,n,t).getFunction(e).populateTransaction(...y.concat(o).filter((l)=>typeof l!=="undefined"))}function k({chain:t,provider:u,isEIP1559Compatible:n=!0}){if(t===E.Arbitrum)return async function e(){try{let{gasPrice:y}=await u.getFeeData();if(!y)throw new Error("No fee data available");return{[f.Average]:{gasPrice:y},[f.Fast]:{gasPrice:y},[f.Fastest]:{gasPrice:y}}}catch(y){throw new Error(`Failed to estimate gas price: ${y.msg??y.toString()}`)}};if(t===E.Optimism)return async function e(){try{let{maxFeePerGas:y,maxPriorityFeePerGas:o,gasPrice:l}=await u.getFeeData(),a=v(u)(),p=l;if(!(y&&o))throw new Error("No fee data available");return{[f.Average]:{l1GasPrice:a,gasPrice:p,maxFeePerGas:y,maxPriorityFeePerGas:o},[f.Fast]:{l1GasPrice:(a||0n)*15n/10n,gasPrice:p*15n/10n,maxFeePerGas:y,maxPriorityFeePerGas:o*15n/10n},[f.Fastest]:{l1GasPrice:(a||0n)*2n,gasPrice:p*2n,maxFeePerGas:y,maxPriorityFeePerGas:o*2n}}}catch(y){throw new Error(`Failed to estimate gas price: ${y.msg??y.toString()}`)}};return async function e(){try{let{maxFeePerGas:y,maxPriorityFeePerGas:o,gasPrice:l}=await u.getFeeData();if(n){if(y===null||o===null)throw new B("toolbox_evm_no_fee_data");return{[f.Average]:{maxFeePerGas:y,maxPriorityFeePerGas:o},[f.Fast]:{maxFeePerGas:y*15n/10n,maxPriorityFeePerGas:o*15n/10n},[f.Fastest]:{maxFeePerGas:y*2n,maxPriorityFeePerGas:o*2n}}}if(!l)throw new B("toolbox_evm_no_gas_price");return{[f.Average]:{gasPrice:l},[f.Fast]:{gasPrice:l*15n/10n},[f.Fastest]:{gasPrice:l*2n}}}catch(y){throw new Error(`Failed to estimate gas price: ${y.msg??y.toString()}`)}}}function A({provider:t,isEIP1559Compatible:u,signer:n,chain:e}){return async function y({callProvider:o,contractAddress:l,abi:a,funcName:p,funcParams:i=[],txOverrides:T={},feeOption:s=f.Fast}){let m=o||t;if(!l)throw new Error("contractAddress must be provided");let b=Yt({abi:a,funcName:p});if(b&&g(m)&&n){let R=Z({provider:m,chain:e}),D=T?.from||await n?.getAddress(),U=await R({contractAddress:l,abi:a,funcName:p,funcParams:i,txOverrides:{...T,from:D}});return F(m)(U)}let M=O(l,a,m);if(b){if(!n)throw new B("toolbox_evm_no_signer");let R=T?.from||await n.getAddress();if(!R)throw new B("toolbox_evm_no_signer_address");let D=M.connect(n),U=k({provider:t,isEIP1559Compatible:u,chain:e}),{maxFeePerGas:x,maxPriorityFeePerGas:c,gasPrice:H}=(await U())[s],Q=await M.getFunction(p).estimateGas(...i,T),N=await D[p](...i,{...T,gasLimit:Q,maxFeePerGas:x,maxPriorityFeePerGas:c,gasPrice:H,nonce:T?.nonce||await m.getTransactionCount(R)});return typeof N?.hash==="string"?N?.hash:N}let w=await M[p]?.(...i);return typeof w?.hash==="string"?w?.hash:w}}function yt({provider:t,chain:u}){return function n({assetAddress:e,spenderAddress:y,from:o}){return A({provider:t,isEIP1559Compatible:!0,chain:u})({contractAddress:e,abi:Y,funcName:"allowance",funcParams:[o,y]})}}function Xt({provider:t,chain:u}){return async function n({assetAddress:e,spenderAddress:y,from:o,amount:l=_}){let a=await yt({provider:t,chain:u})({assetAddress:e,spenderAddress:y,from:o});return nt.fromBigInt(a).gte(nt.fromBigInt(BigInt(l)))}}function Nt({signer:t,isEIP1559Compatible:u=!0,provider:n,chain:e}){return async function y({assetAddress:o,spenderAddress:l,feeOptionKey:a=f.Fast,amount:p,gasLimitFallback:i,from:T,nonce:s}){let m=[l,BigInt(p||_)],b=await t?.getAddress()||T,M={contractAddress:o,abi:Y,funcName:"approve",funcParams:m,signer:t,txOverrides:{from:b}};if(g(n)){let R=Z({provider:n,chain:e}),D=F(n),U=await R(M);return D(U)}return A({provider:n,isEIP1559Compatible:u,signer:t,chain:e})({...M,funcParams:m,txOverrides:{from:b,nonce:s,gasLimit:i?BigInt(i.toString()):void 0},feeOption:a})}}function St({signer:t,isEIP1559Compatible:u=!0,provider:n}){return async function e({assetValue:y,memo:o,recipient:l,feeOptionKey:a=f.Fast,sender:p,...i}){let{hexlify:T,toUtf8Bytes:s}=await import("ethers"),m=y.getBaseValue("bigint"),b=y.chain,M=p||await t?.getAddress(),w=lt({provider:n,signer:t,isEIP1559Compatible:u,chain:b});if(!M)throw new B("toolbox_evm_no_from_address");if(y.isGasAsset){let H={...i,from:M,to:l,value:m,data:T(s(o||"")),feeOptionKey:a};return w(H)}if(!I(y,b))throw new B("toolbox_evm_no_contract_address");let{maxFeePerGas:D,maxPriorityFeePerGas:U,gasPrice:x}=(await k({provider:n,isEIP1559Compatible:u,chain:b})())[a],c=await P({provider:n,signer:t,chain:b})({assetValue:y,memo:o,recipient:l,data:T(s(o||"")),sender:M,maxFeePerGas:D,maxPriorityFeePerGas:U,gasPrice:x});return w(c)}}function ot({provider:t,signer:u}){return function n({contractAddress:e,abi:y,funcName:o,funcParams:l=[],txOverrides:a}){if(!e)throw new B("toolbox_evm_no_contract_address");let p=O(e,y,t);return u?p.connect(u).getFunction(o).estimateGas(...l,a):p.getFunction(o).estimateGas(...l,a)}}function Vt({provider:t,signer:u}){return async function n({assetValue:e,recipient:y,memo:o,data:l,sender:a,funcName:p,funcParams:i,txOverrides:T}){let s=e.bigIntValue,m=e.isGasAsset?null:I(e,e.chain);if(m&&p)return ot({provider:t,signer:u})({contractAddress:m,abi:Y,funcName:p,funcParams:i,txOverrides:T});let{hexlify:b,toUtf8Bytes:M}=await import("ethers");return t.estimateGas({from:a,to:y,value:s,data:l?l:o?b(M(o)):void 0})}}var ht=(t)=>t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas;function lt({provider:t,signer:u,isEIP1559Compatible:n=!0,chain:e}){return async function y({feeOptionKey:o=f.Fast,...l}){let{from:a,to:p,data:i,value:T,...s}=l;if(!u)throw new B("toolbox_evm_no_signer");if(!p)throw new B("toolbox_evm_no_to_address");let m={...s,data:i||"0x",to:p,from:a,value:BigInt(T||0)};if(g(t))return F(t)(m);let b=a||await u.getAddress(),M=l.nonce||await t.getTransactionCount(b),w=(await t.getNetwork()).chainId,R=ht(m)||n,D=k({provider:t,isEIP1559Compatible:n,chain:e}),U=R&&!(m.maxFeePerGas&&m.maxPriorityFeePerGas)||!m.gasPrice?Object.entries((await D())[o]).reduce((c,[H,Q])=>({...c,[H]:V(BigInt(Q))}),{}):{},x;try{x=V(m.gasLimit||await t.estimateGas(m)*11n/10n)}catch(c){throw new B("toolbox_evm_error_estimating_gas_limit",{error:c})}try{let c={...m,chainId:w,type:R?2:0,gasLimit:x,nonce:M,...U};try{return(await u.sendTransaction(c)).hash}catch(H){let Q=await u.signTransaction({...c,from:b});return(await t.broadcastTransaction(Q)).hash}}catch(c){throw new B("toolbox_evm_error_sending_transaction",{error:c})}}}function P({provider:t,signer:u}){return async function n({assetValue:e,memo:y,recipient:o,data:l,sender:a,maxFeePerGas:p,maxPriorityFeePerGas:i,gasPrice:T,...s}){let m=e.getBaseValue("bigint"),b=e.chain,M=a||await u?.getAddress();if(!M)throw new B("toolbox_evm_no_from_address");if(kt(e)){let{hexlify:D,toUtf8Bytes:U}=await import("ethers");return{...s,from:M,to:o,value:m,data:l||D(U(y||""))}}let w=I(e,b);if(!w)throw new B("toolbox_evm_no_contract_address");return Z({provider:t,chain:e.chain})({contractAddress:w,abi:Y,funcName:"transfer",funcParams:[o,m],txOverrides:{from:M,maxFeePerGas:p,maxPriorityFeePerGas:i,gasPrice:T}})}}function jt({provider:t,signer:u,chain:n}){return async function e({assetAddress:y,spenderAddress:o,amount:l,from:a}){let p=await u?.getAddress()||a,i=Z({provider:t,chain:n}),T=[o,BigInt(l||_)];return await i({contractAddress:y,abi:Y,funcName:"approve",funcParams:T,txOverrides:{from:p}})}}async function G(t,u){let{JsonRpcProvider:n}=await import("ethers");return new n(u||pt.get("rpcUrls")[t])}var En=async({from:t,memo:u="",feeOptionKey:n=at.Fastest,assetValue:e,abi:y,funcName:o,funcParams:l,contractAddress:a,txOverrides:p})=>{let{getEvmToolbox:i}=await import("@swapkit/toolboxes/evm"),T=await i(e.chain),m=(await T.getBalance(t)).find(({symbol:c,chain:H})=>e?c===e.symbol:c===K.from({chain:H})?.symbol),b=(await T.estimateGasPrices())[n];if(!m)return K.from({chain:e.chain});if(e&&(m.chain!==e.chain||m.symbol!==e?.symbol))return m;let M=y&&o&&l&&a?await T.estimateCall({contractAddress:a,abi:y,funcName:o,funcParams:l,txOverrides:p}):await T.estimateGasLimit({sender:t,recipient:t,memo:u,assetValue:e}),w="maxFeePerGas"in b,R="gasPrice"in b&&b.gasPrice!==void 0;if(!(b&&(R||w)))throw new Error("Could not fetch fee data");let D=w?(b.maxFeePerGas||1n)+(b.maxPriorityFeePerGas||1n):b.gasPrice||1n,U=M*D,x=r.fromBigInt(m.getBaseValue("bigint")).sub(U.toString());return K.from({chain:m.chain,value:x.getValue("string")})};function V(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function mt({provider:t,isEIP1559Compatible:u=!0}){return async function n({feeOption:e=at.Fast,chain:y,...o}){let a=await k({provider:t,isEIP1559Compatible:u,chain:y})(),p=await t.estimateGas(o),i=K.from({chain:y}),{gasPrice:T,maxFeePerGas:s,maxPriorityFeePerGas:m}=a[e];if(!u&&T)return i.set(r.fromBigInt(T*p,i.decimal));if(s&&m){let b=(s+m)*p;return i.set(r.fromBigInt(b,i.decimal))}throw new Error("No gas price found")}}function it(t){return()=>L.Ethereum===t?void 0:{...Kt({chain:t}),chainId:It[t],rpcUrls:[pt.get("rpcUrls")[t]],blockExplorerUrls:[Ft[t]]}}function Tt(t){return![L.Arbitrum,L.BinanceSmartChain].includes(t)}function Kt({chain:t}){let u=gt[t];switch(t){case L.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{name:"Ethereum",symbol:L.Ethereum,decimals:u}};case L.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{name:"Avalanche",symbol:t,decimals:u}};case L.Base:return{chainName:"Base Mainnet",nativeCurrency:{name:"Ethereum",symbol:L.Ethereum,decimals:u}};case L.BinanceSmartChain:return{chainName:"BNB Chain",nativeCurrency:{name:"Binance Coin",symbol:"BNB",decimals:u}};case L.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{name:"Polygon",symbol:L.Polygon,decimals:u}};default:throw new Error(`Chain ${t} is not supported`)}}var Pt;((n)=>{n.Test="goerli";n.Main="homestead"})(Pt||={});import{Chain as J}from"@swapkit/helpers";import{Chain as $,FeeOption as _t,SKConfig as Ot}from"@swapkit/helpers";import{HDNodeWallet as At}from"ethers";import{P as Mt,match as vt}from"ts-pattern";var bt=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}];async function st({provider:t,...u}){let n=await W($.Ethereum)({provider:t,...u});async function e(y,o="0x5ba1e12693dc8f9c48aad8770482f4739beed696",l="aggregate",a=_t.Fast){let p=await n.createContractTxObject({contractAddress:o,abi:bt,funcName:l,funcParams:[y]});return n.sendTransaction({...p,feeOptionKey:a})}return{...n,multicall:e}}var wt=W($.Arbitrum),ct=W($.Avalanche),ft=W($.Base),Bt=W($.BinanceSmartChain),Rt=W($.Polygon);function W(t){return async function u({provider:n,...e}){let y=Ot.get("rpcUrls")[t],o=n||await G(t,y),l=Tt(t),a=vt(e).with({phrase:Mt.string},({phrase:i})=>At.fromPhrase(i).connect(o)).with({signer:Mt.any},({signer:i})=>i).otherwise(()=>{return});return{...j({provider:o,signer:a,isEIP1559Compatible:l,chain:t}),estimateTransactionFee:mt({provider:o,isEIP1559Compatible:l,chain:t}),getNetworkParams:it(t),getBalance:S(t).getBalance}}}import{BaseDecimal as rt,Chain as X,ChainId as dt,ChainToExplorerUrl as tn,SKConfig as Et}from"@swapkit/helpers";import{Contract as nn,HDNodeWallet as un}from"ethers";import{P as Ut}from"ts-pattern";import{match as en}from"ts-pattern";var Dt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];var yn="0x420000000000000000000000000000000000000f";function d(t){return new nn(yn,Dt,t)}function v(t){return function u(){let n=d(t);if(n&&"l1BaseFee"in n)return n?.l1BaseFee();return}}function Lt(t){return async function u({from:n,to:e,nonce:y,...o}){let{Transaction:l}=await import("ethers");if(!e)throw new Error("Missing to address");let a={...o,to:e,nonce:y?y:n?await t.getTransactionCount(n):0};return l.from(a).serialized}}function xt(t){return async function u(n){let e=d(t),y=await Lt(t)(n);if(e&&"getL1Fee"in e)return e.getL1Fee(y)}}function Ht(t){return async function u(n){let e=await t.send("eth_gasPrice",[]),y=await t.estimateGas(n);return e.mul(y)}}function on(t){return async function u(n){let e=await xt(t)(n),y=await Ht(t)(n);return e.add(y)}}function ln(t){return async function u(n){let e=d(t),y=await Lt(t)(n);if(e&&"getL1GasUsed"in e)return e.getL1GasUsed(y)}}var an=()=>({chainId:dt.OptimismHex,chainName:"Optimism",nativeCurrency:{name:"Ethereum",symbol:X.Ethereum,decimals:rt.ETH},rpcUrls:[Et.get("rpcUrls")[X.Optimism]],blockExplorerUrls:[tn[X.Optimism]]});async function qt({provider:t,...u}){let n=X.Optimism,e=Et.get("rpcUrls")[n],y=t||await G(n,e),o=en(u).with({phrase:Ut.string},({phrase:p})=>un.fromPhrase(p).connect(y)).with({signer:Ut.any},({signer:p})=>p).otherwise(()=>{return}),l=j({provider:y,signer:o}),a=v(y);return{...l,estimateL1Gas:ln(y),estimateL1GasCost:xt(y),estimateL2GasCost:Ht(y),estimateTotalGasCost:on(y),getBalance:S(X.Optimism).getBalance,getL1GasPrice:a,getNetworkParams:an}}async function _n(t,u){let n={...u,provider:u?.provider||await G(t)};switch(t){case J.Avalanche:return ct(n);case J.Arbitrum:return wt(n);case J.Base:return ft(n);case J.Optimism:return qt(n);case J.Polygon:return Rt(n);case J.BinanceSmartChain:return Bt(n);case J.Ethereum:return st(n);default:throw new Error(`Chain ${t} is not supported`)}}export{V as toHexString,fn as toChecksumAddress,Yt as isStateChangingCall,g as isBrowserProvider,I as getTokenAddress,G as getProvider,it as getNetworkParams,v as getL1GasPriceFetcher,Tt as getIsEIP1559Compatible,_n as getEvmToolbox,S as getEvmApi,mt as getEstimateTransactionFee,k as getEstimateGasPrices,F as getEIP1193SendTransaction,Z as getCreateContractTxObject,Wt as getCreateContract,Bn as getChecksumAddressFromAsset,$t as evmValidateAddress,En as estimateMaxSendableAmount,ln as estimateL1Gas,Tn as createCustomEvmApi,O as createContract,qt as OPToolbox,_ as MAX_APPROVAL,Rt as MATICToolbox,Pt as EthNetwork,st as ETHToolbox,j as BaseEVMToolbox,Bt as BSCToolbox,ft as BASEToolbox,ct as AVAXToolbox,wt as ARBToolbox};
|
|
1
|
+
import{b as tt}from"../chunk-0h4xdrwz.js";import{c as J,d as C}from"../chunk-38ztynv0.js";import{SKConfig as xt,warnOnce as Jt}from"@swapkit/helpers";function S(t){let u=xt.get("apis")[t];if(u)return Jt(!0,"Using custom EVM API. Be sure to implement all methods to avoid issues."),u;return Ct(t)}function Tn(t){return t}function Ct(t){return{getBalance:tt(t)}}import{AssetValue as K,BaseDecimal as gt,Chain as L,ChainToExplorerUrl as Ft,ChainToHexChainId as It,FeeOption as at,SKConfig as pt,SwapKitNumber as r}from"@swapkit/helpers";import{Chain as E,ContractAddress as q,FeeOption as f,SwapKitError as B,SwapKitNumber as nt,isGasAsset as kt}from"@swapkit/helpers";import{erc20ABI as Y}from"@swapkit/helpers/contracts";import{BrowserProvider as Gt,Contract as ut,Interface as et,getAddress as h}from"ethers";var _=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function j({chain:t=E.Ethereum,provider:u,signer:n,isEIP1559Compatible:e=!0}){return{getAddress:()=>{return n?n.getAddress():void 0},call:A({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),estimateCall:yt({provider:u,signer:n}),EIP1193SendTransaction:F(u),approve:Nt({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),approvedAmount:ot({provider:u,chain:t}),broadcastTransaction:u.broadcastTransaction,createApprovalTx:jt({provider:u,signer:n,chain:t}),createContract:Wt({provider:u,chain:t}),createContractTxObject:Z({provider:u,chain:t}),createTransferTx:P({provider:u,signer:n,chain:t}),createTransaction:P({provider:u,signer:n,chain:t}),estimateGasLimit:Vt({provider:u,signer:n,chain:t}),estimateGasPrices:k({chain:t,provider:u,isEIP1559Compatible:e}),isApproved:Xt({provider:u,chain:t}),sendTransaction:lt({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),signMessage:n?.signMessage,transfer:St({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),validateAddress:(o)=>$t({address:o})}}function $t({address:t}){try{return h(t),!0}catch(u){return!1}}function g(t){return t instanceof Gt}function O(t,u,n){return new ut(t,et.from(u),n)}function Wt({provider:t}){return function u(n,e){return new ut(n,et.from(e),t)}}var Qt=["payable","nonpayable"];function Yt({abi:t,funcName:u}){let n=t.find((e)=>e.name===u);if(!n)throw new B("toolbox_evm_no_abi_fragment",{funcName:u});return n.stateMutability&&Qt.includes(n.stateMutability)}function fn(t){return h(t)}function F(t){return function u({value:n,...e}){if(!g(t))throw new B("toolbox_evm_provider_not_eip1193_compatible");return t.send("eth_sendTransaction",[{value:V(BigInt(n||0)),...e}])}}function Bn(t,u){let n=I(t,u);if(n)return h(n.toLowerCase());throw new B("toolbox_evm_invalid_gas_asset_address")}var Zt={[E.Arbitrum]:q.ARB,[E.Avalanche]:q.AVAX,[E.Base]:q.BASE,[E.BinanceSmartChain]:q.BSC,[E.Ethereum]:q.ETH,[E.Optimism]:q.OP,[E.Polygon]:q.MATIC};function I({chain:t,symbol:u,ticker:n},e){try{let o=t===E.BinanceSmartChain&&u==="BNB"&&n==="BNB",y=t===e&&u===e&&n===e,l=[E.Arbitrum,E.Base].includes(t)&&u==="ETH"&&n==="ETH";if(y||o||l)return Zt[e];return h(u.slice(n.length+1).replace(/^0X/,""))}catch(o){return null}}function Z({provider:t}){return async({contractAddress:u,abi:n,funcName:e,funcParams:o=[],txOverrides:y})=>O(u,n,t).getFunction(e).populateTransaction(...o.concat(y).filter((l)=>typeof l!=="undefined"))}function k({chain:t,provider:u,isEIP1559Compatible:n=!0}){if(t===E.Arbitrum)return async function e(){try{let{gasPrice:o}=await u.getFeeData();if(!o)throw new Error("No fee data available");return{[f.Average]:{gasPrice:o},[f.Fast]:{gasPrice:o},[f.Fastest]:{gasPrice:o}}}catch(o){throw new Error(`Failed to estimate gas price: ${o.msg??o.toString()}`)}};if(t===E.Optimism)return async function e(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:y,gasPrice:l}=await u.getFeeData(),p=v(u)(),a=l;if(!(o&&y))throw new Error("No fee data available");return{[f.Average]:{l1GasPrice:p,gasPrice:a,maxFeePerGas:o,maxPriorityFeePerGas:y},[f.Fast]:{l1GasPrice:(p||0n)*15n/10n,gasPrice:a*15n/10n,maxFeePerGas:o,maxPriorityFeePerGas:y*15n/10n},[f.Fastest]:{l1GasPrice:(p||0n)*2n,gasPrice:a*2n,maxFeePerGas:o,maxPriorityFeePerGas:y*2n}}}catch(o){throw new Error(`Failed to estimate gas price: ${o.msg??o.toString()}`)}};return async function e(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:y,gasPrice:l}=await u.getFeeData();if(n){if(o===null||y===null)throw new B("toolbox_evm_no_fee_data");return{[f.Average]:{maxFeePerGas:o,maxPriorityFeePerGas:y},[f.Fast]:{maxFeePerGas:o*15n/10n,maxPriorityFeePerGas:y*15n/10n},[f.Fastest]:{maxFeePerGas:o*2n,maxPriorityFeePerGas:y*2n}}}if(!l)throw new B("toolbox_evm_no_gas_price");return{[f.Average]:{gasPrice:l},[f.Fast]:{gasPrice:l*15n/10n},[f.Fastest]:{gasPrice:l*2n}}}catch(o){throw new Error(`Failed to estimate gas price: ${o.msg??o.toString()}`)}}}function A({provider:t,isEIP1559Compatible:u,signer:n,chain:e}){return async function o({callProvider:y,contractAddress:l,abi:p,funcName:a,funcParams:i=[],txOverrides:T={},feeOption:s=f.Fast}){let m=y||t;if(!l)throw new Error("contractAddress must be provided");let b=Yt({abi:p,funcName:a});if(b&&g(m)&&n){let R=Z({provider:m,chain:e}),D=T?.from||await n?.getAddress(),U=await R({contractAddress:l,abi:p,funcName:a,funcParams:i,txOverrides:{...T,from:D}});return F(m)(U)}let M=O(l,p,m);if(b){if(!n)throw new B("toolbox_evm_no_signer");let R=T?.from||await n.getAddress();if(!R)throw new B("toolbox_evm_no_signer_address");let D=M.connect(n),U=k({provider:t,isEIP1559Compatible:u,chain:e}),{maxFeePerGas:H,maxPriorityFeePerGas:c,gasPrice:z}=(await U())[s],Q=await M.getFunction(a).estimateGas(...i,T),N=await D[a](...i,{...T,gasLimit:Q,maxFeePerGas:H,maxPriorityFeePerGas:c,gasPrice:z,nonce:T?.nonce||await m.getTransactionCount(R)});return typeof N?.hash==="string"?N?.hash:N}let w=await M[a]?.(...i);return typeof w?.hash==="string"?w?.hash:w}}function ot({provider:t,chain:u}){return function n({assetAddress:e,spenderAddress:o,from:y}){return A({provider:t,isEIP1559Compatible:!0,chain:u})({contractAddress:e,abi:Y,funcName:"allowance",funcParams:[y,o]})}}function Xt({provider:t,chain:u}){return async function n({assetAddress:e,spenderAddress:o,from:y,amount:l=_}){let p=await ot({provider:t,chain:u})({assetAddress:e,spenderAddress:o,from:y});return nt.fromBigInt(p).gte(nt.fromBigInt(BigInt(l)))}}function Nt({signer:t,isEIP1559Compatible:u=!0,provider:n,chain:e}){return async function o({assetAddress:y,spenderAddress:l,feeOptionKey:p=f.Fast,amount:a,gasLimitFallback:i,from:T,nonce:s}){let m=[l,BigInt(a||_)],b=await t?.getAddress()||T,M={contractAddress:y,abi:Y,funcName:"approve",funcParams:m,signer:t,txOverrides:{from:b}};if(g(n)){let R=Z({provider:n,chain:e}),D=F(n),U=await R(M);return D(U)}return A({provider:n,isEIP1559Compatible:u,signer:t,chain:e})({...M,funcParams:m,txOverrides:{from:b,nonce:s,gasLimit:i?BigInt(i.toString()):void 0},feeOption:p})}}function St({signer:t,isEIP1559Compatible:u=!0,provider:n}){return async function e({assetValue:o,memo:y,recipient:l,feeOptionKey:p=f.Fast,sender:a,...i}){let{hexlify:T,toUtf8Bytes:s}=await import("ethers"),m=o.getBaseValue("bigint"),b=o.chain,M=a||await t?.getAddress(),w=lt({provider:n,signer:t,isEIP1559Compatible:u,chain:b});if(!M)throw new B("toolbox_evm_no_from_address");if(o.isGasAsset){let z={...i,from:M,to:l,value:m,data:T(s(y||"")),feeOptionKey:p};return w(z)}if(!I(o,b))throw new B("toolbox_evm_no_contract_address");let{maxFeePerGas:D,maxPriorityFeePerGas:U,gasPrice:H}=(await k({provider:n,isEIP1559Compatible:u,chain:b})())[p],c=await P({provider:n,signer:t,chain:b})({assetValue:o,memo:y,recipient:l,data:T(s(y||"")),sender:M,maxFeePerGas:D,maxPriorityFeePerGas:U,gasPrice:H});return w(c)}}function yt({provider:t,signer:u}){return function n({contractAddress:e,abi:o,funcName:y,funcParams:l=[],txOverrides:p}){if(!e)throw new B("toolbox_evm_no_contract_address");let a=O(e,o,t);return u?a.connect(u).getFunction(y).estimateGas(...l,p):a.getFunction(y).estimateGas(...l,p)}}function Vt({provider:t,signer:u}){return async function n({assetValue:e,recipient:o,memo:y,data:l,sender:p,funcName:a,funcParams:i,txOverrides:T}){let s=e.bigIntValue,m=e.isGasAsset?null:I(e,e.chain);if(m&&a)return yt({provider:t,signer:u})({contractAddress:m,abi:Y,funcName:a,funcParams:i,txOverrides:T});let{hexlify:b,toUtf8Bytes:M}=await import("ethers");return t.estimateGas({from:p,to:o,value:s,data:l?l:y?b(M(y)):void 0})}}var ht=(t)=>t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas;function lt({provider:t,signer:u,isEIP1559Compatible:n=!0,chain:e}){return async function o({feeOptionKey:y=f.Fast,...l}){let{from:p,to:a,data:i,value:T,...s}=l;if(!u)throw new B("toolbox_evm_no_signer");if(!a)throw new B("toolbox_evm_no_to_address");let m={...s,data:i||"0x",to:a,from:p,value:BigInt(T||0)};if(g(t))return F(t)(m);let b=p||await u.getAddress(),M=l.nonce||await t.getTransactionCount(b),w=(await t.getNetwork()).chainId,R=ht(m)||n,D=k({provider:t,isEIP1559Compatible:n,chain:e}),U=R&&!(m.maxFeePerGas&&m.maxPriorityFeePerGas)||!m.gasPrice?Object.entries((await D())[y]).reduce((c,[z,Q])=>({...c,[z]:V(BigInt(Q))}),{}):{},H;try{H=V(m.gasLimit||await t.estimateGas(m)*11n/10n)}catch(c){throw new B("toolbox_evm_error_estimating_gas_limit",{error:c})}try{let c={...m,chainId:w,type:R?2:0,gasLimit:H,nonce:M,...U};try{return(await u.sendTransaction(c)).hash}catch(z){let Q=await u.signTransaction({...c,from:b});return(await t.broadcastTransaction(Q)).hash}}catch(c){throw new B("toolbox_evm_error_sending_transaction",{error:c})}}}function P({provider:t,signer:u}){return async function n({assetValue:e,memo:o,recipient:y,data:l,sender:p,maxFeePerGas:a,maxPriorityFeePerGas:i,gasPrice:T,...s}){let m=e.getBaseValue("bigint"),b=e.chain,M=p||await u?.getAddress();if(!M)throw new B("toolbox_evm_no_from_address");if(kt(e)){let{hexlify:D,toUtf8Bytes:U}=await import("ethers");return{...s,from:M,to:y,value:m,data:l||D(U(o||""))}}let w=I(e,b);if(!w)throw new B("toolbox_evm_no_contract_address");return Z({provider:t,chain:e.chain})({contractAddress:w,abi:Y,funcName:"transfer",funcParams:[y,m],txOverrides:{from:M,maxFeePerGas:a,maxPriorityFeePerGas:i,gasPrice:T}})}}function jt({provider:t,signer:u,chain:n}){return async function e({assetAddress:o,spenderAddress:y,amount:l,from:p}){let a=await u?.getAddress()||p,i=Z({provider:t,chain:n}),T=[y,BigInt(l||_)];return await i({contractAddress:o,abi:Y,funcName:"approve",funcParams:T,txOverrides:{from:a}})}}async function G(t,u){let{JsonRpcProvider:n}=await import("ethers");return new n(u||pt.get("rpcUrls")[t])}var En=async({from:t,memo:u="",feeOptionKey:n=at.Fastest,assetValue:e,abi:o,funcName:y,funcParams:l,contractAddress:p,txOverrides:a})=>{let{getEvmToolbox:i}=await import("@swapkit/toolboxes/evm"),T=await i(e.chain),m=(await T.getBalance(t)).find(({symbol:c,chain:z})=>e?c===e.symbol:c===K.from({chain:z})?.symbol),b=(await T.estimateGasPrices())[n];if(!m)return K.from({chain:e.chain});if(e&&(m.chain!==e.chain||m.symbol!==e?.symbol))return m;let M=o&&y&&l&&p?await T.estimateCall({contractAddress:p,abi:o,funcName:y,funcParams:l,txOverrides:a}):await T.estimateGasLimit({sender:t,recipient:t,memo:u,assetValue:e}),w="maxFeePerGas"in b,R="gasPrice"in b&&b.gasPrice!==void 0;if(!(b&&(R||w)))throw new Error("Could not fetch fee data");let D=w?(b.maxFeePerGas||1n)+(b.maxPriorityFeePerGas||1n):b.gasPrice||1n,U=M*D,H=r.fromBigInt(m.getBaseValue("bigint")).sub(U.toString());return K.from({chain:m.chain,value:H.getValue("string")})};function V(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function mt({provider:t,isEIP1559Compatible:u=!0}){return async function n({feeOption:e=at.Fast,chain:o,...y}){let p=await k({provider:t,isEIP1559Compatible:u,chain:o})(),a=await t.estimateGas(y),i=K.from({chain:o}),{gasPrice:T,maxFeePerGas:s,maxPriorityFeePerGas:m}=p[e];if(!u&&T)return i.set(r.fromBigInt(T*a,i.decimal));if(s&&m){let b=(s+m)*a;return i.set(r.fromBigInt(b,i.decimal))}throw new Error("No gas price found")}}function it(t){return()=>L.Ethereum===t?void 0:{...Kt({chain:t}),chainId:It[t],rpcUrls:[pt.get("rpcUrls")[t]],blockExplorerUrls:[Ft[t]]}}function Tt(t){return![L.Arbitrum,L.BinanceSmartChain].includes(t)}function Kt({chain:t}){let u=gt[t];switch(t){case L.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{name:"Ethereum",symbol:L.Ethereum,decimals:u}};case L.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{name:"Avalanche",symbol:t,decimals:u}};case L.Base:return{chainName:"Base Mainnet",nativeCurrency:{name:"Ethereum",symbol:L.Ethereum,decimals:u}};case L.BinanceSmartChain:return{chainName:"BNB Chain",nativeCurrency:{name:"Binance Coin",symbol:"BNB",decimals:u}};case L.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{name:"Polygon",symbol:L.Polygon,decimals:u}};default:throw new Error(`Chain ${t} is not supported`)}}var Pt;((n)=>{n.Test="goerli";n.Main="homestead"})(Pt||={});import{Chain as x}from"@swapkit/helpers";import{Chain as $,FeeOption as _t,SKConfig as Ot}from"@swapkit/helpers";import{HDNodeWallet as At}from"ethers";import{P as Mt,match as vt}from"ts-pattern";var bt=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}];async function st({provider:t,...u}){let n=await W($.Ethereum)({provider:t,...u});async function e(o,y="0x5ba1e12693dc8f9c48aad8770482f4739beed696",l="aggregate",p=_t.Fast){let a=await n.createContractTxObject({contractAddress:y,abi:bt,funcName:l,funcParams:[o]});return n.sendTransaction({...a,feeOptionKey:p})}return{...n,multicall:e}}var wt=W($.Arbitrum),ct=W($.Avalanche),ft=W($.Base),Bt=W($.BinanceSmartChain),Rt=W($.Polygon);function W(t){return async function u({provider:n,...e}){let o=Ot.get("rpcUrls")[t],y=n||await G(t,o),l=Tt(t),p=vt(e).with({phrase:Mt.string},({phrase:i})=>At.fromPhrase(i).connect(y)).with({signer:Mt.any},({signer:i})=>i).otherwise(()=>{return});return{...j({provider:y,signer:p,isEIP1559Compatible:l,chain:t}),estimateTransactionFee:mt({provider:y,isEIP1559Compatible:l,chain:t}),getNetworkParams:it(t),getBalance:S(t).getBalance}}}import{BaseDecimal as rt,Chain as X,ChainId as dt,ChainToExplorerUrl as tn,SKConfig as Et}from"@swapkit/helpers";import{Contract as nn,HDNodeWallet as un}from"ethers";import{P as Ut}from"ts-pattern";import{match as en}from"ts-pattern";var Dt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];var on="0x420000000000000000000000000000000000000f";function d(t){return new nn(on,Dt,t)}function v(t){return function u(){let n=d(t);if(n&&"l1BaseFee"in n)return n?.l1BaseFee();return}}function Lt(t){return async function u({from:n,to:e,nonce:o,...y}){let{Transaction:l}=await import("ethers");if(!e)throw new Error("Missing to address");return l.from({...y,authorizationList:y.authorizationList,to:e,nonce:o?o:n?await t.getTransactionCount(n):0}).serialized}}function Ht(t){return async function u(n){let e=d(t),o=await Lt(t)(n);if(e&&"getL1Fee"in e)return e.getL1Fee(o)}}function zt(t){return async function u(n){let e=await t.send("eth_gasPrice",[]),o=await t.estimateGas(n);return e.mul(o)}}function yn(t){return async function u(n){let e=await Ht(t)(n),o=await zt(t)(n);return e.add(o)}}function ln(t){return async function u(n){let e=d(t),o=await Lt(t)(n);if(e&&"getL1GasUsed"in e)return e.getL1GasUsed(o)}}var an=()=>({chainId:dt.OptimismHex,chainName:"Optimism",nativeCurrency:{name:"Ethereum",symbol:X.Ethereum,decimals:rt.ETH},rpcUrls:[Et.get("rpcUrls")[X.Optimism]],blockExplorerUrls:[tn[X.Optimism]]});async function qt({provider:t,...u}){let n=X.Optimism,e=Et.get("rpcUrls")[n],o=t||await G(n,e),y=en(u).with({phrase:Ut.string},({phrase:a})=>un.fromPhrase(a).connect(o)).with({signer:Ut.any},({signer:a})=>a).otherwise(()=>{return}),l=j({provider:o,signer:y}),p=v(o);return{...l,estimateL1Gas:ln(o),estimateL1GasCost:Ht(o),estimateL2GasCost:zt(o),estimateTotalGasCost:yn(o),getBalance:S(X.Optimism).getBalance,getL1GasPrice:p,getNetworkParams:an}}async function _n(t,u){let n={...u,provider:u?.provider||await G(t)};switch(t){case x.Avalanche:return ct(n);case x.Arbitrum:return wt(n);case x.Base:return ft(n);case x.Optimism:return qt(n);case x.Polygon:return Rt(n);case x.BinanceSmartChain:return Bt(n);case x.Ethereum:return st(n);default:throw new Error(`Chain ${t} is not supported`)}}export{V as toHexString,fn as toChecksumAddress,Yt as isStateChangingCall,g as isBrowserProvider,I as getTokenAddress,G as getProvider,it as getNetworkParams,v as getL1GasPriceFetcher,Tt as getIsEIP1559Compatible,_n as getEvmToolbox,S as getEvmApi,mt as getEstimateTransactionFee,k as getEstimateGasPrices,F as getEIP1193SendTransaction,Z as getCreateContractTxObject,Wt as getCreateContract,Bn as getChecksumAddressFromAsset,$t as evmValidateAddress,En as estimateMaxSendableAmount,ln as estimateL1Gas,Tn as createCustomEvmApi,O as createContract,qt as OPToolbox,_ as MAX_APPROVAL,Rt as MATICToolbox,Pt as EthNetwork,st as ETHToolbox,j as BaseEVMToolbox,Bt as BSCToolbox,ft as BASEToolbox,ct as AVAXToolbox,wt as ARBToolbox};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=F518B549C1B7915464756E2164756E21
|
package/dist/evm/index.js.map
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"import { Chain, type EVMChain } from \"@swapkit/helpers\";\n\nimport { getProvider } from \"../helpers\";\nimport type { EVMToolboxParams } from \"../types\";\nimport { ARBToolbox, AVAXToolbox, BASEToolbox, BSCToolbox, ETHToolbox, MATICToolbox } from \"./evm\";\nimport { OPToolbox } from \"./op\";\n\nexport async function getEvmToolbox<T extends EVMChain>(chain: T, params?: EVMToolboxParams) {\n const toolboxParams = {\n ...params,\n provider: params?.provider || (await getProvider(chain)),\n };\n\n switch (chain) {\n case Chain.Avalanche:\n return AVAXToolbox(toolboxParams);\n case Chain.Arbitrum:\n return ARBToolbox(toolboxParams);\n case Chain.Base:\n return BASEToolbox(toolboxParams);\n case Chain.Optimism:\n return OPToolbox(toolboxParams);\n case Chain.Polygon:\n return MATICToolbox(toolboxParams);\n case Chain.BinanceSmartChain:\n return BSCToolbox(toolboxParams);\n case Chain.Ethereum:\n return ETHToolbox(toolboxParams);\n default:\n throw new Error(`Chain ${chain} is not supported`);\n }\n}\n\nexport * from \"./baseEVMToolbox\";\nexport * from \"./evm\";\nexport * from \"./op\";\n",
|
|
10
10
|
"import { Chain, type EVMChain, FeeOption, SKConfig } from \"@swapkit/helpers\";\nimport { HDNodeWallet } from \"ethers\";\nimport { P, match } from \"ts-pattern\";\nimport { getEvmApi } from \"../api\";\nimport { multicallAbi } from \"../contracts/eth/multicall\";\nimport {\n getEstimateTransactionFee,\n getIsEIP1559Compatible,\n getNetworkParams,\n getProvider,\n} from \"../helpers\";\nimport type { EVMToolboxParams } from \"../types\";\nimport { BaseEVMToolbox } from \"./baseEVMToolbox\";\n\nexport async function ETHToolbox({ provider, ...signer }: EVMToolboxParams) {\n const evmToolbox = await createEvmToolbox(Chain.Ethereum)({\n provider,\n ...signer,\n });\n async function multicall(\n callTuples: { address: string; data: string }[],\n multicallAddress = \"0x5ba1e12693dc8f9c48aad8770482f4739beed696\",\n funcName = \"aggregate\",\n feeOptionKey: FeeOption = FeeOption.Fast,\n ) {\n const txObject = await evmToolbox.createContractTxObject({\n contractAddress: multicallAddress,\n abi: multicallAbi,\n funcName,\n funcParams: [callTuples],\n });\n\n return evmToolbox.sendTransaction({ ...txObject, feeOptionKey });\n }\n\n return { ...evmToolbox, multicall };\n}\n\nexport const ARBToolbox = createEvmToolbox(Chain.Arbitrum);\nexport const AVAXToolbox = createEvmToolbox(Chain.Avalanche);\nexport const BASEToolbox = createEvmToolbox(Chain.Base);\nexport const BSCToolbox = createEvmToolbox(Chain.BinanceSmartChain);\nexport const MATICToolbox = createEvmToolbox(Chain.Polygon);\n\nfunction createEvmToolbox<C extends EVMChain>(chain: C) {\n return async function createEvmToolbox({\n provider: providerParam,\n ...toolboxSignerParams\n }: EVMToolboxParams) {\n const rpcUrl = SKConfig.get(\"rpcUrls\")[chain];\n\n const provider = providerParam || (await getProvider(chain, rpcUrl));\n\n const isEIP1559Compatible = getIsEIP1559Compatible(chain);\n const signer = match(toolboxSignerParams)\n .with({ phrase: P.string }, ({ phrase }) => HDNodeWallet.fromPhrase(phrase).connect(provider))\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const evmToolbox = BaseEVMToolbox({ provider, signer, isEIP1559Compatible, chain });\n\n return {\n ...evmToolbox,\n estimateTransactionFee: getEstimateTransactionFee({ provider, isEIP1559Compatible, chain }),\n getNetworkParams: getNetworkParams(chain),\n getBalance: getEvmApi(chain).getBalance,\n };\n };\n}\n",
|
|
11
11
|
"export const multicallAbi = [\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"aggregate\",\n outputs: [\n { internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" },\n { internalType: \"bytes[]\", name: \"returnData\", type: \"bytes[]\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"blockAndAggregate\",\n outputs: [\n { internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" },\n { internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" },\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" }],\n name: \"getBlockHash\",\n outputs: [{ internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getBlockNumber\",\n outputs: [{ internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockCoinbase\",\n outputs: [{ internalType: \"address\", name: \"coinbase\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockDifficulty\",\n outputs: [{ internalType: \"uint256\", name: \"difficulty\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockGasLimit\",\n outputs: [{ internalType: \"uint256\", name: \"gaslimit\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockTimestamp\",\n outputs: [{ internalType: \"uint256\", name: \"timestamp\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"addr\", type: \"address\" }],\n name: \"getEthBalance\",\n outputs: [{ internalType: \"uint256\", name: \"balance\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getLastBlockHash\",\n outputs: [{ internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"bool\", name: \"requireSuccess\", type: \"bool\" },\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"tryAggregate\",\n outputs: [\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"bool\", name: \"requireSuccess\", type: \"bool\" },\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"tryBlockAndAggregate\",\n outputs: [\n { internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" },\n { internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" },\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n",
|
|
12
|
-
"import { BaseDecimal, Chain, ChainId, ChainToExplorerUrl, SKConfig } from \"@swapkit/helpers\";\nimport type {
|
|
12
|
+
"import { BaseDecimal, Chain, ChainId, ChainToExplorerUrl, SKConfig } from \"@swapkit/helpers\";\nimport type {\n Authorization,\n BrowserProvider,\n JsonRpcProvider,\n Provider,\n TransactionRequest,\n} from \"ethers\";\nimport { Contract, HDNodeWallet } from \"ethers\";\n\nimport { P } from \"ts-pattern\";\nimport { match } from \"ts-pattern\";\nimport { getEvmApi } from \"../api\";\nimport { gasOracleAbi } from \"../contracts/op/gasOracle\";\nimport { getProvider } from \"../helpers\";\nimport type { EVMToolboxParams } from \"../types\";\nimport { BaseEVMToolbox } from \"./baseEVMToolbox\";\n\nconst GAS_PRICE_ORACLE_ADDRESS = \"0x420000000000000000000000000000000000000f\";\n\nfunction connectGasPriceOracle<P extends Provider>(provider: P) {\n return new Contract(GAS_PRICE_ORACLE_ADDRESS, gasOracleAbi, provider);\n}\n\nexport function getL1GasPriceFetcher<P extends Provider>(provider: P) {\n return function getL1GasPrice() {\n const gasPriceOracle = connectGasPriceOracle(provider);\n\n if (gasPriceOracle && \"l1BaseFee\" in gasPriceOracle) {\n return gasPriceOracle?.l1BaseFee() as unknown as bigint;\n }\n\n return undefined;\n };\n}\n\nfunction serializeTx<P extends JsonRpcProvider | BrowserProvider>(provider: P) {\n return async function serializeTx({ from, to, nonce, ...tx }: TransactionRequest) {\n const { Transaction } = await import(\"ethers\");\n\n if (!to) throw new Error(\"Missing to address\");\n\n return Transaction.from({\n ...tx,\n authorizationList: tx.authorizationList as Authorization[],\n to: to as string,\n nonce: nonce ? nonce : from ? await provider.getTransactionCount(from) : 0,\n }).serialized;\n };\n}\n\nfunction estimateL1GasCost<P extends JsonRpcProvider | BrowserProvider>(provider: P) {\n return async function estimateL1GasCost(tx: TransactionRequest) {\n const gasPriceOracle = connectGasPriceOracle(provider);\n const serializedTx = await serializeTx(provider)(tx);\n\n if (gasPriceOracle && \"getL1Fee\" in gasPriceOracle) {\n return gasPriceOracle.getL1Fee(serializedTx);\n }\n };\n}\n\nfunction estimateL2GasCost<P extends JsonRpcProvider | BrowserProvider>(provider: P) {\n return async function estimateL2GasCost(tx: TransactionRequest) {\n const l2GasPrice = await provider.send(\"eth_gasPrice\", []);\n const l2GasCost = await provider.estimateGas(tx);\n return l2GasPrice.mul(l2GasCost);\n };\n}\n\nfunction estimateTotalGasCost<P extends JsonRpcProvider | BrowserProvider>(provider: P) {\n return async function estimateTotalGasCost(tx: TransactionRequest) {\n const l1GasCost = await estimateL1GasCost(provider)(tx);\n const l2GasCost = await estimateL2GasCost(provider)(tx);\n return l1GasCost.add(l2GasCost);\n };\n}\n\nexport function estimateL1Gas<P extends JsonRpcProvider | BrowserProvider>(provider: P) {\n return async function estimateL1Gas(tx: TransactionRequest) {\n const gasPriceOracle = connectGasPriceOracle(provider);\n const serializedTx = await serializeTx(provider)(tx);\n\n if (gasPriceOracle && \"getL1GasUsed\" in gasPriceOracle) {\n return gasPriceOracle.getL1GasUsed(serializedTx);\n }\n };\n}\n\nconst getNetworkParams = () => ({\n chainId: ChainId.OptimismHex,\n chainName: \"Optimism\",\n nativeCurrency: { name: \"Ethereum\", symbol: Chain.Ethereum, decimals: BaseDecimal.ETH },\n rpcUrls: [SKConfig.get(\"rpcUrls\")[Chain.Optimism]],\n blockExplorerUrls: [ChainToExplorerUrl[Chain.Optimism]],\n});\n\nexport async function OPToolbox({\n provider: providerParam,\n ...toolboxSignerParams\n}: EVMToolboxParams) {\n const chain = Chain.Optimism;\n const rpcUrl = SKConfig.get(\"rpcUrls\")[chain];\n const provider = providerParam || (await getProvider(chain, rpcUrl));\n const signer = match(toolboxSignerParams)\n .with({ phrase: P.string }, ({ phrase }) => HDNodeWallet.fromPhrase(phrase).connect(provider))\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const evmToolbox = BaseEVMToolbox({ provider, signer });\n const getL1GasPrice = getL1GasPriceFetcher(provider);\n\n return {\n ...evmToolbox,\n estimateL1Gas: estimateL1Gas(provider),\n estimateL1GasCost: estimateL1GasCost(provider),\n estimateL2GasCost: estimateL2GasCost(provider),\n estimateTotalGasCost: estimateTotalGasCost(provider),\n getBalance: getEvmApi(Chain.Optimism).getBalance,\n getL1GasPrice,\n getNetworkParams,\n };\n}\n",
|
|
13
13
|
"export const gasOracleAbi = [\n {\n inputs: [{ internalType: \"address\", name: \"_owner\", type: \"address\" }],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"DecimalsUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"GasPriceUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"L1BaseFeeUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"OverheadUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"previousOwner\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"newOwner\", type: \"address\" },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"ScalarUpdated\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"decimals\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"gasPrice\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"bytes\", name: \"_data\", type: \"bytes\" }],\n name: \"getL1Fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"bytes\", name: \"_data\", type: \"bytes\" }],\n name: \"getL1GasUsed\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"l1BaseFee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"overhead\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"scalar\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"_decimals\", type: \"uint256\" }],\n name: \"setDecimals\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"_gasPrice\", type: \"uint256\" }],\n name: \"setGasPrice\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"_baseFee\", type: \"uint256\" }],\n name: \"setL1BaseFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"_overhead\", type: \"uint256\" }],\n name: \"setOverhead\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"_scalar\", type: \"uint256\" }],\n name: \"setScalar\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"newOwner\", type: \"address\" }],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n"
|
|
14
14
|
],
|
|
15
|
-
"mappings": "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",
|
|
16
|
-
"debugId": "
|
|
15
|
+
"mappings": "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",
|
|
16
|
+
"debugId": "F518B549C1B7915464756E2164756E21",
|
|
17
17
|
"names": []
|
|
18
18
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var h={};C(h,{getToolbox:()=>T,getFeeEstimator:()=>d,getAddressValidator:()=>u});module.exports=y(h);var o=require("@swapkit/helpers");async function u(){let{match:i}=await import("ts-pattern"),{cosmosValidateAddress:
|
|
1
|
+
var h={};C(h,{getToolbox:()=>T,getFeeEstimator:()=>d,getAddressValidator:()=>u});module.exports=y(h);var o=require("@swapkit/helpers");async function u(){let{match:i}=await import("ts-pattern"),{cosmosValidateAddress:a}=await import("@swapkit/toolboxes/cosmos"),{evmValidateAddress:e}=await import("@swapkit/toolboxes/evm"),{substrateValidateAddress:s}=await import("@swapkit/toolboxes/substrate"),{getUTXOAddressValidator:r}=await import("@swapkit/toolboxes/utxo"),{getSolanaAddressValidator:c}=await import("@swapkit/toolboxes/solana"),{rippleValidateAddress:p}=await import("@swapkit/toolboxes/ripple"),{radixValidateAddress:x}=await import("@swapkit/toolboxes/radix"),m=await c(),b=await r();return function w({address:n,chain:l}){return i(l).with(o.Chain.Arbitrum,o.Chain.Avalanche,o.Chain.Optimism,o.Chain.BinanceSmartChain,o.Chain.Base,o.Chain.Polygon,o.Chain.Ethereum,()=>e({address:n})).with(o.Chain.Litecoin,o.Chain.Dash,o.Chain.Dogecoin,o.Chain.BitcoinCash,o.Chain.Bitcoin,()=>b({address:n,chain:l})).with(o.Chain.Cosmos,o.Chain.Kujira,o.Chain.Maya,o.Chain.THORChain,()=>a({address:n,chain:l})).with(o.Chain.Chainflip,o.Chain.Polkadot,()=>s({address:n,chain:l})).with(o.Chain.Radix,()=>x(n)).with(o.Chain.Ripple,()=>p(n)).with(o.Chain.Solana,()=>m(n)).otherwise(()=>!1)}}async function d(i){let a=await T(i);return async function e(s){switch(i){case o.Chain.Arbitrum:case o.Chain.Avalanche:case o.Chain.Optimism:case o.Chain.BinanceSmartChain:case o.Chain.Base:case o.Chain.Polygon:case o.Chain.Ethereum:{let r=await a.createTransaction(s);return a.estimateTransactionFee({...r,feeOption:s.feeOptionKey||o.FeeOption.Fast,chain:i})}case o.Chain.Bitcoin:case o.Chain.BitcoinCash:case o.Chain.Dogecoin:case o.Chain.Dash:case o.Chain.Litecoin:return a.estimateTransactionFee(s);case o.Chain.THORChain:case o.Chain.Maya:case o.Chain.Kujira:case o.Chain.Cosmos:{let{estimateTransactionFee:r}=await import("@swapkit/toolboxes/cosmos");return r(s)}case o.Chain.Polkadot:return a.estimateTransactionFee(s);case o.Chain.Solana:return a.estimateTransactionFee(s);case o.Chain.Ripple:return a.estimateTransactionFee();default:return o.AssetValue.from({chain:i})}}}async function T(i,a){switch(i){case o.Chain.Arbitrum:case o.Chain.Avalanche:case o.Chain.Optimism:case o.Chain.BinanceSmartChain:case o.Chain.Base:case o.Chain.Polygon:case o.Chain.Ethereum:{let{getEvmToolbox:e}=await import("@swapkit/toolboxes/evm");return await e(i,a)}case o.Chain.Litecoin:case o.Chain.Dash:case o.Chain.Dogecoin:case o.Chain.BitcoinCash:case o.Chain.Bitcoin:{let{getUtxoToolbox:e}=await import("@swapkit/toolboxes/utxo");return await e(i,a)}case o.Chain.Cosmos:case o.Chain.Kujira:case o.Chain.Maya:case o.Chain.THORChain:{let{getCosmosToolbox:e}=await import("@swapkit/toolboxes/cosmos");return await e(i,a)}case o.Chain.Chainflip:case o.Chain.Polkadot:{let{getSubstrateToolbox:e}=await import("@swapkit/toolboxes/substrate");return await e(i,a)}case o.Chain.Radix:{let{RadixToolbox:e}=await import("@swapkit/toolboxes/radix");return await e(a)}case o.Chain.Ripple:{let{getRippleToolbox:e}=await import("@swapkit/toolboxes/ripple");return await e(a)}case o.Chain.Solana:{let{getSolanaToolbox:e}=await import("@swapkit/toolboxes/solana");return await e(a)}default:throw new Error(`Chain ${i} is not supported`)}}
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=979074AB751E623664756E2164756E21
|
package/dist/index.cjs.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import {\n AssetValue,\n Chain,\n type CosmosChain,\n type EVMChain,\n FeeOption,\n type GenericCreateTransactionParams,\n type SubstrateChain,\n type UTXOChain,\n} from \"@swapkit/helpers\";\nimport type { getCosmosToolbox } from \"@swapkit/toolboxes/cosmos\";\n\nimport type { ETHToolbox, EVMCreateTransactionParams, getEvmToolbox } from \"@swapkit/toolboxes/evm\";\nimport type { RadixToolbox } from \"@swapkit/toolboxes/radix\";\nimport type { getRippleToolbox } from \"@swapkit/toolboxes/ripple\";\nimport type { SolanaCreateTransactionParams, getSolanaToolbox } from \"@swapkit/toolboxes/solana\";\nimport type { getSubstrateToolbox } from \"@swapkit/toolboxes/substrate\";\nimport type { getUtxoToolbox } from \"@swapkit/toolboxes/utxo\";\n\nexport async function getAddressValidator() {\n const { match } = await import(\"ts-pattern\");\n const { cosmosValidateAddress } = await import(\"@swapkit/toolboxes/cosmos\");\n const { evmValidateAddress } = await import(\"@swapkit/toolboxes/evm\");\n const { substrateValidateAddress } = await import(\"@swapkit/toolboxes/substrate\");\n const { getUTXOAddressValidator } = await import(\"@swapkit/toolboxes/utxo\");\n const { getSolanaAddressValidator } = await import(\"@swapkit/toolboxes/solana\");\n const { rippleValidateAddress } = await import(\"@swapkit/toolboxes/ripple\");\n const { radixValidateAddress } = await import(\"@swapkit/toolboxes/radix\");\n\n const solanaValidateAddress = await getSolanaAddressValidator();\n const utxoValidateAddress = await getUTXOAddressValidator();\n\n return function validateAddress({ address, chain }: { address: string; chain: Chain }) {\n const isValid = match(chain)\n .with(\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Optimism,\n Chain.BinanceSmartChain,\n Chain.Base,\n Chain.Polygon,\n Chain.Ethereum,\n () => evmValidateAddress({ address }),\n )\n .with(Chain.Litecoin, Chain.Dash, Chain.Dogecoin, Chain.BitcoinCash, Chain.Bitcoin, () =>\n utxoValidateAddress({ address, chain: chain as UTXOChain }),\n )\n .with(Chain.Cosmos, Chain.Kujira, Chain.Maya, Chain.THORChain, () =>\n cosmosValidateAddress({ address, chain: chain as CosmosChain }),\n )\n .with(Chain.Chainflip, Chain.Polkadot, () =>\n substrateValidateAddress({ address, chain: chain as SubstrateChain }),\n )\n .with(Chain.Radix, () => radixValidateAddress(address))\n .with(Chain.Ripple, () => rippleValidateAddress(address))\n .with(Chain.Solana, () => solanaValidateAddress(address))\n .otherwise(() => false);\n\n return isValid;\n };\n}\n\nexport async function getFeeEstimator<T extends keyof CreateTransactionParams>(chain: T) {\n const toolbox = await getToolbox(chain);\n\n return async function estimateFee(params: CreateTransactionParams[T]) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Optimism:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Polygon:\n case Chain.Ethereum: {\n const txObject = await (\n toolbox as Awaited<ReturnType<typeof ETHToolbox>>\n ).createTransaction(params as EVMCreateTransactionParams);\n return (toolbox as Awaited<ReturnType<typeof ETHToolbox>>).estimateTransactionFee({\n ...txObject,\n feeOption: params.feeOptionKey || FeeOption.Fast,\n chain,\n });\n }\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Dash:\n case Chain.Litecoin: {\n return (toolbox as Awaited<ReturnType<typeof getUtxoToolbox>>).estimateTransactionFee(\n params as CreateTransactionParams[Chain.Bitcoin],\n );\n }\n\n case Chain.THORChain:\n case Chain.Maya:\n case Chain.Kujira:\n case Chain.Cosmos: {\n const { estimateTransactionFee } = await import(\"@swapkit/toolboxes/cosmos\");\n return estimateTransactionFee(params);\n }\n\n case Chain.Polkadot: {\n return (\n toolbox as Awaited<ReturnType<typeof getSubstrateToolbox<Chain.Polkadot>>>\n ).estimateTransactionFee(params);\n }\n\n case Chain.Solana: {\n return (toolbox as Awaited<ReturnType<typeof getSolanaToolbox>>).estimateTransactionFee(\n params as CreateTransactionParams[Chain.Solana],\n );\n }\n\n default:\n return AssetValue.from({ chain });\n }\n };\n}\n\ntype Toolboxes = {\n [key in EVMChain]: Awaited<ReturnType<typeof getEvmToolbox>>;\n} & {\n [key in UTXOChain]: Awaited<ReturnType<typeof getUtxoToolbox>>;\n} & {\n [key in CosmosChain]: Awaited<ReturnType<typeof getCosmosToolbox>>;\n} & {\n [key in SubstrateChain]: Awaited<ReturnType<typeof getSubstrateToolbox>>;\n} & {\n [Chain.Radix]: Awaited<ReturnType<typeof RadixToolbox>>;\n [Chain.Ripple]: Awaited<ReturnType<typeof getRippleToolbox>>;\n [Chain.Solana]: Awaited<ReturnType<typeof getSolanaToolbox>>;\n};\n\ntype ToolboxParams = { [key in EVMChain]: Parameters<typeof getEvmToolbox>[1] } & {\n [key in UTXOChain]: undefined;\n} & {\n [key in CosmosChain]: Parameters<typeof getCosmosToolbox>[1];\n} & {\n [key in SubstrateChain]: Parameters<typeof getSubstrateToolbox>[1];\n} & {\n [Chain.Radix]: Parameters<typeof RadixToolbox>[0];\n [Chain.Ripple]: Parameters<typeof getRippleToolbox>[0];\n [Chain.Solana]: Parameters<typeof getSolanaToolbox>[0];\n};\n\ntype CreateTransactionParams = { [key in EVMChain]: EVMCreateTransactionParams } & {\n [key in UTXOChain]: GenericCreateTransactionParams;\n} & {\n [key in CosmosChain]: GenericCreateTransactionParams;\n} & {\n [key in SubstrateChain]: GenericCreateTransactionParams;\n} & {\n [Chain.Radix]: GenericCreateTransactionParams;\n [Chain.Solana]: SolanaCreateTransactionParams;\n};\n\nexport async function getToolbox<T extends keyof Toolboxes>(\n chain: T,\n params?: ToolboxParams[T],\n): Promise<Toolboxes[T]> {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Optimism:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Polygon:\n case Chain.Ethereum: {\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const evmToolbox = await getEvmToolbox(chain, params as Parameters<typeof getEvmToolbox>[1]);\n return evmToolbox as Toolboxes[T];\n }\n\n case Chain.Litecoin:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.BitcoinCash:\n case Chain.Bitcoin: {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const utxoToolbox = await getUtxoToolbox(\n chain,\n params as Parameters<typeof getUtxoToolbox>[1],\n );\n return utxoToolbox as Toolboxes[T];\n }\n\n case Chain.Cosmos:\n case Chain.Kujira:\n case Chain.Maya:\n case Chain.THORChain: {\n const { getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n const cosmosToolbox = await getCosmosToolbox(\n chain,\n params as Parameters<typeof getCosmosToolbox>[1],\n );\n\n return cosmosToolbox as Toolboxes[T];\n }\n\n case Chain.Chainflip:\n case Chain.Polkadot: {\n const { getSubstrateToolbox } = await import(\"@swapkit/toolboxes/substrate\");\n const substrateToolbox = await getSubstrateToolbox(\n chain,\n params as Parameters<typeof getSubstrateToolbox>[1],\n );\n return substrateToolbox as Toolboxes[T];\n }\n\n case Chain.Radix: {\n const { RadixToolbox } = await import(\"@swapkit/toolboxes/radix\");\n const radixToolbox = await RadixToolbox(params as Parameters<typeof RadixToolbox>[0]);\n return radixToolbox as Toolboxes[T];\n }\n\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n const rippleToolbox = await getRippleToolbox(\n params as Parameters<typeof getRippleToolbox>[0],\n );\n return rippleToolbox as Toolboxes[T];\n }\n\n case Chain.Solana: {\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n const solanaToolbox = await getSolanaToolbox(\n params as Parameters<typeof getSolanaToolbox>[0],\n );\n return solanaToolbox as Toolboxes[T];\n }\n\n default:\n throw new Error(`Chain ${chain} is not supported`);\n }\n}\n"
|
|
5
|
+
"import {\n AssetValue,\n Chain,\n type CosmosChain,\n type EVMChain,\n FeeOption,\n type GenericCreateTransactionParams,\n type SubstrateChain,\n type UTXOChain,\n} from \"@swapkit/helpers\";\nimport type { getCosmosToolbox } from \"@swapkit/toolboxes/cosmos\";\n\nimport type { ETHToolbox, EVMCreateTransactionParams, getEvmToolbox } from \"@swapkit/toolboxes/evm\";\nimport type { RadixToolbox } from \"@swapkit/toolboxes/radix\";\nimport type { getRippleToolbox } from \"@swapkit/toolboxes/ripple\";\nimport type { SolanaCreateTransactionParams, getSolanaToolbox } from \"@swapkit/toolboxes/solana\";\nimport type { getSubstrateToolbox } from \"@swapkit/toolboxes/substrate\";\nimport type { getUtxoToolbox } from \"@swapkit/toolboxes/utxo\";\n\nexport async function getAddressValidator() {\n const { match } = await import(\"ts-pattern\");\n const { cosmosValidateAddress } = await import(\"@swapkit/toolboxes/cosmos\");\n const { evmValidateAddress } = await import(\"@swapkit/toolboxes/evm\");\n const { substrateValidateAddress } = await import(\"@swapkit/toolboxes/substrate\");\n const { getUTXOAddressValidator } = await import(\"@swapkit/toolboxes/utxo\");\n const { getSolanaAddressValidator } = await import(\"@swapkit/toolboxes/solana\");\n const { rippleValidateAddress } = await import(\"@swapkit/toolboxes/ripple\");\n const { radixValidateAddress } = await import(\"@swapkit/toolboxes/radix\");\n\n const solanaValidateAddress = await getSolanaAddressValidator();\n const utxoValidateAddress = await getUTXOAddressValidator();\n\n return function validateAddress({ address, chain }: { address: string; chain: Chain }) {\n const isValid = match(chain)\n .with(\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Optimism,\n Chain.BinanceSmartChain,\n Chain.Base,\n Chain.Polygon,\n Chain.Ethereum,\n () => evmValidateAddress({ address }),\n )\n .with(Chain.Litecoin, Chain.Dash, Chain.Dogecoin, Chain.BitcoinCash, Chain.Bitcoin, () =>\n utxoValidateAddress({ address, chain: chain as UTXOChain }),\n )\n .with(Chain.Cosmos, Chain.Kujira, Chain.Maya, Chain.THORChain, () =>\n cosmosValidateAddress({ address, chain: chain as CosmosChain }),\n )\n .with(Chain.Chainflip, Chain.Polkadot, () =>\n substrateValidateAddress({ address, chain: chain as SubstrateChain }),\n )\n .with(Chain.Radix, () => radixValidateAddress(address))\n .with(Chain.Ripple, () => rippleValidateAddress(address))\n .with(Chain.Solana, () => solanaValidateAddress(address))\n .otherwise(() => false);\n\n return isValid;\n };\n}\n\nexport async function getFeeEstimator<T extends keyof CreateTransactionParams>(chain: T) {\n const toolbox = await getToolbox(chain);\n\n return async function estimateFee(params: CreateTransactionParams[T]) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Optimism:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Polygon:\n case Chain.Ethereum: {\n const txObject = await (\n toolbox as Awaited<ReturnType<typeof ETHToolbox>>\n ).createTransaction(params as EVMCreateTransactionParams);\n return (toolbox as Awaited<ReturnType<typeof ETHToolbox>>).estimateTransactionFee({\n ...txObject,\n feeOption: params.feeOptionKey || FeeOption.Fast,\n chain,\n });\n }\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Dash:\n case Chain.Litecoin: {\n return (toolbox as Awaited<ReturnType<typeof getUtxoToolbox>>).estimateTransactionFee(\n params as CreateTransactionParams[Chain.Bitcoin],\n );\n }\n\n case Chain.THORChain:\n case Chain.Maya:\n case Chain.Kujira:\n case Chain.Cosmos: {\n const { estimateTransactionFee } = await import(\"@swapkit/toolboxes/cosmos\");\n return estimateTransactionFee(params);\n }\n\n case Chain.Polkadot: {\n return (\n toolbox as Awaited<ReturnType<typeof getSubstrateToolbox<Chain.Polkadot>>>\n ).estimateTransactionFee(params);\n }\n\n case Chain.Solana: {\n return (toolbox as Awaited<ReturnType<typeof getSolanaToolbox>>).estimateTransactionFee(\n params as CreateTransactionParams[Chain.Solana],\n );\n }\n\n case Chain.Ripple: {\n return (toolbox as Awaited<ReturnType<typeof getRippleToolbox>>).estimateTransactionFee();\n }\n\n default:\n return AssetValue.from({ chain });\n }\n };\n}\n\ntype Toolboxes = {\n [key in EVMChain]: Awaited<ReturnType<typeof getEvmToolbox>>;\n} & {\n [key in UTXOChain]: Awaited<ReturnType<typeof getUtxoToolbox>>;\n} & {\n [key in CosmosChain]: Awaited<ReturnType<typeof getCosmosToolbox>>;\n} & {\n [key in SubstrateChain]: Awaited<ReturnType<typeof getSubstrateToolbox>>;\n} & {\n [Chain.Radix]: Awaited<ReturnType<typeof RadixToolbox>>;\n [Chain.Ripple]: Awaited<ReturnType<typeof getRippleToolbox>>;\n [Chain.Solana]: Awaited<ReturnType<typeof getSolanaToolbox>>;\n};\n\ntype ToolboxParams = { [key in EVMChain]: Parameters<typeof getEvmToolbox>[1] } & {\n [key in UTXOChain]: undefined;\n} & {\n [key in CosmosChain]: Parameters<typeof getCosmosToolbox>[1];\n} & {\n [key in SubstrateChain]: Parameters<typeof getSubstrateToolbox>[1];\n} & {\n [Chain.Radix]: Parameters<typeof RadixToolbox>[0];\n [Chain.Ripple]: Parameters<typeof getRippleToolbox>[0];\n [Chain.Solana]: Parameters<typeof getSolanaToolbox>[0];\n};\n\ntype CreateTransactionParams = { [key in EVMChain]: EVMCreateTransactionParams } & {\n [key in UTXOChain]: GenericCreateTransactionParams;\n} & {\n [key in CosmosChain]: GenericCreateTransactionParams;\n} & {\n [key in SubstrateChain]: GenericCreateTransactionParams;\n} & {\n [Chain.Radix]: GenericCreateTransactionParams;\n [Chain.Ripple]: GenericCreateTransactionParams;\n [Chain.Solana]: SolanaCreateTransactionParams;\n};\n\nexport async function getToolbox<T extends keyof Toolboxes>(\n chain: T,\n params?: ToolboxParams[T],\n): Promise<Toolboxes[T]> {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Optimism:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Polygon:\n case Chain.Ethereum: {\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const evmToolbox = await getEvmToolbox(chain, params as Parameters<typeof getEvmToolbox>[1]);\n return evmToolbox as Toolboxes[T];\n }\n\n case Chain.Litecoin:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.BitcoinCash:\n case Chain.Bitcoin: {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const utxoToolbox = await getUtxoToolbox(\n chain,\n params as Parameters<typeof getUtxoToolbox>[1],\n );\n return utxoToolbox as Toolboxes[T];\n }\n\n case Chain.Cosmos:\n case Chain.Kujira:\n case Chain.Maya:\n case Chain.THORChain: {\n const { getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n const cosmosToolbox = await getCosmosToolbox(\n chain,\n params as Parameters<typeof getCosmosToolbox>[1],\n );\n\n return cosmosToolbox as Toolboxes[T];\n }\n\n case Chain.Chainflip:\n case Chain.Polkadot: {\n const { getSubstrateToolbox } = await import(\"@swapkit/toolboxes/substrate\");\n const substrateToolbox = await getSubstrateToolbox(\n chain,\n params as Parameters<typeof getSubstrateToolbox>[1],\n );\n return substrateToolbox as Toolboxes[T];\n }\n\n case Chain.Radix: {\n const { RadixToolbox } = await import(\"@swapkit/toolboxes/radix\");\n const radixToolbox = await RadixToolbox(params as Parameters<typeof RadixToolbox>[0]);\n return radixToolbox as Toolboxes[T];\n }\n\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n const rippleToolbox = await getRippleToolbox(\n params as Parameters<typeof getRippleToolbox>[0],\n );\n return rippleToolbox as Toolboxes[T];\n }\n\n case Chain.Solana: {\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n const solanaToolbox = await getSolanaToolbox(\n params as Parameters<typeof getSolanaToolbox>[0],\n );\n return solanaToolbox as Toolboxes[T];\n }\n\n default:\n throw new Error(`Chain ${chain} is not supported`);\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "qGASO,IATP,8BAmBA,eAAsB,CAAmB,EAAG,CAC1C,IAAQ,SAAU,KAAa,uBACvB,yBAA0B,KAAa,sCACvC,sBAAuB,KAAa,mCACpC,4BAA6B,KAAa,yCAC1C,2BAA4B,KAAa,oCACzC,6BAA8B,KAAa,sCAC3C,yBAA0B,KAAa,sCACvC,wBAAyB,KAAa,oCAExC,EAAwB,MAAM,EAA0B,EACxD,EAAsB,MAAM,EAAwB,EAE1D,OAAO,SAAS,CAAe,EAAG,UAAS,SAA4C,CA0BrF,OAzBgB,EAAM,CAAK,EACxB,KACC,QAAM,SACN,QAAM,UACN,QAAM,SACN,QAAM,kBACN,QAAM,KACN,QAAM,QACN,QAAM,SACN,IAAM,EAAmB,CAAE,SAAQ,CAAC,CACtC,EACC,KAAK,QAAM,SAAU,QAAM,KAAM,QAAM,SAAU,QAAM,YAAa,QAAM,QAAS,IAClF,EAAoB,CAAE,UAAS,MAAO,CAAmB,CAAC,CAC5D,EACC,KAAK,QAAM,OAAQ,QAAM,OAAQ,QAAM,KAAM,QAAM,UAAW,IAC7D,EAAsB,CAAE,UAAS,MAAO,CAAqB,CAAC,CAChE,EACC,KAAK,QAAM,UAAW,QAAM,SAAU,IACrC,EAAyB,CAAE,UAAS,MAAO,CAAwB,CAAC,CACtE,EACC,KAAK,QAAM,MAAO,IAAM,EAAqB,CAAO,CAAC,EACrD,KAAK,QAAM,OAAQ,IAAM,EAAsB,CAAO,CAAC,EACvD,KAAK,QAAM,OAAQ,IAAM,EAAsB,CAAO,CAAC,EACvD,UAAU,IAAM,EAAK,GAM5B,eAAsB,CAAwD,CAAC,EAAU,CACvF,IAAM,EAAU,MAAM,EAAW,CAAK,EAEtC,OAAO,eAAe,CAAW,CAAC,EAAoC,CACpE,OAAQ,QACD,QAAM,cACN,QAAM,eACN,QAAM,cACN,QAAM,uBACN,QAAM,UACN,QAAM,aACN,QAAM,SAAU,CACnB,IAAM,EAAW,MACf,EACA,kBAAkB,CAAoC,EACxD,OAAQ,EAAmD,uBAAuB,IAC7E,EACH,UAAW,EAAO,cAAgB,YAAU,KAC5C,OACF,CAAC,CACH,MACK,QAAM,aACN,QAAM,iBACN,QAAM,cACN,QAAM,UACN,QAAM,SACT,OAAQ,EAAuD,uBAC7D,CACF,OAGG,QAAM,eACN,QAAM,UACN,QAAM,YACN,QAAM,OAAQ,CACjB,IAAQ,0BAA2B,KAAa,qCAChD,OAAO,EAAuB,CAAM,CACtC,MAEK,QAAM,SACT,OACE,EACA,uBAAuB,CAAM,OAG5B,QAAM,OACT,OAAQ,EAAyD,uBAC/D,CACF,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "979074AB751E623664756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{c as
|
|
1
|
+
import{c as t,d as s}from"./chunk-38ztynv0.js";import{AssetValue as y,Chain as o,FeeOption as C}from"@swapkit/helpers";async function f(){let{match:n}=await import("ts-pattern"),{cosmosValidateAddress:a}=await import("@swapkit/toolboxes/cosmos"),{evmValidateAddress:e}=await import("@swapkit/toolboxes/evm"),{substrateValidateAddress:i}=await import("@swapkit/toolboxes/substrate"),{getUTXOAddressValidator:l}=await import("@swapkit/toolboxes/utxo"),{getSolanaAddressValidator:c}=await import("@swapkit/toolboxes/solana"),{rippleValidateAddress:p}=await import("@swapkit/toolboxes/ripple"),{radixValidateAddress:x}=await import("@swapkit/toolboxes/radix"),m=await c(),b=await l();return function d({address:r,chain:T}){return n(T).with(o.Arbitrum,o.Avalanche,o.Optimism,o.BinanceSmartChain,o.Base,o.Polygon,o.Ethereum,()=>e({address:r})).with(o.Litecoin,o.Dash,o.Dogecoin,o.BitcoinCash,o.Bitcoin,()=>b({address:r,chain:T})).with(o.Cosmos,o.Kujira,o.Maya,o.THORChain,()=>a({address:r,chain:T})).with(o.Chainflip,o.Polkadot,()=>i({address:r,chain:T})).with(o.Radix,()=>x(r)).with(o.Ripple,()=>p(r)).with(o.Solana,()=>m(r)).otherwise(()=>!1)}}async function g(n){let a=await u(n);return async function e(i){switch(n){case o.Arbitrum:case o.Avalanche:case o.Optimism:case o.BinanceSmartChain:case o.Base:case o.Polygon:case o.Ethereum:{let l=await a.createTransaction(i);return a.estimateTransactionFee({...l,feeOption:i.feeOptionKey||C.Fast,chain:n})}case o.Bitcoin:case o.BitcoinCash:case o.Dogecoin:case o.Dash:case o.Litecoin:return a.estimateTransactionFee(i);case o.THORChain:case o.Maya:case o.Kujira:case o.Cosmos:{let{estimateTransactionFee:l}=await import("@swapkit/toolboxes/cosmos");return l(i)}case o.Polkadot:return a.estimateTransactionFee(i);case o.Solana:return a.estimateTransactionFee(i);case o.Ripple:return a.estimateTransactionFee();default:return y.from({chain:n})}}}async function u(n,a){switch(n){case o.Arbitrum:case o.Avalanche:case o.Optimism:case o.BinanceSmartChain:case o.Base:case o.Polygon:case o.Ethereum:{let{getEvmToolbox:e}=await import("@swapkit/toolboxes/evm");return await e(n,a)}case o.Litecoin:case o.Dash:case o.Dogecoin:case o.BitcoinCash:case o.Bitcoin:{let{getUtxoToolbox:e}=await import("@swapkit/toolboxes/utxo");return await e(n,a)}case o.Cosmos:case o.Kujira:case o.Maya:case o.THORChain:{let{getCosmosToolbox:e}=await import("@swapkit/toolboxes/cosmos");return await e(n,a)}case o.Chainflip:case o.Polkadot:{let{getSubstrateToolbox:e}=await import("@swapkit/toolboxes/substrate");return await e(n,a)}case o.Radix:{let{RadixToolbox:e}=await import("@swapkit/toolboxes/radix");return await e(a)}case o.Ripple:{let{getRippleToolbox:e}=await import("@swapkit/toolboxes/ripple");return await e(a)}case o.Solana:{let{getSolanaToolbox:e}=await import("@swapkit/toolboxes/solana");return await e(a)}default:throw new Error(`Chain ${n} is not supported`)}}export{u as getToolbox,g as getFeeEstimator,f as getAddressValidator};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=F5BD75044784CD8664756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import {\n AssetValue,\n Chain,\n type CosmosChain,\n type EVMChain,\n FeeOption,\n type GenericCreateTransactionParams,\n type SubstrateChain,\n type UTXOChain,\n} from \"@swapkit/helpers\";\nimport type { getCosmosToolbox } from \"@swapkit/toolboxes/cosmos\";\n\nimport type { ETHToolbox, EVMCreateTransactionParams, getEvmToolbox } from \"@swapkit/toolboxes/evm\";\nimport type { RadixToolbox } from \"@swapkit/toolboxes/radix\";\nimport type { getRippleToolbox } from \"@swapkit/toolboxes/ripple\";\nimport type { SolanaCreateTransactionParams, getSolanaToolbox } from \"@swapkit/toolboxes/solana\";\nimport type { getSubstrateToolbox } from \"@swapkit/toolboxes/substrate\";\nimport type { getUtxoToolbox } from \"@swapkit/toolboxes/utxo\";\n\nexport async function getAddressValidator() {\n const { match } = await import(\"ts-pattern\");\n const { cosmosValidateAddress } = await import(\"@swapkit/toolboxes/cosmos\");\n const { evmValidateAddress } = await import(\"@swapkit/toolboxes/evm\");\n const { substrateValidateAddress } = await import(\"@swapkit/toolboxes/substrate\");\n const { getUTXOAddressValidator } = await import(\"@swapkit/toolboxes/utxo\");\n const { getSolanaAddressValidator } = await import(\"@swapkit/toolboxes/solana\");\n const { rippleValidateAddress } = await import(\"@swapkit/toolboxes/ripple\");\n const { radixValidateAddress } = await import(\"@swapkit/toolboxes/radix\");\n\n const solanaValidateAddress = await getSolanaAddressValidator();\n const utxoValidateAddress = await getUTXOAddressValidator();\n\n return function validateAddress({ address, chain }: { address: string; chain: Chain }) {\n const isValid = match(chain)\n .with(\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Optimism,\n Chain.BinanceSmartChain,\n Chain.Base,\n Chain.Polygon,\n Chain.Ethereum,\n () => evmValidateAddress({ address }),\n )\n .with(Chain.Litecoin, Chain.Dash, Chain.Dogecoin, Chain.BitcoinCash, Chain.Bitcoin, () =>\n utxoValidateAddress({ address, chain: chain as UTXOChain }),\n )\n .with(Chain.Cosmos, Chain.Kujira, Chain.Maya, Chain.THORChain, () =>\n cosmosValidateAddress({ address, chain: chain as CosmosChain }),\n )\n .with(Chain.Chainflip, Chain.Polkadot, () =>\n substrateValidateAddress({ address, chain: chain as SubstrateChain }),\n )\n .with(Chain.Radix, () => radixValidateAddress(address))\n .with(Chain.Ripple, () => rippleValidateAddress(address))\n .with(Chain.Solana, () => solanaValidateAddress(address))\n .otherwise(() => false);\n\n return isValid;\n };\n}\n\nexport async function getFeeEstimator<T extends keyof CreateTransactionParams>(chain: T) {\n const toolbox = await getToolbox(chain);\n\n return async function estimateFee(params: CreateTransactionParams[T]) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Optimism:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Polygon:\n case Chain.Ethereum: {\n const txObject = await (\n toolbox as Awaited<ReturnType<typeof ETHToolbox>>\n ).createTransaction(params as EVMCreateTransactionParams);\n return (toolbox as Awaited<ReturnType<typeof ETHToolbox>>).estimateTransactionFee({\n ...txObject,\n feeOption: params.feeOptionKey || FeeOption.Fast,\n chain,\n });\n }\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Dash:\n case Chain.Litecoin: {\n return (toolbox as Awaited<ReturnType<typeof getUtxoToolbox>>).estimateTransactionFee(\n params as CreateTransactionParams[Chain.Bitcoin],\n );\n }\n\n case Chain.THORChain:\n case Chain.Maya:\n case Chain.Kujira:\n case Chain.Cosmos: {\n const { estimateTransactionFee } = await import(\"@swapkit/toolboxes/cosmos\");\n return estimateTransactionFee(params);\n }\n\n case Chain.Polkadot: {\n return (\n toolbox as Awaited<ReturnType<typeof getSubstrateToolbox<Chain.Polkadot>>>\n ).estimateTransactionFee(params);\n }\n\n case Chain.Solana: {\n return (toolbox as Awaited<ReturnType<typeof getSolanaToolbox>>).estimateTransactionFee(\n params as CreateTransactionParams[Chain.Solana],\n );\n }\n\n default:\n return AssetValue.from({ chain });\n }\n };\n}\n\ntype Toolboxes = {\n [key in EVMChain]: Awaited<ReturnType<typeof getEvmToolbox>>;\n} & {\n [key in UTXOChain]: Awaited<ReturnType<typeof getUtxoToolbox>>;\n} & {\n [key in CosmosChain]: Awaited<ReturnType<typeof getCosmosToolbox>>;\n} & {\n [key in SubstrateChain]: Awaited<ReturnType<typeof getSubstrateToolbox>>;\n} & {\n [Chain.Radix]: Awaited<ReturnType<typeof RadixToolbox>>;\n [Chain.Ripple]: Awaited<ReturnType<typeof getRippleToolbox>>;\n [Chain.Solana]: Awaited<ReturnType<typeof getSolanaToolbox>>;\n};\n\ntype ToolboxParams = { [key in EVMChain]: Parameters<typeof getEvmToolbox>[1] } & {\n [key in UTXOChain]: undefined;\n} & {\n [key in CosmosChain]: Parameters<typeof getCosmosToolbox>[1];\n} & {\n [key in SubstrateChain]: Parameters<typeof getSubstrateToolbox>[1];\n} & {\n [Chain.Radix]: Parameters<typeof RadixToolbox>[0];\n [Chain.Ripple]: Parameters<typeof getRippleToolbox>[0];\n [Chain.Solana]: Parameters<typeof getSolanaToolbox>[0];\n};\n\ntype CreateTransactionParams = { [key in EVMChain]: EVMCreateTransactionParams } & {\n [key in UTXOChain]: GenericCreateTransactionParams;\n} & {\n [key in CosmosChain]: GenericCreateTransactionParams;\n} & {\n [key in SubstrateChain]: GenericCreateTransactionParams;\n} & {\n [Chain.Radix]: GenericCreateTransactionParams;\n [Chain.Solana]: SolanaCreateTransactionParams;\n};\n\nexport async function getToolbox<T extends keyof Toolboxes>(\n chain: T,\n params?: ToolboxParams[T],\n): Promise<Toolboxes[T]> {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Optimism:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Polygon:\n case Chain.Ethereum: {\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const evmToolbox = await getEvmToolbox(chain, params as Parameters<typeof getEvmToolbox>[1]);\n return evmToolbox as Toolboxes[T];\n }\n\n case Chain.Litecoin:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.BitcoinCash:\n case Chain.Bitcoin: {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const utxoToolbox = await getUtxoToolbox(\n chain,\n params as Parameters<typeof getUtxoToolbox>[1],\n );\n return utxoToolbox as Toolboxes[T];\n }\n\n case Chain.Cosmos:\n case Chain.Kujira:\n case Chain.Maya:\n case Chain.THORChain: {\n const { getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n const cosmosToolbox = await getCosmosToolbox(\n chain,\n params as Parameters<typeof getCosmosToolbox>[1],\n );\n\n return cosmosToolbox as Toolboxes[T];\n }\n\n case Chain.Chainflip:\n case Chain.Polkadot: {\n const { getSubstrateToolbox } = await import(\"@swapkit/toolboxes/substrate\");\n const substrateToolbox = await getSubstrateToolbox(\n chain,\n params as Parameters<typeof getSubstrateToolbox>[1],\n );\n return substrateToolbox as Toolboxes[T];\n }\n\n case Chain.Radix: {\n const { RadixToolbox } = await import(\"@swapkit/toolboxes/radix\");\n const radixToolbox = await RadixToolbox(params as Parameters<typeof RadixToolbox>[0]);\n return radixToolbox as Toolboxes[T];\n }\n\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n const rippleToolbox = await getRippleToolbox(\n params as Parameters<typeof getRippleToolbox>[0],\n );\n return rippleToolbox as Toolboxes[T];\n }\n\n case Chain.Solana: {\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n const solanaToolbox = await getSolanaToolbox(\n params as Parameters<typeof getSolanaToolbox>[0],\n );\n return solanaToolbox as Toolboxes[T];\n }\n\n default:\n throw new Error(`Chain ${chain} is not supported`);\n }\n}\n"
|
|
5
|
+
"import {\n AssetValue,\n Chain,\n type CosmosChain,\n type EVMChain,\n FeeOption,\n type GenericCreateTransactionParams,\n type SubstrateChain,\n type UTXOChain,\n} from \"@swapkit/helpers\";\nimport type { getCosmosToolbox } from \"@swapkit/toolboxes/cosmos\";\n\nimport type { ETHToolbox, EVMCreateTransactionParams, getEvmToolbox } from \"@swapkit/toolboxes/evm\";\nimport type { RadixToolbox } from \"@swapkit/toolboxes/radix\";\nimport type { getRippleToolbox } from \"@swapkit/toolboxes/ripple\";\nimport type { SolanaCreateTransactionParams, getSolanaToolbox } from \"@swapkit/toolboxes/solana\";\nimport type { getSubstrateToolbox } from \"@swapkit/toolboxes/substrate\";\nimport type { getUtxoToolbox } from \"@swapkit/toolboxes/utxo\";\n\nexport async function getAddressValidator() {\n const { match } = await import(\"ts-pattern\");\n const { cosmosValidateAddress } = await import(\"@swapkit/toolboxes/cosmos\");\n const { evmValidateAddress } = await import(\"@swapkit/toolboxes/evm\");\n const { substrateValidateAddress } = await import(\"@swapkit/toolboxes/substrate\");\n const { getUTXOAddressValidator } = await import(\"@swapkit/toolboxes/utxo\");\n const { getSolanaAddressValidator } = await import(\"@swapkit/toolboxes/solana\");\n const { rippleValidateAddress } = await import(\"@swapkit/toolboxes/ripple\");\n const { radixValidateAddress } = await import(\"@swapkit/toolboxes/radix\");\n\n const solanaValidateAddress = await getSolanaAddressValidator();\n const utxoValidateAddress = await getUTXOAddressValidator();\n\n return function validateAddress({ address, chain }: { address: string; chain: Chain }) {\n const isValid = match(chain)\n .with(\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Optimism,\n Chain.BinanceSmartChain,\n Chain.Base,\n Chain.Polygon,\n Chain.Ethereum,\n () => evmValidateAddress({ address }),\n )\n .with(Chain.Litecoin, Chain.Dash, Chain.Dogecoin, Chain.BitcoinCash, Chain.Bitcoin, () =>\n utxoValidateAddress({ address, chain: chain as UTXOChain }),\n )\n .with(Chain.Cosmos, Chain.Kujira, Chain.Maya, Chain.THORChain, () =>\n cosmosValidateAddress({ address, chain: chain as CosmosChain }),\n )\n .with(Chain.Chainflip, Chain.Polkadot, () =>\n substrateValidateAddress({ address, chain: chain as SubstrateChain }),\n )\n .with(Chain.Radix, () => radixValidateAddress(address))\n .with(Chain.Ripple, () => rippleValidateAddress(address))\n .with(Chain.Solana, () => solanaValidateAddress(address))\n .otherwise(() => false);\n\n return isValid;\n };\n}\n\nexport async function getFeeEstimator<T extends keyof CreateTransactionParams>(chain: T) {\n const toolbox = await getToolbox(chain);\n\n return async function estimateFee(params: CreateTransactionParams[T]) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Optimism:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Polygon:\n case Chain.Ethereum: {\n const txObject = await (\n toolbox as Awaited<ReturnType<typeof ETHToolbox>>\n ).createTransaction(params as EVMCreateTransactionParams);\n return (toolbox as Awaited<ReturnType<typeof ETHToolbox>>).estimateTransactionFee({\n ...txObject,\n feeOption: params.feeOptionKey || FeeOption.Fast,\n chain,\n });\n }\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Dash:\n case Chain.Litecoin: {\n return (toolbox as Awaited<ReturnType<typeof getUtxoToolbox>>).estimateTransactionFee(\n params as CreateTransactionParams[Chain.Bitcoin],\n );\n }\n\n case Chain.THORChain:\n case Chain.Maya:\n case Chain.Kujira:\n case Chain.Cosmos: {\n const { estimateTransactionFee } = await import(\"@swapkit/toolboxes/cosmos\");\n return estimateTransactionFee(params);\n }\n\n case Chain.Polkadot: {\n return (\n toolbox as Awaited<ReturnType<typeof getSubstrateToolbox<Chain.Polkadot>>>\n ).estimateTransactionFee(params);\n }\n\n case Chain.Solana: {\n return (toolbox as Awaited<ReturnType<typeof getSolanaToolbox>>).estimateTransactionFee(\n params as CreateTransactionParams[Chain.Solana],\n );\n }\n\n case Chain.Ripple: {\n return (toolbox as Awaited<ReturnType<typeof getRippleToolbox>>).estimateTransactionFee();\n }\n\n default:\n return AssetValue.from({ chain });\n }\n };\n}\n\ntype Toolboxes = {\n [key in EVMChain]: Awaited<ReturnType<typeof getEvmToolbox>>;\n} & {\n [key in UTXOChain]: Awaited<ReturnType<typeof getUtxoToolbox>>;\n} & {\n [key in CosmosChain]: Awaited<ReturnType<typeof getCosmosToolbox>>;\n} & {\n [key in SubstrateChain]: Awaited<ReturnType<typeof getSubstrateToolbox>>;\n} & {\n [Chain.Radix]: Awaited<ReturnType<typeof RadixToolbox>>;\n [Chain.Ripple]: Awaited<ReturnType<typeof getRippleToolbox>>;\n [Chain.Solana]: Awaited<ReturnType<typeof getSolanaToolbox>>;\n};\n\ntype ToolboxParams = { [key in EVMChain]: Parameters<typeof getEvmToolbox>[1] } & {\n [key in UTXOChain]: undefined;\n} & {\n [key in CosmosChain]: Parameters<typeof getCosmosToolbox>[1];\n} & {\n [key in SubstrateChain]: Parameters<typeof getSubstrateToolbox>[1];\n} & {\n [Chain.Radix]: Parameters<typeof RadixToolbox>[0];\n [Chain.Ripple]: Parameters<typeof getRippleToolbox>[0];\n [Chain.Solana]: Parameters<typeof getSolanaToolbox>[0];\n};\n\ntype CreateTransactionParams = { [key in EVMChain]: EVMCreateTransactionParams } & {\n [key in UTXOChain]: GenericCreateTransactionParams;\n} & {\n [key in CosmosChain]: GenericCreateTransactionParams;\n} & {\n [key in SubstrateChain]: GenericCreateTransactionParams;\n} & {\n [Chain.Radix]: GenericCreateTransactionParams;\n [Chain.Ripple]: GenericCreateTransactionParams;\n [Chain.Solana]: SolanaCreateTransactionParams;\n};\n\nexport async function getToolbox<T extends keyof Toolboxes>(\n chain: T,\n params?: ToolboxParams[T],\n): Promise<Toolboxes[T]> {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Optimism:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Polygon:\n case Chain.Ethereum: {\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const evmToolbox = await getEvmToolbox(chain, params as Parameters<typeof getEvmToolbox>[1]);\n return evmToolbox as Toolboxes[T];\n }\n\n case Chain.Litecoin:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.BitcoinCash:\n case Chain.Bitcoin: {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const utxoToolbox = await getUtxoToolbox(\n chain,\n params as Parameters<typeof getUtxoToolbox>[1],\n );\n return utxoToolbox as Toolboxes[T];\n }\n\n case Chain.Cosmos:\n case Chain.Kujira:\n case Chain.Maya:\n case Chain.THORChain: {\n const { getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n const cosmosToolbox = await getCosmosToolbox(\n chain,\n params as Parameters<typeof getCosmosToolbox>[1],\n );\n\n return cosmosToolbox as Toolboxes[T];\n }\n\n case Chain.Chainflip:\n case Chain.Polkadot: {\n const { getSubstrateToolbox } = await import(\"@swapkit/toolboxes/substrate\");\n const substrateToolbox = await getSubstrateToolbox(\n chain,\n params as Parameters<typeof getSubstrateToolbox>[1],\n );\n return substrateToolbox as Toolboxes[T];\n }\n\n case Chain.Radix: {\n const { RadixToolbox } = await import(\"@swapkit/toolboxes/radix\");\n const radixToolbox = await RadixToolbox(params as Parameters<typeof RadixToolbox>[0]);\n return radixToolbox as Toolboxes[T];\n }\n\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n const rippleToolbox = await getRippleToolbox(\n params as Parameters<typeof getRippleToolbox>[0],\n );\n return rippleToolbox as Toolboxes[T];\n }\n\n case Chain.Solana: {\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n const solanaToolbox = await getSolanaToolbox(\n params as Parameters<typeof getSolanaToolbox>[0],\n );\n return solanaToolbox as Toolboxes[T];\n }\n\n default:\n throw new Error(`Chain ${chain} is not supported`);\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "+CAAA,qBACE,WACA,eAGA,yBAcF,eAAsB,CAAmB,EAAG,CAC1C,IAAQ,SAAU,KAAa,uBACvB,yBAA0B,KAAa,sCACvC,sBAAuB,KAAa,mCACpC,4BAA6B,KAAa,yCAC1C,2BAA4B,KAAa,oCACzC,6BAA8B,KAAa,sCAC3C,yBAA0B,KAAa,sCACvC,wBAAyB,KAAa,oCAExC,EAAwB,MAAM,EAA0B,EACxD,EAAsB,MAAM,EAAwB,EAE1D,OAAO,SAAS,CAAe,EAAG,UAAS,SAA4C,CA0BrF,OAzBgB,EAAM,CAAK,EACxB,KACC,EAAM,SACN,EAAM,UACN,EAAM,SACN,EAAM,kBACN,EAAM,KACN,EAAM,QACN,EAAM,SACN,IAAM,EAAmB,CAAE,SAAQ,CAAC,CACtC,EACC,KAAK,EAAM,SAAU,EAAM,KAAM,EAAM,SAAU,EAAM,YAAa,EAAM,QAAS,IAClF,EAAoB,CAAE,UAAS,MAAO,CAAmB,CAAC,CAC5D,EACC,KAAK,EAAM,OAAQ,EAAM,OAAQ,EAAM,KAAM,EAAM,UAAW,IAC7D,EAAsB,CAAE,UAAS,MAAO,CAAqB,CAAC,CAChE,EACC,KAAK,EAAM,UAAW,EAAM,SAAU,IACrC,EAAyB,CAAE,UAAS,MAAO,CAAwB,CAAC,CACtE,EACC,KAAK,EAAM,MAAO,IAAM,EAAqB,CAAO,CAAC,EACrD,KAAK,EAAM,OAAQ,IAAM,EAAsB,CAAO,CAAC,EACvD,KAAK,EAAM,OAAQ,IAAM,EAAsB,CAAO,CAAC,EACvD,UAAU,IAAM,EAAK,GAM5B,eAAsB,CAAwD,CAAC,EAAU,CACvF,IAAM,EAAU,MAAM,EAAW,CAAK,EAEtC,OAAO,eAAe,CAAW,CAAC,EAAoC,CACpE,OAAQ,QACD,EAAM,cACN,EAAM,eACN,EAAM,cACN,EAAM,uBACN,EAAM,UACN,EAAM,aACN,EAAM,SAAU,CACnB,IAAM,EAAW,MACf,EACA,kBAAkB,CAAoC,EACxD,OAAQ,EAAmD,uBAAuB,IAC7E,EACH,UAAW,EAAO,cAAgB,EAAU,KAC5C,OACF,CAAC,CACH,MACK,EAAM,aACN,EAAM,iBACN,EAAM,cACN,EAAM,UACN,EAAM,SACT,OAAQ,EAAuD,uBAC7D,CACF,OAGG,EAAM,eACN,EAAM,UACN,EAAM,YACN,EAAM,OAAQ,CACjB,IAAQ,0BAA2B,KAAa,qCAChD,OAAO,EAAuB,CAAM,CACtC,MAEK,EAAM,SACT,OACE,EACA,uBAAuB,CAAM,OAG5B,EAAM,OACT,OAAQ,EAAyD,uBAC/D,CACF,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "F5BD75044784CD8664756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/radix/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{c as W,d as X}from"../chunk-
|
|
1
|
+
import{c as W,d as X}from"../chunk-38ztynv0.js";import{AssetValue as _,Chain as Y,SKConfig as $}from"@swapkit/helpers";function q(j){return j.startsWith("account_rdx1")&&j.length===66}function G({networkApi:j}){return async function J(K){let M=await v({address:K,networkApi:j});return x({resources:M,networkApi:j})}}async function v({address:j,networkApi:J}){let K=!0,M,L=[],z=await B(J);while(K){let Q={address:j,limit_per_page:100,cursor:M,at_ledger_state:{state_version:z}},N=await J.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:Q});if(L=L.concat(N.items),N.next_cursor)M=N.next_cursor;else K=!1}return L}async function x({resources:j,networkApi:J}){let K=[],M=50,L=[];for(let z=0;z<j.length;z+=50)L.push(j.slice(z,z+50));for(let z of L){let Q=z.map((H)=>H.resource_address),N=await J.state.getEntityDetailsVaultAggregated(Q),V=new Map;for(let H of N)if(H.details!==void 0){let O=H.metadata?.items.find((Z)=>Z.key==="symbol"),U=O?.value.typed.type==="String"?O.value.typed.value:"?";if(H.details.type==="FungibleResource")V.set(H.address,{decimals:H.details.divisibility,symbol:U})}for(let H of z)if(H.aggregation_level==="Global"){let O=V.get(H.resource_address)||{decimals:0,symbol:"?"},U=_.from({asset:O.symbol!==Y.Radix?`${Y.Radix}.${O.symbol}-${H.resource_address}`:"XRD.XRD",value:H.amount});K.push(U)}}return K}async function B(j){return j.status.getCurrent().then((J)=>J.ledger_state.state_version)}var S=async({dappConfig:j}={})=>{let{RadixDappToolkit:J}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),M=j||$.get("integrations").radix,L=J({...M,networkId:M.network?.networkId||1}),z=K.initialize(L.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:G({networkApi:z}),networkApi:z,validateAddress:q,signAndBroadcast:()=>{throw new Error("Not implemented")}}};export{q as radixValidateAddress,S as RadixToolbox};
|
|
2
2
|
|
|
3
3
|
//# debugId=DD879EEE96AA5EA464756E2164756E21
|
package/dist/ripple/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var B={};U(B,{rippleValidateAddress:()=>$,hashes:()=>N.hashes,getRippleToolbox:()=>f});module.exports=P(B);var j=require("@swapkit/helpers"),M=require("xrpl"),N=require("xrpl"),_={ACCOUNT_NOT_FOUND:19};function L(z){let G=M.Wallet.fromMnemonic(z);return{getAddress:()=>Promise.resolve(G.address),signTransaction:(Y)=>Promise.resolve(G.sign(Y))}}function $(z){return M.isValidAddress(z)}var f=async(z={})=>{let G="signer"in z&&z.signer?z.signer:("phrase"in z)&&z.phrase?L(z.phrase):void 0,Y=j.SKConfig.get("rpcUrls")[j.Chain.Ripple];if(!Y)throw new j.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:j.Chain.Ripple}});let Q=new M.Client(Y);await Q.connect();let Z=()=>{if(!G)throw new j.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return G.getAddress()},W=async(q)=>{let J=q||await Z();try{let X=(await Q.request({command:"account_info",account:J})).result.account_data.Balance;return[j.AssetValue.from({chain:j.Chain.Ripple,value:X,fromBaseDecimal:j.BaseDecimal[j.Chain.Ripple]})]}catch(y){if(y.data.error_code===_.ACCOUNT_NOT_FOUND)return[j.AssetValue.from({chain:j.Chain.Ripple,value:0})];throw new j.SwapKitError("toolbox_ripple_get_balance_error",{info:{address:J,error:y}})}},H=async()=>{let J=(await Q.request({command:"fee"})).result.drops.open_ledger_fee;return j.AssetValue.from({chain:j.Chain.Ripple,value:j.SwapKitNumber.fromBigInt(BigInt(J),j.BaseDecimal[j.Chain.Ripple])})},k=async({assetValue:q,recipient:J,memo:y,sender:X})=>{if(!$(J))throw new j.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let O=X||await Z();if(!q.isGasAsset||q.chain!==j.Chain.Ripple)throw new j.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:q.toString()}});let I={TransactionType:"Payment",Account:O,Amount:M.xrpToDrops(q.getValue("string")),Destination:J};if(y)I.Memos=[{Memo:{MemoData:Buffer.from(y).toString("hex")}}];return await Q.autofill(I)},v=(q)=>{if(!G)throw new j.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return G.signTransaction(q)},F=async(q)=>{let y=(await Q.submitAndWait(q)).result;if(y.validated)return y.hash;throw new j.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:j.Chain.Ripple}})};return{signer:G,createSigner:L,getAddress:Z,validateAddress:$,getBalance:W,createTransaction:k,signTransaction:v,broadcastTransaction:F,transfer:async(q)=>{if(!G)throw new j.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let J=await G.getAddress(),y=await k({...q,sender:J}),X=await v(y);return F(X.tx_blob)},estimateTransactionFee:H,disconnect:()=>Q.disconnect()}};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=505386E4B21E68DE64756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/ripple/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import {\n AssetValue,\n BaseDecimal,\n Chain,\n type ChainSigner,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n SwapKitNumber,\n} from \"@swapkit/helpers\";\nimport type { Transaction } from \"xrpl\";\nimport { Client, type Payment, Wallet, isValidAddress, xrpToDrops } from \"xrpl\";\n\nexport type RippleWallet = Awaited<ReturnType<typeof getRippleToolbox>>;\n\n// Note: Ripple seeds generate a single address, no derivation path/index support.\nfunction createSigner(phrase: string): ChainSigner<Transaction, { tx_blob: string; hash: string }> {\n const wallet = Wallet.fromMnemonic(phrase);\n return {\n // publicKey: wallet.publicKey,\n // Address is sync, but interface requires async\n getAddress: () => Promise.resolve(wallet.address),\n // Signing is sync, but interface requires async\n signTransaction: (tx: Transaction) => Promise.resolve(wallet.sign(tx as Transaction)), // Cast needed as Wallet.sign expects Transaction\n };\n}\n\nexport function rippleValidateAddress(address: string) {\n return isValidAddress(address);\n}\n\ntype RippleToolboxParams =\n | { phrase: string }\n | { signer: ChainSigner<Transaction, { tx_blob: string; hash: string }> }\n | {};\n\nexport const getRippleToolbox = async (params: RippleToolboxParams = {}) => {\n const signer =\n \"signer\" in params && params.signer\n ? params.signer\n : \"phrase\" in params && params.phrase\n ? createSigner(params.phrase)\n : undefined;\n\n const rpcUrl = SKConfig.get(\"rpcUrls\")[Chain.Ripple];\n if (!rpcUrl) {\n throw new SwapKitError({\n errorKey: \"toolbox_ripple_rpc_not_configured\",\n info: { chain: Chain.Ripple },\n });\n }\n\n const client = new Client(rpcUrl);\n await client.connect();\n\n const getAddress = () => {\n if (!signer) {\n throw new SwapKitError({ errorKey: \"toolbox_ripple_signer_not_found\" });\n }\n return signer.getAddress();\n };\n\n const getBalance = async (address?: string) => {\n const addr = address || (await getAddress());\n\n try {\n
|
|
5
|
+
"import {\n AssetValue,\n BaseDecimal,\n Chain,\n type ChainSigner,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n SwapKitNumber,\n} from \"@swapkit/helpers\";\nimport type { Transaction } from \"xrpl\";\nimport { Client, type Payment, Wallet, isValidAddress, xrpToDrops } from \"xrpl\";\n\nexport type RippleWallet = Awaited<ReturnType<typeof getRippleToolbox>>;\n\nexport { hashes, type Transaction } from \"xrpl\";\n\nconst RIPPLE_ERROR_CODES = {\n ACCOUNT_NOT_FOUND: 19,\n} as const;\n\n// Note: Ripple seeds generate a single address, no derivation path/index support.\nfunction createSigner(phrase: string): ChainSigner<Transaction, { tx_blob: string; hash: string }> {\n const wallet = Wallet.fromMnemonic(phrase);\n return {\n // publicKey: wallet.publicKey,\n // Address is sync, but interface requires async\n getAddress: () => Promise.resolve(wallet.address),\n // Signing is sync, but interface requires async\n signTransaction: (tx: Transaction) => Promise.resolve(wallet.sign(tx as Transaction)), // Cast needed as Wallet.sign expects Transaction\n };\n}\n\nexport function rippleValidateAddress(address: string) {\n return isValidAddress(address);\n}\n\ntype RippleToolboxParams =\n | { phrase: string }\n | { signer: ChainSigner<Transaction, { tx_blob: string; hash: string }> }\n | {};\n\nexport const getRippleToolbox = async (params: RippleToolboxParams = {}) => {\n const signer =\n \"signer\" in params && params.signer\n ? params.signer\n : \"phrase\" in params && params.phrase\n ? createSigner(params.phrase)\n : undefined;\n\n const rpcUrl = SKConfig.get(\"rpcUrls\")[Chain.Ripple];\n if (!rpcUrl) {\n throw new SwapKitError({\n errorKey: \"toolbox_ripple_rpc_not_configured\",\n info: { chain: Chain.Ripple },\n });\n }\n\n const client = new Client(rpcUrl);\n await client.connect();\n\n const getAddress = () => {\n if (!signer) {\n throw new SwapKitError({ errorKey: \"toolbox_ripple_signer_not_found\" });\n }\n return signer.getAddress();\n };\n\n const getBalance = async (address?: string) => {\n const addr = address || (await getAddress());\n\n try {\n const accountInfo = await client.request({ command: \"account_info\", account: addr });\n\n const balance = accountInfo.result.account_data.Balance;\n\n return [\n AssetValue.from({\n chain: Chain.Ripple,\n value: balance,\n fromBaseDecimal: BaseDecimal[Chain.Ripple],\n }),\n ];\n } catch (error) {\n // empty account\n if ((error as any).data.error_code === RIPPLE_ERROR_CODES.ACCOUNT_NOT_FOUND) {\n return [\n AssetValue.from({\n chain: Chain.Ripple,\n value: 0,\n }),\n ];\n }\n throw new SwapKitError(\"toolbox_ripple_get_balance_error\", {\n info: { address: addr, error },\n });\n }\n };\n\n const estimateTransactionFee = async () => {\n const feeResponse = await client.request({ command: \"fee\" });\n const feeDrops = feeResponse.result.drops.open_ledger_fee; // Fee in drops\n\n return AssetValue.from({\n chain: Chain.Ripple,\n value: SwapKitNumber.fromBigInt(BigInt(feeDrops), BaseDecimal[Chain.Ripple]),\n });\n };\n\n const createTransaction = async ({\n assetValue,\n recipient,\n memo,\n sender,\n }: { assetValue: AssetValue; recipient: string; sender?: string; memo?: string }) => {\n if (!rippleValidateAddress(recipient)) {\n throw new SwapKitError({ errorKey: \"core_transaction_invalid_recipient_address\" });\n }\n\n const senderAddress = sender || (await getAddress());\n\n if (!assetValue.isGasAsset || assetValue.chain !== Chain.Ripple) {\n throw new SwapKitError({\n errorKey: \"toolbox_ripple_asset_not_supported\",\n info: { asset: assetValue.toString() },\n });\n }\n\n const transaction: Payment = {\n TransactionType: \"Payment\",\n Account: senderAddress,\n Amount: xrpToDrops(assetValue.getValue(\"string\")),\n Destination: recipient,\n };\n\n if (memo) {\n transaction.Memos = [{ Memo: { MemoData: Buffer.from(memo).toString(\"hex\") } }];\n }\n\n const preparedTx = await client.autofill(transaction);\n return preparedTx;\n };\n\n const signTransaction = (tx: Transaction) => {\n if (!signer) {\n throw new SwapKitError({ errorKey: \"toolbox_ripple_signer_not_found\" });\n }\n return signer.signTransaction(tx);\n };\n\n const broadcastTransaction = async (signedTxHex: string) => {\n const submitResult = await client.submitAndWait(signedTxHex);\n const result = submitResult.result;\n\n if (result.validated) {\n return result.hash;\n }\n\n throw new SwapKitError({\n errorKey: \"toolbox_ripple_broadcast_error\",\n info: { chain: Chain.Ripple },\n });\n };\n\n const transfer = async (params: GenericTransferParams) => {\n if (!signer) {\n throw new SwapKitError({ errorKey: \"toolbox_ripple_signer_not_found\" });\n }\n const sender = await signer.getAddress();\n const tx = await createTransaction({ ...params, sender });\n const signedTx = await signTransaction(tx);\n return broadcastTransaction(signedTx.tx_blob);\n };\n\n const disconnect = () => client.disconnect();\n\n return {\n // Signer related\n signer, // Expose the signer instance if created/provided\n createSigner, // Expose the helper\n // Core methods\n getAddress,\n validateAddress: rippleValidateAddress,\n getBalance,\n createTransaction,\n signTransaction,\n broadcastTransaction,\n transfer,\n estimateTransactionFee,\n disconnect,\n };\n};\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "505386E4B21E68DE64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|