@qidao/sdk 5.1.51 → 5.1.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.mjs","sources":["../src/constants.ts","../src/errors.ts","../src/utils.ts","../src/entities/currency.ts","../src/entities/token.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/tokenAmount.ts","../src/entities/fractions/price.ts","../src/contracts/factories/CrosschainNativeQiStablecoin__factory.ts","../src/contracts/factories/CrosschainQiStablecoin__factory.ts","../src/contracts/factories/CrosschainQiStablecoinSlim__factory.ts","../src/contracts/factories/CrosschainQiStablecoinSlimV2__factory.ts","../src/contracts/factories/CrosschainQiStablecoinV2__factory.ts","../src/contracts/factories/CrosschainQiStablecoinwbtc__factory.ts","../src/contracts/factories/Erc20QiStablecoincamwbtc__factory.ts","../src/contracts/factories/Erc20QiStablecoinwbtc__factory.ts","../src/contracts/factories/Erc20Stablecoin__factory.ts","../src/contracts/factories/StableQiVault__factory.ts","../src/vaultInfo.ts","../src/zapInfo.ts","../src/tokens.ts"],"sourcesContent":["\nimport JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | bigint | string\n\nexport const FTM_ZAPPER_ADDRESS = '0xE2379CB4c4627E5e9dF459Ce08c2342C696C4c1f'\nexport const AVAX_ZAPPER_ADDRESS = '0x1d0a9E2c445EB8f99767eF289832637921e6F6a5'\nexport const OG_MATIC_VAULT = '0xa3Fa99A148fA48D14Ed51d610c367C61876997F1'\n\nexport enum ChainId {\n MAINNET = 1,\n ROPSTEN = 3,\n RINKEBY = 4,\n GÖRLI = 5,\n KOVAN = 42,\n MATIC = 137,\n MATIC_TESTNET = 80001,\n FANTOM = 250,\n FANTOM_TESTNET = 4002,\n XDAI = 100,\n BSC = 56,\n BSC_TESTNET = 97,\n ARBITRUM = 42161,\n MOONBASE = 1287,\n AVALANCHE = 43114,\n FUJI = 43113,\n HECO = 128,\n HECO_TESTNET = 256,\n HARMONY = 1666600000,\n HARMONY_TESTNET = 1666700000,\n MOONRIVER = 1285,\n CRONOS = 25,\n OPTIMISM = 10,\n SYSCOIN = 57,\n METIS = 1088,\n MOONBEAM = 1284,\n MILKOMEDA = 2001,\n KAVA = 2222,\n IOTEX = 4689,\n KLAYTN = 8217,\n CELO = 42220,\n AURORA = 1313161554,\n BOBA = 288,\n CUBE = 1818\n}\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP\n}\n\nexport const INIT_CODE_HASH: string = '0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303'\nexport const MINIMUM_LIQUIDITY = JSBI.BigInt(1000)\n\n// exports for internal consumption\nexport const ZERO = JSBI.BigInt(0)\nexport const ONE = JSBI.BigInt(1)\nexport const TWO = JSBI.BigInt(2)\nexport const THREE = JSBI.BigInt(3)\nexport const FIVE = JSBI.BigInt(5)\nexport const TEN = JSBI.BigInt(10)\nexport const _100 = JSBI.BigInt(100)\nexport const _997 = JSBI.BigInt(997)\nexport const _1000 = JSBI.BigInt(1000)\n\nexport enum SolidityType {\n uint8 = 'uint8',\n uint256 = 'uint256'\n}\n\nexport const SOLIDITY_TYPE_MAXIMA = {\n [SolidityType.uint8]: JSBI.BigInt('0xff'),\n [SolidityType.uint256]: JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n}\n\nexport const MULTICALL_NETWORKS: { [chainId in ChainId]: string } = {\n [ChainId.MAINNET]: '0xeefBa1e63905eF1D7ACbA5a8513c70307C1cE441',\n [ChainId.ROPSTEN]: '0x53C43764255c17BD724F74c4eF150724AC50a3ed',\n [ChainId.KOVAN]: '0x2cc8688C5f75E365aaEEb4ea8D6a480405A48D2A',\n [ChainId.RINKEBY]: '0x42Ad527de7d4e9d9d011aC45B31D8551f8Fe9821',\n [ChainId.GÖRLI]: '0x77dCa2C955b15e9dE4dbBCf1246B4B85b651e50e',\n [ChainId.FANTOM]: '0x63B8310c5093ac917552931D8b15d5AB6945c0a6',\n [ChainId.FANTOM_TESTNET]: '',\n [ChainId.MATIC]: '0x95028E5B8a734bb7E2071F96De89BABe75be9C8E',\n [ChainId.MATIC_TESTNET]: '0x9Fc8e50Eb08C1F463b45d1AFb9c261B0a1903006',\n [ChainId.XDAI]: '0xb5b692a88BDFc81ca69dcB1d924f59f0413A602a',\n [ChainId.BSC]: '0xe348b292e8eA5FAB54340656f3D374b259D658b8',\n [ChainId.BSC_TESTNET]: '0xe348b292e8eA5FAB54340656f3D374b259D658b8',\n [ChainId.ARBITRUM]: '0x80C7DD17B01855a6D2347444a0FCC36136a314de',\n [ChainId.MOONBASE]: '0x9B7D5fa91b4747031d8E7807DaEC906F0f683E78',\n [ChainId.AVALANCHE]: '0x0FB54156B496b5a040b51A71817aED9e2927912E',\n [ChainId.FUJI]: '0x0053957E18A0994D3526Cf879A4cA7Be88e8936A',\n [ChainId.HECO]: '0xc9a9F768ebD123A00B52e7A0E590df2e9E998707',\n [ChainId.HECO_TESTNET]: '0x935Bfe9AfaA2Be26049ea4EDE40A3A2243361F87',\n [ChainId.HARMONY]: '0xFE4980f62D708c2A84D3929859Ea226340759320',\n [ChainId.HARMONY_TESTNET]: '0xbcd3451992B923531615293Cb2b2c38ba8DE9529',\n [ChainId.MOONRIVER]: '0xe05349d6fE12602F6084550995B247a5C80C0E2C',\n [ChainId.CRONOS]: '0xA25da25BD11A26F1dd4ea195948305fb7C8cA102',\n [ChainId.OPTIMISM]: '0x142e2feac30d7fc3b61f9ee85fccad8e560154cc',\n [ChainId.SYSCOIN]: '',\n [ChainId.METIS]: '0xc39aBB6c4451089dE48Cffb013c39d3110530e5C',\n [ChainId.MOONBEAM]: '0x83e3b61886770de2F64AAcaD2724ED4f08F7f36B',\n [ChainId.MILKOMEDA]: '',\n [ChainId.KAVA]: '',\n [ChainId.IOTEX]: '0x9c8B105c94282CDB0F3ecF27e3cfA96A35c07be6',\n [ChainId.KLAYTN]: '0x5f5f0d1b9ff8b3dcace308e39b13b203354906e9',\n [ChainId.CELO]: '0xb8d0d2C1391eeB350d2Cd39EfABBaaEC297368D9',\n [ChainId.AURORA]: '0x32b50c286DEFd2932a0247b8bb940b78c063F16c',\n [ChainId.BOBA]: '0xfb91c019D9F12A0f9c23B4762fa64A34F8daDb4A',\n [ChainId.CUBE]: '',\n}\n\nexport const WFTM_ADDRESS = '0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83'\nexport const STETH_ADDRESS = '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84'\nexport const METIS_WBTC_ADDRESS = '0xa5B55ab1dAF0F8e1EFc0eB1931a957fd89B918f4';\nexport const AAVE_ADDRESS = '0xD6DF932A45C0f255f85145f286eA0b292B21C90B';\n\n//CAM Vaults\nexport const CAMWMATIC_VAULT_ADDRESS = '0x88d84a85A87ED12B8f098e8953B322fF789fCD1a'\nexport const CAMWETH_VAULT_ADDRESS = '0x11A33631a5B5349AF3F165d2B7901A4d67e561ad'\nexport const CAMAAVE_VAULT_ADDRESS = '0x578375c3af7d61586c2C3A7BA87d2eEd640EFA40'\nexport const CAMWBTC_VAULT_ADDRESS = '0x7dDA5e1A389E0C1892CaF55940F5fcE6588a9ae0'\nexport const CAMDAI_VAULT_ADDRESS = '0xD2FE44055b5C874feE029119f70336447c8e8827'\n//FTM Vaults\nexport const YVWFTM_VAULT_ADDRESS = '0x7efB260662a6FA95c1CE1092c53Ca23733202798'\nexport const YVWBTC_VAULT_ADDRESS = '0x571F42886C31f9b769ad243e81D06D0D144BE7B4'\nexport const YVYFI_VAULT_ADDRESS = '0x6d6029557a06961aCC5F81e1ffF5A474C54e32Fd'\nexport const YVWETH_VAULT_ADDRESS = '0x7aE52477783c4E3e5c1476Bbb29A8D029c920676'\nexport const YVDAI_VAULT_ADDRESS = '0x682E473FcA490B0adFA7EfE94083C1E63f28F034'\nexport const MOO_SCREAM_WBTC_VAULT_ADDRESS = '0x5563Cc1ee23c4b17C861418cFF16641D46E12436'\nexport const MOO_SCREAM_DAI_VAULT_ADDRESS = '0xBf0ff8ac03f3E0DD7d8faA9b571ebA999a854146'\nexport const MOO_SCREAM_ETH_VAULT_ADDRESS = '0xC1c7eF18ABC94013F6c58C6CdF9e829A48075b4e'\nexport const MOO_SCREAM_WFTM_VAULT_ADDRESS = '0x3609A304c6A41d87E895b9c1fd18c02ba989Ba90'\nexport const MOO_SCREAM_LINK_VAULT_ADDRESS = '0x8e5e4D08485673770Ab372c05f95081BE0636Fa2'\nexport const MOO_BIFI_FTM_VAULT_ADDRESS = '0x75D4aB6843593C111Eeb02Ff07055009c836A1EF'\n//AVAX Vaults\nexport const MOO_WAVAX_VAULT_ADDRESS = '0xfA19c1d104F4AEfb8d5564f02B3AdCa1b515da58'\n//ETH Vaults\nexport const YVETH_VAULT_ADDRESS = '0xEcbd32bD581e241739be1763DFE7a8fFcC844ae1';\nexport const YVLINK_VAULT_ADDRESS = '0x60d133c666919B54a3254E0d3F14332cB783B733';\nexport const WETH_ADDRESS = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';\nexport const LINK_ADDRESS = '0x514910771AF9Ca656af840dff83E8264EcF986CA';\nexport const WSTETH_VAULT_ADDRESS = '0x86f78d3cbCa0636817AD9e27a44996C738Ec4932';\nexport const YVWETH_OPTIMISM_VAULT_ADDRESS = '0x7198FF382b5798dAb7DC72a23C1fec9dc091893B';\nexport const MOO_ETH_STETH_CRV_VAULT_ADDRESS = '0xa478E708A27853848C6Bc979668fe6225FEe46Fa'\n","// see https://stackoverflow.com/a/41102306\nconst CAN_SET_PROTOTYPE = 'setPrototypeOf' in Object\n\n/**\n * Indicates that the pair has insufficient reserves for a desired output amount. I.e. the amount of output cannot be\n * obtained by sending any amount of input.\n */\nexport class InsufficientReservesError extends Error {\n public readonly isInsufficientReservesError: true = true\n\n public constructor() {\n super()\n this.name = this.constructor.name\n if (CAN_SET_PROTOTYPE) Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n\n/**\n * Indicates that the input amount is too small to produce any amount of output. I.e. the amount of input sent is less\n * than the price of a single unit of output after fees.\n */\nexport class InsufficientInputAmountError extends Error {\n public readonly isInsufficientInputAmountError: true = true\n\n public constructor() {\n super()\n this.name = this.constructor.name\n if (CAN_SET_PROTOTYPE) Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n","import invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport JSBI from 'jsbi'\nimport { getAddress } from '@ethersproject/address'\n\nimport { BigintIsh, ZERO, ONE, TWO, THREE, SolidityType, SOLIDITY_TYPE_MAXIMA } from './constants'\n\nexport function validateSolidityTypeInstance(value: JSBI, solidityType: SolidityType): void {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), `${value} is not a ${solidityType}.`)\n invariant(JSBI.lessThanOrEqual(value, SOLIDITY_TYPE_MAXIMA[solidityType]), `${value} is not a ${solidityType}.`)\n}\n\n// warns if addresses are not checksummed\nexport function validateAndParseAddress(address: string): string {\n try {\n const checksummedAddress = getAddress(address)\n warning(address === checksummedAddress, `${address} is not checksummed.`)\n return checksummedAddress\n } catch (error) {\n invariant(false, `${address} is not a valid address.`)\n }\n}\n\nexport function parseBigintIsh(bigintIsh: BigintIsh): JSBI {\n return bigintIsh instanceof JSBI\n ? bigintIsh\n : typeof bigintIsh === 'bigint'\n ? JSBI.BigInt(bigintIsh.toString())\n : JSBI.BigInt(bigintIsh)\n}\n\n// mock the on-chain sqrt function\nexport function sqrt(y: JSBI): JSBI {\n validateSolidityTypeInstance(y, SolidityType.uint256)\n let z: JSBI = ZERO\n let x: JSBI\n if (JSBI.greaterThan(y, THREE)) {\n z = y\n x = JSBI.add(JSBI.divide(y, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(y, x), x), TWO)\n }\n } else if (JSBI.notEqual(y, ZERO)) {\n z = ONE\n }\n return z\n}\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert<T>(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n","// noinspection JSNonASCIINames,NonAsciiCharacters\n\nimport JSBI from 'jsbi'\n\nimport { ChainId, SolidityType } from '../constants'\nimport { validateSolidityTypeInstance } from '../utils'\n\n/**\n * A currency is any fungible financial instrument on Ethereum, including Ether and all ERC20 tokens.\n *\n * The only instance of the base class `Currency` is Ether.\n */\nexport class Currency {\n public readonly decimals: number\n public readonly symbol?: string\n public readonly name?: string\n\n public static readonly ETHER: Currency = new Currency(18, 'ETH', 'Ether')\n\n public static readonly BNB: Currency = new Currency(18, 'BNB', 'Binance Coin')\n\n public static readonly FTM: Currency = new Currency(18, 'FTM', 'Fantom')\n\n public static readonly MATIC: Currency = new Currency(18, 'MATIC', 'Matic')\n\n public static readonly XDAI: Currency = new Currency(18, 'XDAI', 'xDai')\n\n public static readonly GLMR: Currency = new Currency(18, 'GLMR', 'Glimmer')\n\n public static readonly AVAX: Currency = new Currency(18, 'AVAX', 'Avalanche')\n\n public static readonly HT: Currency = new Currency(18, 'HT', 'Heco Token')\n\n public static readonly ONE: Currency = new Currency(18, 'ONE', 'Harmony')\n\n public static readonly MOVR: Currency = new Currency(18, 'MOVR', 'Moonriver')\n\n public static readonly CRO: Currency = new Currency(18, 'CRO', 'Cronos')\n\n public static readonly SYSCOIN: Currency = new Currency(18, 'WSYS', 'Wrapped Syscoin')\n\n public static readonly METIS: Currency = new Currency(18, 'METIS', 'Wrapped Metis')\n\n public static readonly MOONBEAM: Currency = new Currency(18, 'WGLMR', 'Wrapped GLMR')\n\n public static readonly MILKOMEDA: Currency = new Currency(18, 'WADA', 'Wrapped ADA')\n\n public static readonly KAVA: Currency = new Currency(18, 'WKAVA', 'Wrapped Kava')\n\n public static readonly IOTEX: Currency = new Currency(18, 'WIOTX', 'Wrapped IoTeX')\n\n public static readonly KLAYTN: Currency = new Currency(18, 'WKLAY', 'Wrapped Klaytn')\n\n public static readonly CELO: Currency = new Currency(18, 'WCELO', 'Wrapped Celo')\n\n public static readonly AURORA: Currency = new Currency(18, 'WETH', 'Wrapped Ether')\n\n public static readonly BOBA: Currency = new Currency(18, 'WETH', 'Wrapped Ether')\n\n public static readonly CUBE: Currency = new Currency(18, 'WCUBE', 'Wrapped Cube')\n\n public static readonly NATIVE = {\n [ChainId.MAINNET]: Currency.ETHER,\n [ChainId.ROPSTEN]: Currency.ETHER,\n [ChainId.RINKEBY]: Currency.ETHER,\n [ChainId.GÖRLI]: Currency.ETHER,\n [ChainId.KOVAN]: Currency.ETHER,\n [ChainId.FANTOM]: Currency.FTM,\n [ChainId.FANTOM_TESTNET]: Currency.FTM,\n [ChainId.MATIC]: Currency.MATIC,\n [ChainId.MATIC_TESTNET]: Currency.MATIC,\n [ChainId.XDAI]: Currency.XDAI,\n [ChainId.BSC]: Currency.BNB,\n [ChainId.BSC_TESTNET]: Currency.BNB,\n [ChainId.ARBITRUM]: Currency.ETHER,\n [ChainId.MOONBASE]: Currency.GLMR,\n [ChainId.AVALANCHE]: Currency.AVAX,\n [ChainId.FUJI]: Currency.AVAX,\n [ChainId.HECO]: Currency.HT,\n [ChainId.HECO_TESTNET]: Currency.HT,\n [ChainId.HARMONY]: Currency.ONE,\n [ChainId.HARMONY_TESTNET]: Currency.ONE,\n [ChainId.CRONOS]: Currency.CRO,\n [ChainId.MOONRIVER]: Currency.MOVR,\n [ChainId.OPTIMISM]: Currency.ETHER,\n [ChainId.SYSCOIN]: Currency.SYSCOIN,\n [ChainId.METIS]: Currency.METIS,\n [ChainId.MOONBEAM]: Currency.MOONBEAM,\n [ChainId.MILKOMEDA]: Currency.MILKOMEDA,\n [ChainId.KAVA]: Currency.KAVA,\n [ChainId.IOTEX]: Currency.IOTEX,\n [ChainId.KLAYTN]: Currency.KLAYTN,\n [ChainId.CELO]: Currency.CELO,\n [ChainId.AURORA]: Currency.AURORA,\n [ChainId.BOBA]: Currency.BOBA,\n [ChainId.CUBE]: Currency.CUBE\n }\n\n /**\n * Constructs an instance of the base class `Currency`. The only instance of the base class `Currency` is `Currency.ETHER`.\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(decimals: number, symbol?: string, name?: string) {\n validateSolidityTypeInstance(JSBI.BigInt(decimals), SolidityType.uint8)\n\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n public static getNativeCurrency(chainId?: ChainId) {\n if (!chainId) {\n throw Error(`No chainId ${chainId}`)\n }\n\n if (!(chainId in Currency.NATIVE)) {\n throw Error(`No native currency defined for chainId ${chainId}`)\n }\n return Currency.NATIVE[chainId]\n }\n\n public static getNativeCurrencySymbol(chainId?: ChainId) {\n const nativeCurrency = this.getNativeCurrency(chainId)\n return nativeCurrency.symbol\n }\n\n public static getNativeCurrencyName(chainId?: ChainId) {\n const nativeCurrency = this.getNativeCurrency(chainId)\n return nativeCurrency.name\n }\n\n public getSymbol(chainId?: ChainId) {\n if (!chainId) {\n return this?.symbol\n }\n\n if (this?.symbol === 'ETH') {\n return Currency.getNativeCurrencySymbol(chainId)\n }\n\n // if (this?.symbol === 'WETH') {\n // return `W${Currency.getNativeCurrencySymbol(chainId)}`\n // }\n\n return this?.symbol\n }\n\n public getName(chainId?: ChainId) {\n if (!chainId) {\n return this?.name\n }\n\n if (this?.name === 'Ether') {\n return Currency.getNativeCurrencyName(chainId)\n }\n\n return this?.name\n }\n}\n\nconst ETHER = Currency.ETHER\n\nexport { ETHER }\n","import invariant from 'tiny-invariant'\nimport {ChainId, WFTM_ADDRESS} from '../constants'\nimport { validateAndParseAddress } from '../utils'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends Currency {\n public readonly chainId: ChainId\n public readonly address: string\n\n public constructor(chainId: ChainId, address: string, decimals: number, symbol?: string, name?: string) {\n super(decimals, symbol, name)\n this.chainId = chainId\n this.address = validateAndParseAddress(address)\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Token): boolean {\n // short circuit on reference equality\n if (this === other) {\n return true\n }\n return this.chainId === other.chainId && this.address === other.address\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address !== other.address, 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n}\n\n/**\n * Compares two currencies for equality\n */\nexport function currencyEquals(currencyA: Currency, currencyB: Currency): boolean {\n if (currencyA instanceof Token && currencyB instanceof Token) {\n return currencyA.equals(currencyB)\n } else if (currencyA instanceof Token) {\n return false\n } else if (currencyB instanceof Token) {\n return false\n } else {\n return currencyA === currencyB\n }\n}\n\nexport const WNATIVE = {\n [ChainId.MAINNET]: new Token(ChainId.MAINNET, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.ROPSTEN]: new Token(ChainId.ROPSTEN, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.RINKEBY]: new Token(ChainId.RINKEBY, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.GÖRLI]: new Token(ChainId.GÖRLI, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.KOVAN]: new Token(ChainId.KOVAN, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.FANTOM]: new Token(ChainId.FANTOM, WFTM_ADDRESS, 18, 'WFTM', 'Wrapped FTM'),\n [ChainId.FANTOM_TESTNET]: new Token(ChainId.FANTOM_TESTNET, '0xf1277d1Ed8AD466beddF92ef448A132661956621', 18, 'FTM', 'Wrapped FTM'),\n [ChainId.MATIC]: new Token(ChainId.MATIC, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped Matic'),\n [ChainId.MATIC_TESTNET]: new Token(ChainId.MATIC_TESTNET, '0x5B67676a984807a212b1c59eBFc9B3568a474F0a', 18, 'WMATIC', 'Wrapped Matic'),\n [ChainId.XDAI]: new Token(ChainId.XDAI, '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 18, 'WXDAI', 'Wrapped xDai'),\n [ChainId.BSC]: new Token(ChainId.BSC, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n [ChainId.BSC_TESTNET]: new Token(ChainId.BSC_TESTNET, '0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd', 18, 'WBNB', 'Wrapped BNB'),\n [ChainId.ARBITRUM]: new Token(ChainId.ARBITRUM, '0xf8456e5e6A225C2C1D74D8C9a4cB2B1d5dc1153b', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.MOONBASE]: new Token(ChainId.MOONBASE, '0xe73763DB808ecCDC0E36bC8E32510ED126910394', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.AVALANCHE]: new Token(ChainId.AVALANCHE, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n [ChainId.FUJI]: new Token(ChainId.FUJI, '0xd00ae08403B9bbb9124bB305C09058E32C39A48c', 18, 'WAVAX', 'Wrapped AVAX'),\n [ChainId.HECO]: new Token(ChainId.HECO, '0x5545153CCFcA01fbd7Dd11C0b23ba694D9509A6F', 18, 'WHT', 'Wrapped HT'),\n [ChainId.HECO_TESTNET]: new Token(ChainId.HECO_TESTNET, '0x5B2DA6F42CA09C77D577a12BeaD0446148830687', 18, 'WHT', 'Wrapped HT'),\n [ChainId.HARMONY]: new Token(ChainId.HARMONY, '0xcF664087a5bB0237a0BAd6742852ec6c8d69A27a', 18, 'WONE', 'Wrapped ONE'),\n [ChainId.HARMONY_TESTNET]: new Token(ChainId.HARMONY_TESTNET, '0x7a2afac38517d512E55C0bCe3b6805c10a04D60F', 18, 'WONE', 'Wrapped ONE'),\n [ChainId.MOONRIVER]: new Token(ChainId.MOONRIVER, '0x98878B06940aE243284CA214f92Bb71a2b032B8A', 18, 'WMOVR', 'Wrapped MOVR'),\n [ChainId.CRONOS]: new Token(ChainId.CRONOS, '0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23', 18, 'WCRO', 'Wrapped CRO'),\n [ChainId.OPTIMISM]: new Token(ChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.SYSCOIN]: new Token(ChainId.SYSCOIN, '0xd3e822f3ef011Ca5f17D82C956D952D8d7C3A1BB', 18, 'WSYS', 'Wrapped Syscoin'),\n [ChainId.METIS]: new Token(ChainId.METIS, '0x75cb093E4D61d2A2e65D8e0BBb01DE8d89b53481', 18, 'WETH', 'Wrapped Metis'),\n [ChainId.MOONBEAM]: new Token(ChainId.MOONBEAM, '0xAcc15dC74880C9944775448304B263D191c6077F', 18, 'WGLMR', 'Wrapped GLMR'),\n [ChainId.MILKOMEDA]: new Token(ChainId.MILKOMEDA, '0xAE83571000aF4499798d1e3b0fA0070EB3A3E3F9', 18, 'WADA', 'Wrapped ADA'),\n [ChainId.KAVA]: new Token(ChainId.KAVA, '0xc86c7C0eFbd6A49B35E8714C5f59D99De09A225b', 18, 'WKAVA', 'Wrapped Kava'),\n [ChainId.IOTEX]: new Token(ChainId.IOTEX, '0xa00744882684c3e4747faefd68d283ea44099d03', 18, 'WIOTX', 'Wrapped IoTeX'),\n [ChainId.KLAYTN]: new Token(ChainId.KLAYTN, '0xfd844c2fca5e595004b17615f891620d1cb9bbb2', 18, 'WKLAY', 'Wrapped Klaytn'),\n [ChainId.CELO]: new Token(ChainId.CELO, '0x3Ad443d769A07f287806874F8E5405cE3Ac902b9', 18, 'WCELO', 'Wrapped Celo'),\n [ChainId.AURORA]: new Token(ChainId.AURORA, '0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.BOBA]: new Token(ChainId.BOBA, '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.CUBE]: new Token(ChainId.CUBE, '0x9d3f61338d6eb394e378d28c1fd17d5909ac6591', 18, 'WCUBE', 'Wrapped Cube'),\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { ONE } from '../../constants'\nimport { parseBigintIsh } from '../../utils'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = ONE) {\n this.numerator = parseBigintIsh(numerator)\n this.denominator = parseBigintIsh(denominator)\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n}\n","import { Rounding, _100 } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst _100_PERCENT = new Fraction(_100)\n\nexport class Percent extends Fraction {\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return this.multiply(_100_PERCENT).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return this.multiply(_100_PERCENT).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import { currencyEquals } from '../token'\nimport { Currency, ETHER } from '../currency'\nimport invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport _Big from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding, TEN, SolidityType } from '../../constants'\nimport { parseBigintIsh, validateSolidityTypeInstance } from '../../utils'\nimport { Fraction } from './fraction'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: Currency\n\n /**\n * Helper that calls the constructor with the ETHER currency\n * @param amount ether amount in wei\n */\n public static ether(amount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(ETHER, amount)\n }\n\n // amount _must_ be raw, i.e. in the native representation\n protected constructor(currency: Currency, amount: BigintIsh) {\n const parsedAmount = parseBigintIsh(amount)\n validateSolidityTypeInstance(parsedAmount, SolidityType.uint256)\n\n super(parsedAmount, JSBI.exponentiate(TEN, JSBI.BigInt(currency.decimals)))\n this.currency = currency\n }\n\n public get raw(): JSBI {\n return this.numerator\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(currencyEquals(this.currency, other.currency), 'TOKEN')\n return new CurrencyAmount(this.currency, JSBI.add(this.raw, other.raw))\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(currencyEquals(this.currency, other.currency), 'TOKEN')\n return new CurrencyAmount(this.currency, JSBI.subtract(this.raw, other.raw))\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(format)\n }\n}\n","import { CurrencyAmount } from './currencyAmount'\nimport { Token } from '../token'\nimport invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\n\nimport { BigintIsh } from '../../constants'\n\nexport class TokenAmount extends CurrencyAmount {\n public readonly token: Token\n\n // amount _must_ be raw, i.e. in the native representation\n public constructor(token: Token, amount: BigintIsh) {\n super(token, amount)\n this.token = token\n }\n\n public add(other: TokenAmount): TokenAmount {\n invariant(this.token.equals(other.token), 'TOKEN')\n return new TokenAmount(this.token, JSBI.add(this.raw, other.raw))\n }\n\n public subtract(other: TokenAmount): TokenAmount {\n invariant(this.token.equals(other.token), 'TOKEN')\n return new TokenAmount(this.token, JSBI.subtract(this.raw, other.raw))\n }\n}\n","import { Token } from '../token'\nimport { TokenAmount } from './tokenAmount'\nimport { currencyEquals } from '../token'\nimport invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\n\nimport { BigintIsh, Rounding, TEN } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: Currency // input i.e. denominator\n public readonly quoteCurrency: Currency // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n // denominator and numerator _must_ be raw, i.e. in the native representation\n public constructor(baseCurrency: Currency, quoteCurrency: Currency, denominator: BigintIsh, numerator: BigintIsh) {\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(TEN, JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(TEN, JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n public get raw(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n\n public get adjusted(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n public multiply(other: Price): Price {\n invariant(currencyEquals(this.quoteCurrency, other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n // performs floor division on overflow\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyEquals(currencyAmount.currency, this.baseCurrency), 'TOKEN')\n if (this.quoteCurrency instanceof Token) {\n return new TokenAmount(this.quoteCurrency, super.multiply(currencyAmount.raw).quotient)\n }\n return CurrencyAmount.ether(super.multiply(currencyAmount.raw).quotient)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjusted.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjusted.toFixed(decimalPlaces, format, rounding)\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainNativeQiStablecoin,\n CrosschainNativeQiStablecoinInterface,\n} from \"../CrosschainNativeQiStablecoin\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"depositNative\",\n outputs: [],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract PriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"bool\",\n name: \"unwrap\",\n type: \"bool\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainNativeQiStablecoin__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainNativeQiStablecoinInterface {\n return new utils.Interface(_abi) as CrosschainNativeQiStablecoinInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainNativeQiStablecoin {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainNativeQiStablecoin;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainQiStablecoin,\n CrosschainQiStablecoinInterface,\n} from \"../CrosschainQiStablecoin\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"depositNative\",\n outputs: [],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract PriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainQiStablecoin__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainQiStablecoinInterface {\n return new utils.Interface(_abi) as CrosschainQiStablecoinInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainQiStablecoin {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainQiStablecoin;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainQiStablecoinSlim,\n CrosschainQiStablecoinSlimInterface,\n} from \"../CrosschainQiStablecoinSlim\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract IPriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"minDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_minDebt\",\n type: \"uint256\",\n },\n ],\n name: \"setMinDebt\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"version\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainQiStablecoinSlim__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainQiStablecoinSlimInterface {\n return new utils.Interface(_abi) as CrosschainQiStablecoinSlimInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainQiStablecoinSlim {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainQiStablecoinSlim;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainQiStablecoinSlimV2,\n CrosschainQiStablecoinSlimV2Interface,\n} from \"../CrosschainQiStablecoinSlimV2\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"cfDelta\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract IPriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"minDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_minDebt\",\n type: \"uint256\",\n },\n ],\n name: \"setMinDebt\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"version\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainQiStablecoinSlimV2__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainQiStablecoinSlimV2Interface {\n return new utils.Interface(_abi) as CrosschainQiStablecoinSlimV2Interface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainQiStablecoinSlimV2 {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainQiStablecoinSlimV2;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainQiStablecoinV2,\n CrosschainQiStablecoinV2Interface,\n} from \"../CrosschainQiStablecoinV2\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract IPriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainQiStablecoinV2__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainQiStablecoinV2Interface {\n return new utils.Interface(_abi) as CrosschainQiStablecoinV2Interface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainQiStablecoinV2 {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainQiStablecoinV2;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainQiStablecoinwbtc,\n CrosschainQiStablecoinwbtcInterface,\n} from \"../CrosschainQiStablecoinwbtc\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract PriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainQiStablecoinwbtc__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainQiStablecoinwbtcInterface {\n return new utils.Interface(_abi) as CrosschainQiStablecoinwbtcInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainQiStablecoinwbtc {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainQiStablecoinwbtc;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n Erc20QiStablecoincamwbtc,\n Erc20QiStablecoincamwbtcInterface,\n} from \"../Erc20QiStablecoincamwbtc\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"meta\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_meta\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"base\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract shareOracle\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n name: \"setBaseURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_tokenPeg\",\n type: \"uint256\",\n },\n ],\n name: \"setTokenPeg\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"transferToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"transferToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class Erc20QiStablecoincamwbtc__factory {\n static readonly abi = _abi;\n static createInterface(): Erc20QiStablecoincamwbtcInterface {\n return new utils.Interface(_abi) as Erc20QiStablecoincamwbtcInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): Erc20QiStablecoincamwbtc {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as Erc20QiStablecoincamwbtc;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n Erc20QiStablecoinwbtc,\n Erc20QiStablecoinwbtcInterface,\n} from \"../Erc20QiStablecoinwbtc\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"meta\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_meta\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"base\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract PriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n name: \"setBaseURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_tokenPeg\",\n type: \"uint256\",\n },\n ],\n name: \"setTokenPeg\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"transferToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"transferToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class Erc20QiStablecoinwbtc__factory {\n static readonly abi = _abi;\n static createInterface(): Erc20QiStablecoinwbtcInterface {\n return new utils.Interface(_abi) as Erc20QiStablecoinwbtcInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): Erc20QiStablecoinwbtc {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as Erc20QiStablecoinwbtc;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n Erc20Stablecoin,\n Erc20StablecoinInterface,\n} from \"../Erc20Stablecoin\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mimatic\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract shareOracle\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mimatic\",\n outputs: [\n {\n internalType: \"contract ERC20\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_tokenPeg\",\n type: \"uint256\",\n },\n ],\n name: \"setTokenPeg\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"transferToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class Erc20Stablecoin__factory {\n static readonly abi = _abi;\n static createInterface(): Erc20StablecoinInterface {\n return new utils.Interface(_abi) as Erc20StablecoinInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): Erc20Stablecoin {\n return new Contract(address, _abi, signerOrProvider) as Erc20Stablecoin;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type { StableQiVault, StableQiVaultInterface } from \"../StableQiVault\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"promoter\",\n type: \"uint256\",\n },\n ],\n name: \"AddedFrontEnd\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"riskyVault\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newVault\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"riskyVaultBuyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amountPaidtoBuy\",\n type: \"uint256\",\n },\n ],\n name: \"BoughtRiskyDebtVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BurnedToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"promoter\",\n type: \"uint256\",\n },\n ],\n name: \"RemovedFrontEnd\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"newAdmin\",\n type: \"address\",\n },\n ],\n name: \"UpdatedAdmin\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newFee\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedClosingFee\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedDebtRatio\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"_ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"UpdatedEthPriceSource\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_adminFee\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_refFee\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedFees\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"promoter\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newFee\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedFrontEnd\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedGainRatio\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"interestRate\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedInterestRate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMaxDebt\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedMaxDebt\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMinCollateralRatio\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedMinCollateralRatio\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMinDebt\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedMinDebt\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newFee\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedOpeningFee\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"string\",\n name: \"oracle\",\n type: \"string\",\n },\n ],\n name: \"UpdatedOracleName\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"newRef\",\n type: \"address\",\n },\n ],\n name: \"UpdatedRef\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"pool\",\n type: \"address\",\n },\n ],\n name: \"UpdatedStabilityPool\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"string\",\n name: \"uri\",\n type: \"string\",\n },\n ],\n name: \"UpdatedTokenURI\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"earned\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawInterest\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"accumulatedVaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_promoter\",\n type: \"uint256\",\n },\n ],\n name: \"addFrontEnd\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"adm\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"adminFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_front\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"buyRiskDebtVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"fee\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"promoFee\",\n type: \"uint256\",\n },\n ],\n name: \"calculateFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkRiskyVault\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"decimalDifferenceRaisedToTen\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract IPriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"pay\",\n type: \"address\",\n },\n ],\n name: \"getPaid\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getTotalValueLocked\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"iR\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_collateral\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"debt\",\n type: \"uint256\",\n },\n ],\n name: \"isValidCollateral\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"lastInterest\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_front\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"maiDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"maxDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"minDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_front\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"deadline\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_front\",\n type: \"uint256\",\n },\n ],\n name: \"paybackTokenAll\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"promoter\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"ref\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"refFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_promoter\",\n type: \"uint256\",\n },\n ],\n name: \"removeFrontEnd\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_adm\",\n type: \"address\",\n },\n ],\n name: \"setAdmin\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_admin\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_ref\",\n type: \"uint256\",\n },\n ],\n name: \"setFees\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_iR\",\n type: \"uint256\",\n },\n ],\n name: \"setInterestRate\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_maxDebt\",\n type: \"uint256\",\n },\n ],\n name: \"setMaxDebt\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_minDebt\",\n type: \"uint256\",\n },\n ],\n name: \"setMinDebt\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_openingFee\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_ref\",\n type: \"address\",\n },\n ],\n name: \"setRef\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_promoter\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"cashback\",\n type: \"uint256\",\n },\n ],\n name: \"updateFrontEnd\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"string\",\n name: \"_oracle\",\n type: \"string\",\n },\n ],\n name: \"updateOracleName\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"updateVaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"version\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"withdrawInterest\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class StableQiVault__factory {\n static readonly abi = _abi;\n static createInterface(): StableQiVaultInterface {\n return new utils.Interface(_abi) as StableQiVaultInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): StableQiVault {\n return new Contract(address, _abi, signerOrProvider) as StableQiVault;\n }\n}\n","import { Provider } from '@ethersproject/providers'\nimport { constants, Signer } from 'ethers'\nimport {\n CrosschainNativeQiStablecoin,\n CrosschainQiStablecoin,\n CrosschainQiStablecoinSlim,\n CrosschainQiStablecoinSlimV2,\n CrosschainQiStablecoinSlimV2__factory,\n CrosschainQiStablecoinV2,\n CrosschainQiStablecoinSlim__factory,\n CrosschainQiStablecoinV2__factory,\n CrosschainQiStablecoinwbtc,\n CrosschainQiStablecoin__factory,\n Erc20QiStablecoincamwbtc,\n Erc20QiStablecoinwbtc,\n Erc20Stablecoin,\n StableQiVault,\n StableQiVault__factory,\n CrosschainNativeQiStablecoin__factory,\n CrosschainQiStablecoinwbtc__factory,\n Erc20Stablecoin__factory,\n Erc20QiStablecoinwbtc__factory,\n Erc20QiStablecoincamwbtc__factory,\n} from './contracts'\nimport { Token } from './entities'\nimport {\n AAVE_ADDRESS,\n CAMAAVE_VAULT_ADDRESS, CAMDAI_VAULT_ADDRESS, CAMWBTC_VAULT_ADDRESS,\n CAMWETH_VAULT_ADDRESS,\n CAMWMATIC_VAULT_ADDRESS,\n ChainId, LINK_ADDRESS, METIS_WBTC_ADDRESS, MOO_BIFI_FTM_VAULT_ADDRESS,\n MOO_SCREAM_DAI_VAULT_ADDRESS,\n MOO_SCREAM_ETH_VAULT_ADDRESS, MOO_SCREAM_LINK_VAULT_ADDRESS,\n MOO_SCREAM_WBTC_VAULT_ADDRESS,\n MOO_SCREAM_WFTM_VAULT_ADDRESS, MOO_ETH_STETH_CRV_VAULT_ADDRESS, MOO_WAVAX_VAULT_ADDRESS,\n OG_MATIC_VAULT, STETH_ADDRESS, WETH_ADDRESS, WFTM_ADDRESS, WSTETH_VAULT_ADDRESS,\n YVDAI_VAULT_ADDRESS, YVETH_VAULT_ADDRESS, YVLINK_VAULT_ADDRESS,\n YVWBTC_VAULT_ADDRESS, YVWETH_OPTIMISM_VAULT_ADDRESS,\n YVWETH_VAULT_ADDRESS,\n YVWFTM_VAULT_ADDRESS,\n YVYFI_VAULT_ADDRESS\n} from './constants'\n\nexport type SnapshotCanonicalChoiceName =\n | 'Wrapped MATIC (Polygon)'\n | 'WETH (Polygon)'\n | 'WBTC (Polygon)'\n | 'AAVE (Polygon)'\n | 'LINK (Polygon)'\n | 'xxLINK (Polygon)'\n | 'KNC (Polygon)'\n | 'CRV (Polygon)'\n | 'BAL (Polygon)'\n | 'GHST (Polygon)'\n | 'vGHST (Polygon)'\n | 'Frax Share (Polygon)'\n | 'SAND (Polygon)'\n | 'Compounding Aave MATIC (Polygon)'\n | 'Compounding Aave ETH (Polygon)'\n | 'Compounding Aave AAVE (Polygon)'\n | 'Compounding Aave WBTC (Polygon)'\n | 'WETH (Fantom)'\n | 'WFTM (Fantom)'\n | 'LINK (Fantom)'\n | 'WBTC (Fantom)'\n | 'SUSHI (Fantom)'\n | 'AAVE (Fantom)'\n | 'mooBIFI (Fantom)'\n | 'xBOO (Fantom)'\n | 'Yearn vault WFTM (Fantom)'\n | 'Yearn vault BTC (Fantom)'\n | 'Yearn vault ETH (Fantom)'\n | 'Yearn vault YFI (Fantom)'\n | 'WBTC (Avalanche)'\n | 'WETH (Avalanche)'\n | 'WAVAX (Avalanche)'\n | 'Beefy Aave AVAX (Avalanche)'\n | 'MOVR (Moonriver)'\n | 'WETH (Gnosis Chain)'\n | 'GNO (Gnosis Chain)'\n | 'WETH (Arbitrum)'\n | 'WBTC (Arbitrum)'\n | 'WETH (Optimism)'\n | 'WBTC (Optimism)'\n | 'OP (Optimism)'\n | 'Beefy Aave ETH (Optimism)'\n | 'Beefy Aave BTC (Optimism)'\n | 'CAKE (BNB)'\n | 'BNB (BNB)'\n | 'DODO (BNB)'\n | 'METIS (Metis)'\n | 'WETH (Metis)'\n | 'WBTC (Metis)'\n | 'm.WBTC (Metis)'\n | 'Yearn WETH (Ethereum)'\n | 'Yearn LINK (Ethereum)'\n | 'WBTC (Ethereum)'\n | 'WETH (Ethereum)'\n | 'StakeDAO Curve ETH/stETH (Eth)'\n | 'Yearn Curve ETH/stETH (Ethereum)'\n | 'MAI DAI Arrakis Polygon'\n | 'Wrapped Staked ETH (Optimism)'\n | 'Yearn vault ETH (Optimism)'\n | 'Beefy stETH Curve (Optimism)'\n\nexport type VaultShortName =\n | 'aave'\n | 'avax'\n | 'avaxweth'\n | 'avaxwbtc'\n | 'bal'\n | 'bal-old'\n | 'beefy-aave-avax'\n | 'beefy-aave-dai'\n | 'beefy-aave-weth'\n | 'beefy-aave-wbtc'\n | 'beefy-bifi'\n | 'beefy-scream-dai'\n | 'beefy-scream-eth'\n | 'beefy-scream-ftm'\n | 'beefy-scream-link'\n | 'beefy-scream-wbtc'\n | 'beefy-spooky-btc-ftm'\n | 'beefy-spooky-eth-ftm'\n | 'btc'\n | 'btc_old'\n | 'cake'\n | 'camaave'\n | 'camdai'\n | 'camwbtc'\n | 'camweth'\n | 'camwmatic'\n | 'crv'\n | 'cxada'\n | 'cxdoge'\n | 'cxeth'\n | 'dquick'\n | 'dquick-old'\n | 'eth'\n | 'ftm'\n | 'ftmweth'\n | 'fxs'\n | 'ghst'\n | 'gno'\n | 'link'\n | 'matic'\n | 'moo-solar-eth-usdc'\n | 'moo-solar-movr-usdc'\n | 'movr'\n | 'one'\n | 'sdam3crv'\n | 'sdav3crv'\n | 'sushi'\n | 'vghst'\n | 'wbtc'\n | 'wbnb'\n | 'weth'\n | 'weth-old'\n | 'yveth'\n | 'yvlink'\n | 'yvcrv-eth-steth'\n | 'yvwdai'\n | 'yvwftm'\n | 'yvwbtc'\n | 'yvyfi'\n | 'celsius'\n | 'sand'\n | 'stake-dao-crv-eth-steth'\n | 'wmatic'\n | 'xboo'\n | 'dodo'\n | 'xxdai'\n | 'xxlink'\n | 'op'\n | 'metis'\n | 'mwbtc'\n | 'knc'\n | 'xSMVT'\n | 'GLMVT'\n | 'LSMMVT'\n | 'STMMVT'\n | 'maidai'\n | 'yvweth'\n | 'wsteth'\n | 'beefy-eth-steth-crv'\n\ntype VaultContractAbi =\n | typeof Erc20Stablecoin__factory.abi\n | typeof Erc20QiStablecoinwbtc__factory.abi\n | typeof Erc20QiStablecoincamwbtc__factory.abi\n | typeof StableQiVault__factory.abi\n | typeof CrosschainQiStablecoin__factory.abi\n | typeof CrosschainNativeQiStablecoin__factory.abi\n | typeof CrosschainQiStablecoinV2__factory.abi\n | typeof CrosschainQiStablecoinSlim__factory.abi\n | typeof CrosschainQiStablecoinSlimV2__factory.abi\n | typeof CrosschainQiStablecoinwbtc__factory.abi\n\nexport enum FRONTEND {\n MAI,\n MANHATTAN,\n STELLASWAP,\n}\n\nexport interface COLLATERAL {\n aaveId?: string\n connect(\n address: string,\n signerOrProvider: Signer | Provider\n ):\n | Erc20Stablecoin\n | Erc20QiStablecoinwbtc\n | Erc20QiStablecoincamwbtc\n | StableQiVault\n | CrosschainQiStablecoin\n | CrosschainNativeQiStablecoin\n | CrosschainQiStablecoinV2\n | CrosschainQiStablecoinSlim\n | CrosschainQiStablecoinSlimV2\n | CrosschainQiStablecoinwbtc\n chainId: ChainId\n depreciated?: boolean\n disabled?: boolean\n infoUrl?: string\n minimumCDR: number\n native?: boolean\n subgraph?: string\n token: Token\n vaultAddress: string\n shortName: VaultShortName\n contractAbi: VaultContractAbi\n frontend: FRONTEND\n version: 1\n fallbackUnderlyingAddress?: string\n}\n\nexport interface GAUGE_VALID_COLLATERAL extends COLLATERAL {\n snapshotName: SnapshotCanonicalChoiceName\n}\n\nexport interface COLLATERAL_V2 extends Omit<COLLATERAL, 'version'> {\n version: 2\n}\n\nexport interface GAUGE_VALID_COLLATERAL_V2 extends COLLATERAL_V2 {\n snapshotName: SnapshotCanonicalChoiceName\n}\n\n\nexport function isV2QiVault(collateral: COLLATERAL | COLLATERAL_V2 | GAUGE_VALID_COLLATERAL | GAUGE_VALID_COLLATERAL_V2): collateral is COLLATERAL_V2 | GAUGE_VALID_COLLATERAL_V2 {\n return collateral.version === 2\n}\n\nexport function isGaugeValid(collateral: COLLATERAL | COLLATERAL_V2 | GAUGE_VALID_COLLATERAL | GAUGE_VALID_COLLATERAL_V2): collateral is GAUGE_VALID_COLLATERAL | GAUGE_VALID_COLLATERAL_V2{\n return ((collateral as GAUGE_VALID_COLLATERAL).snapshotName !== undefined && !collateral.depreciated)\n}\n\nexport const COLLATERALS: { [chainId in ChainId]?: (COLLATERAL | GAUGE_VALID_COLLATERAL | COLLATERAL_V2 | GAUGE_VALID_COLLATERAL_V2)[] } = {\n [ChainId.MAINNET]: [\n {\n shortName: 'weth',\n vaultAddress: '0x98eb27E5F24FB83b7D129D789665b08C258b4cCF',\n chainId: ChainId.MAINNET,\n token: new Token(ChainId.MAINNET, WETH_ADDRESS, 18, 'WETH', 'Wrapped Ether'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 120,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'WETH (Ethereum)'\n },\n {\n shortName: 'wbtc',\n vaultAddress: '0x8C45969aD19D297c9B85763e90D0344C6E2ac9d1',\n chainId: ChainId.MAINNET,\n token: new Token(ChainId.MAINNET, '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', 8, 'WBTC', 'Wrapped Bitcoin'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 120,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'WBTC (Ethereum)'\n },\n {\n shortName: 'stake-dao-crv-eth-steth',\n fallbackUnderlyingAddress: STETH_ADDRESS,\n vaultAddress: '0xcc61Ee649A95F2E2f0830838681f839BDb7CB823',\n chainId: ChainId.MAINNET,\n token: new Token(\n ChainId.MAINNET,\n '0xbC10c4F7B9FE0B305e8639B04c536633A3dB7065',\n 18,\n 'sdsteCRV',\n 'StakeDAO Curve.fi ETH/stETH'\n ),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 125,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'StakeDAO Curve ETH/stETH (Eth)',\n },\n {\n shortName: 'yvcrv-eth-steth',\n fallbackUnderlyingAddress: STETH_ADDRESS,\n vaultAddress: '0x82E90EB7034C1DF646bD06aFb9E67281AAb5ed28',\n chainId: ChainId.MAINNET,\n token: new Token(\n ChainId.MAINNET,\n '0xdCD90C7f6324cfa40d7169ef80b12031770B4325',\n 18,\n 'yvcurve-eth-steth',\n 'Yearn Curve.fi ETH/stETH'\n ),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 125,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Yearn Curve ETH/stETH (Ethereum)',\n },\n {\n shortName: 'yveth',\n vaultAddress: YVETH_VAULT_ADDRESS,\n fallbackUnderlyingAddress: WETH_ADDRESS,\n chainId: ChainId.MAINNET,\n token: new Token(ChainId.MAINNET, '0xa258C4606Ca8206D8aA700cE2143D7db854D168c', 18, 'YVETH', 'Yearn WETH'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 125,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Yearn WETH (Ethereum)',\n },\n {\n shortName: 'yvlink',\n vaultAddress: YVLINK_VAULT_ADDRESS,\n fallbackUnderlyingAddress: LINK_ADDRESS,\n chainId: ChainId.MAINNET,\n token: new Token(ChainId.MAINNET, '0x671a912C10bba0CFA74Cfc2d6Fba9BA1ed9530B2', 18, 'YVLINK', 'Yearn Link'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 140,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Yearn LINK (Ethereum)',\n },\n ],\n [ChainId.FANTOM]: [\n {\n shortName: 'ftm',\n vaultAddress: '0x1066b8FC999c1eE94241344818486D5f944331A0',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, WFTM_ADDRESS, 18, 'FTM', 'Fantom'),\n minimumCDR: 130,\n native: true,\n contractAbi: CrosschainNativeQiStablecoin__factory.abi,\n connect: CrosschainNativeQiStablecoin__factory.connect,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-fantom-vaults',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WFTM (Fantom)'\n },\n {\n shortName: 'yvwftm',\n vaultAddress: YVWFTM_VAULT_ADDRESS,\n fallbackUnderlyingAddress: WFTM_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x0DEC85e74A92c52b7F708c4B10207D9560CEFaf0', 18, 'yvWFTM', 'Yearn Fantom'),\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-yvwftm-vaults',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Yearn vault WFTM (Fantom)',\n },\n {\n shortName: 'yvwbtc',\n vaultAddress: YVWBTC_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0xd817a100ab8a29fe3dbd925c2eb489d67f758da9',\n 8,\n 'yvWBTC',\n 'Yearn Wrapped Bitcoin'\n ),\n fallbackUnderlyingAddress: '0x321162Cd933E2Be498Cd2267a90534A804051b11',\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoinSlimV2__factory.abi,\n connect: CrosschainQiStablecoinSlimV2__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Yearn vault BTC (Fantom)',\n },\n {\n shortName: 'yvyfi',\n vaultAddress: YVYFI_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x2C850cceD00ce2b14AA9D658b7Cad5dF659493Db', 18, 'yvYFI', 'Yearn Vault YFI'),\n minimumCDR: 135,\n fallbackUnderlyingAddress: '0x29b0Da86e484E1C0029B56e817912d778aC0EC69',\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Yearn vault YFI (Fantom)',\n },\n {\n shortName: 'yveth',\n vaultAddress: YVWETH_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n fallbackUnderlyingAddress: '0x74b23882a30290451A17c44f4F05243b6b58C76d',\n token: new Token(\n ChainId.FANTOM,\n '0xCe2Fc0bDc18BD6a4d9A725791A3DEe33F3a23BB7',\n 18,\n 'yvWETH',\n 'Yearn Wrapped Ether'\n ),\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Yearn vault ETH (Fantom)',\n },\n {\n shortName: 'yvwdai',\n vaultAddress: YVDAI_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x637eC617c86D24E421328e6CAEa1d92114892439', 18, 'yvDAI', 'Yearn DAI'),\n minimumCDR: 110,\n fallbackUnderlyingAddress: '0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e',\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-yvdai-vaults',\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'ftmweth',\n vaultAddress: '0xD939c268C49c442F037E968F045ba02f499562D4',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x74b23882a30290451A17c44f4F05243b6b58C76d', 18, 'ETH', 'Ethereum'),\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-fantom-eth-vaults',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Fantom)',\n },\n {\n shortName: 'aave',\n vaultAddress: '0xdB09908b82499CAdb9E6108444D5042f81569bD9',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x6a07A792ab2965C72a5B8088d3a069A7aC3a993B', 18, 'AAVE', 'Aave'),\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'AAVE (Fantom)',\n },\n {\n shortName: 'sushi',\n vaultAddress: '0x267bDD1C19C932CE03c7A62BBe5b95375F9160A6',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0xae75A438b2E0cB8Bb01Ec1E1e376De11D44477CC', 18, 'SUSHI', 'Sushi'),\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'SUSHI (Fantom)',\n },\n {\n shortName: 'link',\n vaultAddress: '0xd6488d586E8Fcd53220e4804D767F19F5C846086',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0xb3654dc3D10Ea7645f8319668E8F54d2574FBdC8', 18, 'LINK', 'ChainLink'),\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'LINK (Fantom)'\n },\n {\n shortName: 'btc',\n vaultAddress: '0xE5996a2cB60eA57F03bf332b5ADC517035d8d094',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x321162Cd933E2Be498Cd2267a90534A804051b11', 8, 'BTC', 'Bitcoin'),\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoinwbtc__factory.abi,\n connect: CrosschainQiStablecoinwbtc__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WBTC (Fantom)',\n },\n {\n shortName: 'beefy-scream-wbtc',\n vaultAddress: MOO_SCREAM_WBTC_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0x97927aBfE1aBBE5429cBe79260B290222fC9fbba',\n 18,\n 'mooScreamWBTC',\n 'Beefy Scream WBTC'\n ),\n minimumCDR: 135,\n fallbackUnderlyingAddress: '0x321162Cd933E2Be498Cd2267a90534A804051b11',\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'beefy-scream-dai',\n vaultAddress: MOO_SCREAM_DAI_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0x920786cff2A6f601975874Bb24C63f0115Df7dc8',\n 18,\n 'mooScreamDAI',\n 'Beefy Scream DAI'\n ),\n fallbackUnderlyingAddress: '0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e',\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'beefy-scream-eth',\n vaultAddress: MOO_SCREAM_ETH_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0x0a03D2C1cFcA48075992d810cc69Bd9FE026384a',\n 18,\n 'mooScreamETH',\n 'Beefy Scream ETH'\n ),\n fallbackUnderlyingAddress: '0x74b23882a30290451A17c44f4F05243b6b58C76d',\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'beefy-scream-ftm',\n vaultAddress: MOO_SCREAM_WFTM_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0x49c68eDb7aeBd968F197121453e41b8704AcdE0C',\n 18,\n 'mooScreamFTM',\n 'Beefy Scream FTM'\n ),\n fallbackUnderlyingAddress: '0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83',\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'beefy-scream-link',\n vaultAddress: MOO_SCREAM_LINK_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0x6DfE2AAEA9dAadADf0865B661b53040E842640f8',\n 18,\n 'mooScreamLINK',\n 'Beefy Scream LINK'\n ),\n fallbackUnderlyingAddress: '0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8',\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'beefy-spooky-btc-ftm',\n vaultAddress: '0xF34e271312e41Bbd7c451B76Af2AF8339D6f16ED',\n depreciated: true,\n chainId: ChainId.FANTOM,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(\n ChainId.FANTOM,\n '0xA3e3Af161943CfB3941B631676134bb048739727',\n 18,\n 'mooBooBTC-FTM',\n 'Beefy SpookySwap BTC-FTM LP'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n /* {\n shortName: \"beefy-spooky-dai-ftm\",\n vaultAddress: \"0xFc6F8Dd56E9ECAc70795Adc312EE363c608DefdA\",\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n \"0x8316b990De26eB530B7B1bb0d87f5b0a304637cd\",\n 18,\n \"mooBooDAI-FTM\",\n \"Moo Boo DAI-FTM\"\n ),\n minimumCDR: 135,\n version: 1\n snapshotName: '',\n }, */\n {\n shortName: 'beefy-spooky-eth-ftm',\n vaultAddress: '0x9BA01B1279B1F7152b42aCa69fAF756029A9ABDe',\n depreciated: true,\n chainId: ChainId.FANTOM,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(\n ChainId.FANTOM,\n '0x2a30C5e0d577108F694d2A96179cd73611Ee069b',\n 18,\n 'mooBooETH-FTM',\n 'Beefy SpookySwap ETH-FTM LP'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n /* {\n shortName: \"beefy-spooky-ftm-usdc\",\n vaultAddress: \"0x7BB4a236c4DA7F9593Caaa84ed0c63E81B9650A2\",\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n \"0x41D44B276904561Ac51855159516FD4cB2c90968\",\n 18,\n \"mooBooFTM-USDC\",\n \"Moo Boo FTM-USDC\"\n ),\n minimumCDR: 135,\n version: 1\n snapshotName: '',\n }, */\n {\n shortName: 'beefy-bifi',\n vaultAddress: MOO_BIFI_FTM_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0xbF07093ccd6adFC3dEB259C557b61E94c1F66945',\n 18,\n 'mooFantomBIFI',\n 'Beefy Staked BIFI'\n ),\n minimumCDR: 140,\n fallbackUnderlyingAddress: '0xd6070ae98b8069de6b494332d1a1a81b6179d960',\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'mooBIFI (Fantom)',\n },\n {\n shortName: 'xboo',\n vaultAddress: '0x3f6cf10e85e9c0630856599FAB8D8BFcd9C0E7D4',\n chainId: ChainId.FANTOM,\n fallbackUnderlyingAddress: '0x841fad6eae12c286d1fd18d1d525dffa75c7effe',\n token: new Token(ChainId.FANTOM, '0xa48d959AE2E88f1dAA7D5F611E01908106dE7598', 18, 'XBOO', 'xBoo MirrorWorld'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 155,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'xBOO (Fantom)',\n },\n ],\n [ChainId.AVALANCHE]: [\n {\n shortName: 'beefy-aave-avax',\n vaultAddress: MOO_WAVAX_VAULT_ADDRESS,\n chainId: ChainId.AVALANCHE,\n token: new Token(\n ChainId.AVALANCHE,\n '0x1B156C5c75E9dF4CAAb2a5cc5999aC58ff4F9090',\n 18,\n 'mooAaveAVAX',\n 'Beefy Aave AVAX'\n ),\n minimumCDR: 135,\n fallbackUnderlyingAddress: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Beefy Aave AVAX (Avalanche)',\n },\n {\n shortName: 'sdav3crv',\n vaultAddress: '0x13A7fE3Ab741ea6301Db8B164290bE711f546A73',\n chainId: ChainId.AVALANCHE,\n token: new Token(\n ChainId.AVALANCHE,\n '0x0665eF3556520B21368754Fb644eD3ebF1993AD4',\n 18,\n 'sdav3CRV',\n 'Stake DAO av3CRV Strategy'\n ),\n contractAbi: CrosschainQiStablecoinSlimV2__factory.abi,\n connect: CrosschainQiStablecoinSlimV2__factory.connect,\n minimumCDR: 110,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'avaxwbtc',\n vaultAddress: '0x1f8f7a1d38e41eaf0ed916def29bdd13f2a3f11a',\n chainId: ChainId.AVALANCHE,\n token: new Token(ChainId.AVALANCHE, '0x50b7545627a5162F82A992c33b87aDc75187B218', 8, 'WBTC.e', 'Wrapped BTC'),\n contractAbi: CrosschainQiStablecoinSlimV2__factory.abi,\n connect: CrosschainQiStablecoinSlimV2__factory.connect,\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WBTC (Avalanche)',\n },\n {\n shortName: 'avaxweth',\n vaultAddress: '0xa9122dacf3fccf1aae6b8ddd1f75b6267e5cbbb8',\n chainId: ChainId.AVALANCHE,\n token: new Token(ChainId.AVALANCHE, '0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB', 18, 'WETH', 'Wrapped Ethereum'),\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Avalanche)',\n },\n {\n shortName: 'avax',\n vaultAddress: '0x73a755378788a4542a780002a75a7bae7f558730',\n chainId: ChainId.AVALANCHE,\n token: new Token(ChainId.AVALANCHE, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WAVAX (Avalanche)',\n },\n ],\n [ChainId.ARBITRUM]: [\n {\n shortName: 'weth-old',\n depreciated: true,\n vaultAddress: '0xf5c2b1b92456fe1b1208c63d8ea040d464f74a72',\n chainId: ChainId.ARBITRUM,\n contractAbi: CrosschainNativeQiStablecoin__factory.abi,\n connect: CrosschainNativeQiStablecoin__factory.connect,\n token: new Token(\n ChainId.ARBITRUM,\n '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',\n 18,\n 'WETH (OLD)',\n 'Wrapped Ether (OLD)'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'weth',\n vaultAddress: '0xC76a3cBefE490Ae4450B2fCC2c38666aA99f7aa0',\n chainId: ChainId.ARBITRUM,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.ARBITRUM, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Arbitrum)',\n },\n {\n shortName: 'wbtc',\n vaultAddress: '0xB237f4264938f0903F5EC120BB1Aa4beE3562FfF',\n chainId: ChainId.ARBITRUM,\n contractAbi: CrosschainQiStablecoinSlimV2__factory.abi,\n connect: CrosschainQiStablecoinSlimV2__factory.connect,\n token: new Token(ChainId.ARBITRUM, '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', 8, 'WBTC', 'Wrapped Bitcoin'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WBTC (Arbitrum)',\n },\n ],\n [ChainId.OPTIMISM]: [\n {\n shortName: 'weth',\n vaultAddress: '0x062016Cd29Fabb26c52BAB646878987fC9B0Bc55',\n chainId: ChainId.OPTIMISM,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Optimism)',\n },\n {\n shortName: 'wbtc',\n vaultAddress: '0xB9C8F0d3254007eE4b98970b94544e473Cd610EC',\n chainId: ChainId.OPTIMISM,\n contractAbi: CrosschainQiStablecoinSlimV2__factory.abi,\n connect: CrosschainQiStablecoinSlimV2__factory.connect,\n token: new Token(ChainId.OPTIMISM, '0x68f180fcCe6836688e9084f035309E29Bf0A2095', 8, 'WBTC', 'Wrapped BTC'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WBTC (Optimism)',\n },\n {\n shortName: 'op',\n vaultAddress: '0xbf1aeA8670D2528E08334083616dD9C5F3B087aE',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(ChainId.OPTIMISM, '0x4200000000000000000000000000000000000042', 18, 'OP', 'Optimism'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'OP (Optimism)',\n },\n {\n shortName: 'beefy-aave-dai',\n vaultAddress: '0xB89c1b3d9f335B9d8Bb16016F3d60160AE71041f',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n fallbackUnderlyingAddress: '0xda10009cbd5d07dd0cecc66161fc93d7c9000da1',\n token: new Token(\n ChainId.OPTIMISM,\n '0x4D153F47F03c237F6360a6eccd185b4aE09c63D0',\n 18,\n 'mooAaveDAI',\n 'Beefy OP Aave Dai'\n ),\n minimumCDR: 110,\n frontend: FRONTEND.MAI,\n version: 2,\n },\n {\n shortName: 'beefy-aave-weth',\n vaultAddress: '0xF9CE2522027bD40D3b1aEe4abe969831FE3BeAf5',\n fallbackUnderlyingAddress: '0x4200000000000000000000000000000000000006',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(\n ChainId.OPTIMISM,\n '0x7eE71053102d54Fc843BaEBaf07277C2b6dB64f1',\n 18,\n 'mooAaveWETH',\n 'Beefy OP Aave WETH'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Beefy Aave ETH (Optimism)',\n },\n {\n shortName: 'beefy-aave-wbtc',\n vaultAddress: '0xAB91c51b55F7Dd7B34F2FD7217506fD5b632B2B9',\n fallbackUnderlyingAddress: '0x68f180fcCe6836688e9084f035309E29Bf0A2095',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(\n ChainId.OPTIMISM,\n '0x8e2cdf8c6477439b7c989e86b917d80871b92339',\n 18,\n 'mooAaveWBTC',\n 'Beefy OP Aave WBTC'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Beefy Aave BTC (Optimism)',\n },\n {\n shortName: 'wsteth',\n vaultAddress: WSTETH_VAULT_ADDRESS,\n fallbackUnderlyingAddress: '0x4200000000000000000000000000000000000006',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(\n ChainId.OPTIMISM,\n '0x926B92B15385981416a5E0Dcb4f8b31733d598Cf',\n 18,\n 'wstETH',\n 'Wrapped liquid staked Ether 2.0'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Wrapped Staked ETH (Optimism)',\n },\n {\n shortName: 'yvweth',\n vaultAddress: YVWETH_OPTIMISM_VAULT_ADDRESS,\n fallbackUnderlyingAddress: '0x4200000000000000000000000000000000000006',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(\n ChainId.OPTIMISM,\n '0x22f39d6535dF5767f8F57FEE3B2F941410773ec4',\n 18,\n 'yvWETH',\n 'WETH yVault'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Yearn vault ETH (Optimism)',\n },\n {\n shortName: 'beefy-eth-steth-crv',\n vaultAddress: MOO_ETH_STETH_CRV_VAULT_ADDRESS,\n fallbackUnderlyingAddress: '0x4200000000000000000000000000000000000006',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(\n ChainId.OPTIMISM,\n '0x480798FAC621adD14113ECC82638305c260cEaf1',\n 18,\n 'mooCurveWSTETH',\n 'Beefy OP Curve ETH/stETH'\n ),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Beefy stETH Curve (Optimism)',\n }\n ],\n [ChainId.MOONRIVER]: [\n {\n shortName: 'eth',\n vaultAddress: '0x4a0474E3262d4DB3306Cea4F207B5d66eC8E0AA9',\n depreciated: true,\n chainId: ChainId.MOONRIVER,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(ChainId.MOONRIVER, '0x639A647fbe20b6c8ac19E48E2de44ea792c62c5C', 18, 'ETH', 'Ethereum'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'moo-solar-eth-usdc',\n vaultAddress: '0x97D811A7eb99Ef4Cb027ad59800cE27E68Ee1109',\n depreciated: true,\n chainId: ChainId.MOONRIVER,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(\n ChainId.MOONRIVER,\n '0x932009984bd2a7dA8C6396694E811Da5C0952d05',\n 18,\n 'mooSolarETH-USDC',\n 'Beefy Solarbeam ETH-USDC LP'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'movr',\n native: true,\n vaultAddress: '0x5dB6617DDF077d76CFD9d7fC0Fa91aAabc3da683',\n chainId: ChainId.MOONRIVER,\n contractAbi: CrosschainNativeQiStablecoin__factory.abi,\n connect: CrosschainNativeQiStablecoin__factory.connect,\n token: new Token(ChainId.MOONRIVER, '0x98878B06940aE243284CA214f92Bb71a2b032B8A', 18, 'MOVR', 'Moonriver'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'MOVR (Moonriver)',\n },\n {\n shortName: 'moo-solar-movr-usdc',\n vaultAddress: '0xF4fa968578723580935a00d1e12Fe96Bc6401947',\n depreciated: true,\n chainId: ChainId.MOONRIVER,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(\n ChainId.MOONRIVER,\n '0x78Dc4b7C7A89812fb337dD8C3B0ccB3e04E02D7C',\n 18,\n 'mooSolarMOVR-USDC',\n 'Beefy Solarbeam MOVR-USDC LP'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n ],\n [ChainId.MOONBEAM]: [\n {\n connect: StableQiVault__factory.connect,\n chainId: ChainId.MOONBEAM,\n minimumCDR: 200,\n token: new Token(ChainId.MOONBEAM, '0xAcc15dC74880C9944775448304B263D191c6077F', 18, 'WGLMT', 'Wrapped GLMR'),\n shortName: 'GLMVT',\n frontend: FRONTEND.MANHATTAN,\n vaultAddress: '0x3A82F4da24F93a32dc3C2A28cFA9D6E63EC28531',\n contractAbi: StableQiVault__factory.abi,\n version: 2,\n },\n {\n connect: StableQiVault__factory.connect,\n chainId: ChainId.MOONBEAM,\n minimumCDR: 250,\n token: new Token(ChainId.MOONBEAM, '0x06A3b410b681c82417A906993aCeFb91bAB6A080', 18, 'xStella', 'xStella'),\n shortName: 'xSMVT',\n frontend: FRONTEND.MANHATTAN,\n vaultAddress: '0x3756465c5b1C1C4cEe473880c9726E20875284f1',\n contractAbi: StableQiVault__factory.abi,\n version: 2,\n },\n ],\n [ChainId.HARMONY]: [\n {\n shortName: 'eth',\n vaultAddress: '0x46469f995A5CB60708200C25EaD3cF1667Ed36d6',\n chainId: ChainId.HARMONY,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n token: new Token(ChainId.HARMONY, '0x6983D1E6DEf3690C4d616b13597A09e6193EA013', 18, '1ETH', 'Wrapped Ethereum'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'one',\n vaultAddress: '0x12FcB286D664F37981a42cbAce92eAf28d1dA94f',\n native: true,\n chainId: ChainId.HARMONY,\n contractAbi: CrosschainNativeQiStablecoin__factory.abi,\n connect: CrosschainNativeQiStablecoin__factory.connect,\n token: new Token(ChainId.HARMONY, '0xcF664087a5bB0237a0BAd6742852ec6c8d69A27a', 18, 'ONE', 'Harmony (ONE)'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'btc_old',\n vaultAddress: '0x9f4E3d01c634441F284beb92bBAEeb76133BbB28',\n depreciated: true,\n chainId: ChainId.HARMONY,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(\n ChainId.HARMONY,\n '0x3095c7557bCb296ccc6e363DE01b760bA031F2d9',\n 8,\n '1WBTC OLD',\n 'Wrapped Bitcoin OLD'\n ),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'btc',\n vaultAddress: '0x4592e0bcf01121757e70404915f220a77ffb4e15',\n depreciated: true,\n chainId: ChainId.HARMONY,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(ChainId.HARMONY, '0x3095c7557bCb296ccc6e363DE01b760bA031F2d9', 8, '1WBTC', 'Wrapped Bitcoin'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n ],\n [ChainId.BSC]: [\n {\n shortName: 'wbnb',\n vaultAddress: '0xA56F9A54880afBc30CF29bB66d2D9ADCdcaEaDD6',\n chainId: ChainId.BSC,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.BSC, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'Wrapped BNB', 'WBNB'),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'BNB (BNB)',\n },\n {\n shortName: 'cake',\n vaultAddress: '0x014A177E9642d1b4E970418f894985dC1b85657f',\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n chainId: ChainId.BSC,\n token: new Token(ChainId.BSC, '0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82', 18, 'PancakeSwap Token', 'CAKE'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'CAKE (BNB)',\n },\n {\n shortName: 'dodo',\n vaultAddress: '0x7333fd58d8D73a8e5FC1a16C8037ADa4f580FA2B',\n chainId: ChainId.BSC,\n token: new Token(ChainId.BSC, '0x67ee3Cb086F8a16f34beE3ca72FAD36F7Db929e2', 18, 'DODO', 'DODO'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 150,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'DODO (BNB)',\n },\n ],\n [ChainId.XDAI]: [\n {\n shortName: 'weth',\n vaultAddress: '0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b',\n chainId: ChainId.XDAI,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(ChainId.XDAI, '0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1', 18, 'Wrapped Ether', 'WETH'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Gnosis Chain)',\n },\n {\n shortName: 'gno',\n vaultAddress: '0x014a177e9642d1b4e970418f894985dc1b85657f',\n chainId: ChainId.XDAI,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.XDAI, '0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', 18, 'Gnosis', 'GNO'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'GNO (Gnosis Chain)',\n },\n ],\n [ChainId.MATIC]: [\n {\n shortName: 'matic',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-mai-finance-og',\n vaultAddress: OG_MATIC_VAULT,\n token: new Token(ChainId.MATIC, constants.AddressZero, 18, 'MATIC', 'Polygon MATIC'),\n depreciated: true,\n minimumCDR: 150,\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'camwmatic',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-amwmatic-vaults',\n vaultAddress: CAMWMATIC_VAULT_ADDRESS,\n contractAbi: Erc20Stablecoin__factory.abi,\n fallbackUnderlyingAddress: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270',\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(\n ChainId.MATIC,\n '0x7068Ea5255cb05931EFa8026Bd04b18F3DeB8b0B',\n 18,\n 'camWMATIC',\n 'Compounding Aave Market MATIC'\n ),\n minimumCDR: 135,\n aaveId: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf12700xd05e3e715d945b59290df0ae8ef85c1bdb684744',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Compounding Aave MATIC (Polygon)',\n },\n {\n shortName: 'weth',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-weth-vaults',\n vaultAddress: '0x3fd939B017b31eaADF9ae50C7fF7Fa5c0661d47C',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619', 18, 'WETH', 'Wrapped Ether'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Polygon)',\n },\n {\n shortName: 'camweth',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-cam-weth-vaults',\n vaultAddress: CAMWETH_VAULT_ADDRESS,\n fallbackUnderlyingAddress: \"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619\",\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(\n ChainId.MATIC,\n '0x0470CD31C8FcC42671465880BA81D631F0B76C1D',\n 18,\n 'camWETH',\n 'Compounding Aave Market WETH'\n ),\n minimumCDR: 135,\n aaveId: '0x7ceb23fd6bc0add59e62ac25578270cff1b9f6190xd05e3e715d945b59290df0ae8ef85c1bdb684744',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Compounding Aave ETH (Polygon)',\n },\n {\n shortName: 'camaave',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-cam-aave-vaults',\n vaultAddress: CAMAAVE_VAULT_ADDRESS,\n fallbackUnderlyingAddress: AAVE_ADDRESS,\n token: new Token(\n ChainId.MATIC,\n '0xeA4040B21cb68afb94889cB60834b13427CFc4EB',\n 18,\n 'camAAVE',\n 'Compounding Aave Market AAVE'\n ),\n minimumCDR: 135,\n\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n aaveId: '0xd6df932a45c0f255f85145f286ea0b292b21c90b0xd05e3e715d945b59290df0ae8ef85c1bdb684744',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Compounding Aave AAVE (Polygon)',\n },\n {\n shortName: 'aave',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-aave-vaults',\n vaultAddress: '0x87ee36f780ae843A78D5735867bc1c13792b7b11',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, AAVE_ADDRESS, 18, 'AAVE', 'Aave'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'AAVE (Polygon)',\n },\n {\n shortName: 'link',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-link-vaults',\n vaultAddress: '0x61167073E31b1DAd85a3E531211c7B8F1E5cAE72',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39', 18, 'LINK', 'ChainLink Token'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'LINK (Polygon)',\n },\n {\n shortName: 'crv',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-curve-vaults',\n vaultAddress: '0x98B5F32dd9670191568b661a3e847Ed764943875',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x172370d5Cd63279eFa6d502DAB29171933a610AF', 18, 'CRV', 'Curve Dao Token'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'CRV (Polygon)',\n },\n {\n shortName: 'wbtc',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-wbtc-vaults',\n vaultAddress: '0x37131aEDd3da288467B6EBe9A77C523A700E6Ca1',\n contractAbi: Erc20QiStablecoinwbtc__factory.abi,\n connect: Erc20QiStablecoinwbtc__factory.connect,\n token: new Token(ChainId.MATIC, '0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6', 8, 'WBTC', 'Wrapped BTC'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WBTC (Polygon)',\n },\n {\n shortName: 'camwbtc',\n chainId: ChainId.MATIC,\n fallbackUnderlyingAddress: '0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6',\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-cam-wbtc-vaults',\n vaultAddress: CAMWBTC_VAULT_ADDRESS,\n token: new Token(\n ChainId.MATIC,\n '0xBa6273A78a23169e01317bd0f6338547F869E8Df',\n 8,\n 'camWBTC',\n 'Compounding Aave Market WBTC'\n ),\n minimumCDR: 135,\n aaveId: '0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd60xd05e3e715d945b59290df0ae8ef85c1bdb684744',\n contractAbi: Erc20QiStablecoincamwbtc__factory.abi,\n connect: Erc20QiStablecoincamwbtc__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Compounding Aave WBTC (Polygon)',\n },\n {\n shortName: 'bal-old',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-bal-vaults',\n vaultAddress: '0xf6906b1Cf79Ab14c79DdC7D763c1A517cF9968A5',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3', 18, 'BAL OLD', 'Balancer'),\n minimumCDR: 130,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'dquick-old',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-dquick-vaults',\n vaultAddress: '0x9e6e3e8161Fffb31a6030E56a3E024842567154F',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0xf28164A485B0B2C90639E47b0f377b4a438a16B1', 18, 'dQUICK OLD', 'Dragon QUICK'),\n minimumCDR: 130,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'bal',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-bal-vaults-v2',\n vaultAddress: '0x701A1824e5574B0b6b1c8dA808B184a7AB7A2867',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3', 18, 'BAL', 'Balancer'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'BAL (Polygon)',\n },\n {\n shortName: 'dquick',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-dquick-vaults-v2',\n vaultAddress: '0x649Aa6E6b6194250C077DF4fB37c23EE6c098513',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0xf28164A485B0B2C90639E47b0f377b4a438a16B1', 18, 'dQUICK', 'Dragon QUICK'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'ghst',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-ghst-vaults',\n vaultAddress: '0xF086dEdf6a89e7B16145b03a6CB0C0a9979F1433',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7', 18, 'GHST', 'Aavegotchi GHST'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'GHST (Polygon)',\n },\n {\n shortName: 'camdai',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-camdai-vaults',\n vaultAddress: CAMDAI_VAULT_ADDRESS,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n fallbackUnderlyingAddress: '0x8f3cf7ad23cd3cadbd9735aff958023239c6a063',\n token: new Token(\n ChainId.MATIC,\n '0xE6C23289Ba5A9F0Ef31b8EB36241D5c800889b7b',\n 18,\n 'camDAI',\n 'Compounding Aave Market DAI'\n ),\n minimumCDR: 110,\n aaveId: '0x8f3cf7ad23cd3cadbd9735aff958023239c6a0630xd05e3e715d945b59290df0ae8ef85c1bdb684744',\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'sdam3crv',\n vaultAddress: '0x57Cbf36788113237D64E46f25A88855c3dff1691',\n contractAbi: CrosschainQiStablecoinV2__factory.abi,\n connect: CrosschainQiStablecoinV2__factory.connect,\n chainId: ChainId.MATIC,\n minimumCDR: 110,\n token: new Token(\n ChainId.MATIC,\n '0x7d60F21072b585351dFd5E8b17109458D97ec120',\n 18,\n 'sdam3CRV',\n 'Stake DAO am3CRV Strategy'\n ),\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'fxs',\n vaultAddress: '0xff2c44Fb819757225a176e825255a01B3B8BB051',\n chainId: ChainId.MATIC,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n minimumCDR: 130,\n token: new Token(ChainId.MATIC, '0x1a3acf6D19267E2d3e7f898f42803e90C9219062', 18, 'FXS', 'Frax Share'),\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Frax Share (Polygon)',\n },\n {\n shortName: 'cxeth',\n vaultAddress: '0x7d36999a69f2B99BF3FB98866cBbE47aF43696C8',\n chainId: ChainId.MATIC,\n depreciated: true,\n disabled: true,\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.MATIC, '0xfe4546feFe124F30788c4Cc1BB9AA6907A7987F9', 18, 'cxETH', 'CelsiusX ETH'),\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'cxada',\n vaultAddress: '0x506533B9C16eE2472A6BF37cc320aE45a0a24F11',\n chainId: ChainId.MATIC,\n depreciated: true,\n disabled: true,\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(\n ChainId.MATIC,\n '0x64875Aaa68d1d5521666C67d692Ee0B926b08b2F',\n 18,\n 'cxADA',\n 'CelsiusX Wrapped ADA'\n ),\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'cxdoge',\n vaultAddress: '0x7CbF49E4214C7200AF986bc4aACF7bc79dd9C19a',\n chainId: ChainId.MATIC,\n depreciated: true,\n disabled: true,\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(\n ChainId.MATIC,\n '0x9Bd9aD490dD3a52f096D229af4483b94D63BE618',\n 18,\n 'cxDOGE',\n 'CelsiusX Wrapped DOGE'\n ),\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'vghst',\n vaultAddress: '0x1F0aa72b980d65518e88841bA1dA075BD43fa933',\n fallbackUnderlyingAddress: '0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7',\n chainId: ChainId.MATIC,\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.MATIC, '0x51195e21BDaE8722B29919db56d95Ef51FaecA6C', 18, 'vGHST', 'Gotchi Vault GHST'),\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'vGHST (Polygon)',\n },\n {\n shortName: 'celsius',\n vaultAddress: '0x178f1c95C85Fe7221C7A6a3d6F12B7Da3253eeAe',\n chainId: ChainId.MATIC,\n depreciated: true,\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoinV2__factory.abi,\n connect: CrosschainQiStablecoinV2__factory.connect,\n token: new Token(ChainId.MATIC, '0xd85d1e945766fea5eda9103f918bd915fbca63e6', 4, 'CEL', 'Celsius'),\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'sand',\n vaultAddress: '0x1DCc1f864A4Bd0b8f4Ad33594B758b68e9Fa872c',\n chainId: ChainId.MATIC,\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.MATIC, '0xBbba073C31bF03b8ACf7c28EF0738DeCF3695683', 18, 'SAND', 'The Sandbox Game'),\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'SAND (Polygon)',\n },\n {\n shortName: 'wmatic',\n vaultAddress: '0x305f113ff78255d4F8524c8F50C7300B91B10f6A',\n chainId: ChainId.MATIC,\n minimumCDR: 120,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.MATIC, '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270', 18, 'WMATIC', 'Wrapped Matic'),\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Wrapped MATIC (Polygon)',\n },\n {\n shortName: 'xxdai',\n vaultAddress: '0xaa19d0e397c964a35e6e80262c692dbfC9C23451',\n chainId: ChainId.MATIC,\n fallbackUnderlyingAddress: '0x8f3cf7ad23cd3cadbd9735aff958023239c6a063',\n minimumCDR: 110,\n token: new Token(ChainId.MATIC, '0xf52B3250E026E0307d7d717AE0f331baAA4F83a8', 18, 'xxDAI', 'Tetu xxDAI'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n frontend: FRONTEND.MAI,\n version: 2,\n },\n {\n shortName: 'xxlink',\n vaultAddress: '0x11826d20B6A16A22450978642404dA95B4640123',\n chainId: ChainId.MATIC,\n fallbackUnderlyingAddress: '0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39',\n minimumCDR: 150,\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n token: new Token(ChainId.MATIC, '0x6c5e2E7dF0372f834B7F40D16Ff4333Cf49Af235', 18, 'xxLINK', 'Tetu xxLINK'),\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'xxLINK (Polygon)',\n },\n {\n shortName: 'knc',\n vaultAddress: '0xa3b0A659f2147D77A443f70D96b3cC95E7A26390',\n chainId: ChainId.MATIC,\n token: new Token(ChainId.MATIC, '0x1c954e8fe737f99f68fa1ccda3e51ebdb291948c', 18, 'KNC', 'Kyber Network Crystal'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 140,\n frontend: FRONTEND.MAI,\n snapshotName: 'KNC (Polygon)',\n version: 2,\n },\n {\n shortName: 'maidai',\n vaultAddress: '0x7d75F83f0aBe2Ece0b9Daf41CCeDdF38Cb66146b',\n chainId: ChainId.MATIC,\n token: new Token(ChainId.MATIC, '0x873f4ae80867b9f97304b9bb7ef92c4d563fa48c', 18, 'aMAIDAI', 'Arrakis MAI/DAI'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 102,\n frontend: FRONTEND.MAI,\n fallbackUnderlyingAddress: OG_MATIC_VAULT,\n version: 2,\n },\n {\n shortName: 'LSMMVT',\n connect: StableQiVault__factory.connect,\n chainId: ChainId.MATIC,\n minimumCDR: 135,\n token: new Token(\n ChainId.MATIC,\n '0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6',\n 18,\n 'MaticX',\n 'Liquid Staking Matic'\n ),\n frontend: FRONTEND.MANHATTAN,\n vaultAddress: '0x4b7509ce029656341D0B59D387D9B5312E41615a',\n contractAbi: StableQiVault__factory.abi,\n version: 2,\n },\n {\n shortName: 'STMMVT',\n connect: StableQiVault__factory.connect,\n chainId: ChainId.MATIC,\n minimumCDR: 135,\n token: new Token(ChainId.MATIC, '0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4', 18, 'stMatic', 'Staked Matic'),\n frontend: FRONTEND.MANHATTAN,\n vaultAddress: '0x34fa22892256216a659D4f635354250b4D771458',\n contractAbi: StableQiVault__factory.abi,\n version: 2,\n },\n ],\n [ChainId.METIS]: [\n {\n shortName: 'metis',\n vaultAddress: '0x10DcBEe8afA39a847707e16Aea5eb34c6b01aBA9',\n chainId: ChainId.METIS,\n token: new Token(ChainId.METIS, '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000', 18, 'METIS', 'Metis'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 155,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'METIS (Metis)',\n },\n {\n shortName: 'weth',\n vaultAddress: '0xC09c73F7B32573d178138E76C0e286BA21085c20',\n chainId: ChainId.METIS,\n token: new Token(ChainId.METIS, '0x420000000000000000000000000000000000000A', 18, 'WETH', 'Wrapped Ether'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'WETH (Metis)',\n },\n {\n shortName: 'wbtc',\n vaultAddress: '0xB89c1b3d9f335B9d8Bb16016F3d60160AE71041f',\n chainId: ChainId.METIS,\n token: new Token(ChainId.METIS, METIS_WBTC_ADDRESS, 8, 'WBTC', 'Wrapped BTC'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 2,\n depreciated: true,\n snapshotName: 'WBTC (Metis)',\n },\n {\n shortName: 'mwbtc',\n vaultAddress: '0x5A03716bd1f338D7849f5c9581AD5015ce0020B0',\n chainId: ChainId.METIS,\n token: new Token(ChainId.METIS, '0x433e43047b95cb83517abd7c9978bdf7005e9938', 8, 'm.WBTC', 'Metis Wrapped BTC'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'm.WBTC (Metis)',\n fallbackUnderlyingAddress: METIS_WBTC_ADDRESS\n },\n ],\n}\n","import { BigNumber, Contract, Signer } from 'ethers'\nimport BeefyZapperABI from './abis/BeefyZapper.json'\nimport QiZappahABI from './abis/QiZappah.json'\nimport ThreeStepQiZappah from './abis/ThreeStepQiZappah.json'\n\nimport {\n CAMAAVE_VAULT_ADDRESS, CAMDAI_VAULT_ADDRESS, CAMWBTC_VAULT_ADDRESS,\n CAMWETH_VAULT_ADDRESS,\n CAMWMATIC_VAULT_ADDRESS,\n ChainId, MOO_BIFI_FTM_VAULT_ADDRESS, MOO_ETH_STETH_CRV_VAULT_ADDRESS,\n MOO_SCREAM_DAI_VAULT_ADDRESS,\n MOO_SCREAM_ETH_VAULT_ADDRESS, MOO_SCREAM_LINK_VAULT_ADDRESS,\n MOO_SCREAM_WBTC_VAULT_ADDRESS,\n MOO_SCREAM_WFTM_VAULT_ADDRESS,\n MOO_WAVAX_VAULT_ADDRESS,\n WFTM_ADDRESS, WSTETH_VAULT_ADDRESS,\n YVDAI_VAULT_ADDRESS,\n YVWBTC_VAULT_ADDRESS, YVWETH_OPTIMISM_VAULT_ADDRESS,\n YVWETH_VAULT_ADDRESS,\n YVWFTM_VAULT_ADDRESS,\n YVYFI_VAULT_ADDRESS\n} from './constants'\nimport { Token } from './entities'\nimport ZapMeta, {CamMeta, QiZapMeta, QiZapThreeStepMeta, ScalingInfo} from './ZapMeta'\n\nconst ftmZapperAddress = '0xE2379CB4c4627E5e9dF459Ce08c2342C696C4c1f'\nconst avaxZapperAddress = '0x1d0a9E2c445EB8f99767eF289832637921e6F6a5'\n\nexport async function beefyZapToVault(\n signer: Signer,\n zapperAddress: string,\n assetAddress: string,\n mooAssetAddress: string,\n mooAssetVaultAddress: string,\n amount: BigNumber,\n vaultIndex: BigNumber\n) {\n const zapperContract = new Contract(zapperAddress, BeefyZapperABI, signer)\n return zapperContract.beefyZapToVault(amount, vaultIndex, assetAddress, mooAssetAddress, mooAssetVaultAddress)\n}\n\nexport async function beefyZapFromVault(\n signer: Signer,\n zapperAddress: string,\n assetAddress: string,\n mooAssetAddress: string,\n mooAssetVaultAddress: string,\n amount: BigNumber,\n vaultIndex: BigNumber\n) {\n const zapperContract = new Contract(zapperAddress, BeefyZapperABI, signer)\n return zapperContract.beefyZapFromVault(amount, vaultIndex, assetAddress, mooAssetAddress, mooAssetVaultAddress, {\n gasLimit: 3500000,\n })\n}\n\nfunction beefyZapperInfo({\n vaultType,\n underlying,\n underlyingPriceSourceAddress,\n collateralScaling,\n underlyingScaling,\n mooAssetAddress,\n mooAssetVaultAddress,\n zapperAddress,\n}: {\n vaultType: 'YEARN' | 'BEEFY'\n underlying: Token\n underlyingPriceSourceAddress: string\n collateralScaling?: ScalingInfo\n underlyingScaling?: ScalingInfo\n mooAssetAddress: string\n mooAssetVaultAddress: string\n zapperAddress: string\n}): ZapMeta {\n return {\n vaultType: vaultType,\n zapperAddress: zapperAddress,\n underlying: underlying,\n underlyingPriceSourceAddress: underlyingPriceSourceAddress,\n mooAssetAddress,\n collateralScaling,\n underlyingScaling,\n zapInFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) =>\n beefyZapToVault(\n signer,\n zapperAddress, // Zapper Address\n underlying.address, // Underlying token\n mooAssetAddress, // Receipt token\n mooAssetVaultAddress, // MAI Vault address\n amount,\n vaultIndex\n ),\n zapOutFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) =>\n beefyZapFromVault(\n signer,\n zapperAddress, // Zapper Address\n underlying.address, // Underlying token\n mooAssetAddress, // Receipt token\n mooAssetVaultAddress, // MAI Vault address\n amount,\n vaultIndex\n ),\n }\n}\n\nexport const ZAP_META: { [c in ChainId]?: { [s in string]: ZapMeta } } = {\n [ChainId.AVALANCHE]: {\n [MOO_WAVAX_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: avaxZapperAddress,\n underlying: new Token(\n ChainId.AVALANCHE,\n '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',\n 18,\n 'WAVAX',\n 'Wrapped AVAX'\n ),\n underlyingPriceSourceAddress: '0x0A77230d17318075983913bC2145DB16C7366156',\n mooAssetAddress: '0x1B156C5c75E9dF4CAAb2a5cc5999aC58ff4F9090',\n mooAssetVaultAddress: MOO_WAVAX_VAULT_ADDRESS,\n }),\n },\n [ChainId.FANTOM]: {\n [YVWFTM_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'YEARN',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, WFTM_ADDRESS, 18, 'WFTM', 'Fantom'),\n underlyingPriceSourceAddress: '0xf4766552D15AE4d256Ad41B6cf2933482B0680dc',\n mooAssetAddress: '0x0DEC85e74A92c52b7F708c4B10207D9560CEFaf0',\n mooAssetVaultAddress: YVWFTM_VAULT_ADDRESS,\n }),\n [YVWBTC_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'YEARN',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x321162cd933e2be498cd2267a90534a804051b11', 8, 'WBTC', 'Wrapped Bitcoin'),\n underlyingPriceSourceAddress: '0x8e94C22142F4A64b99022ccDd994f4e9EC86E4B4',\n collateralScaling: { priceScalingFactor: { scalingFactor: 1e10, scaleVia: 'mul' } },\n underlyingScaling: { liquidationScalingFactor: { scalingFactor: 1e10, scaleVia: 'div' } },\n mooAssetAddress: '0xd817a100ab8a29fe3dbd925c2eb489d67f758da9',\n mooAssetVaultAddress: YVWBTC_VAULT_ADDRESS,\n }),\n [YVYFI_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'YEARN',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x29b0da86e484e1c0029b56e817912d778ac0ec69', 18, 'YFI', 'Yearn.finance'),\n underlyingPriceSourceAddress: '0x9d5c6db3bf2904d9277a7b82698a588a05a0679a',\n mooAssetAddress: '0x2C850cceD00ce2b14AA9D658b7Cad5dF659493Db',\n mooAssetVaultAddress: YVYFI_VAULT_ADDRESS,\n }),\n [YVWETH_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'YEARN',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x74b23882a30290451a17c44f4f05243b6b58c76d', 18, 'WETH', 'Wrapped Ether'),\n underlyingPriceSourceAddress: '0x425eA1422DBF9764D9f84e6d581c3e0187C5A340',\n mooAssetAddress: '0xCe2Fc0bDc18BD6a4d9A725791A3DEe33F3a23BB7',\n mooAssetVaultAddress: YVWETH_VAULT_ADDRESS,\n }),\n [YVDAI_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'YEARN',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E', 18, 'DAI', 'Dai Stablecoin'),\n underlyingPriceSourceAddress: '0x91d5DEFAFfE2854C7D02F50c80FA1fdc8A721e52',\n mooAssetAddress: '0x637ec617c86d24e421328e6caea1d92114892439',\n mooAssetVaultAddress: YVDAI_VAULT_ADDRESS,\n }),\n [MOO_SCREAM_WBTC_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x321162Cd933E2Be498Cd2267a90534A804051b11', 8, 'BTC', 'Bitcoin'),\n underlyingPriceSourceAddress: '0x8e94C22142F4A64b99022ccDd994f4e9EC86E4B4',\n mooAssetAddress: '0x97927abfe1abbe5429cbe79260b290222fc9fbba',\n mooAssetVaultAddress: MOO_SCREAM_WBTC_VAULT_ADDRESS,\n collateralScaling: { liquidationScalingFactor: { scalingFactor: 10 ** 10, scaleVia: 'div' } },\n }),\n [MOO_SCREAM_DAI_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E', 18, 'DAI', 'Dai Stablecoin'),\n underlyingPriceSourceAddress: '0x91d5DEFAFfE2854C7D02F50c80FA1fdc8A721e52',\n mooAssetAddress: '0x920786cff2A6f601975874Bb24C63f0115Df7dc8',\n mooAssetVaultAddress: MOO_SCREAM_DAI_VAULT_ADDRESS,\n }),\n [MOO_SCREAM_ETH_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x74b23882a30290451A17c44f4F05243b6b58C76d', 18, 'ETH', 'Ethereum'),\n underlyingPriceSourceAddress: '0x11DdD3d147E5b83D01cee7070027092397d63658',\n mooAssetAddress: '0x0a03D2C1cFcA48075992d810cc69Bd9FE026384a',\n mooAssetVaultAddress: MOO_SCREAM_ETH_VAULT_ADDRESS,\n }),\n [MOO_SCREAM_WFTM_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, WFTM_ADDRESS, 18, 'WFTM', 'Wrapped Fantom'),\n underlyingPriceSourceAddress: '0xf4766552D15AE4d256Ad41B6cf2933482B0680dc',\n mooAssetAddress: '0x49c68eDb7aeBd968F197121453e41b8704AcdE0C',\n mooAssetVaultAddress: MOO_SCREAM_WFTM_VAULT_ADDRESS,\n }),\n [MOO_SCREAM_LINK_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0xb3654dc3D10Ea7645f8319668E8F54d2574FBdC8', 18, 'LINK', 'ChainLink'),\n underlyingPriceSourceAddress: '0x221C773d8647BC3034e91a0c47062e26D20d97B4',\n mooAssetAddress: '0x6DfE2AAEA9dAadADf0865B661b53040E842640f8',\n mooAssetVaultAddress: MOO_SCREAM_LINK_VAULT_ADDRESS,\n }),\n [MOO_BIFI_FTM_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n underlying: new Token(ChainId.FANTOM, '0xd6070ae98b8069de6B494332d1A1a81B6179D960', 18, 'BIFI', 'Beefy.Finance'),\n underlyingPriceSourceAddress: '0x4F5Cc6a2291c964dEc4C7d6a50c0D89492d4D91B',\n mooAssetAddress: '0xbF07093ccd6adFC3dEB259C557b61E94c1F66945',\n mooAssetVaultAddress: MOO_BIFI_FTM_VAULT_ADDRESS,\n zapperAddress: ftmZapperAddress,\n }),\n },\n}\n\nconst OP_QI_ZAPPER = '0xB0aed7923f7fBEAf5bb2caa4A049A51d638Be2c9'\nconst OP_THREE_STEP_ZAPPER = '0x1D864EDCA89b99580C46CEC4091103D7fb85aDCF';\n\nfunction generateQiZapper({perfToken, underlyingPriceSourceAddress, underlying, mooAssetAddress, mooAssetVaultAddress}: {perfToken: string; underlyingPriceSourceAddress: string; underlying: Token, mooAssetAddress:string,\n mooAssetVaultAddress: string}) {\n const zapperAddress = OP_QI_ZAPPER\n return {\n underlyingPriceSourceAddress,\n perfToken,\n underlying,\n mooAssetAddress,\n zapperAddress,\n zapInFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) => {\n const zapperContract = new Contract(zapperAddress, QiZappahABI, signer)\n return zapperContract.beefyZapToVault(amount, vaultIndex, underlying.address, mooAssetAddress, perfToken, mooAssetVaultAddress, {\n gasLimit: 3500000,\n })\n },\n zapOutFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) => {\n const zapperContract = new Contract(zapperAddress, QiZappahABI, signer)\n return zapperContract.beefyZapFromVault(amount, vaultIndex, underlying.address, mooAssetAddress, perfToken, mooAssetVaultAddress, {\n gasLimit: 3500000,\n })\n },\n }\n}\n\nfunction generateThreeStepZapper({\n perfToken,\n underlyingPriceSourceAddress,\n underlying,\n mooAssetVaultAddress,\n}: {\n perfToken: string\n underlyingPriceSourceAddress: string\n underlying: Token\n mooAssetVaultAddress: string\n}) {\n return {\n underlyingPriceSourceAddress,\n perfToken,\n underlying,\n zapperAddress: OP_THREE_STEP_ZAPPER,\n zapInFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) => {\n const zapperContract = new Contract(OP_THREE_STEP_ZAPPER, ThreeStepQiZappah, signer)\n return zapperContract.beefyZapToVault(amount, vaultIndex, underlying.address, perfToken, mooAssetVaultAddress, {\n gasLimit: 3500000,\n })\n },\n zapOutFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) => {\n const zapperContract = new Contract(OP_THREE_STEP_ZAPPER, ThreeStepQiZappah, signer)\n return zapperContract.beefyZapFromVault(amount, vaultIndex, underlying.address, perfToken, mooAssetVaultAddress, {\n gasLimit: 3500000,\n })\n },\n }\n}\n\nexport const PERF_TOKEN_ZAP_META: { [c in ChainId]?: { [s in string]: QiZapMeta | QiZapThreeStepMeta } } = {\n [ChainId.OPTIMISM]:\n {\n [WSTETH_VAULT_ADDRESS]: generateThreeStepZapper({\n perfToken: '0x926B92B15385981416a5E0Dcb4f8b31733d598Cf',\n mooAssetVaultAddress: WSTETH_VAULT_ADDRESS,\n underlying: new Token(ChainId.OPTIMISM, '0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb', 18, 'wstETH', 'Wrapped liquid staked Ether 2.0'),\n underlyingPriceSourceAddress: '0x41878779a388585509657CE5Fb95a80050502186',\n }),\n [YVWETH_OPTIMISM_VAULT_ADDRESS]: generateQiZapper({\n underlyingPriceSourceAddress: '0x13e3ee699d1909e989722e753853ae30b17e08c5',\n perfToken: '0x22f39d6535df5767f8f57fee3b2f941410773ec4',\n mooAssetAddress: '0x5B977577Eb8a480f63e11FC615D6753adB8652Ae',\n mooAssetVaultAddress: YVWETH_OPTIMISM_VAULT_ADDRESS,\n underlying: new Token(ChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n }),\n [MOO_ETH_STETH_CRV_VAULT_ADDRESS]: generateThreeStepZapper({\n underlyingPriceSourceAddress: '0x41878779a388585509657CE5Fb95a80050502186',\n perfToken: '0x480798FAC621adD14113ECC82638305c260cEaf1',\n underlying: new Token(ChainId.OPTIMISM, '0x0892a178c363b4739e5Ac89E9155B9c30214C0c0', 18, 'mooCurveWSTETH', 'Moo Curve wstETH'),\n mooAssetVaultAddress: MOO_ETH_STETH_CRV_VAULT_ADDRESS,\n })\n }\n}\n\nexport const CAMZAPPER_ADDRESS = {\n [ChainId.MATIC]: '0xd8d22817D216164D09Ca5909A70bEcA608D65Aa9',\n}\n\nexport const CAM_META: { [c in ChainId]?: { [s in string]: CamMeta } } = {\n [ChainId.MATIC]: {\n [CAMWMATIC_VAULT_ADDRESS]: {\n underlyingPriceSourceAddress: '0xAB594600376Ec9fD91F8e885dADF0CE036862dE0',\n underlying: new Token(ChainId.MATIC, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n amTokenAddress: '0x8dF3aad3a84da6b69A4DA8aeC3eA40d9091B2Ac4',\n camTokenAddress: '0x7068Ea5255cb05931EFa8026Bd04b18F3DeB8b0B',\n },\n [CAMWETH_VAULT_ADDRESS]: {\n underlyingPriceSourceAddress: '0xF9680D99D6C9589e2a93a78A04A279e509205945',\n underlying: new Token(ChainId.MATIC, '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619', 18, 'WETH', 'Wrapped Ether'),\n amTokenAddress: '0x28424507fefb6f7f8E9D3860F56504E4e5f5f390',\n camTokenAddress: '0x0470CD31C8FcC42671465880BA81D631F0B76C1D',\n },\n [CAMAAVE_VAULT_ADDRESS]: {\n underlyingPriceSourceAddress: '0x72484B12719E23115761D5DA1646945632979bB6',\n underlying: new Token(ChainId.MATIC, '0xD6DF932A45C0f255f85145f286eA0b292B21C90B', 18, 'AAVE', 'Aave'),\n amTokenAddress: '0x1d2a0E5EC8E5bBDCA5CB219e649B565d8e5c3360',\n camTokenAddress: '0xeA4040B21cb68afb94889cB60834b13427CFc4EB',\n },\n [CAMWBTC_VAULT_ADDRESS]: {\n underlyingPriceSourceAddress: '0xDE31F8bFBD8c84b5360CFACCa3539B938dd78ae6',\n underlying: new Token(ChainId.MATIC, '0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6', 8, 'WBTC', 'Wrapped BTC'),\n amTokenAddress: '0x5c2ed810328349100A66B82b78a1791B101C9D61',\n camTokenAddress: '0xBa6273A78a23169e01317bd0f6338547F869E8Df',\n },\n [CAMDAI_VAULT_ADDRESS]: {\n underlyingPriceSourceAddress: '0x4746DeC9e833A82EC7C2C1356372CcF2cfcD2F3D',\n underlying: new Token(ChainId.MATIC, '0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063', 18, 'DAI', 'Dai Stablecoin'),\n amTokenAddress: '0x27F8D03b3a2196956ED754baDc28D73be8830A6e',\n camTokenAddress: '0xE6C23289Ba5A9F0Ef31b8EB36241D5c800889b7b',\n },\n },\n}\n","import { ChainId } from \"./constants\"\nimport { Token } from \"./entities\"\n\ntype ChainTokenMap = {\n readonly [chainId in ChainId]?: Token\n}\n\nfunction makeTokenFn(symbol: string, name: string, decimals: number = 18) {\n return (chainId: ChainId, address: string) => {\n return new Token(chainId, address, decimals, symbol, name)\n }\n}\n\nconst makeLDOToken = makeTokenFn('LDO', 'Lido')\nexport const LDO: { readonly [chainId in ChainId]?: Token } = {\n [ChainId.MATIC]: makeLDOToken(ChainId.MATIC, '0xC3C7d422809852031b44ab29EEC9F1EfF2A58756'),\n}\n\nconst makeMETISToken = makeTokenFn('METIS', 'Metis')\nexport const METIS: { readonly [chainId in ChainId]?: Token } = {\n [ChainId.METIS]: makeMETISToken(ChainId.METIS, '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000'),\n}\n\nconst makeSDToken = makeTokenFn('SD', 'Stader Labs')\nexport const SD: { readonly [chainId in ChainId]?: Token } = {\n [ChainId.MATIC]: makeSDToken(ChainId.MATIC, '0x1d734A02eF1e1f5886e66b0673b71Af5B53ffA94'),\n}\n\nconst makeQiToken = makeTokenFn('QI', 'QiDao')\nexport const QI: { readonly [chainId in ChainId]?: Token } = {\n [ChainId.MAINNET]: makeQiToken(ChainId.MAINNET, '0x559b7bfC48a5274754b08819F75C5F27aF53D53b'),\n [ChainId.MATIC]: makeQiToken(ChainId.MATIC, '0x580A84C73811E1839F75d86d75d88cCa0c241fF4'),\n [ChainId.FANTOM]: makeQiToken(ChainId.FANTOM, '0x68Aa691a8819B07988B18923F712F3f4C8d36346'),\n [ChainId.AVALANCHE]: makeQiToken(ChainId.AVALANCHE, '0xA56F9A54880afBc30CF29bB66d2D9ADCdcaEaDD6'),\n [ChainId.ARBITRUM]: makeQiToken(ChainId.ARBITRUM, '0xB9C8F0d3254007eE4b98970b94544e473Cd610EC'),\n [ChainId.BOBA]: makeQiToken(ChainId.BOBA, '0xC85C1ce70C4Bf751a73793D735e9D0209152F13d'),\n [ChainId.XDAI]: makeQiToken(ChainId.XDAI, '0xdFA46478F9e5EA86d57387849598dbFB2e964b02'),\n [ChainId.METIS]: makeQiToken(ChainId.METIS, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.OPTIMISM]: makeQiToken(ChainId.OPTIMISM, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.BSC]: makeQiToken(ChainId.BSC, '0xdDC3D26BAA9D2d979F5E2e42515478bf18F354D5'),\n}\n\nconst makeMaiToken = makeTokenFn('MAI', 'MAI (miMatic)')\nexport const MAI: ChainTokenMap = {\n [ChainId.MAINNET]: makeMaiToken(ChainId.MAINNET, '0x8D6CeBD76f18E1558D4DB88138e2DeFB3909fAD6'),\n [ChainId.MATIC]: makeMaiToken(ChainId.MATIC, '0xa3Fa99A148fA48D14Ed51d610c367C61876997F1'),\n [ChainId.FANTOM]: makeMaiToken(ChainId.FANTOM, '0xfB98B335551a418cD0737375a2ea0ded62Ea213b'),\n [ChainId.AVALANCHE]: makeMaiToken(ChainId.AVALANCHE, '0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b'),\n [ChainId.MOONRIVER]: makeMaiToken(ChainId.MOONRIVER, '0xFb2019DfD635a03cfFF624D210AEe6AF2B00fC2C'),\n [ChainId.HARMONY]: makeMaiToken(ChainId.HARMONY, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.CRONOS]: makeMaiToken(ChainId.CRONOS, '0x2Ae35c8E3D4bD57e8898FF7cd2bBff87166EF8cb'),\n [ChainId.ARBITRUM]: makeMaiToken(ChainId.ARBITRUM, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.BOBA]: makeMaiToken(ChainId.BOBA, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.XDAI]: makeMaiToken(ChainId.XDAI, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.METIS]: makeMaiToken(ChainId.METIS, '0xdFA46478F9e5EA86d57387849598dbFB2e964b02'),\n [ChainId.BSC]: makeMaiToken(ChainId.BSC, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.AURORA]: makeMaiToken(ChainId.AURORA, '0xdFA46478F9e5EA86d57387849598dbFB2e964b02'),\n [ChainId.CELO]: makeMaiToken(ChainId.CELO, '0xB9C8F0d3254007eE4b98970b94544e473Cd610EC'),\n [ChainId.IOTEX]: makeMaiToken(ChainId.IOTEX, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.OPTIMISM]: makeMaiToken(ChainId.OPTIMISM, '0xdFA46478F9e5EA86d57387849598dbFB2e964b02'),\n}\n"],"names":["FTM_ZAPPER_ADDRESS","OG_MATIC_VAULT","ChainId","TradeType","Rounding","INIT_CODE_HASH","MINIMUM_LIQUIDITY","JSBI","BigInt","ZERO","ONE","TWO","THREE","FIVE","TEN","_100","_997","SolidityType","SOLIDITY_TYPE_MAXIMA","uint8","uint256","MULTICALL_NETWORKS","MAINNET","ROPSTEN","KOVAN","RINKEBY","GÖRLI","FANTOM","FANTOM_TESTNET","MATIC","MATIC_TESTNET","XDAI","BSC","BSC_TESTNET","ARBITRUM","MOONBASE","AVALANCHE","FUJI","HECO","HECO_TESTNET","HARMONY","HARMONY_TESTNET","MOONRIVER","CRONOS","OPTIMISM","SYSCOIN","METIS","MOONBEAM","MILKOMEDA","KAVA","IOTEX","KLAYTN","CELO","AURORA","BOBA","CUBE","WFTM_ADDRESS","STETH_ADDRESS","AAVE_ADDRESS","CAMWMATIC_VAULT_ADDRESS","CAMWETH_VAULT_ADDRESS","CAMAAVE_VAULT_ADDRESS","CAMWBTC_VAULT_ADDRESS","CAMDAI_VAULT_ADDRESS","YVWFTM_VAULT_ADDRESS","YVWBTC_VAULT_ADDRESS","YVYFI_VAULT_ADDRESS","YVWETH_VAULT_ADDRESS","YVDAI_VAULT_ADDRESS","MOO_SCREAM_WBTC_VAULT_ADDRESS","MOO_SCREAM_DAI_VAULT_ADDRESS","MOO_SCREAM_ETH_VAULT_ADDRESS","MOO_SCREAM_WFTM_VAULT_ADDRESS","MOO_SCREAM_LINK_VAULT_ADDRESS","MOO_BIFI_FTM_VAULT_ADDRESS","MOO_WAVAX_VAULT_ADDRESS","YVETH_VAULT_ADDRESS","YVLINK_VAULT_ADDRESS","WETH_ADDRESS","LINK_ADDRESS","WSTETH_VAULT_ADDRESS","YVWETH_OPTIMISM_VAULT_ADDRESS","MOO_ETH_STETH_CRV_VAULT_ADDRESS","InsufficientReservesError","Error","constructor","super","this","isInsufficientReservesError","name","CAN_SET_PROTOTYPE","Object","setPrototypeOf","prototype","InsufficientInputAmountError","isInsufficientInputAmountError","validateSolidityTypeInstance","value","solidityType","invariant","greaterThanOrEqual","lessThanOrEqual","parseBigintIsh","bigintIsh","toString","Currency","decimals","symbol","static","chainId","NATIVE","getNativeCurrency","getSymbol","getNativeCurrencySymbol","getName","getNativeCurrencyName","ETHER","BNB","FTM","GLMR","AVAX","HT","MOVR","CRO","Token","address","validateAndParseAddress","checksummedAddress","getAddress","warning","error","equals","other","sortsBefore","toLowerCase","currencyEquals","currencyA","currencyB","WNATIVE","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","Fraction","numerator","denominator","quotient","divide","remainder","invert","add","equal","otherParsed","multiply","subtract","lessThan","equalTo","greaterThan","toSignificant","significantDigits","format","groupSeparator","rounding","Number","isInteger","set","precision","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_100_PERCENT","Percent","CurrencyAmount","amount","currency","parsedAmount","exponentiate","raw","toExact","TokenAmount","token","Price","baseCurrency","quoteCurrency","scalar","adjusted","fraction","quote","currencyAmount","ether","_abi","inputs","internalType","type","payable","stateMutability","anonymous","indexed","constant","outputs","CrosschainNativeQiStablecoin__factory","utils","Interface","signerOrProvider","Contract","abi","CrosschainQiStablecoin__factory","CrosschainQiStablecoinSlim__factory","CrosschainQiStablecoinSlimV2__factory","CrosschainQiStablecoinV2__factory","CrosschainQiStablecoinwbtc__factory","Erc20QiStablecoincamwbtc__factory","Erc20QiStablecoinwbtc__factory","Erc20Stablecoin__factory","StableQiVault__factory","FRONTEND","isV2QiVault","collateral","version","isGaugeValid","undefined","snapshotName","depreciated","COLLATERALS","shortName","vaultAddress","contractAbi","connect","minimumCDR","frontend","MAI","fallbackUnderlyingAddress","native","subgraph","MANHATTAN","constants","AddressZero","aaveId","disabled","METIS_WBTC_ADDRESS","ftmZapperAddress","async","signer","zapperAddress","assetAddress","mooAssetAddress","mooAssetVaultAddress","vaultIndex","BeefyZapperABI","beefyZapToVault","beefyZapFromVault","gasLimit","beefyZapperInfo","vaultType","underlying","underlyingPriceSourceAddress","collateralScaling","underlyingScaling","zapInFunction","zapOutFunction","ZAP_META","priceScalingFactor","scalingFactor","scaleVia","liquidationScalingFactor","generateThreeStepZapper","perfToken","OP_THREE_STEP_ZAPPER","ThreeStepQiZappah","PERF_TOKEN_ZAP_META","QiZappahABI","generateQiZapper","CAMZAPPER_ADDRESS","CAM_META","amTokenAddress","camTokenAddress","makeTokenFn","makeLDOToken","LDO","makeMETISToken","makeSDToken","SD","makeQiToken","QI","makeMaiToken"],"mappings":"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Y0B,KAAAA,SAASlB,QAAQD,EAAeT,EAAQE,EACrD,EClDH,MAAM+B,GAAO,CACX,CACEC,OAAQ,CACN,CACEC,aAAc,UACdhH,KAAM,wBACNiH,KAAM,WAER,CACED,aAAc,UACdhH,KAAM,8BACNiH,KAAM,WAER,CACED,aAAc,SACdhH,KAAM,OACNiH,KAAM,UAER,CACED,aAAc,SACdhH,KAAM,SACNiH,KAAM,UAER,CACED,aAAc,UACdhH,KAAM,OACNiH,KAAM,WAER,CACED,aAAc,UACdhH,KAAM,cACNiH,KAAM,WAER,CACED,aAAc,SACdhH,KAAM,UACNiH,KAAM,WAGVC,SAAS,EACTC,gBAAiB,aACjBF,KAAM,eAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,QACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,WACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,YAGVjH,KAAM,WACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,QACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,WACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,OACdhH,KAAM,WACNiH,KAAM,SAGVjH,KAAM,iBACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,SACNiH,KAAM,YAGVjH,KAAM,cACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,YAGVjH,KAAM,cACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,WAER,CACEI,SAA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,EAEH,EAdUG,GACKD,IAAMf,GC79CxB,MAAMA,GAAO,CACX,CACEC,OAAQ,CACN,CACEC,aAAc,UACdhH,KAAM,wBACNiH,KAAM,WAER,CACED,aAAc,UACdhH,KAAM,8BACNiH,KAAM,WAER,CACED,aAAc,SACdhH,KAAM,OACNiH,KAAM,UAER,CACED,aAAc,SACdhH,KAAM,SACNiH,KAAM,UAER,CACED,aAAc,UACdhH,KAAM,OACNiH,KAAM,WAER,CACED,aAAc,UACdhH,KAAM,cACNiH,KAAM,WAER,CACED,aAAc,SACdhH,KAAM,UACNiH,KAAM,WAGVC,SAAS,EACTC,gBAAiB,aACjBF,KAAM,eAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,QACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,WACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,YAGVjH,KAAM,WACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,QACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,WACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,OACdhH,KAAM,WACNiH,KAAM,SAGVjH,KAAM,iBACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,SACNiH,KAAM,YAGVjH,KAAM,cACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,YAGVjH,KAAM,cACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UAC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AAc,UACdhH,KAAM,wBACNiH,KAAM,WAER,CACED,aAAc,UACdhH,KAAM,8BACNiH,KAAM,WAER,CACED,aAAc,SACdhH,KAAM,OACNiH,KAAM,UAER,CACED,aAAc,SACdhH,KAAM,SACNiH,KAAM,UAER,CACED,aAAc,UACdhH,KAAM,OACNiH,KAAM,WAER,CACED,aAAc,UACdhH,KAAM,cACNiH,KAAM,WAER,CACED,aAAc,UACdhH,KAAM,OACNiH,KAAM,WAER,CACED,aAAc,SACdhH,KAAM,UACNiH,KAAM,WAGVC,SAAS,EACTC,gBAAiB,aACjBF,KAAM,eAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,QACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,WACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,YAGVjH,KAAM,WACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,QACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,WACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,OACdhH,KAAM,WACNiH,KAAM,SAGVjH,KAAM,iBACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,SACNiH,KAAM,YAGVjH,KAAM,cACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,YAGVjH,KAAM,cACNiH,KAAM,SAER,CACEG,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdhH,KAAM,UACNiH,KAAM,WAER,CACEI,SAAS,EACTL,aAAc,UACdhH,KAAM,SACNiH,KAAM,YAGVjH,KAA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"}
1
+ {"version":3,"file":"index.modern.mjs","sources":["../src/constants.ts","../src/errors.ts","../src/utils.ts","../src/entities/currency.ts","../src/entities/token.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/tokenAmount.ts","../src/entities/fractions/price.ts","../src/contracts/factories/QiStablecoin__factory.ts","../src/contracts/factories/CrosschainNativeQiStablecoin__factory.ts","../src/contracts/factories/CrosschainQiStablecoin__factory.ts","../src/contracts/factories/CrosschainQiStablecoinSlim__factory.ts","../src/contracts/factories/CrosschainQiStablecoinSlimV2__factory.ts","../src/contracts/factories/CrosschainQiStablecoinV2__factory.ts","../src/contracts/factories/CrosschainQiStablecoinwbtc__factory.ts","../src/contracts/factories/Erc20QiStablecoincamwbtc__factory.ts","../src/contracts/factories/Erc20QiStablecoinwbtc__factory.ts","../src/contracts/factories/Erc20Stablecoin__factory.ts","../src/contracts/factories/StableQiVault__factory.ts","../src/vaultInfo.ts","../src/zapInfo.ts","../src/tokens.ts"],"sourcesContent":["import JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | bigint | string\n\nexport const FTM_ZAPPER_ADDRESS = '0xE2379CB4c4627E5e9dF459Ce08c2342C696C4c1f'\nexport const AVAX_ZAPPER_ADDRESS = '0x1d0a9E2c445EB8f99767eF289832637921e6F6a5'\nexport const OG_MATIC_VAULT = '0xa3Fa99A148fA48D14Ed51d610c367C61876997F1'\n\nexport enum ChainId {\n MAINNET = 1,\n GÖRLI = 5,\n KOVAN = 42,\n MATIC = 137,\n MATIC_TESTNET = 80001,\n FANTOM = 250,\n FANTOM_TESTNET = 4002,\n XDAI = 100,\n BSC = 56,\n BSC_TESTNET = 97,\n ARBITRUM = 42161,\n MOONBASE = 1287,\n AVALANCHE = 43114,\n FUJI = 43113,\n HECO = 128,\n HECO_TESTNET = 256,\n HARMONY = 1666600000,\n HARMONY_TESTNET = 1666700000,\n MOONRIVER = 1285,\n CRONOS = 25,\n OPTIMISM = 10,\n SYSCOIN = 57,\n METIS = 1088,\n MOONBEAM = 1284,\n MILKOMEDA = 2001,\n KAVA = 2222,\n IOTEX = 4689,\n KLAYTN = 8217,\n CELO = 42220,\n AURORA = 1313161554,\n BOBA = 288,\n CUBE = 1818,\n}\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT,\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP,\n}\n\nexport const INIT_CODE_HASH: string = '0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303'\nexport const MINIMUM_LIQUIDITY = JSBI.BigInt(1000)\n\n// exports for internal consumption\nexport const ZERO = JSBI.BigInt(0)\nexport const ONE = JSBI.BigInt(1)\nexport const TWO = JSBI.BigInt(2)\nexport const THREE = JSBI.BigInt(3)\nexport const FIVE = JSBI.BigInt(5)\nexport const TEN = JSBI.BigInt(10)\nexport const _100 = JSBI.BigInt(100)\nexport const _997 = JSBI.BigInt(997)\nexport const _1000 = JSBI.BigInt(1000)\n\nexport enum SolidityType {\n uint8 = 'uint8',\n uint256 = 'uint256',\n}\n\nexport const SOLIDITY_TYPE_MAXIMA = {\n [SolidityType.uint8]: JSBI.BigInt('0xff'),\n [SolidityType.uint256]: JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'),\n}\n\nexport const MULTICALL_NETWORKS: { [chainId in ChainId]: string } = {\n [ChainId.MAINNET]: '0xeefBa1e63905eF1D7ACbA5a8513c70307C1cE441',\n [ChainId.KOVAN]: '0x2cc8688C5f75E365aaEEb4ea8D6a480405A48D2A',\n [ChainId.GÖRLI]: '0x77dCa2C955b15e9dE4dbBCf1246B4B85b651e50e',\n [ChainId.FANTOM]: '0x63B8310c5093ac917552931D8b15d5AB6945c0a6',\n [ChainId.FANTOM_TESTNET]: '',\n [ChainId.MATIC]: '0x95028E5B8a734bb7E2071F96De89BABe75be9C8E',\n [ChainId.MATIC_TESTNET]: '0x9Fc8e50Eb08C1F463b45d1AFb9c261B0a1903006',\n [ChainId.XDAI]: '0xb5b692a88BDFc81ca69dcB1d924f59f0413A602a',\n [ChainId.BSC]: '0xe348b292e8eA5FAB54340656f3D374b259D658b8',\n [ChainId.BSC_TESTNET]: '0xe348b292e8eA5FAB54340656f3D374b259D658b8',\n [ChainId.ARBITRUM]: '0x80C7DD17B01855a6D2347444a0FCC36136a314de',\n [ChainId.MOONBASE]: '0x9B7D5fa91b4747031d8E7807DaEC906F0f683E78',\n [ChainId.AVALANCHE]: '0x0FB54156B496b5a040b51A71817aED9e2927912E',\n [ChainId.FUJI]: '0x0053957E18A0994D3526Cf879A4cA7Be88e8936A',\n [ChainId.HECO]: '0xc9a9F768ebD123A00B52e7A0E590df2e9E998707',\n [ChainId.HECO_TESTNET]: '0x935Bfe9AfaA2Be26049ea4EDE40A3A2243361F87',\n [ChainId.HARMONY]: '0xFE4980f62D708c2A84D3929859Ea226340759320',\n [ChainId.HARMONY_TESTNET]: '0xbcd3451992B923531615293Cb2b2c38ba8DE9529',\n [ChainId.MOONRIVER]: '0xe05349d6fE12602F6084550995B247a5C80C0E2C',\n [ChainId.CRONOS]: '0xA25da25BD11A26F1dd4ea195948305fb7C8cA102',\n [ChainId.OPTIMISM]: '0x142e2feac30d7fc3b61f9ee85fccad8e560154cc',\n [ChainId.SYSCOIN]: '',\n [ChainId.METIS]: '0xc39aBB6c4451089dE48Cffb013c39d3110530e5C',\n [ChainId.MOONBEAM]: '0x83e3b61886770de2F64AAcaD2724ED4f08F7f36B',\n [ChainId.MILKOMEDA]: '',\n [ChainId.KAVA]: '',\n [ChainId.IOTEX]: '0x9c8B105c94282CDB0F3ecF27e3cfA96A35c07be6',\n [ChainId.KLAYTN]: '0x5f5f0d1b9ff8b3dcace308e39b13b203354906e9',\n [ChainId.CELO]: '0xb8d0d2C1391eeB350d2Cd39EfABBaaEC297368D9',\n [ChainId.AURORA]: '0x32b50c286DEFd2932a0247b8bb940b78c063F16c',\n [ChainId.BOBA]: '0xfb91c019D9F12A0f9c23B4762fa64A34F8daDb4A',\n [ChainId.CUBE]: '',\n}\n\nexport const WFTM_ADDRESS = '0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83'\nexport const STETH_ADDRESS = '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84'\nexport const METIS_WBTC_ADDRESS = '0xa5B55ab1dAF0F8e1EFc0eB1931a957fd89B918f4'\nexport const AAVE_ADDRESS = '0xD6DF932A45C0f255f85145f286eA0b292B21C90B'\n\n//CAM Vaults\nexport const CAMWMATIC_VAULT_ADDRESS = '0x88d84a85A87ED12B8f098e8953B322fF789fCD1a'\nexport const CAMWETH_VAULT_ADDRESS = '0x11A33631a5B5349AF3F165d2B7901A4d67e561ad'\nexport const CAMAAVE_VAULT_ADDRESS = '0x578375c3af7d61586c2C3A7BA87d2eEd640EFA40'\nexport const CAMWBTC_VAULT_ADDRESS = '0x7dDA5e1A389E0C1892CaF55940F5fcE6588a9ae0'\nexport const CAMDAI_VAULT_ADDRESS = '0xD2FE44055b5C874feE029119f70336447c8e8827'\n//FTM Vaults\nexport const YVWFTM_VAULT_ADDRESS = '0x7efB260662a6FA95c1CE1092c53Ca23733202798'\nexport const YVWBTC_VAULT_ADDRESS = '0x571F42886C31f9b769ad243e81D06D0D144BE7B4'\nexport const YVYFI_VAULT_ADDRESS = '0x6d6029557a06961aCC5F81e1ffF5A474C54e32Fd'\nexport const YVWETH_VAULT_ADDRESS = '0x7aE52477783c4E3e5c1476Bbb29A8D029c920676'\nexport const YVDAI_VAULT_ADDRESS = '0x682E473FcA490B0adFA7EfE94083C1E63f28F034'\nexport const MOO_SCREAM_WBTC_VAULT_ADDRESS = '0x5563Cc1ee23c4b17C861418cFF16641D46E12436'\nexport const MOO_SCREAM_DAI_VAULT_ADDRESS = '0xBf0ff8ac03f3E0DD7d8faA9b571ebA999a854146'\nexport const MOO_SCREAM_ETH_VAULT_ADDRESS = '0xC1c7eF18ABC94013F6c58C6CdF9e829A48075b4e'\nexport const MOO_SCREAM_WFTM_VAULT_ADDRESS = '0x3609A304c6A41d87E895b9c1fd18c02ba989Ba90'\nexport const MOO_SCREAM_LINK_VAULT_ADDRESS = '0x8e5e4D08485673770Ab372c05f95081BE0636Fa2'\nexport const MOO_BIFI_FTM_VAULT_ADDRESS = '0x75D4aB6843593C111Eeb02Ff07055009c836A1EF'\n//AVAX Vaults\nexport const MOO_WAVAX_VAULT_ADDRESS = '0xfA19c1d104F4AEfb8d5564f02B3AdCa1b515da58'\n//ETH Vaults\nexport const YVETH_VAULT_ADDRESS = '0xEcbd32bD581e241739be1763DFE7a8fFcC844ae1'\nexport const YVLINK_VAULT_ADDRESS = '0x60d133c666919B54a3254E0d3F14332cB783B733'\nexport const WETH_ADDRESS = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'\nexport const LINK_ADDRESS = '0x514910771AF9Ca656af840dff83E8264EcF986CA'\nexport const WSTETH_VAULT_ADDRESS = '0x86f78d3cbCa0636817AD9e27a44996C738Ec4932'\nexport const YVWETH_OPTIMISM_VAULT_ADDRESS = '0x7198FF382b5798dAb7DC72a23C1fec9dc091893B'\nexport const MOO_ETH_STETH_CRV_VAULT_ADDRESS = '0xa478E708A27853848C6Bc979668fe6225FEe46Fa'\n","// see https://stackoverflow.com/a/41102306\nconst CAN_SET_PROTOTYPE = 'setPrototypeOf' in Object\n\n/**\n * Indicates that the pair has insufficient reserves for a desired output amount. I.e. the amount of output cannot be\n * obtained by sending any amount of input.\n */\nexport class InsufficientReservesError extends Error {\n public readonly isInsufficientReservesError: true = true\n\n public constructor() {\n super()\n this.name = this.constructor.name\n if (CAN_SET_PROTOTYPE) Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n\n/**\n * Indicates that the input amount is too small to produce any amount of output. I.e. the amount of input sent is less\n * than the price of a single unit of output after fees.\n */\nexport class InsufficientInputAmountError extends Error {\n public readonly isInsufficientInputAmountError: true = true\n\n public constructor() {\n super()\n this.name = this.constructor.name\n if (CAN_SET_PROTOTYPE) Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n","import invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport JSBI from 'jsbi'\nimport { getAddress } from '@ethersproject/address'\n\nimport { BigintIsh, ZERO, ONE, TWO, THREE, SolidityType, SOLIDITY_TYPE_MAXIMA } from './constants'\n\nexport function validateSolidityTypeInstance(value: JSBI, solidityType: SolidityType): void {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), `${value} is not a ${solidityType}.`)\n invariant(JSBI.lessThanOrEqual(value, SOLIDITY_TYPE_MAXIMA[solidityType]), `${value} is not a ${solidityType}.`)\n}\n\n// warns if addresses are not checksummed\nexport function validateAndParseAddress(address: string): string {\n try {\n const checksummedAddress = getAddress(address)\n warning(address === checksummedAddress, `${address} is not checksummed.`)\n return checksummedAddress\n } catch (error) {\n invariant(false, `${address} is not a valid address.`)\n }\n}\n\nexport function parseBigintIsh(bigintIsh: BigintIsh): JSBI {\n return bigintIsh instanceof JSBI\n ? bigintIsh\n : typeof bigintIsh === 'bigint'\n ? JSBI.BigInt(bigintIsh.toString())\n : JSBI.BigInt(bigintIsh)\n}\n\n// mock the on-chain sqrt function\nexport function sqrt(y: JSBI): JSBI {\n validateSolidityTypeInstance(y, SolidityType.uint256)\n let z: JSBI = ZERO\n let x: JSBI\n if (JSBI.greaterThan(y, THREE)) {\n z = y\n x = JSBI.add(JSBI.divide(y, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(y, x), x), TWO)\n }\n } else if (JSBI.notEqual(y, ZERO)) {\n z = ONE\n }\n return z\n}\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert<T>(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n","// noinspection JSNonASCIINames,NonAsciiCharacters\n\nimport JSBI from 'jsbi'\n\nimport { ChainId, SolidityType } from '../constants'\nimport { validateSolidityTypeInstance } from '../utils'\n\n/**\n * A currency is any fungible financial instrument on Ethereum, including Ether and all ERC20 tokens.\n *\n * The only instance of the base class `Currency` is Ether.\n */\nexport class Currency {\n public readonly decimals: number\n public readonly symbol?: string\n public readonly name?: string\n\n public static readonly ETHER: Currency = new Currency(18, 'ETH', 'Ether')\n\n public static readonly BNB: Currency = new Currency(18, 'BNB', 'Binance Coin')\n\n public static readonly FTM: Currency = new Currency(18, 'FTM', 'Fantom')\n\n public static readonly MATIC: Currency = new Currency(18, 'MATIC', 'Matic')\n\n public static readonly XDAI: Currency = new Currency(18, 'XDAI', 'xDai')\n\n public static readonly GLMR: Currency = new Currency(18, 'GLMR', 'Glimmer')\n\n public static readonly AVAX: Currency = new Currency(18, 'AVAX', 'Avalanche')\n\n public static readonly HT: Currency = new Currency(18, 'HT', 'Heco Token')\n\n public static readonly ONE: Currency = new Currency(18, 'ONE', 'Harmony')\n\n public static readonly MOVR: Currency = new Currency(18, 'MOVR', 'Moonriver')\n\n public static readonly CRO: Currency = new Currency(18, 'CRO', 'Cronos')\n\n public static readonly SYSCOIN: Currency = new Currency(18, 'WSYS', 'Wrapped Syscoin')\n\n public static readonly METIS: Currency = new Currency(18, 'METIS', 'Wrapped Metis')\n\n public static readonly MOONBEAM: Currency = new Currency(18, 'WGLMR', 'Wrapped GLMR')\n\n public static readonly MILKOMEDA: Currency = new Currency(18, 'WADA', 'Wrapped ADA')\n\n public static readonly KAVA: Currency = new Currency(18, 'WKAVA', 'Wrapped Kava')\n\n public static readonly IOTEX: Currency = new Currency(18, 'WIOTX', 'Wrapped IoTeX')\n\n public static readonly KLAYTN: Currency = new Currency(18, 'WKLAY', 'Wrapped Klaytn')\n\n public static readonly CELO: Currency = new Currency(18, 'WCELO', 'Wrapped Celo')\n\n public static readonly AURORA: Currency = new Currency(18, 'WETH', 'Wrapped Ether')\n\n public static readonly BOBA: Currency = new Currency(18, 'WETH', 'Wrapped Ether')\n\n public static readonly CUBE: Currency = new Currency(18, 'WCUBE', 'Wrapped Cube')\n\n public static readonly NATIVE = {\n [ChainId.MAINNET]: Currency.ETHER,\n [ChainId.GÖRLI]: Currency.ETHER,\n [ChainId.KOVAN]: Currency.ETHER,\n [ChainId.FANTOM]: Currency.FTM,\n [ChainId.FANTOM_TESTNET]: Currency.FTM,\n [ChainId.MATIC]: Currency.MATIC,\n [ChainId.MATIC_TESTNET]: Currency.MATIC,\n [ChainId.XDAI]: Currency.XDAI,\n [ChainId.BSC]: Currency.BNB,\n [ChainId.BSC_TESTNET]: Currency.BNB,\n [ChainId.ARBITRUM]: Currency.ETHER,\n [ChainId.MOONBASE]: Currency.GLMR,\n [ChainId.AVALANCHE]: Currency.AVAX,\n [ChainId.FUJI]: Currency.AVAX,\n [ChainId.HECO]: Currency.HT,\n [ChainId.HECO_TESTNET]: Currency.HT,\n [ChainId.HARMONY]: Currency.ONE,\n [ChainId.HARMONY_TESTNET]: Currency.ONE,\n [ChainId.CRONOS]: Currency.CRO,\n [ChainId.MOONRIVER]: Currency.MOVR,\n [ChainId.OPTIMISM]: Currency.ETHER,\n [ChainId.SYSCOIN]: Currency.SYSCOIN,\n [ChainId.METIS]: Currency.METIS,\n [ChainId.MOONBEAM]: Currency.MOONBEAM,\n [ChainId.MILKOMEDA]: Currency.MILKOMEDA,\n [ChainId.KAVA]: Currency.KAVA,\n [ChainId.IOTEX]: Currency.IOTEX,\n [ChainId.KLAYTN]: Currency.KLAYTN,\n [ChainId.CELO]: Currency.CELO,\n [ChainId.AURORA]: Currency.AURORA,\n [ChainId.BOBA]: Currency.BOBA,\n [ChainId.CUBE]: Currency.CUBE,\n }\n\n /**\n * Constructs an instance of the base class `Currency`. The only instance of the base class `Currency` is `Currency.ETHER`.\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(decimals: number, symbol?: string, name?: string) {\n validateSolidityTypeInstance(JSBI.BigInt(decimals), SolidityType.uint8)\n\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n public static getNativeCurrency(chainId?: ChainId) {\n if (!chainId) {\n throw Error(`No chainId ${chainId}`)\n }\n\n if (!(chainId in Currency.NATIVE)) {\n throw Error(`No native currency defined for chainId ${chainId}`)\n }\n return Currency.NATIVE[chainId]\n }\n\n public static getNativeCurrencySymbol(chainId?: ChainId) {\n const nativeCurrency = this.getNativeCurrency(chainId)\n return nativeCurrency.symbol\n }\n\n public static getNativeCurrencyName(chainId?: ChainId) {\n const nativeCurrency = this.getNativeCurrency(chainId)\n return nativeCurrency.name\n }\n\n public getSymbol(chainId?: ChainId) {\n if (!chainId) {\n return this?.symbol\n }\n\n if (this?.symbol === 'ETH') {\n return Currency.getNativeCurrencySymbol(chainId)\n }\n\n // if (this?.symbol === 'WETH') {\n // return `W${Currency.getNativeCurrencySymbol(chainId)}`\n // }\n\n return this?.symbol\n }\n\n public getName(chainId?: ChainId) {\n if (!chainId) {\n return this?.name\n }\n\n if (this?.name === 'Ether') {\n return Currency.getNativeCurrencyName(chainId)\n }\n\n return this?.name\n }\n}\n\nconst ETHER = Currency.ETHER\n\nexport { ETHER }\n","import invariant from 'tiny-invariant'\nimport { ChainId, WFTM_ADDRESS } from '../constants'\nimport { validateAndParseAddress } from '../utils'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends Currency {\n public readonly chainId: ChainId\n public readonly address: string\n\n public constructor(chainId: ChainId, address: string, decimals: number, symbol?: string, name?: string) {\n super(decimals, symbol, name)\n this.chainId = chainId\n this.address = validateAndParseAddress(address)\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Token): boolean {\n // short circuit on reference equality\n if (this === other) {\n return true\n }\n return this.chainId === other.chainId && this.address === other.address\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address !== other.address, 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n}\n\n/**\n * Compares two currencies for equality\n */\nexport function currencyEquals(currencyA: Currency, currencyB: Currency): boolean {\n if (currencyA instanceof Token && currencyB instanceof Token) {\n return currencyA.equals(currencyB)\n } else if (currencyA instanceof Token) {\n return false\n } else if (currencyB instanceof Token) {\n return false\n } else {\n return currencyA === currencyB\n }\n}\n\nexport const WNATIVE = {\n [ChainId.MAINNET]: new Token(\n ChainId.MAINNET,\n '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n 18,\n 'WETH',\n 'Wrapped Ether'\n ),\n [ChainId.GÖRLI]: new Token(ChainId.GÖRLI, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.KOVAN]: new Token(ChainId.KOVAN, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.FANTOM]: new Token(ChainId.FANTOM, WFTM_ADDRESS, 18, 'WFTM', 'Wrapped FTM'),\n [ChainId.FANTOM_TESTNET]: new Token(\n ChainId.FANTOM_TESTNET,\n '0xf1277d1Ed8AD466beddF92ef448A132661956621',\n 18,\n 'FTM',\n 'Wrapped FTM'\n ),\n [ChainId.MATIC]: new Token(\n ChainId.MATIC,\n '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',\n 18,\n 'WMATIC',\n 'Wrapped Matic'\n ),\n [ChainId.MATIC_TESTNET]: new Token(\n ChainId.MATIC_TESTNET,\n '0x5B67676a984807a212b1c59eBFc9B3568a474F0a',\n 18,\n 'WMATIC',\n 'Wrapped Matic'\n ),\n [ChainId.XDAI]: new Token(ChainId.XDAI, '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 18, 'WXDAI', 'Wrapped xDai'),\n [ChainId.BSC]: new Token(ChainId.BSC, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n [ChainId.BSC_TESTNET]: new Token(\n ChainId.BSC_TESTNET,\n '0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd',\n 18,\n 'WBNB',\n 'Wrapped BNB'\n ),\n [ChainId.ARBITRUM]: new Token(\n ChainId.ARBITRUM,\n '0xf8456e5e6A225C2C1D74D8C9a4cB2B1d5dc1153b',\n 18,\n 'WETH',\n 'Wrapped Ether'\n ),\n [ChainId.MOONBASE]: new Token(\n ChainId.MOONBASE,\n '0xe73763DB808ecCDC0E36bC8E32510ED126910394',\n 18,\n 'WETH',\n 'Wrapped Ether'\n ),\n [ChainId.AVALANCHE]: new Token(\n ChainId.AVALANCHE,\n '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',\n 18,\n 'WAVAX',\n 'Wrapped AVAX'\n ),\n [ChainId.FUJI]: new Token(ChainId.FUJI, '0xd00ae08403B9bbb9124bB305C09058E32C39A48c', 18, 'WAVAX', 'Wrapped AVAX'),\n [ChainId.HECO]: new Token(ChainId.HECO, '0x5545153CCFcA01fbd7Dd11C0b23ba694D9509A6F', 18, 'WHT', 'Wrapped HT'),\n [ChainId.HECO_TESTNET]: new Token(\n ChainId.HECO_TESTNET,\n '0x5B2DA6F42CA09C77D577a12BeaD0446148830687',\n 18,\n 'WHT',\n 'Wrapped HT'\n ),\n [ChainId.HARMONY]: new Token(\n ChainId.HARMONY,\n '0xcF664087a5bB0237a0BAd6742852ec6c8d69A27a',\n 18,\n 'WONE',\n 'Wrapped ONE'\n ),\n [ChainId.HARMONY_TESTNET]: new Token(\n ChainId.HARMONY_TESTNET,\n '0x7a2afac38517d512E55C0bCe3b6805c10a04D60F',\n 18,\n 'WONE',\n 'Wrapped ONE'\n ),\n [ChainId.MOONRIVER]: new Token(\n ChainId.MOONRIVER,\n '0x98878B06940aE243284CA214f92Bb71a2b032B8A',\n 18,\n 'WMOVR',\n 'Wrapped MOVR'\n ),\n [ChainId.CRONOS]: new Token(ChainId.CRONOS, '0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23', 18, 'WCRO', 'Wrapped CRO'),\n [ChainId.OPTIMISM]: new Token(\n ChainId.OPTIMISM,\n '0x4200000000000000000000000000000000000006',\n 18,\n 'WETH',\n 'Wrapped Ether'\n ),\n [ChainId.SYSCOIN]: new Token(\n ChainId.SYSCOIN,\n '0xd3e822f3ef011Ca5f17D82C956D952D8d7C3A1BB',\n 18,\n 'WSYS',\n 'Wrapped Syscoin'\n ),\n [ChainId.METIS]: new Token(ChainId.METIS, '0x75cb093E4D61d2A2e65D8e0BBb01DE8d89b53481', 18, 'WETH', 'Wrapped Metis'),\n [ChainId.MOONBEAM]: new Token(\n ChainId.MOONBEAM,\n '0xAcc15dC74880C9944775448304B263D191c6077F',\n 18,\n 'WGLMR',\n 'Wrapped GLMR'\n ),\n [ChainId.MILKOMEDA]: new Token(\n ChainId.MILKOMEDA,\n '0xAE83571000aF4499798d1e3b0fA0070EB3A3E3F9',\n 18,\n 'WADA',\n 'Wrapped ADA'\n ),\n [ChainId.KAVA]: new Token(ChainId.KAVA, '0xc86c7C0eFbd6A49B35E8714C5f59D99De09A225b', 18, 'WKAVA', 'Wrapped Kava'),\n [ChainId.IOTEX]: new Token(ChainId.IOTEX, '0xa00744882684c3e4747faefd68d283ea44099d03', 18, 'WIOTX', 'Wrapped IoTeX'),\n [ChainId.KLAYTN]: new Token(\n ChainId.KLAYTN,\n '0xfd844c2fca5e595004b17615f891620d1cb9bbb2',\n 18,\n 'WKLAY',\n 'Wrapped Klaytn'\n ),\n [ChainId.CELO]: new Token(ChainId.CELO, '0x3Ad443d769A07f287806874F8E5405cE3Ac902b9', 18, 'WCELO', 'Wrapped Celo'),\n [ChainId.AURORA]: new Token(\n ChainId.AURORA,\n '0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB',\n 18,\n 'WETH',\n 'Wrapped Ether'\n ),\n [ChainId.BOBA]: new Token(ChainId.BOBA, '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000', 18, 'WETH', 'Wrapped Ether'),\n [ChainId.CUBE]: new Token(ChainId.CUBE, '0x9d3f61338d6eb394e378d28c1fd17d5909ac6591', 18, 'WCUBE', 'Wrapped Cube'),\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { ONE } from '../../constants'\nimport { parseBigintIsh } from '../../utils'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = ONE) {\n this.numerator = parseBigintIsh(numerator)\n this.denominator = parseBigintIsh(denominator)\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = other instanceof Fraction ? other : new Fraction(parseBigintIsh(other))\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n}\n","import { Rounding, _100 } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst _100_PERCENT = new Fraction(_100)\n\nexport class Percent extends Fraction {\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return this.multiply(_100_PERCENT).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return this.multiply(_100_PERCENT).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import { currencyEquals } from '../token'\nimport { Currency, ETHER } from '../currency'\nimport invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport _Big from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding, TEN, SolidityType } from '../../constants'\nimport { parseBigintIsh, validateSolidityTypeInstance } from '../../utils'\nimport { Fraction } from './fraction'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: Currency\n\n /**\n * Helper that calls the constructor with the ETHER currency\n * @param amount ether amount in wei\n */\n public static ether(amount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(ETHER, amount)\n }\n\n // amount _must_ be raw, i.e. in the native representation\n protected constructor(currency: Currency, amount: BigintIsh) {\n const parsedAmount = parseBigintIsh(amount)\n validateSolidityTypeInstance(parsedAmount, SolidityType.uint256)\n\n super(parsedAmount, JSBI.exponentiate(TEN, JSBI.BigInt(currency.decimals)))\n this.currency = currency\n }\n\n public get raw(): JSBI {\n return this.numerator\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(currencyEquals(this.currency, other.currency), 'TOKEN')\n return new CurrencyAmount(this.currency, JSBI.add(this.raw, other.raw))\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(currencyEquals(this.currency, other.currency), 'TOKEN')\n return new CurrencyAmount(this.currency, JSBI.subtract(this.raw, other.raw))\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(format)\n }\n}\n","import { CurrencyAmount } from './currencyAmount'\nimport { Token } from '../token'\nimport invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\n\nimport { BigintIsh } from '../../constants'\n\nexport class TokenAmount extends CurrencyAmount {\n public readonly token: Token\n\n // amount _must_ be raw, i.e. in the native representation\n public constructor(token: Token, amount: BigintIsh) {\n super(token, amount)\n this.token = token\n }\n\n public add(other: TokenAmount): TokenAmount {\n invariant(this.token.equals(other.token), 'TOKEN')\n return new TokenAmount(this.token, JSBI.add(this.raw, other.raw))\n }\n\n public subtract(other: TokenAmount): TokenAmount {\n invariant(this.token.equals(other.token), 'TOKEN')\n return new TokenAmount(this.token, JSBI.subtract(this.raw, other.raw))\n }\n}\n","import { Token } from '../token'\nimport { TokenAmount } from './tokenAmount'\nimport { currencyEquals } from '../token'\nimport invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\n\nimport { BigintIsh, Rounding, TEN } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: Currency // input i.e. denominator\n public readonly quoteCurrency: Currency // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n // denominator and numerator _must_ be raw, i.e. in the native representation\n public constructor(baseCurrency: Currency, quoteCurrency: Currency, denominator: BigintIsh, numerator: BigintIsh) {\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(TEN, JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(TEN, JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n public get raw(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n\n public get adjusted(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n public multiply(other: Price): Price {\n invariant(currencyEquals(this.quoteCurrency, other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n // performs floor division on overflow\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyEquals(currencyAmount.currency, this.baseCurrency), 'TOKEN')\n if (this.quoteCurrency instanceof Token) {\n return new TokenAmount(this.quoteCurrency, super.multiply(currencyAmount.raw).quotient)\n }\n return CurrencyAmount.ether(super.multiply(currencyAmount.raw).quotient)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjusted.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjusted.toFixed(decimalPlaces, format, rounding)\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport {\n Signer,\n utils,\n Contract,\n ContractFactory,\n BigNumberish,\n Overrides,\n} from \"ethers\";\nimport type { Provider, TransactionRequest } from \"@ethersproject/providers\";\nimport type { PromiseOrValue } from \"../common\";\nimport type { QiStablecoin, QiStablecoinInterface } from \"../QiStablecoin\";\n\nconst _abi = [\n {\n constant: false,\n inputs: [\n {\n name: \"tokenPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeTokenPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"spender\",\n type: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"sender\",\n type: \"address\",\n },\n {\n name: \"recipient\",\n type: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"decimals\",\n outputs: [\n {\n name: \"\",\n type: \"uint8\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"spender\",\n type: \"address\",\n },\n {\n name: \"addedValue\",\n type: \"uint256\",\n },\n ],\n name: \"increaseAllowance\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultOwner\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"transferVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"account\",\n type: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"mint\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"account\",\n type: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"spender\",\n type: \"address\",\n },\n {\n name: \"subtractedValue\",\n type: \"uint256\",\n },\n ],\n name: \"decreaseAllowance\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultExistence\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"recipient\",\n type: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"transfer\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtCeiling\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPriceSource\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"buyRiskyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"owner\",\n type: \"address\",\n },\n {\n name: \"spender\",\n type: \"address\",\n },\n ],\n name: \"allowance\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtCeiling\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_treasury\",\n type: \"address\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkClosingFee\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n name: \"tokenPriceSourceAddress\",\n type: \"address\",\n },\n {\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n name: \"name\",\n type: \"string\",\n },\n {\n name: \"symbol\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"amountPayed\",\n type: \"uint256\",\n },\n ],\n name: \"BuyRiskyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"spender\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n];\n\nconst _bytecode =\n \"0x60806040523480156200001157600080fd5b50604051620049de380380620049de833981018060405260a08110156200003757600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080516401000000008111156200006e57600080fd5b828101905060208101848111156200008557600080fd5b8151856001820283011164010000000082111715620000a357600080fd5b50509291906020018051640100000000811115620000c057600080fd5b82810190506020810184811115620000d757600080fd5b8151856001820283011164010000000082111715620000f557600080fd5b505092919050505084848484848181601282600390805190602001906200011e92919062000369565b5081600490805190602001906200013792919062000369565b5080600560006101000a81548160ff021916908360ff160217905550505050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156200019057fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515620001ca57fe5b60008314151515620001d857fe5b6a084595161401484a0000006009819055506032600a8190555084600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260078190555050505050506200029962000361640100000000026401000000009004565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050505062000418565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003ac57805160ff1916838001178555620003dd565b82800160010185558215620003dd579182015b82811115620003dc578251825591602001919060010190620003bf565b5b509050620003ec9190620003f0565b5090565b6200041591905b8082111562000411576000816000905550600101620003f7565b5090565b90565b6145b680620004286000396000f3fe60806040526004361061028f576000357c0100000000000000000000000000000000000000000000000000000000900480638da5cb5b1161016c578063b1511cc9116100de578063d4a9b2c511610097578063d4a9b2c514610e5c578063dd62ed3e14610eab578063e1c84ea414610f30578063f0f4426014610f5b578063f2fde38b14610fac578063ff24b9bc14610ffd5761028f565b8063b1511cc914610ce7578063bad4a01f14610d22578063bda609f614610d50578063cd44db1b14610da7578063ce77f24314610dd2578063d310f49b14610e0d5761028f565b80639dc29fac116101305780639dc29fac14610afd578063a457c2d714610b58578063a525323d14610bcb578063a5e9883714610c1e578063a7c6a10014610c49578063a9059cbb14610c745761028f565b80638da5cb5b146109915780638f32d59b146109e857806394cd4ba714610a1757806395d89b4114610a4257806398c3f2db14610ad25761028f565b80633db991771161020557806361d027b3116101c957806361d027b3146107f957806370a0823114610850578063715018a6146108b5578063767a7b05146108cc57806385af3c161461091157806385e290a3146109565761028f565b80633db99177146106865780633e61facd146106c157806340c10f191461071c57806342f371c6146107775780635d12928b146107ce5761028f565b806318160ddd1161025757806318160ddd1461047e5780631c883e7b146104a957806323b872dd146104d4578063313ce5671461056757806339509351146105985780633c2ecfe51461060b5761028f565b806303c5a29b1461029457806306fdde03146102e5578063079605321461037557806308ec5927146103c6578063095ea7b31461040b575b600080fd5b3480156102a057600080fd5b506102e3600480360360208110156102b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061104c565b005b3480156102f157600080fd5b506102fa61110c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033a57808201518184015260208101905061031f565b50505050905090810190601f1680156103675780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038157600080fd5b506103c46004803603602081101561039857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ae565b005b3480156103d257600080fd5b50610409600480360360408110156103e957600080fd5b81019080803590602001909291908035906020019092919050505061126e565b005b34801561041757600080fd5b506104646004803603604081101561042e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115cb565b604051808215151515815260200191505060405180910390f35b34801561048a57600080fd5b506104936115e9565b6040518082815260200191505060405180910390f35b3480156104b557600080fd5b506104be6115f3565b6040518082815260200191505060405180910390f35b3480156104e057600080fd5b5061054d600480360360608110156104f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115f9565b604051808215151515815260200191505060405180910390f35b34801561057357600080fd5b5061057c6116d3565b604051808260ff1660ff16815260200191505060405180910390f35b3480156105a457600080fd5b506105f1600480360360408110156105bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116ea565b604051808215151515815260200191505060405180910390f35b34801561061757600080fd5b506106446004803603602081101561062e57600080fd5b810190808035906020019092919050505061179d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069257600080fd5b506106bf600480360360208110156106a957600080fd5b81019080803590602001909291905050506117d0565b005b3480156106cd57600080fd5b5061071a600480360360408110156106e457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061192c565b005b34801561072857600080fd5b506107756004803603604081101561073f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b8e565b005b34801561078357600080fd5b5061078c611c18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107da57600080fd5b506107e3611c3e565b6040518082815260200191505060405180910390f35b34801561080557600080fd5b5061080e611d55565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085c57600080fd5b5061089f6004803603602081101561087357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d7b565b6040518082815260200191505060405180910390f35b3480156108c157600080fd5b506108ca611dc3565b005b3480156108d857600080fd5b5061090f600480360360408110156108ef57600080fd5b810190808035906020019092919080359060200190929190505050611f00565b005b34801561091d57600080fd5b506109546004803603604081101561093457600080fd5b81019080803590602001909291908035906020019092919050505061222a565b005b34801561096257600080fd5b5061098f6004803603602081101561097957600080fd5b8101908080359060200190929190505050612549565b005b34801561099d57600080fd5b506109a661287a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109f457600080fd5b506109fd6128a4565b604051808215151515815260200191505060405180910390f35b348015610a2357600080fd5b50610a2c612903565b6040518082815260200191505060405180910390f35b348015610a4e57600080fd5b50610a5761290d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a97578082015181840152602081019050610a7c565b50505050905090810190601f168015610ac45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ade57600080fd5b50610ae76129af565b6040518082815260200191505060405180910390f35b348015610b0957600080fd5b50610b5660048036036040811015610b2057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612aa6565b005b348015610b6457600080fd5b50610bb160048036036040811015610b7b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b30565b604051808215151515815260200191505060405180910390f35b348015610bd757600080fd5b50610c0460048036036020811015610bee57600080fd5b8101908080359060200190929190505050612bfe565b604051808215151515815260200191505060405180910390f35b348015610c2a57600080fd5b50610c33612c1e565b6040518082815260200191505060405180910390f35b348015610c5557600080fd5b50610c5e612c28565b6040518082815260200191505060405180910390f35b348015610c8057600080fd5b50610ccd60048036036040811015610c9757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c2e565b604051808215151515815260200191505060405180910390f35b348015610cf357600080fd5b50610d2060048036036020811015610d0a57600080fd5b8101908080359060200190929190505050612c4c565b005b610d4e60048036036020811015610d3857600080fd5b8101908080359060200190929190505050612d34565b005b348015610d5c57600080fd5b50610d65612f35565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610db357600080fd5b50610dbc612f5b565b6040518082815260200191505060405180910390f35b348015610dde57600080fd5b50610e0b60048036036020811015610df557600080fd5b8101908080359060200190929190505050613052565b005b348015610e1957600080fd5b50610e4660048036036020811015610e3057600080fd5b810190808035906020019092919050505061338d565b6040518082815260200191505060405180910390f35b348015610e6857600080fd5b50610e9560048036036020811015610e7f57600080fd5b81019080803590602001909291905050506133a5565b6040518082815260200191505060405180910390f35b348015610eb757600080fd5b50610f1a60048036036040811015610ece57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133bd565b6040518082815260200191505060405180910390f35b348015610f3c57600080fd5b50610f45613444565b6040518082815260200191505060405180910390f35b348015610f6757600080fd5b50610faa60048036036020811015610f7e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061344a565b005b348015610fb857600080fd5b50610ffb60048036036020811015610fcf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613543565b005b34801561100957600080fd5b506110366004803603602081101561102057600080fd5b81019080803590602001909291905050506135cb565b6040518082815260200191505060405180910390f35b6110546128a4565b15156110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a45780601f10611179576101008083540402835291602001916111a4565b820191906000526020600020905b81548152906001019060200180831161118757829003601f168201915b5050505050905090565b6111b66128a4565b151561122a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b81600c600082815260200190815260200160002060009054906101000a900460ff161515611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661756c7420646f6573206e6f7420657869737400000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600d600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156113da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5661756c74206973206e6f74206f776e656420627920796f750000000000000081525060200191505060405180910390fd5b600082111515611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4d75737420626f72726f77206e6f6e2d7a65726f20616d6f756e74000000000081525060200191505060405180910390fd5b6009548261145e6115e9565b01111515156114b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614561602a913960400191505060405180910390fd5b600082600f600086815260200190815260200160002054019050600f600085815260200190815260200160002054811115156114f057fe5b61150d600e600086815260200190815260200160002054826136a3565b1515611564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614468603a913960400191505060405180910390fd5b80600f60008681526020019081526020016000208190555061158633846136d7565b7f3e08df88d8e28f37df9bf227d3142ac506a364403445661a60891a49ed6792ca8484604051808381526020018281526020019250505060405180910390a150505050565b60006115df6115d8613894565b848461389c565b6001905092915050565b6000600254905090565b600a5481565b6000611606848484613a97565b6116c884611612613894565b6116c3856060604051908101604052806028815260200161441f60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611679613894565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d529092919063ffffffff16565b61389c565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006117936116f7613894565b8461178e8560016000611708613894565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1490919063ffffffff16565b61389c565b6001905092915050565b600d6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117d86128a4565b151561184c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b806000111515156118c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436c6f73696e6720666565206d757374206265206f766572203000000000000081525060200191505060405180910390fd5b8061271010151515611922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061451b6021913960400191505060405180910390fd5b80600a8190555050565b81600c600082815260200190815260200160002060009054906101000a900460ff1615156119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661756c7420646f6573206e6f7420657869737400000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600d600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5661756c74206973206e6f74206f776e656420627920796f750000000000000081525060200191505060405180910390fd5b81600d600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa8159d062909288cfe1bc71a9cb71a800664f2658fc2588d52676a844f1b0f13833384604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a1505050565b611b966128a4565b1515611c0a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611c1482826136d7565b5050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600854905060016008600082825401925050819055508060085410151515611c6557fe5b6001600c600083815260200190815260200160002060006101000a81548160ff02191690831515021790555033600d600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f8b6c1d05c678fa59695e26465a85918ce0fc63a88f74af53d1daef8f0a9c78048133604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a18091505090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611dcb6128a4565b1515611e3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b81600c600082815260200190815260200160002060009054906101000a900460ff161515611f96576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661756c7420646f6573206e6f7420657869737400000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600d600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561206c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5661756c74206973206e6f74206f776e656420627920796f750000000000000081525060200191505060405180910390fd5b81600e600085815260200190815260200160002054101515156120da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806143216025913960400191505060405180910390fd5b600082600e6000868152602001908152602001600020540390506000600f6000868152602001908152602001600020541415156121865761212e81600f6000878152602001908152602001600020546136a3565b1515612185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806143e1603e913960400191505060405180910390fd5b5b80600e6000868152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156121e4573d6000803e3d6000fd5b507f6c0ea3bea9dd66afa8f9d39d6eb93d833466190330813b42835efc650dca4cb98484604051808381526020018281526020019250505060405180910390a150505050565b81600c600082815260200190815260200160002060009054906101000a900460ff1615156122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661756c7420646f6573206e6f7420657869737400000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600d600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612396576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5661756c74206973206e6f74206f776e656420627920796f750000000000000081525060200191505060405180910390fd5b600082612710600a5485028115156123aa57fe5b04019050806123b833611d7b565b1015151561242e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f546f6b656e2062616c616e636520746f6f206c6f77000000000000000000000081525060200191505060405180910390fd5b80600f6000868152602001908152602001600020541015151561249c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806143466032913960400191505060405180910390fd5b82600f6000868152602001908152602001600020600082825403925050819055506124c73382613e9e565b612504600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600a5486028115156124fe57fe5b046136d7565b7fca61a5a543395ef00f7dc6426b9f9b227c0ef853a44388cdd9fddbbabd2e087a8484604051808381526020018281526020019250505060405180910390a150505050565b80600c600082815260200190815260200160002060009054906101000a900460ff1615156125df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661756c7420646f6573206e6f7420657869737400000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600d600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156126b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5661756c74206973206e6f74206f776e656420627920796f750000000000000081525060200191505060405180910390fd5b6000600f600084815260200190815260200160002054141515612740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5661756c7420686173206f75747374616e64696e67206465627400000000000081525060200191505060405180910390fd5b6000600e6000848152602001908152602001600020541015156127b8573373ffffffffffffffffffffffffffffffffffffffff166108fc600e6000858152602001908152602001600020549081150290604051600060405180830381858888f193505050501580156127b6573d6000803e3d6000fd5b505b600c600083815260200190815260200160002060006101000a81549060ff0219169055600d600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600e600083815260200190815260200160002060009055600f6000838152602001908152602001600020600090557f4fe08624ee65b341c38ab9693d216b909d4ddee1bc8d3fe0fea14026c361b465826040518082815260200191505060405180910390a15050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128e7613894565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600954905090565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129a55780601f1061297a576101008083540402835291602001916129a5565b820191906000526020600020905b81548152906001019060200180831161298857829003601f168201915b5050505050905090565b600080600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160a06040518083038186803b158015612a3657600080fd5b505afa158015612a4a573d6000803e3d6000fd5b505050506040513d60a0811015612a6057600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050505050509150508091505090565b612aae6128a4565b1515612b22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b612b2c8282613e9e565b5050565b6000612bf4612b3d613894565b84612bef856060604051908101604052806025815260200161453c6025913960016000612b68613894565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d529092919063ffffffff16565b61389c565b6001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000600a54905090565b60085481565b6000612c42612c3b613894565b8484613a97565b6001905092915050565b612c546128a4565b1515612cc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80612cd16115e9565b11151515612d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806143786038913960400191505060405180910390fd5b8060098190555050565b80600c600082815260200190815260200160002060009054906101000a900460ff161515612dca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661756c7420646f6573206e6f7420657869737400000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600d600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5661756c74206973206e6f74206f776e656420627920796f750000000000000081525060200191505060405180910390fd5b600034600e600085815260200190815260200160002054019050600e6000848152602001908152602001600020548110151515612ed957fe5b80600e6000858152602001908152602001600020819055507f52c4e7127ec34e8fc95f09ce2d06b4f00acca12ccbcdfb246ef67ee6aefe068d8334604051808381526020018281526020019250505060405180910390a1505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160a06040518083038186803b158015612fe257600080fd5b505afa158015612ff6573d6000803e3d6000fd5b505050506040513d60a081101561300c57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050505050509150508091505090565b600c600082815260200190815260200160002060009054906101000a900460ff1615156130e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661756c7420646f6573206e6f7420657869737400000000000000000000000081525060200191505060405180910390fd5b60008061311a600e600085815260200190815260200160002054600f600086815260200190815260200160002054614059565b915091506000818381151561312b57fe5b0490506007548110151561318a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806144c76030913960400191505060405180910390fd5b60006007548481151561319957fe5b04905060006131a6612f5b565b828115156131b057fe5b049050600081600f600089815260200190815260200160002054039050806131d733611d7b565b10151515613230576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806143b06031913960400191505060405180910390fd5b6000600d600089815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905033600d60008a815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600f60008a8152602001908152602001600020819055506132dc3383613e9e565b7fd5f2917d6c1a1057183be88f3f1c867cf597030f2cd1197a2fdfe1f51376d0cb88823385604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a15050505050505050565b600f6020528060005260406000206000915090505481565b600e6020528060005260406000206000915090505481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b6134526128a4565b15156134c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156134ff57fe5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61354b6128a4565b15156135bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6135c8816140db565b50565b6000600c600083815260200190815260200160002060009054906101000a900460ff161515613662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661756c7420646f6573206e6f7420657869737400000000000000000000000081525060200191505060405180910390fd5b600f600083815260200190815260200160002054612710600a54600f6000868152602001908152602001600020540281151561369a57fe5b04019050919050565b60008060006136b28585614059565b91509150600081838115156136c357fe5b049050600754811015935050505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561377c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61379181600254613e1490919063ffffffff16565b6002819055506137e8816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613924576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806144f76024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156139ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806142d96022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806144a26025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613ba7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061426e6023913960400191505060405180910390fd5b613c1381606060405190810160405280602681526020016142fb602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d529092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ca6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582901515613e01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613dc6578082015181840152602081019050613dab565b50505050905090810190601f168015613df35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110151515613e94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613f26576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806144476021913960400191505060405180910390fd5b613f928160606040519081016040528060228152602001614291602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d529092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613fe98160025461422390919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060006140666129af565b1415151561407057fe5b600061407a612f5b565b1415151561408457fe5b600061408e6129af565b8502905084811015151561409e57fe5b60006140a8612f5b565b850290508481101515156140b857fe5b600060648302905082811115156140cb57fe5b8082945094505050509250929050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515614163576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806142b36026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061426583836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d52565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63655661756c7420646f6573206e6f74206861766520656e6f75676820636f6c6c61746572616c5661756c742064656274206c657373207468616e20616d6f756e7420746f20706179206261636b2028706c757320666565297365744365696c696e673a204d757374206265206f7665722074686520616d6f756e74206f66206f75747374616e64696e6720646562742e546f6b656e2062616c616e636520746f6f206c6f7720746f20706179206f6666206f75747374616e64696e6720646562745769746864726177616c20776f756c6420707574207661756c742062656c6f77206d696e696d756d20636f6c6c61746572616c2070657263656e7461676545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f2061646472657373426f72726f7720776f756c6420707574207661756c742062656c6f77206d696e696d756d20636f6c6c61746572616c2070657263656e7461676545524332303a207472616e736665722066726f6d20746865207a65726f20616464726573735661756c74206973206e6f742062656c6f77206d696e696d756d20636f6c6c61746572616c2070657263656e7461676545524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373436c6f73696e6720666565206d75737420626520756e646572203130302e30302545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f626f72726f77546f6b656e3a2043616e6e6f74206d696e74206f76657220746f74616c537570706c792ea165627a7a7230582060626f903f36d86fa4021458e90e426178621633154b8d845cc3105fb81e11060029\";\n\ntype QiStablecoinConstructorParams =\n | [signer?: Signer]\n | ConstructorParameters<typeof ContractFactory>;\n\nconst isSuperArgs = (\n xs: QiStablecoinConstructorParams\n): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;\n\nexport class QiStablecoin__factory extends ContractFactory {\n constructor(...args: QiStablecoinConstructorParams) {\n if (isSuperArgs(args)) {\n super(...args);\n } else {\n super(_abi, _bytecode, args[0]);\n }\n this.contractName = \"QiStablecoin\";\n }\n\n override deploy(\n ethPriceSourceAddress: PromiseOrValue<string>,\n tokenPriceSourceAddress: PromiseOrValue<string>,\n minimumCollateralPercentage: PromiseOrValue<BigNumberish>,\n name: PromiseOrValue<string>,\n symbol: PromiseOrValue<string>,\n overrides?: Overrides & { from?: PromiseOrValue<string> }\n ): Promise<QiStablecoin> {\n return super.deploy(\n ethPriceSourceAddress,\n tokenPriceSourceAddress,\n minimumCollateralPercentage,\n name,\n symbol,\n overrides || {}\n ) as Promise<QiStablecoin>;\n }\n override getDeployTransaction(\n ethPriceSourceAddress: PromiseOrValue<string>,\n tokenPriceSourceAddress: PromiseOrValue<string>,\n minimumCollateralPercentage: PromiseOrValue<BigNumberish>,\n name: PromiseOrValue<string>,\n symbol: PromiseOrValue<string>,\n overrides?: Overrides & { from?: PromiseOrValue<string> }\n ): TransactionRequest {\n return super.getDeployTransaction(\n ethPriceSourceAddress,\n tokenPriceSourceAddress,\n minimumCollateralPercentage,\n name,\n symbol,\n overrides || {}\n );\n }\n override attach(address: string): QiStablecoin {\n return super.attach(address) as QiStablecoin;\n }\n override connect(signer: Signer): QiStablecoin__factory {\n return super.connect(signer) as QiStablecoin__factory;\n }\n static readonly contractName: \"QiStablecoin\";\n\n public readonly contractName: \"QiStablecoin\";\n\n static readonly bytecode = _bytecode;\n static readonly abi = _abi;\n static createInterface(): QiStablecoinInterface {\n return new utils.Interface(_abi) as QiStablecoinInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): QiStablecoin {\n return new Contract(address, _abi, signerOrProvider) as QiStablecoin;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainNativeQiStablecoin,\n CrosschainNativeQiStablecoinInterface,\n} from \"../CrosschainNativeQiStablecoin\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"depositNative\",\n outputs: [],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract PriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"bool\",\n name: \"unwrap\",\n type: \"bool\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainNativeQiStablecoin__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainNativeQiStablecoinInterface {\n return new utils.Interface(_abi) as CrosschainNativeQiStablecoinInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainNativeQiStablecoin {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainNativeQiStablecoin;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainQiStablecoin,\n CrosschainQiStablecoinInterface,\n} from \"../CrosschainQiStablecoin\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"depositNative\",\n outputs: [],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract PriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainQiStablecoin__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainQiStablecoinInterface {\n return new utils.Interface(_abi) as CrosschainQiStablecoinInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainQiStablecoin {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainQiStablecoin;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainQiStablecoinSlim,\n CrosschainQiStablecoinSlimInterface,\n} from \"../CrosschainQiStablecoinSlim\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract IPriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"minDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_minDebt\",\n type: \"uint256\",\n },\n ],\n name: \"setMinDebt\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"version\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainQiStablecoinSlim__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainQiStablecoinSlimInterface {\n return new utils.Interface(_abi) as CrosschainQiStablecoinSlimInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainQiStablecoinSlim {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainQiStablecoinSlim;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainQiStablecoinSlimV2,\n CrosschainQiStablecoinSlimV2Interface,\n} from \"../CrosschainQiStablecoinSlimV2\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"cfDelta\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract IPriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"minDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_minDebt\",\n type: \"uint256\",\n },\n ],\n name: \"setMinDebt\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"version\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainQiStablecoinSlimV2__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainQiStablecoinSlimV2Interface {\n return new utils.Interface(_abi) as CrosschainQiStablecoinSlimV2Interface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainQiStablecoinSlimV2 {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainQiStablecoinSlimV2;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainQiStablecoinV2,\n CrosschainQiStablecoinV2Interface,\n} from \"../CrosschainQiStablecoinV2\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract IPriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainQiStablecoinV2__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainQiStablecoinV2Interface {\n return new utils.Interface(_abi) as CrosschainQiStablecoinV2Interface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainQiStablecoinV2 {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainQiStablecoinV2;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n CrosschainQiStablecoinwbtc,\n CrosschainQiStablecoinwbtcInterface,\n} from \"../CrosschainQiStablecoinwbtc\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract PriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class CrosschainQiStablecoinwbtc__factory {\n static readonly abi = _abi;\n static createInterface(): CrosschainQiStablecoinwbtcInterface {\n return new utils.Interface(_abi) as CrosschainQiStablecoinwbtcInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): CrosschainQiStablecoinwbtc {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as CrosschainQiStablecoinwbtc;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n Erc20QiStablecoincamwbtc,\n Erc20QiStablecoincamwbtcInterface,\n} from \"../Erc20QiStablecoincamwbtc\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"meta\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_meta\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"base\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract shareOracle\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n name: \"setBaseURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_tokenPeg\",\n type: \"uint256\",\n },\n ],\n name: \"setTokenPeg\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"transferToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"transferToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class Erc20QiStablecoincamwbtc__factory {\n static readonly abi = _abi;\n static createInterface(): Erc20QiStablecoincamwbtcInterface {\n return new utils.Interface(_abi) as Erc20QiStablecoincamwbtcInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): Erc20QiStablecoincamwbtc {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as Erc20QiStablecoincamwbtc;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n Erc20QiStablecoinwbtc,\n Erc20QiStablecoinwbtcInterface,\n} from \"../Erc20QiStablecoinwbtc\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"meta\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_meta\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"base\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract PriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20Detailed\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n name: \"setBaseURI\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_tokenPeg\",\n type: \"uint256\",\n },\n ],\n name: \"setTokenPeg\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"transferToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"transferToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class Erc20QiStablecoinwbtc__factory {\n static readonly abi = _abi;\n static createInterface(): Erc20QiStablecoinwbtcInterface {\n return new utils.Interface(_abi) as Erc20QiStablecoinwbtcInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): Erc20QiStablecoinwbtc {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as Erc20QiStablecoinwbtc;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type {\n Erc20Stablecoin,\n Erc20StablecoinInterface,\n} from \"../Erc20Stablecoin\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mimatic\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n ],\n name: \"TransferVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"baseURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract shareOracle\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getOpeningFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"isOwner\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"mimatic\",\n outputs: [\n {\n internalType: \"contract ERC20\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_tokenPeg\",\n type: \"uint256\",\n },\n ],\n name: \"setTokenPeg\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_treasury\",\n type: \"uint256\",\n },\n ],\n name: \"setTreasury\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"transferToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"treasury\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class Erc20Stablecoin__factory {\n static readonly abi = _abi;\n static createInterface(): Erc20StablecoinInterface {\n return new utils.Interface(_abi) as Erc20StablecoinInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): Erc20Stablecoin {\n return new Contract(address, _abi, signerOrProvider) as Erc20Stablecoin;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport type { StableQiVault, StableQiVaultInterface } from \"../StableQiVault\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_mai\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_collateral\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"baseURI\",\n type: \"string\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"promoter\",\n type: \"uint256\",\n },\n ],\n name: \"AddedFrontEnd\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BorrowToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"riskyVault\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newVault\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"riskyVaultBuyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amountPaidtoBuy\",\n type: \"uint256\",\n },\n ],\n name: \"BoughtRiskyDebtVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"BurnedToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"creator\",\n type: \"address\",\n },\n ],\n name: \"CreateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"DepositCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"DestroyVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"buyer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"debtRepaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"collateralLiquidated\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidateVault\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"PayBackToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"promoter\",\n type: \"uint256\",\n },\n ],\n name: \"RemovedFrontEnd\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"newAdmin\",\n type: \"address\",\n },\n ],\n name: \"UpdatedAdmin\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newFee\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedClosingFee\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedDebtRatio\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"_ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"UpdatedEthPriceSource\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_adminFee\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_refFee\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedFees\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"promoter\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newFee\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedFrontEnd\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedGainRatio\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"interestRate\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedInterestRate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMaxDebt\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedMaxDebt\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMinCollateralRatio\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedMinCollateralRatio\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMinDebt\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedMinDebt\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newFee\",\n type: \"uint256\",\n },\n ],\n name: \"UpdatedOpeningFee\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"string\",\n name: \"oracle\",\n type: \"string\",\n },\n ],\n name: \"UpdatedOracleName\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"newRef\",\n type: \"address\",\n },\n ],\n name: \"UpdatedRef\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"pool\",\n type: \"address\",\n },\n ],\n name: \"UpdatedStabilityPool\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"string\",\n name: \"uri\",\n type: \"string\",\n },\n ],\n name: \"UpdatedTokenURI\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawCollateral\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"earned\",\n type: \"uint256\",\n },\n ],\n name: \"WithdrawInterest\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"_minimumCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"accumulatedVaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_promoter\",\n type: \"uint256\",\n },\n ],\n name: \"addFrontEnd\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"adm\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"adminFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_front\",\n type: \"uint256\",\n },\n ],\n name: \"borrowToken\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amountToken\",\n type: \"uint256\",\n },\n ],\n name: \"burn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"buyRiskDebtVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"fee\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"promoFee\",\n type: \"uint256\",\n },\n ],\n name: \"calculateFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"ethPriceSourceAddress\",\n type: \"address\",\n },\n ],\n name: \"changeEthPriceSource\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCollateralPercentage\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkCost\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkExtract\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkLiquidation\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"checkRiskyVault\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"closingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"collateral\",\n outputs: [\n {\n internalType: \"contract ERC20\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"createVault\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"debtRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"decimalDifferenceRaisedToTen\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"depositCollateral\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"destroyVault\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"ethPriceSource\",\n outputs: [\n {\n internalType: \"contract IPriceSource\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"exists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"gainRatio\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getClosingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getDebtCeiling\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getEthPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"pay\",\n type: \"address\",\n },\n ],\n name: \"getPaid\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getPaid\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getTokenPriceSource\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getTotalValueLocked\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"iR\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_collateral\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"debt\",\n type: \"uint256\",\n },\n ],\n name: \"isValidCollateral\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"lastInterest\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_front\",\n type: \"uint256\",\n },\n ],\n name: \"liquidateVault\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"mai\",\n outputs: [\n {\n internalType: \"contract ERC20\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"maiDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"maticDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"maxDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"minDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"openingFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_front\",\n type: \"uint256\",\n },\n ],\n name: \"payBackToken\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"deadline\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_front\",\n type: \"uint256\",\n },\n ],\n name: \"paybackTokenAll\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"priceSourceDecimals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"promoter\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"ref\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"refFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_promoter\",\n type: \"uint256\",\n },\n ],\n name: \"removeFrontEnd\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"_data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_adm\",\n type: \"address\",\n },\n ],\n name: \"setAdmin\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_closingFee\",\n type: \"uint256\",\n },\n ],\n name: \"setClosingFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_debtRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setDebtRatio\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_admin\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_ref\",\n type: \"uint256\",\n },\n ],\n name: \"setFees\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_gainRatio\",\n type: \"uint256\",\n },\n ],\n name: \"setGainRatio\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_iR\",\n type: \"uint256\",\n },\n ],\n name: \"setInterestRate\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_maxDebt\",\n type: \"uint256\",\n },\n ],\n name: \"setMaxDebt\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minimumCollateralPercentage\",\n type: \"uint256\",\n },\n ],\n name: \"setMinCollateralRatio\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_minDebt\",\n type: \"uint256\",\n },\n ],\n name: \"setMinDebt\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_openingFee\",\n type: \"uint256\",\n },\n ],\n name: \"setOpeningFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_ref\",\n type: \"address\",\n },\n ],\n name: \"setRef\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_pool\",\n type: \"address\",\n },\n ],\n name: \"setStabilityPool\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"string\",\n name: \"_uri\",\n type: \"string\",\n },\n ],\n name: \"setTokenURI\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"stabilityPool\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"tokenOfOwnerByIndex\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenPeg\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"totalBorrowed\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_promoter\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"cashback\",\n type: \"uint256\",\n },\n ],\n name: \"updateFrontEnd\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"string\",\n name: \"_oracle\",\n type: \"string\",\n },\n ],\n name: \"updateOracleName\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"updateVaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"uri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"vaultCollateral\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"vaultCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n ],\n name: \"vaultDebt\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"version\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"vaultID\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawCollateral\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"withdrawInterest\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class StableQiVault__factory {\n static readonly abi = _abi;\n static createInterface(): StableQiVaultInterface {\n return new utils.Interface(_abi) as StableQiVaultInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): StableQiVault {\n return new Contract(address, _abi, signerOrProvider) as StableQiVault;\n }\n}\n","import { Provider } from '@ethersproject/providers'\nimport { constants, Signer } from 'ethers'\nimport {\n CrosschainNativeQiStablecoin,\n CrosschainQiStablecoin,\n CrosschainQiStablecoinSlim,\n CrosschainQiStablecoinSlimV2,\n CrosschainQiStablecoinSlimV2__factory,\n CrosschainQiStablecoinV2,\n CrosschainQiStablecoinSlim__factory,\n CrosschainQiStablecoinV2__factory,\n CrosschainQiStablecoinwbtc,\n CrosschainQiStablecoin__factory,\n Erc20QiStablecoincamwbtc,\n Erc20QiStablecoinwbtc,\n Erc20Stablecoin,\n StableQiVault,\n StableQiVault__factory,\n CrosschainNativeQiStablecoin__factory,\n CrosschainQiStablecoinwbtc__factory,\n Erc20Stablecoin__factory,\n Erc20QiStablecoinwbtc__factory,\n Erc20QiStablecoincamwbtc__factory,\n} from './contracts'\nimport { QiStablecoin__factory } from './contracts/factories/QiStablecoin__factory'\nimport { Token } from './entities'\nimport {\n AAVE_ADDRESS,\n CAMAAVE_VAULT_ADDRESS,\n CAMDAI_VAULT_ADDRESS,\n CAMWBTC_VAULT_ADDRESS,\n CAMWETH_VAULT_ADDRESS,\n CAMWMATIC_VAULT_ADDRESS,\n ChainId,\n LINK_ADDRESS,\n METIS_WBTC_ADDRESS,\n MOO_BIFI_FTM_VAULT_ADDRESS,\n MOO_SCREAM_DAI_VAULT_ADDRESS,\n MOO_SCREAM_ETH_VAULT_ADDRESS,\n MOO_SCREAM_LINK_VAULT_ADDRESS,\n MOO_SCREAM_WBTC_VAULT_ADDRESS,\n MOO_SCREAM_WFTM_VAULT_ADDRESS,\n MOO_ETH_STETH_CRV_VAULT_ADDRESS,\n MOO_WAVAX_VAULT_ADDRESS,\n OG_MATIC_VAULT,\n STETH_ADDRESS,\n WETH_ADDRESS,\n WFTM_ADDRESS,\n WSTETH_VAULT_ADDRESS,\n YVDAI_VAULT_ADDRESS,\n YVETH_VAULT_ADDRESS,\n YVLINK_VAULT_ADDRESS,\n YVWBTC_VAULT_ADDRESS,\n YVWETH_OPTIMISM_VAULT_ADDRESS,\n YVWETH_VAULT_ADDRESS,\n YVWFTM_VAULT_ADDRESS,\n YVYFI_VAULT_ADDRESS,\n} from './constants'\n\nexport type SnapshotCanonicalChoiceName =\n | 'Wrapped MATIC (Polygon)'\n | 'WETH (Polygon)'\n | 'WBTC (Polygon)'\n | 'AAVE (Polygon)'\n | 'LINK (Polygon)'\n | 'xxLINK (Polygon)'\n | 'KNC (Polygon)'\n | 'CRV (Polygon)'\n | 'BAL (Polygon)'\n | 'GHST (Polygon)'\n | 'vGHST (Polygon)'\n | 'Frax Share (Polygon)'\n | 'SAND (Polygon)'\n | 'Compounding Aave MATIC (Polygon)'\n | 'Compounding Aave ETH (Polygon)'\n | 'Compounding Aave AAVE (Polygon)'\n | 'Compounding Aave WBTC (Polygon)'\n | 'WETH (Fantom)'\n | 'WFTM (Fantom)'\n | 'LINK (Fantom)'\n | 'WBTC (Fantom)'\n | 'SUSHI (Fantom)'\n | 'AAVE (Fantom)'\n | 'mooBIFI (Fantom)'\n | 'xBOO (Fantom)'\n | 'Yearn vault WFTM (Fantom)'\n | 'Yearn vault BTC (Fantom)'\n | 'Yearn vault ETH (Fantom)'\n | 'Yearn vault YFI (Fantom)'\n | 'WBTC (Avalanche)'\n | 'WETH (Avalanche)'\n | 'WAVAX (Avalanche)'\n | 'Beefy Aave AVAX (Avalanche)'\n | 'MOVR (Moonriver)'\n | 'WETH (Gnosis Chain)'\n | 'GNO (Gnosis Chain)'\n | 'WETH (Arbitrum)'\n | 'WBTC (Arbitrum)'\n | 'WETH (Optimism)'\n | 'WBTC (Optimism)'\n | 'OP (Optimism)'\n | 'Beefy Aave ETH (Optimism)'\n | 'Beefy Aave BTC (Optimism)'\n | 'CAKE (BNB)'\n | 'BNB (BNB)'\n | 'DODO (BNB)'\n | 'METIS (Metis)'\n | 'WETH (Metis)'\n | 'WBTC (Metis)'\n | 'm.WBTC (Metis)'\n | 'Yearn WETH (Ethereum)'\n | 'Yearn LINK (Ethereum)'\n | 'WBTC (Ethereum)'\n | 'WETH (Ethereum)'\n | 'StakeDAO Curve ETH/stETH (Eth)'\n | 'Yearn Curve ETH/stETH (Ethereum)'\n | 'MAI DAI Arrakis Polygon'\n | 'Wrapped Staked ETH (Optimism)'\n | 'Yearn vault ETH (Optimism)'\n | 'Beefy stETH Curve (Optimism)'\n\nexport type VaultShortName =\n | 'aave'\n | 'avax'\n | 'avaxweth'\n | 'avaxwbtc'\n | 'bal'\n | 'bal-old'\n | 'beefy-aave-avax'\n | 'beefy-aave-dai'\n | 'beefy-aave-weth'\n | 'beefy-aave-wbtc'\n | 'beefy-bifi'\n | 'beefy-scream-dai'\n | 'beefy-scream-eth'\n | 'beefy-scream-ftm'\n | 'beefy-scream-link'\n | 'beefy-scream-wbtc'\n | 'beefy-spooky-btc-ftm'\n | 'beefy-spooky-eth-ftm'\n | 'btc'\n | 'btc_old'\n | 'cake'\n | 'camaave'\n | 'camdai'\n | 'camwbtc'\n | 'camweth'\n | 'camwmatic'\n | 'crv'\n | 'cxada'\n | 'cxdoge'\n | 'cxeth'\n | 'dquick'\n | 'dquick-old'\n | 'eth'\n | 'ftm'\n | 'ftmweth'\n | 'fxs'\n | 'ghst'\n | 'gno'\n | 'link'\n | 'matic'\n | 'moo-solar-eth-usdc'\n | 'moo-solar-movr-usdc'\n | 'movr'\n | 'one'\n | 'sdam3crv'\n | 'sdav3crv'\n | 'sushi'\n | 'vghst'\n | 'wbtc'\n | 'wbnb'\n | 'weth'\n | 'weth-old'\n | 'yveth'\n | 'yvlink'\n | 'yvcrv-eth-steth'\n | 'yvwdai'\n | 'yvwftm'\n | 'yvwbtc'\n | 'yvyfi'\n | 'celsius'\n | 'sand'\n | 'stake-dao-crv-eth-steth'\n | 'wmatic'\n | 'xboo'\n | 'dodo'\n | 'xxdai'\n | 'xxlink'\n | 'op'\n | 'metis'\n | 'mwbtc'\n | 'knc'\n | 'xSMVT'\n | 'GLMVT'\n | 'LSMMVT'\n | 'STMMVT'\n | 'maidai'\n | 'yvweth'\n | 'wsteth'\n | 'beefy-eth-steth-crv'\n\nexport type VaultContractAbiV1 =\n | typeof QiStablecoin__factory.abi\n | typeof Erc20Stablecoin__factory.abi\n | typeof Erc20QiStablecoinwbtc__factory.abi\n | typeof Erc20QiStablecoincamwbtc__factory.abi\n | typeof CrosschainQiStablecoin__factory.abi\n | typeof CrosschainNativeQiStablecoin__factory.abi\n | typeof CrosschainQiStablecoinV2__factory.abi\n | typeof CrosschainQiStablecoinSlim__factory.abi\n | typeof CrosschainQiStablecoinSlimV2__factory.abi\n | typeof CrosschainQiStablecoinwbtc__factory.abi\n\nexport type VaultContractAbiV2 = typeof StableQiVault__factory.abi\n\nexport type VaultContractAbi = VaultContractAbiV1 | VaultContractAbiV2\n\nexport enum FRONTEND {\n MAI,\n MANHATTAN,\n STELLASWAP,\n}\n\nexport interface COLLATERAL {\n aaveId?: string\n connect(\n address: string,\n signerOrProvider: Signer | Provider\n ):\n | Erc20Stablecoin\n | Erc20QiStablecoinwbtc\n | Erc20QiStablecoincamwbtc\n | CrosschainQiStablecoin\n | CrosschainNativeQiStablecoin\n | CrosschainQiStablecoinV2\n | CrosschainQiStablecoinSlim\n | CrosschainQiStablecoinSlimV2\n | CrosschainQiStablecoinwbtc\n chainId: ChainId\n depreciated?: boolean\n disabled?: boolean\n infoUrl?: string\n minimumCDR: number\n native?: boolean\n subgraph?: string\n token: Token\n vaultAddress: string\n shortName: VaultShortName\n contractAbi: VaultContractAbiV1\n frontend: FRONTEND\n version: 1\n fallbackUnderlyingAddress?: string\n}\n\nexport interface GAUGE_VALID_COLLATERAL extends COLLATERAL {\n snapshotName: SnapshotCanonicalChoiceName\n}\n\nexport interface COLLATERAL_V2 extends Omit<COLLATERAL, 'version' | 'connect' | 'contractAbi'> {\n version: 2\n connect(address: string, signerOrProvider: Signer | Provider): StableQiVault\n contractAbi: VaultContractAbiV2\n}\n\nexport interface GAUGE_VALID_COLLATERAL_V2 extends COLLATERAL_V2 {\n snapshotName: SnapshotCanonicalChoiceName\n}\n\nexport function isV2QiVault(\n collateral: COLLATERAL | COLLATERAL_V2 | GAUGE_VALID_COLLATERAL | GAUGE_VALID_COLLATERAL_V2\n): collateral is COLLATERAL_V2 | GAUGE_VALID_COLLATERAL_V2 {\n return collateral.version === 2\n}\n\nexport function isGaugeValid(\n collateral: COLLATERAL | COLLATERAL_V2 | GAUGE_VALID_COLLATERAL | GAUGE_VALID_COLLATERAL_V2\n): collateral is GAUGE_VALID_COLLATERAL | GAUGE_VALID_COLLATERAL_V2 {\n return (collateral as GAUGE_VALID_COLLATERAL).snapshotName !== undefined && !collateral.depreciated\n}\n\nexport const COLLATERALS: {\n [chainId in ChainId]?: (COLLATERAL | GAUGE_VALID_COLLATERAL | COLLATERAL_V2 | GAUGE_VALID_COLLATERAL_V2)[]\n} = {\n [ChainId.MAINNET]: [\n {\n shortName: 'weth',\n vaultAddress: '0x98eb27E5F24FB83b7D129D789665b08C258b4cCF',\n chainId: ChainId.MAINNET,\n token: new Token(ChainId.MAINNET, WETH_ADDRESS, 18, 'WETH', 'Wrapped Ether'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 120,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'WETH (Ethereum)',\n },\n {\n shortName: 'wbtc',\n vaultAddress: '0x8C45969aD19D297c9B85763e90D0344C6E2ac9d1',\n chainId: ChainId.MAINNET,\n token: new Token(ChainId.MAINNET, '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', 8, 'WBTC', 'Wrapped Bitcoin'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 120,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'WBTC (Ethereum)',\n },\n {\n shortName: 'stake-dao-crv-eth-steth',\n fallbackUnderlyingAddress: STETH_ADDRESS,\n vaultAddress: '0xcc61Ee649A95F2E2f0830838681f839BDb7CB823',\n chainId: ChainId.MAINNET,\n token: new Token(\n ChainId.MAINNET,\n '0xbC10c4F7B9FE0B305e8639B04c536633A3dB7065',\n 18,\n 'sdsteCRV',\n 'StakeDAO Curve.fi ETH/stETH'\n ),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 125,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'StakeDAO Curve ETH/stETH (Eth)',\n },\n {\n shortName: 'yvcrv-eth-steth',\n fallbackUnderlyingAddress: STETH_ADDRESS,\n vaultAddress: '0x82E90EB7034C1DF646bD06aFb9E67281AAb5ed28',\n chainId: ChainId.MAINNET,\n token: new Token(\n ChainId.MAINNET,\n '0xdCD90C7f6324cfa40d7169ef80b12031770B4325',\n 18,\n 'yvcurve-eth-steth',\n 'Yearn Curve.fi ETH/stETH'\n ),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 125,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Yearn Curve ETH/stETH (Ethereum)',\n },\n {\n shortName: 'yveth',\n vaultAddress: YVETH_VAULT_ADDRESS,\n fallbackUnderlyingAddress: WETH_ADDRESS,\n chainId: ChainId.MAINNET,\n token: new Token(ChainId.MAINNET, '0xa258C4606Ca8206D8aA700cE2143D7db854D168c', 18, 'YVETH', 'Yearn WETH'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 125,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Yearn WETH (Ethereum)',\n },\n {\n shortName: 'yvlink',\n vaultAddress: YVLINK_VAULT_ADDRESS,\n fallbackUnderlyingAddress: LINK_ADDRESS,\n chainId: ChainId.MAINNET,\n token: new Token(ChainId.MAINNET, '0x671a912C10bba0CFA74Cfc2d6Fba9BA1ed9530B2', 18, 'YVLINK', 'Yearn Link'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 140,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Yearn LINK (Ethereum)',\n },\n ],\n [ChainId.FANTOM]: [\n {\n shortName: 'ftm',\n vaultAddress: '0x1066b8FC999c1eE94241344818486D5f944331A0',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, WFTM_ADDRESS, 18, 'FTM', 'Fantom'),\n minimumCDR: 130,\n native: true,\n contractAbi: CrosschainNativeQiStablecoin__factory.abi,\n connect: CrosschainNativeQiStablecoin__factory.connect,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-fantom-vaults',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WFTM (Fantom)',\n },\n {\n shortName: 'yvwftm',\n vaultAddress: YVWFTM_VAULT_ADDRESS,\n fallbackUnderlyingAddress: WFTM_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x0DEC85e74A92c52b7F708c4B10207D9560CEFaf0', 18, 'yvWFTM', 'Yearn Fantom'),\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-yvwftm-vaults',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Yearn vault WFTM (Fantom)',\n },\n {\n shortName: 'yvwbtc',\n vaultAddress: YVWBTC_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0xd817a100ab8a29fe3dbd925c2eb489d67f758da9',\n 8,\n 'yvWBTC',\n 'Yearn Wrapped Bitcoin'\n ),\n fallbackUnderlyingAddress: '0x321162Cd933E2Be498Cd2267a90534A804051b11',\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoinSlimV2__factory.abi,\n connect: CrosschainQiStablecoinSlimV2__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Yearn vault BTC (Fantom)',\n },\n {\n shortName: 'yvyfi',\n vaultAddress: YVYFI_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x2C850cceD00ce2b14AA9D658b7Cad5dF659493Db', 18, 'yvYFI', 'Yearn Vault YFI'),\n minimumCDR: 135,\n fallbackUnderlyingAddress: '0x29b0Da86e484E1C0029B56e817912d778aC0EC69',\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Yearn vault YFI (Fantom)',\n },\n {\n shortName: 'yveth',\n vaultAddress: YVWETH_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n fallbackUnderlyingAddress: '0x74b23882a30290451A17c44f4F05243b6b58C76d',\n token: new Token(\n ChainId.FANTOM,\n '0xCe2Fc0bDc18BD6a4d9A725791A3DEe33F3a23BB7',\n 18,\n 'yvWETH',\n 'Yearn Wrapped Ether'\n ),\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Yearn vault ETH (Fantom)',\n },\n {\n shortName: 'yvwdai',\n vaultAddress: YVDAI_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x637eC617c86D24E421328e6CAEa1d92114892439', 18, 'yvDAI', 'Yearn DAI'),\n minimumCDR: 110,\n fallbackUnderlyingAddress: '0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e',\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-yvdai-vaults',\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'ftmweth',\n vaultAddress: '0xD939c268C49c442F037E968F045ba02f499562D4',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x74b23882a30290451A17c44f4F05243b6b58C76d', 18, 'ETH', 'Ethereum'),\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-fantom-eth-vaults',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Fantom)',\n },\n {\n shortName: 'aave',\n vaultAddress: '0xdB09908b82499CAdb9E6108444D5042f81569bD9',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x6a07A792ab2965C72a5B8088d3a069A7aC3a993B', 18, 'AAVE', 'Aave'),\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'AAVE (Fantom)',\n },\n {\n shortName: 'sushi',\n vaultAddress: '0x267bDD1C19C932CE03c7A62BBe5b95375F9160A6',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0xae75A438b2E0cB8Bb01Ec1E1e376De11D44477CC', 18, 'SUSHI', 'Sushi'),\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'SUSHI (Fantom)',\n },\n {\n shortName: 'link',\n vaultAddress: '0xd6488d586E8Fcd53220e4804D767F19F5C846086',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0xb3654dc3D10Ea7645f8319668E8F54d2574FBdC8', 18, 'LINK', 'ChainLink'),\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'LINK (Fantom)',\n },\n {\n shortName: 'btc',\n vaultAddress: '0xE5996a2cB60eA57F03bf332b5ADC517035d8d094',\n chainId: ChainId.FANTOM,\n token: new Token(ChainId.FANTOM, '0x321162Cd933E2Be498Cd2267a90534A804051b11', 8, 'BTC', 'Bitcoin'),\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoinwbtc__factory.abi,\n connect: CrosschainQiStablecoinwbtc__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WBTC (Fantom)',\n },\n {\n shortName: 'beefy-scream-wbtc',\n vaultAddress: MOO_SCREAM_WBTC_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0x97927aBfE1aBBE5429cBe79260B290222fC9fbba',\n 18,\n 'mooScreamWBTC',\n 'Beefy Scream WBTC'\n ),\n minimumCDR: 135,\n fallbackUnderlyingAddress: '0x321162Cd933E2Be498Cd2267a90534A804051b11',\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'beefy-scream-dai',\n vaultAddress: MOO_SCREAM_DAI_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0x920786cff2A6f601975874Bb24C63f0115Df7dc8',\n 18,\n 'mooScreamDAI',\n 'Beefy Scream DAI'\n ),\n fallbackUnderlyingAddress: '0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e',\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'beefy-scream-eth',\n vaultAddress: MOO_SCREAM_ETH_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0x0a03D2C1cFcA48075992d810cc69Bd9FE026384a',\n 18,\n 'mooScreamETH',\n 'Beefy Scream ETH'\n ),\n fallbackUnderlyingAddress: '0x74b23882a30290451A17c44f4F05243b6b58C76d',\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'beefy-scream-ftm',\n vaultAddress: MOO_SCREAM_WFTM_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0x49c68eDb7aeBd968F197121453e41b8704AcdE0C',\n 18,\n 'mooScreamFTM',\n 'Beefy Scream FTM'\n ),\n fallbackUnderlyingAddress: '0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83',\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'beefy-scream-link',\n vaultAddress: MOO_SCREAM_LINK_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0x6DfE2AAEA9dAadADf0865B661b53040E842640f8',\n 18,\n 'mooScreamLINK',\n 'Beefy Scream LINK'\n ),\n fallbackUnderlyingAddress: '0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8',\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'beefy-spooky-btc-ftm',\n vaultAddress: '0xF34e271312e41Bbd7c451B76Af2AF8339D6f16ED',\n depreciated: true,\n chainId: ChainId.FANTOM,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(\n ChainId.FANTOM,\n '0xA3e3Af161943CfB3941B631676134bb048739727',\n 18,\n 'mooBooBTC-FTM',\n 'Beefy SpookySwap BTC-FTM LP'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n /* {\n shortName: \"beefy-spooky-dai-ftm\",\n vaultAddress: \"0xFc6F8Dd56E9ECAc70795Adc312EE363c608DefdA\",\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n \"0x8316b990De26eB530B7B1bb0d87f5b0a304637cd\",\n 18,\n \"mooBooDAI-FTM\",\n \"Moo Boo DAI-FTM\"\n ),\n minimumCDR: 135,\n version: 1\n snapshotName: '',\n }, */\n {\n shortName: 'beefy-spooky-eth-ftm',\n vaultAddress: '0x9BA01B1279B1F7152b42aCa69fAF756029A9ABDe',\n depreciated: true,\n chainId: ChainId.FANTOM,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(\n ChainId.FANTOM,\n '0x2a30C5e0d577108F694d2A96179cd73611Ee069b',\n 18,\n 'mooBooETH-FTM',\n 'Beefy SpookySwap ETH-FTM LP'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n /* {\n shortName: \"beefy-spooky-ftm-usdc\",\n vaultAddress: \"0x7BB4a236c4DA7F9593Caaa84ed0c63E81B9650A2\",\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n \"0x41D44B276904561Ac51855159516FD4cB2c90968\",\n 18,\n \"mooBooFTM-USDC\",\n \"Moo Boo FTM-USDC\"\n ),\n minimumCDR: 135,\n version: 1\n snapshotName: '',\n }, */\n {\n shortName: 'beefy-bifi',\n vaultAddress: MOO_BIFI_FTM_VAULT_ADDRESS,\n chainId: ChainId.FANTOM,\n token: new Token(\n ChainId.FANTOM,\n '0xbF07093ccd6adFC3dEB259C557b61E94c1F66945',\n 18,\n 'mooFantomBIFI',\n 'Beefy Staked BIFI'\n ),\n minimumCDR: 140,\n fallbackUnderlyingAddress: '0xd6070ae98b8069de6b494332d1a1a81b6179d960',\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'mooBIFI (Fantom)',\n },\n {\n shortName: 'xboo',\n vaultAddress: '0x3f6cf10e85e9c0630856599FAB8D8BFcd9C0E7D4',\n chainId: ChainId.FANTOM,\n fallbackUnderlyingAddress: '0x841fad6eae12c286d1fd18d1d525dffa75c7effe',\n token: new Token(ChainId.FANTOM, '0xa48d959AE2E88f1dAA7D5F611E01908106dE7598', 18, 'XBOO', 'xBoo MirrorWorld'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 155,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'xBOO (Fantom)',\n },\n ],\n [ChainId.AVALANCHE]: [\n {\n shortName: 'beefy-aave-avax',\n vaultAddress: MOO_WAVAX_VAULT_ADDRESS,\n chainId: ChainId.AVALANCHE,\n token: new Token(\n ChainId.AVALANCHE,\n '0x1B156C5c75E9dF4CAAb2a5cc5999aC58ff4F9090',\n 18,\n 'mooAaveAVAX',\n 'Beefy Aave AVAX'\n ),\n minimumCDR: 135,\n fallbackUnderlyingAddress: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Beefy Aave AVAX (Avalanche)',\n },\n {\n shortName: 'sdav3crv',\n vaultAddress: '0x13A7fE3Ab741ea6301Db8B164290bE711f546A73',\n chainId: ChainId.AVALANCHE,\n token: new Token(\n ChainId.AVALANCHE,\n '0x0665eF3556520B21368754Fb644eD3ebF1993AD4',\n 18,\n 'sdav3CRV',\n 'Stake DAO av3CRV Strategy'\n ),\n contractAbi: CrosschainQiStablecoinSlimV2__factory.abi,\n connect: CrosschainQiStablecoinSlimV2__factory.connect,\n minimumCDR: 110,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'avaxwbtc',\n vaultAddress: '0x1f8f7a1d38e41eaf0ed916def29bdd13f2a3f11a',\n chainId: ChainId.AVALANCHE,\n token: new Token(ChainId.AVALANCHE, '0x50b7545627a5162F82A992c33b87aDc75187B218', 8, 'WBTC.e', 'Wrapped BTC'),\n contractAbi: CrosschainQiStablecoinSlimV2__factory.abi,\n connect: CrosschainQiStablecoinSlimV2__factory.connect,\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WBTC (Avalanche)',\n },\n {\n shortName: 'avaxweth',\n vaultAddress: '0xa9122dacf3fccf1aae6b8ddd1f75b6267e5cbbb8',\n chainId: ChainId.AVALANCHE,\n token: new Token(ChainId.AVALANCHE, '0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB', 18, 'WETH', 'Wrapped Ethereum'),\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Avalanche)',\n },\n {\n shortName: 'avax',\n vaultAddress: '0x73a755378788a4542a780002a75a7bae7f558730',\n chainId: ChainId.AVALANCHE,\n token: new Token(ChainId.AVALANCHE, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WAVAX (Avalanche)',\n },\n ],\n [ChainId.ARBITRUM]: [\n {\n shortName: 'weth-old',\n depreciated: true,\n vaultAddress: '0xf5c2b1b92456fe1b1208c63d8ea040d464f74a72',\n chainId: ChainId.ARBITRUM,\n contractAbi: CrosschainNativeQiStablecoin__factory.abi,\n connect: CrosschainNativeQiStablecoin__factory.connect,\n token: new Token(\n ChainId.ARBITRUM,\n '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',\n 18,\n 'WETH (OLD)',\n 'Wrapped Ether (OLD)'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'weth',\n vaultAddress: '0xC76a3cBefE490Ae4450B2fCC2c38666aA99f7aa0',\n chainId: ChainId.ARBITRUM,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.ARBITRUM, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Arbitrum)',\n },\n {\n shortName: 'wbtc',\n vaultAddress: '0xB237f4264938f0903F5EC120BB1Aa4beE3562FfF',\n chainId: ChainId.ARBITRUM,\n contractAbi: CrosschainQiStablecoinSlimV2__factory.abi,\n connect: CrosschainQiStablecoinSlimV2__factory.connect,\n token: new Token(ChainId.ARBITRUM, '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', 8, 'WBTC', 'Wrapped Bitcoin'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WBTC (Arbitrum)',\n },\n ],\n [ChainId.OPTIMISM]: [\n {\n shortName: 'weth',\n vaultAddress: '0x062016Cd29Fabb26c52BAB646878987fC9B0Bc55',\n chainId: ChainId.OPTIMISM,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Optimism)',\n },\n {\n shortName: 'wbtc',\n vaultAddress: '0xB9C8F0d3254007eE4b98970b94544e473Cd610EC',\n chainId: ChainId.OPTIMISM,\n contractAbi: CrosschainQiStablecoinSlimV2__factory.abi,\n connect: CrosschainQiStablecoinSlimV2__factory.connect,\n token: new Token(ChainId.OPTIMISM, '0x68f180fcCe6836688e9084f035309E29Bf0A2095', 8, 'WBTC', 'Wrapped BTC'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WBTC (Optimism)',\n },\n {\n shortName: 'op',\n vaultAddress: '0xbf1aeA8670D2528E08334083616dD9C5F3B087aE',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(ChainId.OPTIMISM, '0x4200000000000000000000000000000000000042', 18, 'OP', 'Optimism'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'OP (Optimism)',\n },\n {\n shortName: 'beefy-aave-dai',\n vaultAddress: '0xB89c1b3d9f335B9d8Bb16016F3d60160AE71041f',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n fallbackUnderlyingAddress: '0xda10009cbd5d07dd0cecc66161fc93d7c9000da1',\n token: new Token(\n ChainId.OPTIMISM,\n '0x4D153F47F03c237F6360a6eccd185b4aE09c63D0',\n 18,\n 'mooAaveDAI',\n 'Beefy OP Aave Dai'\n ),\n minimumCDR: 110,\n frontend: FRONTEND.MAI,\n version: 2,\n },\n {\n shortName: 'beefy-aave-weth',\n vaultAddress: '0xF9CE2522027bD40D3b1aEe4abe969831FE3BeAf5',\n fallbackUnderlyingAddress: '0x4200000000000000000000000000000000000006',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(\n ChainId.OPTIMISM,\n '0x7eE71053102d54Fc843BaEBaf07277C2b6dB64f1',\n 18,\n 'mooAaveWETH',\n 'Beefy OP Aave WETH'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Beefy Aave ETH (Optimism)',\n },\n {\n shortName: 'beefy-aave-wbtc',\n vaultAddress: '0xAB91c51b55F7Dd7B34F2FD7217506fD5b632B2B9',\n fallbackUnderlyingAddress: '0x68f180fcCe6836688e9084f035309E29Bf0A2095',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(\n ChainId.OPTIMISM,\n '0x8e2cdf8c6477439b7c989e86b917d80871b92339',\n 18,\n 'mooAaveWBTC',\n 'Beefy OP Aave WBTC'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Beefy Aave BTC (Optimism)',\n },\n {\n shortName: 'wsteth',\n vaultAddress: WSTETH_VAULT_ADDRESS,\n fallbackUnderlyingAddress: '0x4200000000000000000000000000000000000006',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(\n ChainId.OPTIMISM,\n '0x926B92B15385981416a5E0Dcb4f8b31733d598Cf',\n 18,\n 'wstETH',\n 'Wrapped liquid staked Ether 2.0'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Wrapped Staked ETH (Optimism)',\n },\n {\n shortName: 'yvweth',\n vaultAddress: YVWETH_OPTIMISM_VAULT_ADDRESS,\n fallbackUnderlyingAddress: '0x4200000000000000000000000000000000000006',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(ChainId.OPTIMISM, '0x22f39d6535dF5767f8F57FEE3B2F941410773ec4', 18, 'yvWETH', 'WETH yVault'),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Yearn vault ETH (Optimism)',\n },\n {\n shortName: 'beefy-eth-steth-crv',\n vaultAddress: MOO_ETH_STETH_CRV_VAULT_ADDRESS,\n fallbackUnderlyingAddress: '0x4200000000000000000000000000000000000006',\n chainId: ChainId.OPTIMISM,\n connect: StableQiVault__factory.connect,\n contractAbi: StableQiVault__factory.abi,\n token: new Token(\n ChainId.OPTIMISM,\n '0x480798FAC621adD14113ECC82638305c260cEaf1',\n 18,\n 'mooCurveWSTETH',\n 'Beefy OP Curve ETH/stETH'\n ),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'Beefy stETH Curve (Optimism)',\n },\n ],\n [ChainId.MOONRIVER]: [\n {\n shortName: 'eth',\n vaultAddress: '0x4a0474E3262d4DB3306Cea4F207B5d66eC8E0AA9',\n depreciated: true,\n chainId: ChainId.MOONRIVER,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(ChainId.MOONRIVER, '0x639A647fbe20b6c8ac19E48E2de44ea792c62c5C', 18, 'ETH', 'Ethereum'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'moo-solar-eth-usdc',\n vaultAddress: '0x97D811A7eb99Ef4Cb027ad59800cE27E68Ee1109',\n depreciated: true,\n chainId: ChainId.MOONRIVER,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(\n ChainId.MOONRIVER,\n '0x932009984bd2a7dA8C6396694E811Da5C0952d05',\n 18,\n 'mooSolarETH-USDC',\n 'Beefy Solarbeam ETH-USDC LP'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'movr',\n native: true,\n vaultAddress: '0x5dB6617DDF077d76CFD9d7fC0Fa91aAabc3da683',\n chainId: ChainId.MOONRIVER,\n contractAbi: CrosschainNativeQiStablecoin__factory.abi,\n connect: CrosschainNativeQiStablecoin__factory.connect,\n token: new Token(ChainId.MOONRIVER, '0x98878B06940aE243284CA214f92Bb71a2b032B8A', 18, 'MOVR', 'Moonriver'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'MOVR (Moonriver)',\n },\n {\n shortName: 'moo-solar-movr-usdc',\n vaultAddress: '0xF4fa968578723580935a00d1e12Fe96Bc6401947',\n depreciated: true,\n chainId: ChainId.MOONRIVER,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(\n ChainId.MOONRIVER,\n '0x78Dc4b7C7A89812fb337dD8C3B0ccB3e04E02D7C',\n 18,\n 'mooSolarMOVR-USDC',\n 'Beefy Solarbeam MOVR-USDC LP'\n ),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n ],\n [ChainId.MOONBEAM]: [\n {\n connect: StableQiVault__factory.connect,\n chainId: ChainId.MOONBEAM,\n minimumCDR: 200,\n token: new Token(ChainId.MOONBEAM, '0xAcc15dC74880C9944775448304B263D191c6077F', 18, 'WGLMT', 'Wrapped GLMR'),\n shortName: 'GLMVT',\n frontend: FRONTEND.MANHATTAN,\n vaultAddress: '0x3A82F4da24F93a32dc3C2A28cFA9D6E63EC28531',\n contractAbi: StableQiVault__factory.abi,\n version: 2,\n },\n {\n connect: StableQiVault__factory.connect,\n chainId: ChainId.MOONBEAM,\n minimumCDR: 250,\n token: new Token(ChainId.MOONBEAM, '0x06A3b410b681c82417A906993aCeFb91bAB6A080', 18, 'xStella', 'xStella'),\n shortName: 'xSMVT',\n frontend: FRONTEND.MANHATTAN,\n vaultAddress: '0x3756465c5b1C1C4cEe473880c9726E20875284f1',\n contractAbi: StableQiVault__factory.abi,\n version: 2,\n },\n ],\n [ChainId.HARMONY]: [\n {\n shortName: 'eth',\n vaultAddress: '0x46469f995A5CB60708200C25EaD3cF1667Ed36d6',\n chainId: ChainId.HARMONY,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n depreciated: true,\n token: new Token(ChainId.HARMONY, '0x6983D1E6DEf3690C4d616b13597A09e6193EA013', 18, '1ETH', 'Wrapped Ethereum'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'one',\n vaultAddress: '0x12FcB286D664F37981a42cbAce92eAf28d1dA94f',\n native: true,\n chainId: ChainId.HARMONY,\n contractAbi: CrosschainNativeQiStablecoin__factory.abi,\n connect: CrosschainNativeQiStablecoin__factory.connect,\n token: new Token(ChainId.HARMONY, '0xcF664087a5bB0237a0BAd6742852ec6c8d69A27a', 18, 'ONE', 'Harmony (ONE)'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'btc_old',\n vaultAddress: '0x9f4E3d01c634441F284beb92bBAEeb76133BbB28',\n depreciated: true,\n chainId: ChainId.HARMONY,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(\n ChainId.HARMONY,\n '0x3095c7557bCb296ccc6e363DE01b760bA031F2d9',\n 8,\n '1WBTC OLD',\n 'Wrapped Bitcoin OLD'\n ),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'btc',\n vaultAddress: '0x4592e0bcf01121757e70404915f220a77ffb4e15',\n depreciated: true,\n chainId: ChainId.HARMONY,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(ChainId.HARMONY, '0x3095c7557bCb296ccc6e363DE01b760bA031F2d9', 8, '1WBTC', 'Wrapped Bitcoin'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n ],\n [ChainId.BSC]: [\n {\n shortName: 'wbnb',\n vaultAddress: '0xA56F9A54880afBc30CF29bB66d2D9ADCdcaEaDD6',\n chainId: ChainId.BSC,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.BSC, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'Wrapped BNB', 'WBNB'),\n minimumCDR: 135,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'BNB (BNB)',\n },\n {\n shortName: 'cake',\n vaultAddress: '0x014A177E9642d1b4E970418f894985dC1b85657f',\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n chainId: ChainId.BSC,\n token: new Token(ChainId.BSC, '0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82', 18, 'PancakeSwap Token', 'CAKE'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'CAKE (BNB)',\n },\n {\n shortName: 'dodo',\n vaultAddress: '0x7333fd58d8D73a8e5FC1a16C8037ADa4f580FA2B',\n chainId: ChainId.BSC,\n token: new Token(ChainId.BSC, '0x67ee3Cb086F8a16f34beE3ca72FAD36F7Db929e2', 18, 'DODO', 'DODO'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 150,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'DODO (BNB)',\n },\n ],\n [ChainId.XDAI]: [\n {\n shortName: 'weth',\n vaultAddress: '0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b',\n chainId: ChainId.XDAI,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n token: new Token(ChainId.XDAI, '0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1', 18, 'Wrapped Ether', 'WETH'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Gnosis Chain)',\n },\n {\n shortName: 'gno',\n vaultAddress: '0x014a177e9642d1b4e970418f894985dc1b85657f',\n chainId: ChainId.XDAI,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.XDAI, '0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', 18, 'Gnosis', 'GNO'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'GNO (Gnosis Chain)',\n },\n ],\n [ChainId.MATIC]: [\n {\n shortName: 'matic',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-mai-finance-og',\n vaultAddress: OG_MATIC_VAULT,\n token: new Token(ChainId.MATIC, constants.AddressZero, 18, 'MATIC', 'Polygon MATIC'),\n depreciated: true,\n minimumCDR: 150,\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'camwmatic',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-amwmatic-vaults',\n vaultAddress: CAMWMATIC_VAULT_ADDRESS,\n contractAbi: Erc20Stablecoin__factory.abi,\n fallbackUnderlyingAddress: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270',\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(\n ChainId.MATIC,\n '0x7068Ea5255cb05931EFa8026Bd04b18F3DeB8b0B',\n 18,\n 'camWMATIC',\n 'Compounding Aave Market MATIC'\n ),\n minimumCDR: 135,\n aaveId: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf12700xd05e3e715d945b59290df0ae8ef85c1bdb684744',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Compounding Aave MATIC (Polygon)',\n },\n {\n shortName: 'weth',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-weth-vaults',\n vaultAddress: '0x3fd939B017b31eaADF9ae50C7fF7Fa5c0661d47C',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619', 18, 'WETH', 'Wrapped Ether'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WETH (Polygon)',\n },\n {\n shortName: 'camweth',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-cam-weth-vaults',\n vaultAddress: CAMWETH_VAULT_ADDRESS,\n fallbackUnderlyingAddress: '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(\n ChainId.MATIC,\n '0x0470CD31C8FcC42671465880BA81D631F0B76C1D',\n 18,\n 'camWETH',\n 'Compounding Aave Market WETH'\n ),\n minimumCDR: 135,\n aaveId: '0x7ceb23fd6bc0add59e62ac25578270cff1b9f6190xd05e3e715d945b59290df0ae8ef85c1bdb684744',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Compounding Aave ETH (Polygon)',\n },\n {\n shortName: 'camaave',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-cam-aave-vaults',\n vaultAddress: CAMAAVE_VAULT_ADDRESS,\n fallbackUnderlyingAddress: AAVE_ADDRESS,\n token: new Token(\n ChainId.MATIC,\n '0xeA4040B21cb68afb94889cB60834b13427CFc4EB',\n 18,\n 'camAAVE',\n 'Compounding Aave Market AAVE'\n ),\n minimumCDR: 135,\n\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n aaveId: '0xd6df932a45c0f255f85145f286ea0b292b21c90b0xd05e3e715d945b59290df0ae8ef85c1bdb684744',\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Compounding Aave AAVE (Polygon)',\n },\n {\n shortName: 'aave',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-aave-vaults',\n vaultAddress: '0x87ee36f780ae843A78D5735867bc1c13792b7b11',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, AAVE_ADDRESS, 18, 'AAVE', 'Aave'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'AAVE (Polygon)',\n },\n {\n shortName: 'link',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-link-vaults',\n vaultAddress: '0x61167073E31b1DAd85a3E531211c7B8F1E5cAE72',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39', 18, 'LINK', 'ChainLink Token'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'LINK (Polygon)',\n },\n {\n shortName: 'crv',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/mai-finance-curve-vaults',\n vaultAddress: '0x98B5F32dd9670191568b661a3e847Ed764943875',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x172370d5Cd63279eFa6d502DAB29171933a610AF', 18, 'CRV', 'Curve Dao Token'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'CRV (Polygon)',\n },\n {\n shortName: 'wbtc',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-wbtc-vaults',\n vaultAddress: '0x37131aEDd3da288467B6EBe9A77C523A700E6Ca1',\n contractAbi: Erc20QiStablecoinwbtc__factory.abi,\n connect: Erc20QiStablecoinwbtc__factory.connect,\n token: new Token(ChainId.MATIC, '0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6', 8, 'WBTC', 'Wrapped BTC'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'WBTC (Polygon)',\n },\n {\n shortName: 'camwbtc',\n chainId: ChainId.MATIC,\n fallbackUnderlyingAddress: '0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6',\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-cam-wbtc-vaults',\n vaultAddress: CAMWBTC_VAULT_ADDRESS,\n token: new Token(\n ChainId.MATIC,\n '0xBa6273A78a23169e01317bd0f6338547F869E8Df',\n 8,\n 'camWBTC',\n 'Compounding Aave Market WBTC'\n ),\n minimumCDR: 135,\n aaveId: '0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd60xd05e3e715d945b59290df0ae8ef85c1bdb684744',\n contractAbi: Erc20QiStablecoincamwbtc__factory.abi,\n connect: Erc20QiStablecoincamwbtc__factory.connect,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Compounding Aave WBTC (Polygon)',\n },\n {\n shortName: 'bal-old',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-bal-vaults',\n vaultAddress: '0xf6906b1Cf79Ab14c79DdC7D763c1A517cF9968A5',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3', 18, 'BAL OLD', 'Balancer'),\n minimumCDR: 130,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'dquick-old',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-dquick-vaults',\n vaultAddress: '0x9e6e3e8161Fffb31a6030E56a3E024842567154F',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0xf28164A485B0B2C90639E47b0f377b4a438a16B1', 18, 'dQUICK OLD', 'Dragon QUICK'),\n minimumCDR: 130,\n depreciated: true,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'bal',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-bal-vaults-v2',\n vaultAddress: '0x701A1824e5574B0b6b1c8dA808B184a7AB7A2867',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3', 18, 'BAL', 'Balancer'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'BAL (Polygon)',\n },\n {\n shortName: 'dquick',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-dquick-vaults-v2',\n vaultAddress: '0x649Aa6E6b6194250C077DF4fB37c23EE6c098513',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0xf28164A485B0B2C90639E47b0f377b4a438a16B1', 18, 'dQUICK', 'Dragon QUICK'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'ghst',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-ghst-vaults',\n vaultAddress: '0xF086dEdf6a89e7B16145b03a6CB0C0a9979F1433',\n contractAbi: Erc20Stablecoin__factory.abi,\n connect: Erc20Stablecoin__factory.connect,\n token: new Token(ChainId.MATIC, '0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7', 18, 'GHST', 'Aavegotchi GHST'),\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'GHST (Polygon)',\n },\n {\n shortName: 'camdai',\n chainId: ChainId.MATIC,\n subgraph: 'https://api.thegraph.com/subgraphs/name/0xlaozi/qi-dao-camdai-vaults',\n vaultAddress: CAMDAI_VAULT_ADDRESS,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n fallbackUnderlyingAddress: '0x8f3cf7ad23cd3cadbd9735aff958023239c6a063',\n token: new Token(\n ChainId.MATIC,\n '0xE6C23289Ba5A9F0Ef31b8EB36241D5c800889b7b',\n 18,\n 'camDAI',\n 'Compounding Aave Market DAI'\n ),\n minimumCDR: 110,\n aaveId: '0x8f3cf7ad23cd3cadbd9735aff958023239c6a0630xd05e3e715d945b59290df0ae8ef85c1bdb684744',\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'sdam3crv',\n vaultAddress: '0x57Cbf36788113237D64E46f25A88855c3dff1691',\n contractAbi: CrosschainQiStablecoinV2__factory.abi,\n connect: CrosschainQiStablecoinV2__factory.connect,\n chainId: ChainId.MATIC,\n minimumCDR: 110,\n token: new Token(\n ChainId.MATIC,\n '0x7d60F21072b585351dFd5E8b17109458D97ec120',\n 18,\n 'sdam3CRV',\n 'Stake DAO am3CRV Strategy'\n ),\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'fxs',\n vaultAddress: '0xff2c44Fb819757225a176e825255a01B3B8BB051',\n chainId: ChainId.MATIC,\n contractAbi: CrosschainQiStablecoin__factory.abi,\n connect: CrosschainQiStablecoin__factory.connect,\n minimumCDR: 130,\n token: new Token(ChainId.MATIC, '0x1a3acf6D19267E2d3e7f898f42803e90C9219062', 18, 'FXS', 'Frax Share'),\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Frax Share (Polygon)',\n },\n {\n shortName: 'cxeth',\n vaultAddress: '0x7d36999a69f2B99BF3FB98866cBbE47aF43696C8',\n chainId: ChainId.MATIC,\n depreciated: true,\n disabled: true,\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.MATIC, '0xfe4546feFe124F30788c4Cc1BB9AA6907A7987F9', 18, 'cxETH', 'CelsiusX ETH'),\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'cxada',\n vaultAddress: '0x506533B9C16eE2472A6BF37cc320aE45a0a24F11',\n chainId: ChainId.MATIC,\n depreciated: true,\n disabled: true,\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(\n ChainId.MATIC,\n '0x64875Aaa68d1d5521666C67d692Ee0B926b08b2F',\n 18,\n 'cxADA',\n 'CelsiusX Wrapped ADA'\n ),\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'cxdoge',\n vaultAddress: '0x7CbF49E4214C7200AF986bc4aACF7bc79dd9C19a',\n chainId: ChainId.MATIC,\n depreciated: true,\n disabled: true,\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(\n ChainId.MATIC,\n '0x9Bd9aD490dD3a52f096D229af4483b94D63BE618',\n 18,\n 'cxDOGE',\n 'CelsiusX Wrapped DOGE'\n ),\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'vghst',\n vaultAddress: '0x1F0aa72b980d65518e88841bA1dA075BD43fa933',\n fallbackUnderlyingAddress: '0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7',\n chainId: ChainId.MATIC,\n minimumCDR: 130,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.MATIC, '0x51195e21BDaE8722B29919db56d95Ef51FaecA6C', 18, 'vGHST', 'Gotchi Vault GHST'),\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'vGHST (Polygon)',\n },\n {\n shortName: 'celsius',\n vaultAddress: '0x178f1c95C85Fe7221C7A6a3d6F12B7Da3253eeAe',\n chainId: ChainId.MATIC,\n depreciated: true,\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoinV2__factory.abi,\n connect: CrosschainQiStablecoinV2__factory.connect,\n token: new Token(ChainId.MATIC, '0xd85d1e945766fea5eda9103f918bd915fbca63e6', 4, 'CEL', 'Celsius'),\n frontend: FRONTEND.MAI,\n version: 1,\n },\n {\n shortName: 'sand',\n vaultAddress: '0x1DCc1f864A4Bd0b8f4Ad33594B758b68e9Fa872c',\n chainId: ChainId.MATIC,\n minimumCDR: 135,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.MATIC, '0xBbba073C31bF03b8ACf7c28EF0738DeCF3695683', 18, 'SAND', 'The Sandbox Game'),\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'SAND (Polygon)',\n },\n {\n shortName: 'wmatic',\n vaultAddress: '0x305f113ff78255d4F8524c8F50C7300B91B10f6A',\n chainId: ChainId.MATIC,\n minimumCDR: 120,\n contractAbi: CrosschainQiStablecoinSlim__factory.abi,\n connect: CrosschainQiStablecoinSlim__factory.connect,\n token: new Token(ChainId.MATIC, '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270', 18, 'WMATIC', 'Wrapped Matic'),\n frontend: FRONTEND.MAI,\n version: 1,\n snapshotName: 'Wrapped MATIC (Polygon)',\n },\n {\n shortName: 'xxdai',\n vaultAddress: '0xaa19d0e397c964a35e6e80262c692dbfC9C23451',\n chainId: ChainId.MATIC,\n fallbackUnderlyingAddress: '0x8f3cf7ad23cd3cadbd9735aff958023239c6a063',\n minimumCDR: 110,\n token: new Token(ChainId.MATIC, '0xf52B3250E026E0307d7d717AE0f331baAA4F83a8', 18, 'xxDAI', 'Tetu xxDAI'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n frontend: FRONTEND.MAI,\n version: 2,\n },\n {\n shortName: 'xxlink',\n vaultAddress: '0x11826d20B6A16A22450978642404dA95B4640123',\n chainId: ChainId.MATIC,\n fallbackUnderlyingAddress: '0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39',\n minimumCDR: 150,\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n token: new Token(ChainId.MATIC, '0x6c5e2E7dF0372f834B7F40D16Ff4333Cf49Af235', 18, 'xxLINK', 'Tetu xxLINK'),\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'xxLINK (Polygon)',\n },\n {\n shortName: 'knc',\n vaultAddress: '0xa3b0A659f2147D77A443f70D96b3cC95E7A26390',\n chainId: ChainId.MATIC,\n token: new Token(ChainId.MATIC, '0x1c954e8fe737f99f68fa1ccda3e51ebdb291948c', 18, 'KNC', 'Kyber Network Crystal'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 140,\n frontend: FRONTEND.MAI,\n snapshotName: 'KNC (Polygon)',\n version: 2,\n },\n {\n shortName: 'maidai',\n vaultAddress: '0x7d75F83f0aBe2Ece0b9Daf41CCeDdF38Cb66146b',\n chainId: ChainId.MATIC,\n token: new Token(ChainId.MATIC, '0x873f4ae80867b9f97304b9bb7ef92c4d563fa48c', 18, 'aMAIDAI', 'Arrakis MAI/DAI'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 102,\n frontend: FRONTEND.MAI,\n fallbackUnderlyingAddress: OG_MATIC_VAULT,\n version: 2,\n },\n {\n shortName: 'LSMMVT',\n connect: StableQiVault__factory.connect,\n chainId: ChainId.MATIC,\n minimumCDR: 135,\n token: new Token(\n ChainId.MATIC,\n '0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6',\n 18,\n 'MaticX',\n 'Liquid Staking Matic'\n ),\n frontend: FRONTEND.MANHATTAN,\n vaultAddress: '0x4b7509ce029656341D0B59D387D9B5312E41615a',\n contractAbi: StableQiVault__factory.abi,\n version: 2,\n },\n {\n shortName: 'STMMVT',\n connect: StableQiVault__factory.connect,\n chainId: ChainId.MATIC,\n minimumCDR: 135,\n token: new Token(ChainId.MATIC, '0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4', 18, 'stMatic', 'Staked Matic'),\n frontend: FRONTEND.MANHATTAN,\n vaultAddress: '0x34fa22892256216a659D4f635354250b4D771458',\n contractAbi: StableQiVault__factory.abi,\n version: 2,\n },\n ],\n [ChainId.METIS]: [\n {\n shortName: 'metis',\n vaultAddress: '0x10DcBEe8afA39a847707e16Aea5eb34c6b01aBA9',\n chainId: ChainId.METIS,\n token: new Token(ChainId.METIS, '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000', 18, 'METIS', 'Metis'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 155,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'METIS (Metis)',\n },\n {\n shortName: 'weth',\n vaultAddress: '0xC09c73F7B32573d178138E76C0e286BA21085c20',\n chainId: ChainId.METIS,\n token: new Token(ChainId.METIS, '0x420000000000000000000000000000000000000A', 18, 'WETH', 'Wrapped Ether'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'WETH (Metis)',\n },\n {\n shortName: 'wbtc',\n vaultAddress: '0xB89c1b3d9f335B9d8Bb16016F3d60160AE71041f',\n chainId: ChainId.METIS,\n token: new Token(ChainId.METIS, METIS_WBTC_ADDRESS, 8, 'WBTC', 'Wrapped BTC'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 2,\n depreciated: true,\n snapshotName: 'WBTC (Metis)',\n },\n {\n shortName: 'mwbtc',\n vaultAddress: '0x5A03716bd1f338D7849f5c9581AD5015ce0020B0',\n chainId: ChainId.METIS,\n token: new Token(ChainId.METIS, '0x433e43047b95cb83517abd7c9978bdf7005e9938', 8, 'm.WBTC', 'Metis Wrapped BTC'),\n contractAbi: StableQiVault__factory.abi,\n connect: StableQiVault__factory.connect,\n minimumCDR: 130,\n frontend: FRONTEND.MAI,\n version: 2,\n snapshotName: 'm.WBTC (Metis)',\n fallbackUnderlyingAddress: METIS_WBTC_ADDRESS,\n },\n ],\n}\n","import { BigNumber, Contract, Signer } from 'ethers'\nimport BeefyZapperABI from './abis/BeefyZapper.json'\nimport QiZappahABI from './abis/QiZappah.json'\nimport ThreeStepQiZappah from './abis/ThreeStepQiZappah.json'\n\nimport {\n CAMAAVE_VAULT_ADDRESS, CAMDAI_VAULT_ADDRESS, CAMWBTC_VAULT_ADDRESS,\n CAMWETH_VAULT_ADDRESS,\n CAMWMATIC_VAULT_ADDRESS,\n ChainId, MOO_BIFI_FTM_VAULT_ADDRESS, MOO_ETH_STETH_CRV_VAULT_ADDRESS,\n MOO_SCREAM_DAI_VAULT_ADDRESS,\n MOO_SCREAM_ETH_VAULT_ADDRESS, MOO_SCREAM_LINK_VAULT_ADDRESS,\n MOO_SCREAM_WBTC_VAULT_ADDRESS,\n MOO_SCREAM_WFTM_VAULT_ADDRESS,\n MOO_WAVAX_VAULT_ADDRESS,\n WFTM_ADDRESS, WSTETH_VAULT_ADDRESS,\n YVDAI_VAULT_ADDRESS,\n YVWBTC_VAULT_ADDRESS, YVWETH_OPTIMISM_VAULT_ADDRESS,\n YVWETH_VAULT_ADDRESS,\n YVWFTM_VAULT_ADDRESS,\n YVYFI_VAULT_ADDRESS\n} from './constants'\nimport { Token } from './entities'\nimport ZapMeta, {CamMeta, QiZapMeta, QiZapThreeStepMeta, ScalingInfo} from './ZapMeta'\n\nconst ftmZapperAddress = '0xE2379CB4c4627E5e9dF459Ce08c2342C696C4c1f'\nconst avaxZapperAddress = '0x1d0a9E2c445EB8f99767eF289832637921e6F6a5'\n\nexport async function beefyZapToVault(\n signer: Signer,\n zapperAddress: string,\n assetAddress: string,\n mooAssetAddress: string,\n mooAssetVaultAddress: string,\n amount: BigNumber,\n vaultIndex: BigNumber\n) {\n const zapperContract = new Contract(zapperAddress, BeefyZapperABI, signer)\n return zapperContract.beefyZapToVault(amount, vaultIndex, assetAddress, mooAssetAddress, mooAssetVaultAddress)\n}\n\nexport async function beefyZapFromVault(\n signer: Signer,\n zapperAddress: string,\n assetAddress: string,\n mooAssetAddress: string,\n mooAssetVaultAddress: string,\n amount: BigNumber,\n vaultIndex: BigNumber\n) {\n const zapperContract = new Contract(zapperAddress, BeefyZapperABI, signer)\n return zapperContract.beefyZapFromVault(amount, vaultIndex, assetAddress, mooAssetAddress, mooAssetVaultAddress, {\n gasLimit: 3500000,\n })\n}\n\nfunction beefyZapperInfo({\n vaultType,\n underlying,\n underlyingPriceSourceAddress,\n collateralScaling,\n underlyingScaling,\n mooAssetAddress,\n mooAssetVaultAddress,\n zapperAddress,\n}: {\n vaultType: 'YEARN' | 'BEEFY'\n underlying: Token\n underlyingPriceSourceAddress: string\n collateralScaling?: ScalingInfo\n underlyingScaling?: ScalingInfo\n mooAssetAddress: string\n mooAssetVaultAddress: string\n zapperAddress: string\n}): ZapMeta {\n return {\n vaultType: vaultType,\n zapperAddress: zapperAddress,\n underlying: underlying,\n underlyingPriceSourceAddress: underlyingPriceSourceAddress,\n mooAssetAddress,\n collateralScaling,\n underlyingScaling,\n zapInFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) =>\n beefyZapToVault(\n signer,\n zapperAddress, // Zapper Address\n underlying.address, // Underlying token\n mooAssetAddress, // Receipt token\n mooAssetVaultAddress, // MAI Vault address\n amount,\n vaultIndex\n ),\n zapOutFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) =>\n beefyZapFromVault(\n signer,\n zapperAddress, // Zapper Address\n underlying.address, // Underlying token\n mooAssetAddress, // Receipt token\n mooAssetVaultAddress, // MAI Vault address\n amount,\n vaultIndex\n ),\n }\n}\n\nexport const ZAP_META: { [c in ChainId]?: { [s in string]: ZapMeta } } = {\n [ChainId.AVALANCHE]: {\n [MOO_WAVAX_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: avaxZapperAddress,\n underlying: new Token(\n ChainId.AVALANCHE,\n '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',\n 18,\n 'WAVAX',\n 'Wrapped AVAX'\n ),\n underlyingPriceSourceAddress: '0x0A77230d17318075983913bC2145DB16C7366156',\n mooAssetAddress: '0x1B156C5c75E9dF4CAAb2a5cc5999aC58ff4F9090',\n mooAssetVaultAddress: MOO_WAVAX_VAULT_ADDRESS,\n }),\n },\n [ChainId.FANTOM]: {\n [YVWFTM_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'YEARN',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, WFTM_ADDRESS, 18, 'WFTM', 'Fantom'),\n underlyingPriceSourceAddress: '0xf4766552D15AE4d256Ad41B6cf2933482B0680dc',\n mooAssetAddress: '0x0DEC85e74A92c52b7F708c4B10207D9560CEFaf0',\n mooAssetVaultAddress: YVWFTM_VAULT_ADDRESS,\n }),\n [YVWBTC_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'YEARN',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x321162cd933e2be498cd2267a90534a804051b11', 8, 'WBTC', 'Wrapped Bitcoin'),\n underlyingPriceSourceAddress: '0x8e94C22142F4A64b99022ccDd994f4e9EC86E4B4',\n collateralScaling: { priceScalingFactor: { scalingFactor: 1e10, scaleVia: 'mul' } },\n underlyingScaling: { liquidationScalingFactor: { scalingFactor: 1e10, scaleVia: 'div' } },\n mooAssetAddress: '0xd817a100ab8a29fe3dbd925c2eb489d67f758da9',\n mooAssetVaultAddress: YVWBTC_VAULT_ADDRESS,\n }),\n [YVYFI_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'YEARN',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x29b0da86e484e1c0029b56e817912d778ac0ec69', 18, 'YFI', 'Yearn.finance'),\n underlyingPriceSourceAddress: '0x9d5c6db3bf2904d9277a7b82698a588a05a0679a',\n mooAssetAddress: '0x2C850cceD00ce2b14AA9D658b7Cad5dF659493Db',\n mooAssetVaultAddress: YVYFI_VAULT_ADDRESS,\n }),\n [YVWETH_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'YEARN',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x74b23882a30290451a17c44f4f05243b6b58c76d', 18, 'WETH', 'Wrapped Ether'),\n underlyingPriceSourceAddress: '0x425eA1422DBF9764D9f84e6d581c3e0187C5A340',\n mooAssetAddress: '0xCe2Fc0bDc18BD6a4d9A725791A3DEe33F3a23BB7',\n mooAssetVaultAddress: YVWETH_VAULT_ADDRESS,\n }),\n [YVDAI_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'YEARN',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E', 18, 'DAI', 'Dai Stablecoin'),\n underlyingPriceSourceAddress: '0x91d5DEFAFfE2854C7D02F50c80FA1fdc8A721e52',\n mooAssetAddress: '0x637ec617c86d24e421328e6caea1d92114892439',\n mooAssetVaultAddress: YVDAI_VAULT_ADDRESS,\n }),\n [MOO_SCREAM_WBTC_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x321162Cd933E2Be498Cd2267a90534A804051b11', 8, 'BTC', 'Bitcoin'),\n underlyingPriceSourceAddress: '0x8e94C22142F4A64b99022ccDd994f4e9EC86E4B4',\n mooAssetAddress: '0x97927abfe1abbe5429cbe79260b290222fc9fbba',\n mooAssetVaultAddress: MOO_SCREAM_WBTC_VAULT_ADDRESS,\n collateralScaling: { liquidationScalingFactor: { scalingFactor: 10 ** 10, scaleVia: 'div' } },\n }),\n [MOO_SCREAM_DAI_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E', 18, 'DAI', 'Dai Stablecoin'),\n underlyingPriceSourceAddress: '0x91d5DEFAFfE2854C7D02F50c80FA1fdc8A721e52',\n mooAssetAddress: '0x920786cff2A6f601975874Bb24C63f0115Df7dc8',\n mooAssetVaultAddress: MOO_SCREAM_DAI_VAULT_ADDRESS,\n }),\n [MOO_SCREAM_ETH_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0x74b23882a30290451A17c44f4F05243b6b58C76d', 18, 'ETH', 'Ethereum'),\n underlyingPriceSourceAddress: '0x11DdD3d147E5b83D01cee7070027092397d63658',\n mooAssetAddress: '0x0a03D2C1cFcA48075992d810cc69Bd9FE026384a',\n mooAssetVaultAddress: MOO_SCREAM_ETH_VAULT_ADDRESS,\n }),\n [MOO_SCREAM_WFTM_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, WFTM_ADDRESS, 18, 'WFTM', 'Wrapped Fantom'),\n underlyingPriceSourceAddress: '0xf4766552D15AE4d256Ad41B6cf2933482B0680dc',\n mooAssetAddress: '0x49c68eDb7aeBd968F197121453e41b8704AcdE0C',\n mooAssetVaultAddress: MOO_SCREAM_WFTM_VAULT_ADDRESS,\n }),\n [MOO_SCREAM_LINK_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n zapperAddress: ftmZapperAddress,\n underlying: new Token(ChainId.FANTOM, '0xb3654dc3D10Ea7645f8319668E8F54d2574FBdC8', 18, 'LINK', 'ChainLink'),\n underlyingPriceSourceAddress: '0x221C773d8647BC3034e91a0c47062e26D20d97B4',\n mooAssetAddress: '0x6DfE2AAEA9dAadADf0865B661b53040E842640f8',\n mooAssetVaultAddress: MOO_SCREAM_LINK_VAULT_ADDRESS,\n }),\n [MOO_BIFI_FTM_VAULT_ADDRESS]: beefyZapperInfo({\n vaultType: 'BEEFY',\n underlying: new Token(ChainId.FANTOM, '0xd6070ae98b8069de6B494332d1A1a81B6179D960', 18, 'BIFI', 'Beefy.Finance'),\n underlyingPriceSourceAddress: '0x4F5Cc6a2291c964dEc4C7d6a50c0D89492d4D91B',\n mooAssetAddress: '0xbF07093ccd6adFC3dEB259C557b61E94c1F66945',\n mooAssetVaultAddress: MOO_BIFI_FTM_VAULT_ADDRESS,\n zapperAddress: ftmZapperAddress,\n }),\n },\n}\n\nconst OP_QI_ZAPPER = '0xB0aed7923f7fBEAf5bb2caa4A049A51d638Be2c9'\nconst OP_THREE_STEP_ZAPPER = '0x1D864EDCA89b99580C46CEC4091103D7fb85aDCF';\n\nfunction generateQiZapper({perfToken, underlyingPriceSourceAddress, underlying, mooAssetAddress, mooAssetVaultAddress}: {perfToken: string; underlyingPriceSourceAddress: string; underlying: Token, mooAssetAddress:string,\n mooAssetVaultAddress: string}) {\n const zapperAddress = OP_QI_ZAPPER\n return {\n underlyingPriceSourceAddress,\n perfToken,\n underlying,\n mooAssetAddress,\n zapperAddress,\n zapInFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) => {\n const zapperContract = new Contract(zapperAddress, QiZappahABI, signer)\n return zapperContract.beefyZapToVault(amount, vaultIndex, underlying.address, mooAssetAddress, perfToken, mooAssetVaultAddress, {\n gasLimit: 3500000,\n })\n },\n zapOutFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) => {\n const zapperContract = new Contract(zapperAddress, QiZappahABI, signer)\n return zapperContract.beefyZapFromVault(amount, vaultIndex, underlying.address, mooAssetAddress, perfToken, mooAssetVaultAddress, {\n gasLimit: 3500000,\n })\n },\n }\n}\n\nfunction generateThreeStepZapper({\n perfToken,\n underlyingPriceSourceAddress,\n underlying,\n mooAssetVaultAddress,\n}: {\n perfToken: string\n underlyingPriceSourceAddress: string\n underlying: Token\n mooAssetVaultAddress: string\n}) {\n return {\n underlyingPriceSourceAddress,\n perfToken,\n underlying,\n zapperAddress: OP_THREE_STEP_ZAPPER,\n zapInFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) => {\n const zapperContract = new Contract(OP_THREE_STEP_ZAPPER, ThreeStepQiZappah, signer)\n return zapperContract.beefyZapToVault(amount, vaultIndex, underlying.address, perfToken, mooAssetVaultAddress, {\n gasLimit: 3500000,\n })\n },\n zapOutFunction: (amount: BigNumber, vaultIndex: BigNumber, signer: Signer) => {\n const zapperContract = new Contract(OP_THREE_STEP_ZAPPER, ThreeStepQiZappah, signer)\n return zapperContract.beefyZapFromVault(amount, vaultIndex, underlying.address, perfToken, mooAssetVaultAddress, {\n gasLimit: 3500000,\n })\n },\n }\n}\n\nexport const PERF_TOKEN_ZAP_META: { [c in ChainId]?: { [s in string]: QiZapMeta | QiZapThreeStepMeta } } = {\n [ChainId.OPTIMISM]:\n {\n [WSTETH_VAULT_ADDRESS]: generateThreeStepZapper({\n perfToken: '0x926B92B15385981416a5E0Dcb4f8b31733d598Cf',\n mooAssetVaultAddress: WSTETH_VAULT_ADDRESS,\n underlying: new Token(ChainId.OPTIMISM, '0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb', 18, 'wstETH', 'Wrapped liquid staked Ether 2.0'),\n underlyingPriceSourceAddress: '0x41878779a388585509657CE5Fb95a80050502186',\n }),\n [YVWETH_OPTIMISM_VAULT_ADDRESS]: generateQiZapper({\n underlyingPriceSourceAddress: '0x13e3ee699d1909e989722e753853ae30b17e08c5',\n perfToken: '0x22f39d6535df5767f8f57fee3b2f941410773ec4',\n mooAssetAddress: '0x5B977577Eb8a480f63e11FC615D6753adB8652Ae',\n mooAssetVaultAddress: YVWETH_OPTIMISM_VAULT_ADDRESS,\n underlying: new Token(ChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n }),\n [MOO_ETH_STETH_CRV_VAULT_ADDRESS]: generateThreeStepZapper({\n underlyingPriceSourceAddress: '0x41878779a388585509657CE5Fb95a80050502186',\n perfToken: '0x480798FAC621adD14113ECC82638305c260cEaf1',\n underlying: new Token(ChainId.OPTIMISM, '0x0892a178c363b4739e5Ac89E9155B9c30214C0c0', 18, 'mooCurveWSTETH', 'Moo Curve wstETH'),\n mooAssetVaultAddress: MOO_ETH_STETH_CRV_VAULT_ADDRESS,\n })\n }\n}\n\nexport const CAMZAPPER_ADDRESS = {\n [ChainId.MATIC]: '0xd8d22817D216164D09Ca5909A70bEcA608D65Aa9',\n}\n\nexport const CAM_META: { [c in ChainId]?: { [s in string]: CamMeta } } = {\n [ChainId.MATIC]: {\n [CAMWMATIC_VAULT_ADDRESS]: {\n underlyingPriceSourceAddress: '0xAB594600376Ec9fD91F8e885dADF0CE036862dE0',\n underlying: new Token(ChainId.MATIC, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n amTokenAddress: '0x8dF3aad3a84da6b69A4DA8aeC3eA40d9091B2Ac4',\n camTokenAddress: '0x7068Ea5255cb05931EFa8026Bd04b18F3DeB8b0B',\n },\n [CAMWETH_VAULT_ADDRESS]: {\n underlyingPriceSourceAddress: '0xF9680D99D6C9589e2a93a78A04A279e509205945',\n underlying: new Token(ChainId.MATIC, '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619', 18, 'WETH', 'Wrapped Ether'),\n amTokenAddress: '0x28424507fefb6f7f8E9D3860F56504E4e5f5f390',\n camTokenAddress: '0x0470CD31C8FcC42671465880BA81D631F0B76C1D',\n },\n [CAMAAVE_VAULT_ADDRESS]: {\n underlyingPriceSourceAddress: '0x72484B12719E23115761D5DA1646945632979bB6',\n underlying: new Token(ChainId.MATIC, '0xD6DF932A45C0f255f85145f286eA0b292B21C90B', 18, 'AAVE', 'Aave'),\n amTokenAddress: '0x1d2a0E5EC8E5bBDCA5CB219e649B565d8e5c3360',\n camTokenAddress: '0xeA4040B21cb68afb94889cB60834b13427CFc4EB',\n },\n [CAMWBTC_VAULT_ADDRESS]: {\n underlyingPriceSourceAddress: '0xDE31F8bFBD8c84b5360CFACCa3539B938dd78ae6',\n underlying: new Token(ChainId.MATIC, '0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6', 8, 'WBTC', 'Wrapped BTC'),\n amTokenAddress: '0x5c2ed810328349100A66B82b78a1791B101C9D61',\n camTokenAddress: '0xBa6273A78a23169e01317bd0f6338547F869E8Df',\n },\n [CAMDAI_VAULT_ADDRESS]: {\n underlyingPriceSourceAddress: '0x4746DeC9e833A82EC7C2C1356372CcF2cfcD2F3D',\n underlying: new Token(ChainId.MATIC, '0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063', 18, 'DAI', 'Dai Stablecoin'),\n amTokenAddress: '0x27F8D03b3a2196956ED754baDc28D73be8830A6e',\n camTokenAddress: '0xE6C23289Ba5A9F0Ef31b8EB36241D5c800889b7b',\n },\n },\n}\n","import { ChainId } from \"./constants\"\nimport { Token } from \"./entities\"\n\ntype ChainTokenMap = {\n readonly [chainId in ChainId]?: Token\n}\n\nfunction makeTokenFn(symbol: string, name: string, decimals: number = 18) {\n return (chainId: ChainId, address: string) => {\n return new Token(chainId, address, decimals, symbol, name)\n }\n}\n\nconst makeLDOToken = makeTokenFn('LDO', 'Lido')\nexport const LDO: { readonly [chainId in ChainId]?: Token } = {\n [ChainId.MATIC]: makeLDOToken(ChainId.MATIC, '0xC3C7d422809852031b44ab29EEC9F1EfF2A58756'),\n}\n\nconst makeMETISToken = makeTokenFn('METIS', 'Metis')\nexport const METIS: { readonly [chainId in ChainId]?: Token } = {\n [ChainId.METIS]: makeMETISToken(ChainId.METIS, '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000'),\n}\n\nconst makeSDToken = makeTokenFn('SD', 'Stader Labs')\nexport const SD: { readonly [chainId in ChainId]?: Token } = {\n [ChainId.MATIC]: makeSDToken(ChainId.MATIC, '0x1d734A02eF1e1f5886e66b0673b71Af5B53ffA94'),\n}\n\nconst makeQiToken = makeTokenFn('QI', 'QiDao')\nexport const QI: { readonly [chainId in ChainId]?: Token } = {\n [ChainId.MAINNET]: makeQiToken(ChainId.MAINNET, '0x559b7bfC48a5274754b08819F75C5F27aF53D53b'),\n [ChainId.MATIC]: makeQiToken(ChainId.MATIC, '0x580A84C73811E1839F75d86d75d88cCa0c241fF4'),\n [ChainId.FANTOM]: makeQiToken(ChainId.FANTOM, '0x68Aa691a8819B07988B18923F712F3f4C8d36346'),\n [ChainId.AVALANCHE]: makeQiToken(ChainId.AVALANCHE, '0xA56F9A54880afBc30CF29bB66d2D9ADCdcaEaDD6'),\n [ChainId.ARBITRUM]: makeQiToken(ChainId.ARBITRUM, '0xB9C8F0d3254007eE4b98970b94544e473Cd610EC'),\n [ChainId.BOBA]: makeQiToken(ChainId.BOBA, '0xC85C1ce70C4Bf751a73793D735e9D0209152F13d'),\n [ChainId.XDAI]: makeQiToken(ChainId.XDAI, '0xdFA46478F9e5EA86d57387849598dbFB2e964b02'),\n [ChainId.METIS]: makeQiToken(ChainId.METIS, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.OPTIMISM]: makeQiToken(ChainId.OPTIMISM, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.BSC]: makeQiToken(ChainId.BSC, '0xdDC3D26BAA9D2d979F5E2e42515478bf18F354D5'),\n}\n\nconst makeMaiToken = makeTokenFn('MAI', 'MAI (miMatic)')\nexport const MAI: ChainTokenMap = {\n [ChainId.MAINNET]: makeMaiToken(ChainId.MAINNET, '0x8D6CeBD76f18E1558D4DB88138e2DeFB3909fAD6'),\n [ChainId.MATIC]: makeMaiToken(ChainId.MATIC, '0xa3Fa99A148fA48D14Ed51d610c367C61876997F1'),\n [ChainId.FANTOM]: makeMaiToken(ChainId.FANTOM, '0xfB98B335551a418cD0737375a2ea0ded62Ea213b'),\n [ChainId.AVALANCHE]: makeMaiToken(ChainId.AVALANCHE, '0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b'),\n [ChainId.MOONBEAM]: makeMaiToken(ChainId.MOONRIVER, '0xdFA46478F9e5EA86d57387849598dbFB2e964b02'),\n [ChainId.MOONRIVER]: makeMaiToken(ChainId.MOONRIVER, '0xFb2019DfD635a03cfFF624D210AEe6AF2B00fC2C'),\n [ChainId.HARMONY]: makeMaiToken(ChainId.HARMONY, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.CRONOS]: makeMaiToken(ChainId.CRONOS, '0x2Ae35c8E3D4bD57e8898FF7cd2bBff87166EF8cb'),\n [ChainId.ARBITRUM]: makeMaiToken(ChainId.ARBITRUM, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.BOBA]: makeMaiToken(ChainId.BOBA, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.XDAI]: makeMaiToken(ChainId.XDAI, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.METIS]: makeMaiToken(ChainId.METIS, '0xdFA46478F9e5EA86d57387849598dbFB2e964b02'),\n [ChainId.BSC]: makeMaiToken(ChainId.BSC, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.AURORA]: makeMaiToken(ChainId.AURORA, '0xdFA46478F9e5EA86d57387849598dbFB2e964b02'),\n [ChainId.CELO]: makeMaiToken(ChainId.CELO, '0xB9C8F0d3254007eE4b98970b94544e473Cd610EC'),\n [ChainId.IOTEX]: makeMaiToken(ChainId.IOTEX, '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d'),\n [ChainId.OPTIMISM]: makeMaiToken(ChainId.OPTIMISM, '0xdFA46478F9e5EA86d57387849598dbFB2e964b02'),\n}\n"],"names":["FTM_ZAPPER_ADDRESS","OG_MATIC_VAULT","ChainId","TradeType","Rounding","INIT_CODE_HASH","MINIMUM_LIQUIDITY","JSBI","BigInt","ZERO","ONE","TWO","THREE","FIVE","TEN","_100","_997","_1000","SolidityType","SOLIDITY_TYPE_MAXIMA","uint8","uint256","MULTICALL_NETWORKS","MAINNET","KOVAN","GÖRLI","FANTOM","FANTOM_TESTNET","MATIC","MATIC_TESTNET","XDAI","BSC","BSC_TESTNET","ARBITRUM","MOONBASE","AVALANCHE","FUJI","HECO","HECO_TESTNET","HARMONY","HARMONY_TESTNET","MOONRIVER","CRONOS","OPTIMISM","SYSCOIN","METIS","MOONBEAM","MILKOMEDA","KAVA","IOTEX","KLAYTN","CELO","AURORA","BOBA","CUBE","WFTM_ADDRESS","STETH_ADDRESS","METIS_WBTC_ADDRESS","AAVE_ADDRESS","CAMWMATIC_VAULT_ADDRESS","CAMWETH_VAULT_ADDRESS","CAMAAVE_VAULT_ADDRESS","CAMWBTC_VAULT_ADDRESS","CAMDAI_VAULT_ADDRESS","YVWFTM_VAULT_ADDRESS","YVYFI_VAULT_ADDRESS","YVWETH_VAULT_ADDRESS","YVDAI_VAULT_ADDRESS","MOO_SCREAM_WBTC_VAULT_ADDRESS","MOO_SCREAM_DAI_VAULT_ADDRESS","MOO_SCREAM_ETH_VAULT_ADDRESS","MOO_SCREAM_WFTM_VAULT_ADDRESS","MOO_SCREAM_LINK_VAULT_ADDRESS","MOO_BIFI_FTM_VAULT_ADDRESS","MOO_WAVAX_VAULT_ADDRESS","YVETH_VAULT_ADDRESS","YVLINK_VAULT_ADDRESS","WETH_ADDRESS","LINK_ADDRESS","WSTETH_VAULT_ADDRESS","YVWETH_OPTIMISM_VAULT_ADDRESS","MOO_ETH_STETH_CRV_VAULT_ADDRESS","InsufficientReservesError","Error","constructor","super","this","isInsufficientReservesError","name","CAN_SET_PROTOTYPE","Object","setPrototypeOf","prototype","InsufficientInputAmountError","isInsufficientInputAmountError","validateSolidityTypeInstance","value","solidityType","invariant","greaterThanOrEqual","lessThanOrEqual","parseBigintIsh","bigintIsh","toString","Currency","decimals","symbol","static","chainId","NATIVE","getNativeCurrency","getSymbol","getNativeCurrencySymbol","getName","getNativeCurrencyName","ETHER","BNB","FTM","GLMR","AVAX","HT","MOVR","CRO","Token","address","validateAndParseAddress","checksummedAddress","getAddress","warning","error","equals","other","sortsBefore","toLowerCase","currencyEquals","currencyA","currencyB","WNATIVE","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","Fraction","numerator","denominator","quotient","divide","remainder","invert","add","equal","otherParsed","multiply","subtract","lessThan","equalTo","greaterThan","toSignificant","significantDigits","format","groupSeparator","rounding","Number","isInteger","set","precision","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_100_PERCENT","Percent","CurrencyAmount","amount","currency","parsedAmount","exponentiate","raw","toExact","TokenAmount","token","Price","baseCurrency","quoteCurrency","scalar","adjusted","fraction","quote","currencyAmount","ether","_abi","constant","inputs","type","outputs","payable","stateMutability","anonymous","indexed","_bytecode","ContractFactory","args","length","contractName","deploy","ethPriceSourceAddress","tokenPriceSourceAddress","minimumCollateralPercentage","overrides","getDeployTransaction","attach","connect","signer","utils","Interface","signerOrProvider","QiStablecoin__factory","bytecode","abi","internalType","CrosschainNativeQiStablecoin__factory","Contract","CrosschainQiStablecoin__factory","CrosschainQiStablecoinSlim__factory","CrosschainQiStablecoinSlimV2__factory","CrosschainQiStablecoinV2__factory","CrosschainQiStablecoinwbtc__factory","Erc20QiStablecoincamwbtc__factory","Erc20QiStablecoinwbtc__factory","Erc20Stablecoin__factory","StableQiVault__factory","FRONTEND","isV2QiVault","collateral","version","isGaugeValid","undefined","snapshotName","depreciated","COLLATERALS","shortName","vaultAddress","contractAbi","minimumCDR","frontend","MAI","fallbackUnderlyingAddress","native","subgraph","YVWBTC_VAULT_ADDRESS","MANHATTAN","constants","AddressZero","aaveId","disabled","ftmZapperAddress","async","zapperAddress","assetAddress","mooAssetAddress","mooAssetVaultAddress","vaultIndex","BeefyZapperABI","beefyZapToVault","beefyZapFromVault","gasLimit","beefyZapperInfo","vaultType","underlying","underlyingPriceSourceAddress","collateralScaling","underlyingScaling","zapInFunction","zapOutFunction","ZAP_META","priceScalingFactor","scalingFactor","scaleVia","liquidationScalingFactor","generateThreeStepZapper","perfToken","OP_THREE_STEP_ZAPPER","ThreeStepQiZappah","PERF_TOKEN_ZAP_META","QiZappahABI","generateQiZapper","CAMZAPPER_ADDRESS","CAM_META","amTokenAddress","camTokenAddress","makeTokenFn","makeLDOToken","LDO","makeMETISToken","makeSDToken","SD","makeQiToken","QI","makeMaiToken"],"mappings":"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"}