diff --git a/apps/playground-api/__tests__/modules/PlaygroundModule.test.ts b/apps/playground-api/__tests__/modules/PlaygroundModule.test.ts index 3132381183..0cc8045067 100644 --- a/apps/playground-api/__tests__/modules/PlaygroundModule.test.ts +++ b/apps/playground-api/__tests__/modules/PlaygroundModule.test.ts @@ -183,7 +183,8 @@ it('should have gov set', async () => { 'v0/token/17/fixed_interval_price_id': 'TR50/USD', 'v0/token/17/loan_minting_enabled': 'true', 'v0/token/17/loan_minting_interest': '3', - 'v0/params/feature/evm': 'true' + 'v0/params/feature/evm': 'true', + 'v0/params/feature/icx': 'true' }) }) diff --git a/apps/playground-api/src/setups/setup.gov.ts b/apps/playground-api/src/setups/setup.gov.ts index bbe55d0e43..7f1fe98f90 100644 --- a/apps/playground-api/src/setups/setup.gov.ts +++ b/apps/playground-api/src/setups/setup.gov.ts @@ -159,5 +159,12 @@ export class SetupGov extends PlaygroundSetup> { } }) await this.generate(1) + + await this.client.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) + await this.generate(1) } } diff --git a/apps/whale-api/docker-compose.yml b/apps/whale-api/docker-compose.yml index 62c57e7a76..d64b2e7764 100644 --- a/apps/whale-api/docker-compose.yml +++ b/apps/whale-api/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.7' services: defi-blockchain: - image: defi/defichain:master-b6fc51097 + image: defi/defichain:master-c14a2ba13 ports: - "19554:19554" command: > diff --git a/packages/jellyfish-api-core/__tests__/category/account/getTokenBalances.test.ts b/packages/jellyfish-api-core/__tests__/category/account/getTokenBalances.test.ts index 3bdbca1d8d..eb1d3f4a38 100644 --- a/packages/jellyfish-api-core/__tests__/category/account/getTokenBalances.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/account/getTokenBalances.test.ts @@ -101,7 +101,7 @@ describe('Account', () => { } }) - it('should getTokenBlaances with including eth', async () => { + it('should getTokenBalances with including eth', async () => { await client.masternode.setGov({ ATTRIBUTES: { 'v0/params/feature/evm': 'true' diff --git a/packages/jellyfish-api-core/__tests__/category/account/transferDomain.test.ts b/packages/jellyfish-api-core/__tests__/category/account/transferDomain.test.ts index 02798daa05..82433437de 100644 --- a/packages/jellyfish-api-core/__tests__/category/account/transferDomain.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/account/transferDomain.test.ts @@ -118,7 +118,7 @@ describe('TransferDomain', () => { } ]) await expect(promise).rejects.toThrow(RpcApiError) - await expect(promise).rejects.toThrow('Src address must not be an ETH address in case of "DVM" domain') + await expect(promise).rejects.toThrow('Src address must be a legacy or Bech32 address in case of "DVM" domain') }) it('(evm -> dvm) should fail if source address and source domain are not match', async () => { @@ -175,7 +175,7 @@ describe('TransferDomain', () => { } ]) await expect(promise).rejects.toThrow(RpcApiError) - await expect(promise).rejects.toThrow('Dst address must not be an ETH address in case of "DVM" domain') + await expect(promise).rejects.toThrow('Dst address must be a legacy or Bech32 address in case of "DVM" domain') }) it('(dvm -> evm) should fail if address is invalid', async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/claimDFCHTLC.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/claimDFCHTLC.test.ts index b4d7d6b276..b6eac00cad 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/claimDFCHTLC.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/claimDFCHTLC.test.ts @@ -29,6 +29,7 @@ describe('ICXOrderBook.claimDFCHTLC', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/closeOffer.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/closeOffer.test.ts index 0ee7e1d060..c58f778ff0 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/closeOffer.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/closeOffer.test.ts @@ -30,6 +30,7 @@ describe('ICXOrderBook.closeOffer', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/closeOrder.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/closeOrder.test.ts index 518df02501..d52f96bbd1 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/closeOrder.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/closeOrder.test.ts @@ -39,6 +39,7 @@ describe('ICXOrderBook.closeOrder', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/complexTests.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/complexTests.test.ts index 8e992bfc9e..5d1f071e92 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/complexTests.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/complexTests.test.ts @@ -46,6 +46,7 @@ describe('ICX Complex test scenarios', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/createOrder.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/createOrder.test.ts index 6383bce922..62f6289b29 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/createOrder.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/createOrder.test.ts @@ -25,6 +25,7 @@ describe('ICXOrderBook.createOrder', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/getOrder.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/getOrder.test.ts index b8c73fe231..a80f64363b 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/getOrder.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/getOrder.test.ts @@ -39,6 +39,7 @@ describe('ICXOrderBook.getOrder', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/icx_setup.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/icx_setup.ts index a975f841e1..906a0ef962 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/icx_setup.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/icx_setup.ts @@ -67,6 +67,15 @@ export class ICXSetup { await createToken(this.container, symbolBTC, createTokenOptions) } + async setupICXFlag (): Promise { + await this.client.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) + await this.container.generate(1) + } + async initializeTokensIds (): Promise { let tokenInfo = await this.container.call('gettoken', [symbolBTC]) idBTC = Object.keys(tokenInfo)[0] diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/listHTLCs.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/listHTLCs.test.ts index e32d125f14..265072ba96 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/listHTLCs.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/listHTLCs.test.ts @@ -37,6 +37,7 @@ describe('ICXOrderBook.listHTLCs', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/listOrders.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/listOrders.test.ts index 73c4696f91..83e2348ddb 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/listOrders.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/listOrders.test.ts @@ -39,6 +39,7 @@ describe('ICXOrderBook.listOrders', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/makeOffer.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/makeOffer.test.ts index eda4813b7e..15a11a9434 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/makeOffer.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/makeOffer.test.ts @@ -39,6 +39,7 @@ describe('ICXOrderBook.makeOffer', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/submitDFCHTLC.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/submitDFCHTLC.test.ts index 19749be42f..fd53bd5640 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/submitDFCHTLC.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/submitDFCHTLC.test.ts @@ -37,6 +37,7 @@ describe('ICXOrderBook.submitDFCHTLC', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/icxorderbook/submitExtHTLC.test.ts b/packages/jellyfish-api-core/__tests__/category/icxorderbook/submitExtHTLC.test.ts index d09645d983..174b97c5e3 100644 --- a/packages/jellyfish-api-core/__tests__/category/icxorderbook/submitExtHTLC.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/icxorderbook/submitExtHTLC.test.ts @@ -37,6 +37,7 @@ describe('ICXOrderBook.submitExtHTLC', () => { await icxSetup.createBTCDFIPool() await icxSetup.addLiquidityToBTCDFIPool(1, 100) await icxSetup.setTakerFee(0.001) + await icxSetup.setupICXFlag() }) afterAll(async () => { diff --git a/packages/jellyfish-api-core/__tests__/category/masternode/updatemasternode.test.ts b/packages/jellyfish-api-core/__tests__/category/masternode/updatemasternode.test.ts index 60c4b625a8..87165044c6 100644 --- a/packages/jellyfish-api-core/__tests__/category/masternode/updatemasternode.test.ts +++ b/packages/jellyfish-api-core/__tests__/category/masternode/updatemasternode.test.ts @@ -289,7 +289,7 @@ describe('Update Masternode', () => { const ownerAddress = await client.wallet.getNewAddress() const masternodeId = await client.masternode.createMasternode(ownerAddress) - await container.generate(1) + await container.generate(20) { const ownerAddressNew = await client.wallet.getNewAddress('', AddressType.P2SH_SEGWIT) @@ -315,7 +315,7 @@ describe('Update Masternode', () => { rewardAddress }) await expect(promise).rejects.toThrow(RpcApiError) - await expect(promise).rejects.toThrow(`rewardAddress (${rewardAddress}) does not refer to a P2PKH or P2WPKH address`) + await expect(promise).rejects.toThrow('Reward address must be P2PKH or P2WPKH type\', code: -32600, method: updatemasternode') } }) @@ -332,7 +332,7 @@ describe('Update Masternode', () => { }) await expect(promise).rejects.toThrow(RpcApiError) - await expect(promise).rejects.toThrow(`RpcApiError: 'ownerAddress (${invalidAddress}) does not refer to a P2PKH or P2WPKH address', code: -8, method: updatemasternode`) + await expect(promise).rejects.toThrow(`ownerAddress (${invalidAddress}) does not refer to a P2PKH or P2WPKH address`) } { @@ -352,7 +352,7 @@ describe('Update Masternode', () => { }) await expect(promise).rejects.toThrow(RpcApiError) - await expect(promise).rejects.toThrow(`RpcApiError: 'rewardAddress (${invalidAddress}) does not refer to a P2PKH or P2WPKH address', code: -8, method: updatemasternode`) + await expect(promise).rejects.toThrow(`rewardAddress (${invalidAddress}) does not refer to a P2SH, P2PKH or P2WPKH address`) } }) diff --git a/packages/jellyfish-testing/__tests__/icxorderbook.test.ts b/packages/jellyfish-testing/__tests__/icxorderbook.test.ts index 6d49fa95a7..506a743355 100644 --- a/packages/jellyfish-testing/__tests__/icxorderbook.test.ts +++ b/packages/jellyfish-testing/__tests__/icxorderbook.test.ts @@ -11,7 +11,11 @@ describe('ICX', () => { beforeAll(async () => { await testing.container.start() await testing.container.waitForWalletCoinbaseMaturity() - + await testing.rpc.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) await testing.icxorderbook.createAccounts() await testing.rpc.account.utxosToAccount({ [testing.icxorderbook.accountDFI]: `${500}@${testing.icxorderbook.symbolDFI}` }) await testing.rpc.account.utxosToAccount({ [testing.icxorderbook.accountBTC]: `${10}@${testing.icxorderbook.symbolDFI}` }) // for fee diff --git a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_claim_dfc_htlc.test.ts b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_claim_dfc_htlc.test.ts index 4665ff2376..34a799b80e 100644 --- a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_claim_dfc_htlc.test.ts +++ b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_claim_dfc_htlc.test.ts @@ -18,6 +18,11 @@ describe('claim DFC HTLC', () => { beforeAll(async () => { await testing.container.start() await testing.container.waitForWalletCoinbaseMaturity() + await testing.rpc.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) providers = await getProviders(testing.container) providers.setEllipticPair(WIF.asEllipticPair(GenesisKeys[0].owner.privKey)) // set it to container default diff --git a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_close_offer.test.ts b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_close_offer.test.ts index 3f24a6962b..4a3e479726 100644 --- a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_close_offer.test.ts +++ b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_close_offer.test.ts @@ -16,6 +16,11 @@ describe('close ICX offer', () => { beforeAll(async () => { await testing.container.start() await testing.container.waitForWalletCoinbaseMaturity() + await testing.rpc.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) providers = await getProviders(testing.container) providers.setEllipticPair(WIF.asEllipticPair(GenesisKeys[0].owner.privKey)) // set it to container default diff --git a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_close_order.test.ts b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_close_order.test.ts index 2db3d74ded..938d343550 100644 --- a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_close_order.test.ts +++ b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_close_order.test.ts @@ -16,6 +16,11 @@ describe('close ICX order', () => { beforeAll(async () => { await testing.container.start() await testing.container.waitForWalletCoinbaseMaturity() + await testing.rpc.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) providers = await getProviders(testing.container) providers.setEllipticPair(WIF.asEllipticPair(GenesisKeys[0].owner.privKey)) // set it to container default diff --git a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_create_order.test.ts b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_create_order.test.ts index 8239f49757..4dad4a8dea 100644 --- a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_create_order.test.ts +++ b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_create_order.test.ts @@ -16,6 +16,11 @@ describe('create ICX order', () => { beforeAll(async () => { await testing.container.start() await testing.container.waitForWalletCoinbaseMaturity() + await testing.rpc.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) providers = await getProviders(testing.container) providers.setEllipticPair(WIF.asEllipticPair(GenesisKeys[0].owner.privKey)) // set it to testing.container default diff --git a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_make_offer.test.ts b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_make_offer.test.ts index 3d9c481091..2e56ebcc3e 100644 --- a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_make_offer.test.ts +++ b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_icx_make_offer.test.ts @@ -16,6 +16,11 @@ describe('make ICX offer', () => { beforeAll(async () => { await testing.container.start() await testing.container.waitForWalletCoinbaseMaturity() + await testing.rpc.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) providers = await getProviders(testing.container) providers.setEllipticPair(WIF.asEllipticPair(GenesisKeys[0].owner.privKey)) // set it to testing.container default diff --git a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_submit_dfc_htlc.test.ts b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_submit_dfc_htlc.test.ts index b3936502a4..8baba256bf 100644 --- a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_submit_dfc_htlc.test.ts +++ b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_submit_dfc_htlc.test.ts @@ -18,6 +18,11 @@ describe('submit DFC HTLC', () => { beforeAll(async () => { await testing.container.start() await testing.container.waitForWalletCoinbaseMaturity() + await testing.rpc.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) providers = await getProviders(testing.container) providers.setEllipticPair(WIF.asEllipticPair(GenesisKeys[0].owner.privKey)) // set it to container default diff --git a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_submit_ext_htlc.test.ts b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_submit_ext_htlc.test.ts index cf43738b44..49f5aa871e 100644 --- a/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_submit_ext_htlc.test.ts +++ b/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_submit_ext_htlc.test.ts @@ -18,6 +18,11 @@ describe('submit EXT HTLC', () => { beforeAll(async () => { await testing.container.start() await testing.container.waitForWalletCoinbaseMaturity() + await testing.rpc.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) providers = await getProviders(testing.container) providers.setEllipticPair(WIF.asEllipticPair(GenesisKeys[0].owner.privKey)) // set it to container default diff --git a/packages/jellyfish-transaction-builder/__tests__/txn/varint_gt_128.test.ts b/packages/jellyfish-transaction-builder/__tests__/txn/varint_gt_128.test.ts index 8270096bf3..405776ac0d 100644 --- a/packages/jellyfish-transaction-builder/__tests__/txn/varint_gt_128.test.ts +++ b/packages/jellyfish-transaction-builder/__tests__/txn/varint_gt_128.test.ts @@ -110,6 +110,11 @@ beforeEach(async () => { // Prep 1000 DFI Token for testing await testing.token.dfi({ amount: 1000 }) + await testing.rpc.masternode.setGov({ + ATTRIBUTES: { + 'v0/params/feature/icx': 'true' + } + }) await testing.generate(1) }) diff --git a/packages/testcontainers/src/containers/DeFiDContainer.ts b/packages/testcontainers/src/containers/DeFiDContainer.ts index 6072855b4f..fc0a972fc8 100644 --- a/packages/testcontainers/src/containers/DeFiDContainer.ts +++ b/packages/testcontainers/src/containers/DeFiDContainer.ts @@ -36,7 +36,7 @@ export abstract class DeFiDContainer extends DockerContainer { if (process?.env?.DEFICHAIN_DOCKER_IMAGE !== undefined) { return process.env.DEFICHAIN_DOCKER_IMAGE } - return 'defi/defichain:master-b6fc51097' // renovate.json regexManagers + return 'defi/defichain:master-c14a2ba13' // renovate.json regexManagers } public static readonly DefaultStartOptions = { diff --git a/packages/testcontainers/src/containers/NativeChainContainer.ts b/packages/testcontainers/src/containers/NativeChainContainer.ts index 80c025a91e..acc17e791e 100644 --- a/packages/testcontainers/src/containers/NativeChainContainer.ts +++ b/packages/testcontainers/src/containers/NativeChainContainer.ts @@ -29,7 +29,7 @@ export class NativeChainContainer extends GenericContainer { if (process?.env?.DEFICHAIN_DOCKER_IMAGE !== undefined) { return process.env.DEFICHAIN_DOCKER_IMAGE } - return 'defi/defichain:master-b6fc51097' // renovate.json regexManagers + return 'defi/defichain:master-c14a2ba13' // renovate.json regexManagers } public static readonly PREFIX = 'defichain-testcontainers-'