feat: fix deployments

This commit is contained in:
rymnc 2023-11-30 17:02:00 +05:30
parent 8d771fd4ad
commit 9c9943df9b
No known key found for this signature in database
GPG Key ID: AAA088D5C68ECD34
20 changed files with 1690 additions and 2272 deletions

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@ pragma solidity 0.8.15;
import "./RlnBase.sol";
contract Rln is RlnBase {
contract RLN is RlnBase {
constructor(uint256 membershipDeposit, uint256 depth, address _poseidonHasher, address _verifier)
RlnBase(membershipDeposit, depth, _poseidonHasher, _verifier)
{}

View File

@ -6,8 +6,6 @@ import {PoseidonHasher} from "./PoseidonHasher.sol";
import {IVerifier} from "./IVerifier.sol";
import {BinaryIMT, BinaryIMTData} from "@zk-kit/imt.sol/BinaryIMT.sol";
import "forge-std/console.sol";
/// The tree is full
error FullTree();

View File

@ -7,9 +7,17 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
const [deployer] = await getUnnamedAccounts();
const deployRes = await deploy("PoseidonT3", {
from: deployer,
log: true,
});
await deploy("PoseidonHasher", {
from: deployer,
log: true,
libraries: {
PoseidonT3: deployRes.address,
},
});
};
export default func;

View File

@ -11,12 +11,24 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
.address;
const rlnVerifierAddress = (await deployments.get("Verifier")).address;
await deploy("Rln", {
const deployRes = await deploy("BinaryIMT", {
from: deployer,
log: true,
libraries: {
PoseidonT3: (await deployments.get("PoseidonT3")).address,
},
});
await deploy("RLN", {
from: deployer,
log: true,
args: [1000000000000000, 20, poseidonHasherAddress, rlnVerifierAddress],
libraries: {
BinaryIMT: deployRes.address,
},
});
};
export default func;
func.tags = ["Rln"];
func.dependencies = ["PoseidonHasher", "RlnVerifier"];
func.dependencies = ["PoseidonHasher", "RlnVerifier", "BinaryIMT"];

View File

@ -4,17 +4,54 @@
"name": "sepolia",
"chainId": "11155111",
"contracts": {
"PoseidonHasher": {
"address": "0xa1554EAF0DF18C05956249aac375e212edeD2CcF",
"PoseidonT3": {
"address": "0xbeeeAcde37Bce9011326137a49Bd5CA8153E9FCD",
"abi": [
{
"inputs": [
{
"internalType": "uint256[2]",
"name": "",
"type": "uint256[2]"
}
],
"name": "hash",
"outputs": [
{
"internalType": "uint256",
"name": "input",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
]
},
"PoseidonHasher": {
"address": "0x2092b99411d480b8Dd04BfD68EF1F0d545b0eB1D",
"abi": [
{
"inputs": [],
"name": "Q",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[2]",
"name": "inputs",
"type": "uint256[2]"
}
],
"name": "hash",
"outputs": [
{
@ -28,8 +65,526 @@
}
]
},
"Verifier": {
"address": "0xe36940B40aDe98F02a4829414F7e8d636CCf3663",
"abi": [
{
"inputs": [
{
"internalType": "uint256[2]",
"name": "a",
"type": "uint256[2]"
},
{
"internalType": "uint256[2][2]",
"name": "b",
"type": "uint256[2][2]"
},
{
"internalType": "uint256[2]",
"name": "c",
"type": "uint256[2]"
},
{
"internalType": "uint256[2]",
"name": "input",
"type": "uint256[2]"
}
],
"name": "verifyProof",
"outputs": [
{
"internalType": "bool",
"name": "r",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
]
},
"BinaryIMT": {
"address": "0x9Eae140A17Fd002B2ffA3B5df76C13100CDF909d",
"abi": [
{
"inputs": [],
"name": "MAX_DEPTH",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SNARK_SCALAR_FIELD",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_0",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_1",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_10",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_11",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_12",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_13",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_14",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_15",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_16",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_17",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_18",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_19",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_2",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_20",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_21",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_22",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_23",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_24",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_25",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_26",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_27",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_28",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_29",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_3",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_30",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_31",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_32",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_4",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_5",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_6",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_7",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_8",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "Z_9",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "defaultZero",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
]
},
"RLN": {
"address": "0xB8144E3214080f179D037bbb4dcaaa6B87f224E4",
"address": "0x3d2dcfF8Ee904C3F5Bf3043642C605DFcA7BEBA9",
"abi": [
{
"inputs": [
@ -93,6 +648,17 @@
"name": "InsufficientWithdrawalBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "idCommitment",
"type": "uint256"
}
],
"name": "InvalidIdCommitment",
"type": "error"
},
{
"inputs": [],
"name": "InvalidProof",
@ -208,6 +774,32 @@
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "computeRoot",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "deployedBlockNumber",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "idCommitmentIndex",
@ -221,6 +813,72 @@
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "imtData",
"outputs": [
{
"internalType": "uint256",
"name": "depth",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "root",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "numberOfLeaves",
"type": "uint256"
},
{
"internalType": "bool",
"name": "useDefaultZeroes",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "idCommitment",
"type": "uint256"
}
],
"name": "isValidCommitment",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "memberExists",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
@ -245,7 +903,7 @@
"name": "poseidonHasher",
"outputs": [
{
"internalType": "contract IPoseidonHasher",
"internalType": "contract PoseidonHasher",
"name": "",
"type": "address"
}
@ -348,45 +1006,6 @@
"type": "function"
}
]
},
"Verifier": {
"address": "0xb81Faa6F0126dedB55A45eb63E8430B270A00303",
"abi": [
{
"inputs": [
{
"internalType": "uint256[2]",
"name": "a",
"type": "uint256[2]"
},
{
"internalType": "uint256[2][2]",
"name": "b",
"type": "uint256[2][2]"
},
{
"internalType": "uint256[2]",
"name": "c",
"type": "uint256[2]"
},
{
"internalType": "uint256[2]",
"name": "input",
"type": "uint256[2]"
}
],
"name": "verifyProof",
"outputs": [
{
"internalType": "bool",
"name": "r",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -13,16 +13,16 @@ function verifyProof(uint256[2] a, uint256[2][2] b, uint256[2] c, uint256[2] inp
### hash
```solidity
function hash(uint256 input) external pure returns (uint256 result)
function hash(uint256[2] inputs) external pure returns (uint256 result)
```
Hashes the input using the Poseidon hash function, n = 2, second input is the constant 0
Hashes the input using the Poseidon hash function, n = 2
#### Parameters
| Name | Type | Description |
| ----- | ------- | ----------------- |
| input | uint256 | The input to hash |
| Name | Type | Description |
| ------ | ---------- | ----------------- |
| inputs | uint256[2] | The input to hash |
## PoseidonHasher
@ -32,819 +32,21 @@ Hashes the input using the Poseidon hash function, n = 2, second input is the co
uint256 Q
```
### C0
```solidity
uint256 C0
```
### C1
```solidity
uint256 C1
```
### C2
```solidity
uint256 C2
```
### C3
```solidity
uint256 C3
```
### C4
```solidity
uint256 C4
```
### C5
```solidity
uint256 C5
```
### C6
```solidity
uint256 C6
```
### C7
```solidity
uint256 C7
```
### C8
```solidity
uint256 C8
```
### C9
```solidity
uint256 C9
```
### C10
```solidity
uint256 C10
```
### C11
```solidity
uint256 C11
```
### C12
```solidity
uint256 C12
```
### C13
```solidity
uint256 C13
```
### C14
```solidity
uint256 C14
```
### C15
```solidity
uint256 C15
```
### C16
```solidity
uint256 C16
```
### C17
```solidity
uint256 C17
```
### C18
```solidity
uint256 C18
```
### C19
```solidity
uint256 C19
```
### C20
```solidity
uint256 C20
```
### C21
```solidity
uint256 C21
```
### C22
```solidity
uint256 C22
```
### C23
```solidity
uint256 C23
```
### C24
```solidity
uint256 C24
```
### C25
```solidity
uint256 C25
```
### C26
```solidity
uint256 C26
```
### C27
```solidity
uint256 C27
```
### C28
```solidity
uint256 C28
```
### C29
```solidity
uint256 C29
```
### C30
```solidity
uint256 C30
```
### C31
```solidity
uint256 C31
```
### C32
```solidity
uint256 C32
```
### C33
```solidity
uint256 C33
```
### C34
```solidity
uint256 C34
```
### C35
```solidity
uint256 C35
```
### C36
```solidity
uint256 C36
```
### C37
```solidity
uint256 C37
```
### C38
```solidity
uint256 C38
```
### C39
```solidity
uint256 C39
```
### C40
```solidity
uint256 C40
```
### C41
```solidity
uint256 C41
```
### C42
```solidity
uint256 C42
```
### C43
```solidity
uint256 C43
```
### C44
```solidity
uint256 C44
```
### C45
```solidity
uint256 C45
```
### C46
```solidity
uint256 C46
```
### C47
```solidity
uint256 C47
```
### C48
```solidity
uint256 C48
```
### C49
```solidity
uint256 C49
```
### C50
```solidity
uint256 C50
```
### C51
```solidity
uint256 C51
```
### C52
```solidity
uint256 C52
```
### C53
```solidity
uint256 C53
```
### C54
```solidity
uint256 C54
```
### C55
```solidity
uint256 C55
```
### C56
```solidity
uint256 C56
```
### C57
```solidity
uint256 C57
```
### C58
```solidity
uint256 C58
```
### C59
```solidity
uint256 C59
```
### C60
```solidity
uint256 C60
```
### C61
```solidity
uint256 C61
```
### C62
```solidity
uint256 C62
```
### C63
```solidity
uint256 C63
```
### C64
```solidity
uint256 C64
```
### C65
```solidity
uint256 C65
```
### C66
```solidity
uint256 C66
```
### C67
```solidity
uint256 C67
```
### C68
```solidity
uint256 C68
```
### C69
```solidity
uint256 C69
```
### C70
```solidity
uint256 C70
```
### C71
```solidity
uint256 C71
```
### C72
```solidity
uint256 C72
```
### C73
```solidity
uint256 C73
```
### C74
```solidity
uint256 C74
```
### C75
```solidity
uint256 C75
```
### C76
```solidity
uint256 C76
```
### C77
```solidity
uint256 C77
```
### C78
```solidity
uint256 C78
```
### C79
```solidity
uint256 C79
```
### C80
```solidity
uint256 C80
```
### C81
```solidity
uint256 C81
```
### C82
```solidity
uint256 C82
```
### C83
```solidity
uint256 C83
```
### C84
```solidity
uint256 C84
```
### C85
```solidity
uint256 C85
```
### C86
```solidity
uint256 C86
```
### C87
```solidity
uint256 C87
```
### C88
```solidity
uint256 C88
```
### C89
```solidity
uint256 C89
```
### C90
```solidity
uint256 C90
```
### C91
```solidity
uint256 C91
```
### C92
```solidity
uint256 C92
```
### C93
```solidity
uint256 C93
```
### C94
```solidity
uint256 C94
```
### C95
```solidity
uint256 C95
```
### C96
```solidity
uint256 C96
```
### C97
```solidity
uint256 C97
```
### C98
```solidity
uint256 C98
```
### C99
```solidity
uint256 C99
```
### C100
```solidity
uint256 C100
```
### C101
```solidity
uint256 C101
```
### C102
```solidity
uint256 C102
```
### C103
```solidity
uint256 C103
```
### C104
```solidity
uint256 C104
```
### C105
```solidity
uint256 C105
```
### C106
```solidity
uint256 C106
```
### C107
```solidity
uint256 C107
```
### C108
```solidity
uint256 C108
```
### C109
```solidity
uint256 C109
```
### C110
```solidity
uint256 C110
```
### C111
```solidity
uint256 C111
```
### C112
```solidity
uint256 C112
```
### C113
```solidity
uint256 C113
```
### C114
```solidity
uint256 C114
```
### C115
```solidity
uint256 C115
```
### C116
```solidity
uint256 C116
```
### C117
```solidity
uint256 C117
```
### C118
```solidity
uint256 C118
```
### C119
```solidity
uint256 C119
```
### C120
```solidity
uint256 C120
```
### C121
```solidity
uint256 C121
```
### C122
```solidity
uint256 C122
```
### C123
```solidity
uint256 C123
```
### C124
```solidity
uint256 C124
```
### C125
```solidity
uint256 C125
```
### C126
```solidity
uint256 C126
```
### C127
```solidity
uint256 C127
```
### M00
```solidity
uint256 M00
```
### M01
```solidity
uint256 M01
```
### M10
```solidity
uint256 M10
```
### M11
```solidity
uint256 M11
```
### hash
```solidity
function hash(uint256 input) external pure returns (uint256 result)
function hash(uint256[2] inputs) external pure returns (uint256 result)
```
Hashes the input using the Poseidon hash function, n = 2, second input is the constant 0
Hashes the input using the Poseidon hash function, n = 2
#### Parameters
| Name | Type | Description |
| ----- | ------- | ----------------- |
| input | uint256 | The input to hash |
| Name | Type | Description |
| ------ | ---------- | ----------------- |
| inputs | uint256[2] | The input to hash |
### \_hash
```solidity
function _hash(uint256 input) internal pure returns (uint256 result)
```
## Rln
## RLN
### constructor
@ -1013,6 +215,14 @@ mapping(uint256 => uint256) members
The membership status of each member
maps from idCommitment to their index in the set
### memberExists
```solidity
mapping(uint256 => bool) memberExists
```
The membership status of each member
### withdrawalBalance
```solidity
@ -1045,6 +255,14 @@ uint32 deployedBlockNumber
the deployed block number
### imtData
```solidity
struct BinaryIMTData imtData
```
the Incremental Merkle Tree
### MemberRegistered
```solidity
@ -1174,17 +392,17 @@ Allows a user to withdraw funds allocated to them upon slashing a member
### hash
```solidity
function hash(uint256 input) internal view returns (uint256)
function hash(uint256[2] inputs) internal view returns (uint256)
```
Hashes a value using the Poseidon hasher
NOTE: The variant of Poseidon we use accepts only 1 input, assume n=2, and the second input is 0
NOTE: The variant of Poseidon we use accepts only 1 input, assume n=2
#### Parameters
| Name | Type | Description |
| ----- | ------- | ----------------- |
| input | uint256 | The value to hash |
| Name | Type | Description |
| ------ | ---------- | ------------------ |
| inputs | uint256[2] | The values to hash |
### isValidCommitment
@ -1200,6 +418,12 @@ function _verifyProof(uint256 idCommitment, address receiver, uint256[8] proof)
_Groth16 proof verification_
### computeRoot
```solidity
function computeRoot() external view returns (uint256)
```
## Pairing
### G1Point

View File

@ -10,12 +10,13 @@ describe("PoseidonHasher", () => {
const poseidonHasher = await ethers.getContract("PoseidonHasher");
// We test hashing for a random number
const hash = await poseidonHasher.hash(
"19014214495641488759237505126948346942972912379615652741039992445865937985820"
);
const hash = await poseidonHasher.hash([
"19014214495641488759237505126948346942972912379615652741039992445865937985820",
"0",
]);
expect(hash._hex).to.eql(
"0x0c3ac305f6a4fe9bfeb3eba978bc876e2a99208b8b56c80160cfb54ba8f02368"
expect(hash.toHexString()).to.eql(
"0x1d1ac5f6cf23b059eb43c657ce622b614b5960ea4b23f92d428d3e42982a4e13"
);
});
});

View File

@ -7,7 +7,7 @@ describe("Rln", () => {
});
it("should register new memberships", async () => {
const rln = await ethers.getContract("Rln", ethers.provider.getSigner(0));
const rln = await ethers.getContract("RLN", ethers.provider.getSigner(0));
const price = await rln.MEMBERSHIP_DEPOSIT();
@ -30,7 +30,7 @@ describe("Rln", () => {
});
it("should slash membership", async () => {
const rln = await ethers.getContract("Rln", ethers.provider.getSigner(0));
const rln = await ethers.getContract("RLN", ethers.provider.getSigner(0));
const price = await rln.MEMBERSHIP_DEPOSIT();
@ -55,7 +55,7 @@ describe("Rln", () => {
});
it("should not allow multiple registrations with same pubkey", async () => {
const rln = await ethers.getContract("Rln", ethers.provider.getSigner(0));
const rln = await ethers.getContract("RLN", ethers.provider.getSigner(0));
const price = await rln.MEMBERSHIP_DEPOSIT();