diff --git a/contracts/regtest-boot.clar b/contracts/regtest-boot.clar index d97aa97..1cebead 100644 --- a/contracts/regtest-boot.clar +++ b/contracts/regtest-boot.clar @@ -9,7 +9,7 @@ {extension: .lqstx-mint-endpoint, enabled: false} {extension: .lqstx-mint-endpoint-v1-02, enabled: true} {extension: .lisa-rebase-v1-02, enabled: true} - {extension: .rebase-1-v1-02, enabled: true} + {extension: .rebase-mock, enabled: true} {extension: .mock-strategy-manager, enabled: true} {extension: .lqstx-vault, enabled: true} {extension: .operators, enabled: true} diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index 33b7227..9dcdf2d 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -54,9 +54,6 @@ plan: emulated-sender: SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE path: "./.cache/requirements/SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard.clar" clarity-version: 1 - epoch: "2.0" - - id: 1 - transactions: - emulated-contract-publish: contract-name: trait-sip-010 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -102,8 +99,8 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts_modules/alex_v1/traits/trait-vault.clar clarity-version: 1 - epoch: "2.05" - - id: 2 + epoch: "2.1" + - id: 1 transactions: - emulated-contract-publish: contract-name: pox-pools-1-cycle-v2 @@ -231,7 +228,7 @@ plan: path: contracts/strategies/public-pools/xverse-member.clar clarity-version: 2 epoch: "2.4" - - id: 3 + - id: 2 transactions: - emulated-contract-publish: contract-name: xverse-member10 @@ -359,7 +356,7 @@ plan: path: contracts/rules/rebase-1.clar clarity-version: 2 epoch: "2.4" - - id: 4 + - id: 3 transactions: - emulated-contract-publish: contract-name: rebase-mock diff --git a/tests/lqstx-mint-endpoint.test.ts b/tests/lqstx-mint-endpoint.test.ts index 26830a2..44d3c65 100644 --- a/tests/lqstx-mint-endpoint.test.ts +++ b/tests/lqstx-mint-endpoint.test.ts @@ -1,8 +1,7 @@ - // SPDX-License-Identifier: BUSL-1.1 import { tx } from '@hirosystems/clarinet-sdk'; -import { Cl, ResponseOkCV, UIntCV } from '@stacks/transactions'; +import { Cl, ResponseOkCV, UIntCV, cvToString } from '@stacks/transactions'; import { describe, expect, it } from 'vitest'; const accounts = simnet.getAccounts(); @@ -64,6 +63,23 @@ const getRewardCycle = () => { ).value.value; }; +const getRequestCycle = () => { + return ( + simnet.callReadOnlyFn( + contracts.endpoint, + 'get-request-cycle', + [Cl.uint(simnet.blockHeight)], + user + ).result as ResponseOkCV + ).value.value; +}; + +const getRequestCutoff = () => { + return ( + simnet.callReadOnlyFn(contracts.endpoint, 'get-request-cutoff', [], user) + .result as ResponseOkCV + ).value; +}; const getBlocksToStartOfCycle = (cycle: bigint) => { return ( Number( @@ -356,4 +372,24 @@ describe(contracts.endpoint, () => { expect(responses[0].result).toBeErr(Cl.uint(1001)); expect(responses[1].result).toBeOk(Cl.bool(true)); }); + + it('request cycle respects cutoff', () => { + expect(getRequestCycle()).toBe(0n); + // cycle length - prepare cycle length - cutoff - blocks for deployment + simnet.mineEmptyBlocks(1050 - 50 - 100 - 4 - 1); + // we are at the end of request cycle 0 + expect(simnet.blockHeight).toBe(899); + expect(getRequestCycle()).toBe(0n); + + simnet.mineEmptyBlocks(1050); // cycle length + // we are at end of request cycle 1 + expect(simnet.blockHeight).toBe(1949); + expect(getRequestCycle()).toBe(1n); + + simnet.mineEmptyBlocks(1); + // we are at beginning of request cycle 2 + // that is 1050 + 1050 - 50 - 100 + expect(simnet.blockHeight).toBe(1950); + expect(getRequestCycle()).toBe(2n); + }); });