diff --git a/apps/playground-api/__tests__/bots/OracleBot.test.ts b/apps/playground-api/__tests__/bots/OracleBot.test.ts index 49bb7c5585..4032ee4e39 100644 --- a/apps/playground-api/__tests__/bots/OracleBot.test.ts +++ b/apps/playground-api/__tests__/bots/OracleBot.test.ts @@ -62,6 +62,9 @@ describe('oracle bot', () => { const USDT = oracleData.tokenPrices.find(x => x.token === 'USDT') expect(USDT?.amount).toBeDefined() + + const MATIC = oracleData.tokenPrices.find(x => x.token === 'MATIC') + expect(MATIC?.amount).toBeDefined() }, 200000) }) }) diff --git a/apps/playground-api/__tests__/modules/PlaygroundModule.test.ts b/apps/playground-api/__tests__/modules/PlaygroundModule.test.ts index e8a5b16f42..44cd39779f 100644 --- a/apps/playground-api/__tests__/modules/PlaygroundModule.test.ts +++ b/apps/playground-api/__tests__/modules/PlaygroundModule.test.ts @@ -15,12 +15,12 @@ afterAll(async () => { it('should have pool pairs setup', async () => { const pairs = await testing.container.call('listpoolpairs') - expect(Object.values(pairs).length).toBe(16) + expect(Object.values(pairs).length).toBe(17) }) it('should have tokens setup', async () => { const tokens = await testing.container.call('listtokens') - expect(Object.values(tokens).length).toBe(34) + expect(Object.values(tokens).length).toBe(36) }) it('should have oracles setup', async () => { @@ -56,7 +56,7 @@ it('should have loan tokens', async () => { it('should have loan collateral tokens', async () => { const results = await testing.container.call('listcollateraltokens') - expect(results.length).toBe(13) + expect(results.length).toBe(14) }) it('should have gov set', async () => { @@ -156,46 +156,49 @@ it('should have gov set', async () => { 'v0/token/12/fixed_interval_price_id': 'EUROC/USD', 'v0/token/12/loan_collateral_enabled': 'true', 'v0/token/12/loan_collateral_factor': '1', - 'v0/token/13/payback_dfi': 'true', - 'v0/token/13/payback_dfi_fee_pct': '0.01', - 'v0/token/13/loan_payback/1': 'true', - 'v0/token/13/loan_payback/15': 'true', - 'v0/token/13/loan_payback_fee_pct/1': '0.01', - 'v0/token/13/loan_payback_fee_pct/15': '0.01', - 'v0/token/13/fixed_interval_price_id': 'DUSD/USD', + 'v0/token/13/fixed_interval_price_id': 'MATIC/USD', 'v0/token/13/loan_collateral_enabled': 'true', - 'v0/token/13/loan_collateral_factor': '1.2', - 'v0/token/13/loan_minting_enabled': 'true', - 'v0/token/13/loan_minting_interest': '0', - 'v0/token/13/loan_payback_collateral': 'true', - 'v0/token/14/loan_payback/6': 'true', - 'v0/token/14/loan_payback/13': 'true', - 'v0/token/14/loan_payback_fee_pct/6': '0.01', - 'v0/token/14/loan_payback_fee_pct/13': '0.01', - 'v0/token/14/fixed_interval_price_id': 'TU10/USD', + 'v0/token/13/loan_collateral_factor': '1', + 'v0/token/14/payback_dfi': 'true', + 'v0/token/14/payback_dfi_fee_pct': '0.01', + 'v0/token/14/loan_payback/1': 'true', + 'v0/token/14/loan_payback/16': 'true', + 'v0/token/14/loan_payback_fee_pct/1': '0.01', + 'v0/token/14/loan_payback_fee_pct/16': '0.01', + 'v0/token/14/fixed_interval_price_id': 'DUSD/USD', + 'v0/token/14/loan_collateral_enabled': 'true', + 'v0/token/14/loan_collateral_factor': '1.2', 'v0/token/14/loan_minting_enabled': 'true', - 'v0/token/14/loan_minting_interest': '1', - 'v0/token/15/loan_payback/1': 'true', - 'v0/token/15/loan_payback/13': 'true', - 'v0/token/15/loan_payback_fee_pct/1': '0.01', - 'v0/token/15/loan_payback_fee_pct/13': '0.01', - 'v0/token/15/fixed_interval_price_id': 'TD10/USD', + 'v0/token/14/loan_minting_interest': '0', + 'v0/token/14/loan_payback_collateral': 'true', + 'v0/token/15/loan_payback/6': 'true', + 'v0/token/15/loan_payback/14': 'true', + 'v0/token/15/loan_payback_fee_pct/6': '0.01', + 'v0/token/15/loan_payback_fee_pct/14': '0.01', + 'v0/token/15/fixed_interval_price_id': 'TU10/USD', 'v0/token/15/loan_minting_enabled': 'true', - 'v0/token/15/loan_minting_interest': '1.5', + 'v0/token/15/loan_minting_interest': '1', + 'v0/token/16/loan_payback/1': 'true', 'v0/token/16/loan_payback/14': 'true', + 'v0/token/16/loan_payback_fee_pct/1': '0.01', 'v0/token/16/loan_payback_fee_pct/14': '0.01', - 'v0/token/16/fixed_interval_price_id': 'TS25/USD', + 'v0/token/16/fixed_interval_price_id': 'TD10/USD', 'v0/token/16/loan_minting_enabled': 'true', - 'v0/token/16/loan_minting_interest': '2', - 'v0/token/17/payback_dfi': 'true', - 'v0/token/17/payback_dfi_fee_pct': '0.01', - 'v0/token/17/loan_payback/13': 'true', + 'v0/token/16/loan_minting_interest': '1.5', 'v0/token/17/loan_payback/15': 'true', - 'v0/token/17/loan_payback_fee_pct/13': '0.01', 'v0/token/17/loan_payback_fee_pct/15': '0.01', - 'v0/token/17/fixed_interval_price_id': 'TR50/USD', + 'v0/token/17/fixed_interval_price_id': 'TS25/USD', 'v0/token/17/loan_minting_enabled': 'true', - 'v0/token/17/loan_minting_interest': '3', + 'v0/token/17/loan_minting_interest': '2', + 'v0/token/18/payback_dfi': 'true', + 'v0/token/18/payback_dfi_fee_pct': '0.01', + 'v0/token/18/loan_payback/14': 'true', + 'v0/token/18/loan_payback/16': 'true', + 'v0/token/18/loan_payback_fee_pct/14': '0.01', + 'v0/token/18/loan_payback_fee_pct/16': '0.01', + 'v0/token/18/fixed_interval_price_id': 'TR50/USD', + 'v0/token/18/loan_minting_enabled': 'true', + 'v0/token/18/loan_minting_interest': '3', 'v0/params/feature/icx': 'true', 'v0/params/feature/evm': 'true', 'v0/params/feature/transferdomain': 'true', diff --git a/apps/playground-api/src/bots/OracleBot.ts b/apps/playground-api/src/bots/OracleBot.ts index dc381cc712..4328f13071 100644 --- a/apps/playground-api/src/bots/OracleBot.ts +++ b/apps/playground-api/src/bots/OracleBot.ts @@ -144,6 +144,12 @@ export class OracleBot { amount: new BigNumber(1), change: new BigNumber(0), direction: PriceDirection.STABLE + }, + { + token: 'MATIC', + amount: new BigNumber(1), + change: new BigNumber(0), + direction: PriceDirection.STABLE } ] diff --git a/apps/playground-api/src/setups/setup.dex.ts b/apps/playground-api/src/setups/setup.dex.ts index e238a707a6..99cb01b534 100644 --- a/apps/playground-api/src/setups/setup.dex.ts +++ b/apps/playground-api/src/setups/setup.dex.ts @@ -235,6 +235,22 @@ export class SetupDex extends PlaygroundSetup { utxoToAccount: { [PlaygroundSetup.address]: '2000@0' } + }, + { + symbol: 'MATIC-DFI', + create: { + tokenA: 'MATIC', + tokenB: 'DFI', + commission: 0, + status: true, + ownerAddress: PlaygroundSetup.address + }, + add: { + '*': ['3000@DFI', '30000000@MATIC'] + }, + utxoToAccount: { + [PlaygroundSetup.address]: '3000@0' + } } ] } @@ -269,13 +285,17 @@ export class SetupDex extends PlaygroundSetup { const poolPairs = await this.client.poolpair.listPoolPairs() const poolPairIds = Object.keys(poolPairs) - // apply `toFixed(8)` due to 1 / 16 = 0.0625 which is valid amount on setgov + // apply `toFixed(8)` due to 1 / 17 = 0.05882353 which is valid amount on setgov const splits = Number(new BigNumber(1 / poolPairIds.length).toFixed(8)) const lpSplits: any = {} for (const k in poolPairs) { lpSplits[parseInt(k)] = splits } + // to fix: LP_SPLITS: total = 0.9996 vs expected 100000000', code: -32600, method: setgov + // 0.05882353 * 17 !== 100000000 + const lstKey = Object.keys(lpSplits)[0] + lpSplits[lstKey] = Number(new BigNumber(lpSplits[lstKey]).minus(0.00000001).toFixed(8)) await this.client.masternode.setGov({ LP_SPLITS: lpSplits }) await this.generate(1) } diff --git a/apps/playground-api/src/setups/setup.gov.ts b/apps/playground-api/src/setups/setup.gov.ts index 41a34f3acd..a440fea955 100644 --- a/apps/playground-api/src/setups/setup.gov.ts +++ b/apps/playground-api/src/setups/setup.gov.ts @@ -14,54 +14,54 @@ export class SetupGov extends PlaygroundSetup> { ATTRIBUTES: { // dfi pay dtoken // DFI pay DUSD - 'v0/token/13/payback_dfi': 'true', - 'v0/token/13/payback_dfi_fee_pct': '0.01', + 'v0/token/14/payback_dfi': 'true', + 'v0/token/14/payback_dfi_fee_pct': '0.01', // DFI pay TR50 - 'v0/token/17/payback_dfi': 'true', - 'v0/token/17/payback_dfi_fee_pct': '0.01', + 'v0/token/18/payback_dfi': 'true', + 'v0/token/18/payback_dfi_fee_pct': '0.01', // dtoken (DUSD) pay dtoken #1 // DUSD pay TD10 - 'v0/token/15/loan_payback/13': 'true', - 'v0/token/15/loan_payback_fee_pct/13': '0.01', + 'v0/token/16/loan_payback/14': 'true', + 'v0/token/16/loan_payback_fee_pct/14': '0.01', // DUSD pay TU10 - 'v0/token/14/loan_payback/13': 'true', - 'v0/token/14/loan_payback_fee_pct/13': '0.01', + 'v0/token/15/loan_payback/14': 'true', + 'v0/token/15/loan_payback_fee_pct/14': '0.01', // DUSD pay TR50 - 'v0/token/17/loan_payback/13': 'true', - 'v0/token/17/loan_payback_fee_pct/13': '0.01', + 'v0/token/18/loan_payback/14': 'true', + 'v0/token/18/loan_payback_fee_pct/14': '0.01', // dtoken pay dtoken #2 // TD10 pay DUSD - 'v0/token/13/loan_payback/15': 'true', - 'v0/token/13/loan_payback_fee_pct/15': '0.01', + 'v0/token/14/loan_payback/16': 'true', + 'v0/token/14/loan_payback_fee_pct/16': '0.01', // TD10 pay TR50 - 'v0/token/17/loan_payback/15': 'true', - 'v0/token/17/loan_payback_fee_pct/15': '0.01', + 'v0/token/18/loan_payback/16': 'true', + 'v0/token/18/loan_payback_fee_pct/16': '0.01', // TU10 pay TS25 - 'v0/token/16/loan_payback/14': 'true', - 'v0/token/16/loan_payback_fee_pct/14': '0.01', + 'v0/token/17/loan_payback/15': 'true', + 'v0/token/17/loan_payback_fee_pct/15': '0.01', // cToken pay dToken // BTC pay TD10 - 'v0/token/15/loan_payback/1': 'true', - 'v0/token/15/loan_payback_fee_pct/1': '0.01', + 'v0/token/16/loan_payback/1': 'true', + 'v0/token/16/loan_payback_fee_pct/1': '0.01', // BTC pay DUSD - 'v0/token/13/loan_payback/1': 'true', - 'v0/token/13/loan_payback_fee_pct/1': '0.01', + 'v0/token/14/loan_payback/1': 'true', + 'v0/token/14/loan_payback_fee_pct/1': '0.01', // CU10 pay TU10 - 'v0/token/14/loan_payback/6': 'true', - 'v0/token/14/loan_payback_fee_pct/6': '0.01', + 'v0/token/15/loan_payback/6': 'true', + 'v0/token/15/loan_payback_fee_pct/6': '0.01', // Unloop mechanism for DUSD - 'v0/token/13/loan_payback_collateral': 'true', + 'v0/token/14/loan_payback_collateral': 'true', // On-chain governance 'v0/params/feature/gov': 'true', diff --git a/apps/playground-api/src/setups/setup.loan.collateral.ts b/apps/playground-api/src/setups/setup.loan.collateral.ts index 7509ed5666..b48b8141b1 100644 --- a/apps/playground-api/src/setups/setup.loan.collateral.ts +++ b/apps/playground-api/src/setups/setup.loan.collateral.ts @@ -71,6 +71,11 @@ export class SetupLoanCollateral extends PlaygroundSetup { token: 'EUROC', fixedIntervalPriceId: 'EUROC/USD', factor: new BigNumber('1') + }, + { + token: 'MATIC', + fixedIntervalPriceId: 'MATIC/USD', + factor: new BigNumber('1') } ] } diff --git a/apps/playground-api/src/setups/setup.oracle.ts b/apps/playground-api/src/setups/setup.oracle.ts index 6d767d694f..b1783aaafe 100644 --- a/apps/playground-api/src/setups/setup.oracle.ts +++ b/apps/playground-api/src/setups/setup.oracle.ts @@ -87,6 +87,10 @@ const FEEDS: OraclePriceFeed[] = [ { token: 'EUROC', currency: 'USD' + }, + { + token: 'MATIC', + currency: 'USD' } ] diff --git a/apps/playground-api/src/setups/setup.token.ts b/apps/playground-api/src/setups/setup.token.ts index 288a82d8af..0e7f9b2d3b 100644 --- a/apps/playground-api/src/setups/setup.token.ts +++ b/apps/playground-api/src/setups/setup.token.ts @@ -142,6 +142,17 @@ export class SetupToken extends PlaygroundSetup { collateralAddress: PlaygroundSetup.address }, amount: 200000000 + }, + { + create: { + symbol: 'MATIC', + name: 'Playground MATIC', + isDAT: true, + mintable: true, + tradeable: true, + collateralAddress: PlaygroundSetup.address + }, + amount: 100000000 } ] }