Merge pull request #295 from hermeznetwork/feature/integration17

Redo coordinator structure, connect API to node
This commit is contained in:
a_bennassar
2020-11-24 19:07:35 +01:00
committed by GitHub
31 changed files with 1335 additions and 763 deletions

View File

@@ -42,7 +42,7 @@ func NewAPI(
hdb *historydb.HistoryDB,
sdb *statedb.StateDB,
l2db *l2db.L2DB,
config *configAPI,
config *Config,
) (*API, error) {
// Check input
// TODO: is stateDB only needed for explorer endpoints or for both?
@@ -54,8 +54,12 @@ func NewAPI(
}
a := &API{
h: hdb,
cg: config,
h: hdb,
cg: &configAPI{
RollupConstants: *newRollupConstants(config.RollupConstants),
AuctionConstants: config.AuctionConstants,
WDelayerConstants: config.WDelayerConstants,
},
s: sdb,
l2: l2db,
}

View File

@@ -219,7 +219,12 @@ func TestMain(m *testing.M) {
test.WipeDB(l2DB.DB()) // this will clean HistoryDB and L2DB
// Config (smart contract constants)
config = getConfigTest()
_config := getConfigTest()
config = configAPI{
RollupConstants: *newRollupConstants(_config.RollupConstants),
AuctionConstants: _config.AuctionConstants,
WDelayerConstants: _config.WDelayerConstants,
}
// API
apiGin := gin.Default()
@@ -230,7 +235,7 @@ func TestMain(m *testing.M) {
hdb,
sdb,
l2DB,
&config,
&_config,
)
if err != nil {
panic(err)
@@ -295,7 +300,8 @@ func TestMain(m *testing.M) {
}
for _, block := range blocksData {
// Insert block into HistoryDB
if err := api.h.AddBlockSCData(&block); err != nil { //nolint:gosec block is used as read only in the function
// nolint reason: block is used as read only in the function
if err := api.h.AddBlockSCData(&block); err != nil { //nolint:gosec
panic(err)
}
// Extract data

View File

@@ -26,6 +26,33 @@ type rollupConstants struct {
ExchangeMultiplier int `json:"exchangeMultiplier"`
}
func newRollupConstants(publicConstants common.RollupConstants) *rollupConstants {
return &rollupConstants{
PublicConstants: publicConstants,
MaxFeeIdxCoordinator: common.RollupConstMaxFeeIdxCoordinator,
ReservedIdx: common.RollupConstReservedIDx,
ExitIdx: common.RollupConstExitIDx,
LimitLoadAmount: common.RollupConstLimitLoadAmount,
LimitL2TransferAmount: common.RollupConstLimitL2TransferAmount,
LimitTokens: common.RollupConstLimitTokens,
L1CoordinatorTotalBytes: common.RollupConstL1CoordinatorTotalBytes,
L1UserTotalBytes: common.RollupConstL1UserTotalBytes,
MaxL1UserTx: common.RollupConstMaxL1UserTx,
MaxL1Tx: common.RollupConstMaxL1Tx,
InputSHAConstantBytes: common.RollupConstInputSHAConstantBytes,
NumBuckets: common.RollupConstNumBuckets,
MaxWithdrawalDelay: common.RollupConstMaxWithdrawalDelay,
ExchangeMultiplier: common.RollupConstExchangeMultiplier,
}
}
// Config of the API
type Config struct {
RollupConstants common.RollupConstants
AuctionConstants common.AuctionConstants
WDelayerConstants common.WDelayerConstants
}
type configAPI struct {
RollupConstants rollupConstants `json:"hermez"`
AuctionConstants common.AuctionConstants `json:"auction"`

View File

@@ -9,22 +9,9 @@ import (
"github.com/stretchr/testify/assert"
)
func getConfigTest() configAPI {
var config configAPI
func getConfigTest() Config {
var config Config
config.RollupConstants.ExchangeMultiplier = common.RollupConstExchangeMultiplier
config.RollupConstants.ExitIdx = common.RollupConstExitIDx
config.RollupConstants.ReservedIdx = common.RollupConstReservedIDx
config.RollupConstants.LimitLoadAmount, _ = new(big.Int).SetString("340282366920938463463374607431768211456", 10)
config.RollupConstants.LimitL2TransferAmount, _ = new(big.Int).SetString("6277101735386680763835789423207666416102355444464034512896", 10)
config.RollupConstants.LimitTokens = common.RollupConstLimitTokens
config.RollupConstants.L1CoordinatorTotalBytes = common.RollupConstL1CoordinatorTotalBytes
config.RollupConstants.L1UserTotalBytes = common.RollupConstL1UserTotalBytes
config.RollupConstants.MaxL1UserTx = common.RollupConstMaxL1UserTx
config.RollupConstants.MaxL1Tx = common.RollupConstMaxL1Tx
config.RollupConstants.InputSHAConstantBytes = common.RollupConstInputSHAConstantBytes
config.RollupConstants.NumBuckets = common.RollupConstNumBuckets
config.RollupConstants.MaxWithdrawalDelay = common.RollupConstMaxWithdrawalDelay
var rollupPublicConstants common.RollupConstants
rollupPublicConstants.AbsoluteMaxL1L2BatchTimeout = 240
rollupPublicConstants.HermezAuctionContract = ethCommon.HexToAddress("0x500D1d6A4c7D8Ae28240b47c8FCde034D827fD5e")
@@ -50,7 +37,7 @@ func getConfigTest() configAPI {
wdelayerConstants.MaxEmergencyModeTime = uint64(1000000)
wdelayerConstants.MaxWithdrawalDelay = uint64(10000000)
config.RollupConstants.PublicConstants = rollupPublicConstants
config.RollupConstants = rollupPublicConstants
config.AuctionConstants = auctionConstants
config.WDelayerConstants = wdelayerConstants

View File

@@ -51,17 +51,20 @@ func parsePagination(c querier) (fromItem *uint, order string, limit *uint, err
return fromItem, order, limit, nil
}
func parseQueryUint(name string, dflt *uint, min, max uint, c querier) (*uint, error) { //nolint:SA4009 res may be not overwriten
// nolint reason: res may be not overwriten
func parseQueryUint(name string, dflt *uint, min, max uint, c querier) (*uint, error) { //nolint:SA4009
str := c.Query(name)
return stringToUint(str, name, dflt, min, max)
}
func parseQueryInt64(name string, dflt *int64, min, max int64, c querier) (*int64, error) { //nolint:SA4009 res may be not overwriten
// nolint reason: res may be not overwriten
func parseQueryInt64(name string, dflt *int64, min, max int64, c querier) (*int64, error) { //nolint:SA4009
str := c.Query(name)
return stringToInt64(str, name, dflt, min, max)
}
func parseQueryBool(name string, dflt *bool, c querier) (*bool, error) { //nolint:SA4009 res may be not overwriten
// nolint reason: res may be not overwriten
func parseQueryBool(name string, dflt *bool, c querier) (*bool, error) { //nolint:SA4009
str := c.Query(name)
if str == "" {
return dflt, nil
@@ -296,12 +299,14 @@ func parseParamIdx(c paramer) (*common.Idx, error) {
return stringToIdx(idxStr, name)
}
func parseParamUint(name string, dflt *uint, min, max uint, c paramer) (*uint, error) { //nolint:SA4009 res may be not overwriten
// nolint reason: res may be not overwriten
func parseParamUint(name string, dflt *uint, min, max uint, c paramer) (*uint, error) { //nolint:SA4009
str := c.Param(name)
return stringToUint(str, name, dflt, min, max)
}
func parseParamInt64(name string, dflt *int64, min, max int64, c paramer) (*int64, error) { //nolint:SA4009 res may be not overwriten
// nolint reason: res may be not overwriten
func parseParamInt64(name string, dflt *int64, min, max int64, c paramer) (*int64, error) { //nolint:SA4009
str := c.Param(name)
return stringToInt64(str, name, dflt, min, max)
}