mirror of
https://github.com/arnaucube/hermez-node.git
synced 2026-02-08 11:56:46 +01:00
Update ethclient contracts & rollup iteration 1
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
)
|
||||
|
||||
var wdelayerClient *WDelayerClient
|
||||
var wdelayerClientTest *WDelayerClient
|
||||
|
||||
// var wdelayerClientKep *WDelayerClient
|
||||
|
||||
@@ -18,117 +19,117 @@ var newWithdrawalDelay = big.NewInt(79)
|
||||
var maxEmergencyModeTime = time.Hour * 24 * 7 * 26
|
||||
|
||||
func TestWDelayerGetHermezGovernanceDAOAddress(t *testing.T) {
|
||||
governanceAddress, err := wdelayerClient.WDelayerGetHermezGovernanceDAOAddress()
|
||||
governanceAddress, err := wdelayerClientTest.WDelayerGetHermezGovernanceDAOAddress()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, &hermezGovernanceDAOAddressConst, governanceAddress)
|
||||
}
|
||||
|
||||
func TestWDelayerSetHermezGovernanceDAOAddress(t *testing.T) {
|
||||
wdelayerClientGov, err := NewWDelayerClient(ethereumClientGovDAO, wdelayerAddressConst)
|
||||
wdelayerClientGov, err := NewWDelayerClient(ethereumClientGovDAO, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientGov.WDelayerSetHermezGovernanceDAOAddress(auxAddressConst)
|
||||
require.Nil(t, err)
|
||||
auxAddress, err := wdelayerClient.WDelayerGetHermezGovernanceDAOAddress()
|
||||
auxAddress, err := wdelayerClientTest.WDelayerGetHermezGovernanceDAOAddress()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, &auxAddressConst, auxAddress)
|
||||
currentBlockNum, _ := wdelayerClient.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClient.WDelayerEventsByBlock(currentBlockNum)
|
||||
currentBlockNum, _ := wdelayerClientTest.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClientTest.WDelayerEventsByBlock(currentBlockNum)
|
||||
assert.Equal(t, auxAddressConst, wdelayerEvents.NewHermezGovernanceDAOAddress[0].NewHermezGovernanceDAOAddress)
|
||||
wdelayerClientAux, err := NewWDelayerClient(ethereumClientAux, wdelayerAddressConst)
|
||||
wdelayerClientAux, err := NewWDelayerClient(ethereumClientAux, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientAux.WDelayerSetHermezGovernanceDAOAddress(hermezGovernanceDAOAddressConst)
|
||||
require.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestWDelayerGetHermezKeeperAddress(t *testing.T) {
|
||||
keeperAddress, err := wdelayerClient.WDelayerGetHermezKeeperAddress()
|
||||
keeperAddress, err := wdelayerClientTest.WDelayerGetHermezKeeperAddress()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, &hermezKeeperAddressConst, keeperAddress)
|
||||
}
|
||||
|
||||
func TestWDelayerSetHermezKeeperAddress(t *testing.T) {
|
||||
wdelayerClientKep, err := NewWDelayerClient(ethereumClientKep, wdelayerAddressConst)
|
||||
wdelayerClientKep, err := NewWDelayerClient(ethereumClientKep, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientKep.WDelayerSetHermezKeeperAddress(auxAddressConst)
|
||||
require.Nil(t, err)
|
||||
auxAddress, err := wdelayerClient.WDelayerGetHermezKeeperAddress()
|
||||
auxAddress, err := wdelayerClientTest.WDelayerGetHermezKeeperAddress()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, &auxAddressConst, auxAddress)
|
||||
currentBlockNum, _ := wdelayerClient.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClient.WDelayerEventsByBlock(currentBlockNum)
|
||||
currentBlockNum, _ := wdelayerClientTest.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClientTest.WDelayerEventsByBlock(currentBlockNum)
|
||||
assert.Equal(t, auxAddressConst, wdelayerEvents.NewHermezKeeperAddress[0].NewHermezKeeperAddress)
|
||||
wdelayerClientAux, err := NewWDelayerClient(ethereumClientAux, wdelayerAddressConst)
|
||||
wdelayerClientAux, err := NewWDelayerClient(ethereumClientAux, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientAux.WDelayerSetHermezKeeperAddress(hermezKeeperAddressConst)
|
||||
require.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestWDelayerGetWhiteHackGroupAddress(t *testing.T) {
|
||||
whiteHackGroupAddress, err := wdelayerClient.WDelayerGetWhiteHackGroupAddress()
|
||||
whiteHackGroupAddress, err := wdelayerClientTest.WDelayerGetWhiteHackGroupAddress()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, &whiteHackGroupAddressConst, whiteHackGroupAddress)
|
||||
}
|
||||
|
||||
func TestWDelayerSetWhiteHackGroupAddress(t *testing.T) {
|
||||
wdelayerClientWhite, err := NewWDelayerClient(ethereumClientWhite, wdelayerAddressConst)
|
||||
wdelayerClientWhite, err := NewWDelayerClient(ethereumClientWhite, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientWhite.WDelayerSetWhiteHackGroupAddress(auxAddressConst)
|
||||
require.Nil(t, err)
|
||||
auxAddress, err := wdelayerClient.WDelayerGetWhiteHackGroupAddress()
|
||||
auxAddress, err := wdelayerClientTest.WDelayerGetWhiteHackGroupAddress()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, &auxAddressConst, auxAddress)
|
||||
currentBlockNum, _ := wdelayerClient.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClient.WDelayerEventsByBlock(currentBlockNum)
|
||||
currentBlockNum, _ := wdelayerClientTest.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClientTest.WDelayerEventsByBlock(currentBlockNum)
|
||||
assert.Equal(t, auxAddressConst, wdelayerEvents.NewWhiteHackGroupAddress[0].NewWhiteHackGroupAddress)
|
||||
wdelayerClientAux, err := NewWDelayerClient(ethereumClientAux, wdelayerAddressConst)
|
||||
wdelayerClientAux, err := NewWDelayerClient(ethereumClientAux, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientAux.WDelayerSetWhiteHackGroupAddress(whiteHackGroupAddressConst)
|
||||
require.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestWDelayerIsEmergencyMode(t *testing.T) {
|
||||
emergencyMode, err := wdelayerClient.WDelayerIsEmergencyMode()
|
||||
emergencyMode, err := wdelayerClientTest.WDelayerIsEmergencyMode()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, false, emergencyMode)
|
||||
}
|
||||
|
||||
func TestWDelayerGetWithdrawalDelay(t *testing.T) {
|
||||
withdrawalDelay, err := wdelayerClient.WDelayerGetWithdrawalDelay()
|
||||
withdrawalDelay, err := wdelayerClientTest.WDelayerGetWithdrawalDelay()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, initWithdrawalDelay, withdrawalDelay)
|
||||
}
|
||||
|
||||
func TestWDelayerChangeWithdrawalDelay(t *testing.T) {
|
||||
wdelayerClientKep, err := NewWDelayerClient(ethereumClientKep, wdelayerAddressConst)
|
||||
wdelayerClientKep, err := NewWDelayerClient(ethereumClientKep, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientKep.WDelayerChangeWithdrawalDelay(newWithdrawalDelay.Uint64())
|
||||
require.Nil(t, err)
|
||||
withdrawalDelay, err := wdelayerClient.WDelayerGetWithdrawalDelay()
|
||||
withdrawalDelay, err := wdelayerClientTest.WDelayerGetWithdrawalDelay()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, newWithdrawalDelay, withdrawalDelay)
|
||||
currentBlockNum, _ := wdelayerClient.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClient.WDelayerEventsByBlock(currentBlockNum)
|
||||
currentBlockNum, _ := wdelayerClientTest.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClientTest.WDelayerEventsByBlock(currentBlockNum)
|
||||
assert.Equal(t, newWithdrawalDelay.Uint64(), wdelayerEvents.NewWithdrawalDelay[0].WithdrawalDelay)
|
||||
}
|
||||
|
||||
func TestWDelayerDeposit(t *testing.T) {
|
||||
amount := new(big.Int)
|
||||
amount.SetString("1100000000000000000", 10)
|
||||
wdelayerClientHermez, err := NewWDelayerClient(ethereumClientHermez, wdelayerAddressConst)
|
||||
wdelayerClientHermez, err := NewWDelayerClient(ethereumClientHermez, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientHermez.WDelayerDeposit(auxAddressConst, tokenHezAddressConst, amount)
|
||||
_, err = wdelayerClientHermez.WDelayerDeposit(auxAddressConst, tokenERC20AddressConst, amount)
|
||||
require.Nil(t, err)
|
||||
currentBlockNum, _ := wdelayerClient.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClient.WDelayerEventsByBlock(currentBlockNum)
|
||||
currentBlockNum, _ := wdelayerClientTest.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClientTest.WDelayerEventsByBlock(currentBlockNum)
|
||||
assert.Equal(t, amount, wdelayerEvents.Deposit[0].Amount)
|
||||
assert.Equal(t, auxAddressConst, wdelayerEvents.Deposit[0].Owner)
|
||||
assert.Equal(t, tokenHezAddressConst, wdelayerEvents.Deposit[0].Token)
|
||||
assert.Equal(t, tokenERC20AddressConst, wdelayerEvents.Deposit[0].Token)
|
||||
}
|
||||
|
||||
func TestWDelayerDepositInfo(t *testing.T) {
|
||||
amount := new(big.Int)
|
||||
amount.SetString("1100000000000000000", 10)
|
||||
state, err := wdelayerClient.WDelayerDepositInfo(auxAddressConst, tokenHezAddressConst)
|
||||
state, err := wdelayerClientTest.WDelayerDepositInfo(auxAddressConst, tokenERC20AddressConst)
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, state.Amount, amount)
|
||||
}
|
||||
@@ -136,34 +137,48 @@ func TestWDelayerDepositInfo(t *testing.T) {
|
||||
func TestWDelayerWithdrawal(t *testing.T) {
|
||||
amount := new(big.Int)
|
||||
amount.SetString("1100000000000000000", 10)
|
||||
_, err := wdelayerClient.WDelayerWithdrawal(auxAddressConst, tokenHezAddressConst)
|
||||
_, err := wdelayerClientTest.WDelayerWithdrawal(auxAddressConst, tokenERC20AddressConst)
|
||||
require.Contains(t, err.Error(), "Withdrawal not allowed yet")
|
||||
addBlocks(newWithdrawalDelay.Int64(), ethClientDialURL)
|
||||
_, err = wdelayerClient.WDelayerWithdrawal(auxAddressConst, tokenHezAddressConst)
|
||||
_, err = wdelayerClientTest.WDelayerWithdrawal(auxAddressConst, tokenERC20AddressConst)
|
||||
require.Nil(t, err)
|
||||
currentBlockNum, _ := wdelayerClient.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClient.WDelayerEventsByBlock(currentBlockNum)
|
||||
currentBlockNum, _ := wdelayerClientTest.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClientTest.WDelayerEventsByBlock(currentBlockNum)
|
||||
assert.Equal(t, amount, wdelayerEvents.Withdraw[0].Amount)
|
||||
assert.Equal(t, auxAddressConst, wdelayerEvents.Withdraw[0].Owner)
|
||||
assert.Equal(t, tokenHezAddressConst, wdelayerEvents.Withdraw[0].Token)
|
||||
assert.Equal(t, tokenERC20AddressConst, wdelayerEvents.Withdraw[0].Token)
|
||||
}
|
||||
|
||||
func TestWDelayerSecondDeposit(t *testing.T) {
|
||||
amount := new(big.Int)
|
||||
amount.SetString("1100000000000000000", 10)
|
||||
wdelayerClientHermez, err := NewWDelayerClient(ethereumClientHermez, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientHermez.WDelayerDeposit(auxAddressConst, tokenERC20AddressConst, amount)
|
||||
require.Nil(t, err)
|
||||
currentBlockNum, _ := wdelayerClientTest.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClientTest.WDelayerEventsByBlock(currentBlockNum)
|
||||
assert.Equal(t, amount, wdelayerEvents.Deposit[0].Amount)
|
||||
assert.Equal(t, auxAddressConst, wdelayerEvents.Deposit[0].Owner)
|
||||
assert.Equal(t, tokenERC20AddressConst, wdelayerEvents.Deposit[0].Token)
|
||||
}
|
||||
|
||||
func TestWDelayerEnableEmergencyMode(t *testing.T) {
|
||||
wdelayerClientKep, err := NewWDelayerClient(ethereumClientKep, wdelayerAddressConst)
|
||||
wdelayerClientKep, err := NewWDelayerClient(ethereumClientKep, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientKep.WDelayerEnableEmergencyMode()
|
||||
require.Nil(t, err)
|
||||
emergencyMode, err := wdelayerClient.WDelayerIsEmergencyMode()
|
||||
emergencyMode, err := wdelayerClientTest.WDelayerIsEmergencyMode()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, true, emergencyMode)
|
||||
currentBlockNum, _ := wdelayerClient.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClient.WDelayerEventsByBlock(currentBlockNum)
|
||||
currentBlockNum, _ := wdelayerClientTest.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClientTest.WDelayerEventsByBlock(currentBlockNum)
|
||||
auxEvent := new(WDelayerEventEmergencyModeEnabled)
|
||||
assert.Equal(t, auxEvent, &wdelayerEvents.EmergencyModeEnabled[0])
|
||||
}
|
||||
|
||||
func TestWDelayerGetEmergencyModeStartingTime(t *testing.T) {
|
||||
emergencyModeStartingTime, err := wdelayerClient.WDelayerGetEmergencyModeStartingTime()
|
||||
emergencyModeStartingTime, err := wdelayerClientTest.WDelayerGetEmergencyModeStartingTime()
|
||||
require.Nil(t, err)
|
||||
// `emergencyModeStartingTime` is initialized to 0 in the smart
|
||||
// contract construction. Since we called WDelayerEnableEmergencyMode
|
||||
@@ -173,17 +188,20 @@ func TestWDelayerGetEmergencyModeStartingTime(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestWDelayerEscapeHatchWithdrawal(t *testing.T) {
|
||||
wdelayerClientWhite, err := NewWDelayerClient(ethereumClientWhite, wdelayerAddressConst)
|
||||
amount := new(big.Int)
|
||||
amount.SetString("10000000000000000", 10)
|
||||
wdelayerClientWhite, err := NewWDelayerClient(ethereumClientWhite, wdelayerTestAddressConst)
|
||||
require.Nil(t, err)
|
||||
_, err = wdelayerClientWhite.WDelayerEscapeHatchWithdrawal(governanceAddressConst, tokenHezAddressConst)
|
||||
_, err = wdelayerClientWhite.WDelayerEscapeHatchWithdrawal(governanceAddressConst, tokenERC20AddressConst, amount)
|
||||
require.Contains(t, err.Error(), "NO MAX_EMERGENCY_MODE_TIME")
|
||||
seconds := maxEmergencyModeTime.Seconds()
|
||||
addTime(seconds, ethClientDialURL)
|
||||
_, err = wdelayerClientWhite.WDelayerEscapeHatchWithdrawal(governanceAddressConst, tokenHezAddressConst)
|
||||
_, err = wdelayerClientWhite.WDelayerEscapeHatchWithdrawal(governanceAddressConst, tokenERC20AddressConst, amount)
|
||||
require.Nil(t, err)
|
||||
currentBlockNum, _ := wdelayerClient.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClient.WDelayerEventsByBlock(currentBlockNum)
|
||||
assert.Equal(t, tokenHezAddressConst, wdelayerEvents.EscapeHatchWithdrawal[0].Token)
|
||||
currentBlockNum, _ := wdelayerClientTest.client.EthCurrentBlock()
|
||||
wdelayerEvents, _, _ := wdelayerClientTest.WDelayerEventsByBlock(currentBlockNum)
|
||||
assert.Equal(t, tokenERC20AddressConst, wdelayerEvents.EscapeHatchWithdrawal[0].Token)
|
||||
assert.Equal(t, governanceAddressConst, wdelayerEvents.EscapeHatchWithdrawal[0].To)
|
||||
assert.Equal(t, whiteHackGroupAddressConst, wdelayerEvents.EscapeHatchWithdrawal[0].Who)
|
||||
assert.Equal(t, amount, wdelayerEvents.EscapeHatchWithdrawal[0].Amount)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user