Skip to content

Commit

Permalink
feat: Pass paused flag in the constructor (#513)
Browse files Browse the repository at this point in the history
* feat: Pass paused flag in the constructor

* Pass unpaused flag on construction time
  • Loading branch information
mfornet committed Mar 10, 2021
1 parent 898800c commit ac1c156
Show file tree
Hide file tree
Showing 16 changed files with 31 additions and 19 deletions.
6 changes: 4 additions & 2 deletions cli/init/eth-contracts.js
Expand Up @@ -185,6 +185,7 @@ class InitEthClient {
ethClientLockDuration + 20 * 60,
2 * ethClientLockDuration
)

if (ethClientReplaceDuration < minAllowedReplaceDuration) {
throw new Error(
`Invalid parameters ${JSON.stringify({
Expand Down Expand Up @@ -213,7 +214,8 @@ class InitEthClient {
lockEthAmount,
lockDuration,
replaceDuration,
ethAdminAddress
ethAdminAddress,
0
],
gas: 5000000,
ethContractAbiPath: ethClientAbiPath,
Expand Down Expand Up @@ -252,7 +254,7 @@ class InitEthProver {
const ethContractInitializer = new EthContractInitializer()
const success = await ethContractInitializer.execute(
{
args: [ethClientAddress, ethAdminAddress],
args: [ethClientAddress, ethAdminAddress, 0],
gas: 3000000,
ethContractAbiPath: ethProverAbiPath,
ethContractBinPath: ethProverBinPath,
Expand Down
5 changes: 3 additions & 2 deletions contracts/eth/nearbridge/contracts/NearBridge.sol
Expand Up @@ -81,8 +81,9 @@ contract NearBridge is INearBridge, AdminControlled {
uint256 lockEthAmount_,
uint256 lockDuration_,
uint256 replaceDuration_,
address admin_
) public AdminControlled(admin_, UNPAUSE_ALL) {
address admin_,
uint256 pausedFlags_
) public AdminControlled(admin_, pausedFlags_) {
require(replaceDuration_ > lockDuration_.mul(1000000000));
edwards = ed;
lockEthAmount = lockEthAmount_;
Expand Down
1 change: 0 additions & 1 deletion contracts/eth/nearbridge/dist/Migrations.full.abi

This file was deleted.

1 change: 0 additions & 1 deletion contracts/eth/nearbridge/dist/Migrations.full.bin

This file was deleted.

2 changes: 1 addition & 1 deletion contracts/eth/nearbridge/dist/NearBridge.full.abi
@@ -1 +1 @@
[{"inputs":[{"internalType":"contract Ed25519","name":"ed","type":"address"},{"internalType":"uint256","name":"lockEthAmount_","type":"uint256"},{"internalType":"uint256","name":"lockDuration_","type":"uint256"},{"internalType":"uint256","name":"replaceDuration_","type":"uint256"},{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint64","name":"height","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"name":"BlockHashAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint64","name":"height","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"name":"BlockHashReverted","type":"event"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"addLightClientBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"adminDelegatecall","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"flags","type":"uint256"}],"name":"adminPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"adminReceiveEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"adminSendEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"key","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"adminSstore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"key","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"mask","type":"uint256"}],"name":"adminSstoreWithMask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"height","type":"uint64"}],"name":"blockHashes","outputs":[{"internalType":"bytes32","name":"res","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"height","type":"uint64"}],"name":"blockMerkleRoots","outputs":[{"internalType":"bytes32","name":"res","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bridgeState","outputs":[{"components":[{"internalType":"uint256","name":"currentHeight","type":"uint256"},{"internalType":"uint256","name":"nextTimestamp","type":"uint256"},{"internalType":"uint256","name":"nextValidAt","type":"uint256"},{"internalType":"uint256","name":"numBlockProducers","type":"uint256"}],"internalType":"struct NearBridge.BridgeState","name":"res","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"receiver","type":"address"},{"internalType":"uint256","name":"signatureIndex","type":"uint256"}],"name":"challenge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"signatureIndex","type":"uint256"}],"name":"checkBlockProducerSignatureInHead","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"initWithBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"initialValidators_","type":"bytes"}],"name":"initWithValidators","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastValidAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockEthAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"replaceDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
[{"inputs":[{"internalType":"contract Ed25519","name":"ed","type":"address"},{"internalType":"uint256","name":"lockEthAmount_","type":"uint256"},{"internalType":"uint256","name":"lockDuration_","type":"uint256"},{"internalType":"uint256","name":"replaceDuration_","type":"uint256"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"pausedFlags_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint64","name":"height","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"name":"BlockHashAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint64","name":"height","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"name":"BlockHashReverted","type":"event"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"addLightClientBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"adminDelegatecall","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"flags","type":"uint256"}],"name":"adminPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"adminReceiveEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"adminSendEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"key","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"adminSstore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"key","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"mask","type":"uint256"}],"name":"adminSstoreWithMask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"height","type":"uint64"}],"name":"blockHashes","outputs":[{"internalType":"bytes32","name":"res","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"height","type":"uint64"}],"name":"blockMerkleRoots","outputs":[{"internalType":"bytes32","name":"res","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bridgeState","outputs":[{"components":[{"internalType":"uint256","name":"currentHeight","type":"uint256"},{"internalType":"uint256","name":"nextTimestamp","type":"uint256"},{"internalType":"uint256","name":"nextValidAt","type":"uint256"},{"internalType":"uint256","name":"numBlockProducers","type":"uint256"}],"internalType":"struct NearBridge.BridgeState","name":"res","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"receiver","type":"address"},{"internalType":"uint256","name":"signatureIndex","type":"uint256"}],"name":"challenge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"signatureIndex","type":"uint256"}],"name":"checkBlockProducerSignatureInHead","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"initWithBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"initialValidators_","type":"bytes"}],"name":"initWithValidators","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastValidAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockEthAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"replaceDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
2 changes: 1 addition & 1 deletion contracts/eth/nearbridge/dist/NearBridge.full.bin

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions contracts/eth/nearbridge/dist/NearBridge.full.sol
Expand Up @@ -2363,8 +2363,9 @@ contract NearBridge is INearBridge, AdminControlled {
uint256 lockEthAmount_,
uint256 lockDuration_,
uint256 replaceDuration_,
address admin_
) public AdminControlled(admin_, UNPAUSE_ALL) {
address admin_,
uint256 pausedFlags_
) public AdminControlled(admin_, pausedFlags_) {
require(replaceDuration_ > lockDuration_.mul(1000000000));
edwards = ed;
lockEthAmount = lockEthAmount_;
Expand Down
3 changes: 2 additions & 1 deletion contracts/eth/nearbridge/test/NearBridge.js
Expand Up @@ -17,7 +17,8 @@ beforeEach(async function () {
ethers.BigNumber.from("1000000000000000000"), // 1e18
ethers.BigNumber.from("360"), // lock duration
ethers.BigNumber.from("362627730000"), // replace duration
ethers.constants.AddressZero
ethers.constants.AddressZero,
0
);
await NearBridge.deposit({ value: ethers.utils.parseEther('1') });
});
Expand Down
3 changes: 2 additions & 1 deletion contracts/eth/nearbridge/test/NearBridge2.js
Expand Up @@ -17,7 +17,8 @@ beforeEach(async function () {
ethers.BigNumber.from("1000000000000000000"), // 1e18
ethers.BigNumber.from("10"), // lock duration
ethers.BigNumber.from("20000000000"), // replace duration
ethers.constants.AddressZero
ethers.constants.AddressZero,
0
);
await NearBridge.deposit({ value: ethers.utils.parseEther('1') });
});
Expand Down
6 changes: 5 additions & 1 deletion contracts/eth/nearprover/contracts/NearProver.sol
Expand Up @@ -15,7 +15,11 @@ contract NearProver is INearProver, AdminControlled {

INearBridge public bridge;

constructor(INearBridge _bridge, address _admin) public AdminControlled(_admin, UNPAUSE_ALL) {
constructor(
INearBridge _bridge,
address _admin,
uint _pausedFlags
) public AdminControlled(_admin, _pausedFlags) {
bridge = _bridge;
}

Expand Down
1 change: 0 additions & 1 deletion contracts/eth/nearprover/dist/Migrations.full.abi

This file was deleted.

1 change: 0 additions & 1 deletion contracts/eth/nearprover/dist/Migrations.full.bin

This file was deleted.

0 comments on commit ac1c156

Please sign in to comment.