From 59bc1430cbbc361d049148ddc726d4886f5dece2 Mon Sep 17 00:00:00 2001 From: Emanuel Solis Date: Wed, 28 May 2025 18:59:25 -0400 Subject: [PATCH 1/3] Standardize zero address structure --- .act.env | 1 + 1 file changed, 1 insertion(+) create mode 100644 .act.env diff --git a/.act.env b/.act.env new file mode 100644 index 00000000..bbe8ed2a --- /dev/null +++ b/.act.env @@ -0,0 +1 @@ +COMPACT_INSTALLER_URL=https://github.com/midnightntwrk/compact/releases/latest/download/compact-installer.sh From 4368075a430b1dee64647c7d8b9dce18d66b9bea Mon Sep 17 00:00:00 2001 From: 0xisk Date: Wed, 11 Mar 2026 12:12:22 +0100 Subject: [PATCH 2/3] refactor: enhance the witnesses and mocks structure --- .../src/access/test/AccessControl.test.ts | 2 +- contracts/src/access/test/Ownable.test.ts | 2 +- contracts/src/access/test/ZOwnablePK.test.ts | 10 +-- .../AccessControlSimulator.ts | 10 +-- .../{simulators => mocks}/OwnableSimulator.ts | 10 +-- .../ZOwnablePKSimulator.ts | 31 +++++++-- .../AccessControl.mock.compact} | 2 +- .../Ownable.mock.compact} | 2 +- .../ZOwnablePK.mock.compact} | 2 +- .../witnesses/AccessControlWitnesses.ts | 6 -- .../src/access/witnesses/OwnableWitnesses.ts | 6 -- .../access/witnesses/ZOwnablePKWitnesses.ts | 68 ------------------- .../src/archive/test/ShieldedToken.test.ts | 4 +- .../ShieldedTokenSimulator.ts | 9 ++- .../ShieldedToken.mock.compact} | 2 +- contracts/src/archive/test/utils/address.ts | 2 +- .../witnesses/ShieldedTokenWitnesses.ts | 6 -- .../src/security/test/Initializable.test.ts | 2 +- contracts/src/security/test/Pausable.test.ts | 2 +- .../InitializableSimulator.ts | 10 +-- .../PausableSimulator.ts | 10 +-- .../Initializable.mock.compact} | 2 +- .../Pausable.mock.compact} | 2 +- .../witnesses/InitializableWitnesses.ts | 6 -- .../security/witnesses/PausableWitnesses.ts | 6 -- .../src/token/test/FungibleToken.test.ts | 2 +- contracts/src/token/test/MultiToken.test.ts | 4 +- .../FungibleTokenSimulator.ts | 10 +-- .../MultiTokenSimulator.ts | 10 +-- .../NonFungibleTokenSimulator.ts | 10 +-- .../FungibleToken.mock.compact} | 2 +- .../MultiToken.mock.compact} | 2 +- .../NonFungibleToken.mock.compact} | 2 +- .../src/token/test/nonFungibleToken.test.ts | 2 +- .../token/witnesses/FungibleTokenWitnesses.ts | 6 -- .../token/witnesses/MultiTokenWitnesses.ts | 6 -- .../witnesses/NonFungibleTokenWitnesses.ts | 6 -- .../{simulators => mocks}/UtilsSimulator.ts | 10 +-- .../Utils.mock.compact} | 2 +- contracts/src/utils/test/utils.test.ts | 2 +- .../src/utils/witnesses/UtilsWitnesses.ts | 6 -- 41 files changed, 96 insertions(+), 200 deletions(-) rename contracts/src/access/test/{simulators => mocks}/AccessControlSimulator.ts (95%) rename contracts/src/access/test/{simulators => mocks}/OwnableSimulator.ts (93%) rename contracts/src/access/test/{simulators => mocks}/ZOwnablePKSimulator.ts (86%) rename contracts/src/access/test/mocks/{MockAccessControl.compact => contracts/AccessControl.mock.compact} (97%) rename contracts/src/access/test/mocks/{MockOwnable.compact => contracts/Ownable.mock.compact} (97%) rename contracts/src/access/test/mocks/{MockZOwnablePK.compact => contracts/ZOwnablePK.mock.compact} (96%) delete mode 100644 contracts/src/access/witnesses/AccessControlWitnesses.ts delete mode 100644 contracts/src/access/witnesses/OwnableWitnesses.ts delete mode 100644 contracts/src/access/witnesses/ZOwnablePKWitnesses.ts rename contracts/src/archive/test/{simulators => mocks}/ShieldedTokenSimulator.ts (95%) rename contracts/src/archive/test/mocks/{MockShieldedToken.compact => contracts/ShieldedToken.mock.compact} (95%) delete mode 100644 contracts/src/archive/witnesses/ShieldedTokenWitnesses.ts rename contracts/src/security/test/{simulators => mocks}/InitializableSimulator.ts (88%) rename contracts/src/security/test/{simulators => mocks}/PausableSimulator.ts (89%) rename contracts/src/security/test/mocks/{MockInitializable.compact => contracts/Initializable.mock.compact} (87%) rename contracts/src/security/test/mocks/{MockPausable.compact => contracts/Pausable.mock.compact} (90%) delete mode 100644 contracts/src/security/witnesses/InitializableWitnesses.ts delete mode 100644 contracts/src/security/witnesses/PausableWitnesses.ts rename contracts/src/token/test/{simulators => mocks}/FungibleTokenSimulator.ts (97%) rename contracts/src/token/test/{simulators => mocks}/MultiTokenSimulator.ts (97%) rename contracts/src/token/test/{simulators => mocks}/NonFungibleTokenSimulator.ts (98%) rename contracts/src/token/test/mocks/{MockFungibleToken.compact => contracts/FungibleToken.mock.compact} (98%) rename contracts/src/token/test/mocks/{MockMultiToken.compact => contracts/MultiToken.mock.compact} (98%) rename contracts/src/token/test/mocks/{MockNonFungibleToken.compact => contracts/NonFungibleToken.mock.compact} (98%) delete mode 100644 contracts/src/token/witnesses/FungibleTokenWitnesses.ts delete mode 100644 contracts/src/token/witnesses/MultiTokenWitnesses.ts delete mode 100644 contracts/src/token/witnesses/NonFungibleTokenWitnesses.ts rename contracts/src/utils/test/{simulators => mocks}/UtilsSimulator.ts (93%) rename contracts/src/utils/test/mocks/{MockUtils.compact => contracts/Utils.mock.compact} (95%) delete mode 100644 contracts/src/utils/witnesses/UtilsWitnesses.ts diff --git a/contracts/src/access/test/AccessControl.test.ts b/contracts/src/access/test/AccessControl.test.ts index d31040a0..5c3d116f 100644 --- a/contracts/src/access/test/AccessControl.test.ts +++ b/contracts/src/access/test/AccessControl.test.ts @@ -1,7 +1,7 @@ import { convertFieldToBytes } from '@midnight-ntwrk/compact-runtime'; import { beforeEach, describe, expect, it } from 'vitest'; import * as utils from '#test-utils/address.js'; -import { AccessControlSimulator } from './simulators/AccessControlSimulator.js'; +import { AccessControlSimulator } from './mocks/AccessControlSimulator.js'; // PKs const [OPERATOR_1, Z_OPERATOR_1] = utils.generateEitherPubKeyPair('OPERATOR_1'); diff --git a/contracts/src/access/test/Ownable.test.ts b/contracts/src/access/test/Ownable.test.ts index af2716a0..b7ad9493 100644 --- a/contracts/src/access/test/Ownable.test.ts +++ b/contracts/src/access/test/Ownable.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it } from 'vitest'; import * as utils from '#test-utils/address.js'; -import { OwnableSimulator } from './simulators/OwnableSimulator.js'; +import { OwnableSimulator } from './mocks/OwnableSimulator.js'; // PKs const [OWNER, Z_OWNER] = utils.generateEitherPubKeyPair('OWNER'); diff --git a/contracts/src/access/test/ZOwnablePK.test.ts b/contracts/src/access/test/ZOwnablePK.test.ts index 2dcb62cd..f7fd05ca 100644 --- a/contracts/src/access/test/ZOwnablePK.test.ts +++ b/contracts/src/access/test/ZOwnablePK.test.ts @@ -6,9 +6,9 @@ import { } from '@midnight-ntwrk/compact-runtime'; import { beforeEach, describe, expect, it } from 'vitest'; import * as utils from '#test-utils/address.js'; -import type { ZswapCoinPublicKey } from '../../../artifacts/MockOwnable/contract/index.js'; -import { ZOwnablePKPrivateState } from '../witnesses/ZOwnablePKWitnesses.js'; -import { ZOwnablePKSimulator } from './simulators/ZOwnablePKSimulator.js'; +import type { ZswapCoinPublicKey } from '../../../artifacts/Ownable.mock/contract/index.js'; +import { generate as generateZOwnablePKState } from './mocks/ZOwnablePKSimulator.js'; +import { ZOwnablePKSimulator } from './mocks/ZOwnablePKSimulator.js'; // PKs const [OWNER, Z_OWNER] = utils.generatePubKeyPair('OWNER'); @@ -139,7 +139,7 @@ describe('ZOwnablePK', () => { describe('after initialization', () => { beforeEach(() => { // Create private state object and generate nonce - const PS = ZOwnablePKPrivateState.generate(); + const PS = generateZOwnablePKState(); // Bind nonce for convenience secretNonce = PS.secretNonce; // Prepare owner ID with gen nonce @@ -171,7 +171,7 @@ describe('ZOwnablePK', () => { beforeEach(() => { // Prepare new owner commitment - newOwnerNonce = ZOwnablePKPrivateState.generate().secretNonce; + newOwnerNonce = generateZOwnablePKState().secretNonce; newCounter = INIT_COUNTER + 1n; newIdHash = createIdHash(Z_NEW_OWNER, newOwnerNonce); newOwnerCommitment = buildCommitment( diff --git a/contracts/src/access/test/simulators/AccessControlSimulator.ts b/contracts/src/access/test/mocks/AccessControlSimulator.ts similarity index 95% rename from contracts/src/access/test/simulators/AccessControlSimulator.ts rename to contracts/src/access/test/mocks/AccessControlSimulator.ts index 8d8f06e8..f61d70fc 100644 --- a/contracts/src/access/test/simulators/AccessControlSimulator.ts +++ b/contracts/src/access/test/mocks/AccessControlSimulator.ts @@ -8,11 +8,11 @@ import { ledger, Contract as MockAccessControl, type ZswapCoinPublicKey, -} from '../../../../artifacts/MockAccessControl/contract/index.js'; -import { - AccessControlPrivateState, - AccessControlWitnesses, -} from '../../witnesses/AccessControlWitnesses.js'; +} from '../../../../artifacts/AccessControl.mock/contract/index.js'; + +type AccessControlPrivateState = Record; +const AccessControlPrivateState: AccessControlPrivateState = {}; +const AccessControlWitnesses = () => ({}); /** * Type constructor args diff --git a/contracts/src/access/test/simulators/OwnableSimulator.ts b/contracts/src/access/test/mocks/OwnableSimulator.ts similarity index 93% rename from contracts/src/access/test/simulators/OwnableSimulator.ts rename to contracts/src/access/test/mocks/OwnableSimulator.ts index a7bfb447..03e671df 100644 --- a/contracts/src/access/test/simulators/OwnableSimulator.ts +++ b/contracts/src/access/test/mocks/OwnableSimulator.ts @@ -8,11 +8,11 @@ import { ledger, Contract as MockOwnable, type ZswapCoinPublicKey, -} from '../../../../artifacts/MockOwnable/contract/index.js'; -import { - OwnablePrivateState, - OwnableWitnesses, -} from '../../witnesses/OwnableWitnesses.js'; +} from '../../../../artifacts/Ownable.mock/contract/index.js'; + +type OwnablePrivateState = Record; +const OwnablePrivateState: OwnablePrivateState = {}; +const OwnableWitnesses = () => ({}); /** * Type constructor args diff --git a/contracts/src/access/test/simulators/ZOwnablePKSimulator.ts b/contracts/src/access/test/mocks/ZOwnablePKSimulator.ts similarity index 86% rename from contracts/src/access/test/simulators/ZOwnablePKSimulator.ts rename to contracts/src/access/test/mocks/ZOwnablePKSimulator.ts index 5dd24cf9..36042682 100644 --- a/contracts/src/access/test/simulators/ZOwnablePKSimulator.ts +++ b/contracts/src/access/test/mocks/ZOwnablePKSimulator.ts @@ -8,11 +8,30 @@ import { ledger, Contract as MockZOwnablePK, type ZswapCoinPublicKey, -} from '../../../../artifacts/MockZOwnablePK/contract/index.js'; -import { - ZOwnablePKPrivateState, - ZOwnablePKWitnesses, -} from '../../witnesses/ZOwnablePKWitnesses.js'; +} from '../../../../artifacts/ZOwnablePK.mock/contract/index.js'; +import { getRandomValues } from 'node:crypto'; +import type { WitnessContext } from '@midnight-ntwrk/compact-runtime'; +import type { Ledger } from '../../../../artifacts/ZOwnablePK.mock/contract/index.js'; + +export type ZOwnablePKPrivateState = { + secretNonce: Buffer; +}; + +export const generate = (): ZOwnablePKPrivateState => ({ + secretNonce: getRandomValues(Buffer.alloc(32)), +}); + +export const withNonce = (nonce: Buffer): ZOwnablePKPrivateState => ({ + secretNonce: nonce, +}); + +const ZOwnablePKWitnesses = () => ({ + wit_secretNonce( + context: WitnessContext, + ): [ZOwnablePKPrivateState, Uint8Array] { + return [context.privateState, context.privateState.secretNonce]; + }, +}); /** * Type constructor args @@ -42,7 +61,7 @@ const ZOwnablePKSimulatorBase: any = createSimulator< >({ contractFactory: (witnesses) => new MockZOwnablePK(witnesses), - defaultPrivateState: () => ZOwnablePKPrivateState.generate(), + defaultPrivateState: () => generate(), contractArgs: (owner, instanceSalt, isInit) => { return [owner, instanceSalt, isInit]; }, diff --git a/contracts/src/access/test/mocks/MockAccessControl.compact b/contracts/src/access/test/mocks/contracts/AccessControl.mock.compact similarity index 97% rename from contracts/src/access/test/mocks/MockAccessControl.compact rename to contracts/src/access/test/mocks/contracts/AccessControl.mock.compact index 273121cc..4e1e91d6 100644 --- a/contracts/src/access/test/mocks/MockAccessControl.compact +++ b/contracts/src/access/test/mocks/contracts/AccessControl.mock.compact @@ -4,7 +4,7 @@ pragma language_version >= 0.21.0; import CompactStandardLibrary; -import "../../AccessControl" prefix AccessControl_; +import "../../../AccessControl" prefix AccessControl_; export { ZswapCoinPublicKey, ContractAddress, Either, Maybe, AccessControl_DEFAULT_ADMIN_ROLE }; diff --git a/contracts/src/access/test/mocks/MockOwnable.compact b/contracts/src/access/test/mocks/contracts/Ownable.mock.compact similarity index 97% rename from contracts/src/access/test/mocks/MockOwnable.compact rename to contracts/src/access/test/mocks/contracts/Ownable.mock.compact index ebbc6110..6ce31f1d 100644 --- a/contracts/src/access/test/mocks/MockOwnable.compact +++ b/contracts/src/access/test/mocks/contracts/Ownable.mock.compact @@ -4,7 +4,7 @@ pragma language_version >= 0.21.0; import CompactStandardLibrary; -import "../../Ownable" prefix Ownable_; +import "../../../Ownable" prefix Ownable_; export { ZswapCoinPublicKey, ContractAddress, Either, Maybe }; diff --git a/contracts/src/access/test/mocks/MockZOwnablePK.compact b/contracts/src/access/test/mocks/contracts/ZOwnablePK.mock.compact similarity index 96% rename from contracts/src/access/test/mocks/MockZOwnablePK.compact rename to contracts/src/access/test/mocks/contracts/ZOwnablePK.mock.compact index e0e5e18a..5e9109dc 100644 --- a/contracts/src/access/test/mocks/MockZOwnablePK.compact +++ b/contracts/src/access/test/mocks/contracts/ZOwnablePK.mock.compact @@ -3,7 +3,7 @@ pragma language_version >= 0.21.0; import CompactStandardLibrary; -import "../../ZOwnablePK" prefix ZOwnablePK_; +import "../../../ZOwnablePK" prefix ZOwnablePK_; export { ZswapCoinPublicKey, ContractAddress, Either, Maybe }; export { ZOwnablePK__ownerCommitment, ZOwnablePK__counter }; diff --git a/contracts/src/access/witnesses/AccessControlWitnesses.ts b/contracts/src/access/witnesses/AccessControlWitnesses.ts deleted file mode 100644 index d73ecf81..00000000 --- a/contracts/src/access/witnesses/AccessControlWitnesses.ts +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Compact Contracts v0.0.1-alpha.1 (access/witnesses/AccessControlWitnesses.ts) - -export type AccessControlPrivateState = Record; -export const AccessControlPrivateState: AccessControlPrivateState = {}; -export const AccessControlWitnesses = () => ({}); diff --git a/contracts/src/access/witnesses/OwnableWitnesses.ts b/contracts/src/access/witnesses/OwnableWitnesses.ts deleted file mode 100644 index a3d39a17..00000000 --- a/contracts/src/access/witnesses/OwnableWitnesses.ts +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Compact Contracts v0.0.1-alpha.1 (access/witnesses/OwnableWitnesses.ts) - -export type OwnablePrivateState = Record; -export const OwnablePrivateState: OwnablePrivateState = {}; -export const OwnableWitnesses = () => ({}); diff --git a/contracts/src/access/witnesses/ZOwnablePKWitnesses.ts b/contracts/src/access/witnesses/ZOwnablePKWitnesses.ts deleted file mode 100644 index 6453011d..00000000 --- a/contracts/src/access/witnesses/ZOwnablePKWitnesses.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { getRandomValues } from 'node:crypto'; -import type { WitnessContext } from '@midnight-ntwrk/compact-runtime'; -import type { Ledger } from '../../../artifacts/MockZOwnablePK/contract/index.js'; - -/** - * @description Interface defining the witness methods for ZOwnablePK operations. - * @template P - The private state type. - */ -export interface IZOwnablePKWitnesses

