Skip to content

Commit

Permalink
Merge branch 'main' into harsh/e2e-evmtx-index
Browse files Browse the repository at this point in the history
  • Loading branch information
fullstackninja864 authored Jun 26, 2024
2 parents b3e4a7b + cb1c467 commit 98de414
Show file tree
Hide file tree
Showing 79 changed files with 1,484 additions and 782 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ jobs:
- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4
with:
fail_ci_if_error: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

docker-sanity:
needs: [ build, lint ]
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ dist
# debug log
lerna-debug.log

# debug dump
dump

coverage

# vscode
Expand Down
5 changes: 3 additions & 2 deletions apps/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,17 @@
"class-transformer": "0.5.1",
"class-validator": "0.14.0",
"cross-fetch": "3.1.5",
"fast-csv": "^4.3.6",
"graphology": "0.25.1",
"graphology-components": "1.5.4",
"graphology-simple-path": "0.1.2",
"joi": "17.8.4",
"lodash": "4.17.21",
"level": "7.0.0",
"level-js": "6.0.0",
"level-packager": "6.0.0",
"leveldown": "6.0.0",
"lexicographic-integer-encoding": "1.0.1",
"lodash": "4.17.21",
"memdown": "6.1.1",
"pg": "8.9.0",
"reflect-metadata": "0.1.13",
Expand All @@ -67,9 +68,9 @@
"@types/cache-manager": "4.0.2",
"@types/cron": "2.0.1",
"@types/express": "4.17.17",
"@types/lodash": "4.14.194",
"@types/level": "^6.0.0",
"@types/levelup": "4.3.1",
"@types/lodash": "4.14.194",
"@types/lossless-json": "1.0.1",
"@types/memdown": "3.0.1",
"@types/node": "16.11.58",
Expand Down
87 changes: 44 additions & 43 deletions apps/playground-api/__tests__/modules/PlaygroundModule.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RegTestFoundationKeys } from '@defichain/jellyfish-network'
import { ConsortiumKey } from '../../src/ConsortiumKey'
// import { RegTestFoundationKeys } from '@defichain/jellyfish-network'
// import { ConsortiumKey } from '../../src/ConsortiumKey'
import { PlaygroundApiTesting } from '../../testing/PlaygroundApiTesting'

