Skip to content

Commit d00295d

Browse files
committed
test(genesis): cover mixed-case native fiat token minters
1 parent 5f77570 commit d00295d

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Copyright 2026 Circle Internet Group, Inc. All rights reserved.
2+
//
3+
// SPDX-License-Identifier: Apache-2.0
4+
5+
import { expect } from 'chai'
6+
import { schemaNativeFiatToken } from '../../scripts/genesis/NativeFiatToken'
7+
8+
const PROXY_ADMIN = '0x1111111111111111111111111111111111111111'
9+
const OWNER = '0x2222222222222222222222222222222222222222'
10+
const PAUSER = '0x3333333333333333333333333333333333333333'
11+
const BLACKLISTER = '0x4444444444444444444444444444444444444444'
12+
const MASTER_MINTER = '0x5555555555555555555555555555555555555555'
13+
const RESCUER = '0x6666666666666666666666666666666666666666'
14+
15+
const configWithMinters = (minters: Array<{ address: string; allowance: bigint }>) => ({
16+
proxy: { admin: PROXY_ADMIN },
17+
owner: OWNER,
18+
pauser: PAUSER,
19+
blacklister: BLACKLISTER,
20+
masterMinter: MASTER_MINTER,
21+
rescuer: RESCUER,
22+
minters,
23+
})
24+
25+
describe('NativeFiatToken genesis validation', () => {
26+
it('rejects duplicate minters when address casing differs', () => {
27+
const minter = '0xAb00000000000000000000000000000000000001'
28+
const result = schemaNativeFiatToken.safeParse(
29+
configWithMinters([
30+
{ address: minter, allowance: 100n },
31+
{ address: minter.toLowerCase(), allowance: 200n },
32+
]),
33+
)
34+
35+
expect(result.success).to.be.false
36+
})
37+
})

0 commit comments

Comments
 (0)