{ - /** - * Retrieves the secret nonce from the private state. - * @param context - The witness context containing the private state. - * @returns A tuple of the private state and the secret nonce as a Uint8Array. - */ - wit_secretNonce(context: WitnessContext): [P, Uint8Array]; -} - -/** - * @description Represents the private state of an ownable contract, storing a secret nonce. - */ -export type ZOwnablePKPrivateState = { - /** @description A 32-byte secret nonce used as a privacy additive. */ - secretNonce: Buffer; -}; - -/** - * @description Utility object for managing the private state of an Ownable contract. - */ -export const ZOwnablePKPrivateState = { - /** - * @description Generates a new private state with a random secret nonce. - * @returns A fresh ZOwnablePKPrivateState instance. - */ - generate: (): ZOwnablePKPrivateState => { - return { secretNonce: getRandomValues(Buffer.alloc(32)) }; - }, - - /** - * @description Generates a new private state with a user-defined secret nonce. - * Useful for deterministic nonce generation or advanced use cases. - * - * @param nonce - The 32-byte secret nonce to use. - * @returns A fresh ZOwnablePKPrivateState instance with the provided nonce. - * - * @example - * ```typescript - * // For deterministic nonces (user-defined scheme) - * const deterministicNonce = myDeterministicScheme(...); - * const privateState = ZOwnablePKPrivateState.withNonce(deterministicNonce); - * ``` - */ - withNonce: (nonce: Buffer): ZOwnablePKPrivateState => { - return { secretNonce: nonce }; - }, -}; - -/** - * @description Factory function creating witness implementations for Ownable operations. - * @returns An object implementing the Witnesses interface for ZOwnablePKPrivateState. - */ -export const ZOwnablePKWitnesses = - (): IZOwnablePKWitnesses => ({ - wit_secretNonce( - context: WitnessContext, - ): [ZOwnablePKPrivateState, Uint8Array] { - return [context.privateState, context.privateState.secretNonce]; - }, - }); diff --git a/contracts/src/archive/test/ShieldedToken.test.ts b/contracts/src/archive/test/ShieldedToken.test.ts index dac0b238..3a39a8da 100644 --- a/contracts/src/archive/test/ShieldedToken.test.ts +++ b/contracts/src/archive/test/ShieldedToken.test.ts @@ -6,8 +6,8 @@ import { tokenType, } from '@midnight-ntwrk/onchain-runtime'; import { beforeEach, describe, expect, it } from 'vitest'; -import type { Maybe } from '../../../artifacts/MockShieldedToken/contract/index.js'; // Combined imports -import { ShieldedTokenSimulator } from './simulators/ShieldedTokenSimulator.js'; +import type { Maybe } from '../../../artifacts/ShieldedToken.mock/contract/index.js'; // Combined imports +import { ShieldedTokenSimulator } from './mocks/ShieldedTokenSimulator.js'; import * as utils from './utils/address.js'; const NO_STRING: Maybe = { diff --git a/contracts/src/archive/test/simulators/ShieldedTokenSimulator.ts b/contracts/src/archive/test/mocks/ShieldedTokenSimulator.ts similarity index 95% rename from contracts/src/archive/test/simulators/ShieldedTokenSimulator.ts rename to contracts/src/archive/test/mocks/ShieldedTokenSimulator.ts index e0b6ae24..f56ab55f 100644 --- a/contracts/src/archive/test/simulators/ShieldedTokenSimulator.ts +++ b/contracts/src/archive/test/mocks/ShieldedTokenSimulator.ts @@ -18,13 +18,12 @@ import { Contract as MockShielded, type SendResult, type ZswapCoinPublicKey, -} from '../../../../artifacts/MockShieldedToken/contract/index.js'; // Combined imports -import { - type ShieldedTokenPrivateState, - ShieldedTokenWitnesses, -} from '../../witnesses/ShieldedTokenWitnesses.js'; +} from '../../../../artifacts/ShieldedToken.mock/contract/index.js'; import type { IContractSimulator } from '../types/test.js'; +type ShieldedTokenPrivateState = Record; +const ShieldedTokenWitnesses = {}; + /** * @description A simulator implementation of a shielded token contract for testing purposes. * @template P - The private state type, fixed to ShieldedTokenPrivateState. diff --git a/contracts/src/archive/test/mocks/MockShieldedToken.compact b/contracts/src/archive/test/mocks/contracts/ShieldedToken.mock.compact similarity index 95% rename from contracts/src/archive/test/mocks/MockShieldedToken.compact rename to contracts/src/archive/test/mocks/contracts/ShieldedToken.mock.compact index 68c0fc35..f1f5328d 100644 --- a/contracts/src/archive/test/mocks/MockShieldedToken.compact +++ b/contracts/src/archive/test/mocks/contracts/ShieldedToken.mock.compact @@ -3,7 +3,7 @@ pragma language_version >= 0.21.0; import CompactStandardLibrary; -import "../../ShieldedToken" prefix ShieldedToken_; +import "../../../ShieldedToken" prefix ShieldedToken_; export { ZswapCoinPublicKey, diff --git a/contracts/src/archive/test/utils/address.ts b/contracts/src/archive/test/utils/address.ts index cbba8b7b..68587241 100644 --- a/contracts/src/archive/test/utils/address.ts +++ b/contracts/src/archive/test/utils/address.ts @@ -3,7 +3,7 @@ import { encodeCoinPublicKey, } from '@midnight-ntwrk/compact-runtime'; import { encodeContractAddress } from '@midnight-ntwrk/ledger-v7'; -import type * as Compact from '../../../../artifacts/MockShieldedToken/contract/index.js'; +import type * as Compact from '../../../../artifacts/ShieldedToken.mock/contract/index.js'; const PREFIX_ADDRESS = '0200'; diff --git a/contracts/src/archive/witnesses/ShieldedTokenWitnesses.ts b/contracts/src/archive/witnesses/ShieldedTokenWitnesses.ts deleted file mode 100644 index 82437f0e..00000000 --- a/contracts/src/archive/witnesses/ShieldedTokenWitnesses.ts +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Compact Contracts v0.0.1-alpha.1 (archive/witnesses/ShieldedTokenWitnesses.ts) - -// This is how we type an empty object. -export type ShieldedTokenPrivateState = Record; -export const ShieldedTokenWitnesses = {}; diff --git a/contracts/src/security/test/Initializable.test.ts b/contracts/src/security/test/Initializable.test.ts index 5f96eea9..e78ac196 100644 --- a/contracts/src/security/test/Initializable.test.ts +++ b/contracts/src/security/test/Initializable.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it } from 'vitest'; -import { InitializableSimulator } from './simulators/InitializableSimulator.js'; +import { InitializableSimulator } from './mocks/InitializableSimulator.js'; let initializable: InitializableSimulator; diff --git a/contracts/src/security/test/Pausable.test.ts b/contracts/src/security/test/Pausable.test.ts index 94662b0c..738b01e1 100644 --- a/contracts/src/security/test/Pausable.test.ts +++ b/contracts/src/security/test/Pausable.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it } from 'vitest'; -import { PausableSimulator } from './simulators/PausableSimulator.js'; +import { PausableSimulator } from './mocks/PausableSimulator.js'; let pausable: PausableSimulator; diff --git a/contracts/src/security/test/simulators/InitializableSimulator.ts b/contracts/src/security/test/mocks/InitializableSimulator.ts similarity index 88% rename from contracts/src/security/test/simulators/InitializableSimulator.ts rename to contracts/src/security/test/mocks/InitializableSimulator.ts index 99a68263..ba368f56 100644 --- a/contracts/src/security/test/simulators/InitializableSimulator.ts +++ b/contracts/src/security/test/mocks/InitializableSimulator.ts @@ -5,11 +5,11 @@ import { import { ledger, Contract as MockInitializable, -} from '../../../../artifacts/MockInitializable/contract/index.js'; -import { - InitializablePrivateState, - InitializableWitnesses, -} from '../../witnesses/InitializableWitnesses.js'; +} from '../../../../artifacts/Initializable.mock/contract/index.js'; + +type InitializablePrivateState = Record; +const InitializablePrivateState: InitializablePrivateState = {}; +const InitializableWitnesses = () => ({}); /** * Type constructor args diff --git a/contracts/src/security/test/simulators/PausableSimulator.ts b/contracts/src/security/test/mocks/PausableSimulator.ts similarity index 89% rename from contracts/src/security/test/simulators/PausableSimulator.ts rename to contracts/src/security/test/mocks/PausableSimulator.ts index 34ff6779..ada53d8d 100644 --- a/contracts/src/security/test/simulators/PausableSimulator.ts +++ b/contracts/src/security/test/mocks/PausableSimulator.ts @@ -5,11 +5,11 @@ import { import { ledger, Contract as MockPausable, -} from '../../../../artifacts/MockPausable/contract/index.js'; -import { - PausablePrivateState, - PausableWitnesses, -} from '../../witnesses/PausableWitnesses.js'; +} from '../../../../artifacts/Pausable.mock/contract/index.js'; + +type PausablePrivateState = Record; +const PausablePrivateState: PausablePrivateState = {}; +const PausableWitnesses = () => ({}); /** * Type constructor args diff --git a/contracts/src/security/test/mocks/MockInitializable.compact b/contracts/src/security/test/mocks/contracts/Initializable.mock.compact similarity index 87% rename from contracts/src/security/test/mocks/MockInitializable.compact rename to contracts/src/security/test/mocks/contracts/Initializable.mock.compact index ca5dd3fc..021ecf21 100644 --- a/contracts/src/security/test/mocks/MockInitializable.compact +++ b/contracts/src/security/test/mocks/contracts/Initializable.mock.compact @@ -1,7 +1,7 @@ pragma language_version >= 0.21.0; import CompactStandardLibrary; -import "../../Initializable" prefix Initializable_; +import "../../../Initializable" prefix Initializable_; export { Initializable__isInitialized }; diff --git a/contracts/src/security/test/mocks/MockPausable.compact b/contracts/src/security/test/mocks/contracts/Pausable.mock.compact similarity index 90% rename from contracts/src/security/test/mocks/MockPausable.compact rename to contracts/src/security/test/mocks/contracts/Pausable.mock.compact index da9d79a9..4f4d7871 100644 --- a/contracts/src/security/test/mocks/MockPausable.compact +++ b/contracts/src/security/test/mocks/contracts/Pausable.mock.compact @@ -1,7 +1,7 @@ pragma language_version >= 0.21.0; import CompactStandardLibrary; -import "../../Pausable" prefix Pausable_; +import "../../../Pausable" prefix Pausable_; export { Pausable__isPaused }; diff --git a/contracts/src/security/witnesses/InitializableWitnesses.ts b/contracts/src/security/witnesses/InitializableWitnesses.ts deleted file mode 100644 index 9a7513c7..00000000 --- a/contracts/src/security/witnesses/InitializableWitnesses.ts +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Compact Contracts v0.0.1-alpha.1 (security/witnesses/InitializableWitnesses.ts) - -export type InitializablePrivateState = Record; -export const InitializablePrivateState: InitializablePrivateState = {}; -export const InitializableWitnesses = () => ({}); diff --git a/contracts/src/security/witnesses/PausableWitnesses.ts b/contracts/src/security/witnesses/PausableWitnesses.ts deleted file mode 100644 index 21895f5a..00000000 --- a/contracts/src/security/witnesses/PausableWitnesses.ts +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Compact Contracts v0.0.1-alpha.1 (security/witnesses/PausableWitnesses.ts) - -export type PausablePrivateState = Record; -export const PausablePrivateState: PausablePrivateState = {}; -export const PausableWitnesses = () => ({}); diff --git a/contracts/src/token/test/FungibleToken.test.ts b/contracts/src/token/test/FungibleToken.test.ts index 8a2cdc1a..1ff4a387 100644 --- a/contracts/src/token/test/FungibleToken.test.ts +++ b/contracts/src/token/test/FungibleToken.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest'; import * as utils from '#test-utils/address.js'; -import { FungibleTokenSimulator } from './simulators/FungibleTokenSimulator.js'; +import { FungibleTokenSimulator } from './mocks/FungibleTokenSimulator.js'; // Metadata const EMPTY_STRING = ''; diff --git a/contracts/src/token/test/MultiToken.test.ts b/contracts/src/token/test/MultiToken.test.ts index d8a8a707..4d88e344 100644 --- a/contracts/src/token/test/MultiToken.test.ts +++ b/contracts/src/token/test/MultiToken.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it } from 'vitest'; import * as utils from '#test-utils/address.js'; -import type { Maybe } from '../../../artifacts/MockMultiToken/contract/index.js'; // Combined imports -import { MultiTokenSimulator } from './simulators/MultiTokenSimulator.js'; +import type { Maybe } from '../../../artifacts/MultiToken.mock/contract/index.js'; // Combined imports +import { MultiTokenSimulator } from './mocks/MultiTokenSimulator.js'; // URIs const NO_STRING = ''; diff --git a/contracts/src/token/test/simulators/FungibleTokenSimulator.ts b/contracts/src/token/test/mocks/FungibleTokenSimulator.ts similarity index 97% rename from contracts/src/token/test/simulators/FungibleTokenSimulator.ts rename to contracts/src/token/test/mocks/FungibleTokenSimulator.ts index 54dda0e0..7e2aa14e 100644 --- a/contracts/src/token/test/simulators/FungibleTokenSimulator.ts +++ b/contracts/src/token/test/mocks/FungibleTokenSimulator.ts @@ -8,11 +8,11 @@ import { ledger, Contract as MockFungibleToken, type ZswapCoinPublicKey, -} from '../../../../artifacts/MockFungibleToken/contract/index.js'; -import { - FungibleTokenPrivateState, - FungibleTokenWitnesses, -} from '../../witnesses/FungibleTokenWitnesses.js'; +} from '../../../../artifacts/FungibleToken.mock/contract/index.js'; + +type FungibleTokenPrivateState = Record; +const FungibleTokenPrivateState: FungibleTokenPrivateState = {}; +const FungibleTokenWitnesses = () => ({}); /** * Type constructor args diff --git a/contracts/src/token/test/simulators/MultiTokenSimulator.ts b/contracts/src/token/test/mocks/MultiTokenSimulator.ts similarity index 97% rename from contracts/src/token/test/simulators/MultiTokenSimulator.ts rename to contracts/src/token/test/mocks/MultiTokenSimulator.ts index 324a797b..0bff6945 100644 --- a/contracts/src/token/test/simulators/MultiTokenSimulator.ts +++ b/contracts/src/token/test/mocks/MultiTokenSimulator.ts @@ -9,11 +9,11 @@ import { type Maybe, Contract as MockMultiToken, type ZswapCoinPublicKey, -} from '../../../../artifacts/MockMultiToken/contract/index.js'; -import { - MultiTokenPrivateState, - MultiTokenWitnesses, -} from '../../witnesses/MultiTokenWitnesses.js'; +} from '../../../../artifacts/MultiToken.mock/contract/index.js'; + +type MultiTokenPrivateState = Record; +const MultiTokenPrivateState: MultiTokenPrivateState = {}; +const MultiTokenWitnesses = () => ({}); /** * Type constructor args diff --git a/contracts/src/token/test/simulators/NonFungibleTokenSimulator.ts b/contracts/src/token/test/mocks/NonFungibleTokenSimulator.ts similarity index 98% rename from contracts/src/token/test/simulators/NonFungibleTokenSimulator.ts rename to contracts/src/token/test/mocks/NonFungibleTokenSimulator.ts index ef311599..8b6013fb 100644 --- a/contracts/src/token/test/simulators/NonFungibleTokenSimulator.ts +++ b/contracts/src/token/test/mocks/NonFungibleTokenSimulator.ts @@ -8,11 +8,11 @@ import { ledger, Contract as MockNonFungibleToken, type ZswapCoinPublicKey, -} from '../../../../artifacts/MockNonFungibleToken/contract/index.js'; -import { - NonFungibleTokenPrivateState, - NonFungibleTokenWitnesses, -} from '../../witnesses/NonFungibleTokenWitnesses.js'; +} from '../../../../artifacts/NonFungibleToken.mock/contract/index.js'; + +type NonFungibleTokenPrivateState = Record; +const NonFungibleTokenPrivateState: NonFungibleTokenPrivateState = {}; +const NonFungibleTokenWitnesses = () => ({}); /** * Type constructor args diff --git a/contracts/src/token/test/mocks/MockFungibleToken.compact b/contracts/src/token/test/mocks/contracts/FungibleToken.mock.compact similarity index 98% rename from contracts/src/token/test/mocks/MockFungibleToken.compact rename to contracts/src/token/test/mocks/contracts/FungibleToken.mock.compact index 2b86c588..0482f292 100644 --- a/contracts/src/token/test/mocks/MockFungibleToken.compact +++ b/contracts/src/token/test/mocks/contracts/FungibleToken.mock.compact @@ -4,7 +4,7 @@ pragma language_version >= 0.21.0; import CompactStandardLibrary; -import "../../FungibleToken" prefix FungibleToken_; +import "../../../FungibleToken" prefix FungibleToken_; export { ZswapCoinPublicKey, ContractAddress, Either, Maybe }; diff --git a/contracts/src/token/test/mocks/MockMultiToken.compact b/contracts/src/token/test/mocks/contracts/MultiToken.mock.compact similarity index 98% rename from contracts/src/token/test/mocks/MockMultiToken.compact rename to contracts/src/token/test/mocks/contracts/MultiToken.mock.compact index 37d89fd1..5db3cb3c 100644 --- a/contracts/src/token/test/mocks/MockMultiToken.compact +++ b/contracts/src/token/test/mocks/contracts/MultiToken.mock.compact @@ -1,7 +1,7 @@ pragma language_version >= 0.21.0; import CompactStandardLibrary; -import "../../MultiToken" prefix MultiToken_; +import "../../../MultiToken" prefix MultiToken_; export { ZswapCoinPublicKey, ContractAddress, Either, Maybe }; export { MultiToken__balances, MultiToken__operatorApprovals, MultiToken__uri }; diff --git a/contracts/src/token/test/mocks/MockNonFungibleToken.compact b/contracts/src/token/test/mocks/contracts/NonFungibleToken.mock.compact similarity index 98% rename from contracts/src/token/test/mocks/MockNonFungibleToken.compact rename to contracts/src/token/test/mocks/contracts/NonFungibleToken.mock.compact index a7515486..be01d219 100644 --- a/contracts/src/token/test/mocks/MockNonFungibleToken.compact +++ b/contracts/src/token/test/mocks/contracts/NonFungibleToken.mock.compact @@ -2,7 +2,7 @@ pragma language_version >= 0.21.0; import CompactStandardLibrary; -import "../../NonFungibleToken" prefix NonFungibleToken_; +import "../../../NonFungibleToken" prefix NonFungibleToken_; export { ZswapCoinPublicKey, ContractAddress, Either, Maybe }; diff --git a/contracts/src/token/test/nonFungibleToken.test.ts b/contracts/src/token/test/nonFungibleToken.test.ts index 7f8a5531..c12c1138 100644 --- a/contracts/src/token/test/nonFungibleToken.test.ts +++ b/contracts/src/token/test/nonFungibleToken.test.ts @@ -5,7 +5,7 @@ import { ZERO_ADDRESS, ZERO_KEY, } from '#test-utils/address.js'; -import { NonFungibleTokenSimulator } from './simulators/NonFungibleTokenSimulator.js'; +import { NonFungibleTokenSimulator } from './mocks/NonFungibleTokenSimulator.js'; // Contract Metadata const NAME = 'NAME'; diff --git a/contracts/src/token/witnesses/FungibleTokenWitnesses.ts b/contracts/src/token/witnesses/FungibleTokenWitnesses.ts deleted file mode 100644 index 613bf98a..00000000 --- a/contracts/src/token/witnesses/FungibleTokenWitnesses.ts +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Compact Contracts v0.0.1-alpha.1 (token/witnesses/FungibleTokenWitnesses.ts) - -export type FungibleTokenPrivateState = Record; -export const FungibleTokenPrivateState: FungibleTokenPrivateState = {}; -export const FungibleTokenWitnesses = () => ({}); diff --git a/contracts/src/token/witnesses/MultiTokenWitnesses.ts b/contracts/src/token/witnesses/MultiTokenWitnesses.ts deleted file mode 100644 index 20bfddbc..00000000 --- a/contracts/src/token/witnesses/MultiTokenWitnesses.ts +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Compact Contracts v0.0.1-alpha.1 (token/witnesses/MultiTokenWitnesses.ts) - -export type MultiTokenPrivateState = Record; -export const MultiTokenPrivateState: MultiTokenPrivateState = {}; -export const MultiTokenWitnesses = () => ({}); diff --git a/contracts/src/token/witnesses/NonFungibleTokenWitnesses.ts b/contracts/src/token/witnesses/NonFungibleTokenWitnesses.ts deleted file mode 100644 index 9e229c03..00000000 --- a/contracts/src/token/witnesses/NonFungibleTokenWitnesses.ts +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Compact Contracts v0.0.1-alpha.1 (token/witnesses/NonFungibleToken.ts) - -export type NonFungibleTokenPrivateState = Record; -export const NonFungibleTokenPrivateState: NonFungibleTokenPrivateState = {}; -export const NonFungibleTokenWitnesses = () => ({}); diff --git a/contracts/src/utils/test/simulators/UtilsSimulator.ts b/contracts/src/utils/test/mocks/UtilsSimulator.ts similarity index 93% rename from contracts/src/utils/test/simulators/UtilsSimulator.ts rename to contracts/src/utils/test/mocks/UtilsSimulator.ts index 9a26cebc..1ec686ee 100644 --- a/contracts/src/utils/test/simulators/UtilsSimulator.ts +++ b/contracts/src/utils/test/mocks/UtilsSimulator.ts @@ -8,11 +8,11 @@ import { ledger, Contract as MockUtils, type ZswapCoinPublicKey, -} from '../../../../artifacts/MockUtils/contract/index.js'; -import { - UtilsPrivateState, - UtilsWitnesses, -} from '../../witnesses/UtilsWitnesses.js'; +} from '../../../../artifacts/Utils.mock/contract/index.js'; + +type UtilsPrivateState = Record; +const UtilsPrivateState: UtilsPrivateState = {}; +const UtilsWitnesses = () => ({}); /** * Type constructor args diff --git a/contracts/src/utils/test/mocks/MockUtils.compact b/contracts/src/utils/test/mocks/contracts/Utils.mock.compact similarity index 95% rename from contracts/src/utils/test/mocks/MockUtils.compact rename to contracts/src/utils/test/mocks/contracts/Utils.mock.compact index 3f13ffac..3bce6d03 100644 --- a/contracts/src/utils/test/mocks/MockUtils.compact +++ b/contracts/src/utils/test/mocks/contracts/Utils.mock.compact @@ -2,7 +2,7 @@ pragma language_version >= 0.21.0; import CompactStandardLibrary; -import "../../Utils" prefix Utils_; +import "../../../Utils" prefix Utils_; export { ZswapCoinPublicKey, ContractAddress, Either }; diff --git a/contracts/src/utils/test/utils.test.ts b/contracts/src/utils/test/utils.test.ts index 163c7d1a..b31e19c3 100644 --- a/contracts/src/utils/test/utils.test.ts +++ b/contracts/src/utils/test/utils.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; import * as contractUtils from '#test-utils/address.js'; -import { UtilsSimulator } from './simulators/UtilsSimulator.js'; +import { UtilsSimulator } from './mocks/UtilsSimulator.js'; const Z_SOME_KEY = contractUtils.createEitherTestUser('SOME_KEY'); const Z_OTHER_KEY = contractUtils.createEitherTestUser('OTHER_KEY'); diff --git a/contracts/src/utils/witnesses/UtilsWitnesses.ts b/contracts/src/utils/witnesses/UtilsWitnesses.ts deleted file mode 100644 index 5c5bfa11..00000000 --- a/contracts/src/utils/witnesses/UtilsWitnesses.ts +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Compact Contracts v0.0.1-alpha.1 (utils/witnesses/UtilsWitnesses.ts) - -export type UtilsPrivateState = Record; -export const UtilsPrivateState: UtilsPrivateState = {}; -export const UtilsWitnesses = () => ({}); From bf7441c08c35f35424fc5ab7c594ba1455037b51 Mon Sep 17 00:00:00 2001 From: 0xisk Date: Wed, 11 Mar 2026 12:13:08 +0100 Subject: [PATCH 3/3] chore: lint fix --- .gitignore | 2 ++ contracts/src/access/test/ZOwnablePK.test.ts | 6 ++++-- contracts/src/access/test/mocks/ZOwnablePKSimulator.ts | 6 +++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 2a32ed65..6c0dc894 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,5 @@ coverage *~ *temp +.claude/ +.act.env diff --git a/contracts/src/access/test/ZOwnablePK.test.ts b/contracts/src/access/test/ZOwnablePK.test.ts index f7fd05ca..e73bcdc5 100644 --- a/contracts/src/access/test/ZOwnablePK.test.ts +++ b/contracts/src/access/test/ZOwnablePK.test.ts @@ -7,8 +7,10 @@ import { import { beforeEach, describe, expect, it } from 'vitest'; import * as utils from '#test-utils/address.js'; import type { ZswapCoinPublicKey } from '../../../artifacts/Ownable.mock/contract/index.js'; -import { generate as generateZOwnablePKState } from './mocks/ZOwnablePKSimulator.js'; -import { ZOwnablePKSimulator } from './mocks/ZOwnablePKSimulator.js'; +import { + generate as generateZOwnablePKState, + ZOwnablePKSimulator, +} from './mocks/ZOwnablePKSimulator.js'; // PKs const [OWNER, Z_OWNER] = utils.generatePubKeyPair('OWNER'); diff --git a/contracts/src/access/test/mocks/ZOwnablePKSimulator.ts b/contracts/src/access/test/mocks/ZOwnablePKSimulator.ts index 36042682..175ea0be 100644 --- a/contracts/src/access/test/mocks/ZOwnablePKSimulator.ts +++ b/contracts/src/access/test/mocks/ZOwnablePKSimulator.ts @@ -1,7 +1,10 @@ +import { getRandomValues } from 'node:crypto'; +import type { WitnessContext } from '@midnight-ntwrk/compact-runtime'; import { type BaseSimulatorOptions, createSimulator, } from '@openzeppelin-compact/contracts-simulator'; +import type { Ledger } from '../../../../artifacts/ZOwnablePK.mock/contract/index.js'; import { type ContractAddress, type Either, @@ -9,9 +12,6 @@ import { Contract as MockZOwnablePK, type ZswapCoinPublicKey, } from '../../../../artifacts/ZOwnablePK.mock/contract/index.js'; -import { getRandomValues } from 'node:crypto'; -import type { WitnessContext } from '@midnight-ntwrk/compact-runtime'; -import type { Ledger } from '../../../../artifacts/ZOwnablePK.mock/contract/index.js'; export type ZOwnablePKPrivateState = { secretNonce: Buffer;