const pg = PlaygroundApiTesting.create()
Expand Down Expand Up @@ -63,46 +63,46 @@ it('should have gov set', async () => {
const gov = await testing.container.call('getgov', ['ATTRIBUTES'])
expect(gov).toStrictEqual({
ATTRIBUTES: {
'v0/consortium/1/members': {
'01': {
backingId: 'backing_address_btc_1_c',
mintLimit: 50,
mintLimitDaily: 5,
name: 'Waves HQ',
ownerAddress: ConsortiumKey.address,
status: 0
},
'02': {
backingId: 'backing_address_btc_1_br, backing_address_btc_2_br',
mintLimit: 50,
mintLimitDaily: 5,
name: 'Alexandria',
ownerAddress: RegTestFoundationKeys[RegTestFoundationKeys.length - 1].owner.address,
status: 0
}
},
'v0/consortium/2/members': {
'01': {
backingId: 'backing_address_eth_1_c',
mintLimit: 10,
mintLimitDaily: 5,
name: 'Waves HQ',
ownerAddress: ConsortiumKey.address,
status: 0
},
'02': {
backingId: 'backing_address_eth_1_br, backing_address_eth_2_br',
mintLimit: 10,
mintLimitDaily: 5,
name: 'Alexandria',
ownerAddress: RegTestFoundationKeys[RegTestFoundationKeys.length - 1].owner.address,
status: 0
}
},
'v0/consortium/1/mint_limit': '50',
'v0/consortium/1/mint_limit_daily': '5',
'v0/consortium/2/mint_limit': '20',
'v0/consortium/2/mint_limit_daily': '10',
// 'v0/consortium/1/members': {
// '01': {
// backingId: 'backing_address_btc_1_c',
// mintLimit: 50,
// mintLimitDaily: 5,
// name: 'Waves HQ',
// ownerAddress: ConsortiumKey.address,
// status: 0
// },
// '02': {
// backingId: 'backing_address_btc_1_br, backing_address_btc_2_br',
// mintLimit: 50,
// mintLimitDaily: 5,
// name: 'Alexandria',
// ownerAddress: RegTestFoundationKeys[RegTestFoundationKeys.length - 1].owner.address,
// status: 0
// }
// },
// 'v0/consortium/2/members': {
// '01': {
// backingId: 'backing_address_eth_1_c',
// mintLimit: 10,
// mintLimitDaily: 5,
// name: 'Waves HQ',
// ownerAddress: ConsortiumKey.address,
// status: 0
// },
// '02': {
// backingId: 'backing_address_eth_1_br, backing_address_eth_2_br',
// mintLimit: 10,
// mintLimitDaily: 5,
// name: 'Alexandria',
// ownerAddress: RegTestFoundationKeys[RegTestFoundationKeys.length - 1].owner.address,
// status: 0
// }
// },
// 'v0/consortium/1/mint_limit': '50',
// 'v0/consortium/1/mint_limit_daily': '5',
// 'v0/consortium/2/mint_limit': '20',
// 'v0/consortium/2/mint_limit_daily': '10',
'v0/live/economy/evm/block/fee_burnt': 0,
'v0/live/economy/evm/block/fee_burnt_max': 0,
'v0/live/economy/evm/block/fee_burnt_max_hash': expect.any(String),
Expand All @@ -118,7 +118,7 @@ it('should have gov set', async () => {
'v0/params/dfip2203/block_period': '20',
'v0/params/dfip2203/fee_pct': '0.05',
'v0/params/dfip2203/reward_pct': '0.05',
'v0/params/feature/consortium': 'true',
// 'v0/params/feature/consortium': 'true',
'v0/params/feature/gov': 'true',
'v0/token/0/fixed_interval_price_id': 'DFI/USD',
'v0/token/0/loan_collateral_enabled': 'true',
Expand Down Expand Up @@ -200,6 +200,7 @@ it('should have gov set', async () => {
'v0/token/18/loan_minting_enabled': 'true',
'v0/token/18/loan_minting_interest': '3',
'v0/params/feature/icx': 'true',
'v0/vaults/dusd-vault/enabled': 'true',
'v0/params/feature/evm': 'true',
'v0/transferdomain/dvm-evm/dat-enabled': 'true',
'v0/transferdomain/evm-dvm/dat-enabled': 'true',
Expand Down
99 changes: 51 additions & 48 deletions apps/playground-api/src/setups/setup.gov.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,55 +63,58 @@ export class SetupGov extends PlaygroundSetup<Record<string, any>> {
// Unloop mechanism for DUSD
'v0/token/14/loan_payback_collateral': 'true',

// Enable DUSD loop for loan
'v0/vaults/dusd-vault/enabled': 'true',

// On-chain governance
'v0/params/feature/gov': 'true',

// Enable consortium
'v0/params/feature/consortium': 'true',

// Set a consortium global limit for dBTC
'v0/consortium/1/mint_limit': '50',
'v0/consortium/1/mint_limit_daily': '5',

// Set a consortium member for dBTC
'v0/consortium/1/members': {
'01': {
name: 'Waves HQ',
ownerAddress: this.consortiumOwnerAddress1,
backingId: 'backing_address_btc_1_c',
mintLimitDaily: '5.00000000',
mintLimit: '50.00000000'
},
'02': {
name: 'Alexandria',
ownerAddress: this.consortiumOwnerAddress2,
backingId: 'backing_address_btc_1_br, backing_address_btc_2_br',
mintLimitDaily: '5.00000000',
mintLimit: '50.00000000'
}
},

// Consortium global limit for dETH
'v0/consortium/2/mint_limit': '20',
'v0/consortium/2/mint_limit_daily': '10',

// Set a consortium member for dETH
'v0/consortium/2/members': {
'01': {
name: 'Waves HQ',
ownerAddress: this.consortiumOwnerAddress1,
backingId: 'backing_address_eth_1_c',
mintLimitDaily: '5.00000000',
mintLimit: '10.00000000'
},
'02': {
name: 'Alexandria',
ownerAddress: this.consortiumOwnerAddress2,
backingId: 'backing_address_eth_1_br, backing_address_eth_2_br',
mintLimitDaily: '5.00000000',
mintLimit: '10.00000000'
}
}
'v0/params/feature/gov': 'true'

// // Enable consortium
// 'v0/params/feature/consortium': 'true'

// // Set a consortium global limit for dBTC
// 'v0/consortium/1/mint_limit': '50',
// 'v0/consortium/1/mint_limit_daily': '5',

// // Set a consortium member for dBTC
// 'v0/consortium/1/members': {
// '01': {
// name: 'Waves HQ',
// ownerAddress: this.consortiumOwnerAddress1,
// backingId: 'backing_address_btc_1_c',
// mintLimitDaily: '5.00000000',
// mintLimit: '50.00000000'
// },
// '02': {
// name: 'Alexandria',
// ownerAddress: this.consortiumOwnerAddress2,
// backingId: 'backing_address_btc_1_br, backing_address_btc_2_br',
// mintLimitDaily: '5.00000000',
// mintLimit: '50.00000000'
// }
// },

// // Consortium global limit for dETH
// 'v0/consortium/2/mint_limit': '20',
// 'v0/consortium/2/mint_limit_daily': '10',

// // Set a consortium member for dETH
// 'v0/consortium/2/members': {
// '01': {
// name: 'Waves HQ',
// ownerAddress: this.consortiumOwnerAddress1,
// backingId: 'backing_address_eth_1_c',
// mintLimitDaily: '5.00000000',
// mintLimit: '10.00000000'
// },
// '02': {
// name: 'Alexandria',
// ownerAddress: this.consortiumOwnerAddress2,
// backingId: 'backing_address_eth_1_br, backing_address_eth_2_br',
// mintLimitDaily: '5.00000000',
// mintLimit: '10.00000000'
// }
// }
}
}
]
Expand Down
4 changes: 2 additions & 2 deletions apps/whale-api/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: "3.7"

services:
defi-blockchain:
image: defi/defichain:4.0.0-beta13
image: defi/defichain:4.0.9

ports:
- "19554:19554"
Expand Down Expand Up @@ -42,7 +42,7 @@ services:
-fortcanningepilogueheight=15
-grandcentralheight=16
-grandcentralepilogueheight=17
-nextnetworkupgradeheight=18
-metachainheight=18
-regtest-skip-loan-collateral-validation
-regtest-minttoken-simulate-mainnet=0
Expand Down
6 changes: 4 additions & 2 deletions apps/whale-api/src/app.configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ export function AppConfiguration (): any {
level: {
location: process.env.WHALE_DATABASE_LEVEL_LOCATION
}
}
},
debug: process.env.WHALE_DEBUG
}
}

Expand All @@ -34,6 +35,7 @@ export function ENV_VALIDATION_SCHEMA (): any {
WHALE_NETWORK: Joi.string().valid('mainnet', 'testnet', 'regtest', 'devnet', 'changi').default('regtest'),
WHALE_DEFID_URL: Joi.string().optional(),
WHALE_DATABASE_PROVIDER: Joi.string().optional(),
WHALE_DATABASE_LEVEL_LOCATION: Joi.string().optional()
WHALE_DATABASE_LEVEL_LOCATION: Joi.string().optional(),
WHALE_DEBUG: Joi.bool().optional()
})
}
2 changes: 2 additions & 0 deletions apps/whale-api/src/module.api/_module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { CacheModule, Global, Module } from '@nestjs/common'
import { RpcController } from './rpc.controller'
import { ActuatorController } from './actuator.controller'
import { TransactionController } from './transaction.controller'
import { DebugController } from './debug.controller'
import { ApiValidationPipe } from './pipes/api.validation.pipe'
import { AddressController } from './address.controller'
import { PoolPairController } from './poolpair.controller'
Expand Down Expand Up @@ -62,6 +63,7 @@ import { GovernanceService } from './governance.service'
LoanController,
LegacyController,
ConsortiumController,
DebugController,
GovernanceController
],
providers: [
Expand Down
13 changes: 11 additions & 2 deletions apps/whale-api/src/module.api/address.controller.e2e.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { Testing } from '@defichain/jellyfish-testing'
import { ForbiddenException } from '@nestjs/common'
import BigNumber from 'bignumber.js'
import { RegTestFoundationKeys } from '@defichain/jellyfish-network'
import { RpcApiError } from '@defichain/jellyfish-api-core/dist/index'

const container = new MasterNodeRegTestContainer()
let app: NestFastifyApplication
Expand Down Expand Up @@ -1077,7 +1078,15 @@ describe('listTokens', () => {
})

it('should return empty and page undefined while listTokens with invalid address', async () => {
const tokens = await controller.listTokens('invalid', { size: 30 })
expect(tokens).toStrictEqual(expect.objectContaining({ data: [], page: undefined }))
try {
await controller.listTokens('invalid', { size: 30 })
} catch (err: any) {
expect(err).toBeInstanceOf(RpcApiError)
expect(err.payload).toStrictEqual({
code: -5,
message: 'Invalid owner address',
method: 'getaccount'
})
}
})
})
13 changes: 11 additions & 2 deletions apps/whale-api/src/module.api/address.controller.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { Testing } from '@defichain/jellyfish-testing'
import BigNumber from 'bignumber.js'
import { createTestingApp, stopTestingApp } from '../e2e.module'
import { NestFastifyApplication } from '@nestjs/platform-fastify'
import { RpcApiError } from '@defichain/jellyfish-api-core/dist/index'

