mirror of
https://github.com/arnaucube/hermez-node.git
synced 2026-02-07 03:16:45 +01:00
Update ethclient
This commit is contained in:
@@ -34,8 +34,8 @@ import (
|
||||
// WithdrawDelayerVars contains the Withdrawal Delayer smart contract variables
|
||||
// type WithdrawDelayerVars struct {
|
||||
// HermezRollupAddress eth.Address
|
||||
// HermezGovernanceDAOAddress eth.Address
|
||||
// WhiteHackGroupAddress eth.Address
|
||||
// HermezGovernanceAddress eth.Address
|
||||
// EmergencyCouncilAddress eth.Address
|
||||
// WithdrawalDelay uint
|
||||
// EmergencyModeStartingTime time.Time
|
||||
// EmergencyModeEnabled bool
|
||||
@@ -142,8 +142,7 @@ type RollupConstants struct {
|
||||
TokenHEZ ethCommon.Address `json:"tokenHEZ"`
|
||||
Verifiers []RollupVerifierStruct `json:"verifiers"`
|
||||
HermezAuctionContract ethCommon.Address `json:"hermezAuctionContract"`
|
||||
HermezGovernanceDAOAddress ethCommon.Address `json:"hermezGovernanceDAOAddress"`
|
||||
SafetyAddress ethCommon.Address `json:"safetyAddress"`
|
||||
HermezGovernanceAddress ethCommon.Address `json:"hermezGovernanceAddress"`
|
||||
WithdrawDelayerContract ethCommon.Address `json:"withdrawDelayerContract"`
|
||||
}
|
||||
|
||||
|
||||
@@ -16,12 +16,11 @@ type WDelayerConstants struct {
|
||||
type WDelayerVariables struct {
|
||||
EthBlockNum int64 `json:"ethereumBlockNum" meddler:"eth_block_num"`
|
||||
// HermezRollupAddress ethCommon.Address `json:"hermezRollupAddress" meddler:"rollup_address"`
|
||||
HermezGovernanceDAOAddress ethCommon.Address `json:"hermezGovernanceDAOAddress" meddler:"govdao_address" validate:"required"`
|
||||
WhiteHackGroupAddress ethCommon.Address `json:"whiteHackGroupAddress" meddler:"whg_address" validate:"required"`
|
||||
HermezKeeperAddress ethCommon.Address `json:"hermezKeeperAddress" meddler:"keeper_address" validate:"required"`
|
||||
WithdrawalDelay uint64 `json:"withdrawalDelay" meddler:"withdrawal_delay" validate:"required"`
|
||||
EmergencyModeStartingTime uint64 `json:"emergencyModeStartingTime" meddler:"emergency_start_time"`
|
||||
EmergencyMode bool `json:"emergencyMode" meddler:"emergency_mode"`
|
||||
HermezGovernanceAddress ethCommon.Address `json:"hermezGovernanceAddress" meddler:"govdao_address" validate:"required"`
|
||||
EmergencyCouncilAddress ethCommon.Address `json:"whiteHackGroupAddress" meddler:"whg_address" validate:"required"`
|
||||
WithdrawalDelay uint64 `json:"withdrawalDelay" meddler:"withdrawal_delay" validate:"required"`
|
||||
EmergencyModeStartingTime uint64 `json:"emergencyModeStartingTime" meddler:"emergency_start_time"`
|
||||
EmergencyMode bool `json:"emergencyMode" meddler:"emergency_mode"`
|
||||
}
|
||||
|
||||
// Copy returns a deep copy of the Variables
|
||||
|
||||
@@ -217,6 +217,29 @@ func (tx *L1Tx) BytesDataAvailability(nLevels uint32) ([]byte, error) {
|
||||
return b[:], nil
|
||||
}
|
||||
|
||||
// L1TxFromDataAvailability decodes a L1Tx from []byte (Data Availability)
|
||||
func L1TxFromDataAvailability(b []byte, nLevels uint32) (*L1Tx, error) {
|
||||
idxLen := nLevels / 8 //nolint:gomnd
|
||||
|
||||
fromIdxBytes := b[0:idxLen]
|
||||
toIdxBytes := b[idxLen : idxLen*2]
|
||||
amountBytes := b[idxLen*2 : idxLen*2+2]
|
||||
|
||||
l1tx := L1Tx{}
|
||||
fromIdx, err := IdxFromBytes(ethCommon.LeftPadBytes(fromIdxBytes, 6))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
l1tx.FromIdx = fromIdx
|
||||
toIdx, err := IdxFromBytes(ethCommon.LeftPadBytes(toIdxBytes, 6))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
l1tx.ToIdx = toIdx
|
||||
l1tx.EffectiveAmount = Float16FromBytes(amountBytes).BigInt()
|
||||
return &l1tx, nil
|
||||
}
|
||||
|
||||
// BytesGeneric returns the generic representation of a L1Tx. This method is
|
||||
// used to compute the []byte representation of a L1UserTx, and also to compute
|
||||
// the L1TxData for the ZKInputs (at the HashGlobalInputs), using this method
|
||||
|
||||
@@ -87,6 +87,31 @@ func TestBytesDataAvailability(t *testing.T) {
|
||||
assert.Equal(t, "0000000200000003000400", hex.EncodeToString(txCompressedData))
|
||||
}
|
||||
|
||||
func TestL1TxFromDataAvailability(t *testing.T) {
|
||||
tx := L1Tx{
|
||||
FromIdx: 2,
|
||||
ToIdx: 3,
|
||||
Amount: big.NewInt(4),
|
||||
}
|
||||
txCompressedData, err := tx.BytesDataAvailability(32)
|
||||
assert.Nil(t, err)
|
||||
l1tx, err := L1TxFromDataAvailability(txCompressedData, 32)
|
||||
assert.Equal(t, tx.FromIdx, l1tx.FromIdx)
|
||||
assert.Equal(t, tx.ToIdx, l1tx.ToIdx)
|
||||
|
||||
tx = L1Tx{
|
||||
FromIdx: 2,
|
||||
ToIdx: 3,
|
||||
EffectiveAmount: big.NewInt(4),
|
||||
}
|
||||
txCompressedData, err = tx.BytesDataAvailability(32)
|
||||
assert.Nil(t, err)
|
||||
l1tx, err = L1TxFromDataAvailability(txCompressedData, 32)
|
||||
assert.Equal(t, tx.FromIdx, l1tx.FromIdx)
|
||||
assert.Equal(t, tx.ToIdx, l1tx.ToIdx)
|
||||
assert.Equal(t, tx.EffectiveAmount, l1tx.EffectiveAmount)
|
||||
}
|
||||
|
||||
func TestL1userTxByteParsers(t *testing.T) {
|
||||
var pkComp babyjub.PublicKeyComp
|
||||
pkCompL := []byte("0x56ca90f80d7c374ae7485e9bcc47d4ac399460948da6aeeb899311097925a72c")
|
||||
|
||||
@@ -134,8 +134,8 @@ func (tx L2Tx) BytesDataAvailability(nLevels uint32) ([]byte, error) {
|
||||
return b[:], nil
|
||||
}
|
||||
|
||||
// L2TxFromBytes decodes a L1Tx from []byte
|
||||
func L2TxFromBytes(b []byte, nLevels int) (*L2Tx, error) {
|
||||
// L2TxFromBytesDataAvailability decodes a L2Tx from []byte (Data Availability)
|
||||
func L2TxFromBytesDataAvailability(b []byte, nLevels int) (*L2Tx, error) {
|
||||
idxLen := nLevels / 8 //nolint:gomnd
|
||||
tx := &L2Tx{}
|
||||
var err error
|
||||
|
||||
@@ -36,7 +36,7 @@ func TestL2TxByteParsers(t *testing.T) {
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, expected, hex.EncodeToString(encodedData))
|
||||
|
||||
decodedData, err := L2TxFromBytes(encodedData, 32)
|
||||
decodedData, err := L2TxFromBytesDataAvailability(encodedData, 32)
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, l2Tx, decodedData)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user