From 42e647ae47b3e358d3cc9add044e85aa6195e98b Mon Sep 17 00:00:00 2001 From: samlior Date: Mon, 20 May 2024 11:21:22 +0800 Subject: [PATCH 01/10] Add synfutures --- package.json | 1 + src/app.ts | 2 +- .../synfutures/synfutures.config.ts | 19 + .../synfutures/synfutures.controllers.ts | 258 ++++++++ src/connectors/synfutures/synfutures.ts | 410 ++++++++++++ src/services/common-interfaces.ts | 84 +++ src/templates/ethereum.yml | 7 + src/templates/lists/blast_tokens_mainnet.json | 16 + src/templates/synfutures.yml | 6 + yarn.lock | 585 ++++++++++++------ 10 files changed, 1190 insertions(+), 198 deletions(-) create mode 100644 src/connectors/synfutures/synfutures.config.ts create mode 100644 src/connectors/synfutures/synfutures.controllers.ts create mode 100644 src/connectors/synfutures/synfutures.ts create mode 100644 src/templates/lists/blast_tokens_mainnet.json create mode 100644 src/templates/synfutures.yml diff --git a/package.json b/package.json index da576477f8..860ad79a23 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "@pangolindex/sdk": "^1.1.0", "@perp/sdk-curie": "^1.16.0", "@sushiswap/sdk": "^5.0.0-canary.116", + "@synfutures/oyster-sdk": "^0.1.6", "@taquito/rpc": "^17.0.0", "@taquito/signer": "^17.0.0", "@taquito/taquito": "^17.0.0", diff --git a/src/app.ts b/src/app.ts index 08fbdb4323..014f1625dc 100644 --- a/src/app.ts +++ b/src/app.ts @@ -126,7 +126,7 @@ export const startGateway = async () => { await gatewayApp.listen(port); } else { try { - await addHttps(gatewayApp).listen(port); + await addHttps(gatewayApp).listen(port, "127.0.0.1"); logger.info('The gateway server is secured behind HTTPS.'); } catch (e) { logger.error( diff --git a/src/connectors/synfutures/synfutures.config.ts b/src/connectors/synfutures/synfutures.config.ts new file mode 100644 index 0000000000..7d8c8074dc --- /dev/null +++ b/src/connectors/synfutures/synfutures.config.ts @@ -0,0 +1,19 @@ +import { ConfigManagerV2 } from '../../services/config-manager-v2'; +import { AvailableNetworks } from '../../services/config-manager-types'; +export namespace SynFuturesConfig { + export interface NetworkConfig { + allowedSlippage: string; + ttl: number; + tradingTypes: (type: string) => Array; + chainType: string; + availableNetworks: Array; + } + + export const config: NetworkConfig = { + allowedSlippage: ConfigManagerV2.getInstance().get(`synfutures.allowedSlippage`), + ttl: ConfigManagerV2.getInstance().get(`synfutures.versions.ttl`), + tradingTypes: () => ['AMM_Perpetual'], + chainType: 'EVM', + availableNetworks: [{ chain: 'ethereum', networks: ['blast'] }], + }; +} diff --git a/src/connectors/synfutures/synfutures.controllers.ts b/src/connectors/synfutures/synfutures.controllers.ts new file mode 100644 index 0000000000..38ac229691 --- /dev/null +++ b/src/connectors/synfutures/synfutures.controllers.ts @@ -0,0 +1,258 @@ +import { Transaction, Wallet } from 'ethers'; +import { + HttpException, + TOKEN_NOT_SUPPORTED_ERROR_CODE, + TOKEN_NOT_SUPPORTED_ERROR_MESSAGE, + INCOMPLETE_REQUEST_PARAM, + INCOMPLETE_REQUEST_PARAM_CODE, + LOAD_WALLET_ERROR_CODE, + LOAD_WALLET_ERROR_MESSAGE, + UNKNOWN_ERROR_ERROR_CODE, + UNKNOWN_ERROR_MESSAGE, +} from '../../services/error-handler'; +import { TokenInfo } from '../../chains/ethereum/ethereum-base'; +import { latency, gasCostInEthString } from '../../services/base'; +import { + Ethereumish, + Tokenish, + SynFuturesish, +} from '../../services/common-interfaces'; +import { logger } from '../../services/logger'; +import { + EstimateGasResponse, + PriceRequest, + PerpPricesResponse, + PerpCreateTakerRequest, + PerpCreateTakerResponse, + PerpAvailablePairsResponse, + PerpPositionRequest, + PerpPositionResponse, + PerpMarketRequest, + PerpMarketResponse, + PerpBalanceResponse, +} from '../../amm/amm.requests'; +import { PerpPosition } from '../perp/perp'; + +async function getWallet(ethereumish: Ethereumish, address: string) { + let wallet: Wallet; + + try { + wallet = await ethereumish.getWallet(address); + } catch (err) { + logger.error(`Wallet ${address} not available.`); + throw new HttpException( + 500, + LOAD_WALLET_ERROR_MESSAGE + err, + LOAD_WALLET_ERROR_CODE, + ); + } + + return wallet; +} + +export async function getPriceData( + ethereumish: Ethereumish, + synfuturesish: SynFuturesish, + req: PriceRequest, +): Promise { + const startTimestamp: number = Date.now(); + let prices; + try { + prices = await synfuturesish.prices(`${req.base}-${req.quote}`); + } catch (e) { + throw new HttpException( + 500, + UNKNOWN_ERROR_MESSAGE, + UNKNOWN_ERROR_ERROR_CODE, + ); + } + + return { + network: ethereumish.chain, + timestamp: startTimestamp, + latency: latency(startTimestamp, Date.now()), + base: req.base, + quote: req.quote, + markPrice: prices.markPrice.toString(), + indexPrice: prices.indexPrice.toString(), + indexTwapPrice: prices.indexTwapPrice.toString(), + }; +} + +export async function getAvailablePairs( + ethereumish: Ethereumish, + synfuturesish: SynFuturesish, +): Promise { + const startTimestamp: number = Date.now(); + return { + network: ethereumish.chain, + timestamp: startTimestamp, + latency: latency(startTimestamp, Date.now()), + pairs: synfuturesish.availablePairs(), + }; +} + +export async function checkMarketStatus( + ethereumish: Ethereumish, + synfuturesish: SynFuturesish, + req: PerpMarketRequest, +): Promise { + const startTimestamp: number = Date.now(); + const status = await synfuturesish.isMarketActive(`${req.base}-${req.quote}`); + return { + network: ethereumish.chain, + timestamp: startTimestamp, + latency: latency(startTimestamp, Date.now()), + base: req.base, + quote: req.quote, + isActive: status, + }; +} + +export async function getPosition( + ethereumish: Ethereumish, + synfuturesish: SynFuturesish, + req: PerpPositionRequest, +): Promise { + const startTimestamp: number = Date.now(); + const position = await synfuturesish.getPositions( + req.address, + `${req.base}-${req.quote}`, + ); + return { + network: ethereumish.chain, + timestamp: startTimestamp, + latency: latency(startTimestamp, Date.now()), + base: req.base, + quote: req.quote, + ...(position as PerpPosition), + }; +} + +export async function createTakerOrder( + ethereumish: Ethereumish, + synfuturesish: SynFuturesish, + req: PerpCreateTakerRequest, + isOpen: boolean, +): Promise { + const startTimestamp: number = Date.now(); + + const gasPrice: number = ethereumish.gasPrice; + + const wallet = await getWallet(ethereumish, req.address); + + let tx: Transaction; + + if (isOpen) { + if (!req.amount || !req.side) { + throw new HttpException( + 500, + INCOMPLETE_REQUEST_PARAM, + INCOMPLETE_REQUEST_PARAM_CODE, + ); + } + + tx = await synfuturesish.openPosition( + wallet, + req.side === 'LONG', + `${req.base}-${req.quote}`, + req.amount, + req.nonce, + req.allowedSlippage, + ); + } else { + tx = await synfuturesish.closePosition( + wallet, + `${req.base}-${req.quote}`, + req.nonce, + req.allowedSlippage, + ); + } + + await ethereumish.txStorage.saveTx( + ethereumish.chain, + ethereumish.chainId, + tx.hash as string, + new Date(), + ethereumish.gasPrice, + ); + + logger.info( + `Order has been sent, txHash is ${tx.hash}, nonce is ${tx.nonce}, gasPrice is ${gasPrice}.`, + ); + + return { + network: ethereumish.chain, + timestamp: startTimestamp, + latency: latency(startTimestamp, Date.now()), + base: req.base, + quote: req.quote, + amount: req.amount ? req.amount : '0', + gasPrice: gasPrice, + gasPriceToken: ethereumish.nativeTokenSymbol, + gasLimit: synfuturesish.gasLimit, + gasCost: gasCostInEthString(gasPrice, synfuturesish.gasLimit), + nonce: tx.nonce, + txHash: tx.hash, + }; +} + +export function getFullTokenFromSymbol( + ethereumish: Ethereumish, + synfuturesish: SynFuturesish, + tokenSymbol: string, +): Tokenish { + const tokenInfo: TokenInfo | undefined = + ethereumish.getTokenBySymbol(tokenSymbol); + let fullToken: Tokenish | undefined; + if (tokenInfo) { + fullToken = synfuturesish.getTokenByAddress(tokenInfo.address); + } + if (!fullToken) + throw new HttpException( + 500, + TOKEN_NOT_SUPPORTED_ERROR_MESSAGE + tokenSymbol, + TOKEN_NOT_SUPPORTED_ERROR_CODE, + ); + return fullToken; +} + +export async function estimateGas( + ethereumish: Ethereumish, + synfuturesish: SynFuturesish, +): Promise { + const gasPrice: number = ethereumish.gasPrice; + const gasLimit: number = synfuturesish.gasLimit; + return { + network: ethereumish.chain, + timestamp: Date.now(), + gasPrice, + gasPriceToken: ethereumish.nativeTokenSymbol, + gasLimit, + gasCost: gasCostInEthString(gasPrice, gasLimit), + }; +} + +export async function getAccountValue( + ethereumish: Ethereumish, + synfuturesish: SynFuturesish, +): Promise { + const startTimestamp: number = Date.now(); + let value; + try { + value = await synfuturesish.getAccountValue(); + } catch (e) { + throw new HttpException( + 500, + UNKNOWN_ERROR_MESSAGE, + UNKNOWN_ERROR_ERROR_CODE, + ); + } + + return { + network: ethereumish.chain, + timestamp: startTimestamp, + latency: latency(startTimestamp, Date.now()), + balance: value.toString(), + }; +} diff --git a/src/connectors/synfutures/synfutures.ts b/src/connectors/synfutures/synfutures.ts new file mode 100644 index 0000000000..035de8b656 --- /dev/null +++ b/src/connectors/synfutures/synfutures.ts @@ -0,0 +1,410 @@ +import { + InitializationError, + SERVICE_UNITIALIZED_ERROR_CODE, + SERVICE_UNITIALIZED_ERROR_MESSAGE, +} from '../../services/error-handler'; +import { isFractionString } from '../../services/validators'; +import { SynFuturesConfig } from './synfutures.config'; +import { + SynFuturesV3, + PERP_EXPIRY, + Status as AMMStatus, + InstrumentCondition, + Side, + encodeTradeParam, + NULL_DDL, +} from '@synfutures/oyster-sdk'; +import { Token } from '@uniswap/sdk'; +import { Big } from 'big.js'; +import { Transaction, Wallet, ethers } from 'ethers'; +import { percentRegexp } from '../../services/config-manager-v2'; +import { Ethereum } from '../../chains/ethereum/ethereum'; +import { SynFuturesish } from '../../services/common-interfaces'; +import { getAddress } from 'ethers/lib/utils'; +import { PerpPosition } from '../perp/perp'; + +function toTickerSymbol(symbol: string, expiry: number) { + let suffix: string; + + if (expiry === PERP_EXPIRY) { + suffix = 'PERP'; + } else { + const date = new Date(expiry * 1000); + suffix = + (date.getMonth() + 1).toString().padStart(2, '0') + + date.getDate().toString().padStart(2, '0'); + } + + return symbol + '-' + suffix; +} + +function fromTickerSymbol(tickerSymbol: string) { + const index = tickerSymbol.lastIndexOf('-'); + + if (index === -1) { + throw new Error('invalid ticker symbol: ' + tickerSymbol); + } + + const symbol = tickerSymbol.substring(0, index); + const expiry = tickerSymbol.substring(index + 1); + + if (expiry === 'PERP') { + return { symbol, expiry: PERP_EXPIRY }; + } + + const month = Number(expiry.substring(0, 2)); + const date = Number(expiry.substring(2)); + + const expDate = new Date(); + + expDate.setMonth(month - 1); + expDate.setDate(date); + expDate.setHours(16); + expDate.setMinutes(0); + expDate.setSeconds(0); + expDate.setMilliseconds(0); + + if (expDate.getTime() < Date.now()) { + expDate.setFullYear(expDate.getFullYear() + 1); + } + + return { symbol, expiry: Math.floor(expDate.getTime() / 1000) }; +} + +function formatSlippage(slippage: number) { + return Math.floor(slippage * 10000); +} + +export class SynFutures implements SynFuturesish { + private static _instances: { [name: string]: SynFutures }; + private ethereum: Ethereum; + private _synfutures: SynFuturesV3; + private _chain: string; + private chainId; + private tokenList: Record = {}; + private _ready: boolean = false; + public gasLimit = 1500000; + + private constructor(chain: string, network: string) { + this._chain = chain; + this.ethereum = Ethereum.getInstance(network); + this.chainId = this.ethereum.chainId; + this._synfutures = SynFuturesV3.getInstance(network); + this._synfutures.setProvider(this.ethereum.provider); + } + + public get synfutures(): SynFuturesV3 { + return this._synfutures; + } + + public static getInstance(chain: string, network: string): SynFutures { + if (SynFutures._instances === undefined) { + SynFutures._instances = {}; + } + + if (!(chain + network in SynFutures._instances)) { + SynFutures._instances[chain + network] = new SynFutures(chain, network); + } + + return SynFutures._instances[chain + network]; + } + + /** + * Given a token's address, return the connector's native representation of + * the token. + * + * @param address Token address + */ + public getTokenByAddress(address: string): Token { + return this.tokenList[getAddress(address)]; + } + + public async init() { + if (this._chain == 'ethereum' && !this.ethereum.ready()) + throw new InitializationError( + SERVICE_UNITIALIZED_ERROR_MESSAGE('ETH'), + SERVICE_UNITIALIZED_ERROR_CODE, + ); + for (const token of this.ethereum.storedTokenList) { + this.tokenList[token.address] = new Token( + this.chainId, + token.address, + token.decimals, + token.symbol, + token.name, + ); + } + await this._synfutures.init(); + this._ready = true; + } + + public ready(): boolean { + return this._ready; + } + + /** + * Gets the allowed slippage percent from the optional parameter or the value + * in the configuration. + * + * @param allowedSlippageStr (Optional) should be of the form '1/10'. + */ + public getAllowedSlippage(allowedSlippageStr?: string): number { + let allowedSlippage; + if (allowedSlippageStr != null && isFractionString(allowedSlippageStr)) { + allowedSlippage = allowedSlippageStr; + } else allowedSlippage = SynFuturesConfig.config.allowedSlippage; + const nd = allowedSlippage.match(percentRegexp); + if (nd) return Number(nd[1]) / Number(nd[2]); + throw new Error( + 'Encountered a malformed percent string in the config for ALLOWED_SLIPPAGE.', + ); + } + + /** + * @returns a list of available marker pairs. + */ + availablePairs(): string[] { + return Array.from(this._synfutures.instrumentMap.values()) + .map((instrument) => { + if (instrument.state.condition === InstrumentCondition.NORMAL) { + return Array.from(instrument.pairs.entries()).map( + ([expiry, pair]) => { + if ( + pair.amm.status === AMMStatus.TRADING || + pair.amm.status === AMMStatus.SETTLING + ) { + return toTickerSymbol(instrument.info.symbol, expiry); + } else { + return null; + } + }, + ); + } else { + return null; + } + }) + .flat() + .filter((p) => p !== null) as string[]; + } + + /** + * Queries for the market, index and indexTwap prices for a given market pair. + * @param tickerSymbol Market pair + */ + async prices(tickerSymbol: string): Promise<{ + markPrice: Big; + indexPrice: Big; + indexTwapPrice: Big; + }> { + void tickerSymbol; + // TODO: + return { + markPrice: new Big(0), + indexPrice: new Big(0), + indexTwapPrice: new Big(0), + }; + } + + private getPairByTickerSymbol(tickerSymbol: string) { + const { symbol, expiry } = fromTickerSymbol(tickerSymbol); + + const instrument = Array.from(this._synfutures.instrumentMap.values()).find( + (i) => i.info.symbol === symbol, + ); + + if (!instrument) { + throw new Error('unknown instrument: ' + tickerSymbol); + } + + const pair = instrument.pairs.get(expiry); + + if (!pair) { + throw new Error('unknown pair: ' + tickerSymbol); + } + + return pair; + } + + /** + * Used to know if a market is active/tradable. + * @param tickerSymbol Market pair + * @returns true | false + */ + async isMarketActive(tickerSymbol: string): Promise { + const pair = this.getPairByTickerSymbol(tickerSymbol); + + return ( + pair.rootInstrument.state.condition === InstrumentCondition.NORMAL && + (pair.amm.status === AMMStatus.TRADING || + pair.amm.status === AMMStatus.SETTLING) + ); + } + + /** + * Gets available Position. + * @param tickerSymbol An optional parameter to get specific position. + * @returns Return all Positions or specific position. + */ + async getPositions( + address: string, + tickerSymbol: string, + ): Promise { + // const pair = this.getPairByTickerSymbol(tickerSymbol); + + // const account = await this.synfutures.updatePairLevelAccount( + // address, + // pair.rootInstrument.info.addr, + // pair.amm.expiry, + // ); + + // return account.position; + + void address; + void tickerSymbol; + + return undefined; + } + + /** + * Given the necessary parameters, open a position. + * @param isLong Will create a long position if true, else a short pos will be created. + * @param tickerSymbol the market to create position on. + * @param amount the amount for the position to be opened. + * @returns An ethers transaction object. + */ + async openPosition( + wallet: Wallet, + isLong: boolean, + tickerSymbol: string, + amount: string, + nonce?: number, + allowedSlippage?: string, + ): Promise { + const side = isLong ? Side.LONG : Side.SHORT; + + const baseSize = ethers.BigNumber.from(amount); + + const pair = this.getPairByTickerSymbol(tickerSymbol); + + const slippage = formatSlippage(this.getAllowedSlippage(allowedSlippage)); + + const account = await this.synfutures.updatePairLevelAccount( + wallet.address, + pair.rootInstrument.info.addr, + pair.amm.expiry, + ); + + const { quotation, quoteAmount } = await this.synfutures.inquireByBase( + pair, + side, + baseSize, + ); + + const { tradePrice } = this.synfutures.simulateTrade( + account, + quotation, + side, + baseSize, + quoteAmount, + undefined, + slippage, + ); + + const limitTick = this.synfutures.getLimitTick(tradePrice, slippage, side); + + const instrument = this.synfutures.getInstrumentContract( + pair.rootInstrument.info.addr, + wallet, + ); + + return instrument.trade( + encodeTradeParam( + pair.amm.expiry, + baseSize.mul(side === Side.LONG ? 1 : -1), + quoteAmount, + limitTick, + NULL_DDL, // TODO: set deadline + ), + { + nonce, + }, + ); + } + + /** + * Closes an open position on the specified market. + * @param tickerSymbol The market on which we want to close position. + * @returns An ethers transaction object. + */ + async closePosition( + wallet: Wallet, + tickerSymbol: string, + nonce?: number, + allowedSlippage?: string, + ): Promise { + const pair = this.getPairByTickerSymbol(tickerSymbol); + + const account = await this.synfutures.updatePairLevelAccount( + wallet.address, + pair.rootInstrument.info.addr, + pair.amm.expiry, + ); + + const position = account.position; + + if (position.size.eq(0)) { + throw new Error('unknown position'); + } + + const side = position.size.gt(0) ? Side.SHORT : Side.LONG; + + const baseSize = position.size.abs(); + + const slippage = formatSlippage(this.getAllowedSlippage(allowedSlippage)); + + const { quotation } = await this.synfutures.inquireByBase( + pair, + side, + baseSize, + ); + + const { tradePrice } = this.synfutures.simulateTrade( + account, + quotation, + side, + baseSize, + undefined, + undefined, + slippage, + ); + + const limitTick = this.synfutures.getLimitTick(tradePrice, slippage, side); + + const instrument = this.synfutures.getInstrumentContract( + pair.rootInstrument.info.addr, + wallet, + ); + + return instrument.trade( + encodeTradeParam( + pair.amm.expiry, + baseSize.mul(side === Side.LONG ? 1 : -1), + ethers.BigNumber.from(0), + limitTick, + NULL_DDL, // TODO: set deadline + ), + { + nonce, + }, + ); + } + + /** + * Function for getting account value + * @returns account value + */ + async getAccountValue(): Promise { + // TODO + return new Big(0); + } +} diff --git a/src/services/common-interfaces.ts b/src/services/common-interfaces.ts index 464b06e29d..204dbdbd21 100644 --- a/src/services/common-interfaces.ts +++ b/src/services/common-interfaces.ts @@ -655,6 +655,90 @@ export interface Perpish { ): Promise; } +export interface SynFuturesish { + gasLimit: number; + + init(): Promise; + + ready(): boolean; + + balances?(req: BalanceRequest): Promise>; + + /** + * Given a token's address, return the connector's native representation of + * the token. + * + * @param address Token address + */ + getTokenByAddress(address: string): Tokenish; + + /** + * Function for retrieving token list. + * @returns a list of available marker pairs. + */ + availablePairs(): string[]; + + /** + * Give a market, queries for market, index and indexTwap prices. + * @param tickerSymbol Market pair + */ + prices(tickerSymbol: string): Promise<{ + markPrice: Big; + indexPrice: Big; + indexTwapPrice: Big; + }>; + + /** + * Used to know if a market is active/tradable. + * @param tickerSymbol Market pair + * @returns true | false + */ + isMarketActive(tickerSymbol: string): Promise; + + /** + * Gets available Positions/Position. + * @param tickerSymbol An optional parameter to get specific position. + * @returns Return all Positions or specific position. + */ + getPositions( + address: string, + tickerSymbol: string, + ): Promise; + + /** + * Attempts to return balance of a connected acct + */ + getAccountValue(): Promise; + + /** + * Given the necessary parameters, open a position. + * @param isLong Will create a long position if true, else a short pos will be created. + * @param tickerSymbol the market to create position on. + * @param amount the min amount for the position to be opened. + * @returns An ethers transaction object. + */ + openPosition( + wallet: Wallet, + isLong: boolean, + tickerSymbol: string, + amount: string, + nonce?: number, + allowedSlippage?: string, + ): Promise; + + /** + * Closes an open position on the specified market. + * @param tickerSymbol The market on which we want to close position. + * @returns An ethers transaction object. + */ + closePosition( + wallet: Wallet, + tickerSymbol: string, + nonce?: number, + allowedSlippage?: string, + ): Promise; +} + export interface BasicChainMethods { getSpender(reqSpender: string): string; gasPrice: number; diff --git a/src/templates/ethereum.yml b/src/templates/ethereum.yml index 03469ccbbc..291dbf5af8 100644 --- a/src/templates/ethereum.yml +++ b/src/templates/ethereum.yml @@ -39,6 +39,13 @@ networks: tokenListType: FILE tokenListSource: /home/gateway/conf/lists/erc20_tokens_goerli.json nativeCurrencySymbol: ETH + blast: + chainID: 81457 + nodeURL: https://rpc.blast.io + tokenListType: FILE + tokenListSource: /home/gateway/conf/lists/blast_tokens_mainnet.json + nativeCurrencySymbol: ETH + gasPriceRefreshInterval: 60 # if you use the gas assumptions below, your wallet needs >0.1 ETH balance for gas gasLimitTransaction: 3000000 diff --git a/src/templates/lists/blast_tokens_mainnet.json b/src/templates/lists/blast_tokens_mainnet.json new file mode 100644 index 0000000000..5844946e01 --- /dev/null +++ b/src/templates/lists/blast_tokens_mainnet.json @@ -0,0 +1,16 @@ +{ + "name":"CoinGecko", + "logoURI":"https://www.coingecko.com/assets/thumbnail-007177f3eca19695592f0b8b0eabbdae282b54154e1be912285c9034ea6cbaf2.png", + "keywords":[ + "defi" + ], + "timestamp":"2023-06-10T15:06:37.596+00:00", + "tokens":[ + ], + "version":{ + "major":40, + "minor":0, + "patch":17 + } + } + \ No newline at end of file diff --git a/src/templates/synfutures.yml b/src/templates/synfutures.yml new file mode 100644 index 0000000000..1b4811ee04 --- /dev/null +++ b/src/templates/synfutures.yml @@ -0,0 +1,6 @@ +# how much price slippage tp allow +allowedSlippage: '2/100' + +# how long a transaction is valid in seconds. After time passes transactio will +# fail and gas will still be sent. +ttl: 600 \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index be94faef31..c6b27320b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1362,6 +1362,21 @@ enabled "2.0.x" kuler "^2.0.0" +"@derivation-tech/web3-core@1.0.30": + version "1.0.30" + resolved "https://registry.yarnpkg.com/@derivation-tech/web3-core/-/web3-core-1.0.30.tgz#cf86e667a96b6f6bf3116144ca4e1fe998898d29" + integrity sha512-P2GclHJefYM5uRb/sjKOg9aX8vFrLfuv1t+q5Vo7Alw+sL4zELJlTfPIy4pRL0k0f+hAYsG6Xv/HJENHWovyrg== + dependencies: + "@eth-optimism/sdk" "^3.1.5" + async-retry "^1.3.3" + chalk "4.1.2" + dotenv "^14.3.0" + ethers "5.7.2" + gas-price-oracle "0.5.1" + moment "2.29.1" + node-cache "5.1.2" + node-fetch "^2.6.1" + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -1399,6 +1414,75 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== +"@eth-optimism/contracts-bedrock@0.17.2": + version "0.17.2" + resolved "https://registry.yarnpkg.com/@eth-optimism/contracts-bedrock/-/contracts-bedrock-0.17.2.tgz#501ae26c7fe4ef4edf6420c384f76677e85f62ae" + integrity sha512-YVwPHpBZgFwFX9qY8+iToVAAH7mSnVIVmih+YfHhqjAhlLvLZfYjvj+hRNgcB9eRyl1SOOB0jevp4JOOV1v2BA== + +"@eth-optimism/contracts@0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@eth-optimism/contracts/-/contracts-0.6.0.tgz#15ae76222a9b4d958a550cafb1960923af613a31" + integrity sha512-vQ04wfG9kMf1Fwy3FEMqH2QZbgS0gldKhcBeBUPfO8zu68L61VI97UDXmsMQXzTsEAxK8HnokW3/gosl4/NW3w== + dependencies: + "@eth-optimism/core-utils" "0.12.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + +"@eth-optimism/core-utils@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@eth-optimism/core-utils/-/core-utils-0.12.0.tgz#6337e4599a34de23f8eceb20378de2a2de82b0ea" + integrity sha512-qW+7LZYCz7i8dRa7SRlUKIo1VBU8lvN0HeXCxJR+z+xtMzMQpPds20XJNCMclszxYQHkXY00fOT6GvFw9ZL6nw== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/contracts" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/providers" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bufio "^1.0.7" + chai "^4.3.4" + +"@eth-optimism/core-utils@0.13.2": + version "0.13.2" + resolved "https://registry.yarnpkg.com/@eth-optimism/core-utils/-/core-utils-0.13.2.tgz#c0187c3abf6d86dad039edf04ff81299253214fe" + integrity sha512-u7TOKm1RxH1V5zw7dHmfy91bOuEAZU68LT/9vJPkuWEjaTl+BgvPDRDTurjzclHzN0GbWdcpOqPZg4ftjkJGaw== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/contracts" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/web" "^5.7.1" + chai "^4.3.10" + ethers "^5.7.2" + node-fetch "^2.6.7" + +"@eth-optimism/sdk@^3.1.5": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@eth-optimism/sdk/-/sdk-3.3.0.tgz#c7a3af4e7b5ab541be0c4e2acd02f2bf84bfb2e5" + integrity sha512-0Wt9roWe3itdzp08caCQLoFqhmT47ssquKAzBe7yXI6saVL+f2vWl6VgEaq0aYe2FsWvD9L0tSAJHLx1FiquNw== + dependencies: + "@eth-optimism/contracts" "0.6.0" + "@eth-optimism/contracts-bedrock" "0.17.2" + "@eth-optimism/core-utils" "0.13.2" + lodash "^4.17.21" + merkletreejs "^0.3.11" + rlp "^2.2.7" + semver "^7.6.0" + "@ethereumjs/common@2.5.0": version "2.5.0" resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" @@ -1434,137 +1518,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:../../.cache/yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-69c508e5-26ba-4529-9a65-48b79b80a282-1715743312357/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/bignumber" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-69c508e5-26ba-4529-9a65-48b79b80a282-1715743312357/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-69c508e5-26ba-4529-9a65-48b79b80a282-1715743312357/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-69c508e5-26ba-4529-9a65-48b79b80a282-1715743312357/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/hash" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-69c508e5-26ba-4529-9a65-48b79b80a282-1715743312357/node_modules/@ethersproject-xdc/hash" + "@ethersproject-xdc/keccak256" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-69c508e5-26ba-4529-9a65-48b79b80a282-1715743312357/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-69c508e5-26ba-4529-9a65-48b79b80a282-1715743312357/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-69c508e5-26ba-4529-9a65-48b79b80a282-1715743312357/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/strings" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abi-5.7.0-69c508e5-26ba-4529-9a65-48b79b80a282-1715743312357/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-b93bcfaf-f221-4ac3-b3f8-0a0a9142e79d-1715743312357/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-b93bcfaf-f221-4ac3-b3f8-0a0a9142e79d-1715743312357/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-b93bcfaf-f221-4ac3-b3f8-0a0a9142e79d-1715743312357/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/networks" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-b93bcfaf-f221-4ac3-b3f8-0a0a9142e79d-1715743312357/node_modules/@ethersproject-xdc/networks" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-b93bcfaf-f221-4ac3-b3f8-0a0a9142e79d-1715743312357/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/transactions" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-b93bcfaf-f221-4ac3-b3f8-0a0a9142e79d-1715743312357/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/web" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-provider-5.7.0-b93bcfaf-f221-4ac3-b3f8-0a0a9142e79d-1715743312357/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-aa0f2a26-a21b-427a-9f88-96ab919e9b20-1715743312358/node_modules/@ethersproject-xdc/abstract-provider" + "@ethersproject-xdc/bignumber" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-aa0f2a26-a21b-427a-9f88-96ab919e9b20-1715743312358/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-aa0f2a26-a21b-427a-9f88-96ab919e9b20-1715743312358/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-aa0f2a26-a21b-427a-9f88-96ab919e9b20-1715743312358/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-abstract-signer-5.7.0-aa0f2a26-a21b-427a-9f88-96ab919e9b20-1715743312358/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-address-5.7.0-141afd3f-4817-417d-b3b2-031df63dde03-1715743312359/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-address-5.7.0-141afd3f-4817-417d-b3b2-031df63dde03-1715743312359/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/keccak256" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-address-5.7.0-141afd3f-4817-417d-b3b2-031df63dde03-1715743312359/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-address-5.7.0-141afd3f-4817-417d-b3b2-031df63dde03-1715743312359/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/rlp" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-address-5.7.0-141afd3f-4817-417d-b3b2-031df63dde03-1715743312359/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-base64-5.7.0-f15071c0-2733-4fe3-85b4-834bfb3668f3-1715743312357/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-basex-5.7.0-6dbade40-9fc2-4d90-99ea-f00382578596-1715743312361/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-basex-5.7.0-6dbade40-9fc2-4d90-99ea-f00382578596-1715743312361/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-bignumber-5.7.0-5db175c6-e023-4100-9034-cb8c2b88a13d-1715743312358/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-bignumber-5.7.0-5db175c6-e023-4100-9034-cb8c2b88a13d-1715743312358/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-bytes-5.7.0-a351a6a3-13ae-440c-ac22-39a54e35d164-1715743312358/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-constants-5.7.0-0ff34be7-c71e-48f8-bfc8-c0a0d0e0a275-1715743312358/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-a1e8e85d-5f78-49f1-b923-0d1893c9ef1f-1715743312359/node_modules/@ethersproject-xdc/abi" + "@ethersproject-xdc/abstract-provider" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-a1e8e85d-5f78-49f1-b923-0d1893c9ef1f-1715743312359/node_modules/@ethersproject-xdc/abstract-provider" + "@ethersproject-xdc/abstract-signer" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-a1e8e85d-5f78-49f1-b923-0d1893c9ef1f-1715743312359/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-a1e8e85d-5f78-49f1-b923-0d1893c9ef1f-1715743312359/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/bignumber" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-a1e8e85d-5f78-49f1-b923-0d1893c9ef1f-1715743312359/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-a1e8e85d-5f78-49f1-b923-0d1893c9ef1f-1715743312359/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-a1e8e85d-5f78-49f1-b923-0d1893c9ef1f-1715743312359/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-a1e8e85d-5f78-49f1-b923-0d1893c9ef1f-1715743312359/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-a1e8e85d-5f78-49f1-b923-0d1893c9ef1f-1715743312359/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/transactions" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-contracts-5.6.0-a1e8e85d-5f78-49f1-b923-0d1893c9ef1f-1715743312359/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-13b15deb-cd50-44d6-8731-5c325cff7119-1715743312360/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-13b15deb-cd50-44d6-8731-5c325cff7119-1715743312360/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/base64" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-13b15deb-cd50-44d6-8731-5c325cff7119-1715743312360/node_modules/@ethersproject-xdc/base64" + "@ethersproject-xdc/bignumber" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-13b15deb-cd50-44d6-8731-5c325cff7119-1715743312360/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-13b15deb-cd50-44d6-8731-5c325cff7119-1715743312360/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/keccak256" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-13b15deb-cd50-44d6-8731-5c325cff7119-1715743312360/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-13b15deb-cd50-44d6-8731-5c325cff7119-1715743312360/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-13b15deb-cd50-44d6-8731-5c325cff7119-1715743312360/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/strings" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hash-5.7.0-13b15deb-cd50-44d6-8731-5c325cff7119-1715743312360/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/basex" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/basex" + "@ethersproject-xdc/bignumber" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/pbkdf2" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/pbkdf2" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/sha2" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/sha2" + "@ethersproject-xdc/signing-key" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/signing-key" + "@ethersproject-xdc/strings" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/transactions" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/wordlists" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-hdnode-5.7.0-e7e8e217-819f-42b0-9e67-275ec44edd8e-1715743312361/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/hdnode" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/node_modules/@ethersproject-xdc/hdnode" + "@ethersproject-xdc/keccak256" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/pbkdf2" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/node_modules/@ethersproject-xdc/pbkdf2" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/random" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/node_modules/@ethersproject-xdc/random" + "@ethersproject-xdc/strings" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/transactions" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-json-wallets-5.6.0-56290683-3a89-46af-8e20-6e874c31a1a3-1715743312359/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-keccak256-5.7.0-93b87323-8110-4409-87f6-c296bb57cce8-1715743312361/node_modules/@ethersproject-xdc/bytes" js-sha3 "0.8.0" "@ethersproject-xdc/logger@file:vendor/@ethersproject-xdc/logger": @@ -1573,67 +1657,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:../../.cache/yarn/v6/npm-@ethersproject-xdc-networks-5.7.1-34629a66-e297-48ca-ba4d-497463e25d93-1715743312362/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-pbkdf2-5.7.0-c2202613-643a-4985-a45b-e77877dc7b5a-1715743312361/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/sha2" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-pbkdf2-5.7.0-c2202613-643a-4985-a45b-e77877dc7b5a-1715743312361/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-properties-5.7.0-5d3428c9-ae07-43fd-9bf9-2225b633eddd-1715743312362/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/abstract-provider" + "@ethersproject-xdc/abstract-signer" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/basex" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/basex" + "@ethersproject-xdc/bignumber" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/hash" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/hash" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/networks" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/networks" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/random" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/random" + "@ethersproject-xdc/rlp" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/rlp" + "@ethersproject-xdc/sha2" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/sha2" + "@ethersproject-xdc/strings" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/transactions" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/web" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-providers-5.6.2-f95fbd5e-9b78-4d79-8a2f-93f9bbaab754-1715743312370/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-random-5.7.0-faa842c4-1724-4afc-9d99-81bee6d08b3d-1715743312363/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-random-5.7.0-faa842c4-1724-4afc-9d99-81bee6d08b3d-1715743312363/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-rlp-5.7.0-7e902017-98ea-4234-aec0-be845b7ed12b-1715743312364/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-rlp-5.7.0-7e902017-98ea-4234-aec0-be845b7ed12b-1715743312364/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-sha2-5.7.0-16d0432f-61b3-4de4-b777-bb1fddfcfe67-1715743312362/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-sha2-5.7.0-16d0432f-61b3-4de4-b777-bb1fddfcfe67-1715743312362/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-signing-key-5.7.0-ab4919d8-58bd-40fb-a9a0-7713c73a561d-1715743312363/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-signing-key-5.7.0-ab4919d8-58bd-40fb-a9a0-7713c73a561d-1715743312363/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-signing-key-5.7.0-ab4919d8-58bd-40fb-a9a0-7713c73a561d-1715743312363/node_modules/@ethersproject-xdc/properties" bn.js "^5.2.1" elliptic "6.5.4" hash.js "1.1.7" @@ -1641,76 +1725,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:../../.cache/yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-de423b40-16d6-4553-8925-2d7058a6d35e-1715743312362/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-de423b40-16d6-4553-8925-2d7058a6d35e-1715743312362/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/keccak256" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-de423b40-16d6-4553-8925-2d7058a6d35e-1715743312362/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-de423b40-16d6-4553-8925-2d7058a6d35e-1715743312362/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/sha2" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-de423b40-16d6-4553-8925-2d7058a6d35e-1715743312362/node_modules/@ethersproject-xdc/sha2" + "@ethersproject-xdc/strings" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-solidity-5.6.0-de423b40-16d6-4553-8925-2d7058a6d35e-1715743312362/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-strings-5.7.0-2b8f885e-ac96-435b-9e33-acf7bba938e1-1715743312363/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-strings-5.7.0-2b8f885e-ac96-435b-9e33-acf7bba938e1-1715743312363/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-strings-5.7.0-2b8f885e-ac96-435b-9e33-acf7bba938e1-1715743312363/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-d02e167a-8d1a-4391-80ee-372d43bd4807-1715743312364/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/bignumber" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-d02e167a-8d1a-4391-80ee-372d43bd4807-1715743312364/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-d02e167a-8d1a-4391-80ee-372d43bd4807-1715743312364/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-d02e167a-8d1a-4391-80ee-372d43bd4807-1715743312364/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/keccak256" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-d02e167a-8d1a-4391-80ee-372d43bd4807-1715743312364/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-d02e167a-8d1a-4391-80ee-372d43bd4807-1715743312364/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-d02e167a-8d1a-4391-80ee-372d43bd4807-1715743312364/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/rlp" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-d02e167a-8d1a-4391-80ee-372d43bd4807-1715743312364/node_modules/@ethersproject-xdc/rlp" + "@ethersproject-xdc/signing-key" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-transactions-5.7.0-d02e167a-8d1a-4391-80ee-372d43bd4807-1715743312364/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-units-5.6.0-8edd603d-07eb-4d3d-8bc8-56c55b49922f-1715743312363/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/constants" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-units-5.6.0-8edd603d-07eb-4d3d-8bc8-56c55b49922f-1715743312363/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-units-5.6.0-8edd603d-07eb-4d3d-8bc8-56c55b49922f-1715743312363/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/abstract-provider" + "@ethersproject-xdc/abstract-signer" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/bignumber" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/hash" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/hash" + "@ethersproject-xdc/hdnode" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/hdnode" + "@ethersproject-xdc/json-wallets" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/json-wallets" + "@ethersproject-xdc/keccak256" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/random" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/random" + "@ethersproject-xdc/signing-key" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/signing-key" + "@ethersproject-xdc/transactions" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/wordlists" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wallet-5.6.0-436b59e4-0065-4e56-a5c4-83a8e1e2f28d-1715743312370/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-web-5.7.1-4ed71e88-5759-4bba-a600-c99e0b604e86-1715743312365/node_modules/@ethersproject-xdc/base64" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-web-5.7.1-4ed71e88-5759-4bba-a600-c99e0b604e86-1715743312365/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-web-5.7.1-4ed71e88-5759-4bba-a600-c99e0b604e86-1715743312365/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-web-5.7.1-4ed71e88-5759-4bba-a600-c99e0b604e86-1715743312365/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/strings" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-web-5.7.1-4ed71e88-5759-4bba-a600-c99e0b604e86-1715743312365/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:../../.cache/yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-8dbacf2d-8504-4ee8-8955-f8ba10244cd1-1715743312363/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/hash" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-8dbacf2d-8504-4ee8-8955-f8ba10244cd1-1715743312363/node_modules/@ethersproject-xdc/hash" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-8dbacf2d-8504-4ee8-8955-f8ba10244cd1-1715743312363/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-8dbacf2d-8504-4ee8-8955-f8ba10244cd1-1715743312363/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/strings" "file:../../.cache/yarn/v6/npm-@ethersproject-xdc-wordlists-5.7.0-8dbacf2d-8504-4ee8-8955-f8ba10244cd1-1715743312363/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 +2029,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.4", "@ethersproject/providers@^5.4.0", "@ethersproject/providers@^5.7.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== @@ -2074,7 +2158,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0", "@ethersproject/web@^5.7.1": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== @@ -3889,6 +3973,14 @@ tiny-warning "^1.0.3" toformat "^2.0.0" +"@synfutures/oyster-sdk@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@synfutures/oyster-sdk/-/oyster-sdk-0.1.6.tgz#1434b1df71f9955be61edb61ea06be279657aab3" + integrity sha512-Nkk6iIY3vnGTZZc/IQZ8cA1nRL89DiUY80Cidf3GzGU7UojzxgpfLwxwKxZ4gybMy1uaZd5yW/in+/1Vj1Q8kQ== + dependencies: + "@derivation-tech/web3-core" "1.0.30" + lodash "^4.17.21" + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -5701,6 +5793,11 @@ assert@^2.0.0: object.assign "^4.1.4" util "^0.12.5" +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -5718,7 +5815,7 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async-retry@1.3.3, async-retry@^1.2.1, async-retry@^1.3.1: +async-retry@1.3.3, async-retry@^1.2.1, async-retry@^1.3.1, async-retry@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== @@ -6353,6 +6450,11 @@ buffer-from@1.1.2, buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer-reverse@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-reverse/-/buffer-reverse-1.0.1.tgz#49283c8efa6f901bc01fa3304d06027971ae2f60" + integrity sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg== + buffer-to-arraybuffer@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" @@ -6401,6 +6503,11 @@ bufferutil@^4.0.1: dependencies: node-gyp-build "^4.3.0" +bufio@^1.0.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bufio/-/bufio-1.2.1.tgz#8d4ab3ddfcd5faa90f996f922f9397d41cbaf2de" + integrity sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA== + bunyan-blackhole@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/bunyan-blackhole/-/bunyan-blackhole-1.1.1.tgz#b9208586dc0b4e47f4f713215b1bddd65e4f6257" @@ -6555,6 +6662,19 @@ chai-bignumber@^3.0.0: resolved "https://registry.yarnpkg.com/chai-bignumber/-/chai-bignumber-3.1.0.tgz#e196456c760df21f0e124f6df922289ea15a7e4c" integrity sha512-omxEc80jAU+pZwRmoWr3aEzeLad4JW3iBhLRQlgISvghBdIxrMT7mVAGsDz4WSyCkKowENshH2j9OABAhld7QQ== +chai@^4.3.10, chai@^4.3.4: + version "4.4.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.0.8" + chain-registry@^1.15.0: version "1.19.0" resolved "https://registry.yarnpkg.com/chain-registry/-/chain-registry-1.19.0.tgz#6d2d56b56efebee0d15ced8f9bd8329a099ce04d" @@ -6563,6 +6683,14 @@ chain-registry@^1.15.0: "@babel/runtime" "^7.21.0" "@chain-registry/types" "^0.16.0" +chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -6572,14 +6700,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - change-case@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.2.tgz#fd48746cce02f03f0a672577d1d3a8dc2eceb037" @@ -6609,6 +6729,13 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + child_process@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/child_process/-/child_process-1.0.2.tgz#b1f7e7fc73d25e7fd1d455adc94e143830182b5a" @@ -7133,6 +7260,11 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" +crypto-js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== + cssfilter@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" @@ -7300,6 +7432,13 @@ dedent@^1.0.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== +deep-eql@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== + dependencies: + type-detect "^4.0.0" + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -7496,7 +7635,7 @@ dotenv@10.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== -dotenv@^14.2.0: +dotenv@^14.2.0, dotenv@^14.3.0: version "14.3.2" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-14.3.2.tgz#7c30b3a5f777c79a3429cb2db358eef6751e8369" integrity sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ== @@ -8186,36 +8325,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:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/abi" + "@ethersproject-xdc/abstract-provider" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/abstract-provider" + "@ethersproject-xdc/abstract-signer" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/abstract-signer" + "@ethersproject-xdc/address" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/address" + "@ethersproject-xdc/base64" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/base64" + "@ethersproject-xdc/basex" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/basex" + "@ethersproject-xdc/bignumber" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/bignumber" + "@ethersproject-xdc/bytes" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/bytes" + "@ethersproject-xdc/constants" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/constants" + "@ethersproject-xdc/contracts" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/contracts" + "@ethersproject-xdc/hash" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/hash" + "@ethersproject-xdc/hdnode" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/hdnode" + "@ethersproject-xdc/json-wallets" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/json-wallets" + "@ethersproject-xdc/keccak256" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/keccak256" + "@ethersproject-xdc/logger" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/logger" + "@ethersproject-xdc/networks" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/networks" + "@ethersproject-xdc/pbkdf2" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/pbkdf2" + "@ethersproject-xdc/properties" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/properties" + "@ethersproject-xdc/providers" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/providers" + "@ethersproject-xdc/random" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/random" + "@ethersproject-xdc/rlp" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/rlp" + "@ethersproject-xdc/sha2" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/sha2" + "@ethersproject-xdc/signing-key" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/signing-key" + "@ethersproject-xdc/solidity" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/solidity" + "@ethersproject-xdc/strings" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/strings" + "@ethersproject-xdc/transactions" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/transactions" + "@ethersproject-xdc/units" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/units" + "@ethersproject-xdc/wallet" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/wallet" + "@ethersproject-xdc/web" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/web" + "@ethersproject-xdc/wordlists" "file:../../.cache/yarn/v6/npm-ethers-xdc-5.7.2-e2bc539a-b3c0-43ac-b116-09860f3d9255-1715743312352/node_modules/@ethersproject-xdc/wordlists" ethers@4.0.0-beta.3: version "4.0.0-beta.3" @@ -8939,6 +9078,15 @@ ganache@7.7.7: bufferutil "4.0.5" utf-8-validate "5.0.7" +gas-price-oracle@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/gas-price-oracle/-/gas-price-oracle-0.5.1.tgz#f9a8a758014a584ee1a242edb3b34eb6e2cd94a7" + integrity sha512-Jb1w127I0wSRKQNqNUE61bQInbJzbyaapAlFjRgtYOTVHOJ+3VZuKPt0dyz5Mo40Ax5I7Z+rB6vQmTIQHLnt9Q== + dependencies: + axios "^0.21.2" + bignumber.js "^9.0.0" + node-cache "^5.1.2" + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -8954,6 +9102,11 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" @@ -11283,6 +11436,13 @@ loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" + lower-case-first@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" @@ -11515,6 +11675,17 @@ merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +merkletreejs@^0.3.11: + version "0.3.11" + resolved "https://registry.yarnpkg.com/merkletreejs/-/merkletreejs-0.3.11.tgz#e0de05c3ca1fd368de05a12cb8efb954ef6fc04f" + integrity sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ== + dependencies: + bignumber.js "^9.0.1" + buffer-reverse "^1.0.1" + crypto-js "^4.2.0" + treeify "^1.1.0" + web3-utils "^1.3.4" + methods@^1.1.2, methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -11822,6 +11993,11 @@ module-error@^1.0.1, module-error@^1.0.2: resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== +moment@2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + moment@^2.19.3, moment@^2.29.1: version "2.29.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" @@ -12615,6 +12791,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" @@ -13578,7 +13759,7 @@ ripple-keypairs@^1.1.5: hash.js "^1.0.3" ripple-address-codec "^4.3.1" -rlp@^2.2.3, rlp@^2.2.4: +rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.7: version "2.2.7" resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== @@ -13824,6 +14005,11 @@ semver@^7.5.3, semver@^7.5.4: dependencies: lru-cache "^6.0.0" +semver@^7.6.0: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + semver@~7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" @@ -14778,6 +14964,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +treeify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" + integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== + triple-beam@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" @@ -14946,7 +15137,7 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@4.0.8: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -15831,7 +16022,7 @@ web3-shh@1.8.2: web3-core-subscriptions "1.8.2" web3-net "1.8.2" -web3-utils@1.2.1, web3-utils@1.7.3, web3-utils@1.8.2, web3-utils@^1.2.1: +web3-utils@1.2.1, web3-utils@1.7.3, web3-utils@1.8.2, web3-utils@^1.2.1, web3-utils@^1.3.4: version "1.7.3" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.3.tgz#b214d05f124530d8694ad364509ac454d05f207c" integrity sha512-g6nQgvb/bUpVUIxJE+ezVN+rYwYmlFyMvMIRSuqpi1dk6ApDD00YNArrk7sPcZnjvxOJ76813Xs2vIN2rgh4lg== From 8afa926772ad4754927c55ca81842126584f2815 Mon Sep 17 00:00:00 2001 From: samlior Date: Mon, 20 May 2024 11:38:01 +0800 Subject: [PATCH 02/10] Add synfutures connector --- src/amm/amm.controllers.ts | 89 +++++++++++++++++++++++------- src/services/connection-manager.ts | 37 ++++++++----- 2 files changed, 91 insertions(+), 35 deletions(-) diff --git a/src/amm/amm.controllers.ts b/src/amm/amm.controllers.ts index 54ba964bb7..9a64537c0e 100644 --- a/src/amm/amm.controllers.ts +++ b/src/amm/amm.controllers.ts @@ -51,13 +51,22 @@ import { } from '../connectors/tinyman/tinyman.controllers'; import { getPriceData as perpPriceData, - createTakerOrder, + createTakerOrder as perpCreateTakerOrder, estimateGas as perpEstimateGas, - getPosition, - getAvailablePairs, - checkMarketStatus, - getAccountValue, + getPosition as perpGetPosition, + getAvailablePairs as perpGetAvailablePairs, + checkMarketStatus as perpCheckMarketStatus, + getAccountValue as perpGetAccountValue, } from '../connectors/perp/perp.controllers'; +import { + getPriceData as synfuturesPriceData, + createTakerOrder as synfuturesCreateTakerOrder, + estimateGas as synfuturesEstimateGas, + getPosition as synfuturesGetPosition, + getAvailablePairs as synfuturesGetAvailablePairs, + checkMarketStatus as synfuturesCheckMarketStatus, + getAccountValue as synfuturesGetAccountValue, +} from '../connectors/synfutures/synfutures.controllers'; import { price as plentyPrice, trade as plentyTrade, @@ -78,6 +87,7 @@ import { NetworkSelectionRequest, Perpish, RefAMMish, + SynFuturesish, Tezosish, Uniswapish, UniswapLPish, @@ -88,6 +98,7 @@ import { Plenty } from '../connectors/plenty/plenty'; import { QuipuSwap } from '../connectors/quipuswap/quipuswap'; import { Osmosis } from '../chains/osmosis/osmosis'; import { Carbonamm } from '../connectors/carbon/carbonAMM'; +import { Perp } from '../connectors/perp/perp'; export async function price(req: PriceRequest): Promise { const chain = await getInitializedChain< @@ -266,12 +277,17 @@ export async function perpMarketPrices( req: PriceRequest ): Promise { const chain = await getInitializedChain(req.chain, req.network); - const connector: Perpish = await getConnector( + const connector: Perpish | SynFuturesish = await getConnector( req.chain, req.network, req.connector ); - return perpPriceData(chain, connector, req); + + if (connector instanceof Perp) { + return perpPriceData(chain, connector, req); + } else { + return synfuturesPriceData(chain, connector, req); + } } export async function perpOrder( @@ -279,70 +295,103 @@ export async function perpOrder( isOpen: boolean ): Promise { const chain = await getInitializedChain(req.chain, req.network); - const connector: Perpish = await getConnector( + const connector: Perpish | SynFuturesish = await getConnector( req.chain, req.network, req.connector, req.address ); - return createTakerOrder(chain, connector, req, isOpen); + + if (connector instanceof Perp) { + return perpCreateTakerOrder(chain, connector, req, isOpen); + } else { + return synfuturesCreateTakerOrder(chain, connector, req, isOpen); + } } export async function perpPosition( req: PerpPositionRequest ): Promise { const chain = await getInitializedChain(req.chain, req.network); - const connector: Perpish = await getConnector( + const connector: Perpish | SynFuturesish = await getConnector( req.chain, req.network, req.connector, req.address ); - return getPosition(chain, connector, req); + + if (connector instanceof Perp) { + return perpGetPosition(chain, connector, req); + } else { + return synfuturesGetPosition(chain, connector, req); + } } export async function perpBalance( req: PerpBalanceRequest ): Promise { const chain = await getInitializedChain(req.chain, req.network); - const connector: Perpish = ( - await getConnector(req.chain, req.network, req.connector, req.address) + const connector: Perpish | SynFuturesish = await getConnector( + req.chain, + req.network, + req.connector, + req.address ); - return getAccountValue(chain, connector); + + if (connector instanceof Perp) { + return perpGetAccountValue(chain, connector); + } else { + return synfuturesGetAccountValue(chain, connector); + } } export async function perpPairs( req: NetworkSelectionRequest ): Promise { const chain = await getInitializedChain(req.chain, req.network); - const connector: Perpish = await getConnector( + const connector: Perpish | SynFuturesish = await getConnector( req.chain, req.network, req.connector ); - return getAvailablePairs(chain, connector); + + if (connector instanceof Perp) { + return perpGetAvailablePairs(chain, connector); + } else { + return synfuturesGetAvailablePairs(chain, connector); + } } export async function getMarketStatus( req: PerpMarketRequest ): Promise { const chain = await getInitializedChain(req.chain, req.network); - const connector: Perpish = await getConnector( + const connector: Perpish | SynFuturesish = await getConnector( req.chain, req.network, req.connector ); - return checkMarketStatus(chain, connector, req); + + if (connector instanceof Perp) { + return perpCheckMarketStatus(chain, connector, req); + } else { + return synfuturesCheckMarketStatus(chain, connector, req); + } } export async function estimatePerpGas( req: NetworkSelectionRequest ): Promise { const chain = await getInitializedChain(req.chain, req.network); - const connector: Perpish = await getConnector( + const connector: Perpish | SynFuturesish = await getConnector( req.chain, req.network, req.connector ); - return perpEstimateGas(chain, connector); + + if (connector instanceof Perp) { + return perpEstimateGas(chain, connector); + } else { + return synfuturesEstimateGas(chain, connector); + } } diff --git a/src/services/connection-manager.ts b/src/services/connection-manager.ts index e2bd6d4866..eb4cdb5fda 100644 --- a/src/services/connection-manager.ts +++ b/src/services/connection-manager.ts @@ -12,6 +12,7 @@ import { MadMeerkat } from '../connectors/mad_meerkat/mad_meerkat'; import { Openocean } from '../connectors/openocean/openocean'; import { Pangolin } from '../connectors/pangolin/pangolin'; import { Perp } from '../connectors/perp/perp'; +import { SynFutures } from '../connectors/synfutures/synfutures'; import { Quickswap } from '../connectors/quickswap/quickswap'; import { PancakeSwap } from '../connectors/pancakeswap/pancakeswap'; import { Uniswap } from '../connectors/uniswap/uniswap'; @@ -22,6 +23,7 @@ import { Ethereumish, Nearish, Perpish, + SynFuturesish, RefAMMish, Uniswapish, UniswapLPish, @@ -151,6 +153,7 @@ export type ConnectorUnion = | Uniswapish | UniswapLPish | Perpish + | SynFuturesish | RefAMMish | CLOBish | Tinyman @@ -166,21 +169,23 @@ export type Connector = T extends Uniswapish ? UniswapLPish : T extends Perpish ? Perpish - : T extends RefAMMish - ? RefAMMish - : T extends CLOBish - ? CLOBish - : T extends Tinyman - ? Tinyman - : T extends Plenty - ? Plenty - : T extends XRPLish - ? XRPLCLOB - : T extends KujiraCLOB - ? KujiraCLOB - : T extends QuipuSwap - ? QuipuSwap - : never; + : T extends SynFuturesish + ? SynFuturesish + : T extends RefAMMish + ? RefAMMish + : T extends CLOBish + ? CLOBish + : T extends Tinyman + ? Tinyman + : T extends Plenty + ? Plenty + : T extends XRPLish + ? XRPLCLOB + : T extends KujiraCLOB + ? KujiraCLOB + : T extends QuipuSwap + ? QuipuSwap + : never; export async function getConnector( chain: string, @@ -204,6 +209,8 @@ export async function getConnector( connectorInstance = UniswapLP.getInstance(chain, network); } else if (chain === 'ethereum' && connector === 'perp') { connectorInstance = Perp.getInstance(chain, network, address); + } else if (chain === 'ethereum' && connector === 'synfutures') { + connectorInstance = SynFutures.getInstance(chain, network); } else if (chain === 'avalanche' && connector === 'pangolin') { connectorInstance = Pangolin.getInstance(chain, network); } else if (connector === 'openocean') { From 37a3ebce0e7d15389543fa621b6ada30bbaaf8ef Mon Sep 17 00:00:00 2001 From: samlior Date: Mon, 20 May 2024 11:41:19 +0800 Subject: [PATCH 03/10] Add synfutures to connector list --- src/connectors/connectors.routes.ts | 7 +++++++ src/connectors/synfutures/synfutures.config.ts | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/connectors/connectors.routes.ts b/src/connectors/connectors.routes.ts index d9ac0b63f9..5fc996416f 100644 --- a/src/connectors/connectors.routes.ts +++ b/src/connectors/connectors.routes.ts @@ -6,6 +6,7 @@ import { MadMeerkatConfig } from './mad_meerkat/mad_meerkat.config'; import { OpenoceanConfig } from './openocean/openocean.config'; import { PangolinConfig } from './pangolin/pangolin.config'; import { PerpConfig } from './perp/perp.config'; +import { SynFuturesConfig } from './synfutures/synfutures.config'; import { QuickswapConfig } from './quickswap/quickswap.config'; import { SushiswapConfig } from './sushiswap/sushiswap.config'; import { TraderjoeConfig } from './traderjoe/traderjoe.config'; @@ -72,6 +73,12 @@ export namespace ConnectorsRoutes { chain_type: PerpConfig.config.chainType, available_networks: PerpConfig.config.availableNetworks, }, + { + name: 'synfutures', + trading_type: SynFuturesConfig.config.tradingTypes, + chain_type: SynFuturesConfig.config.chainType, + available_networks: SynFuturesConfig.config.availableNetworks, + }, { name: 'sushiswap', trading_type: SushiswapConfig.config.tradingTypes, diff --git a/src/connectors/synfutures/synfutures.config.ts b/src/connectors/synfutures/synfutures.config.ts index 7d8c8074dc..a9894f3df9 100644 --- a/src/connectors/synfutures/synfutures.config.ts +++ b/src/connectors/synfutures/synfutures.config.ts @@ -4,7 +4,7 @@ export namespace SynFuturesConfig { export interface NetworkConfig { allowedSlippage: string; ttl: number; - tradingTypes: (type: string) => Array; + tradingTypes: Array; chainType: string; availableNetworks: Array; } @@ -12,7 +12,7 @@ export namespace SynFuturesConfig { export const config: NetworkConfig = { allowedSlippage: ConfigManagerV2.getInstance().get(`synfutures.allowedSlippage`), ttl: ConfigManagerV2.getInstance().get(`synfutures.versions.ttl`), - tradingTypes: () => ['AMM_Perpetual'], + tradingTypes: ['AMM_Perpetual'], chainType: 'EVM', availableNetworks: [{ chain: 'ethereum', networks: ['blast'] }], }; From 4f1250e6f29d429cd854c4feb7570db952c35372 Mon Sep 17 00:00:00 2001 From: samlior Date: Mon, 20 May 2024 12:48:55 +0800 Subject: [PATCH 04/10] Add synfutures templates --- src/services/schema/synfutures-schema.json | 10 ++++++++++ src/templates/root.yml | 4 ++++ 2 files changed, 14 insertions(+) create mode 100644 src/services/schema/synfutures-schema.json diff --git a/src/services/schema/synfutures-schema.json b/src/services/schema/synfutures-schema.json new file mode 100644 index 0000000000..1ca7edad77 --- /dev/null +++ b/src/services/schema/synfutures-schema.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "allowedSlippage": { "type": "string" }, + "ttl": { "type": "integer" } + }, + "additionalProperties": false, + "required": ["allowedSlippage", "ttl"] +} diff --git a/src/templates/root.yml b/src/templates/root.yml index 748ec134b2..c277614029 100644 --- a/src/templates/root.yml +++ b/src/templates/root.yml @@ -44,6 +44,10 @@ configurations: configurationPath: perp.yml schemaPath: perp-schema.json + $namespace synfutures: + configurationPath: synfutures.yml + schemaPath: synfutures-schema.json + $namespace sushiswap: configurationPath: sushiswap.yml schemaPath: sushiswap-schema.json From e70ddcc78e1efe6dad9d41b3126f782805aa6ee6 Mon Sep 17 00:00:00 2001 From: samlior Date: Mon, 20 May 2024 13:38:25 +0800 Subject: [PATCH 05/10] Add blast token list --- src/templates/lists/blast_tokens_mainnet.json | 404 +++++++++++++++++- 1 file changed, 389 insertions(+), 15 deletions(-) diff --git a/src/templates/lists/blast_tokens_mainnet.json b/src/templates/lists/blast_tokens_mainnet.json index 5844946e01..b530ee02cb 100644 --- a/src/templates/lists/blast_tokens_mainnet.json +++ b/src/templates/lists/blast_tokens_mainnet.json @@ -1,16 +1,390 @@ { - "name":"CoinGecko", - "logoURI":"https://www.coingecko.com/assets/thumbnail-007177f3eca19695592f0b8b0eabbdae282b54154e1be912285c9034ea6cbaf2.png", - "keywords":[ - "defi" - ], - "timestamp":"2023-06-10T15:06:37.596+00:00", - "tokens":[ - ], - "version":{ - "major":40, - "minor":0, - "patch":17 - } - } - \ No newline at end of file + "name": "Blast Token List", + "tokens": [ + { + "chainId": 81457, + "address": "0x129ed667bf8c065fe5f66c9b44b7cb0126d85cc3", + "name": "AI Waifu", + "symbol": "$wai", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x0f8881fc1fca1f5151fa4205d55922ffa15e707a", + "name": "Blast Disperse", + "symbol": "disp", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x95b9b27f2eba05433b4a64257f0342285d89a479", + "name": "Avolend", + "symbol": "avo", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xb9dfcd4cf589bb8090569cb52fac1b88dbe4981f", + "name": "Bag", + "symbol": "bag", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x60701c37cd9fed322dde7c17dc1e356f09a35b88", + "name": "BlastDEX", + "symbol": "bd", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x764933fbad8f5d04ccd088602096655c2ed9879f", + "name": "Any Inu", + "symbol": "ai", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xd1fedd031b92f50a50c05e2c45af1adb4cea82f4", + "name": "BladeSwap", + "symbol": "blade", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x9bd75c164daf830733ac2ea71a0258f95aac7c57", + "name": "BlastCat", + "symbol": "bcat", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x336d814f94581bd70898da35feb266163bfc8199", + "name": "Blastnet", + "symbol": "bnet", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xd55edfc79c0d14084260d16f38bda75e28abfb6a", + "name": "BlastOff", + "symbol": "off", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xb582dc28968c725d2868130752afa0c13ebf9b1a", + "name": "Blast Pepe", + "symbol": "bepe", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x33c62f70b14c438075be70defb77626b1ac3b503", + "name": "BlastUP", + "symbol": "blp", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xc96a98c8c95a0f64a60d9925220d54d28bfe2441", + "name": "ByteonBlast", + "symbol": "byte", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x233b23de890a8c21f6198d03425a2b986ae05536", + "name": "Core Markets", + "symbol": "core", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xd43d8adac6a4c7d9aeece7c3151fca8f23752cf8", + "name": "AndyBlast", + "symbol": "andy", + "decimals": 9 + }, + { + "chainId": 81457, + "address": "0x3580ac35bed2981d6bdd671a5982c2467d301241", + "name": "Ankr Network", + "symbol": "ankr", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x049e6a52e2c9b7814c8178908f3630726c134c92", + "name": "Ankr Staked ETH", + "symbol": "ankreth", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x34050224f9ea1859790b7cbbbe2264f1204771a6", + "name": "Blast Inu", + "symbol": "binu", + "decimals": 9 + }, + { + "chainId": 81457, + "address": "0x67fa2887914fa3729e9eed7630294fe124f417a0", + "name": "Crypto Valleys YIELD Token", + "symbol": "yield", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x47c337bd5b9344a6f3d6f58c474d9d8cd419d8ca", + "name": "DackieSwap", + "symbol": "dackie", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x1ba52a63adf7e9425ddd85b378dda25e3818e596", + "name": "Duckie The Meme Token", + "symbol": "$duckie", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x7135b32e9903bdb4e19a8b1d22fc2038964b8451", + "name": "EarlyFans", + "symbol": "early", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x818a92bc81aad0053d72ba753fb5bc3d0c5c0923", + "name": "Juice Finance", + "symbol": "juice", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x76da31d7c9cbeae102aff34d3398bc450c8374c1", + "name": "Magic Internet Money (Blast)", + "symbol": "mim", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x491e6de43b55c8eae702edc263e32339da42f58c", + "name": "Eesee", + "symbol": "ese", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x15d24de366f69b835be19f7cf9447e770315dd80", + "name": "KAP Games", + "symbol": "kap", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xdb13df2ea134e7df2208d74b96db063837db5b5c", + "name": "LAMB by OPNX", + "symbol": "lamb", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x963eec23618bbc8e1766661d5f263f18094ae4d5", + "name": "CYBRO", + "symbol": "cybro", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x9a50953716ba58e3d6719ea5c437452ac578705f", + "name": "MetaStreet V2 mwstETH-WPUNKS:20", + "symbol": "punketh-20", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xa4c7aa67189ec5623121c6c94ec757dfed932d4b", + "name": "Mia", + "symbol": "mia", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x837fe561e9c5dfa73f607fda679295dbc2be5e40", + "name": "MonoSwap USD", + "symbol": "musd", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x9fe9991daf6b9a5d79280f48cbb6827d46de2ea4", + "name": "HyperBlast", + "symbol": "hype", + "decimals": 9 + }, + { + "chainId": 81457, + "address": "0x75483179a38d21f3608e71bbede5ec1314f0067d", + "name": "NeptuneX", + "symbol": "nptx", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x000000daa580e54635a043d2773f2c698593836a", + "name": "Oh no", + "symbol": "ohno", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x9e20461bc2c4c980f62f1b279d71734207a6a356", + "name": "OmniCat", + "symbol": "omni", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x42e12d42b3d6c4a74a88a61063856756ea2db357", + "name": "Orbit Protocol", + "symbol": "orbit", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x7217124c626f0b7077be91df939195c9a8184ecc", + "name": "Finger Blast", + "symbol": "finger", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xba0dda8762c24da9487f5fa026a9b64b695a07ea", + "name": "OX Coin", + "symbol": "ox", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x5ffd9ebd27f2fcab044c0f0a26a45cb62fa29c06", + "name": "PacMoon", + "symbol": "pac", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x2416092f143378750bb29b79ed961ab195cceea5", + "name": "Renzo Restaked ETH", + "symbol": "ezeth", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x4fee793d435c6d2c10c135983bb9d6d4fc7b9bbd", + "name": "Overnight.fi USD+", + "symbol": "usd+", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xe070b87c4d88826d4cd1b85babe186fdb14cd321", + "name": "Cyberblast Token", + "symbol": "cbr", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x4300000000000000000000000000000000000003", + "name": "USDB", + "symbol": "usdb", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x870a8f46b62b8bdeda4c02530c1750cddf2ed32e", + "name": "Overnight.fi USDC+", + "symbol": "usdc+", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x87e154e86fb691ab8a27116e93ed8d54e2b8c18c", + "name": "Titan Trading Token", + "symbol": "tes", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x4300000000000000000000000000000000000004", + "name": "WETH", + "symbol": "weth", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xd07379a755a8f11b57610154861d694b2a0f615a", + "name": "SwapBlast Finance Token", + "symbol": "sbf", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x9b0ae1c1fbe7006697356030d45ab3e17cbcf70f", + "name": "XDX", + "symbol": "xdx", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x20fe91f17ec9080e3cac2d688b4ecb48c5ac3a9c", + "name": "YES Money", + "symbol": "yes", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x68449870eea84453044bd430822827e21fd8f101", + "name": "Zaibot", + "symbol": "zai", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x236bb48fcf61ce996b2c8c196a9258c176100c7d", + "name": "RabbitX", + "symbol": "rbx", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x216a5a1135a9dab49fa9ad865e0f22fe22b5630a", + "name": "Pump", + "symbol": "pump", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xd582879453337bd149ae53ec2092b0af5281d1d7", + "name": "Sekai Glory", + "symbol": "glory", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xfd4d19f9fbb9f730c3c88a21755832bd2455144e", + "name": "Super Sushi Samurai", + "symbol": "sss", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x5a7a183b6b44dc4ec2e3d2ef43f98c5152b1d76d", + "name": "Inception Restaked ETH", + "symbol": "ineth", + "decimals": 18 + } + ] +} \ No newline at end of file From e9dc61261167d4d846f71b6693d819e5748f0055 Mon Sep 17 00:00:00 2001 From: samlior Date: Mon, 20 May 2024 15:34:59 +0800 Subject: [PATCH 06/10] Improve synfutures connector --- src/amm/amm.controllers.ts | 2 +- src/amm/amm.requests.ts | 1 + .../synfutures/synfutures.controllers.ts | 13 +- src/connectors/synfutures/synfutures.ts | 212 +++++++++--------- src/services/common-interfaces.ts | 8 +- 5 files changed, 125 insertions(+), 111 deletions(-) diff --git a/src/amm/amm.controllers.ts b/src/amm/amm.controllers.ts index 9a64537c0e..25e98027e6 100644 --- a/src/amm/amm.controllers.ts +++ b/src/amm/amm.controllers.ts @@ -341,7 +341,7 @@ export async function perpBalance( if (connector instanceof Perp) { return perpGetAccountValue(chain, connector); } else { - return synfuturesGetAccountValue(chain, connector); + return synfuturesGetAccountValue(chain, connector, req); } } diff --git a/src/amm/amm.requests.ts b/src/amm/amm.requests.ts index a02f0470c9..f4f4a773f7 100644 --- a/src/amm/amm.requests.ts +++ b/src/amm/amm.requests.ts @@ -209,6 +209,7 @@ export interface PerpMarketResponse { export interface PerpBalanceRequest extends NetworkSelectionRequest { address: string; + quote?: string; } export interface PerpBalanceResponse { diff --git a/src/connectors/synfutures/synfutures.controllers.ts b/src/connectors/synfutures/synfutures.controllers.ts index 38ac229691..e2391021ca 100644 --- a/src/connectors/synfutures/synfutures.controllers.ts +++ b/src/connectors/synfutures/synfutures.controllers.ts @@ -30,6 +30,7 @@ import { PerpMarketRequest, PerpMarketResponse, PerpBalanceResponse, + PerpBalanceRequest, } from '../../amm/amm.requests'; import { PerpPosition } from '../perp/perp'; @@ -236,11 +237,21 @@ export async function estimateGas( export async function getAccountValue( ethereumish: Ethereumish, synfuturesish: SynFuturesish, + req: PerpBalanceRequest, ): Promise { + if (!req.quote) { + throw new HttpException( + 500, + INCOMPLETE_REQUEST_PARAM, + INCOMPLETE_REQUEST_PARAM_CODE, + ); + } + const startTimestamp: number = Date.now(); + let value; try { - value = await synfuturesish.getAccountValue(); + value = await synfuturesish.getAccountValue(req.address, req.quote); } catch (e) { throw new HttpException( 500, diff --git a/src/connectors/synfutures/synfutures.ts b/src/connectors/synfutures/synfutures.ts index 035de8b656..1fc87c09e8 100644 --- a/src/connectors/synfutures/synfutures.ts +++ b/src/connectors/synfutures/synfutures.ts @@ -7,68 +7,29 @@ import { isFractionString } from '../../services/validators'; import { SynFuturesConfig } from './synfutures.config'; import { SynFuturesV3, - PERP_EXPIRY, Status as AMMStatus, InstrumentCondition, Side, encodeTradeParam, NULL_DDL, + PairModel, } from '@synfutures/oyster-sdk'; import { Token } from '@uniswap/sdk'; -import { Big } from 'big.js'; import { Transaction, Wallet, ethers } from 'ethers'; import { percentRegexp } from '../../services/config-manager-v2'; import { Ethereum } from '../../chains/ethereum/ethereum'; import { SynFuturesish } from '../../services/common-interfaces'; -import { getAddress } from 'ethers/lib/utils'; +import { getAddress, isAddress } from 'ethers/lib/utils'; import { PerpPosition } from '../perp/perp'; -function toTickerSymbol(symbol: string, expiry: number) { - let suffix: string; - - if (expiry === PERP_EXPIRY) { - suffix = 'PERP'; - } else { - const date = new Date(expiry * 1000); - suffix = - (date.getMonth() + 1).toString().padStart(2, '0') + - date.getDate().toString().padStart(2, '0'); - } - - return symbol + '-' + suffix; -} - -function fromTickerSymbol(tickerSymbol: string) { - const index = tickerSymbol.lastIndexOf('-'); +function toTickerSymbol(symbol: string) { + const index = symbol.lastIndexOf('-'); if (index === -1) { - throw new Error('invalid ticker symbol: ' + tickerSymbol); - } - - const symbol = tickerSymbol.substring(0, index); - const expiry = tickerSymbol.substring(index + 1); - - if (expiry === 'PERP') { - return { symbol, expiry: PERP_EXPIRY }; + throw new Error('invalid symbol: ' + symbol); } - const month = Number(expiry.substring(0, 2)); - const date = Number(expiry.substring(2)); - - const expDate = new Date(); - - expDate.setMonth(month - 1); - expDate.setDate(date); - expDate.setHours(16); - expDate.setMinutes(0); - expDate.setSeconds(0); - expDate.setMilliseconds(0); - - if (expDate.getTime() < Date.now()) { - expDate.setFullYear(expDate.getFullYear() + 1); - } - - return { symbol, expiry: Math.floor(expDate.getTime() / 1000) }; + return symbol.substring(0, index - 1); } function formatSlippage(slippage: number) { @@ -82,6 +43,7 @@ export class SynFutures implements SynFuturesish { private _chain: string; private chainId; private tokenList: Record = {}; + private tokenSymbol: Record = {}; private _ready: boolean = false; public gasLimit = 1500000; @@ -126,13 +88,15 @@ export class SynFutures implements SynFuturesish { SERVICE_UNITIALIZED_ERROR_CODE, ); for (const token of this.ethereum.storedTokenList) { - this.tokenList[token.address] = new Token( + const _token = new Token( this.chainId, token.address, token.decimals, token.symbol, token.name, ); + this.tokenList[token.address] = _token; + this.tokenSymbol[token.symbol] = _token; } await this._synfutures.init(); this._ready = true; @@ -160,31 +124,35 @@ export class SynFutures implements SynFuturesish { ); } - /** - * @returns a list of available marker pairs. - */ - availablePairs(): string[] { - return Array.from(this._synfutures.instrumentMap.values()) - .map((instrument) => { - if (instrument.state.condition === InstrumentCondition.NORMAL) { - return Array.from(instrument.pairs.entries()).map( - ([expiry, pair]) => { + private get pairs() { + return Object.fromEntries( + Array.from(this._synfutures.instrumentMap.values()) + .map((instrument) => { + if (instrument.state.condition === InstrumentCondition.NORMAL) { + return Array.from(instrument.pairs.values()).map((pair) => { if ( pair.amm.status === AMMStatus.TRADING || pair.amm.status === AMMStatus.SETTLING ) { - return toTickerSymbol(instrument.info.symbol, expiry); + return [toTickerSymbol(instrument.info.symbol), pair]; } else { return null; } - }, - ); - } else { - return null; - } - }) - .flat() - .filter((p) => p !== null) as string[]; + }); + } else { + return null; + } + }) + .flat() + .filter((p) => p !== null) as [string, PairModel][], + ); + } + + /** + * @returns a list of available marker pairs. + */ + availablePairs(): string[] { + return Array.from(Object.keys(this.pairs)); } /** @@ -192,37 +160,32 @@ export class SynFutures implements SynFuturesish { * @param tickerSymbol Market pair */ async prices(tickerSymbol: string): Promise<{ - markPrice: Big; - indexPrice: Big; - indexTwapPrice: Big; + markPrice: ethers.BigNumber; + indexPrice: ethers.BigNumber; + indexTwapPrice: ethers.BigNumber; }> { - void tickerSymbol; - // TODO: - return { - markPrice: new Big(0), - indexPrice: new Big(0), - indexTwapPrice: new Big(0), - }; - } + let pair = this.pairs[tickerSymbol]; - private getPairByTickerSymbol(tickerSymbol: string) { - const { symbol, expiry } = fromTickerSymbol(tickerSymbol); - - const instrument = Array.from(this._synfutures.instrumentMap.values()).find( - (i) => i.info.symbol === symbol, - ); - - if (!instrument) { - throw new Error('unknown instrument: ' + tickerSymbol); + if (!pair) { + throw new Error('invalid ticker symbol: ' + tickerSymbol); } - const pair = instrument.pairs.get(expiry); + // update instrument cache + const [instrument] = await this.synfutures.updateInstrument([ + { + instrument: pair.rootInstrument.info.addr, + expiries: [pair.amm.expiry], + }, + ]); - if (!pair) { - throw new Error('unknown pair: ' + tickerSymbol); - } + pair = instrument.pairs.get(pair.amm.expiry)!; - return pair; + return { + markPrice: pair.markPrice, + indexPrice: ethers.BigNumber.from(0), + indexTwapPrice: ethers.BigNumber.from(0), + // fairPrice: pair.fairPriceWad, + }; } /** @@ -231,9 +194,10 @@ export class SynFutures implements SynFuturesish { * @returns true | false */ async isMarketActive(tickerSymbol: string): Promise { - const pair = this.getPairByTickerSymbol(tickerSymbol); + const pair = this.pairs[tickerSymbol]; return ( + pair && pair.rootInstrument.state.condition === InstrumentCondition.NORMAL && (pair.amm.status === AMMStatus.TRADING || pair.amm.status === AMMStatus.SETTLING) @@ -242,6 +206,7 @@ export class SynFutures implements SynFuturesish { /** * Gets available Position. + * @param address User address. * @param tickerSymbol An optional parameter to get specific position. * @returns Return all Positions or specific position. */ @@ -249,27 +214,39 @@ export class SynFutures implements SynFuturesish { address: string, tickerSymbol: string, ): Promise { - // const pair = this.getPairByTickerSymbol(tickerSymbol); + const pair = this.pairs[tickerSymbol]; - // const account = await this.synfutures.updatePairLevelAccount( - // address, - // pair.rootInstrument.info.addr, - // pair.amm.expiry, - // ); + if (!pair) { + throw new Error('invalid ticker symbol: ' + tickerSymbol); + } - // return account.position; + const account = await this.synfutures.updatePairLevelAccount( + address, + pair.rootInstrument.info.addr, + pair.amm.expiry, + ); - void address; - void tickerSymbol; + const position = account.position; - return undefined; + return { + positionAmt: position.size.abs().toString(), + positionSide: position.size.gt(0) ? 'LONG' : 'SHORT', + unrealizedProfit: position.unrealizedPnl.toString(), + leverage: ethers.utils.formatUnits(position.leverageWad), + entryPrice: position.entryNotional.div(position.size.abs()).toString(), + tickerSymbol, + pendingFundingPayment: position.unrealizedFundingFee.toString(), + }; } /** * Given the necessary parameters, open a position. + * @param wallet User wallet. * @param isLong Will create a long position if true, else a short pos will be created. * @param tickerSymbol the market to create position on. * @param amount the amount for the position to be opened. + * @param nonce EVM nonce. + * @param allowedSlippage Slippage. * @returns An ethers transaction object. */ async openPosition( @@ -284,7 +261,11 @@ export class SynFutures implements SynFuturesish { const baseSize = ethers.BigNumber.from(amount); - const pair = this.getPairByTickerSymbol(tickerSymbol); + const pair = this.pairs[tickerSymbol]; + + if (!pair) { + throw new Error('invalid ticker symbol: ' + tickerSymbol); + } const slippage = formatSlippage(this.getAllowedSlippage(allowedSlippage)); @@ -333,7 +314,10 @@ export class SynFutures implements SynFuturesish { /** * Closes an open position on the specified market. + * @param wallet User wallet. * @param tickerSymbol The market on which we want to close position. + * @param nonce EVM nonce. + * @param allowedSlippage Slippage. * @returns An ethers transaction object. */ async closePosition( @@ -342,7 +326,11 @@ export class SynFutures implements SynFuturesish { nonce?: number, allowedSlippage?: string, ): Promise { - const pair = this.getPairByTickerSymbol(tickerSymbol); + const pair = this.pairs[tickerSymbol]; + + if (!pair) { + throw new Error('invalid ticker symbol: ' + tickerSymbol); + } const account = await this.synfutures.updatePairLevelAccount( wallet.address, @@ -401,10 +389,24 @@ export class SynFutures implements SynFuturesish { /** * Function for getting account value + * @param address User address. + * @param quote Quote token symbol or address * @returns account value */ - async getAccountValue(): Promise { - // TODO - return new Big(0); + async getAccountValue( + address: string, + quote: string, + ): Promise { + if (isAddress(quote)) { + return this.synfutures.contracts.gate.reserveOf(quote, address); + } else { + const token = this.tokenSymbol[quote]; + + if (!token) { + throw new Error('unknown quote: ' + quote); + } + + return this.synfutures.contracts.gate.reserveOf(token.address, address); + } } } diff --git a/src/services/common-interfaces.ts b/src/services/common-interfaces.ts index 204dbdbd21..914f90e2da 100644 --- a/src/services/common-interfaces.ts +++ b/src/services/common-interfaces.ts @@ -683,9 +683,9 @@ export interface SynFuturesish { * @param tickerSymbol Market pair */ prices(tickerSymbol: string): Promise<{ - markPrice: Big; - indexPrice: Big; - indexTwapPrice: Big; + markPrice: BigNumber; + indexPrice: BigNumber; + indexTwapPrice: BigNumber; }>; /** @@ -708,7 +708,7 @@ export interface SynFuturesish { /** * Attempts to return balance of a connected acct */ - getAccountValue(): Promise; + getAccountValue(adderess: string, quote: string): Promise; /** * Given the necessary parameters, open a position. From e1a7481cd9cbfa5f4c307eb338fa006862b19a2e Mon Sep 17 00:00:00 2001 From: samlior Date: Mon, 20 May 2024 16:06:39 +0800 Subject: [PATCH 07/10] Add fair price for synfutures --- src/amm/amm.requests.ts | 1 + src/connectors/synfutures/synfutures.controllers.ts | 1 + src/connectors/synfutures/synfutures.ts | 12 +++++++++--- src/services/common-interfaces.ts | 1 + 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/amm/amm.requests.ts b/src/amm/amm.requests.ts index f4f4a773f7..962462877f 100644 --- a/src/amm/amm.requests.ts +++ b/src/amm/amm.requests.ts @@ -191,6 +191,7 @@ export interface PerpPricesResponse { markPrice: string; indexPrice: string; indexTwapPrice: string; + fairPrice?: string; } export interface PerpMarketRequest extends NetworkSelectionRequest { diff --git a/src/connectors/synfutures/synfutures.controllers.ts b/src/connectors/synfutures/synfutures.controllers.ts index e2391021ca..6c4c28f9d5 100644 --- a/src/connectors/synfutures/synfutures.controllers.ts +++ b/src/connectors/synfutures/synfutures.controllers.ts @@ -77,6 +77,7 @@ export async function getPriceData( markPrice: prices.markPrice.toString(), indexPrice: prices.indexPrice.toString(), indexTwapPrice: prices.indexTwapPrice.toString(), + fairPrice: prices.fairPrice.toString(), }; } diff --git a/src/connectors/synfutures/synfutures.ts b/src/connectors/synfutures/synfutures.ts index 1fc87c09e8..ecbeab90ae 100644 --- a/src/connectors/synfutures/synfutures.ts +++ b/src/connectors/synfutures/synfutures.ts @@ -163,6 +163,7 @@ export class SynFutures implements SynFuturesish { markPrice: ethers.BigNumber; indexPrice: ethers.BigNumber; indexTwapPrice: ethers.BigNumber; + fairPrice: ethers.BigNumber; }> { let pair = this.pairs[tickerSymbol]; @@ -182,9 +183,14 @@ export class SynFutures implements SynFuturesish { return { markPrice: pair.markPrice, - indexPrice: ethers.BigNumber.from(0), - indexTwapPrice: ethers.BigNumber.from(0), - // fairPrice: pair.fairPriceWad, + indexPrice: await this.synfutures.getRawSpotPrice({ + marketType: pair.rootInstrument.marketType, + baseSymbol: pair.rootInstrument.info.base, + quoteSymbol: pair.rootInstrument.info.quote, + }), + // NOTE: synfutures does not have indexTwapPrice, so use markPrice instead + indexTwapPrice: pair.markPrice, + fairPrice: pair.fairPriceWad, }; } diff --git a/src/services/common-interfaces.ts b/src/services/common-interfaces.ts index 914f90e2da..bb360ce6e9 100644 --- a/src/services/common-interfaces.ts +++ b/src/services/common-interfaces.ts @@ -686,6 +686,7 @@ export interface SynFuturesish { markPrice: BigNumber; indexPrice: BigNumber; indexTwapPrice: BigNumber; + fairPrice: BigNumber; }>; /** From 6f2f1ef3a5600d34fe27432b29737baed83e4369 Mon Sep 17 00:00:00 2001 From: samlior Date: Mon, 20 May 2024 16:26:58 +0800 Subject: [PATCH 08/10] Add spender for synfutures --- src/chains/ethereum/ethereum.ts | 8 ++++++++ src/chains/ethereum/ethereum.validators.ts | 15 ++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/chains/ethereum/ethereum.ts b/src/chains/ethereum/ethereum.ts index 3e73a0e1c8..b8e49f34b7 100644 --- a/src/chains/ethereum/ethereum.ts +++ b/src/chains/ethereum/ethereum.ts @@ -12,6 +12,7 @@ import { EVMController } from './evm.controllers'; import { UniswapConfig } from '../../connectors/uniswap/uniswap.config'; import { Perp } from '../../connectors/perp/perp'; +import { SynFutures } from '../../connectors/synfutures/synfutures'; import { SushiswapConfig } from '../../connectors/sushiswap/sushiswap.config'; import { OpenoceanConfig } from '../../connectors/openocean/openocean.config'; import { Curve } from '../../connectors/curve/curve'; @@ -208,6 +209,13 @@ export class Ethereum extends EthereumBase implements Ethereumish { throw Error('Perp curie not ready'); } spender = perp.perp.contracts.vault.address; + } else if (reqSpender === 'synfutures') { + const synfutures = SynFutures.getInstance(this.chainName, this._chain); + if (!synfutures.ready()) { + synfutures.init(); + throw Error('Synfutures not ready'); + } + spender = synfutures.synfutures.contracts.gate.address; } else if (reqSpender === 'openocean') { spender = OpenoceanConfig.config.routerAddress('ethereum', this._chain); } else if (reqSpender === 'curve') { diff --git a/src/chains/ethereum/ethereum.validators.ts b/src/chains/ethereum/ethereum.validators.ts index e8280547b2..f15fed1065 100644 --- a/src/chains/ethereum/ethereum.validators.ts +++ b/src/chains/ethereum/ethereum.validators.ts @@ -39,7 +39,7 @@ export const isAddress = (str: string): boolean => { export const validateAddress: Validator = mkValidator( 'address', invalidAddressError, - (val) => typeof val === 'string' && isAddress(val) + (val) => typeof val === 'string' && isAddress(val), ); // given a request, look for a key called spender that is 'uniswap' or an Ethereum address @@ -50,6 +50,7 @@ export const validateSpender: Validator = mkValidator( typeof val === 'string' && (val === 'uniswap' || val === 'perp' || + val === 'synfutures' || val === 'uniswapLP' || val === 'pangolin' || val === 'traderjoe' || @@ -64,7 +65,7 @@ export const validateSpender: Validator = mkValidator( val === 'xsswap' || val === 'curve' || val === 'carbonamm' || - isAddress(val)) + isAddress(val)), ); export const validateNonce: Validator = mkValidator( @@ -73,33 +74,33 @@ export const validateNonce: Validator = mkValidator( (val) => typeof val === 'undefined' || (typeof val === 'number' && val >= 0 && Number.isInteger(val)), - true + true, ); export const validateMaxFeePerGas: Validator = mkValidator( 'maxFeePerGas', invalidMaxFeePerGasError, (val) => typeof val === 'string' && isNaturalNumberString(val), - true + true, ); export const validateMaxPriorityFeePerGas: Validator = mkValidator( 'maxPriorityFeePerGas', invalidMaxPriorityFeePerGasError, (val) => typeof val === 'string' && isNaturalNumberString(val), - true + true, ); export const validateChain: Validator = mkValidator( 'chain', invalidChainError, - (val) => typeof val === 'string' + (val) => typeof val === 'string', ); export const validateNetwork: Validator = mkValidator( 'network', invalidNetworkError, - (val) => typeof val === 'string' + (val) => typeof val === 'string', ); // request types and corresponding validators From 954c9f57b861663d6974bf1cca8c75957f36769a Mon Sep 17 00:00:00 2001 From: samlior Date: Mon, 20 May 2024 17:38:09 +0800 Subject: [PATCH 09/10] Fix bugs --- src/amm/amm.requests.ts | 2 + .../synfutures/synfutures.controllers.ts | 4 +- src/connectors/synfutures/synfutures.ts | 28 +- src/services/common-interfaces.ts | 3 +- src/templates/lists/blast_tokens_mainnet.json | 314 +++++++++--------- 5 files changed, 186 insertions(+), 165 deletions(-) diff --git a/src/amm/amm.requests.ts b/src/amm/amm.requests.ts index 962462877f..eb954c95d1 100644 --- a/src/amm/amm.requests.ts +++ b/src/amm/amm.requests.ts @@ -230,6 +230,8 @@ export interface PerpPositionResponse extends PerpPosition { latency: number; base: string; quote: string; + balance?: string; + liquidationPrice?: string; } export interface PerpAvailablePairsResponse { diff --git a/src/connectors/synfutures/synfutures.controllers.ts b/src/connectors/synfutures/synfutures.controllers.ts index 6c4c28f9d5..facb395ca3 100644 --- a/src/connectors/synfutures/synfutures.controllers.ts +++ b/src/connectors/synfutures/synfutures.controllers.ts @@ -32,7 +32,7 @@ import { PerpBalanceResponse, PerpBalanceRequest, } from '../../amm/amm.requests'; -import { PerpPosition } from '../perp/perp'; +import { SynFuturesPosition } from './synfutures'; async function getWallet(ethereumish: Ethereumish, address: string) { let wallet: Wallet; @@ -127,7 +127,7 @@ export async function getPosition( latency: latency(startTimestamp, Date.now()), base: req.base, quote: req.quote, - ...(position as PerpPosition), + ...(position as SynFuturesPosition), }; } diff --git a/src/connectors/synfutures/synfutures.ts b/src/connectors/synfutures/synfutures.ts index ecbeab90ae..8032bd19f7 100644 --- a/src/connectors/synfutures/synfutures.ts +++ b/src/connectors/synfutures/synfutures.ts @@ -13,6 +13,7 @@ import { encodeTradeParam, NULL_DDL, PairModel, + wdiv, } from '@synfutures/oyster-sdk'; import { Token } from '@uniswap/sdk'; import { Transaction, Wallet, ethers } from 'ethers'; @@ -29,13 +30,18 @@ function toTickerSymbol(symbol: string) { throw new Error('invalid symbol: ' + symbol); } - return symbol.substring(0, index - 1); + return symbol.substring(0, index); } function formatSlippage(slippage: number) { return Math.floor(slippage * 10000); } +export interface SynFuturesPosition extends PerpPosition { + balance: string; + liquidationPrice: string; +} + export class SynFutures implements SynFuturesish { private static _instances: { [name: string]: SynFutures }; private ethereum: Ethereum; @@ -202,7 +208,7 @@ export class SynFutures implements SynFuturesish { async isMarketActive(tickerSymbol: string): Promise { const pair = this.pairs[tickerSymbol]; - return ( + return !!( pair && pair.rootInstrument.state.condition === InstrumentCondition.NORMAL && (pair.amm.status === AMMStatus.TRADING || @@ -219,7 +225,7 @@ export class SynFutures implements SynFuturesish { async getPositions( address: string, tickerSymbol: string, - ): Promise { + ): Promise { const pair = this.pairs[tickerSymbol]; if (!pair) { @@ -237,11 +243,15 @@ export class SynFutures implements SynFuturesish { return { positionAmt: position.size.abs().toString(), positionSide: position.size.gt(0) ? 'LONG' : 'SHORT', - unrealizedProfit: position.unrealizedPnl.toString(), + unrealizedProfit: position.unrealizedPnl + .sub(position.unrealizedFundingFee) + .toString(), leverage: ethers.utils.formatUnits(position.leverageWad), - entryPrice: position.entryNotional.div(position.size.abs()).toString(), + entryPrice: wdiv(position.entryNotional, position.size.abs()).toString(), tickerSymbol, pendingFundingPayment: position.unrealizedFundingFee.toString(), + balance: position.balance.toString(), + liquidationPrice: position.liquidationPrice.toString(), }; } @@ -275,6 +285,10 @@ export class SynFutures implements SynFuturesish { const slippage = formatSlippage(this.getAllowedSlippage(allowedSlippage)); + await this.synfutures.syncVaultCache(wallet.address, [ + pair.rootInstrument.info.quote.address, + ]); + const account = await this.synfutures.updatePairLevelAccount( wallet.address, pair.rootInstrument.info.addr, @@ -338,6 +352,10 @@ export class SynFutures implements SynFuturesish { throw new Error('invalid ticker symbol: ' + tickerSymbol); } + await this.synfutures.syncVaultCache(wallet.address, [ + pair.rootInstrument.info.quote.address, + ]); + const account = await this.synfutures.updatePairLevelAccount( wallet.address, pair.rootInstrument.info.addr, diff --git a/src/services/common-interfaces.ts b/src/services/common-interfaces.ts index bb360ce6e9..8aae3eb752 100644 --- a/src/services/common-interfaces.ts +++ b/src/services/common-interfaces.ts @@ -95,6 +95,7 @@ import { Fraction as XsswapFraction, } from 'xsswap-sdk'; import { PerpPosition } from '../connectors/perp/perp'; +import { SynFuturesPosition } from "../connectors/synfutures/synfutures"; import { XdcBase } from '../chains/xdc/xdc.base'; import { NearBase } from '../chains/near/near.base'; import { TezosBase } from '../chains/tezos/tezos.base'; @@ -704,7 +705,7 @@ export interface SynFuturesish { getPositions( address: string, tickerSymbol: string, - ): Promise; + ): Promise; /** * Attempts to return balance of a connected acct diff --git a/src/templates/lists/blast_tokens_mainnet.json b/src/templates/lists/blast_tokens_mainnet.json index b530ee02cb..0100eccdb5 100644 --- a/src/templates/lists/blast_tokens_mainnet.json +++ b/src/templates/lists/blast_tokens_mainnet.json @@ -4,386 +4,386 @@ { "chainId": 81457, "address": "0x129ed667bf8c065fe5f66c9b44b7cb0126d85cc3", - "name": "AI Waifu", - "symbol": "$wai", + "name": "AIWAIFU", + "symbol": "$WAI", "decimals": 18 }, { "chainId": 81457, - "address": "0x0f8881fc1fca1f5151fa4205d55922ffa15e707a", - "name": "Blast Disperse", - "symbol": "disp", + "address": "0x049e6a52e2c9b7814c8178908f3630726c134c92", + "name": "Ankr Staked ETH", + "symbol": "ankrETH", "decimals": 18 }, { "chainId": 81457, - "address": "0x95b9b27f2eba05433b4a64257f0342285d89a479", - "name": "Avolend", - "symbol": "avo", + "address": "0x60701c37cd9fed322dde7c17dc1e356f09a35b88", + "name": "BlastDEX", + "symbol": "BD", "decimals": 18 }, { "chainId": 81457, "address": "0xb9dfcd4cf589bb8090569cb52fac1b88dbe4981f", "name": "Bag", - "symbol": "bag", + "symbol": "BAG", "decimals": 18 }, { "chainId": 81457, - "address": "0x60701c37cd9fed322dde7c17dc1e356f09a35b88", - "name": "BlastDEX", - "symbol": "bd", - "decimals": 18 - }, - { - "chainId": 81457, - "address": "0x764933fbad8f5d04ccd088602096655c2ed9879f", - "name": "Any Inu", - "symbol": "ai", + "address": "0x95b9b27f2eba05433b4a64257f0342285d89a479", + "name": "AVO", + "symbol": "AVO", "decimals": 18 }, { "chainId": 81457, - "address": "0xd1fedd031b92f50a50c05e2c45af1adb4cea82f4", - "name": "BladeSwap", - "symbol": "blade", + "address": "0x3580ac35bed2981d6bdd671a5982c2467d301241", + "name": "Ankr Network", + "symbol": "ANKR", "decimals": 18 }, { "chainId": 81457, - "address": "0x9bd75c164daf830733ac2ea71a0258f95aac7c57", - "name": "BlastCat", - "symbol": "bcat", - "decimals": 18 + "address": "0x34050224f9ea1859790b7cbbbe2264f1204771a6", + "name": "Blast Inu", + "symbol": "BINU", + "decimals": 9 }, { "chainId": 81457, "address": "0x336d814f94581bd70898da35feb266163bfc8199", - "name": "Blastnet", - "symbol": "bnet", + "name": "BlastNET", + "symbol": "BNET", "decimals": 18 }, { "chainId": 81457, - "address": "0xd55edfc79c0d14084260d16f38bda75e28abfb6a", - "name": "BlastOff", - "symbol": "off", + "address": "0xd1fedd031b92f50a50c05e2c45af1adb4cea82f4", + "name": "Blade", + "symbol": "BLADE", "decimals": 18 }, { "chainId": 81457, - "address": "0xb582dc28968c725d2868130752afa0c13ebf9b1a", - "name": "Blast Pepe", - "symbol": "bepe", + "address": "0xd55edfc79c0d14084260d16f38bda75e28abfb6a", + "name": "OFF", + "symbol": "OFF", "decimals": 18 }, { "chainId": 81457, "address": "0x33c62f70b14c438075be70defb77626b1ac3b503", - "name": "BlastUP", - "symbol": "blp", + "name": "BlastUP Token", + "symbol": "BLP", "decimals": 18 }, { "chainId": 81457, - "address": "0xc96a98c8c95a0f64a60d9925220d54d28bfe2441", - "name": "ByteonBlast", - "symbol": "byte", + "address": "0x9bd75c164daf830733ac2ea71a0258f95aac7c57", + "name": "BlastCat", + "symbol": "BCat", "decimals": 18 }, { "chainId": 81457, "address": "0x233b23de890a8c21f6198d03425a2b986ae05536", "name": "Core Markets", - "symbol": "core", + "symbol": "CORE", "decimals": 18 }, { "chainId": 81457, - "address": "0xd43d8adac6a4c7d9aeece7c3151fca8f23752cf8", - "name": "AndyBlast", - "symbol": "andy", - "decimals": 9 - }, - { - "chainId": 81457, - "address": "0x3580ac35bed2981d6bdd671a5982c2467d301241", - "name": "Ankr Network", - "symbol": "ankr", + "address": "0x963eec23618bbc8e1766661d5f263f18094ae4d5", + "name": "Cybro Token", + "symbol": "CYBRO", "decimals": 18 }, { "chainId": 81457, - "address": "0x049e6a52e2c9b7814c8178908f3630726c134c92", - "name": "Ankr Staked ETH", - "symbol": "ankreth", + "address": "0xc96a98c8c95a0f64a60d9925220d54d28bfe2441", + "name": "ByteonBlast", + "symbol": "BYTE", "decimals": 18 }, { "chainId": 81457, - "address": "0x34050224f9ea1859790b7cbbbe2264f1204771a6", - "name": "Blast Inu", - "symbol": "binu", - "decimals": 9 + "address": "0x47c337bd5b9344a6f3d6f58c474d9d8cd419d8ca", + "name": "Dackie Token", + "symbol": "DACKIE", + "decimals": 18 }, { "chainId": 81457, "address": "0x67fa2887914fa3729e9eed7630294fe124f417a0", - "name": "Crypto Valleys YIELD Token", - "symbol": "yield", + "name": "Yield Token", + "symbol": "YIELD", "decimals": 18 }, { "chainId": 81457, - "address": "0x47c337bd5b9344a6f3d6f58c474d9d8cd419d8ca", - "name": "DackieSwap", - "symbol": "dackie", + "address": "0x1ba52a63adf7e9425ddd85b378dda25e3818e596", + "name": "DUCKIE", + "symbol": "DUCKIE", "decimals": 18 }, { "chainId": 81457, - "address": "0x1ba52a63adf7e9425ddd85b378dda25e3818e596", - "name": "Duckie The Meme Token", - "symbol": "$duckie", + "address": "0x491e6de43b55c8eae702edc263e32339da42f58c", + "name": "eesee", + "symbol": "ESE", "decimals": 18 }, { "chainId": 81457, - "address": "0x7135b32e9903bdb4e19a8b1d22fc2038964b8451", - "name": "EarlyFans", - "symbol": "early", - "decimals": 18 + "address": "0x9fe9991daf6b9a5d79280f48cbb6827d46de2ea4", + "name": "HyperBlast", + "symbol": "HYPE", + "decimals": 9 }, { "chainId": 81457, - "address": "0x818a92bc81aad0053d72ba753fb5bc3d0c5c0923", - "name": "Juice Finance", - "symbol": "juice", + "address": "0x5a7a183b6b44dc4ec2e3d2ef43f98c5152b1d76d", + "name": "InceptionLRT restaked ETH", + "symbol": "inETH", "decimals": 18 }, { "chainId": 81457, - "address": "0x76da31d7c9cbeae102aff34d3398bc450c8374c1", - "name": "Magic Internet Money (Blast)", - "symbol": "mim", + "address": "0x0f8881fc1fca1f5151fa4205d55922ffa15e707a", + "name": "Blast Disperse", + "symbol": "DISP", "decimals": 18 }, { "chainId": 81457, - "address": "0x491e6de43b55c8eae702edc263e32339da42f58c", - "name": "Eesee", - "symbol": "ese", + "address": "0xb582dc28968c725d2868130752afa0c13ebf9b1a", + "name": "Blast Pepe", + "symbol": "BEPE", "decimals": 18 }, { "chainId": 81457, - "address": "0x15d24de366f69b835be19f7cf9447e770315dd80", - "name": "KAP Games", - "symbol": "kap", + "address": "0x818a92bc81aad0053d72ba753fb5bc3d0c5c0923", + "name": "Juice", + "symbol": "JUICE", "decimals": 18 }, { "chainId": 81457, - "address": "0xdb13df2ea134e7df2208d74b96db063837db5b5c", - "name": "LAMB by OPNX", - "symbol": "lamb", + "address": "0x15d24de366f69b835be19f7cf9447e770315dd80", + "name": "KAP Games", + "symbol": "KAP", "decimals": 18 }, { "chainId": 81457, - "address": "0x963eec23618bbc8e1766661d5f263f18094ae4d5", - "name": "CYBRO", - "symbol": "cybro", + "address": "0x76da31d7c9cbeae102aff34d3398bc450c8374c1", + "name": "Magic Internet Money", + "symbol": "MIM", "decimals": 18 }, { "chainId": 81457, "address": "0x9a50953716ba58e3d6719ea5c437452ac578705f", - "name": "MetaStreet V2 mwstETH-WPUNKS:20", - "symbol": "punketh-20", + "name": "MetaStreet V2 Deposit: WPUNKS-wstETH:20", + "symbol": "mwstETH-WPUNKS:20", "decimals": 18 }, { "chainId": 81457, - "address": "0xa4c7aa67189ec5623121c6c94ec757dfed932d4b", - "name": "Mia", - "symbol": "mia", + "address": "0xdb13df2ea134e7df2208d74b96db063837db5b5c", + "name": "LAMB by OPNX", + "symbol": "LAMB", "decimals": 18 }, { "chainId": 81457, "address": "0x837fe561e9c5dfa73f607fda679295dbc2be5e40", - "name": "MonoSwap USD", - "symbol": "musd", + "name": "Monoswap USD", + "symbol": "MUSD", "decimals": 18 }, - { - "chainId": 81457, - "address": "0x9fe9991daf6b9a5d79280f48cbb6827d46de2ea4", - "name": "HyperBlast", - "symbol": "hype", - "decimals": 9 - }, { "chainId": 81457, "address": "0x75483179a38d21f3608e71bbede5ec1314f0067d", "name": "NeptuneX", - "symbol": "nptx", + "symbol": "NPTX", "decimals": 18 }, { "chainId": 81457, "address": "0x000000daa580e54635a043d2773f2c698593836a", - "name": "Oh no", - "symbol": "ohno", + "name": "Oh No", + "symbol": "OHNO", "decimals": 18 }, { "chainId": 81457, - "address": "0x9e20461bc2c4c980f62f1b279d71734207a6a356", - "name": "OmniCat", - "symbol": "omni", + "address": "0x7135b32e9903bdb4e19a8b1d22fc2038964b8451", + "name": "EARLY Token", + "symbol": "EARLY", "decimals": 18 }, { "chainId": 81457, - "address": "0x42e12d42b3d6c4a74a88a61063856756ea2db357", - "name": "Orbit Protocol", - "symbol": "orbit", + "address": "0x9e20461bc2c4c980f62f1b279d71734207a6a356", + "name": "OmniCat", + "symbol": "OMNI", "decimals": 18 }, { "chainId": 81457, "address": "0x7217124c626f0b7077be91df939195c9a8184ecc", "name": "Finger Blast", - "symbol": "finger", + "symbol": "FINGER", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x216a5a1135a9dab49fa9ad865e0f22fe22b5630a", + "name": "Pump", + "symbol": "PUMP", "decimals": 18 }, { "chainId": 81457, "address": "0xba0dda8762c24da9487f5fa026a9b64b695a07ea", "name": "OX Coin", - "symbol": "ox", + "symbol": "OX", "decimals": 18 }, { "chainId": 81457, - "address": "0x5ffd9ebd27f2fcab044c0f0a26a45cb62fa29c06", - "name": "PacMoon", - "symbol": "pac", + "address": "0x236bb48fcf61ce996b2c8c196a9258c176100c7d", + "name": "RabbitX", + "symbol": "RBX", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0xd582879453337bd149ae53ec2092b0af5281d1d7", + "name": "GLORY", + "symbol": "GLORY", "decimals": 18 }, { "chainId": 81457, "address": "0x2416092f143378750bb29b79ed961ab195cceea5", "name": "Renzo Restaked ETH", - "symbol": "ezeth", + "symbol": "ezETH", "decimals": 18 }, { "chainId": 81457, - "address": "0x4fee793d435c6d2c10c135983bb9d6d4fc7b9bbd", - "name": "Overnight.fi USD+", - "symbol": "usd+", + "address": "0x5ffd9ebd27f2fcab044c0f0a26a45cb62fa29c06", + "name": "PacMoon", + "symbol": "PAC", "decimals": 18 }, { "chainId": 81457, - "address": "0xe070b87c4d88826d4cd1b85babe186fdb14cd321", - "name": "Cyberblast Token", - "symbol": "cbr", + "address": "0xd07379a755a8f11b57610154861d694b2a0f615a", + "name": "SwapBlast Finance Token", + "symbol": "SBF", "decimals": 18 }, { "chainId": 81457, - "address": "0x4300000000000000000000000000000000000003", - "name": "USDB", - "symbol": "usdb", + "address": "0x87e154e86fb691ab8a27116e93ed8d54e2b8c18c", + "name": "Titan Trading Token", + "symbol": "TES", "decimals": 18 }, { "chainId": 81457, "address": "0x870a8f46b62b8bdeda4c02530c1750cddf2ed32e", - "name": "Overnight.fi USDC+", - "symbol": "usdc+", + "name": "USDC+", + "symbol": "USDC+", "decimals": 18 }, { "chainId": 81457, - "address": "0x87e154e86fb691ab8a27116e93ed8d54e2b8c18c", - "name": "Titan Trading Token", - "symbol": "tes", + "address": "0x4fee793d435c6d2c10c135983bb9d6d4fc7b9bbd", + "name": "USD+", + "symbol": "USD+", "decimals": 18 }, { "chainId": 81457, - "address": "0x4300000000000000000000000000000000000004", - "name": "WETH", - "symbol": "weth", + "address": "0x42e12d42b3d6c4a74a88a61063856756ea2db357", + "name": "Orbit Protocol", + "symbol": "ORBIT", "decimals": 18 }, { "chainId": 81457, - "address": "0xd07379a755a8f11b57610154861d694b2a0f615a", - "name": "SwapBlast Finance Token", - "symbol": "sbf", + "address": "0x4300000000000000000000000000000000000004", + "name": "Wrapped Ether", + "symbol": "WETH", "decimals": 18 }, { "chainId": 81457, "address": "0x9b0ae1c1fbe7006697356030d45ab3e17cbcf70f", "name": "XDX", - "symbol": "xdx", + "symbol": "XDX", + "decimals": 18 + }, + { + "chainId": 81457, + "address": "0x764933fbad8f5d04ccd088602096655c2ed9879f", + "name": "Any Inu (non-ITS)", + "symbol": "AI", "decimals": 18 }, { "chainId": 81457, "address": "0x20fe91f17ec9080e3cac2d688b4ecb48c5ac3a9c", - "name": "YES Money", - "symbol": "yes", + "name": "YES", + "symbol": "YES", "decimals": 18 }, { "chainId": 81457, "address": "0x68449870eea84453044bd430822827e21fd8f101", - "name": "Zaibot", - "symbol": "zai", + "name": "ZAIBOT.io", + "symbol": "ZAI", "decimals": 18 }, { "chainId": 81457, - "address": "0x236bb48fcf61ce996b2c8c196a9258c176100c7d", - "name": "RabbitX", - "symbol": "rbx", + "address": "0xa4c7aa67189ec5623121c6c94ec757dfed932d4b", + "name": "Mia", + "symbol": "MIA", "decimals": 18 }, { "chainId": 81457, - "address": "0x216a5a1135a9dab49fa9ad865e0f22fe22b5630a", - "name": "Pump", - "symbol": "pump", + "address": "0xfd4d19f9fbb9f730c3c88a21755832bd2455144e", + "name": "SSS", + "symbol": "SSS", "decimals": 18 }, { "chainId": 81457, - "address": "0xd582879453337bd149ae53ec2092b0af5281d1d7", - "name": "Sekai Glory", - "symbol": "glory", + "address": "0x4300000000000000000000000000000000000003", + "name": "USDB", + "symbol": "USDB", "decimals": 18 }, { "chainId": 81457, - "address": "0xfd4d19f9fbb9f730c3c88a21755832bd2455144e", - "name": "Super Sushi Samurai", - "symbol": "sss", - "decimals": 18 + "address": "0xd43d8adac6a4c7d9aeece7c3151fca8f23752cf8", + "name": "Andy", + "symbol": "ANDY", + "decimals": 9 }, { "chainId": 81457, - "address": "0x5a7a183b6b44dc4ec2e3d2ef43f98c5152b1d76d", - "name": "Inception Restaked ETH", - "symbol": "ineth", + "address": "0xe070b87c4d88826d4cd1b85babe186fdb14cd321", + "name": "Cyberblast Token", + "symbol": "CBR", "decimals": 18 } ] From 1dd5b9798b178e8d2b77b34ae4608e2528613414 Mon Sep 17 00:00:00 2001 From: samlior Date: Mon, 20 May 2024 17:57:36 +0800 Subject: [PATCH 10/10] Remove debug code --- src/app.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app.ts b/src/app.ts index 014f1625dc..08fbdb4323 100644 --- a/src/app.ts +++ b/src/app.ts @@ -126,7 +126,7 @@ export const startGateway = async () => { await gatewayApp.listen(port); } else { try { - await addHttps(gatewayApp).listen(port, "127.0.0.1"); + await addHttps(gatewayApp).listen(port); logger.info('The gateway server is secured behind HTTPS.'); } catch (e) { logger.error(