diff --git a/Dockerfile b/Dockerfile index 1a56f2c1f3..9182082b16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,4 +32,4 @@ RUN yarn build EXPOSE 15888 # Set the default command to run when starting the container -CMD yarn run start +CMD yarn run start \ No newline at end of file diff --git a/package.json b/package.json index ef6c88127c..d817a511f9 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,9 @@ "@osmonauts/math": "^1.11.3", "@pancakeswap/sdk": "^4.0.0", "@pancakeswap/smart-router": "^4.2.1", + "@oraichain/common-contracts-sdk": "^1.0.31", + "@oraichain/oraidex-common": "^1.0.86", + "@oraichain/oraidex-contracts-sdk": "^1.0.31", "@pancakeswap/swap-sdk-core": "^1.0.0", "@pancakeswap/tokens": "^0.1.6", "@pancakeswap/v3-core": "^1.0.2", diff --git a/src/chains/cosmos/cosmos-base.ts b/src/chains/cosmos/cosmos-base.ts index 0b16e31c37..c5e3bf8277 100644 --- a/src/chains/cosmos/cosmos-base.ts +++ b/src/chains/cosmos/cosmos-base.ts @@ -200,13 +200,13 @@ export class CosmosBase { if (this.chainName == 'osmosis'){ this._provider = await createRPCQueryClient({rpcEndpoint: this.rpcUrl}); await this.getLatestBasePrice(); - }else{ + } else { this._provider = StargateClient.connect(this.rpcUrl); } // If we're not ready, this._initialized will be a Promise that resolves after init() completes this._initialized = (async () => { try { - await this.loadTokens(this.tokenListSource, this.tokenListType) + await this.loadTokens(this.tokenListSource, this.tokenListType); return true; } catch (e) { logger.error(`Failed to initialize ${this.chainName} chain: ${e}`); @@ -421,7 +421,8 @@ export class CosmosBase { } getTokenDecimals(token: any): number { - return token ? token.denom_units[token.denom_units.length - 1].exponent : 6; // Last denom unit has the decimal amount we need from our list + return token ? token.decimals : 6; + // return token ? token.denom_units[token.denom_units.length - 1].exponent : 6; // Last denom unit has the decimal amount we need from our list } async getBalances(wallet: CosmosWallet): Promise> { @@ -447,10 +448,8 @@ export class CosmosBase { const { denomTrace } = await setupIbcExtension( await provider.queryClient ).ibc.transfer.denomTrace(ibcHash); - if (denomTrace) { const { baseDenom } = denomTrace; - token = this.getTokenByBase(baseDenom); } } diff --git a/src/chains/oraichain/oraichain.config.ts b/src/chains/oraichain/oraichain.config.ts new file mode 100644 index 0000000000..17a69ce749 --- /dev/null +++ b/src/chains/oraichain/oraichain.config.ts @@ -0,0 +1,53 @@ +import { TokenListType } from '../../services/base'; +import { ConfigManagerV2 } from '../../services/config-manager-v2'; +export interface NetworkConfig { + name: string; + rpcURL: string; + tokenListType: TokenListType; + tokenListSource: string; + marketListType: string; + marketListSource: string; +} + +export interface Config { + network: NetworkConfig; + nativeCurrencySymbol: string; + manualGasPrice: number; + gasLimit: number; +} + +export namespace OraichainConfig { + export const config: Config = getOraichainConfig('oraichain', 'mainnet'); +} + +export function getOraichainConfig( + chainName: string, + networkName: string +): Config { + const configManager = ConfigManagerV2.getInstance(); + return { + network: { + name: networkName, + rpcURL: configManager.get( + chainName + '.networks.' + networkName + '.nodeURL' + ), + tokenListType: configManager.get( + chainName + '.networks.' + networkName + '.tokenListType' + ), + tokenListSource: configManager.get( + chainName + '.networks.' + networkName + '.tokenListSource' + ), + marketListType: configManager.get( + chainName + '.networks.' + networkName + '.marketListType' + ), + marketListSource: configManager.get( + chainName + '.networks.' + networkName + '.marketListSource' + ), + }, + nativeCurrencySymbol: configManager.get( + chainName + '.nativeCurrencySymbol' + ), + manualGasPrice: configManager.get(chainName + '.manualGasPrice'), + gasLimit: configManager.get(chainName + '.gasLimit'), + }; +} diff --git a/src/chains/oraichain/oraichain.controller.ts b/src/chains/oraichain/oraichain.controller.ts new file mode 100644 index 0000000000..1973ba5abb --- /dev/null +++ b/src/chains/oraichain/oraichain.controller.ts @@ -0,0 +1,172 @@ +import { TokensRequest } from '../../network/network.requests'; +import { TokenInfo, TokenValue, tokenValueToString } from '../../services/base'; +import { Oraichain } from './oraichain'; +import { validateGetTokensRequest } from './oraichain.validators'; +import { + validateCosmosBalanceRequest, + validateCosmosPollRequest, +} from '../cosmos/cosmos.validators'; +import { + CosmosBalanceRequest, + CosmosPollRequest, +} from '../cosmos/cosmos.requests'; +import { + HttpException, + TOKEN_NOT_SUPPORTED_ERROR_CODE, + TOKEN_NOT_SUPPORTED_ERROR_MESSAGE, +} from '../../services/error-handler'; +import { decodeTxRaw } from '@cosmjs/proto-signing'; +import { BigNumber } from 'ethers'; + +export interface Token { + base: string; + address: string; + name: string; + symbol: string; + decimals: number; +} + +export const toOraichainBalances = ( + balances: Record, + tokenSymbols: Array +): Record => { + const walletBalances: Record = {}; + + tokenSymbols.forEach((symbol) => { + let balance = '0.0'; + if (balances[symbol]) { + balance = tokenValueToString(balances[symbol]); + } + + walletBalances[symbol] = balance; + }); + + return walletBalances; +}; + +export class OraichainController { + static async getTokens( + oraichainLish: Oraichain, + req: TokensRequest + ): Promise<{ tokens: TokenInfo[] }> { + validateGetTokensRequest(req); + + let tokens: Token[] = []; + if (!req.tokenSymbols) { + tokens = oraichainLish.storedTokenList; + } else { + for (const t of req.tokenSymbols as []) { + const token = oraichainLish.getTokenForSymbol(t); + if (token != undefined) { + tokens.push(token); + } + } + } + + // convert token into TokenINfo + const tokensInfo: TokenInfo[] = []; + tokens.map((token) => { + const tokenInfo: TokenInfo = { + address: token.base, + chainId: 0, + decimals: token.decimals, + name: token.name, + symbol: token.symbol, + }; + tokensInfo.push(tokenInfo); + }); + + return { tokens: tokensInfo }; + } + + static async balances(cosmosish: Oraichain, req: CosmosBalanceRequest) { + validateCosmosBalanceRequest(req); + + const { tokenSymbols } = req; + + let cw20Tokens: Token[] = []; + + tokenSymbols.forEach((symbol: string) => { + const token = cosmosish.getTokenForSymbol(symbol); + + if (!token) { + throw new HttpException( + 500, + TOKEN_NOT_SUPPORTED_ERROR_MESSAGE + symbol, + TOKEN_NOT_SUPPORTED_ERROR_CODE + ); + } else { + if (token.base != 'orai' && !token.base.startsWith('ibc/')) { + cw20Tokens.push(token); + } + } + }); + + const cw20Balances = await this.getTokensBalance( + cosmosish, + req.address, + cw20Tokens + ); + const denomBalances = await cosmosish.getBalance(req.address); + const filteredBalances = toOraichainBalances( + { ...denomBalances, ...cw20Balances }, + tokenSymbols + ); + + return { + balances: filteredBalances, + }; + } + + static async getTokensBalance( + cosmosish: Oraichain, + address: string, + tokens: Token[] + ): Promise> { + const balances: Record = {}; + + await Promise.all( + tokens.map(async (token: Token) => { + try { + let balance = await cosmosish.queryContractSmart(token.base, { + balance: { + address, + }, + }); + balances[token.symbol] = { + value: BigNumber.from(parseInt(balance.balance, 10)), + decimals: cosmosish.getTokenDecimals(token), + }; + } catch (err) { + balances[token.symbol] = { + value: BigNumber.from(parseInt('0', 10)), + decimals: cosmosish.getTokenDecimals(token), + }; + } + }) + ); + + return balances; + } + + static async poll(cosmos: Oraichain, req: CosmosPollRequest) { + validateCosmosPollRequest(req); + + if (req.txHash == undefined) { + throw new HttpException(500, 'txHash is required'); + } + + const transaction = await cosmos.getTransaction(req.txHash); + const currentBlock = await cosmos.getCurrentBlockNumber(); + + return { + txHash: req.txHash, + currentBlock, + txBlock: transaction.height, + gasUsed: transaction.gasUsed, + gasWanted: transaction.gasWanted, + txData: decodeTxRaw(transaction.tx), + events: transaction.events, + }; + } +} diff --git a/src/chains/oraichain/oraichain.ts b/src/chains/oraichain/oraichain.ts new file mode 100644 index 0000000000..e51e9fa2f2 --- /dev/null +++ b/src/chains/oraichain/oraichain.ts @@ -0,0 +1,264 @@ +import { Cosmosish } from '../../services/common-interfaces'; +import { CosmosBase } from '../cosmos/cosmos-base'; +import { getOraichainConfig } from './oraichain.config'; +import { logger } from '../../services/logger'; +import { TokenInfo, TokenValue } from '../../services/base'; +import fse from 'fs-extra'; +import { OraichainController } from './oraichain.controller'; +import { + JsonObject, + CosmWasmClient, + SigningCosmWasmClient, + ExecuteInstruction, +} from '@cosmjs/cosmwasm-stargate'; +import * as cosmwasm from '@cosmjs/cosmwasm-stargate'; +import { DirectSecp256k1Wallet } from '@cosmjs/proto-signing'; +import { GasPrice, StargateClient, setupIbcExtension } from '@cosmjs/stargate'; +import { BigNumber } from 'ethers'; + +export type MarketInfo = { + id: number; + marketId: string; + base: TokenInfo; + quote: TokenInfo; +}; + +export class Oraichain extends CosmosBase implements Cosmosish { + private static _instances: { [name: string]: Oraichain }; + private _rpcUrl: string; + private _gasPrice: number; + private _nativeTokenSymbol: string; + private _chain: string; + private _requestCount: number; + private _metricsLogInterval: number; + private _metricTimer; + private _signers: Map = new Map(); + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + private _cosmwasmClient: CosmWasmClient; + + public controller; + + protected marketList: MarketInfo[] = []; + + private constructor(network: string) { + const config = getOraichainConfig('oraichain', network); + + super( + 'oraichain', + config.network.rpcURL, + config.network.tokenListSource, + config.network.tokenListType, + config.manualGasPrice, + ); + this._rpcUrl = config.network.rpcURL; + this._chain = network; + this._nativeTokenSymbol = config.nativeCurrencySymbol; + + this._gasPrice = config.manualGasPrice; + + this._requestCount = 0; + this._metricsLogInterval = 300000; // 5 minutes + + this._metricTimer = setInterval( + this.metricLogger.bind(this), + this.metricsLogInterval, + ); + this.controller = OraichainController; + } + + public static getInstance(network: string): Oraichain { + if (Oraichain._instances === undefined) { + Oraichain._instances = {}; + } + if (!(network in Oraichain._instances)) { + Oraichain._instances[network] = new Oraichain(network); + } + return Oraichain._instances[network]; + } + + async init(): Promise { + if (!this.ready()) { + await super.init(); + await this.initSigningCosmWasmClient(); + //init cosmwasm client + this._cosmwasmClient = await cosmwasm.SigningCosmWasmClient.connect( + this._rpcUrl, + ); + } + } + + public static getConnectedInstances(): { [name: string]: Oraichain } { + return Oraichain._instances; + } + + public requestCounter(msg: any): void { + if (msg.action === 'request') this._requestCount += 1; + } + + public metricLogger(): void { + logger.info( + this.requestCount + + ' request(s) sent in last ' + + this.metricsLogInterval / 1000 + + ' seconds.', + ); + this._requestCount = 0; // reset + } + + public async queryContractSmart( + address: string, + query: JsonObject, + ): Promise { + return await this._cosmwasmClient.queryContractSmart(address, query); + } + + public async initSigningCosmWasmClient(): Promise { + if (!fse.pathExistsSync('conf/wallets/oraichain')) { + return; + } + + fse.readdirSync('conf/wallets/oraichain').forEach(async (file) => { + const address = file.split('.')[0]; + const client = await this.createSigningCosmWasmClient(file.split('.')[0]); + + this._signers.set(address, client); + }); + } + + public async createSigningCosmWasmClient( + address: string, + ): Promise { + const walletCommon: any = await this.getWallet(address, 'orai'); + + const wallet = await DirectSecp256k1Wallet.fromKey( + walletCommon.privkey, + 'orai', + ); + + return await cosmwasm.SigningCosmWasmClient.connectWithSigner( + this._rpcUrl, + wallet, + { + gasPrice: GasPrice.fromString('0.001orai'), + broadcastPollIntervalMs: 500, + }, + ); + } + + public async getSigningClient( + address: string, + ): Promise { + let client = this._signers.get(address); + + if (!client) { + client = await this.createSigningCosmWasmClient(address); + this._signers.set(address, client); + } + return client; + } + + public async executeContract( + sender: string, + contractAddress: string, + msg: JsonObject, + funds: any, + ): Promise { + const client = await this.getSigningClient(sender); + + const res = await client.execute( + sender, + contractAddress, + msg, + 'auto', + undefined, + funds, + ); + + return res; + } + + public async executeContractMultiple( + sender: string, + instructions: ExecuteInstruction[], + ): Promise { + const client = await this.getSigningClient(sender); + + const res = await client.executeMultiple(sender, instructions, 'auto'); + + return res; + } + + async getBalance(address: string): Promise> { + const provider = await StargateClient.connect(this._rpcUrl); + + const balances: Record = {}; + + const allTokens = await provider.getAllBalances(address); + + await Promise.all( + allTokens.map(async (t: { denom: string; amount: string }) => { + let token = this.getTokenByBase(t.denom); + + if (!token && t.denom.startsWith('ibc/')) { + const ibcHash: string = t.denom.replace('ibc/', ''); + + // Get base denom by IBC hash + if (ibcHash) { + const { denomTrace } = await setupIbcExtension( + await (provider as any).queryClient, + ).ibc.transfer.denomTrace(ibcHash); + if (denomTrace) { + const { baseDenom } = denomTrace; + token = this.getTokenByBase(baseDenom); + } + } + } + + // Not all tokens are added in the registry so we use the denom if the token doesn't exist + balances[token ? token.symbol : t.denom] = { + value: BigNumber.from(parseInt(t.amount, 10)), + decimals: this.getTokenDecimals(token), + }; + }), + ); + + return balances; + } + + public get gasPrice(): number { + return this._gasPrice; + } + + public get chain(): string { + return this._chain; + } + + public get nativeTokenSymbol(): string { + return this._nativeTokenSymbol; + } + + public get requestCount(): number { + return this._requestCount; + } + + public get metricsLogInterval(): number { + return this._metricsLogInterval; + } + + public get storedMarketList(): MarketInfo[] { + return this.marketList; + } + + public get cosmwasmClient(): CosmWasmClient { + return this._cosmwasmClient; + } + + async close() { + clearInterval(this._metricTimer); + if (this._chain in Oraichain._instances) { + delete Oraichain._instances[this._chain]; + } + } +} diff --git a/src/chains/oraichain/oraichain.validators.ts b/src/chains/oraichain/oraichain.validators.ts new file mode 100644 index 0000000000..08f92d1671 --- /dev/null +++ b/src/chains/oraichain/oraichain.validators.ts @@ -0,0 +1,8 @@ +import { + RequestValidator, + mkRequestValidator, +} from '../../services/validators'; + +export const validateGetTokensRequest: RequestValidator = mkRequestValidator( + [] +); diff --git a/src/clob/clob.controllers.ts b/src/clob/clob.controllers.ts index 42ce7624d3..4543121255 100644 --- a/src/clob/clob.controllers.ts +++ b/src/clob/clob.controllers.ts @@ -43,7 +43,7 @@ import { PerpClobGetLastTradePriceRequest, PerpClobGetLastTradePriceResponse, PerpClobBatchUpdateRequest, - PerpClobBatchUpdateResponse + PerpClobBatchUpdateResponse, } from './clob.requests'; import { HttpException, diff --git a/src/clob/clob.validators.ts b/src/clob/clob.validators.ts index 2604927be8..9a2141ea85 100644 --- a/src/clob/clob.validators.ts +++ b/src/clob/clob.validators.ts @@ -20,6 +20,7 @@ import { validateSide, } from '../amm/amm.validators'; import { isValidKujiraPublicKey } from '../connectors/kujira/kujira.helpers'; +import { isValidCosmosAddress } from '../chains/cosmos/cosmos.validators'; export const invalidMarketError: string = 'The market param is not a valid market. Market should be in {base}-{quote} format.'; @@ -99,10 +100,11 @@ export const validateWallet: Validator = mkValidator( invalidWalletError, (val) => { return ( - typeof val === 'string' && - (isAddress(val.slice(0, 42)) || - isValidKujiraPublicKey(val) || - isXRPLAddress(val)) + (typeof val === 'string' && + (isAddress(val.slice(0, 42)) || + isValidKujiraPublicKey(val) || + isXRPLAddress(val))) || + isValidCosmosAddress(val) ); } ); diff --git a/src/connectors/connectors.routes.ts b/src/connectors/connectors.routes.ts index d9ac0b63f9..f44f303882 100644 --- a/src/connectors/connectors.routes.ts +++ b/src/connectors/connectors.routes.ts @@ -24,6 +24,7 @@ import { KujiraConfig } from './kujira/kujira.config'; import { QuipuswapConfig } from './quipuswap/quipuswap.config'; import { OsmosisConfig } from '../chains/osmosis/osmosis.config'; import { CarbonConfig } from './carbon/carbon.config'; +import { OraidexConfig } from './oraidex/oraidex.config'; export namespace ConnectorsRoutes { export const router = Router(); @@ -183,6 +184,12 @@ export namespace ConnectorsRoutes { chain_type: CarbonConfig.config.chainType, available_networks: CarbonConfig.config.availableNetworks, }, + { + name: 'oraidex', + trading_type: OraidexConfig.config.tradingTypes, + chain_type: OraidexConfig.config.chainType, + available_networks: OraidexConfig.config.availableNetworks, + }, ], }); }) diff --git a/src/connectors/dexalot/dexalot.ts b/src/connectors/dexalot/dexalot.ts index 31c43e2c04..2ae480f580 100644 --- a/src/connectors/dexalot/dexalot.ts +++ b/src/connectors/dexalot/dexalot.ts @@ -255,7 +255,7 @@ export class DexalotCLOB implements CLOBish { const clientOrderID = req.clientOrderID || (await this.getClientOrderId(req.address)); - const txData = await this.tradePairsContract.populateTransaction.addOrder( + const txData = await this.tradePairsContract.populateTransaction.addxOrder( req.address, clientOrderID, this.getDexalotTradingPair(req.market), diff --git a/src/connectors/oraidex/oraidex.config.ts b/src/connectors/oraidex/oraidex.config.ts new file mode 100644 index 0000000000..e1edfde3a3 --- /dev/null +++ b/src/connectors/oraidex/oraidex.config.ts @@ -0,0 +1,32 @@ +// import { BigNumber } from 'bignumber.js'; +import { ConfigManagerV2 } from '../../services/config-manager-v2'; + +const configManager = ConfigManagerV2.getInstance(); + +export interface NetworkConfig { + name: string; + nodeURL: string | null; + chainId: string; + tokenListType: string; + tokenListSource: string; +} + +export namespace OraidexConfig { + export const config = { + chainType: 'cosmos', + tradingTypes: ['CLOB_SPOT'], + chain: 'oraichain', + networks: new Map( + Object.entries(configManager.get(`oraichain.networks`)) + ), + availableNetworks: [ + { + chain: 'oraichain', + networks: Object.keys(configManager.get(`oraichain.networks`)), + }, + ], + swapLimitOrder: configManager.get( + 'oraidex.contractAddresses.mainnet.swapLimitOrder' + ), + }; +} diff --git a/src/connectors/oraidex/oraidex.converters.ts b/src/connectors/oraidex/oraidex.converters.ts new file mode 100644 index 0000000000..888403a049 --- /dev/null +++ b/src/connectors/oraidex/oraidex.converters.ts @@ -0,0 +1,18 @@ +import { IMap } from './oraidex.types'; + +export const convertRawLogEventsToMapOfEvents = ( + eventsLog: Array +): IMap => { + const output = IMap().asMutable(); + for (const eventLog of eventsLog) { + const bundleIndex = eventLog['msg_index']; + const events = eventLog['events']; + for (const event of events) { + for (const attribute of event.attributes) { + output.setIn([bundleIndex, event.type, attribute.key], attribute.value); + } + } + } + + return output; +}; diff --git a/src/connectors/oraidex/oraidex.helper.ts b/src/connectors/oraidex/oraidex.helper.ts new file mode 100644 index 0000000000..92bca3e633 --- /dev/null +++ b/src/connectors/oraidex/oraidex.helper.ts @@ -0,0 +1,114 @@ +import { AssetInfo } from '@oraichain/oraidex-contracts-sdk'; +import { Token } from './oraidex.types'; +import { CosmWasmClient, Cw20BaseQueryClient } from '@oraichain/common-contracts-sdk'; +import * as constant from '@oraichain/oraidex-common/build/constant'; +import { IndexedTx } from '@cosmjs/stargate'; + +/** + * + * @param value + * @param errorMessage + */ +export const getNotNullOrThrowError = ( + value?: any, + errorMessage: string = 'Value is null or undefined', +): R => { + if (value === undefined || value === null) throw new Error(errorMessage); + + return value as R; +}; + +/** + * + * @param milliseconds + */ +export const sleep = (milliseconds: number) => + new Promise((callback) => setTimeout(callback, milliseconds)); + +/** + * + * @param address native denom or contract address + * @returns return asset info + */ +export const parseToAssetInfo = (address: string): AssetInfo => { + const lowercaseAddress = address.toLocaleLowerCase(); + + if (lowercaseAddress === 'orai' || lowercaseAddress.startsWith('ibc/')) { + return { + native_token: { + denom: address, + }, + }; + } + + return { + token: { + contract_addr: address, + }, + }; +}; + +export const getOrderIdsFromTxData = (txData: IndexedTx): string[] => { + const orderIds: string[] = []; + + txData.events.forEach((event) => { + event.attributes.forEach((attribute) => { + if (attribute.key === 'order_id') { + orderIds.push(attribute.value); + } + }) + }) + + return orderIds; +} + +export const parseToToken = async (asset: AssetInfo, client: CosmWasmClient): Promise => { + let token: Token; + let cw20BaseQueryClient: Cw20BaseQueryClient; + + // @ts-ignore + if (asset.token != undefined) { + // @ts-ignore + const tokenAddress = asset.token.contract_addr; + cw20BaseQueryClient = new Cw20BaseQueryClient( + client, + tokenAddress, + ); + const info = await cw20BaseQueryClient.tokenInfo(); + token = { + decimals: info.decimals, + name: info.name, + symbol: info.symbol, + assetInfo: { + token: { + contract_addr: tokenAddress, + } + }, + }; + } else { + // @ts-ignore + const tokenDenom = asset.native_token.denom; + let symbol = tokenDenom; + if (symbol.startsWith('ibc/')) { + // @ts-ignore + symbol = Object.keys(constant).find((key) => constant[key] === symbol)?.split('_')[0]; + } + token = { + // hardcode decinmal of native token + decimals: 6, + name: symbol.toUpperCase(), + symbol: symbol.toUpperCase(), + assetInfo: { + native_token: { + denom: tokenDenom, + } + }, + }; + } + + return token; +}; + +export const isNativeDenom = (token: AssetInfo): boolean => { + return 'native_token' in token; +}; diff --git a/src/connectors/oraidex/oraidex.ts b/src/connectors/oraidex/oraidex.ts new file mode 100644 index 0000000000..288bcfb95a --- /dev/null +++ b/src/connectors/oraidex/oraidex.ts @@ -0,0 +1,607 @@ +import { Oraichain } from '../../chains/oraichain/oraichain'; +import { + CLOBMarkets, + ClobBatchUpdateRequest, + ClobDeleteOrderRequest, + ClobGetOrderRequest, + ClobGetOrderResponse, + ClobMarketsRequest, + ClobOrderbookRequest, + ClobPostOrderRequest, + ClobTickerRequest, +} from '../../clob/clob.requests'; +import { + CLOBish, + NetworkSelectionRequest, + Orderbook, +} from '../../services/common-interfaces'; +import { + getNotNullOrThrowError, + getOrderIdsFromTxData, + isNativeDenom, + parseToToken, +} from './oraidex.helper'; + +import { + CancelOrdersRequest, + Market, + PlaceOrdersRequest, +} from './oraidex.types'; +import { BigNumber } from 'bignumber.js'; +import { OraiswapOrderbookQueryClient } from '@oraichain/oraidex-contracts-sdk'; +import { OraidexConfig } from './oraidex.config'; +import { JsonObject, ExecuteInstruction } from '@cosmjs/cosmwasm-stargate'; + +const ORDERBOOK_LIMIT = 100; +export class OraidexCLOB implements CLOBish { + chain: string; + + network: string; + + public parsedMarkets: CLOBMarkets = {}; + + private _swapLimitOrder: string; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + private oraichainNetwork: Oraichain; + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + private orderbookQueryClient: OraiswapLimitOrderQueryClient; + + private _ready: boolean = false; + private static _instances: { [name: string]: OraidexCLOB }; + + private constructor(chain: string, network: string) { + let config = OraidexConfig.config; + + this._swapLimitOrder = config.swapLimitOrder; + this.chain = chain; + this.network = network; + this.oraichainNetwork = Oraichain.getInstance(network); + } + + public static getInstance(chain: string, network: string): OraidexCLOB { + if (OraidexCLOB._instances === undefined) { + OraidexCLOB._instances = {}; + } + + const key = `${chain}:${network}`; + + if (!(key in OraidexCLOB._instances)) { + OraidexCLOB._instances[key] = new OraidexCLOB(chain, network); + } + + return OraidexCLOB._instances[key]; + } + + public static getConnectedInstances(): { [key: string]: OraidexCLOB } { + return OraidexCLOB._instances; + } + + /** + * Initialize Oraidex connector. + */ + async init() { + this.oraichainNetwork = await Oraichain.getInstance(this.network); + await this.oraichainNetwork.init(); + this.orderbookQueryClient = new OraiswapOrderbookQueryClient( + this.oraichainNetwork.cosmwasmClient, + this._swapLimitOrder, + ); + await this.loadMarkets(); + this._ready = true; + } + + ready(): boolean { + return this._ready; + } + + public async loadMarkets() { + const rawMarkets = await this.getAllMarkets(); + for (const market of rawMarkets) { + this.parsedMarkets[market.marketId] = market; + } + } + + async markets(req: ClobMarketsRequest): Promise<{ markets: CLOBMarkets }> { + if (req.market && req.market.split('-').length === 2) { + const resp: CLOBMarkets = {}; + resp[req.market] = this.parsedMarkets[req.market]; + + return { markets: resp }; + } + return { markets: this.parsedMarkets }; + } + + async getAllMarkets(): Promise { + const orderBooks = await this.orderbookQueryClient.orderBooks({}); + + try { + const loadedMarkets: Market[] = await Promise.all( + orderBooks.order_books.map(async (pair: any) => { + const baseToken = await parseToToken( + pair.base_coin_info, + this.oraichainNetwork.cosmwasmClient, + // ibcTokens, + ); + const quoteToken = await parseToToken( + pair.quote_coin_info, + this.oraichainNetwork.cosmwasmClient, + // ibcTokens, + ); + + return { + marketId: `${baseToken.symbol}-${quoteToken.symbol}`, + baseToken: baseToken, + quoteToken: quoteToken, + min_quote_coin_amount: pair.min_quote_coin_amount, + spread: pair.spread ? pair.spread : '0', + // hardcode fee cause in contract, fee is hardcoded + fees: { + maker: new BigNumber('0.1'), + taker: new BigNumber('0.1'), + }, + minimumOrderSize: '0.000001', + minimumPriceIncrement: '0.000001', + minimumBaseAmountIncrement: '0.000001', + minimumQuoteAmountIncrement: '0.000001', + }; + }), + ); + + return loadedMarkets; + } catch (err) { + console.error(err); + return []; + } + } + + public async orderBook(req: ClobOrderbookRequest): Promise { + return await this.getOrderBook(this.parsedMarkets[req.market]); + } + + async getOrderBook( + market: Market, + limit: number = ORDERBOOK_LIMIT, + ): Promise { + const buys: any = []; + const sells: any = []; + + const res: JsonObject = { orders: [] }; + let partialResponse: JsonObject; + + while (!partialResponse || partialResponse.orders.length >= limit) { + partialResponse = await this.orderbookQueryClient.orders({ + assetInfos: [market.baseToken.assetInfo, market.quoteToken.assetInfo], + filter: 'none', + limit: limit, + startAfter: partialResponse + ? partialResponse.orders[partialResponse.orders.length - 1].order_id + : null, + }); + + res.orders = [...res.orders, ...partialResponse.orders]; + } + + res.orders.forEach((order: any) => { + if (order.direction == 'buy') { + let price = ( + parseFloat(order.offer_asset.amount) / + parseFloat(order.ask_asset.amount) + ).toFixed(4); + let quantity = ( + Number(order.ask_asset.amount) - Number(order.filled_ask_amount) + ).toString(); + + buys.push({ + price, + quantity, + timestamp: Date.now(), + }); + } else { + let price = ( + parseFloat(order.ask_asset.amount) / + parseFloat(order.offer_asset.amount) + ).toFixed(4); + let quantity = ( + Number(order.offer_asset.amount) - Number(order.filled_offer_amount) + ).toString(); + + sells.push({ + price, + quantity, + timestamp: Date.now(), + }); + } + }); + return { buys, sells }; + } + + public async ticker( + req: ClobTickerRequest, + ): Promise<{ markets: CLOBMarkets }> { + const requestMarket = getNotNullOrThrowError(req.market); + const midPrice = await this.getMidPriceForMarket( + this.parsedMarkets[requestMarket], + ); + return { + markets: { + market: this.parsedMarkets[requestMarket], + price: midPrice, + timestamp: Date.now(), + }, + }; + } + + private async getMidPriceForMarket(market: Market) { + const midPrice = await this.orderbookQueryClient.midPrice({ + assetInfos: [market.baseToken.assetInfo, market.quoteToken.assetInfo], + }); + + return Number(midPrice).toFixed(3); + } + + public async orders( + req: ClobGetOrderRequest, + ): Promise<{ orders: ClobGetOrderResponse['orders'] }> { + const requestMarket = getNotNullOrThrowError(req.market); + const market = this.parsedMarkets[requestMarket]; + let originalOrders; + + if (req.address) { + originalOrders = ( + await this.getAllOrders( + market, + getNotNullOrThrowError(req.address), + ) + ).orders; + + if (req.orderId != 'None') { + originalOrders = originalOrders.filter( + (order: any) => order.order_id == req.orderId, + ); + } + } else { + const originalOrder = await this.orderbookQueryClient.order({ + orderId: Number(req.orderId), + assetInfos: [market.baseToken.assetInfo, market.quoteToken.assetInfo], + }); + originalOrders = [originalOrder]; + } + return { orders: originalOrders }; + } + + public async getAllOrders(market: Market, owner: string) { + const response: JsonObject = { orders: [] }; + let partialResponse: JsonObject; + + while ( + !partialResponse || + partialResponse.orders.length >= ORDERBOOK_LIMIT + ) { + partialResponse = await this.orderbookQueryClient.orders({ + assetInfos: [market.baseToken.assetInfo, market.quoteToken.assetInfo], + filter: { + bidder: owner, + }, + limit: ORDERBOOK_LIMIT, + startAfter: partialResponse + ? partialResponse.orders[partialResponse.orders.length - 1].order_id + : null, + }); + + response.orders = [...response.orders, ...partialResponse.orders]; + } + + return response; + } + + async postOrder( + req: ClobPostOrderRequest, + ): Promise<{ txHash: any; id?: string }> { + const convertedReq = { + ownerAddress: req.address, + orders: [req], + }; + + const { txHash, orderIds } = await this.placeOrder(convertedReq); + + return { txHash, id: orderIds[0] }; + } + + public async batchOrders(req: ClobBatchUpdateRequest): Promise { + try { + if (req.createOrderParams || req.cancelOrderParams) { + if (req.createOrderParams) { + const convertedReq = { + ownerAddress: req.address, + orders: req.createOrderParams, + }; + const { txHash, orderIds } = await this.placeOrders(convertedReq); + return { txHash, orderIds }; + } else if (req.cancelOrderParams) { + const convertedReq = { + ownerAddress: req.address, + orders: req.cancelOrderParams, + }; + return { txHash: await this.cancelOrders(convertedReq) }; + } + } + + return {}; + } catch (err) { + console.error(err); + } + } + + async placeOrder(options: PlaceOrdersRequest) { + const sender = options.ownerAddress; + + let baseDecimal: number; + let quoteDecimal: number; + + const order = options.orders[0]; + + const market = this.parsedMarkets[order.market] as Market; + quoteDecimal = 10 ** market.quoteToken.decimals; + baseDecimal = 10 ** market.baseToken.decimals; + + const baseAmount = Math.round(Number(order.amount) * baseDecimal); + const baseToken = market.baseToken.assetInfo; + const quoteToken = market.quoteToken.assetInfo; + const quoteAmount = Math.round( + quoteDecimal * parseFloat(order.price) * parseFloat(order.amount), + ); + + const assets = [ + { info: baseToken, amount: baseAmount.toString() }, + { info: quoteToken, amount: quoteAmount.toString() }, + ]; + const submitOrderMsg = { + submit_order: { + assets, + direction: order.side.toLowerCase(), + }, + }; + + let instruction: ExecuteInstruction; + + if (order.side == 'BUY') { + if (isNativeDenom(quoteToken)) { + instruction ={ + contractAddress: this._swapLimitOrder, + msg: submitOrderMsg, + funds: [ + { + denom: getNotNullOrThrowError( + (quoteToken as any).native_token.denom, + ), + amount: quoteAmount.toString(), + }, + ], + }; + } else { + instruction = { + contractAddress: (quoteToken as any).token.contract_addr, + msg: { + send: { + contract: this._swapLimitOrder, + amount: quoteAmount.toString(), + msg: Buffer.from(JSON.stringify(submitOrderMsg)).toString( + 'base64', + ), + }, + }, + funds: [], + }; + } + } else { + if (isNativeDenom(baseToken)) { + instruction = { + contractAddress: this._swapLimitOrder, + msg: submitOrderMsg, + funds: [ + { + denom: getNotNullOrThrowError( + (baseToken as any).native_token.denom, + ), + amount: baseAmount.toString(), + }, + ], + }; + } else { + instruction = { + contractAddress: (baseToken as any).token.contract_addr, + msg: { + send: { + contract: this._swapLimitOrder, + amount: baseAmount.toString(), + msg: Buffer.from(JSON.stringify(submitOrderMsg)).toString( + 'base64', + ), + }, + }, + funds: [], + }; + } + } + + const res = await this.oraichainNetwork.executeContract( + sender, + instruction.contractAddress, + instruction.msg, + instruction.funds, + ); + + const txData = await this.oraichainNetwork.cosmwasmClient.getTx(res.transactionHash); + console.dir(txData, { depth: null }); + if (!txData) throw new Error('Transaction not found'); + const orderIds = getOrderIdsFromTxData(txData); + + return { txHash: res.transactionHash, orderIds }; + } + + async placeOrders(options: PlaceOrdersRequest) { + const instructions: ExecuteInstruction[] = []; + const sender = options.ownerAddress; + + let baseDecimal: number; + let quoteDecimal: number; + + for (const order of options.orders) { + const market = this.parsedMarkets[order.market] as Market; + quoteDecimal = 10 ** market.quoteToken.decimals; + baseDecimal = 10 ** market.baseToken.decimals; + + const baseAmount = Math.round(Number(order.amount) * baseDecimal); + const baseToken = market.baseToken.assetInfo; + const quoteToken = market.quoteToken.assetInfo; + const quoteAmount = Math.round( + quoteDecimal * parseFloat(order.price) * parseFloat(order.amount), + ); + + const assets = [ + { info: baseToken, amount: baseAmount.toString() }, + { info: quoteToken, amount: quoteAmount.toString() }, + ]; + const submitOrderMsg = { + submit_order: { + assets, + direction: order.side.toLowerCase(), + }, + }; + + if (order.side == 'BUY') { + if (isNativeDenom(quoteToken)) { + instructions.push({ + contractAddress: this._swapLimitOrder, + msg: submitOrderMsg, + funds: [ + { + denom: getNotNullOrThrowError( + (quoteToken as any).native_token.denom, + ), + amount: quoteAmount.toString(), + }, + ], + }); + } else { + instructions.push({ + contractAddress: (quoteToken as any).token.contract_addr, + msg: { + send: { + contract: this._swapLimitOrder, + amount: quoteAmount.toString(), + msg: Buffer.from(JSON.stringify(submitOrderMsg)).toString( + 'base64', + ), + }, + }, + funds: [], + }); + } + } else { + if (isNativeDenom(baseToken)) { + instructions.push({ + contractAddress: this._swapLimitOrder, + msg: submitOrderMsg, + funds: [ + { + denom: getNotNullOrThrowError( + (baseToken as any).native_token.denom, + ), + amount: baseAmount.toString(), + }, + ], + }); + } else { + instructions.push({ + contractAddress: (baseToken as any).token.contract_addr, + msg: { + send: { + contract: this._swapLimitOrder, + amount: baseAmount.toString(), + msg: Buffer.from(JSON.stringify(submitOrderMsg)).toString( + 'base64', + ), + }, + }, + funds: [], + }); + } + } + } + + const res = await this.oraichainNetwork.executeContractMultiple( + sender, + instructions, + ); + + const txData = await this.oraichainNetwork.cosmwasmClient.getTx(res.transactionHash); + if (!txData) throw new Error('Transaction not found'); + const orderIds = getOrderIdsFromTxData(txData); + + return { txHash: res.transactionHash, orderIds }; + } + + async deleteOrder(req: ClobDeleteOrderRequest): Promise<{ txHash: string }> { + const market = this.parsedMarkets[req.market] as Market; + const baseToken = market.baseToken.assetInfo; + const quoteToken = market.quoteToken.assetInfo; + + const res = await this.oraichainNetwork.executeContract( + req.address, + this._swapLimitOrder, + { + cancel_order: { + asset_infos: [baseToken, quoteToken], + order_id: Number(req.orderId), + }, + }, + [], + ); + return { txHash: res.transactionHash }; + } + + async cancelOrders(options: CancelOrdersRequest) { + const instructions: ExecuteInstruction[] = []; + const sender = options.ownerAddress; + + for (const order of options.orders) { + const market = this.parsedMarkets[order.market] as Market; + const baseToken = market.baseToken.assetInfo; + const quoteToken = market.quoteToken.assetInfo; + instructions.push({ + contractAddress: this._swapLimitOrder, + msg: { + cancel_order: { + asset_infos: [baseToken, quoteToken], + order_id: Number(order.orderId), + }, + }, + funds: [], + }); + } + + const res = await this.oraichainNetwork.executeContractMultiple( + sender, + instructions, + ); + return res.transactionHash; + } + + estimateGas(_req: NetworkSelectionRequest): { + gasPrice: number; + gasPriceToken: string; + gasLimit: number; + gasCost: number; + } { + return { + gasCost: 0, + gasLimit: 500000, + gasPrice: this.oraichainNetwork.gasPrice, + gasPriceToken: 'orai', + }; + } +} diff --git a/src/connectors/oraidex/oraidex.types.ts b/src/connectors/oraidex/oraidex.types.ts new file mode 100644 index 0000000000..97a2a81336 --- /dev/null +++ b/src/connectors/oraidex/oraidex.types.ts @@ -0,0 +1,94 @@ +import { AssetInfo } from '@oraichain/oraidex-contracts-sdk'; +import { BigNumber } from 'bignumber.js'; +import { Map as ImmutableMap, Set as ImmutableSet } from 'immutable'; +import { + ClobDeleteOrderRequestExtract, + CreateOrderParam, +} from '../../clob/clob.requests'; + +// +// Types and Constants +// + +export type IMap = ImmutableMap; +export const IMap = ImmutableMap; +export type ISet = ImmutableSet; +export const ISet = ImmutableSet; + +export type Address = string; +export type OwnerAddress = Address; +export type OrderId = string; +export type Fee = BigNumber; +export type FeeMaker = Fee; +export type FeeTaker = Fee; +export type FeeServiceProvider = Fee; + +export type MarketId = Address; + +export type Token = { + name: string; + symbol: string; + decimals: number; + assetInfo: AssetInfo; +} + +// +// Enums +// +export enum OrderDirection { + BUY = 'BUY', + SELL = 'SELL', +} + +export enum OrderStatus { + OPEN = 'OPEN', + CANCELLED = 'CANCELLED', + PARTIALLY_FILLED = 'PARTIALLY_FILLED', + FILLED = 'FILLED', + CREATION_PENDING = 'CREATION_PENDING', + CANCELLATION_PENDING = 'CANCELLATION_PENDING', + UNKNOWN = 'UNKNOWN', +} + +export enum OrderType { + MARKET = 'MARKET', + LIMIT = 'LIMIT', + IOC = 'IOC', // Immediate or Cancel +} + +// +// Interfaces +// +export interface Market { + marketId: string; + baseToken: Token; + quoteToken: Token; + min_quote_coin_amount: string; + spread: string; // Also called tickSize + fees: MarketFee; + minimumOrderSize: String; + minimumPriceIncrement: String; // Also called tickSize + minimumBaseAmountIncrement: String; + minimumQuoteAmountIncrement: String; +} + +export interface MarketFee { + maker: FeeMaker; + taker: FeeTaker; +} + +export interface PlaceOrdersRequest { + ownerAddress: string; + orders: CreateOrderParam[]; +} + +export interface CancelOrdersRequest { + ownerAddress: string; + orders: ClobDeleteOrderRequestExtract[]; +} + +// +// Errors +// +export class CLOBishError extends Error {} +export class MarketNotFoundError extends CLOBishError {} diff --git a/src/connectors/pancakeswap/pancakeswap.ts b/src/connectors/pancakeswap/pancakeswap.ts index 5f384ec081..b0fe870db9 100644 --- a/src/connectors/pancakeswap/pancakeswap.ts +++ b/src/connectors/pancakeswap/pancakeswap.ts @@ -214,6 +214,7 @@ export class PancakeSwap implements Uniswapish { `priceSwapOut: no trade pair found for ${baseToken.address} to ${quoteToken.address}.`, ); } + logger.info( `Best trade for ${baseToken.address}-${quoteToken.address}: ` + `${trade.inputAmount.toExact()}` + diff --git a/src/services/connection-manager.ts b/src/services/connection-manager.ts index e2bd6d4866..4c58f231bc 100644 --- a/src/services/connection-manager.ts +++ b/src/services/connection-manager.ts @@ -45,6 +45,8 @@ import { PancakeswapLP } from '../connectors/pancakeswap/pancakeswap.lp'; import { XRPLCLOB } from '../connectors/xrpl/xrpl'; import { QuipuSwap } from '../connectors/quipuswap/quipuswap'; import { Carbonamm } from '../connectors/carbon/carbonAMM'; +import { OraidexCLOB } from '../connectors/oraidex/oraidex'; +import { Oraichain } from '../chains/oraichain/oraichain'; export type ChainUnion = | Algorand @@ -55,7 +57,8 @@ export type ChainUnion = | Tezosish | XRPLish | Kujira - | Osmosis; + | Osmosis + | Oraichain; export type Chain = T extends Algorand ? Algorand @@ -75,7 +78,9 @@ export type Chain = T extends Algorand ? KujiraCLOB : T extends Osmosis ? Osmosis - : never; + : T extends OraidexCLOB + ? OraidexCLOB + : never; export class UnsupportedChainException extends Error { constructor(message?: string) { @@ -140,6 +145,8 @@ export async function getChainInstance( connection = XRPL.getInstance(network); } else if (chain === 'kujira') { connection = Kujira.getInstance(network); + } else if (chain === 'oraichain') { + connection = Oraichain.getInstance(network); } else { connection = undefined; } @@ -249,6 +256,8 @@ export async function getConnector( connectorInstance = QuipuSwap.getInstance(network); } else if (chain === 'ethereum' && connector === 'carbonamm') { connectorInstance = Carbonamm.getInstance(chain, network); + } else if (chain === 'oraichain' && connector === 'oraidex') { + connectorInstance = OraidexCLOB.getInstance(chain, network); } else { throw new Error('unsupported chain or connector'); } diff --git a/src/services/schema/oraichain-schema.json b/src/services/schema/oraichain-schema.json new file mode 100644 index 0000000000..290bcfd8c2 --- /dev/null +++ b/src/services/schema/oraichain-schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "networks": { + "type": "object", + "patternProperties": { + "^\\w+$": { + "type": "object", + "properties": { + "chainId": { "type": "string" }, + "nodeURL": { "type": "string" }, + "tokenListType": { + "type": "string" + }, + "tokenListSource": { + "type": "string" + }, + "marketListType": { + "type": "string" + }, + "marketListSource": { + "type": "string" + } + }, + "required": ["chainId", "nodeURL"], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "nativeCurrencySymbol": { "type": "string" }, + "gasLimitEstimate": { "type": "number" }, + "prefix": { "type": "string" }, + "gasPrice": { "type": "number" }, + "gasPriceSuffix": { "type": "string" }, + "manualGasPrice": { "type": "number" } + }, + "additionalProperties": false, + "required": ["nativeCurrencySymbol"] +} diff --git a/src/services/schema/oraidex-schema.json b/src/services/schema/oraidex-schema.json new file mode 100644 index 0000000000..593f00621d --- /dev/null +++ b/src/services/schema/oraidex-schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "contractAddresses": { + "type": "object", + "patternProperties": { + "^\\w+$": { + "type": "object", + "properties": { + "swapLimitOrder": { "type": "string" } + }, + "required": ["swapLimitOrder"], + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": ["contractAddresses"] +} diff --git a/src/services/wallet/wallet.controllers.ts b/src/services/wallet/wallet.controllers.ts index e6c23dbfe0..5e76ada3df 100644 --- a/src/services/wallet/wallet.controllers.ts +++ b/src/services/wallet/wallet.controllers.ts @@ -35,6 +35,7 @@ import { import { Ethereumish, Tezosish } from '../common-interfaces'; import { Algorand } from '../../chains/algorand/algorand'; import { Osmosis } from '../../chains/osmosis/osmosis'; +import { Oraichain } from '../../chains/oraichain/oraichain'; export function convertXdcAddressToEthAddress(publicKey: string): string { return publicKey.length === 43 && publicKey.slice(0, 3) === 'xdc' @@ -157,6 +158,16 @@ export async function addWallet( req.privateKey, passphrase ); + } else if (connection instanceof Oraichain) { + const wallet = await (connection as Oraichain).getAccountsfromPrivateKey( + req.privateKey, + 'orai' + ); + address = wallet.address; + encryptedPrivateKey = await (connection as Oraichain).encrypt( + req.privateKey, + passphrase + ); } if (address === undefined || encryptedPrivateKey === undefined) { diff --git a/src/services/wallet/wallet.validators.ts b/src/services/wallet/wallet.validators.ts index d58a0db605..85bbefdcd4 100644 --- a/src/services/wallet/wallet.validators.ts +++ b/src/services/wallet/wallet.validators.ts @@ -143,6 +143,11 @@ export const validatePrivateKey: Validator = mkSelectingValidator( invalidKujiraPrivateKeyError, (val) => typeof val === 'string' && isKujiraPrivateKey(val) ), + oraichain: mkValidator( + 'privateKey', + invalidCosmosPrivateKeyError, + (val) => typeof val === 'string' && isCosmosPrivateKey(val) + ), } ); @@ -177,7 +182,8 @@ export const validateChain: Validator = mkValidator( val === 'binance-smart-chain' || val === 'tezos' || val === 'xrpl' || - val === 'kujira') + val === 'kujira' || + val === 'oraichain') ); export const validateNetwork: Validator = mkValidator( diff --git a/src/templates/lists/bep20_tokens_mainnet.json b/src/templates/lists/bep20_tokens_mainnet.json index 4bc7e21992..534f27c7d0 100755 --- a/src/templates/lists/bep20_tokens_mainnet.json +++ b/src/templates/lists/bep20_tokens_mainnet.json @@ -7,10 +7,7 @@ "patch": 139 }, "logoURI": "https://pancakeswap.finance/logo.png", - "keywords": [ - "pancakeswap", - "extended" - ], + "keywords": ["pancakeswap", "extended"], "tokens": [ { "name": "PancakeSwap Token", @@ -2707,6 +2704,14 @@ "chainId": 56, "decimals": 18, "logoURI": "https://tokens.pancakeswap.finance/images/0x1D229B958D5DDFca92146585a8711aECbE56F095.png" + }, + { + "name": "Oraichain", + "symbol": "ORAI", + "address": "0xA325Ad6D9c92B55A3Fc5aD7e412B1518F96441C0", + "chainId": 56, + "decimals": 18, + "logoURI": "" } ] -} \ No newline at end of file +} diff --git a/src/templates/lists/oraichain.json b/src/templates/lists/oraichain.json new file mode 100644 index 0000000000..47f6da187b --- /dev/null +++ b/src/templates/lists/oraichain.json @@ -0,0 +1,108 @@ +{ + "name": "Oraichain token list", + "URI": "", + "assets": [ + { + "denom_units": [ + { + "denom": "orai", + "exponent": 6 + } + ], + "base": "orai", + "name": "Oraichain token", + "display": "orai", + "symbol": "ORAI" + }, + { + "denom_units": [ + { + "denom": "usdt", + "exponent": 6 + } + ], + "base": "orai12hzjxfh77wl572gdzct2fxv2arxcwh6gykc7qh", + "name": "USDT token", + "display": "usdt", + "symbol": "USDT" + }, + { + "denom_units": [ + { + "denom": "xoch", + "exponent": 6 + } + ], + "base": "orai1lplapmgqnelqn253stz6kmvm3ulgdaytn89a8mz9y85xq8wd684s6xl3lt", + "name": "xOCH token", + "display": "xoch", + "symbol": "xOCH" + }, + { + "denom_units": [ + { + "denom": "btc", + "exponent": 6 + } + ], + "base": "orai10g6frpysmdgw5tdqke47als6f97aqmr8s3cljsvjce4n5enjftcqtamzsd", + "name": "BTC token", + "display": "btc", + "symbol": "BTC" + }, + { + "denom_units": [ + { + "denom": "atom", + "exponent": 6 + } + ], + "base": "ibc/A2E2EEC9057A4A1C2C0A6A4C78B0239118DF5F278830F50B4A6BDD7A66506B78", + "name": "ATOM token", + "display": "atom", + "symbol": "ATOM" + } + ], + "tokens": [ + { + "name": "Oraichain token", + "symbol": "ORAI", + "address": "orai", + "decimals": 6, + "chainId": "Oraichain", + "base": "orai" + }, + { + "name": "USDT token", + "symbol": "USDT", + "address": "orai12hzjxfh77wl572gdzct2fxv2arxcwh6gykc7qh", + "decimals": 6, + "chainId": "Oraichain", + "base": "" + }, + { + "name": "xOCH token", + "symbol": "xOCH", + "address": "orai1lplapmgqnelqn253stz6kmvm3ulgdaytn89a8mz9y85xq8wd684s6xl3lt", + "decimals": 6, + "chainId": "Oraichain", + "base": "" + }, + { + "name": "BTC token", + "symbol": "BTC", + "address": "orai10g6frpysmdgw5tdqke47als6f97aqmr8s3cljsvjce4n5enjftcqtamzsd", + "decimals": 6, + "chainId": "Oraichain", + "base": "" + }, + { + "name": "ATOM token", + "symbol": "ATOM", + "address": "ibc/A2E2EEC9057A4A1C2C0A6A4C78B0239118DF5F278830F50B4A6BDD7A66506B78", + "decimals": 6, + "chainId": "Oraichain", + "base": "ibc/A2E2EEC9057A4A1C2C0A6A4C78B0239118DF5F278830F50B4A6BDD7A66506B78" + } + ] +} diff --git a/src/templates/lists/oraidex_markets.json b/src/templates/lists/oraidex_markets.json new file mode 100644 index 0000000000..5f5cb398f4 --- /dev/null +++ b/src/templates/lists/oraidex_markets.json @@ -0,0 +1,18 @@ +[ + { + "id": "1", + "marketId": "ORAI-USDT", + "base": { + "name": "Oraichain token", + "symbol": "ORAI", + "address": "orai", + "decimals": 6 + }, + "quote": { + "name": "USDT token", + "symbol": "USDT", + "address": "orai12hzjxfh77wl572gdzct2fxv2arxcwh6gykc7qh", + "decimals": 6 + } + } +] diff --git a/src/templates/oraichain.yml b/src/templates/oraichain.yml new file mode 100644 index 0000000000..c6c8d89388 --- /dev/null +++ b/src/templates/oraichain.yml @@ -0,0 +1,28 @@ +networks: + mainnet: + chainId: Oraichain + nodeURL: https://rpc.orai.io + tokenListType: FILE + tokenListSource: /home/gateway/conf/lists/oraichain.json + marketListType: FILE + marketListSource: /home/gateway/conf/lists/oraidex_markets.json + testnet: + chainId: Oraichain-testnet + nodeURL: https://testnet.rpc.orai.io + tokenListType: FILE + tokenListSource: /home/gateway/conf/lists/oraichain.json + marketListType: FILE + marketListSource: /home/gateway/conf/lists/oraidex_markets.json + simulate: + chainId: simulate + nodeURL: simulate + tokenListType: FILE + tokenListSource: /home/gateway/conf/lists/oraichain.json + marketListType: FILE + marketListSource: /home/gateway/conf/lists/oraidex_markets.json + +prefix: "orai" +gasPrice: 0.001 +gasPriceSuffix: 'orai' +nativeCurrencySymbol: ORAI +manualGasPrice: 110 diff --git a/src/templates/oraidex.yml b/src/templates/oraidex.yml new file mode 100644 index 0000000000..c637386ff6 --- /dev/null +++ b/src/templates/oraidex.yml @@ -0,0 +1,6 @@ +contractAddresses: + mainnet: + swapLimitOrder: 'orai1nt58gcu4e63v7k55phnr3gaym9tvk3q4apqzqccjuwppgjuyjy6sxk8yzp' + testnet: + swapLimitOrder: 'orai1nt58gcu4e63v7k55phnr3gaym9tvk3q4apqzqccjuwppgjuyjy6sxk8yzp' + \ No newline at end of file diff --git a/src/templates/root.yml b/src/templates/root.yml index 748ec134b2..8172365e3e 100644 --- a/src/templates/root.yml +++ b/src/templates/root.yml @@ -131,3 +131,11 @@ configurations: $namespace carbon: configurationPath: carbon.yml schemaPath: carbon-schema.json + + $namespace oraichain: + configurationPath: oraichain.yml + schemaPath: oraichain-schema.json + + $namespace oraidex: + configurationPath: oraidex.yml + schemaPath: oraidex-schema.json diff --git a/test/chains/oraichain/oraichain.routes.test.ts b/test/chains/oraichain/oraichain.routes.test.ts new file mode 100644 index 0000000000..d1193bc151 --- /dev/null +++ b/test/chains/oraichain/oraichain.routes.test.ts @@ -0,0 +1,166 @@ +import request from 'supertest'; +import { Oraichain } from '../../../src/chains/oraichain/oraichain'; +import { gatewayApp } from '../../../src/app'; + +let oraichain: Oraichain; + +beforeAll(async () => { + oraichain = Oraichain.getInstance('mainnet'); + oraichain.initSigningCosmWasmClient = jest.fn(); + + await oraichain.init(); +}); + +afterAll(async () => { + await oraichain.close(); +}); + +describe('POST /chain/balances', () => { + it('should return 200 asking for supported tokens', async () => { + await request(gatewayApp) + .post('/chain/balances') + .send({ + chain: 'oraichain', + network: 'mainnet', + address: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + tokenSymbols: ['USDT', 'xOCH'], + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .then((response) => { + expect(response.body).toHaveProperty('balances'); + expect(response.body.balances).toHaveProperty('USDT'); + expect(response.body.balances).toHaveProperty('xOCH'); + }); + }); + + it('should return 200 asking for native token', async () => { + await request(gatewayApp) + .post('/chain/balances') + .send({ + chain: 'oraichain', + network: 'mainnet', + address: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + tokenSymbols: ['ORAI'], + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .then((response) => { + expect(response.body).toHaveProperty('balances'); + expect(response.body.balances).toHaveProperty('ORAI'); + }); + }); + + it('should return 200 asking for IBC token', async () => { + await request(gatewayApp) + .post('/chain/balances') + .send({ + chain: 'oraichain', + network: 'mainnet', + address: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + tokenSymbols: ['ATOM'], + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .then((response) => { + expect(response.body).toHaveProperty('balances'); + expect(response.body.balances).toHaveProperty('ATOM'); + }); + }); + + it('should return 500 asking for unsupported token', async () => { + await request(gatewayApp) + .post('/chain/balances') + .send({ + chain: 'oraichain', + network: 'mainnet', + address: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + tokenSymbols: ['USDT', 'xOCH', 'ETH'], + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(500); + }); + + it('should return 404 when parameters are invalid', async () => { + await request(gatewayApp) + .post('/chain/balances') + .send({ + chain: 'oraichain', + network: 'mainnet', + address: 'hello', + tokenSymbols: ['USDT', 'xOCH'], + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(404); + }); +}); + +describe('POST /chain/poll', () => { + it('should return 200 asking for transaction data with valid txHash', async () => { + await request(gatewayApp) + .post('/chain/poll') + .send({ + chain: 'oraichain', + network: 'mainnet', + txHash: + 'E104B6C37821552EC553CFAE2B84473861E3621F57310B67E3BDA1EAB536F5D2', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .then((response) => { + expect(response.body).toHaveProperty('txHash'); + expect(response.body).toHaveProperty('currentBlock'); + }); + }); + + it('should return 503 when parameters are invalid', async () => { + await request(gatewayApp) + .post('/chain/poll') + .send({ + chain: 'oraichain', + network: 'mainnet', + txHash: 'hello', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(503); + }); +}); + +describe('GET /chain/tokens', () => { + it('should return 200 asking for supported tokens', async () => { + await request(gatewayApp) + .get('/chain/tokens') + .query({ + chain: 'oraichain', + network: 'mainnet', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .then((response) => { + expect(response.body).toHaveProperty('tokens'); + }); + }); + + it('should return 200 with query tokens', async () => { + await request(gatewayApp) + .get('/chain/tokens') + .query({ + chain: 'oraichain', + network: 'mainnet', + tokenSymbols: ['USDT', 'xOCH'], + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .then((response) => { + expect(response.body).toHaveProperty('tokens'); + }); + }); +}); diff --git a/test/chains/oraichain/oraichain.test.ts b/test/chains/oraichain/oraichain.test.ts new file mode 100644 index 0000000000..18a331651c --- /dev/null +++ b/test/chains/oraichain/oraichain.test.ts @@ -0,0 +1,111 @@ +import { AccountData, makeCosmoshubPath } from '@cosmjs/proto-signing'; +import { Oraichain } from '../../../src/chains/oraichain/oraichain'; +import { Bip39, EnglishMnemonic, Slip10, Slip10Curve } from '@cosmjs/crypto'; +import { toHex } from '@cosmjs/encoding'; + +const testContract = 'orai12hzjxfh77wl572gdzct2fxv2arxcwh6gykc7qh'; +let oraichain: Oraichain; +let account: AccountData; +// let client: SigningCosmWasmClient; + +beforeAll(async () => { + oraichain = Oraichain.getInstance('mainnet'); + + // random account + const mnemonic = new EnglishMnemonic( + 'enlist hip relief stomach skate base shallow young switch frequent cry park', + ); + //get me a default hd path + const hdPath = makeCosmoshubPath(0); + const seed = await Bip39.mnemonicToSeed(mnemonic); + const masterKey = Slip10.derivePath( + Slip10Curve.Secp256k1, + seed, + hdPath as any, + ); + const privateKeyTest = masterKey.privkey; + + const wallet = await oraichain.getWalletFromPrivateKey( + toHex(privateKeyTest), + 'orai', + ); + account = (await wallet.getAccounts())[0]; + oraichain.initSigningCosmWasmClient = jest.fn(); + oraichain.getWallet = jest.fn().mockReturnValue(wallet); + const client = await oraichain.getSigningClient(account.address); + client.execute = jest.fn().mockReturnValue({}); + client.executeMultiple = jest.fn().mockReturnValue({}); + await oraichain.init(); +}); + +afterAll(async () => { + await oraichain.close(); +}); + +describe('Getter', () => { + it('getConnectedInstances', async () => { + const instances = Oraichain.getConnectedInstances(); + expect(instances).toBeDefined(); + }); + + it('getGasPrice', async () => { + const gasPrice = oraichain.gasPrice; + expect(gasPrice).toBeDefined(); + }); + + it('getChain', async () => { + const chain = oraichain.chain; + expect(chain).toBeDefined(); + }); + + it('getNativeTokenSymbol', async () => { + const symbol = oraichain.nativeTokenSymbol; + expect(symbol).toBeDefined(); + }); + + it('getRequestCount', async () => { + const requestCount = oraichain.requestCount; + oraichain.requestCounter({ action: 'request' }); + const newRequestCount = oraichain.requestCount; + expect(requestCount).toEqual(newRequestCount - 1); + oraichain.metricLogger(); + expect(requestCount).toEqual(0); + }); + + it('getMetricsLogInterval', async () => { + const interval = oraichain.metricsLogInterval; + expect(interval).toBeDefined(); + }); + + it('getStoredMarketList', async () => { + const list = oraichain.storedMarketList; + expect(list).toBeDefined(); + }); + + it('getCosmWasmClient', async () => { + const client = oraichain.cosmwasmClient; + expect(client).toBeDefined(); + }); +}); + +describe('Signing client', () => { + it('should create a signing client', async () => { + const client = await oraichain.createSigningCosmWasmClient(account.address); + expect(client).toBeDefined(); + }); + + it('should execute single transaction', async () => { + const res = await oraichain.executeContract( + account.address, + testContract, + {}, + {}, + ); + expect(res).toBeDefined(); + }); + + it('should execute multiple transaction', async () => { + const res = await oraichain.executeContractMultiple(account.address, []); + expect(res).toBeDefined(); + }); +}); diff --git a/test/connectors/oraidex/oraidex.test.ts b/test/connectors/oraidex/oraidex.test.ts new file mode 100644 index 0000000000..297a3f274f --- /dev/null +++ b/test/connectors/oraidex/oraidex.test.ts @@ -0,0 +1,528 @@ +import { Oraichain } from '../../../src/chains/oraichain/oraichain'; +import { OraidexCLOB } from '../../../src/connectors/oraidex/oraidex'; +import { gatewayApp } from '../../../src/app'; +import request from 'supertest'; + +let oraichain: Oraichain; +let oraiDex: OraidexCLOB; +const address = 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k'; + +const TX_HASH = + 'AB4256ED72AFDE0EBB42E2204108D87A87D4E68EB974C5B80A1EBC41F5BE3394'; + +const INVALID_REQUEST = { + chain: 'unknown', + network: 'mainnet', +}; + +const TX_DATA = { + height: 21620440, + txIndex: 0, + hash: 'AB4256ED72AFDE0EBB42E2204108D87A87D4E68EB974C5B80A1EBC41F5BE3394', + code: 0, + events: [ + { + type: 'coin_spent', + attributes: [ + { + key: 'spender', + value: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + }, + { key: 'amount', value: '142orai' }, + ], + }, + { + type: 'coin_received', + attributes: [ + { + key: 'receiver', + value: 'orai17xpfvakm2amg962yls6f84z3kell8c5lr24r2w', + }, + { key: 'amount', value: '142orai' }, + ], + }, + { + type: 'transfer', + attributes: [ + { + key: 'recipient', + value: 'orai17xpfvakm2amg962yls6f84z3kell8c5lr24r2w', + }, + { + key: 'sender', + value: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + }, + { key: 'amount', value: '142orai' }, + ], + }, + { + type: 'message', + attributes: [ + { + key: 'sender', + value: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + }, + ], + }, + { + type: 'tx', + attributes: [ + { key: 'fee', value: '142orai' }, + { + key: 'fee_payer', + value: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + }, + ], + }, + { + type: 'tx', + attributes: [ + { + key: 'acc_seq', + value: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k/603', + }, + ], + }, + { + type: 'tx', + attributes: [ + { + key: 'signature', + value: + '6nxCFp3PiVa62DvMY/xWgYnEBHDW0AhWOhJyWWRKallz5KTfNviOJV37vzPENY44enIrftIont/QyuIk8MB01A==', + }, + ], + }, + { + type: 'message', + attributes: [ + { + key: 'action', + value: '/cosmwasm.wasm.v1.MsgExecuteContract', + }, + ], + }, + { + type: 'message', + attributes: [ + { key: 'module', value: 'wasm' }, + { + key: 'sender', + value: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + }, + ], + }, + { + type: 'coin_spent', + attributes: [ + { + key: 'spender', + value: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + }, + { key: 'amount', value: '10000orai' }, + ], + }, + { + type: 'coin_received', + attributes: [ + { + key: 'receiver', + value: + 'orai1nt58gcu4e63v7k55phnr3gaym9tvk3q4apqzqccjuwppgjuyjy6sxk8yzp', + }, + { key: 'amount', value: '10000orai' }, + ], + }, + { + type: 'transfer', + attributes: [ + { + key: 'recipient', + value: + 'orai1nt58gcu4e63v7k55phnr3gaym9tvk3q4apqzqccjuwppgjuyjy6sxk8yzp', + }, + { + key: 'sender', + value: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + }, + { key: 'amount', value: '10000orai' }, + ], + }, + { + type: 'execute', + attributes: [ + { + key: '_contract_address', + value: + 'orai1nt58gcu4e63v7k55phnr3gaym9tvk3q4apqzqccjuwppgjuyjy6sxk8yzp', + }, + ], + }, + { + type: 'wasm', + attributes: [ + { + key: '_contract_address', + value: + 'orai1nt58gcu4e63v7k55phnr3gaym9tvk3q4apqzqccjuwppgjuyjy6sxk8yzp', + }, + { key: 'action', value: 'submit_order' }, + { key: 'order_type', value: 'limit' }, + { + key: 'pair', + value: 'orai - orai12hzjxfh77wl572gdzct2fxv2arxcwh6gykc7qh', + }, + { key: 'order_id', value: '4214202' }, + { key: 'status', value: 'Open' }, + { key: 'direction', value: 'Sell' }, + { + key: 'bidder_addr', + value: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + }, + { key: 'offer_asset', value: '10000 orai' }, + { + key: 'ask_asset', + value: '200000 orai12hzjxfh77wl572gdzct2fxv2arxcwh6gykc7qh', + }, + ], + }, + ], + rawLog: + '[{"events":[{"type":"coin_received","attributes":[{"key":"receiver","value":"orai1nt58gcu4e63v7k55phnr3gaym9tvk3q4apqzqccjuwppgjuyjy6sxk8yzp"},{"key":"amount","value":"10000orai"}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k"},{"key":"amount","value":"10000orai"}]},{"type":"execute","attributes":[{"key":"_contract_address","value":"orai1nt58gcu4e63v7k55phnr3gaym9tvk3q4apqzqccjuwppgjuyjy6sxk8yzp"}]},{"type":"message","attributes":[{"key":"action","value":"/cosmwasm.wasm.v1.MsgExecuteContract"},{"key":"module","value":"wasm"},{"key":"sender","value":"orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"orai1nt58gcu4e63v7k55phnr3gaym9tvk3q4apqzqccjuwppgjuyjy6sxk8yzp"},{"key":"sender","value":"orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k"},{"key":"amount","value":"10000orai"}]},{"type":"wasm","attributes":[{"key":"_contract_address","value":"orai1nt58gcu4e63v7k55phnr3gaym9tvk3q4apqzqccjuwppgjuyjy6sxk8yzp"},{"key":"action","value":"submit_order"},{"key":"order_type","value":"limit"},{"key":"pair","value":"orai - orai12hzjxfh77wl572gdzct2fxv2arxcwh6gykc7qh"},{"key":"order_id","value":"4214202"},{"key":"status","value":"Open"},{"key":"direction","value":"Sell"},{"key":"bidder_addr","value":"orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k"},{"key":"offer_asset","value":"10000 orai"},{"key":"ask_asset","value":"200000 orai12hzjxfh77wl572gdzct2fxv2arxcwh6gykc7qh"}]}]}]', + tx: new Uint8Array(4)[1], + msgResponses: [], + gasUsed: 115207, + gasWanted: 141511, +}; + +beforeAll(async () => { + oraichain = Oraichain.getInstance('mainnet'); + oraichain.initSigningCosmWasmClient = jest.fn(); + await oraichain.init(); + oraiDex = OraidexCLOB.getInstance('oraichain', 'mainnet'); + await oraiDex.init(); +}); + +afterAll(async () => { + await oraichain.close(); +}); + +describe('GET /clob/markets', () => { + it('return 200', async () => { + await request(gatewayApp) + .get('/clob/markets') + .query({ + chain: 'oraichain', + network: 'mainnet', + connector: 'oraidex', + }) + .set('Accept', 'application/json') + .expect(200) + .expect((res) => expect(res.body).toHaveProperty('markets')); + }); + + it('should return 404 when parameters are invalid', async () => { + await request(gatewayApp) + .get(`/clob/markets`) + .query(INVALID_REQUEST) + .expect(404); + }); +}); + +describe('GET /clob/orderBook', () => { + it('should return 200 with proper request', async () => { + await request(gatewayApp) + .get(`/clob/orderBook`) + .query({ + chain: 'oraichain', + network: 'mainnet', + connector: 'oraidex', + market: 'ORAI-USDT', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .expect((res) => expect(res.body).toHaveProperty('buys')) + .expect((res) => expect(res.body).toHaveProperty('sells')); + }); + + it('should return 404 when parameters are invalid', async () => { + await request(gatewayApp) + .get(`/clob/orderBook`) + .query(INVALID_REQUEST) + .expect(404); + }); +}); + +describe('GET /clob/ticker', () => { + it('should return 200 with proper request', async () => { + await request(gatewayApp) + .get(`/clob/ticker`) + .query({ + chain: 'oraichain', + network: 'mainnet', + connector: 'oraidex', + market: 'ORAI-USDT', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .expect((res) => expect(res.body.markets).toHaveProperty('price')); + }); + + it('should return 404 when parameters are invalid', async () => { + await request(gatewayApp) + .get(`/clob/ticker`) + .query(INVALID_REQUEST) + .expect(404); + }); +}); + +describe('GET /clob/orders', () => { + it('should return 200 with proper request', async () => { + await request(gatewayApp) + .get(`/clob/orders`) + .query({ + chain: 'oraichain', + network: 'mainnet', + connector: 'oraidex', + address: address, + market: 'ORAI-USDT', + orderId: 'None', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .expect((res) => expect(res.body).toHaveProperty('orders')); + }); + + it('should return 200', async () => { + oraiDex.getAllOrders = jest.fn().mockReturnValue({ + orders: [ + { + order_id: '123456', + }, + ], + }); + await request(gatewayApp) + .get(`/clob/orders`) + .query({ + chain: 'oraichain', + network: 'mainnet', + connector: 'oraidex', + address: address, + market: 'ORAI-USDT', + orderId: '123456', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .expect((res) => expect(res.body).toHaveProperty('orders')); + }); + + it('should return 404 when parameters are invalid', async () => { + await request(gatewayApp) + .get(`/clob/orders`) + .query(INVALID_REQUEST) + .expect(404); + }); +}); + +describe('POST /clob/orders', () => { + it('should return 200 with proper request', async () => { + oraichain.executeContract = jest + .fn() + .mockResolvedValue({ transactionHash: TX_HASH }); + oraichain.cosmwasmClient.getTx = jest.fn().mockResolvedValue(TX_DATA); + await request(gatewayApp) + .post(`/clob/orders`) + .send({ + connector: 'oraidex', + chain: 'oraichain', + network: 'mainnet', + market: 'ORAI-USDT', + address: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + side: 'SELL', + orderType: 'LIMIT', + price: '16.0', + amount: '0.010000', + clientOrderID: 'SOIUT61865c7bbdea1d13518c84198b5e0e42a146814036da3', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .expect((res) => expect(res.body.txHash).toEqual(TX_HASH)); + }); + + it('should return 200 with proper request', async () => { + oraichain.executeContract = jest + .fn() + .mockResolvedValue({ transactionHash: TX_HASH }); + oraichain.cosmwasmClient.getTx = jest.fn().mockResolvedValue(TX_DATA); + await request(gatewayApp) + .post(`/clob/orders`) + .send({ + connector: 'oraidex', + chain: 'oraichain', + network: 'mainnet', + market: 'ORAI-USDT', + address: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + side: 'BUY', + orderType: 'LIMIT', + price: '16.0', + amount: '0.010000', + clientOrderID: 'SOIUT61865c7bbdea1d13518c84198b5e0e42a146814036da3', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .expect((res) => expect(res.body.txHash).toEqual(TX_HASH)); + }); + + it('should return 404 when parameters are invalid', async () => { + await request(gatewayApp) + .post(`/clob/orders`) + .send(INVALID_REQUEST) + .expect(404); + }); +}); + +describe('DELETE /clob/orders', () => { + it('should return 200 with proper request', async () => { + oraichain.executeContract = jest + .fn() + .mockResolvedValue({ transactionHash: TX_HASH }); + await request(gatewayApp) + .delete(`/clob/orders`) + .send({ + chain: 'oraichain', + connector: 'oraidex', + network: 'mainnet', + address: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + market: 'xOCH-USDT', + orderId: '4191398', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .expect((res) => expect(res.body.txHash).toEqual(TX_HASH)); + }); + + it('should return 404 when parameters are invalid', async () => { + await request(gatewayApp) + .delete(`/clob/orders`) + .send(INVALID_REQUEST) + .expect(404); + }); +}); + +describe('POST /clob/batchOrders', () => { + it('should return 200 with proper request to create batch orders', async () => { + oraichain.executeContractMultiple = jest + .fn() + .mockResolvedValue({ transactionHash: TX_HASH }); + oraichain.cosmwasmClient.getTx = jest.fn().mockResolvedValue(TX_DATA); + await request(gatewayApp) + .post(`/clob/batchOrders`) + .send({ + chain: 'oraichain', + connector: 'oraidex', + network: 'mainnet', + address: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + createOrderParams: [ + { + market: 'xOCH-USDT', + amount: '0.01', + price: '9.5', + side: 'BUY', + orderType: 'LIMIT', + }, + { + market: 'xOCH-USDT', + amount: '0.01', + price: '9.6', + side: 'SELL', + orderType: 'LIMIT', + }, + ], + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .expect((res) => expect(res.body.txHash).toEqual(TX_HASH)); + }); + + it('should return 200 with proper request to delete batch orders', async () => { + oraichain.executeContractMultiple = jest + .fn() + .mockResolvedValue({ transactionHash: TX_HASH }); + await request(gatewayApp) + .post(`/clob/batchOrders`) + .send({ + chain: 'oraichain', + connector: 'oraidex', + network: 'mainnet', + address: 'orai1swus8mwu8xjulawqxdwh8hvg4gknh2c64tuc0k', + cancelOrderParams: [ + { + market: 'xOCH-USDT', + orderId: '4199233', + }, + { + market: 'xOCH-USDT', + orderId: '4199232', + }, + ], + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200) + .expect((res) => expect(res.body.txHash).toEqual(TX_HASH)); + }); + + it('should return 404 when parameters are invalid', async () => { + await request(gatewayApp) + .post(`/clob/batchOrders`) + .send(INVALID_REQUEST) + .expect(404); + }); +}); + +describe('GET /clob/estimateGas', () => { + it('should return 200 with proper request', async () => { + await request(gatewayApp) + .get(`/clob/estimateGas`) + .query({ + chain: 'oraichain', + network: 'mainnet', + connector: 'oraidex', + }) + .set('Accept', 'application/json') + .expect('Content-Type', /json/) + .expect(200); + }); + + it('should return 404 when parameters are invalid', async () => { + await request(gatewayApp) + .get(`/clob/estimateGas`) + .query(INVALID_REQUEST) + .expect(404); + }); +}); + +describe('others', () => { + it('getConnectedInstances', async () => { + const instances = OraidexCLOB.getConnectedInstances(); + expect(instances).toBeDefined(); + }); + + it('markets', async () => { + const markets = await oraiDex.markets({ + chain: 'oraichain', + network: 'mainnet', + connector: 'oraidex', + market: 'ORAI-USDT', + }); + expect(markets).toBeDefined(); + }); +}); diff --git a/yarn.lock b/yarn.lock index be94faef31..e514cadddd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -771,6 +771,16 @@ "@cosmjs/math" "^0.29.3" "@cosmjs/utils" "^0.29.3" +"@cosmjs/amino@0.31.3", "@cosmjs/amino@^0.31.3": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.31.3.tgz#0f4aa6bd68331c71bd51b187fa64f00eb075db0a" + integrity sha512-36emtUq895sPRX8PTSOnG+lhJDCVyIcE0Tr5ct59sUbgQiI14y43vj/4WAlJ/utSOxy+Zhj9wxcs4AZfu0BHsw== + dependencies: + "@cosmjs/crypto" "^0.31.3" + "@cosmjs/encoding" "^0.31.3" + "@cosmjs/math" "^0.31.3" + "@cosmjs/utils" "^0.31.3" + "@cosmjs/amino@0.32.2", "@cosmjs/amino@^0.32.2": version "0.32.2" resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.32.2.tgz#ba3cf255e4e6b1ba67461f1ef7b0b8ad3f895da7" @@ -801,17 +811,7 @@ "@cosmjs/math" "^0.30.1" "@cosmjs/utils" "^0.30.1" -"@cosmjs/amino@^0.31.3": - version "0.31.3" - resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.31.3.tgz#0f4aa6bd68331c71bd51b187fa64f00eb075db0a" - integrity sha512-36emtUq895sPRX8PTSOnG+lhJDCVyIcE0Tr5ct59sUbgQiI14y43vj/4WAlJ/utSOxy+Zhj9wxcs4AZfu0BHsw== - dependencies: - "@cosmjs/crypto" "^0.31.3" - "@cosmjs/encoding" "^0.31.3" - "@cosmjs/math" "^0.31.3" - "@cosmjs/utils" "^0.31.3" - -"@cosmjs/cosmwasm-stargate@^0.31.1": +"@cosmjs/cosmwasm-stargate@0.31.3", "@cosmjs/cosmwasm-stargate@^0.31.1": version "0.31.3" resolved "https://registry.yarnpkg.com/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.31.3.tgz#13066822f111832d57c2c5acc9e697ed389713f8" integrity sha512-Uv9TmCn3650gdFeZm7SEfUZF3uX3lfJfFhXOk6I2ZLr/FrKximnlb+vwAfZaZnWYvlA7qrKtHIjeRNHvT23zcw== @@ -844,6 +844,19 @@ ripemd160 "^2.0.2" sha.js "^2.4.11" +"@cosmjs/crypto@0.31.3", "@cosmjs/crypto@^0.31.3": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.31.3.tgz#c752cb6d682fdc735dcb45a2519f89c56ba16c26" + integrity sha512-vRbvM9ZKR2017TO73dtJ50KxoGcFzKtKI7C8iO302BQ5p+DuB+AirUg1952UpSoLfv5ki9O416MFANNg8UN/EQ== + dependencies: + "@cosmjs/encoding" "^0.31.3" + "@cosmjs/math" "^0.31.3" + "@cosmjs/utils" "^0.31.3" + "@noble/hashes" "^1" + bn.js "^5.2.0" + elliptic "^6.5.4" + libsodium-wrappers-sumo "^0.7.11" + "@cosmjs/crypto@^0.29.3", "@cosmjs/crypto@^0.29.5": version "0.29.5" resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.29.5.tgz#ab99fc382b93d8a8db075780cf07487a0f9519fd" @@ -870,19 +883,6 @@ elliptic "^6.5.4" libsodium-wrappers "^0.7.6" -"@cosmjs/crypto@^0.31.3": - version "0.31.3" - resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.31.3.tgz#c752cb6d682fdc735dcb45a2519f89c56ba16c26" - integrity sha512-vRbvM9ZKR2017TO73dtJ50KxoGcFzKtKI7C8iO302BQ5p+DuB+AirUg1952UpSoLfv5ki9O416MFANNg8UN/EQ== - dependencies: - "@cosmjs/encoding" "^0.31.3" - "@cosmjs/math" "^0.31.3" - "@cosmjs/utils" "^0.31.3" - "@noble/hashes" "^1" - bn.js "^5.2.0" - elliptic "^6.5.4" - libsodium-wrappers-sumo "^0.7.11" - "@cosmjs/crypto@^0.32.2": version "0.32.2" resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.32.2.tgz#8ed255d3d1c1c4d916a1586f8cbc33eaab82f511" @@ -1034,6 +1034,19 @@ cosmjs-types "^0.5.2" long "^4.0.0" +"@cosmjs/proto-signing@0.31.3", "@cosmjs/proto-signing@^0.31.1", "@cosmjs/proto-signing@^0.31.3": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.31.3.tgz#20440b7b96fb2cd924256a10e656fd8d4481cdcd" + integrity sha512-24+10/cGl6lLS4VCrGTCJeDRPQTn1K5JfknzXzDIHOx8THR31JxA7/HV5eWGHqWgAbudA7ccdSvEK08lEHHtLA== + dependencies: + "@cosmjs/amino" "^0.31.3" + "@cosmjs/crypto" "^0.31.3" + "@cosmjs/encoding" "^0.31.3" + "@cosmjs/math" "^0.31.3" + "@cosmjs/utils" "^0.31.3" + cosmjs-types "^0.8.0" + long "^4.0.0" + "@cosmjs/proto-signing@0.32.2", "@cosmjs/proto-signing@^0.32.2": version "0.32.2" resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.32.2.tgz#26ed2675978ce24078981f4c15a06c5d6b808f44" @@ -1072,19 +1085,6 @@ cosmjs-types "^0.7.1" long "^4.0.0" -"@cosmjs/proto-signing@^0.31.1", "@cosmjs/proto-signing@^0.31.3": - version "0.31.3" - resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.31.3.tgz#20440b7b96fb2cd924256a10e656fd8d4481cdcd" - integrity sha512-24+10/cGl6lLS4VCrGTCJeDRPQTn1K5JfknzXzDIHOx8THR31JxA7/HV5eWGHqWgAbudA7ccdSvEK08lEHHtLA== - dependencies: - "@cosmjs/amino" "^0.31.3" - "@cosmjs/crypto" "^0.31.3" - "@cosmjs/encoding" "^0.31.3" - "@cosmjs/math" "^0.31.3" - "@cosmjs/utils" "^0.31.3" - cosmjs-types "^0.8.0" - long "^4.0.0" - "@cosmjs/socket@^0.29.5": version "0.29.5" resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.29.5.tgz#a48df6b4c45dc6a6ef8e47232725dd4aa556ac2d" @@ -1143,6 +1143,24 @@ protobufjs "~6.11.3" xstream "^11.14.0" +"@cosmjs/stargate@0.31.3", "@cosmjs/stargate@^0.31.1", "@cosmjs/stargate@^0.31.3": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.31.3.tgz#a2b38e398097a00f897dbd8f02d4d347d8fed818" + integrity sha512-53NxnzmB9FfXpG4KjOUAYAvWLYKdEmZKsutcat/u2BrDXNZ7BN8jim/ENcpwXfs9/Og0K24lEIdvA4gsq3JDQw== + dependencies: + "@confio/ics23" "^0.6.8" + "@cosmjs/amino" "^0.31.3" + "@cosmjs/encoding" "^0.31.3" + "@cosmjs/math" "^0.31.3" + "@cosmjs/proto-signing" "^0.31.3" + "@cosmjs/stream" "^0.31.3" + "@cosmjs/tendermint-rpc" "^0.31.3" + "@cosmjs/utils" "^0.31.3" + cosmjs-types "^0.8.0" + long "^4.0.0" + protobufjs "~6.11.3" + xstream "^11.14.0" + "@cosmjs/stargate@0.32.2": version "0.32.2" resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.32.2.tgz#73718c5c6a3ae138682ee9987333d911eca22a13" @@ -1177,24 +1195,6 @@ protobufjs "~6.11.3" xstream "^11.14.0" -"@cosmjs/stargate@^0.31.1", "@cosmjs/stargate@^0.31.3": - version "0.31.3" - resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.31.3.tgz#a2b38e398097a00f897dbd8f02d4d347d8fed818" - integrity sha512-53NxnzmB9FfXpG4KjOUAYAvWLYKdEmZKsutcat/u2BrDXNZ7BN8jim/ENcpwXfs9/Og0K24lEIdvA4gsq3JDQw== - dependencies: - "@confio/ics23" "^0.6.8" - "@cosmjs/amino" "^0.31.3" - "@cosmjs/encoding" "^0.31.3" - "@cosmjs/math" "^0.31.3" - "@cosmjs/proto-signing" "^0.31.3" - "@cosmjs/stream" "^0.31.3" - "@cosmjs/tendermint-rpc" "^0.31.3" - "@cosmjs/utils" "^0.31.3" - cosmjs-types "^0.8.0" - long "^4.0.0" - protobufjs "~6.11.3" - xstream "^11.14.0" - "@cosmjs/stream@^0.29.3", "@cosmjs/stream@^0.29.5": version "0.29.5" resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.29.5.tgz#350981cac496d04939b92ee793b9b19f44bc1d4e" @@ -1223,6 +1223,22 @@ dependencies: xstream "^11.14.0" +"@cosmjs/tendermint-rpc@0.31.3", "@cosmjs/tendermint-rpc@^0.31.3": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.31.3.tgz#d1a2bc5b3c98743631c9b55888589d352403c9b3" + integrity sha512-s3TiWkPCW4QceTQjpYqn4xttUJH36mTPqplMl+qyocdqk5+X5mergzExU/pHZRWQ4pbby8bnR7kMvG4OC1aZ8g== + dependencies: + "@cosmjs/crypto" "^0.31.3" + "@cosmjs/encoding" "^0.31.3" + "@cosmjs/json-rpc" "^0.31.3" + "@cosmjs/math" "^0.31.3" + "@cosmjs/socket" "^0.31.3" + "@cosmjs/stream" "^0.31.3" + "@cosmjs/utils" "^0.31.3" + axios "^0.21.2" + readonly-date "^1.0.0" + xstream "^11.14.0" + "@cosmjs/tendermint-rpc@0.32.2", "@cosmjs/tendermint-rpc@^0.32.2": version "0.32.2" resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.32.2.tgz#c5607b8d472e5bf9fd58d5453db7194f500ccc62" @@ -1271,22 +1287,6 @@ readonly-date "^1.0.0" xstream "^11.14.0" -"@cosmjs/tendermint-rpc@^0.31.3": - version "0.31.3" - resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.31.3.tgz#d1a2bc5b3c98743631c9b55888589d352403c9b3" - integrity sha512-s3TiWkPCW4QceTQjpYqn4xttUJH36mTPqplMl+qyocdqk5+X5mergzExU/pHZRWQ4pbby8bnR7kMvG4OC1aZ8g== - dependencies: - "@cosmjs/crypto" "^0.31.3" - "@cosmjs/encoding" "^0.31.3" - "@cosmjs/json-rpc" "^0.31.3" - "@cosmjs/math" "^0.31.3" - "@cosmjs/socket" "^0.31.3" - "@cosmjs/stream" "^0.31.3" - "@cosmjs/utils" "^0.31.3" - axios "^0.21.2" - readonly-date "^1.0.0" - xstream "^11.14.0" - "@cosmjs/utils@0.27.1": version "0.27.1" resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.27.1.tgz#1c8efde17256346ef142a3bd15158ee4055470e2" @@ -1434,137 +1434,137 @@ "@ethersproject-xdc/abi@file:vendor/@ethersproject-xdc/abi": version "5.7.0" dependencies: - "@ethersproject-xdc/address" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-dc6cad0a-b42e-41c0-add1-31aa9f73da8c-1711378365614/node_modules/@ethersproject-xdc/address" - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-dc6cad0a-b42e-41c0-add1-31aa9f73da8c-1711378365614/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-dc6cad0a-b42e-41c0-add1-31aa9f73da8c-1711378365614/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/constants" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-dc6cad0a-b42e-41c0-add1-31aa9f73da8c-1711378365614/node_modules/@ethersproject-xdc/constants" - "@ethersproject-xdc/hash" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-dc6cad0a-b42e-41c0-add1-31aa9f73da8c-1711378365614/node_modules/@ethersproject-xdc/hash" - "@ethersproject-xdc/keccak256" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-dc6cad0a-b42e-41c0-add1-31aa9f73da8c-1711378365614/node_modules/@ethersproject-xdc/keccak256" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-dc6cad0a-b42e-41c0-add1-31aa9f73da8c-1711378365614/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-dc6cad0a-b42e-41c0-add1-31aa9f73da8c-1711378365614/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/strings" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-dc6cad0a-b42e-41c0-add1-31aa9f73da8c-1711378365614/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/address" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-ffb586c8-53ee-4e71-a6e4-28323487989a-1716297675932/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-ffb586c8-53ee-4e71-a6e4-28323487989a-1716297675932/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-ffb586c8-53ee-4e71-a6e4-28323487989a-1716297675932/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-ffb586c8-53ee-4e71-a6e4-28323487989a-1716297675932/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/hash" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-ffb586c8-53ee-4e71-a6e4-28323487989a-1716297675932/node_modules/@ethersproject-xdc/hash" + "@ethersproject-xdc/keccak256" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-ffb586c8-53ee-4e71-a6e4-28323487989a-1716297675932/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-ffb586c8-53ee-4e71-a6e4-28323487989a-1716297675932/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-ffb586c8-53ee-4e71-a6e4-28323487989a-1716297675932/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/strings" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-ffb586c8-53ee-4e71-a6e4-28323487989a-1716297675932/node_modules/@ethersproject-xdc/strings" "@ethersproject-xdc/abstract-provider@file:vendor/@ethersproject-xdc/abstract-provider": version "5.7.0" dependencies: - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-7563efea-d843-42b7-b285-fbeff4443c61-1711378365615/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-7563efea-d843-42b7-b285-fbeff4443c61-1711378365615/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-7563efea-d843-42b7-b285-fbeff4443c61-1711378365615/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/networks" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-7563efea-d843-42b7-b285-fbeff4443c61-1711378365615/node_modules/@ethersproject-xdc/networks" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-7563efea-d843-42b7-b285-fbeff4443c61-1711378365615/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/transactions" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-7563efea-d843-42b7-b285-fbeff4443c61-1711378365615/node_modules/@ethersproject-xdc/transactions" - "@ethersproject-xdc/web" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-7563efea-d843-42b7-b285-fbeff4443c61-1711378365615/node_modules/@ethersproject-xdc/web" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-6b574ed6-86bb-4334-a5aa-0e3cdb46dca0-1716297675932/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-6b574ed6-86bb-4334-a5aa-0e3cdb46dca0-1716297675932/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-6b574ed6-86bb-4334-a5aa-0e3cdb46dca0-1716297675932/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/networks" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-6b574ed6-86bb-4334-a5aa-0e3cdb46dca0-1716297675932/node_modules/@ethersproject-xdc/networks" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-6b574ed6-86bb-4334-a5aa-0e3cdb46dca0-1716297675932/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/transactions" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-6b574ed6-86bb-4334-a5aa-0e3cdb46dca0-1716297675932/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/web" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-6b574ed6-86bb-4334-a5aa-0e3cdb46dca0-1716297675932/node_modules/@ethersproject-xdc/web" "@ethersproject-xdc/abstract-signer@file:vendor/@ethersproject-xdc/abstract-signer": version "5.7.0" dependencies: - "@ethersproject-xdc/abstract-provider" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-e30fa525-50b0-4a94-a2fc-4b012803d33e-1711378365615/node_modules/@ethersproject-xdc/abstract-provider" - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-e30fa525-50b0-4a94-a2fc-4b012803d33e-1711378365615/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-e30fa525-50b0-4a94-a2fc-4b012803d33e-1711378365615/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-e30fa525-50b0-4a94-a2fc-4b012803d33e-1711378365615/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-e30fa525-50b0-4a94-a2fc-4b012803d33e-1711378365615/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/abstract-provider" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-9e8375da-3792-40e7-b7e1-1299fb3a83b8-1716297675931/node_modules/@ethersproject-xdc/abstract-provider" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-9e8375da-3792-40e7-b7e1-1299fb3a83b8-1716297675931/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-9e8375da-3792-40e7-b7e1-1299fb3a83b8-1716297675931/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-9e8375da-3792-40e7-b7e1-1299fb3a83b8-1716297675931/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-9e8375da-3792-40e7-b7e1-1299fb3a83b8-1716297675931/node_modules/@ethersproject-xdc/properties" "@ethersproject-xdc/address@file:vendor/@ethersproject-xdc/address": version "5.7.0" dependencies: - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-address-5.7.0-ebb15099-34b3-4975-9cf8-7f3cae8cb2cf-1711378365616/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-address-5.7.0-ebb15099-34b3-4975-9cf8-7f3cae8cb2cf-1711378365616/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/keccak256" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-address-5.7.0-ebb15099-34b3-4975-9cf8-7f3cae8cb2cf-1711378365616/node_modules/@ethersproject-xdc/keccak256" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-address-5.7.0-ebb15099-34b3-4975-9cf8-7f3cae8cb2cf-1711378365616/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/rlp" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-address-5.7.0-ebb15099-34b3-4975-9cf8-7f3cae8cb2cf-1711378365616/node_modules/@ethersproject-xdc/rlp" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-address-5.7.0-f53ff6a1-cc32-4f71-9fab-6389250c29df-1716297675932/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-address-5.7.0-f53ff6a1-cc32-4f71-9fab-6389250c29df-1716297675932/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/keccak256" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-address-5.7.0-f53ff6a1-cc32-4f71-9fab-6389250c29df-1716297675932/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-address-5.7.0-f53ff6a1-cc32-4f71-9fab-6389250c29df-1716297675932/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/rlp" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-address-5.7.0-f53ff6a1-cc32-4f71-9fab-6389250c29df-1716297675932/node_modules/@ethersproject-xdc/rlp" "@ethersproject-xdc/base64@file:vendor/@ethersproject-xdc/base64": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-base64-5.7.0-ac940ee8-f7d7-44f8-a8e6-a8a2aa43673b-1711378365615/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-base64-5.7.0-15802780-5108-4492-a3da-e23949990554-1716297675933/node_modules/@ethersproject-xdc/bytes" "@ethersproject-xdc/basex@file:vendor/@ethersproject-xdc/basex": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-basex-5.7.0-a3964cd6-3388-4e1e-8827-ccb5f8cddbea-1711378365615/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-basex-5.7.0-a3964cd6-3388-4e1e-8827-ccb5f8cddbea-1711378365615/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-basex-5.7.0-19d173d8-1fe6-4f99-a3d2-fe2a7772b658-1716297675933/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-basex-5.7.0-19d173d8-1fe6-4f99-a3d2-fe2a7772b658-1716297675933/node_modules/@ethersproject-xdc/properties" "@ethersproject-xdc/bignumber@file:vendor/@ethersproject-xdc/bignumber": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-bignumber-5.7.0-bc93acda-27ae-4704-88d0-8826555c062b-1711378365615/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-bignumber-5.7.0-bc93acda-27ae-4704-88d0-8826555c062b-1711378365615/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-bignumber-5.7.0-2948124a-982c-4227-bf17-a32184b85f7e-1716297675933/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-bignumber-5.7.0-2948124a-982c-4227-bf17-a32184b85f7e-1716297675933/node_modules/@ethersproject-xdc/logger" bn.js "^5.2.1" "@ethersproject-xdc/bytes@file:vendor/@ethersproject-xdc/bytes": version "5.7.0" dependencies: - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-bytes-5.7.0-99ecb1f1-f3c4-4352-b857-7f806ce05f5d-1711378365616/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-bytes-5.7.0-3dc32bfc-5468-4c53-8833-516ce3846654-1716297675933/node_modules/@ethersproject-xdc/logger" "@ethersproject-xdc/constants@file:vendor/@ethersproject-xdc/constants": version "5.7.0" dependencies: - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-constants-5.7.0-91a31af6-9be3-4e31-94b5-304ef35e3207-1711378365616/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-constants-5.7.0-d7d0b798-5859-4eea-ac4b-8a914bf7efd3-1716297675933/node_modules/@ethersproject-xdc/bignumber" "@ethersproject-xdc/contracts@file:vendor/@ethersproject-xdc/contracts": version "5.6.0" dependencies: - "@ethersproject-xdc/abi" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-3a1d2199-b3e9-4cf8-a8e5-111bb620bb2f-1711378365616/node_modules/@ethersproject-xdc/abi" - "@ethersproject-xdc/abstract-provider" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-3a1d2199-b3e9-4cf8-a8e5-111bb620bb2f-1711378365616/node_modules/@ethersproject-xdc/abstract-provider" - "@ethersproject-xdc/abstract-signer" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-3a1d2199-b3e9-4cf8-a8e5-111bb620bb2f-1711378365616/node_modules/@ethersproject-xdc/abstract-signer" - "@ethersproject-xdc/address" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-3a1d2199-b3e9-4cf8-a8e5-111bb620bb2f-1711378365616/node_modules/@ethersproject-xdc/address" - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-3a1d2199-b3e9-4cf8-a8e5-111bb620bb2f-1711378365616/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-3a1d2199-b3e9-4cf8-a8e5-111bb620bb2f-1711378365616/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/constants" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-3a1d2199-b3e9-4cf8-a8e5-111bb620bb2f-1711378365616/node_modules/@ethersproject-xdc/constants" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-3a1d2199-b3e9-4cf8-a8e5-111bb620bb2f-1711378365616/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-3a1d2199-b3e9-4cf8-a8e5-111bb620bb2f-1711378365616/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/transactions" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-3a1d2199-b3e9-4cf8-a8e5-111bb620bb2f-1711378365616/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/abi" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-2e1964e4-3b79-43a1-910e-d23f8be582f3-1716297675933/node_modules/@ethersproject-xdc/abi" + "@ethersproject-xdc/abstract-provider" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-2e1964e4-3b79-43a1-910e-d23f8be582f3-1716297675933/node_modules/@ethersproject-xdc/abstract-provider" + "@ethersproject-xdc/abstract-signer" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-2e1964e4-3b79-43a1-910e-d23f8be582f3-1716297675933/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-2e1964e4-3b79-43a1-910e-d23f8be582f3-1716297675933/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-2e1964e4-3b79-43a1-910e-d23f8be582f3-1716297675933/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-2e1964e4-3b79-43a1-910e-d23f8be582f3-1716297675933/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-2e1964e4-3b79-43a1-910e-d23f8be582f3-1716297675933/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-2e1964e4-3b79-43a1-910e-d23f8be582f3-1716297675933/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-2e1964e4-3b79-43a1-910e-d23f8be582f3-1716297675933/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/transactions" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-2e1964e4-3b79-43a1-910e-d23f8be582f3-1716297675933/node_modules/@ethersproject-xdc/transactions" "@ethersproject-xdc/hash@file:vendor/@ethersproject-xdc/hash": version "5.7.0" dependencies: - "@ethersproject-xdc/abstract-signer" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-e59c6ed5-6f74-42e7-b132-f4bea3ddfad0-1711378365617/node_modules/@ethersproject-xdc/abstract-signer" - "@ethersproject-xdc/address" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-e59c6ed5-6f74-42e7-b132-f4bea3ddfad0-1711378365617/node_modules/@ethersproject-xdc/address" - "@ethersproject-xdc/base64" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-e59c6ed5-6f74-42e7-b132-f4bea3ddfad0-1711378365617/node_modules/@ethersproject-xdc/base64" - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-e59c6ed5-6f74-42e7-b132-f4bea3ddfad0-1711378365617/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-e59c6ed5-6f74-42e7-b132-f4bea3ddfad0-1711378365617/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/keccak256" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-e59c6ed5-6f74-42e7-b132-f4bea3ddfad0-1711378365617/node_modules/@ethersproject-xdc/keccak256" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-e59c6ed5-6f74-42e7-b132-f4bea3ddfad0-1711378365617/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-e59c6ed5-6f74-42e7-b132-f4bea3ddfad0-1711378365617/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/strings" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-e59c6ed5-6f74-42e7-b132-f4bea3ddfad0-1711378365617/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/abstract-signer" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-4634dcf0-704e-4158-8b97-d038197e9943-1716297675934/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-4634dcf0-704e-4158-8b97-d038197e9943-1716297675934/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/base64" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-4634dcf0-704e-4158-8b97-d038197e9943-1716297675934/node_modules/@ethersproject-xdc/base64" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-4634dcf0-704e-4158-8b97-d038197e9943-1716297675934/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-4634dcf0-704e-4158-8b97-d038197e9943-1716297675934/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/keccak256" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-4634dcf0-704e-4158-8b97-d038197e9943-1716297675934/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-4634dcf0-704e-4158-8b97-d038197e9943-1716297675934/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-4634dcf0-704e-4158-8b97-d038197e9943-1716297675934/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/strings" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-4634dcf0-704e-4158-8b97-d038197e9943-1716297675934/node_modules/@ethersproject-xdc/strings" "@ethersproject-xdc/hdnode@file:vendor/@ethersproject-xdc/hdnode": version "5.7.0" dependencies: - "@ethersproject-xdc/abstract-signer" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/abstract-signer" - "@ethersproject-xdc/basex" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/basex" - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/pbkdf2" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/pbkdf2" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/sha2" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/sha2" - "@ethersproject-xdc/signing-key" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/signing-key" - "@ethersproject-xdc/strings" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/strings" - "@ethersproject-xdc/transactions" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/transactions" - "@ethersproject-xdc/wordlists" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-7df6d3a0-85a2-4dd8-84f0-7defb4301c82-1711378365618/node_modules/@ethersproject-xdc/wordlists" + "@ethersproject-xdc/abstract-signer" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/basex" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/basex" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/pbkdf2" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/pbkdf2" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/sha2" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/sha2" + "@ethersproject-xdc/signing-key" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/signing-key" + "@ethersproject-xdc/strings" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/transactions" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/wordlists" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-a4f21af3-72bf-4254-a47d-65c7d8a97ad2-1716297675934/node_modules/@ethersproject-xdc/wordlists" "@ethersproject-xdc/json-wallets@file:vendor/@ethersproject-xdc/json-wallets": version "5.6.0" dependencies: - "@ethersproject-xdc/abstract-signer" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/abstract-signer" - "@ethersproject-xdc/address" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/address" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/hdnode" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/hdnode" - "@ethersproject-xdc/keccak256" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/keccak256" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/pbkdf2" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/pbkdf2" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/random" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/random" - "@ethersproject-xdc/strings" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/strings" - "@ethersproject-xdc/transactions" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-b09d5477-70d2-455d-95b9-95327c90a434-1711378365617/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/abstract-signer" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/hdnode" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/hdnode" + "@ethersproject-xdc/keccak256" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/pbkdf2" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/pbkdf2" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/random" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/random" + "@ethersproject-xdc/strings" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/transactions" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-231d1d58-37cd-4d83-87d7-cbb39caf8aa7-1716297675935/node_modules/@ethersproject-xdc/transactions" aes-js "3.0.0" scrypt-js "3.0.1" "@ethersproject-xdc/keccak256@file:vendor/@ethersproject-xdc/keccak256": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-keccak256-5.7.0-9cb7534e-f2d4-4bb8-8726-aa8d2ae70a68-1711378365617/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-keccak256-5.7.0-22e01e82-581e-4aa1-87e1-c519d1e31fd8-1716297675935/node_modules/@ethersproject-xdc/bytes" js-sha3 "0.8.0" "@ethersproject-xdc/logger@file:vendor/@ethersproject-xdc/logger": @@ -1573,67 +1573,67 @@ "@ethersproject-xdc/networks@file:vendor/@ethersproject-xdc/networks": version "5.7.1" dependencies: - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-networks-5.7.1-3318040d-6ee2-4fe1-8d35-2e90df014a04-1711378365619/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-networks-5.7.1-fb9e6b48-52db-41c9-bd3e-3a338a6d6fb6-1716297675937/node_modules/@ethersproject-xdc/logger" "@ethersproject-xdc/pbkdf2@file:vendor/@ethersproject-xdc/pbkdf2": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-pbkdf2-5.7.0-1db75448-b10f-4529-b48f-66f22c09a20a-1711378365617/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/sha2" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-pbkdf2-5.7.0-1db75448-b10f-4529-b48f-66f22c09a20a-1711378365617/node_modules/@ethersproject-xdc/sha2" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-pbkdf2-5.7.0-95e49d64-eb05-407c-a9e7-7d5715d2df75-1716297675936/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/sha2" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-pbkdf2-5.7.0-95e49d64-eb05-407c-a9e7-7d5715d2df75-1716297675936/node_modules/@ethersproject-xdc/sha2" "@ethersproject-xdc/properties@file:vendor/@ethersproject-xdc/properties": version "5.7.0" dependencies: - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-properties-5.7.0-d600654f-dc20-45bd-8730-5aea66cd419c-1711378365618/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-properties-5.7.0-5f17628d-cc48-4d8c-a636-a6aaea03413b-1716297675939/node_modules/@ethersproject-xdc/logger" "@ethersproject-xdc/providers@file:vendor/@ethersproject-xdc/providers": version "5.6.2" dependencies: - "@ethersproject-xdc/abstract-provider" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/abstract-provider" - "@ethersproject-xdc/abstract-signer" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/abstract-signer" - "@ethersproject-xdc/address" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/address" - "@ethersproject-xdc/basex" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/basex" - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/constants" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/constants" - "@ethersproject-xdc/hash" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/hash" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/networks" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/networks" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/random" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/random" - "@ethersproject-xdc/rlp" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/rlp" - "@ethersproject-xdc/sha2" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/sha2" - "@ethersproject-xdc/strings" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/strings" - "@ethersproject-xdc/transactions" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/transactions" - "@ethersproject-xdc/web" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-0e620e87-104e-4693-b0d6-cc54eba98645-1711378365618/node_modules/@ethersproject-xdc/web" + "@ethersproject-xdc/abstract-provider" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/abstract-provider" + "@ethersproject-xdc/abstract-signer" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/basex" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/basex" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/hash" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/hash" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/networks" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/networks" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/random" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/random" + "@ethersproject-xdc/rlp" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/rlp" + "@ethersproject-xdc/sha2" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/sha2" + "@ethersproject-xdc/strings" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/transactions" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/web" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f2cc1102-7174-4e4b-94d5-88c1bf25e69a-1716297675935/node_modules/@ethersproject-xdc/web" bech32 "1.1.4" ws "7.4.6" "@ethersproject-xdc/random@file:vendor/@ethersproject-xdc/random": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-random-5.7.0-98a7dd46-79c6-4335-9d15-21617d7f16a5-1711378365619/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-random-5.7.0-98a7dd46-79c6-4335-9d15-21617d7f16a5-1711378365619/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-random-5.7.0-3c816eb6-037f-4cd7-b0d0-3ee75241efa3-1716297675937/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-random-5.7.0-3c816eb6-037f-4cd7-b0d0-3ee75241efa3-1716297675937/node_modules/@ethersproject-xdc/logger" "@ethersproject-xdc/rlp@file:vendor/@ethersproject-xdc/rlp": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-rlp-5.7.0-7790503f-a04f-459f-8b5c-cf61ffd4ff12-1711378365619/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-rlp-5.7.0-7790503f-a04f-459f-8b5c-cf61ffd4ff12-1711378365619/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-rlp-5.7.0-5b745539-6d90-4f7b-8266-4e29531555d6-1716297675940/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-rlp-5.7.0-5b745539-6d90-4f7b-8266-4e29531555d6-1716297675940/node_modules/@ethersproject-xdc/logger" "@ethersproject-xdc/sha2@file:vendor/@ethersproject-xdc/sha2": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-sha2-5.7.0-c765449d-476b-4741-9e2e-dbccb8aa1809-1711378365619/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-sha2-5.7.0-c765449d-476b-4741-9e2e-dbccb8aa1809-1711378365619/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-sha2-5.7.0-ed2bee0d-f2a1-43bb-98f9-2181ead3a16f-1716297675938/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-sha2-5.7.0-ed2bee0d-f2a1-43bb-98f9-2181ead3a16f-1716297675938/node_modules/@ethersproject-xdc/logger" hash.js "1.1.7" "@ethersproject-xdc/signing-key@file:vendor/@ethersproject-xdc/signing-key": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-signing-key-5.7.0-21971b50-7b39-465c-bb5a-2f8689e48cc2-1711378365620/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-signing-key-5.7.0-21971b50-7b39-465c-bb5a-2f8689e48cc2-1711378365620/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-signing-key-5.7.0-21971b50-7b39-465c-bb5a-2f8689e48cc2-1711378365620/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-signing-key-5.7.0-c631dbd2-296f-458e-8c64-6b57ab2ef55f-1716297675937/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-signing-key-5.7.0-c631dbd2-296f-458e-8c64-6b57ab2ef55f-1716297675937/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-signing-key-5.7.0-c631dbd2-296f-458e-8c64-6b57ab2ef55f-1716297675937/node_modules/@ethersproject-xdc/properties" bn.js "^5.2.1" elliptic "6.5.4" hash.js "1.1.7" @@ -1641,76 +1641,76 @@ "@ethersproject-xdc/solidity@file:vendor/@ethersproject-xdc/solidity": version "5.6.0" dependencies: - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-e3924149-bd04-4548-98cf-44195b92192d-1711378365619/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-e3924149-bd04-4548-98cf-44195b92192d-1711378365619/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/keccak256" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-e3924149-bd04-4548-98cf-44195b92192d-1711378365619/node_modules/@ethersproject-xdc/keccak256" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-e3924149-bd04-4548-98cf-44195b92192d-1711378365619/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/sha2" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-e3924149-bd04-4548-98cf-44195b92192d-1711378365619/node_modules/@ethersproject-xdc/sha2" - "@ethersproject-xdc/strings" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-e3924149-bd04-4548-98cf-44195b92192d-1711378365619/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-301a4aff-58b1-4475-8522-5300fe4b22a7-1716297675937/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-301a4aff-58b1-4475-8522-5300fe4b22a7-1716297675937/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/keccak256" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-301a4aff-58b1-4475-8522-5300fe4b22a7-1716297675937/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-301a4aff-58b1-4475-8522-5300fe4b22a7-1716297675937/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/sha2" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-301a4aff-58b1-4475-8522-5300fe4b22a7-1716297675937/node_modules/@ethersproject-xdc/sha2" + "@ethersproject-xdc/strings" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-301a4aff-58b1-4475-8522-5300fe4b22a7-1716297675937/node_modules/@ethersproject-xdc/strings" "@ethersproject-xdc/strings@file:vendor/@ethersproject-xdc/strings": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-strings-5.7.0-42e9cb08-71fd-4932-bd36-6f05e0f1b34b-1711378365620/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/constants" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-strings-5.7.0-42e9cb08-71fd-4932-bd36-6f05e0f1b34b-1711378365620/node_modules/@ethersproject-xdc/constants" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-strings-5.7.0-42e9cb08-71fd-4932-bd36-6f05e0f1b34b-1711378365620/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-strings-5.7.0-e1e2b368-c344-4378-9cd0-8ea43170d394-1716297675939/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-strings-5.7.0-e1e2b368-c344-4378-9cd0-8ea43170d394-1716297675939/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-strings-5.7.0-e1e2b368-c344-4378-9cd0-8ea43170d394-1716297675939/node_modules/@ethersproject-xdc/logger" "@ethersproject-xdc/transactions@file:vendor/@ethersproject-xdc/transactions": version "5.7.0" dependencies: - "@ethersproject-xdc/address" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-bb480f26-2b90-41a5-bfff-057ac9b6e8e9-1711378365622/node_modules/@ethersproject-xdc/address" - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-bb480f26-2b90-41a5-bfff-057ac9b6e8e9-1711378365622/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-bb480f26-2b90-41a5-bfff-057ac9b6e8e9-1711378365622/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/constants" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-bb480f26-2b90-41a5-bfff-057ac9b6e8e9-1711378365622/node_modules/@ethersproject-xdc/constants" - "@ethersproject-xdc/keccak256" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-bb480f26-2b90-41a5-bfff-057ac9b6e8e9-1711378365622/node_modules/@ethersproject-xdc/keccak256" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-bb480f26-2b90-41a5-bfff-057ac9b6e8e9-1711378365622/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-bb480f26-2b90-41a5-bfff-057ac9b6e8e9-1711378365622/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/rlp" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-bb480f26-2b90-41a5-bfff-057ac9b6e8e9-1711378365622/node_modules/@ethersproject-xdc/rlp" - "@ethersproject-xdc/signing-key" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-bb480f26-2b90-41a5-bfff-057ac9b6e8e9-1711378365622/node_modules/@ethersproject-xdc/signing-key" + "@ethersproject-xdc/address" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-3459d0b8-cd9e-4b98-924e-5bc93576929c-1716297675939/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-3459d0b8-cd9e-4b98-924e-5bc93576929c-1716297675939/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-3459d0b8-cd9e-4b98-924e-5bc93576929c-1716297675939/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-3459d0b8-cd9e-4b98-924e-5bc93576929c-1716297675939/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/keccak256" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-3459d0b8-cd9e-4b98-924e-5bc93576929c-1716297675939/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-3459d0b8-cd9e-4b98-924e-5bc93576929c-1716297675939/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-3459d0b8-cd9e-4b98-924e-5bc93576929c-1716297675939/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/rlp" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-3459d0b8-cd9e-4b98-924e-5bc93576929c-1716297675939/node_modules/@ethersproject-xdc/rlp" + "@ethersproject-xdc/signing-key" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-3459d0b8-cd9e-4b98-924e-5bc93576929c-1716297675939/node_modules/@ethersproject-xdc/signing-key" "@ethersproject-xdc/units@file:vendor/@ethersproject-xdc/units": version "5.6.0" dependencies: - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-units-5.6.0-5f41db51-35b1-4973-a795-080ed99a99b4-1711378365619/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/constants" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-units-5.6.0-5f41db51-35b1-4973-a795-080ed99a99b4-1711378365619/node_modules/@ethersproject-xdc/constants" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-units-5.6.0-5f41db51-35b1-4973-a795-080ed99a99b4-1711378365619/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-units-5.6.0-3ca72b77-e338-4a38-95ae-5e5ba3d2cd70-1716297675940/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/constants" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-units-5.6.0-3ca72b77-e338-4a38-95ae-5e5ba3d2cd70-1716297675940/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-units-5.6.0-3ca72b77-e338-4a38-95ae-5e5ba3d2cd70-1716297675940/node_modules/@ethersproject-xdc/logger" "@ethersproject-xdc/wallet@file:vendor/@ethersproject-xdc/wallet": version "5.6.0" dependencies: - "@ethersproject-xdc/abstract-provider" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/abstract-provider" - "@ethersproject-xdc/abstract-signer" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/abstract-signer" - "@ethersproject-xdc/address" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/address" - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/hash" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/hash" - "@ethersproject-xdc/hdnode" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/hdnode" - "@ethersproject-xdc/json-wallets" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/json-wallets" - "@ethersproject-xdc/keccak256" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/keccak256" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/random" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/random" - "@ethersproject-xdc/signing-key" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/signing-key" - "@ethersproject-xdc/transactions" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/transactions" - "@ethersproject-xdc/wordlists" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-bc949dc4-090d-4ab9-b6c6-709a17fc75ad-1711378365622/node_modules/@ethersproject-xdc/wordlists" + "@ethersproject-xdc/abstract-provider" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/abstract-provider" + "@ethersproject-xdc/abstract-signer" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/hash" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/hash" + "@ethersproject-xdc/hdnode" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/hdnode" + "@ethersproject-xdc/json-wallets" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/json-wallets" + "@ethersproject-xdc/keccak256" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/random" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/random" + "@ethersproject-xdc/signing-key" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/signing-key" + "@ethersproject-xdc/transactions" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/wordlists" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-6ddc52d1-d7d8-448c-8495-458d8fbc1c99-1716297675940/node_modules/@ethersproject-xdc/wordlists" "@ethersproject-xdc/web@file:vendor/@ethersproject-xdc/web": version "5.7.1" dependencies: - "@ethersproject-xdc/base64" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-web-5.7.1-9ac39370-4d32-4c38-96c7-4498ea524885-1711378365623/node_modules/@ethersproject-xdc/base64" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-web-5.7.1-9ac39370-4d32-4c38-96c7-4498ea524885-1711378365623/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-web-5.7.1-9ac39370-4d32-4c38-96c7-4498ea524885-1711378365623/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-web-5.7.1-9ac39370-4d32-4c38-96c7-4498ea524885-1711378365623/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/strings" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-web-5.7.1-9ac39370-4d32-4c38-96c7-4498ea524885-1711378365623/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/base64" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-web-5.7.1-7ed4e428-4212-4f49-811d-eb75182bbea2-1716297675941/node_modules/@ethersproject-xdc/base64" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-web-5.7.1-7ed4e428-4212-4f49-811d-eb75182bbea2-1716297675941/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-web-5.7.1-7ed4e428-4212-4f49-811d-eb75182bbea2-1716297675941/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-web-5.7.1-7ed4e428-4212-4f49-811d-eb75182bbea2-1716297675941/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/strings" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-web-5.7.1-7ed4e428-4212-4f49-811d-eb75182bbea2-1716297675941/node_modules/@ethersproject-xdc/strings" "@ethersproject-xdc/wordlists@file:vendor/@ethersproject-xdc/wordlists": version "5.7.0" dependencies: - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-eafc2a13-cd67-4bf6-9256-aec79a731277-1711378365623/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/hash" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-eafc2a13-cd67-4bf6-9256-aec79a731277-1711378365623/node_modules/@ethersproject-xdc/hash" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-eafc2a13-cd67-4bf6-9256-aec79a731277-1711378365623/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-eafc2a13-cd67-4bf6-9256-aec79a731277-1711378365623/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/strings" "file:../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-eafc2a13-cd67-4bf6-9256-aec79a731277-1711378365623/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-600d3cd3-cfc7-438d-970d-541b8baac753-1716297675941/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/hash" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-600d3cd3-cfc7-438d-970d-541b8baac753-1716297675941/node_modules/@ethersproject-xdc/hash" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-600d3cd3-cfc7-438d-970d-541b8baac753-1716297675941/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-600d3cd3-cfc7-438d-970d-541b8baac753-1716297675941/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/strings" "file:../../../../Library/Caches/Yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-600d3cd3-cfc7-438d-970d-541b8baac753-1716297675941/node_modules/@ethersproject-xdc/strings" "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.12", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": version "5.7.0" @@ -1945,7 +1945,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.0.4", "@ethersproject/providers@^5.4.0", "@ethersproject/providers@^5.7.2": +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.0.10", "@ethersproject/providers@^5.0.4", "@ethersproject/providers@^5.4.0", "@ethersproject/providers@^5.7.2": version "5.7.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== @@ -2361,6 +2361,16 @@ protobufjs "^7.0.0" rxjs "^7.4.0" +"@injectivelabs/dmm-proto-ts@1.0.16": + version "1.0.16" + resolved "https://registry.yarnpkg.com/@injectivelabs/dmm-proto-ts/-/dmm-proto-ts-1.0.16.tgz#7e2d6652cf31700524c1933d40ffa54c213302c5" + integrity sha512-2D1gDJ0eMveTuLjOH+dDvDSjoIbCbaQxnRmVCg3an0kPRot54tNTdx1DC3LyBQEOJ7VeVJFbhDjoAmgpNPBY8A== + dependencies: + "@injectivelabs/grpc-web" "^0.0.1" + google-protobuf "^3.14.0" + protobufjs "^7.0.0" + rxjs "^7.4.0" + "@injectivelabs/exceptions@^1.10.6": version "1.10.6" resolved "https://registry.yarnpkg.com/@injectivelabs/exceptions/-/exceptions-1.10.6.tgz#7d3e23d1123148afe050064e8524be1e58e55f0f" @@ -2372,6 +2382,17 @@ link-module-alias "^1.2.0" shx "^0.3.2" +"@injectivelabs/exceptions@^1.12.1", "@injectivelabs/exceptions@^1.14.6": + version "1.14.6" + resolved "https://registry.yarnpkg.com/@injectivelabs/exceptions/-/exceptions-1.14.6.tgz#86f93815eb6bc60902c43072b8e212146d78614e" + integrity sha512-A+URJwygeDjFPhulGMNVw70z738NtpIiCr0W8q4Kr4Ggg30i+AaVAjViYLm56pSMXXpomu9CYJ/sY6ijQn48IQ== + dependencies: + "@injectivelabs/grpc-web" "^0.0.1" + "@injectivelabs/ts-types" "^1.14.6" + http-status-codes "^2.2.0" + link-module-alias "^1.2.0" + shx "^0.3.2" + "@injectivelabs/grpc-web-node-http-transport@^0.0.2": version "0.0.2" resolved "https://registry.yarnpkg.com/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz#87c9bbd4db1f70cf18d6a55b54b2cf17d3cf30c0" @@ -2399,6 +2420,26 @@ protobufjs "^7.0.0" rxjs "^7.4.0" +"@injectivelabs/indexer-proto-ts@1.11.9": + version "1.11.9" + resolved "https://registry.yarnpkg.com/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.11.9.tgz#19910f44382da50d16c0e7a58114c06b5b66214d" + integrity sha512-hUlZbSpii+amvqqefH/oV16igRJSx4mCM/Zi0xMZLHyqGkaX7PHVvjQcfX04hwx2MdSsAoDghJXuUrAJ7q9I2A== + dependencies: + "@injectivelabs/grpc-web" "^0.0.1" + google-protobuf "^3.14.0" + protobufjs "^7.0.0" + rxjs "^7.4.0" + +"@injectivelabs/mito-proto-ts@1.0.43": + version "1.0.43" + resolved "https://registry.yarnpkg.com/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.43.tgz#2dab228c4ef7cb40d2a7562afddc898592116fd9" + integrity sha512-w2FRECf0KmqhyID6iwKoQj366mSy1URjoWlf3sueM2s4xXee/J2fzYT4JOjt1wK8taLQ/gbIWP8FMTtUvh/+2w== + dependencies: + "@injectivelabs/grpc-web" "^0.0.1" + google-protobuf "^3.14.0" + protobufjs "^7.0.0" + rxjs "^7.4.0" + "@injectivelabs/mito-proto-ts@1.0.9": version "1.0.9" resolved "https://registry.yarnpkg.com/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.9.tgz#ad04165ad63f52a9f67082318e0620cccc4986f2" @@ -2420,6 +2461,60 @@ link-module-alias "^1.2.0" shx "^0.3.2" +"@injectivelabs/networks@^1.12.1", "@injectivelabs/networks@^1.14.6": + version "1.14.6" + resolved "https://registry.yarnpkg.com/@injectivelabs/networks/-/networks-1.14.6.tgz#29be5e81e60d725a0eef2db2c9b6ba0b4588141b" + integrity sha512-O1IkPFJl8ThNL6N+k/9OimrgCYsSWQ8A1FtVMXSQge+0QRZsDKSpRmQRwE601otXXauO31nOUct5AaiWPffXVQ== + dependencies: + "@injectivelabs/exceptions" "^1.14.6" + "@injectivelabs/ts-types" "^1.14.6" + "@injectivelabs/utils" "^1.14.6" + link-module-alias "^1.2.0" + shx "^0.3.2" + +"@injectivelabs/sdk-ts@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@injectivelabs/sdk-ts/-/sdk-ts-1.12.1.tgz#759bc79ed348d25e99a665f5539891ae639e241e" + integrity sha512-OEbFb4W5D5tvC+sRkmb/+kbhD8hJ8GS8XiJPBV2k8DoNHmm+nHfHao/8sMTuvHDm2S+vZu3RrV7IBMRgZC64rw== + dependencies: + "@apollo/client" "^3.5.8" + "@cosmjs/amino" "^0.30.1" + "@cosmjs/proto-signing" "^0.30.1" + "@cosmjs/stargate" "^0.30.1" + "@ethersproject/bytes" "^5.7.0" + "@injectivelabs/core-proto-ts" "^0.0.18" + "@injectivelabs/dmm-proto-ts" "1.0.16" + "@injectivelabs/exceptions" "^1.12.1" + "@injectivelabs/grpc-web" "^0.0.1" + "@injectivelabs/grpc-web-node-http-transport" "^0.0.2" + "@injectivelabs/grpc-web-react-native-transport" "^0.0.2" + "@injectivelabs/indexer-proto-ts" "1.11.9" + "@injectivelabs/mito-proto-ts" "1.0.43" + "@injectivelabs/networks" "^1.12.1" + "@injectivelabs/test-utils" "^1.12.1" + "@injectivelabs/token-metadata" "^1.12.1" + "@injectivelabs/ts-types" "^1.12.1" + "@injectivelabs/utils" "^1.12.1" + "@metamask/eth-sig-util" "^4.0.0" + axios "^0.27.2" + bech32 "^2.0.0" + bip39 "^3.0.4" + cosmjs-types "^0.7.1" + eth-crypto "^2.6.0" + ethereumjs-util "^7.1.4" + ethers "^5.7.2" + google-protobuf "^3.21.0" + graphql "^16.3.0" + http-status-codes "^2.2.0" + js-sha3 "^0.8.0" + jscrypto "^1.0.3" + keccak256 "^1.0.6" + link-module-alias "^1.2.0" + rxjs "^7.8.0" + secp256k1 "^4.0.3" + shx "^0.3.2" + snakecase-keys "^5.4.1" + "@injectivelabs/sdk-ts@^1.10.58": version "1.10.58" resolved "https://registry.yarnpkg.com/@injectivelabs/sdk-ts/-/sdk-ts-1.10.58.tgz#fd452c3919ccb70ae0c3102a410b7334d2013704" @@ -2474,6 +2569,18 @@ snakecase-keys "^5.1.2" store2 "^2.12.0" +"@injectivelabs/test-utils@^1.12.1": + version "1.14.4" + resolved "https://registry.yarnpkg.com/@injectivelabs/test-utils/-/test-utils-1.14.4.tgz#bf5b8c069eabac875e0c235589132b6166a5d08b" + integrity sha512-M7UoB5CIVVN7BtdmU26GwZsWKp0BQg9qV5a+YvcdhlwlSIkvt3gKVKBMq/vKClCakOu2AjhCVGDMZVnagIBogg== + dependencies: + axios "^0.21.1" + bignumber.js "^9.0.1" + link-module-alias "^1.2.0" + shx "^0.3.2" + snakecase-keys "^5.1.2" + store2 "^2.12.0" + "@injectivelabs/token-metadata@^1.10.31": version "1.10.31" resolved "https://registry.yarnpkg.com/@injectivelabs/token-metadata/-/token-metadata-1.10.31.tgz#a61b8488fffd843c18bad8c43490af8eeda764a4" @@ -2491,6 +2598,23 @@ lodash.values "^4.3.0" shx "^0.3.2" +"@injectivelabs/token-metadata@^1.12.1": + version "1.14.7" + resolved "https://registry.yarnpkg.com/@injectivelabs/token-metadata/-/token-metadata-1.14.7.tgz#0adba14e76e8882dc13a6a488ced0762fd888ae3" + integrity sha512-RRRuyirzoThwQ5P8D3STH2YOavGsdnetQy6ZPQ8yA7VUavt00KBB26M92zSLbiUz5VrxhPHDCEEkuJVWx+xtmw== + dependencies: + "@injectivelabs/exceptions" "^1.14.6" + "@injectivelabs/networks" "^1.14.6" + "@injectivelabs/ts-types" "^1.14.6" + "@injectivelabs/utils" "^1.14.6" + "@types/lodash.values" "^4.3.6" + copyfiles "^2.4.1" + jsonschema "^1.4.0" + link-module-alias "^1.2.0" + lodash "^4.17.21" + lodash.values "^4.3.0" + shx "^0.3.2" + "@injectivelabs/ts-types@^1.10.5": version "1.10.5" resolved "https://registry.yarnpkg.com/@injectivelabs/ts-types/-/ts-types-1.10.5.tgz#c8672fe6b1394162ec1828590051c92062799ac8" @@ -2499,6 +2623,14 @@ link-module-alias "^1.2.0" shx "^0.3.2" +"@injectivelabs/ts-types@^1.12.1", "@injectivelabs/ts-types@^1.14.6": + version "1.14.6" + resolved "https://registry.yarnpkg.com/@injectivelabs/ts-types/-/ts-types-1.14.6.tgz#917a14c8fed81c683bc7dece3ec254388123a10e" + integrity sha512-/Ax5eCSfE9OhcyUc9wZk/LFKTYhIY9RJIaNT/n92rbHjXSfXRLSX+Bvk62vC9Ej+SEBPp77WYngtrePPA1HEgw== + dependencies: + link-module-alias "^1.2.0" + shx "^0.3.2" + "@injectivelabs/utils@^1.10.6": version "1.10.6" resolved "https://registry.yarnpkg.com/@injectivelabs/utils/-/utils-1.10.6.tgz#d01360a458edc552bd8668776bb137b34b0a6b01" @@ -2514,6 +2646,21 @@ snakecase-keys "^5.1.2" store2 "^2.12.0" +"@injectivelabs/utils@^1.12.1", "@injectivelabs/utils@^1.14.6": + version "1.14.6" + resolved "https://registry.yarnpkg.com/@injectivelabs/utils/-/utils-1.14.6.tgz#1e5c60973f9b2bb1a0334a0cd5b3f56377904472" + integrity sha512-5I0h4GiLB5PPTl+g2lpevRP+WScvEbntdkoUQVtAdHewl4kutd5p1Kcnoi1Nvpq+sz5N/e9qtBIRuyxG38akOg== + dependencies: + "@injectivelabs/exceptions" "^1.14.6" + "@injectivelabs/ts-types" "^1.14.6" + axios "^0.21.1" + bignumber.js "^9.0.1" + http-status-codes "^2.2.0" + link-module-alias "^1.2.0" + shx "^0.3.2" + snakecase-keys "^5.1.2" + store2 "^2.12.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -2837,6 +2984,14 @@ axios "^0.27.2" long "^4.0.0" +"@keplr-wallet/types@^0.11.38": + version "0.11.64" + resolved "https://registry.yarnpkg.com/@keplr-wallet/types/-/types-0.11.64.tgz#5a308c8c019b4e18f894e0f35f0904b60134d605" + integrity sha512-GgzeLDHHfZFyne3O7UIfFHj/uYqVbxAZI31RbBwt460OBbvwQzjrlZwvJW3vieWRAgxKSITjzEDBl2WneFTQdQ== + dependencies: + axios "^0.27.2" + long "^4.0.0" + "@metamask/eth-sig-util@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" @@ -3134,6 +3289,37 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.4.2-solc-0.7.tgz#38f4dbab672631034076ccdf2f3201fab1726635" integrity sha512-W6QmqgkADuFcTLzHL8vVoNBtkwjvQRpYIAom7KiUNoLKghyx3FgH0GBjt8NRvigV1ZmMOBllvE1By1C+bi8WpA== +"@oraichain/common-contracts-sdk@^1.0.31": + version "1.0.31" + resolved "https://registry.yarnpkg.com/@oraichain/common-contracts-sdk/-/common-contracts-sdk-1.0.31.tgz#595f93b168438d69d64896909b37855c9afc92fb" + integrity sha512-s8H20RXy5gCnu3DnM7L5ClQyj2mdQpbSBpZrXCpIAX9qY0LKsDdZG3sYaDQ8+VN333jz9Pp/qGWdFSYD+6PBsg== + +"@oraichain/oraidex-common@^1.0.86": + version "1.0.86" + resolved "https://registry.yarnpkg.com/@oraichain/oraidex-common/-/oraidex-common-1.0.86.tgz#41ff557609a02f9c61503f92af04b1490908ad2f" + integrity sha512-YzNy3RAXqIuDg4Lw/7yjc9vQJSwtUhqAdO714TgkLETsRD/AakWGyYOPxyV+MZGg6m3s6ujna+1ves0HexPUhg== + dependencies: + "@cosmjs/amino" "0.31.3" + "@cosmjs/cosmwasm-stargate" "0.31.3" + "@cosmjs/crypto" "0.31.3" + "@cosmjs/proto-signing" "0.31.3" + "@cosmjs/stargate" "0.31.3" + "@cosmjs/tendermint-rpc" "0.31.3" + "@ethersproject/providers" "^5.0.10" + "@injectivelabs/sdk-ts" "1.12.1" + "@keplr-wallet/types" "^0.11.38" + "@oraichain/oraidex-contracts-sdk" latest + axios "0.26.1" + axios-extensions "3.1.3" + bignumber.js "^9.1.2" + cosmjs-types "0.8.0" + ethers "^5.0.15" + +"@oraichain/oraidex-contracts-sdk@^1.0.31", "@oraichain/oraidex-contracts-sdk@latest": + version "1.0.44" + resolved "https://registry.yarnpkg.com/@oraichain/oraidex-contracts-sdk/-/oraidex-contracts-sdk-1.0.44.tgz#9ff41ec388dd92ba112c2eef545d11fd6e18c684" + integrity sha512-fMY/QOzO/afPlAVkLGH1bcpJTs6V/URrJju2r4UoE9f5HUWC/6OC6+H5dWuIgq26frp8wjH23mNCQAlmHzji8g== + "@osmonauts/math@^1.11.3": version "1.11.3" resolved "https://registry.yarnpkg.com/@osmonauts/math/-/math-1.11.3.tgz#22b3f60ea4b84e1329661184b28f72eb9b97c8e7" @@ -4664,6 +4850,11 @@ resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== +"@types/lru-cache@^4.1.1": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-4.1.3.tgz#ec5eb6dd818b7a06336cfb7368723164b195f818" + integrity sha512-QjCOmf5kYwekcsfEKhcEHMK8/SvgnneuSDXFERBuC/DPca2KJIO/gpChTsVb35BoWLBpEAJWz1GFVEArSdtKtw== + "@types/mathjs@^9.4.2": version "9.4.2" resolved "https://registry.yarnpkg.com/@types/mathjs/-/mathjs-9.4.2.tgz#beec20340d768171fed8331b08fb321d218ec6e1" @@ -5777,6 +5968,16 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== +axios-extensions@3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/axios-extensions/-/axios-extensions-3.1.3.tgz#cd745bb7dc899743f85a2b5a291c7f36d9f41e12" + integrity sha512-/OB9OcJLNOIx9pdW4m4/hFRvNo12wlX5BaprIzqpMaLR02I88Mr98/wW4QN9rhx0/yg9rM7i6Af/RpV4MyxXjA== + dependencies: + "@types/lru-cache" "^4.1.1" + lru-cache "^5.1.1" + tslib "^1.9.0" + util "^0.11.1" + axios@0.26.0: version "0.26.0" resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.0.tgz#9a318f1c69ec108f8cd5f3c3d390366635e13928" @@ -5784,6 +5985,13 @@ axios@0.26.0: dependencies: follow-redirects "^1.14.8" +axios@0.26.1, axios@^0.26.0: + version "0.26.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" + integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== + dependencies: + follow-redirects "^1.14.8" + axios@0.27.2, axios@^0.27.2: version "0.27.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" @@ -5817,13 +6025,6 @@ axios@^0.21.1, axios@^0.21.2: dependencies: follow-redirects "^1.14.0" -axios@^0.26.0: - version "0.26.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" - axios@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" @@ -5996,7 +6197,7 @@ bignumber.js@9.1.1, bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.1. resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== -bignumber.js@9.1.2: +bignumber.js@9.1.2, bignumber.js@^9.1.2: version "9.1.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== @@ -7006,6 +7207,14 @@ cors@^2.8.1, cors@^2.8.5: object-assign "^4" vary "^1" +cosmjs-types@0.8.0, cosmjs-types@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.8.0.tgz#2ed78f3e990f770229726f95f3ef5bf9e2b6859b" + integrity sha512-Q2Mj95Fl0PYMWEhA2LuGEIhipF7mQwd9gTQ85DdP9jjjopeoGaDxvmPa5nakNzsq7FnO1DMTatXTAx6bxMH7Lg== + dependencies: + long "^4.0.0" + protobufjs "~6.11.2" + cosmjs-types@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.5.2.tgz#2d42b354946f330dfb5c90a87fdc2a36f97b965d" @@ -7022,14 +7231,6 @@ cosmjs-types@^0.7.1: long "^4.0.0" protobufjs "~6.11.2" -cosmjs-types@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.8.0.tgz#2ed78f3e990f770229726f95f3ef5bf9e2b6859b" - integrity sha512-Q2Mj95Fl0PYMWEhA2LuGEIhipF7mQwd9gTQ85DdP9jjjopeoGaDxvmPa5nakNzsq7FnO1DMTatXTAx6bxMH7Lg== - dependencies: - long "^4.0.0" - protobufjs "~6.11.2" - cosmjs-types@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.9.0.tgz#c3bc482d28c7dfa25d1445093fdb2d9da1f6cfcc" @@ -8186,36 +8387,36 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: "ethers-xdc@file:./vendor/ethers-xdc": version "5.7.2" dependencies: - "@ethersproject-xdc/abi" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/abi" - "@ethersproject-xdc/abstract-provider" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/abstract-provider" - "@ethersproject-xdc/abstract-signer" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/abstract-signer" - "@ethersproject-xdc/address" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/address" - "@ethersproject-xdc/base64" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/base64" - "@ethersproject-xdc/basex" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/basex" - "@ethersproject-xdc/bignumber" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/bignumber" - "@ethersproject-xdc/bytes" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/bytes" - "@ethersproject-xdc/constants" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/constants" - "@ethersproject-xdc/contracts" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/contracts" - "@ethersproject-xdc/hash" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/hash" - "@ethersproject-xdc/hdnode" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/hdnode" - "@ethersproject-xdc/json-wallets" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/json-wallets" - "@ethersproject-xdc/keccak256" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/keccak256" - "@ethersproject-xdc/logger" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/logger" - "@ethersproject-xdc/networks" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/networks" - "@ethersproject-xdc/pbkdf2" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/pbkdf2" - "@ethersproject-xdc/properties" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/properties" - "@ethersproject-xdc/providers" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/providers" - "@ethersproject-xdc/random" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/random" - "@ethersproject-xdc/rlp" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/rlp" - "@ethersproject-xdc/sha2" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/sha2" - "@ethersproject-xdc/signing-key" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/signing-key" - "@ethersproject-xdc/solidity" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/solidity" - "@ethersproject-xdc/strings" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/strings" - "@ethersproject-xdc/transactions" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/transactions" - "@ethersproject-xdc/units" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/units" - "@ethersproject-xdc/wallet" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/wallet" - "@ethersproject-xdc/web" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/web" - "@ethersproject-xdc/wordlists" "file:../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-ba402b8c-f1be-43c1-a0b9-2b2aeab75ab2-1711378365608/node_modules/@ethersproject-xdc/wordlists" + "@ethersproject-xdc/abi" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/abi" + "@ethersproject-xdc/abstract-provider" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/abstract-provider" + "@ethersproject-xdc/abstract-signer" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/base64" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/base64" + "@ethersproject-xdc/basex" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/basex" + "@ethersproject-xdc/bignumber" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/contracts" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/contracts" + "@ethersproject-xdc/hash" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/hash" + "@ethersproject-xdc/hdnode" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/hdnode" + "@ethersproject-xdc/json-wallets" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/json-wallets" + "@ethersproject-xdc/keccak256" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/networks" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/networks" + "@ethersproject-xdc/pbkdf2" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/pbkdf2" + "@ethersproject-xdc/properties" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/providers" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/providers" + "@ethersproject-xdc/random" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/random" + "@ethersproject-xdc/rlp" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/rlp" + "@ethersproject-xdc/sha2" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/sha2" + "@ethersproject-xdc/signing-key" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/signing-key" + "@ethersproject-xdc/solidity" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/solidity" + "@ethersproject-xdc/strings" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/transactions" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/units" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/units" + "@ethersproject-xdc/wallet" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/wallet" + "@ethersproject-xdc/web" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/web" + "@ethersproject-xdc/wordlists" "file:../../../../Library/Caches/Yarn/v6/npm-ethers-xdc-5.7.2-7e2ffb93-73da-4437-aca4-fac37de06fc5-1716297675922/node_modules/@ethersproject-xdc/wordlists" ethers@4.0.0-beta.3: version "4.0.0-beta.3" @@ -8233,7 +8434,7 @@ ethers@4.0.0-beta.3: uuid "2.0.1" xmlhttprequest "1.8.0" -ethers@5.7.2, ethers@^5.0.19, ethers@^5.6.1, ethers@^5.6.2, ethers@^5.7.0, ethers@^5.7.2: +ethers@5.7.2, ethers@^5.0.15, ethers@^5.0.19, ethers@^5.6.1, ethers@^5.6.2, ethers@^5.7.0, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -8701,11 +8902,12 @@ find-up@^4.0.0, find-up@^4.1.0: path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" flat@^5.0.2: @@ -8713,10 +8915,10 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== fn.name@1.x.x: version "1.1.0" @@ -9729,6 +9931,11 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -10924,6 +11131,13 @@ keyv@^4.0.0: dependencies: json-buffer "3.0.1" +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -15253,6 +15467,13 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +util@^0.11.1: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"