|
package common
|
|
|
|
import (
|
|
"math/big"
|
|
|
|
ethCommon "github.com/ethereum/go-ethereum/common"
|
|
)
|
|
|
|
// WDelayerConstants are the constants of the Withdrawal Delayer Smart Contract
|
|
type WDelayerConstants struct {
|
|
// Max Withdrawal Delay
|
|
MaxWithdrawalDelay uint64 `json:"maxWithdrawalDelay"`
|
|
// Max Emergency mode time
|
|
MaxEmergencyModeTime uint64 `json:"maxEmergencyModeTime"`
|
|
// HermezRollup smartcontract address
|
|
HermezRollup ethCommon.Address `json:"hermezRollup"`
|
|
}
|
|
|
|
// WDelayerEscapeHatchWithdrawal is an escape hatch withdrawal of the
|
|
// Withdrawal Delayer Smart Contract
|
|
type WDelayerEscapeHatchWithdrawal struct {
|
|
EthBlockNum int64 `json:"ethereumBlockNum" meddler:"eth_block_num"`
|
|
Who ethCommon.Address `json:"who" meddler:"who_addr"`
|
|
To ethCommon.Address `json:"to" meddler:"to_addr"`
|
|
TokenAddr ethCommon.Address `json:"tokenAddr" meddler:"token_addr"`
|
|
Amount *big.Int `json:"amount" meddler:"amount,bigint"`
|
|
}
|
|
|
|
// WDelayerVariables are the variables of the Withdrawal Delayer Smart Contract
|
|
type WDelayerVariables struct {
|
|
EthBlockNum int64 `json:"ethereumBlockNum" meddler:"eth_block_num"`
|
|
// HermezRollupAddress ethCommon.Address `json:"hermezRollupAddress" meddler:"rollup_address"`
|
|
HermezGovernanceAddress ethCommon.Address `json:"hermezGovernanceAddress" meddler:"gov_address" validate:"required"`
|
|
EmergencyCouncilAddress ethCommon.Address `json:"emergencyCouncilAddress" meddler:"emg_address" validate:"required"`
|
|
WithdrawalDelay uint64 `json:"withdrawalDelay" meddler:"withdrawal_delay" validate:"required"`
|
|
EmergencyModeStartingBlock int64 `json:"emergencyModeStartingBlock" meddler:"emergency_start_block"`
|
|
EmergencyMode bool `json:"emergencyMode" meddler:"emergency_mode"`
|
|
}
|
|
|
|
// Copy returns a deep copy of the Variables
|
|
func (v *WDelayerVariables) Copy() *WDelayerVariables {
|
|
vCpy := *v
|
|
return &vCpy
|
|
}
|