const container = new MasterNodeRegTestContainer()
const testing = Testing.create(container)
Expand Down Expand Up @@ -175,7 +176,15 @@ describe('listTokens', () => {
})

it('should return empty and page undefined while listTokens with invalid address', async () => {
const tokens = await controller.listTokens('invalid', { size: 30 })
expect(tokens).toStrictEqual(expect.objectContaining({ data: [], page: undefined }))
try {
await controller.listTokens('invalid', { size: 30 })
} catch (err: any) {
expect(err).toBeInstanceOf(RpcApiError)
expect(err.payload).toStrictEqual({
code: -5,
message: 'Invalid owner address',
method: 'getaccount'
})
}
})
})
4 changes: 2 additions & 2 deletions apps/whale-api/src/module.api/consortium.controller.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ async function setup (): Promise<void> {
}])
}

describe('getAssetBreakdown', () => {
describe.skip('getAssetBreakdown', () => {
it('should return an empty list if theres no consortium members or tokens initialized', async () => {
const info = await controller.getAssetBreakdown()
expect(info).toStrictEqual([])
Expand Down Expand Up @@ -188,7 +188,7 @@ describe('getAssetBreakdown', () => {
})
})

describe('getMemberStats', () => {
describe.skip('getMemberStats', () => {
it('should throw an error if given consortium member id does not exists', async () => {
await setup()

Expand Down
Loading

0 comments on commit 98de414

Please sign in to comment.