Merge conflict

pull/990/head
Rongjian Lan 5 years ago
commit 9fd08413b2
  1. 4
      api/service/staking/service.go
  2. 6
      cmd/client/txgen/main.go
  3. 69
      cmd/harmony/main.go
  4. 2
      consensus/config.go
  5. 21
      consensus/consensus.go
  6. 3
      consensus/consensus_service.go
  7. 29
      consensus/consensus_v2.go
  8. 8
      consensus/view_change.go
  9. 24
      core/resharding.go
  10. 2
      core/resharding_test.go
  11. 114
      internal/genesis/foundational.go
  12. 550
      internal/genesis/genesis.go
  13. 9
      internal/genesis/genesis_test.go
  14. 15
      internal/genesis/newnodes.go
  15. 34
      internal/memprofiling/lib.go
  16. 3
      internal/utils/bytes.go
  17. 2552
      internal/utils/contract/constants.go
  18. 11
      internal/utils/contract/constants_test.go
  19. 8
      node/contract.go
  20. 23
      node/node.go
  21. 15
      node/node_genesis.go
  22. 41
      test/configs/beaconchain20.txt
  23. 6
      test/deploy.sh
  24. 2
      test/test_before_submit.sh

@ -24,9 +24,9 @@ import (
"github.com/harmony-one/harmony/core"
"github.com/harmony-one/harmony/core/types"
"github.com/harmony-one/harmony/internal/ctxerror"
"github.com/harmony-one/harmony/internal/genesis"
hmykey "github.com/harmony-one/harmony/internal/keystore"
"github.com/harmony-one/harmony/internal/utils"
contract_constants "github.com/harmony-one/harmony/internal/utils/contract"
"github.com/harmony-one/harmony/p2p"
"github.com/harmony-one/harmony/p2p/host"
)
@ -152,7 +152,7 @@ func (s *Service) getFakeStakingInfo() *proto.StakingContractInfoResponse {
balance := big.NewInt(denominations.One)
nonce := uint64(0) // TODO: make it a incrementing field
priKey := contract_constants.GenesisBeaconAccountPriKey
priKey := genesis.GenesisBeaconAccountPriKey
contractAddress := crypto.PubkeyToAddress(priKey.PublicKey)
stakingContractAddress := crypto.CreateAddress(contractAddress, uint64(nonce))

@ -27,8 +27,8 @@ import (
"github.com/harmony-one/harmony/core/types"
"github.com/harmony-one/harmony/crypto/bls"
nodeconfig "github.com/harmony-one/harmony/internal/configs/node"
"github.com/harmony-one/harmony/internal/genesis"
"github.com/harmony-one/harmony/internal/utils"
"github.com/harmony-one/harmony/internal/utils/contract"
"github.com/harmony-one/harmony/node"
"github.com/harmony-one/harmony/p2p"
p2p_host "github.com/harmony-one/harmony/p2p/host"
@ -109,9 +109,9 @@ func setUpTXGen() *node.Node {
consensusObj.PublicKeys = nil
startIdx := 0
endIdx := startIdx + core.GenesisShardSize
for _, acct := range contract.GenesisBLSAccounts[startIdx:endIdx] {
for _, acct := range genesis.GenesisAccounts[startIdx:endIdx] {
secretKey := bls2.SecretKey{}
if err := secretKey.SetHexString(acct.Private); err != nil {
if err := secretKey.SetHexString(acct.BLSKey); err != nil {
_, _ = fmt.Fprintf(os.Stderr, "cannot parse secret key: %v\n",
err)
os.Exit(1)

@ -20,12 +20,12 @@ import (
"github.com/harmony-one/harmony/drand"
nodeconfig "github.com/harmony-one/harmony/internal/configs/node"
"github.com/harmony-one/harmony/internal/ctxerror"
"github.com/harmony-one/harmony/internal/genesis"
hmykey "github.com/harmony-one/harmony/internal/keystore"
memprofiling "github.com/harmony-one/harmony/internal/memprofiling"
"github.com/harmony-one/harmony/internal/profiler"
"github.com/harmony-one/harmony/internal/shardchain"
"github.com/harmony-one/harmony/internal/utils"
"github.com/harmony-one/harmony/internal/utils/contract"
"github.com/harmony-one/harmony/node"
"github.com/harmony-one/harmony/p2p"
"github.com/harmony-one/harmony/p2p/p2pimpl"
@ -91,14 +91,15 @@ var (
// Key file to store the private key
keyFile = flag.String("key", "./.hmykey", "the p2p key file of the harmony node")
// isGenesis indicates this node is a genesis node
isGenesis = flag.Bool("is_genesis", false, "true means this node is a genesis node")
isGenesis = flag.Bool("is_genesis", true, "true means this node is a genesis node")
// isArchival indicates this node is an archival node that will save and archive current blockchain
isArchival = flag.Bool("is_archival", false, "true means this node is a archival node")
//isNewNode indicates this node is a new node
isNewNode = flag.Bool("is_newnode", false, "true means this node is a new node")
accountIndex = flag.Int("account_index", 0, "the index of the staking account to use")
shardID = flag.Int("shard_id", -1, "the shard ID of this node")
enableMemProfiling = flag.Bool("enableMemProfiling", false, "Enable memsize logging.")
enableGC = flag.Bool("enableGC", true, "Enable calling garbage collector manually .")
// logConn logs incoming/outgoing connections
logConn = flag.Bool("log_conn", false, "log incoming/outgoing connections")
@ -107,9 +108,13 @@ var (
// -nopass is false by default. The keyfile must be encrypted.
hmyNoPass = flag.Bool("nopass", false, "No passphrase for the key (testing only)")
ks *keystore.KeyStore
myAccount accounts.Account
myPass = ""
stakingAccounts = flag.String("accounts", "", "account addresses of the node")
ks *keystore.KeyStore
myAccount accounts.Account
genesisAccount *genesis.DeployAccount
accountIndex int
// logging verbosity
verbosity = flag.Int("verbosity", 5, "Logging verbosity: 0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (default: 5)")
@ -158,14 +163,17 @@ func initSetup() {
allAccounts := ks.Accounts()
if *accountIndex < 0 || *accountIndex >= len(contract.GenesisAccounts) {
fmt.Printf("Invalid account_index: %v\n", *accountIndex)
os.Exit(4)
// TODO: lc try to enable multiple staking accounts per node
accountIndex, genesisAccount = genesis.FindAccount(*stakingAccounts)
if genesisAccount == nil {
fmt.Printf("Can't find the account address: %v!\n", *stakingAccounts)
os.Exit(100)
}
foundAccount := false
for _, account := range allAccounts {
if contract.GenesisAccounts[*accountIndex].Address == account.Address.Hex() {
if genesisAccount.Address == account.Address.Hex() {
myAccount = account
foundAccount = true
break
@ -173,13 +181,17 @@ func initSetup() {
}
if !foundAccount {
fmt.Printf("Can't find the matching account key of account_index: %v.\n", *accountIndex)
os.Exit(4)
fmt.Printf("Can't find the matching account key: %v!\n", genesisAccount.Address)
os.Exit(101)
}
genesisAccount.ShardID = uint32(accountIndex % core.GenesisShardNum)
fmt.Printf("My Account: %s\n", myAccount.Address.Hex())
fmt.Printf("Key URL: %s\n", myAccount.URL)
fmt.Printf("My Genesis Account: %v\n", *genesisAccount)
var myPass string
if !*hmyNoPass {
myPass = utils.AskForPassphrase("Passphrase: ")
err := ks.Unlock(myAccount, myPass)
@ -187,8 +199,14 @@ func initSetup() {
fmt.Printf("Wrong Passphrase! Unable to unlock account key!\n")
os.Exit(3)
}
hmykey.SetHmyPass(myPass)
}
// Set up manual call for garbage collection.
if *enableGC {
memprofiling.MaybeCallGCPeriodically()
}
hmykey.SetHmyPass(myPass)
}
func createGlobalConfig() *nodeconfig.ConfigType {
@ -196,16 +214,15 @@ func createGlobalConfig() *nodeconfig.ConfigType {
var myShardID uint32
nodeConfig := nodeconfig.GetDefaultConfig()
myShardID = uint32(*accountIndex % core.GenesisShardNum)
// Specified Shard ID override calculated Shard ID
if *shardID >= 0 {
utils.GetLogInstance().Info("ShardID Override", "original", myShardID, "override", *shardID)
myShardID = uint32(*shardID)
utils.GetLogInstance().Info("ShardID Override", "original", genesisAccount.ShardID, "override", *shardID)
genesisAccount.ShardID = uint32(*shardID)
}
if !*isNewNode {
nodeConfig = nodeconfig.GetShardConfig(myShardID)
nodeConfig = nodeconfig.GetShardConfig(uint32(genesisAccount.ShardID))
} else {
myShardID = 0 // This should be default value as new node doesn't belong to any shard.
if *shardID >= 0 {
@ -216,21 +233,24 @@ func createGlobalConfig() *nodeconfig.ConfigType {
}
// The initial genesis nodes are sequentially put into genesis shards based on their accountIndex
nodeConfig.ShardID = myShardID
nodeConfig.ShardID = uint32(genesisAccount.ShardID)
// Key Setup ================= [Start]
consensusPriKey := &bls.SecretKey{}
if *isGenesis {
err := consensusPriKey.SetHexString(contract.GenesisBLSAccounts[*accountIndex].Private)
err := consensusPriKey.SetHexString(genesisAccount.BLSKey)
if err != nil {
panic(fmt.Errorf("generate key error"))
}
} else {
err := consensusPriKey.SetHexString(contract.GenesisBLSAccounts[200+*accountIndex].Private) // TODO: use separate bls accounts for this.
if err != nil {
panic(fmt.Errorf("generate key error"))
}
// NewNode won't work
/*
err := consensusPriKey.SetHexString(genesis.NewNodeAccounts[])
if err != nil {
panic(fmt.Errorf("generate key error"))
}
*/
}
// P2p private key is used for secure message transfer between p2p nodes.
@ -248,7 +268,7 @@ func createGlobalConfig() *nodeconfig.ConfigType {
nodeConfig.SelfPeer = p2p.Peer{IP: *ip, Port: *port, ConsensusPubKey: nodeConfig.ConsensusPubKey}
if *accountIndex < core.GenesisShardNum { // The first node in a shard is the leader at genesis
if accountIndex < core.GenesisShardNum { // The first node in a shard is the leader at genesis
nodeConfig.Leader = nodeConfig.SelfPeer
nodeConfig.StringRole = "leader"
} else {
@ -387,7 +407,6 @@ func setUpConsensusAndNode(nodeConfig *nodeconfig.ConfigType) *node.Node {
// Watching currentNode and currentConsensus.
memprofiling.GetMemProfiling().Add("currentNode", currentNode)
memprofiling.GetMemProfiling().Add("currentConsensus", currentConsensus)
currentNode.WatchObservedObjects()
return currentNode
}

@ -14,6 +14,8 @@ const (
phaseDuration time.Duration = 90 * time.Second
bootstrapDuration time.Duration = 90 * time.Second
maxLogSize uint32 = 1000
// threshold between received consensus message blockNum and my blockNum
consensusBlockNumBuffer uint64 = 1
)
// TimeoutType is the type of timeout in view change protocol

@ -17,9 +17,8 @@ import (
bls_cosi "github.com/harmony-one/harmony/crypto/bls"
nodeconfig "github.com/harmony-one/harmony/internal/configs/node"
"github.com/harmony-one/harmony/internal/ctxerror"
"github.com/harmony-one/harmony/internal/memprofiling"
"github.com/harmony-one/harmony/internal/genesis"
"github.com/harmony-one/harmony/internal/utils"
"github.com/harmony-one/harmony/internal/utils/contract"
"github.com/harmony-one/harmony/p2p"
)
@ -142,18 +141,6 @@ type Consensus struct {
disableViewChange bool
}
// WatchObservedObjects adds more objects from consensus object to watch for memory issues.
func (consensus *Consensus) WatchObservedObjects() {
memprofiling.GetMemProfiling().Add("consensus.prepareSigs", &consensus.prepareSigs)
memprofiling.GetMemProfiling().Add("consensus.commitSigs", &consensus.commitSigs)
memprofiling.GetMemProfiling().Add("consensus.prepareBitmap", &consensus.prepareBitmap)
memprofiling.GetMemProfiling().Add("consensus.commitBitmap", &consensus.commitBitmap)
memprofiling.GetMemProfiling().Add("consensus.bhpSigs", &consensus.bhpSigs)
memprofiling.GetMemProfiling().Add("consensus.nilSigs", &consensus.nilSigs)
memprofiling.GetMemProfiling().Add("consensus.bhpBitmap", &consensus.bhpBitmap)
memprofiling.GetMemProfiling().Add("consensus.nilBitmap", &consensus.nilBitmap)
}
// StakeInfoFinder returns the stake information finder instance this
// consensus uses, e.g. for block reward distribution.
func (consensus *Consensus) StakeInfoFinder() StakeInfoFinder {
@ -260,8 +247,6 @@ func New(host p2p.Host, ShardID uint32, leader p2p.Peer, blsPriKey *bls.SecretKe
consensus.uniqueIDInstance = utils.GetUniqueValidatorIDInstance()
// Watch objects for the first time.
consensus.WatchObservedObjects()
return &consensus, nil
}
@ -388,8 +373,8 @@ func NewGenesisStakeInfoFinder() (*GenesisStakeInfoFinder, error) {
byNodeKey: make(map[types.BlsPublicKey][]*structs.StakeInfo),
byAccount: make(map[common.Address][]*structs.StakeInfo),
}
for idx, account := range contract.GenesisAccounts {
blsSecretKeyHex := contract.GenesisBLSAccounts[idx].Private
for idx, account := range genesis.GenesisAccounts {
blsSecretKeyHex := account.BLSKey
blsSecretKey := bls.SecretKey{}
if err := blsSecretKey.SetHexString(blsSecretKeyHex); err != nil {
return nil, ctxerror.New("cannot convert BLS secret key",

@ -360,9 +360,6 @@ func (consensus *Consensus) ResetState() {
consensus.commitBitmap = commitBitmap
consensus.aggregatedPrepareSig = nil
consensus.aggregatedCommitSig = nil
// Because we created new map objects we need to overwrite the mapping of observed objects.
consensus.WatchObservedObjects()
}
// Returns a string representation of this consensus

@ -188,6 +188,8 @@ func (consensus *Consensus) onAnnounce(msg *msg_pb.Message) {
return
}
consensus.tryCatchup()
consensus.mutex.Lock()
defer consensus.mutex.Unlock()
@ -399,6 +401,8 @@ func (consensus *Consensus) onPrepared(msg *msg_pb.Message) {
return
}
consensus.tryCatchup()
if consensus.checkViewID(recvMsg) != nil {
utils.GetLogger().Debug("viewID check failed", "viewID", recvMsg.ViewID, "myViewID", consensus.viewID)
return
@ -639,10 +643,12 @@ func (consensus *Consensus) onCommitted(msg *msg_pb.Message) {
utils.GetLogger().Error("Failed to verify the multi signature for commit phase", "blockNum", recvMsg.BlockNum)
return
}
consensus.aggregatedCommitSig = aggSig
consensus.commitBitmap = mask
utils.GetLogger().Debug("committed message added", "phase", consensus.phase, "myViewID", consensus.viewID, "myBlock", consensus.blockNum, "msgViewID", recvMsg.ViewID, "msgBlock", recvMsg.BlockNum)
consensus.pbftLog.AddMessage(recvMsg)
if recvMsg.BlockNum > consensus.blockNum {
if recvMsg.BlockNum-consensus.blockNum > consensusBlockNumBuffer {
utils.GetLogger().Debug("onCommitted out of sync", "myBlock", consensus.blockNum, "msgBlock", recvMsg.BlockNum)
go func() {
select {
@ -657,18 +663,15 @@ func (consensus *Consensus) onCommitted(msg *msg_pb.Message) {
return
}
// if consensus.checkViewID(recvMsg) != nil {
// utils.GetLogger().Debug("viewID check failed", "viewID", recvMsg.ViewID, "myViewID", consensus.viewID)
// return
// }
consensus.tryCatchup()
consensus.mutex.Lock()
defer consensus.mutex.Unlock()
if consensus.checkViewID(recvMsg) != nil {
utils.GetLogger().Debug("viewID check failed", "viewID", recvMsg.ViewID, "myViewID", consensus.viewID)
return
}
consensus.aggregatedCommitSig = aggSig
consensus.commitBitmap = mask
go consensus.tryCatchup()
if consensus.consensusTimeout[timeoutBootstrap].IsActive() {
consensus.consensusTimeout[timeoutBootstrap].Stop()
utils.GetLogger().Debug("start consensus timeout; stop bootstrap timeout only once", "viewID", consensus.viewID, "block", consensus.blockNum)
@ -686,7 +689,6 @@ func (consensus *Consensus) tryCatchup() {
// return
// }
currentBlockNum := consensus.blockNum
consensus.switchPhase(Announce, true)
for {
msgs := consensus.pbftLog.GetMessagesByTypeSeq(msg_pb.MessageType_COMMITTED, consensus.blockNum)
if len(msgs) == 0 {
@ -755,6 +757,9 @@ func (consensus *Consensus) tryCatchup() {
break
}
if currentBlockNum < consensus.blockNum {
consensus.switchPhase(Announce, true)
}
// catup up and skip from view change trap
if currentBlockNum < consensus.blockNum && consensus.mode.Mode() == ViewChanging {
consensus.mode.SetMode(Normal)

@ -150,9 +150,6 @@ func (consensus *Consensus) ResetViewChangeState() {
consensus.bhpSigs = map[common.Address]*bls.Sign{}
consensus.nilSigs = map[common.Address]*bls.Sign{}
consensus.viewIDSigs = map[common.Address]*bls.Sign{}
// Because we created new map objects we need to overwrite the mapping of observed objects.
consensus.WatchObservedObjects()
}
func createTimeout() map[TimeoutType]*utils.Timeout {
@ -395,13 +392,14 @@ func (consensus *Consensus) onNewView(msg *msg_pb.Message) {
}
if err = verifyMessageSig(senderKey, msg); err != nil {
utils.GetLogInstance().Debug("onNewView failed to verify new leader's signature", "error", err)
utils.GetLogInstance().Error("onNewView failed to verify new leader's signature", "error", err)
return
}
consensus.vcLock.Lock()
defer consensus.vcLock.Unlock()
if recvMsg.M3AggSig == nil {
if recvMsg.M3AggSig == nil || recvMsg.M3Bitmap == nil {
utils.GetLogInstance().Error("onNewView M3AggSig or M3Bitmap is nil")
return
}
m3Sig := recvMsg.M3AggSig

@ -11,15 +11,13 @@ import (
"github.com/harmony-one/harmony/contracts/structs"
"github.com/harmony-one/harmony/internal/ctxerror"
"github.com/harmony-one/harmony/internal/genesis"
"github.com/harmony-one/harmony/internal/utils"
"github.com/harmony-one/harmony/internal/utils/contract"
"github.com/harmony-one/harmony/core/types"
)
const (
// InitialSeed is the initial random seed, a magic number to answer everything, remove later
InitialSeed uint32 = 42
// GenesisEpoch is the number of the genesis epoch.
GenesisEpoch = 0
// FirstEpoch is the number of the first epoch.
@ -28,6 +26,8 @@ const (
GenesisShardNum = 4
// GenesisShardSize is the size of each shard at genesis
GenesisShardSize = 100
// GenesisShardHarmonyNodes is the number of harmony node at each shard
GenesisShardHarmonyNodes = 78
// CuckooRate is the percentage of nodes getting reshuffled in the second step of cuckoo resharding.
CuckooRate = 0.1
)
@ -224,14 +224,26 @@ func GetInitShardState() types.ShardState {
shardState := types.ShardState{}
for i := 0; i < GenesisShardNum; i++ {
com := types.Committee{ShardID: uint32(i)}
for j := 0; j < GenesisShardSize; j++ {
for j := 0; j < GenesisShardHarmonyNodes; j++ {
index := i + j*GenesisShardNum // The initial account to use for genesis nodes
priKey := bls.SecretKey{}
priKey.SetHexString(contract.GenesisBLSAccounts[index].Private)
priKey.SetHexString(genesis.GenesisAccounts[index].BLSKey)
pubKey := types.BlsPublicKey{}
pubKey.FromLibBLSPublicKey(priKey.GetPublicKey())
// TODO: directly read address for bls too
curNodeID := types.NodeID{common.HexToAddress(contract.GenesisAccounts[index].Address), pubKey}
curNodeID := types.NodeID{common.HexToAddress(genesis.GenesisAccounts[index].Address), pubKey}
com.NodeList = append(com.NodeList, curNodeID)
}
// add FN runner's key
for j := GenesisShardHarmonyNodes; j < GenesisShardSize; j++ {
index := i + (j-GenesisShardHarmonyNodes)*GenesisShardNum
priKey := bls.SecretKey{}
priKey.SetHexString(genesis.GenesisFNAccounts[index].BLSKey)
pubKey := types.BlsPublicKey{}
pubKey.FromLibBLSPublicKey(priKey.GetPublicKey())
// TODO: directly read address for bls too
curNodeID := types.NodeID{common.HexToAddress(genesis.GenesisFNAccounts[index].Address), pubKey}
com.NodeList = append(com.NodeList, curNodeID)
}
shardState = append(shardState, com)

@ -39,7 +39,7 @@ func init() {
}
func fakeGetInitShardState(numberOfShards, numOfNodes int) types.ShardState {
rand.Seed(int64(InitialSeed))
rand.Seed(int64(42))
shardState := types.ShardState{}
for i := 0; i < numberOfShards; i++ {
sid := uint32(i)

@ -0,0 +1,114 @@
package genesis
// GenesisFNAccounts are the ECSDA accounts for the foundational nodes.
var GenesisFNAccounts = [...]DeployAccount{
{Address: "0x35D29200aFC9A4cDC05166096059a042078CB53e", Public: "0x35D29200aFC9A4cDC05166096059a042078CB53e", BLSKey: "f82fcd7b5dc07f3dd0259701300bb6746a789f8e0e7d72ac696108e075ff89d"},
{Address: "0xe4a69826534aD3f6ec6E432474B0380E7F9a9C3d", Public: "0xe4a69826534aD3f6ec6E432474B0380E7F9a9C3d", BLSKey: "8128924a101798a1c07679c21ad30f1c30bddc672f31bc3077e7cb0db24b86a"},
// 0 - 9
{Address: "0x04c3636dF766ad2d3E74424c016842f5704FAE3A", Public: "0x04c3636dF766ad2d3E74424c016842f5704FAE3A", BLSKey: "5837f197c5e01316d47e9e4d0207cb58f9a5addafe59122e81b3c21ea3f96fee"},
{Address: "0x053515CC2CAae77F7e2F0A9C48A27c8f6D76E99d", Public: "0x053515CC2CAae77F7e2F0A9C48A27c8f6D76E99d", BLSKey: "6830748bd831edeb48c1c292923f279f2a81c5c382c77b9aebcfe63620704ac"},
{Address: "0x0850243810E77fC6261965d2F163d36628E77E05", Public: "0x0850243810E77fC6261965d2F163d36628E77E05", BLSKey: "a30e9d8999787b5acfd72af1702f166d668022b62b5c44b56a882d4f60dfb81"},
{Address: "0x08aB87F3A8EB0b69a833575B6400670f3F330302", Public: "0x08aB87F3A8EB0b69a833575B6400670f3F330302", BLSKey: "3a9825d9fca01395737165b872297774283738270bd5795da518fcc12dc006d4"},
{Address: "0x0d51F2d1EB1716F30c6f72673a4A89a0A10cdf64", Public: "0x0d51F2d1EB1716F30c6f72673a4A89a0A10cdf64", BLSKey: "37e97aed614f5086f2fcee8c3152725440066c03f76e0d916a3e567056d31744"},
{Address: "0x144B2Fd168147311f749B0f9573664676C333e2A", Public: "0x144B2Fd168147311f749B0f9573664676C333e2A", BLSKey: "2bae3aeb4653657c1b30e4204e8c093bbab8e3ba93b421325dc0a3f60e53549c"},
{Address: "0x22117D26611161b1b1f4EBB06C441aeeA102261c", Public: "0x22117D26611161b1b1f4EBB06C441aeeA102261c", BLSKey: "588ec71b9999a4007663432e8e3fa50aae972ebe3bad89148f42e588cf101701"},
{Address: "0x24A8cD56bABef297F1C7234F830362466d01ff5d", Public: "0x24A8cD56bABef297F1C7234F830362466d01ff5d", BLSKey: "50a40637369e7d9d704f063c2c818a53e628d087b8d5a57a9661f4017c5ba0"},
{Address: "0x25347d09373B2644191f1DC4beDEFEBE26a5b2d1", Public: "0x25347d09373B2644191f1DC4beDEFEBE26a5b2d1", BLSKey: "72d41ddbfadf9b74f8ec4d6bf2c911b90325bf5bf6620ddd891c78fcf1b358d7"},
{Address: "0x25441821ecA41DEc79578aAB866d3627A2e9BB9f", Public: "0x25441821ecA41DEc79578aAB866d3627A2e9BB9f", BLSKey: "570dce63c362a8222fd564516538c84c81fdbc3d8dea0bd11129e0080c9d6486"},
// 10 - 19
{Address: "0x27930D539fA8B118B5547a81Fd4cd0f0Fd295503", Public: "0x27930D539fA8B118B5547a81Fd4cd0f0Fd295503", BLSKey: "71ccfdcf700678bcdcec92c5dda72a90f242b48dda9e91b988dc9403011bed77"},
{Address: "0x28085D40501df849246040Ea815fbD71F08c2fc4", Public: "0x28085D40501df849246040Ea815fbD71F08c2fc4", BLSKey: "3062268458934841a67e4d3ea5bc98756736194b62e33af0706e959125cd6296"},
{Address: "0x28dA1beF8F5361863DcD427B6264f9DdF05B5D14", Public: "0x28dA1beF8F5361863DcD427B6264f9DdF05B5D14", BLSKey: "27af5f58cb6c97e823a86ad4c9a4109adec1dc41bd6c5bd035e4c5ff7021ac9a"},
{Address: "0x2FB4584233B07d99ed7215c2E32dFCac8A2d5575", Public: "0x2FB4584233B07d99ed7215c2E32dFCac8A2d5575", BLSKey: "71d864883d2bd9286c41a5c4be282b6e6dcacb8cef75f6eca92f7141ba1eb7de"},
{Address: "0x2b3234Ee92270A486a1598c5Bd74e739EC26fd9b", Public: "0x2b3234Ee92270A486a1598c5Bd74e739EC26fd9b", BLSKey: "5000fc83d8074a44a6e2adcb2aba814f9464f05c15f0fcdd90ee4bf102b0f665"},
{Address: "0x2bC858D0967384C0093e12824Bb3d6486d51c30D", Public: "0x2bC858D0967384C0093e12824Bb3d6486d51c30D", BLSKey: "3a995a7f55096a2d0142106ca97d6d63cccaa62259f7e72b98629218212d1835"},
{Address: "0x324c741430F5B970b61E398434B4F3957a6BC6E0", Public: "0x324c741430F5B970b61E398434B4F3957a6BC6E0", BLSKey: "e1158bd530e6f57f8404be1116dc90dc5d41d638be2b9c583a6ba500d9d98c6"},
{Address: "0x3413e7e39eE7394b692FB04c12f5671d5Bb43e0b", Public: "0x3413e7e39eE7394b692FB04c12f5671d5Bb43e0b", BLSKey: "3d00e49943931598501e894c7a3c16349dad0ce4f8197150aa62cbf0bbef2c1a"},
{Address: "0x386333bfe5Dbdb4c0b5633E71190F3F822b3C0bC", Public: "0x386333bfe5Dbdb4c0b5633E71190F3F822b3C0bC", BLSKey: "3bfd4ccee42c931445103f114656502aa6ce1e81c83e614bb2a6510f52544abf"},
{Address: "0x3BF69655b3cE5212A3d56f0D78064Cb6F124a60B", Public: "0x3BF69655b3cE5212A3d56f0D78064Cb6F124a60B", BLSKey: "447d5a94aded9675fdf4729f3debe204a1c7cb2b7553e1dde17736e8c6d2a3ce"},
// 20 - 29
{Address: "0x3D88FF444D18F7bcC530F5f5171048e725AEc79C", Public: "0x3D88FF444D18F7bcC530F5f5171048e725AEc79C", BLSKey: "6f13f8f7461d670a263f91c8603271718dbb36d99a4a300b75315e4f6e25b489"},
{Address: "0x40d6f48c7b27BA7544b04456445Cf19B680F5484", Public: "0x40d6f48c7b27BA7544b04456445Cf19B680F5484", BLSKey: "385dc8a1eeb01d255b207dea926c03491f51f6928474e69c03f0ab0a28ae87c9"},
{Address: "0x43bcBa1c3c3Bf76790d04cad7357229ECD71BDAD", Public: "0x43bcBa1c3c3Bf76790d04cad7357229ECD71BDAD", BLSKey: "37efb861596a44781ec5d0754e113fd68ec6d02129087633b87209309533f1af"},
{Address: "0x52D77E90caE790ad2bA9DE138Ea8B65cCC5EF652", Public: "0x52D77E90caE790ad2bA9DE138Ea8B65cCC5EF652", BLSKey: "3f9b75217a80be57b852ddd8018ea2fcb31d6199e3b0db4064f631e7dc2d2807"},
{Address: "0x583B5d4a45E2ce2E29F2Dc6c0645344Bad901755", Public: "0x583B5d4a45E2ce2E29F2Dc6c0645344Bad901755", BLSKey: "5a65f60194e3fcec97a0bffc7104ae8b2319b6c0feea73a25b952ed8f844c7a1"},
{Address: "0x593815C55fC25B4BcC84473038A121a22796aAA8", Public: "0x593815C55fC25B4BcC84473038A121a22796aAA8", BLSKey: "3e42c6c419fdfa897ba715b6c2149d66e944d0afe311c05f70ae67691820cc29"},
{Address: "0x59ebA70c8D8B3d4157432815c2A2DA774bA63aa8", Public: "0x59ebA70c8D8B3d4157432815c2A2DA774bA63aa8", BLSKey: "370560f0549e7cbab83a9693b803eadc1a9c03b3445a9277aafd5a895a4e7a64"},
{Address: "0x5E49BB8be4e199e8ddDe3A09E67D3c23239AC16c", Public: "0x5E49BB8be4e199e8ddDe3A09E67D3c23239AC16c", BLSKey: "49f2f5793502eb401f01b18b6d4440c1e8dfc8ba978a70baccc0a712d4d4a30"},
{Address: "0x5dc4D61A44EBEb41549021342a290bd726623A38", Public: "0x5dc4D61A44EBEb41549021342a290bd726623A38", BLSKey: "4df4f1031a076da8f4dc7eed2bc7c338170881a6837c2b08826f9745b973d172"},
{Address: "0x609e8747cdcE518fB86C5990dCE325649C487133", Public: "0x609e8747cdcE518fB86C5990dCE325649C487133", BLSKey: "1df06efea571b52a420bb9b91c492e827b869be5a9039d2f49251daf7fb908aa"},
// 30 - 39
{Address: "0x638Ff0c3c291eA08c2653Bb993E3360D63038678", Public: "0x638Ff0c3c291eA08c2653Bb993E3360D63038678", BLSKey: "3afd1c6543c614cce560f40d2c1e97cd08f67f92c4b39eb658b9346baf0309e6"},
{Address: "0x65c123f9492De546B6e5852f58eB0Df39307Bf45", Public: "0x65c123f9492De546B6e5852f58eB0Df39307Bf45", BLSKey: "300182936b8b4fbb462b638f7abebaaac97f5f78f64e8ef36ea842dc433a45ad"},
{Address: "0x689a35324d6B8DDDfa3bF5E7b26A23E704dD0100", Public: "0x689a35324d6B8DDDfa3bF5E7b26A23E704dD0100", BLSKey: "17847ab540a1b364064190fead44024913d50e3a7ea06ec370c4b50689612384"},
{Address: "0x6A6A5FBfA9923EBB76f9E42013e7C4f3CfDC145C", Public: "0x6A6A5FBfA9923EBB76f9E42013e7C4f3CfDC145C", BLSKey: "59c9561d07d68e392a792bf7e8746fb89644addc2d683210ce28a1960ed5df65"},
{Address: "0x6b9E03aB56786f4F228eE11D965A1a81ed7dA1D4", Public: "0x6b9E03aB56786f4F228eE11D965A1a81ed7dA1D4", BLSKey: "7308cfc0eedf5393f64c9104b4dd841524dba8c6270a9c07d126e21105eec60"},
{Address: "0x6c11b83856804D1eae8823beB697d09569fE87A0", Public: "0x6c11b83856804D1eae8823beB697d09569fE87A0", BLSKey: "476e9ba5930dac70afb6435a8e50ed37b3a7bf9707d335fd9dd05ebcc73d9251"},
{Address: "0x72B6aefe8aC9B8873Ab854e6f4fD4801A3F4B2f0", Public: "0x72B6aefe8aC9B8873Ab854e6f4fD4801A3F4B2f0", BLSKey: "3c09d4e7bcfb4a3629b6172374076001ecbdf208106d0e9c71c46963b81e0d00"},
{Address: "0x76f8d12F6624f713B2D8894A749ad926F7812350", Public: "0x76f8d12F6624f713B2D8894A749ad926F7812350", BLSKey: "2cfdd3c95ffe3b7b70f0b87490ade1c5bd13799e011feb18cf7bdd958fa10453"},
{Address: "0x78A8D29D81dD02c13a2a6077d887CF661B67E2c0", Public: "0x78A8D29D81dD02c13a2a6077d887CF661B67E2c0", BLSKey: "1829f2c1f13b86744d801ed742393f11915ac555a1db0d9dde1819655590fbf8"},
{Address: "0x79f8E1B732bA63987873d5eB86C81364C2cF5021", Public: "0x79f8E1B732bA63987873d5eB86C81364C2cF5021", BLSKey: "5ea77c130f52e4fd7437f8e25b7221ba9694a2e4628654b3677e75eee4ebdc4e"},
// 40 - 49
{Address: "0x7A4306d4D0A4f15A5fA54486cE4e6403E313805A", Public: "0x7A4306d4D0A4f15A5fA54486cE4e6403E313805A", BLSKey: "53af2abd846ac55ed952cf21b341bfc5d3a1e00ac12129dd9e41972071af234c"},
{Address: "0x7ACDCB2BAcA2911BdcE98e308515A289ac60b7d2", Public: "0x7ACDCB2BAcA2911BdcE98e308515A289ac60b7d2", BLSKey: "1acaf7104a48a9da4a6d93bbd050230dd803a260e5b1e9bda782e5019885f5b9"},
{Address: "0x7f42f7a4d66f0387AE77A219d0742E8a706231CA", Public: "0x7f42f7a4d66f0387AE77A219d0742E8a706231CA", BLSKey: "31020fbc52611b249562f8ec723889da9e4aeef1e3bb37e5e90e39c7c474838b"},
{Address: "0x802bEcc3615Fb8b751ADebA452A30C57F351e8D1", Public: "0x802bEcc3615Fb8b751ADebA452A30C57F351e8D1", BLSKey: "4db9db91dda8c9967f74dfa4b009c76158dcf8006031cb0098d4f77baea8f2e2"},
{Address: "0x82301962Afa7328FDC34e3610B48D899F031e15F", Public: "0x82301962Afa7328FDC34e3610B48D899F031e15F", BLSKey: "6dc3799065d016ab96d7dd362b82793616399fc3e9615b2d86713905834348a3"},
{Address: "0x86b4b2dEEE393eBb9633e6F0FEd74F39638A7B4e", Public: "0x86b4b2dEEE393eBb9633e6F0FEd74F39638A7B4e", BLSKey: "5238e72345c82d9e529cdb79a16b0cde505fb7b10e65f9601d2a18dba0396752"},
{Address: "0x87a157db95dc3517Eb578d4cedee92a5ab275BD5", Public: "0x87a157db95dc3517Eb578d4cedee92a5ab275BD5", BLSKey: "37a61d9c128add82291c7f304f1275ad4abe91413b40f569096b2a2ee18e658d"},
{Address: "0x880D5c6aD4117D26126543Af48f2f9bCDd4DaA0A", Public: "0x880D5c6aD4117D26126543Af48f2f9bCDd4DaA0A", BLSKey: "3154dfa2bfa5cb6b711424c0a1098aad2b16b75c9a31206e578d87c2b53aa94c"},
{Address: "0x8cF87bB4BE77d8Dbf16fF61273e02E046a18D716", Public: "0x8cF87bB4BE77d8Dbf16fF61273e02E046a18D716", BLSKey: "6fbebacc62ceb8417a6457e53157dd2d2165d950970db840c62a95e01cc4543c"},
{Address: "0x8dc63cCA875eAd38d9554bB97171a4f18AbE92E7", Public: "0x8dc63cCA875eAd38d9554bB97171a4f18AbE92E7", BLSKey: "6d67e5640c0dce8c354eeace0a66df912f9e6011d5528b79fc26aa19f74ee8a"},
// 50 - 59
{Address: "0x93570Dcb1Bf1a0bD1d476a542309754a6dbCE632", Public: "0x93570Dcb1Bf1a0bD1d476a542309754a6dbCE632", BLSKey: "39f372c4ae8b66aee188d6b93faf5ffc027637c2a7352c850a386286cb1d0322"},
{Address: "0x9668c58b282f954EA8B732e0D72045bdF19df8B3", Public: "0x9668c58b282f954EA8B732e0D72045bdF19df8B3", BLSKey: "5e026a694cf2610b4a89c1f4b163f300f41f7e9d243f622da36a476e588f07e0"},
{Address: "0x97b834277538e4517f43f9E11fa0BbebaD7c0d3e", Public: "0x97b834277538e4517f43f9E11fa0BbebaD7c0d3e", BLSKey: "5ad3e33836bb2626279b0f75a70d53becf11362aee66195fca3b79f897229aab"},
{Address: "0x9c23fE8cdcA1a8E529deeE8eD8492575cc3F9129", Public: "0x9c23fE8cdcA1a8E529deeE8eD8492575cc3F9129", BLSKey: "170a9940960855169235886270a2be5c1033dd5555a8e09b88b20297932ee495"},
{Address: "0xA28e6f8D23cc3Fe77D531c7D60bd73F8fD71C5c7", Public: "0xA28e6f8D23cc3Fe77D531c7D60bd73F8fD71C5c7", BLSKey: "4ca252941e795dcae69fe7b08744d30e80f1fcd16683934831a1c2427af2a538"},
{Address: "0xA41F4dDd1b11A6107f1973037D070869495e71E4", Public: "0xA41F4dDd1b11A6107f1973037D070869495e71E4", BLSKey: "1deb567947914013b3ec5b75b098953866af2e09fc0c5d497668d5703ec1f52b"},
{Address: "0xA721ad85fFfAb28115e1b4B8347A5B42AEA26aA1", Public: "0xA721ad85fFfAb28115e1b4B8347A5B42AEA26aA1", BLSKey: "1b6c1a66406ed091243e5af88c8ca3cfb2d37cccfa2064dec4f615d18f14b2d3"},
{Address: "0xB18e698BE8698346f7929F4E019D8B1aFE3D04b7", Public: "0xB18e698BE8698346f7929F4E019D8B1aFE3D04b7", BLSKey: "8bfb75d011e179bc7a66915e81849cce26854ffc0ff4ae587e1013cf5be4632"},
{Address: "0xB1Fa8F1CEa1A78d8887609CebEA592313dD659C1", Public: "0xB1Fa8F1CEa1A78d8887609CebEA592313dD659C1", BLSKey: "6d06b60efbb94aa7a00d55122c1930d29d73d18ba9d5875c0eb5fc8cbaa14959"},
{Address: "0xB4018FF5B888e902bD952D6e55A5cDbd8C73Ac1A", Public: "0xB4018FF5B888e902bD952D6e55A5cDbd8C73Ac1A", BLSKey: "5b566bafbcbd319f2be986c48122de1bf1ff59af0c67899673cf65c2ef17c2dc"},
// 60 - 69
{Address: "0xB68751A436f287CE3DA347277259af5c7bA84e38", Public: "0xB68751A436f287CE3DA347277259af5c7bA84e38", BLSKey: "373f20e831998d9040dec116ed7f5d16b78367ffdf206b13c3c437bdf2869252"},
{Address: "0xB88AB7A6678c87aeBE7b753459258012eb2Cc76c", Public: "0xB88AB7A6678c87aeBE7b753459258012eb2Cc76c", BLSKey: "5a5b29539e0a635b3c5f3a9064d8f375c7badf5091eace3c91fa2420f00bd4be"},
{Address: "0xB99Ad8B391eDD1F15c51f773F4bc23Bba7dF45F3", Public: "0xB99Ad8B391eDD1F15c51f773F4bc23Bba7dF45F3", BLSKey: "706d9706f42f7c1229cdf499af4155ebbe9f1636f7df2d91e6640f963069a8f6"},
{Address: "0xC3FBdE6a171aCc0466614D09b58E013058e7c0d2", Public: "0xC3FBdE6a171aCc0466614D09b58E013058e7c0d2", BLSKey: "670cc2a2cf405c4fa7a560ae2edd2e193b35c73583a494363828dfa18fd8ab6c"},
{Address: "0xC6b6a71d6f0C5b98E25FCf14b5378c807B0d475a", Public: "0xC6b6a71d6f0C5b98E25FCf14b5378c807B0d475a", BLSKey: "6ac9db11d32288d155cdff1a29b07ccb52a6be140696bdbe0767ef32fae4d630"},
{Address: "0xC6fDB78B643E8eBaC472dB61c1e84B6Fe0Abe185", Public: "0xC6fDB78B643E8eBaC472dB61c1e84B6Fe0Abe185", BLSKey: "67cd0a36e8d3f1d61a13825140dce51e896d9eb307178074a727f30ac587fee3"},
{Address: "0xD0F9AD2b60792fAff02f8Bd0F2D9cE2790722706", Public: "0xD0F9AD2b60792fAff02f8Bd0F2D9cE2790722706", BLSKey: "5a08371e86970c2d7c15e9a0d404ab3e4503dc79fdaa5c3ab73b9f37c231b55"},
{Address: "0xD28B4bC96020De252A0ee817767B6Cdb26A47d73", Public: "0xD28B4bC96020De252A0ee817767B6Cdb26A47d73", BLSKey: "42d76f1f5c6878524f2bb61d58ab0ad3d48fda2ef53792da03208933892f2c98"},
{Address: "0xD31095BE15D4b0b16657EEB72e0cc81e24EAc101", Public: "0xD31095BE15D4b0b16657EEB72e0cc81e24EAc101", BLSKey: "2edfef59b86f638653c61e5da7d6a88fb481fd1ea5c937509690af2c46329e4a"},
{Address: "0xD499fAC5afa17b5705B91838753Bfbf2e20138e4", Public: "0xD499fAC5afa17b5705B91838753Bfbf2e20138e4", BLSKey: "485bc6c4979a0e586a77aa93a3ad677a9908ff042d958cdfb275a586fbfc1061"},
// 70 - 79
{Address: "0xDfC0B00B629dDD5704a156A0D932F78692fc842F", Public: "0xDfC0B00B629dDD5704a156A0D932F78692fc842F", BLSKey: "417da445b2653caf6b094fd95182548bf97a0c386a4f8ad24b93a8ea96b44073"},
{Address: "0xE2ab78ecf325084485957B2599d53Bcf944Cbca8", Public: "0xE2ab78ecf325084485957B2599d53Bcf944Cbca8", BLSKey: "45c2600a71d2e538134777477940cddded763f4734d76678e32ec87d31126943"},
{Address: "0xEC7C495866689d6b7E335D810645F440f16F86d0", Public: "0xEC7C495866689d6b7E335D810645F440f16F86d0", BLSKey: "40797d43fed357ccf2d643317c70cb5177aa289f3ee81bcf6c2e23933f65fd8d"},
{Address: "0xEd677E021df3542998e407970E1127d334Be0285", Public: "0xEd677E021df3542998e407970E1127d334Be0285", BLSKey: "221fef10b540078b9dc1c1254626b5c4a2eecc29d756b8afaf13d6937629a8f7"},
{Address: "0xF262609617c202087B31aCf364C00967f5Cd85De", Public: "0xF262609617c202087B31aCf364C00967f5Cd85De", BLSKey: "27df38aaff7fcdeb673eeae0282362704506bc54ec6856ccd888cc47af54938d"},
{Address: "0xF7E33ef7132bcc716C2242385d9862c3c43baB7E", Public: "0xF7E33ef7132bcc716C2242385d9862c3c43baB7E", BLSKey: "6e2479d510f0f6058d2b277c4a48fd6173bebf4bf34619ac473738d4da31f3c7"},
{Address: "0xa3B34f4E21C6c44A603E3c53abbF8b10C7BdaF59", Public: "0xa3B34f4E21C6c44A603E3c53abbF8b10C7BdaF59", BLSKey: "433ce09e054052678ac5f1c5021d07f181496116b021ec13405b98988fa9f2d0"},
{Address: "0xa4BF67e67910225aA1C3Cd65595d8a1b1227F42E", Public: "0xa4BF67e67910225aA1C3Cd65595d8a1b1227F42E", BLSKey: "13d2218fa9236f4c6941e0c71e6cc8d1911f6c6289e11db0e2125820e370672"},
{Address: "0xa61CA9f1EB26787EEd89dAEE4A326C4e1cb5eCdB", Public: "0xa61CA9f1EB26787EEd89dAEE4A326C4e1cb5eCdB", BLSKey: "595dd876e4e2c1f4e0ccfe2fd02440bdbe03379333b98ef94e906ba66b1d0c"},
{Address: "0xa714cd269A0ca23131C8cD5aeFC49F450578C4B4", Public: "0xa714cd269A0ca23131C8cD5aeFC49F450578C4B4", BLSKey: "387811013e8579d51b4625368dbefd4c2ae7205de6d6593a72b06c44c51e8629"},
// 80 - 89
{Address: "0xb108BF4945Bd7975cF974f47476e689ACd542F23", Public: "0xb108BF4945Bd7975cF974f47476e689ACd542F23", BLSKey: "2e48ddb0cb3d6c816e8faff0661fc083b1a70c345a3130049af64ab25f12c822"},
{Address: "0xb69509BFf7Ac53eA998e16FBC247f24F88eE8572", Public: "0xb69509BFf7Ac53eA998e16FBC247f24F88eE8572", BLSKey: "6a6336b9e939e44caaac541829ebf8443b60bbb39359f06becb7cd2a432b9597"},
{Address: "0xc55c56F661eD185103839FdFeFd80DC38938913b", Public: "0xc55c56F661eD185103839FdFeFd80DC38938913b", BLSKey: "6ed95c176e3805957c1781466ef59fbb45ab134294e5d6e84c51b53393db4c3e"},
{Address: "0xd021c9a6A8816FE57a3A4CBd02fA824e0e92421B", Public: "0xd021c9a6A8816FE57a3A4CBd02fA824e0e92421B", BLSKey: "27c5867d1609b897dbd6858d82d21b7b875927a1a9dcc27f0dd53ac2d8223eee"},
{Address: "0xdA1DF648bC047546326D05dF370ec0ee3D84642A", Public: "0xdA1DF648bC047546326D05dF370ec0ee3D84642A", BLSKey: "2742de48065f12da2605606972f7d724d645cd9154c843697699c488f3e5b532"},
{Address: "0xeaD1fAa7E5Fdb6136057d4BfCa1f05D220D1441f", Public: "0xeaD1fAa7E5Fdb6136057d4BfCa1f05D220D1441f", BLSKey: "3d72a88df0677822b9a607b9fc55d2d8d3f088363bf380a3c334c65a24c49411"},
{Address: "0xf10f63f5Bd46c58d2e9530E7F8cb6b4336D05d4E", Public: "0xf10f63f5Bd46c58d2e9530E7F8cb6b4336D05d4E", BLSKey: "613f101fd405daa52c50416517ee151e4f6161fed5f7571b64d2470f86145aed"},
{Address: "0xfB81EFd254Fe117047872146806153539F89669E", Public: "0xfB81EFd254Fe117047872146806153539F89669E", BLSKey: "53b1951f2c9976fa5e92e936da3dd7a6a356fb387bb487489703347f708f9d5f"},
{Address: "0xfdc963E875Ea99E434e4B815b7d8Bf506dAA9222", Public: "0xfdc963E875Ea99E434e4B815b7d8Bf506dAA9222", BLSKey: "3606585dd5e71c3117da6f08d9c0fb55dac5caf67b22f5f0bdd1605e2e0132a2"},
}

@ -0,0 +1,550 @@
package genesis
import (
"crypto/ecdsa"
"fmt"
"os"
"strings"
"github.com/ethereum/go-ethereum/crypto"
"github.com/harmony-one/harmony/internal/utils"
)
const genesisString = "https://harmony.one 'Open Consensus for 10B' 2019.06.01 $ONE"
// DeployAccount is the account used in genesis
type DeployAccount struct {
Address string // account address
Public string // account public key
BLSKey string // account private BLS key (To be removed)
ShardID uint32 // shardID of the account
}
func (d DeployAccount) String() string {
return fmt.Sprintf("%s/%s/%s:%d", d.Address, d.Public, d.BLSKey, d.ShardID)
}
// BeaconAccountPriKey is the func which generates a constant private key.
func BeaconAccountPriKey() *ecdsa.PrivateKey {
prikey, err := ecdsa.GenerateKey(crypto.S256(), strings.NewReader(genesisString))
if err != nil && prikey == nil {
utils.GetLogInstance().Error("Failed to generate beacon chain contract deployer account")
os.Exit(111)
}
return prikey
}
// FindAccount find the DeployAccount based on the account address, and the account index
// the account address could be from GenesisAccounts or from GenesisFNAccounts
// the account index can be used to determin the shard of the account
func FindAccount(address string) (int, *DeployAccount) {
for i, acc := range GenesisAccounts {
if address == acc.Address {
return i, &acc
}
}
for i, acc := range GenesisFNAccounts {
if address == acc.Address {
return i, &acc
}
}
return 0, nil
}
// GenesisBeaconAccountPriKey is the private key of genesis beacon account.
var GenesisBeaconAccountPriKey = BeaconAccountPriKey()
// GenesisBeaconAccountPublicKey is the private key of genesis beacon account.
var GenesisBeaconAccountPublicKey = GenesisBeaconAccountPriKey.PublicKey
// DeployedContractAddress is the deployed contract address of the staking smart contract in beacon chain.
var DeployedContractAddress = crypto.CreateAddress(crypto.PubkeyToAddress(GenesisBeaconAccountPublicKey), uint64(0))
// GenesisAccounts are the accounts for the initial genesis nodes hosted by Harmony.
var GenesisAccounts = [...]DeployAccount{
// 0 - 9
{Address: "0x007579ED2Fe889C5255C36d4978Ac94d25811771", Public: "0x007579ED2Fe889C5255C36d4978Ac94d25811771", BLSKey: "66acb3a7c990be4b06709058fdef8122b7ecdbaf023e56ccf8cdf671c5333646"},
{Address: "0x00F98965458a35f3788C45A095582AB18A5ae79c", Public: "0x00F98965458a35f3788C45A095582AB18A5ae79c", BLSKey: "5e9e2fffbf7cfad085d7b0147d2acd680cfd8b8d62daa9c39370185ba0207920"},
{Address: "0x0102B41674C3ac2634f404d8c25C25Bb959fE952", Public: "0x0102B41674C3ac2634f404d8c25C25Bb959fE952", BLSKey: "56714bb94188c335d1243fa3d17fd50ff63a1a9bf740faecd97996f3a0737e87"},
{Address: "0x0178A7bE4399c1968156edE4f52ae91953ab9B63", Public: "0x0178A7bE4399c1968156edE4f52ae91953ab9B63", BLSKey: "3de4fbe27f453b254014094108bf11b0a2ba4144585bf4cb10332155476339e9"},
{Address: "0x0215c51A3d67Eb1e949bD1Df8b74D3aef097e92d", Public: "0x0215c51A3d67Eb1e949bD1Df8b74D3aef097e92d", BLSKey: "18c62ae8cd2a37e50b8fc89c53458ad6d9482f413d50086199d309ad1062684c"},
{Address: "0x021983eA41fbeeB39F82a9CAf1A83476F0cFeEDC", Public: "0x021983eA41fbeeB39F82a9CAf1A83476F0cFeEDC", BLSKey: "2ca85157154a7df9fcdb4a404c7a8ac0675bbff7e841237b0de4645a9dcaca1c"},
{Address: "0x03d1a55eA1246efB257D49D9286f7D370bd09c97", Public: "0x03d1a55eA1246efB257D49D9286f7D370bd09c97", BLSKey: "1dc77bb20378c7cacf82dd6fb7d5dedbb2c0855d85e0eb2d7d6df05bbb5da65d"},
{Address: "0x055b95d5205B5711099C32626Ea61481779a2233", Public: "0x055b95d5205B5711099C32626Ea61481779a2233", BLSKey: "185bcaede728332c088645b31b988404512eeeb02413360cac6e30c9ca002661"},
{Address: "0x0566729A6FCDda16287777baB5D4425AA93bB0Fc", Public: "0x0566729A6FCDda16287777baB5D4425AA93bB0Fc", BLSKey: "18b5d0d89b4575e002e4fd41e46fa628a248e1caa55fa887acd3c446b89058e3"},
{Address: "0x05bA7FcC4c1d7286f7A3d5552DdF305677338c22", Public: "0x05bA7FcC4c1d7286f7A3d5552DdF305677338c22", BLSKey: "2221983e3f69897d54fcaa3cb131f4c729592f1b10faf247c0772e7b6476c1fd"},
// 10 - 19
{Address: "0x063893E8EfA148E29B914702AD6A9930d41C8F13", Public: "0x063893E8EfA148E29B914702AD6A9930d41C8F13", BLSKey: "4000ba626d897e76a9878922deb081cfd52af3fefc6f353a51fa32dad88a6cc4"},
{Address: "0x06693dEE3d72a30075E7447b18c6f3ed8AE62174", Public: "0x06693dEE3d72a30075E7447b18c6f3ed8AE62174", BLSKey: "60b6b4326239eb330207d9b751cfcea620a41b02b9ca270ed8f1670a1ffa3f51"},
{Address: "0x066B40c45D06eEFE8Bb8677fdaFdaC5C8dF9d09C", Public: "0x066B40c45D06eEFE8Bb8677fdaFdaC5C8dF9d09C", BLSKey: "605234f8ea10fd73c0588f0e1fb40821efb341eea20e76d8350a1029e5af2dbf"},
{Address: "0x079C1FFEaa70Ebdd2F3235b2F82BeE0b1101f092", Public: "0x079C1FFEaa70Ebdd2F3235b2F82BeE0b1101f092", BLSKey: "4505d95f6045c8d2a00b923c583e82979e75a7b0c920ddf6f2af902c1ae37432"},
{Address: "0x07Fe4B973008c53528142b719BdfaC428F81905b", Public: "0x07Fe4B973008c53528142b719BdfaC428F81905b", BLSKey: "3b5fcadb39db34f9bbd4381836dc43a8629b6e14a3eac0942fcb70540538467b"},
{Address: "0x09531Cea52595bCe55329Be07f11Ad033B9814Ee", Public: "0x09531Cea52595bCe55329Be07f11Ad033B9814Ee", BLSKey: "3a315d1c8ede4b7f18ef51f8249ab2a414c910196f1b9995f9cce2d6d8aa2201"},
{Address: "0x0B4B626c913a46138feD9d7201E187A751DFF485", Public: "0x0B4B626c913a46138feD9d7201E187A751DFF485", BLSKey: "13a71379a7cb13aefa0433428b080d1f2ed3ee475f30bf093c1bfd278c07d0d0"},
{Address: "0x0CCa9111F4588EDB3c9a282faE233B830dE21A0D", Public: "0x0CCa9111F4588EDB3c9a282faE233B830dE21A0D", BLSKey: "6d543bbc84d0b4daa45c077ddfaaffa43343558e5cc5a1efde846c630170747f"},
{Address: "0x0F595ed534b6464eB2C80A037FFba02D23AfdfD2", Public: "0x0F595ed534b6464eB2C80A037FFba02D23AfdfD2", BLSKey: "1283b83fe50dc548eaa5cf850adb8940f5eaaff30816ecd46e1c0a7a548f52fc"},
{Address: "0x0a0b8c48e42c540078fD99004915Be265f380dB7", Public: "0x0a0b8c48e42c540078fD99004915Be265f380dB7", BLSKey: "488678864c4f2b7f3c80d83564f4f0521b26a81bb96be4fcf207a2d4b8dd2d7c"},
// 20 - 29
{Address: "0x0e59b767D5E74cf7B29Ef9bEc3dA4c402d357C6C", Public: "0x0e59b767D5E74cf7B29Ef9bEc3dA4c402d357C6C", BLSKey: "3798df1057956a508cec876c80fe8f3f13d0634eda783e989206e06eaa438c2e"},
{Address: "0x0fAAda81c203C74CAc786786f7D428477a04bF9c", Public: "0x0fAAda81c203C74CAc786786f7D428477a04bF9c", BLSKey: "205c0cca1a31f0e4133d5370f367770a92bd7426155e2927c37e30c26e33bf09"},
{Address: "0x0fd228bdFbe9ad0c898e9A0Fee2E6FB01f596F0d", Public: "0x0fd228bdFbe9ad0c898e9A0Fee2E6FB01f596F0d", BLSKey: "52ec360704b74829847d1beb0fb418b043fef4ebdc262ab18f3e6e995d17eea3"},
{Address: "0x123FF831333e2662D00c60A2C46f7196204506e9", Public: "0x123FF831333e2662D00c60A2C46f7196204506e9", BLSKey: "a2df0c55a81e2fa09727adaa3688a0fd1d1db0b55e717d0b35beb1bfb0b55a0"},
{Address: "0x1240775288d0EE975583A2A7022006539dADb354", Public: "0x1240775288d0EE975583A2A7022006539dADb354", BLSKey: "477d7be378125ebd5855f807466b57c055b2a9d709971ab41e3670f3a99b6b73"},
{Address: "0x127b8Cb71Fb78338d9EFFe47bB51c2EAd3995378", Public: "0x127b8Cb71Fb78338d9EFFe47bB51c2EAd3995378", BLSKey: "5659c001e745f164e7f7079a6bde2c4eb6a4536f3e92ac269cebab5439b7e99a"},
{Address: "0x141B0e0f05739B7B784654E973e9b9146473aAb9", Public: "0x141B0e0f05739B7B784654E973e9b9146473aAb9", BLSKey: "f180287d200cc5e1844e85649007d5b0dcb52a98c9a5c04b81ed06645a78968"},
{Address: "0x1492ebD0EcfD54B4c211b37C8891bA3493c52100", Public: "0x1492ebD0EcfD54B4c211b37C8891bA3493c52100", BLSKey: "7053ea601630909e40ac03fe808a087594bd72b6fe5ddd5e5466826e0f8e1153"},
{Address: "0x1530A04592F9C3bF06aC6044525f08937ED38edB", Public: "0x1530A04592F9C3bF06aC6044525f08937ED38edB", BLSKey: "710dff67c5ac5c08255c8075fdc7081bccae95b50b7e8bcea8164f609242b98a"},
{Address: "0x159f58a41F13ffC831690D81F308244A3b238523", Public: "0x159f58a41F13ffC831690D81F308244A3b238523", BLSKey: "44942cf6ea84f721c8dbb04f86adc5e99893f4c675e1e63afcc1851bc7437604"},
// 30 - 39
{Address: "0x16451cE5a762038eeA700A6aCd5F796DF3D6bE45", Public: "0x16451cE5a762038eeA700A6aCd5F796DF3D6bE45", BLSKey: "69f541ab0a1a16a8ad6a596151f9bfe9295cf6358796229c0adc32a4135069a8"},
{Address: "0x17f68b4C9e1eeE6eD5bBa0326c50515c7816FF78", Public: "0x17f68b4C9e1eeE6eD5bBa0326c50515c7816FF78", BLSKey: "4ecfc1eb2bb1523dbc887ab043d4b2751f55fe14bccbfe2da710b9d593ce6ea"},
{Address: "0x19373b0E0428cc0f3F25169Cd079d27856b9f6d6", Public: "0x19373b0E0428cc0f3F25169Cd079d27856b9f6d6", BLSKey: "6384b32b23c4f4b4bef6e6a7ef395b4ef11201cbe1d9e10264088e5298fef7a7"},
{Address: "0x1B77597d6664f1fB4894c735Ea80cf250866d265", Public: "0x1B77597d6664f1fB4894c735Ea80cf250866d265", BLSKey: "35ea57a9941344e3a985b0395621c71d078230bef272e008f733bbd3a3c67a06"},
{Address: "0x1Db6cf99e231e42CEB0389E7828b16Be9b6a385f", Public: "0x1Db6cf99e231e42CEB0389E7828b16Be9b6a385f", BLSKey: "335e0cf314d85acb5d89e8cc7838adbe4b8f53696aa59f0ad87824e782620498"},
{Address: "0x1F4B579f85E585039C56989DEB56377c529981Be", Public: "0x1F4B579f85E585039C56989DEB56377c529981Be", BLSKey: "6a892ed6aee7badfc679ca93fe11314e71346eb68ddadb193bb1b19f7487b042"},
{Address: "0x1e9fCd9B1BDC53921d6a97D305f8a829Fd1299fE", Public: "0x1e9fCd9B1BDC53921d6a97D305f8a829Fd1299fE", BLSKey: "517de2e70402bdcc8c6d8f3ff4993f4b409e8a925cf9c40dc72a88b231f8608"},
{Address: "0x1eEbE25D248BD31B9A166326F2DF4bA9874Bae2E", Public: "0x1eEbE25D248BD31B9A166326F2DF4bA9874Bae2E", BLSKey: "263de786526e813dc5298ac1bfa90e4cf10ab1582905c1e8574458bb0a2674b4"},
{Address: "0x1ed0498dec7bEb1C06738Cb8DAA54DD03D689F99", Public: "0x1ed0498dec7bEb1C06738Cb8DAA54DD03D689F99", BLSKey: "6fedf671f5fcf4ee24128bd0f5cfabcc1cf89194fddb54b7680924ca33e789d5"},
{Address: "0x1f6CafAb4e651bF17dCb09188496A3d55D1A7828", Public: "0x1f6CafAb4e651bF17dCb09188496A3d55D1A7828", BLSKey: "4d7ffad5b6a433d2c4f9af0fb7e891ce78de9373c96b001520dc968106e9f80d"},
// 40 - 49
{Address: "0x1fF28Fe254B0c42E5de111BFFC70D6e661619F6F", Public: "0x1fF28Fe254B0c42E5de111BFFC70D6e661619F6F", BLSKey: "69bdacab892adb872f5a7ebb3e1aa06dcac3e0ab8d781ee037f1e818c9984202"},
{Address: "0x2195Ae95468B5128a89150139AA52b792a6418f5", Public: "0x2195Ae95468B5128a89150139AA52b792a6418f5", BLSKey: "6e5dd461b788c551464e8673060925e359704d4e92b7a9f7b1eea09eee1a15d1"},
{Address: "0x21d02A81c2286e02D1CCdA4D36D4DcD27182bBe9", Public: "0x21d02A81c2286e02D1CCdA4D36D4DcD27182bBe9", BLSKey: "6f03c3b5f522237b26ae0234b128f3c57701c4550a2ede6928f3b43533b4c8a6"},
{Address: "0x225268acc5e8Be5f1B69063EA6eaDFfE676Aaa6a", Public: "0x225268acc5e8Be5f1B69063EA6eaDFfE676Aaa6a", BLSKey: "82c6cea8e4266dacafa600ce4652fc8bfb760630bee5cc38acabf634881290c"},
{Address: "0x242CBC66F0bd429ED47bD0b5c8164026A7994c4A", Public: "0x242CBC66F0bd429ED47bD0b5c8164026A7994c4A", BLSKey: "6d6c7901dccedf972ce4f1c183df5906f541aa44ec4a1babf1d87b2c7ab0e908"},
{Address: "0x2464c234faA87689B21058B52de677E726d15972", Public: "0x2464c234faA87689B21058B52de677E726d15972", BLSKey: "5419a43b2cf5f2616fee326ec432cb9ea40bd2b29b1408de2c4a8494221503bf"},
{Address: "0x247d239dEc14b34A3fD6635F14A10058e1b433Ab", Public: "0x247d239dEc14b34A3fD6635F14A10058e1b433Ab", BLSKey: "328b1e6bc075ec80709ac5c9fd0dc17838632322151c09f478cf051c2b43edba"},
{Address: "0x25ba1a086a4038307d34e8c085278b291db485CF", Public: "0x25ba1a086a4038307d34e8c085278b291db485CF", BLSKey: "60c398270c8122ae196f03b9bee10186f224f0fe378eefbdcdfd2240a52d46ef"},
{Address: "0x262401b4532963Ac25A742a9A7277d98E4E0ea63", Public: "0x262401b4532963Ac25A742a9A7277d98E4E0ea63", BLSKey: "6fda84233b3df5e1d384451ce7ec079e89ca2e64b510236abc63337864bad4cb"},
{Address: "0x265CA0F26A8D899F0c25313164FBBb5344F973cf", Public: "0x265CA0F26A8D899F0c25313164FBBb5344F973cf", BLSKey: "3ff0efdc6c88d21070721840da44cb2d381a6056d08bc2bc5552bfaafd3652b3"},
// 50 - 59
{Address: "0x26Bb09E04a264AdB89B73389CBdcb48819CB2401", Public: "0x26Bb09E04a264AdB89B73389CBdcb48819CB2401", BLSKey: "3d9e2a2c42da093a2b8910c78edcf74de829d3c18ff43a9033fc55d808e2dc38"},
{Address: "0x26a2F4BfbED55F9760E426cc0eeC91AE0Fe661e1", Public: "0x26a2F4BfbED55F9760E426cc0eeC91AE0Fe661e1", BLSKey: "4c41fd9265f6339526db8c2366823094482b1604b1fd4389c13fafb68dd69c3a"},
{Address: "0x27E556aA773505Fb57F07Aa32c1697D5FEc60C30", Public: "0x27E556aA773505Fb57F07Aa32c1697D5FEc60C30", BLSKey: "21b72b0de8814bcacc284d578c435ec55783f4e4c7ba192b9887a65b9623d95"},
{Address: "0x28347C4F7f56898D30e0e4e2b96d3be8C25Eb5E0", Public: "0x28347C4F7f56898D30e0e4e2b96d3be8C25Eb5E0", BLSKey: "34ef1d0db507afd5b59aa52c73cf2a46e25026a36592d83e561e07d618a10b4e"},
{Address: "0x2861caed9c29f8b9800394fD2AC47e1bAD1B68b7", Public: "0x2861caed9c29f8b9800394fD2AC47e1bAD1B68b7", BLSKey: "153f4b3015ea4363c1a8feb9e7e8f7772f8c0f59c7746e224085b306af0ffc39"},
{Address: "0x28909d8Ac0bf925aA6f41f2cde4A4cD9f31B197a", Public: "0x28909d8Ac0bf925aA6f41f2cde4A4cD9f31B197a", BLSKey: "baa013b1df35b8f78765f4a26db8c6fe1a0e2505ebef62bfcb669e00fc6aecf"},
{Address: "0x299A24672cB79C61fE045e0aF9eBba4ce0A135ce", Public: "0x299A24672cB79C61fE045e0aF9eBba4ce0A135ce", BLSKey: "1a2e219b350c6b145ee7c8bf0ddbec442803f44c52fdd72c5cf3b60c1c53eaa4"},
{Address: "0x29fb0115A02F8F85d6fE0768f12e0F14Bcc9fB36", Public: "0x29fb0115A02F8F85d6fE0768f12e0F14Bcc9fB36", BLSKey: "2dc8b17f70441bfb1dd797d7b357426091f7af632701a8cae69c7cb5577e6feb"},
{Address: "0x2C2cBe9D862bf836ad96eB5074225d1a6f52ecD0", Public: "0x2C2cBe9D862bf836ad96eB5074225d1a6f52ecD0", BLSKey: "3617e02c91f926361919ae5b7703ba6509cfd35b75162347d8bb7fc74a028593"},
{Address: "0x2DBaa0deCbaF557f8681bbDC23D6383FbC359B42", Public: "0x2DBaa0deCbaF557f8681bbDC23D6383FbC359B42", BLSKey: "3e463c1eafd23c6dec50b425dd6635763b74b51c971994ac651814fdd1715ce5"},
// 60 - 69
{Address: "0x2E258FeeC9Fad9d243B946FDB490c19434E78a26", Public: "0x2E258FeeC9Fad9d243B946FDB490c19434E78a26", BLSKey: "4077c670d7d8fc6bcd4c6f3c2c10458bd2c963a4364d103ccd1acc03ff4c531f"},
{Address: "0x2EA2a868EcD440C13da3e23ceD0b6654fF34dB89", Public: "0x2EA2a868EcD440C13da3e23ceD0b6654fF34dB89", BLSKey: "215657370859b79f07bdefefd926456a397733f336c8cff7ee75be50e253382a"},
{Address: "0x2F1a7882EF1c8634f46cb156DAE2bC2A35157Faa", Public: "0x2F1a7882EF1c8634f46cb156DAE2bC2A35157Faa", BLSKey: "3d875cdace0ab2192f2929fe7509f470833c18737a195822bddd64d3cfd2b0cc"},
{Address: "0x2a58E5ca4C6525d4F28Bf0A3AD34d8c1B6a99c09", Public: "0x2a58E5ca4C6525d4F28Bf0A3AD34d8c1B6a99c09", BLSKey: "720a65efc7ef78c2da441e225816f7e732aa5cea96ec5b9588870b9dafe4d29b"},
{Address: "0x2b8C69Ba116ADaC2e2C40B5e8E6B05e39aE0Db50", Public: "0x2b8C69Ba116ADaC2e2C40B5e8E6B05e39aE0Db50", BLSKey: "1e9f19c02ecc4f39753d91262cfb0744f7ef590f23eebaba7ca88a6f28faf8d"},
{Address: "0x2c2a172192a84aF1d37F8793c596b9b91b517ede", Public: "0x2c2a172192a84aF1d37F8793c596b9b91b517ede", BLSKey: "1d314f61823af4c64639e8e283ffceb141449789621d10d78189c32a60d55bf9"},
{Address: "0x2e9e70D46290A33F3F01251587AB09C84FCE7cb7", Public: "0x2e9e70D46290A33F3F01251587AB09C84FCE7cb7", BLSKey: "f04d9c79df912210daa3198350c8524ff1192f6d5c6630438078443270ef48f"},
{Address: "0x2eE12a8225e5e811e11264D123c4E180F0797be7", Public: "0x2eE12a8225e5e811e11264D123c4E180F0797be7", BLSKey: "6ddc97eb5c8d7b64fda8e75c6bbe9f407bbafb84d1b73ad57b5eae5644557559"},
{Address: "0x3076E2D79053c964966204Fd1A0aF770ef2538D8", Public: "0x3076E2D79053c964966204Fd1A0aF770ef2538D8", BLSKey: "3dd53a752ae9551e6b5047bcf17d0abb5a8161d254fb3fd7a19e52a7ab1bface"},
{Address: "0x31335ed908287cdF7f9416cF748d145eE7913B34", Public: "0x31335ed908287cdF7f9416cF748d145eE7913B34", BLSKey: "377c13bcca1add4dc74d79942610e651b9f9d41fe91e3064ad7469818fb06d27"},
// 70 - 79
{Address: "0x319201A71220F5Da76B716A398D2398b6ed6a534", Public: "0x319201A71220F5Da76B716A398D2398b6ed6a534", BLSKey: "38bbdd212552c098184205e4f222924615a60f351dd24ca1b08aa4207c4983fe"},
{Address: "0x32E8D97857240CeA72f543460dbd17E5C648D738", Public: "0x32E8D97857240CeA72f543460dbd17E5C648D738", BLSKey: "87e38b461eac6550fcfb48057eb5ad041c93fa380efe6d9e7e82f5baecf9ada"},
{Address: "0x3309c38aC38b8Ab3B0917b75b4434c95879b60CB", Public: "0x3309c38aC38b8Ab3B0917b75b4434c95879b60CB", BLSKey: "5a8a0aa88ca96c4f5748b299d0e6c8b27015ee6c11334e84f219a649a7fa3138"},
{Address: "0x33F8248328601d0A13DE54f580b5fC1D92bf0a09", Public: "0x33F8248328601d0A13DE54f580b5fC1D92bf0a09", BLSKey: "63fc6cb7594ecf5ed71741490672014ce7e1b53fd7a17d76d5e7f69e18d1de10"},
{Address: "0x340Eb83bAA2B555A97E8E705aa857D13CAe0C574", Public: "0x340Eb83bAA2B555A97E8E705aa857D13CAe0C574", BLSKey: "3b6387d96a9ba23b40411558459ccff7912a1c266fdc38dfe3eeb39cbe3a9888"},
{Address: "0x34788e58AB673D69b523c8CE62341a49d7AB0dd4", Public: "0x34788e58AB673D69b523c8CE62341a49d7AB0dd4", BLSKey: "62f20a140c27318050edbaece0194ef383e008dc403a8362ea8a87bd62a79cf3"},
{Address: "0x347be45F656bB0240f54A78210623A7fc64C347E", Public: "0x347be45F656bB0240f54A78210623A7fc64C347E", BLSKey: "300935ef4aca3ab0686a05b65cb578dacb69a8ac4e4e355f463d4cb5b11cd068"},
{Address: "0x34dad558F746FB3ac3cE2f52D78A4299EE8B5cc1", Public: "0x34dad558F746FB3ac3cE2f52D78A4299EE8B5cc1", BLSKey: "49be75c1a2ed8d7f4adf00d57cf7799ea2c1aaa8ad0f1b7aa441759397122b9d"},
{Address: "0x358f5cAd732462f4336c2fd1d1C2D2ef8a993a48", Public: "0x358f5cAd732462f4336c2fd1d1C2D2ef8a993a48", BLSKey: "60f59b045113a4e0a50377dcb2f2aa2a3522a4cc6c3302365b948b121e9878d5"},
{Address: "0x360C6d41Bbb26C2008365871dB41F7f4F038aed5", Public: "0x360C6d41Bbb26C2008365871dB41F7f4F038aed5", BLSKey: "3d99ea18a9f0ffbfc031476e88d1f729629a561a9041f8441df1cd4e2ffbda4d"},
// 80 - 89
{Address: "0x363A67Ed8D83b74f132364c07D95058cfBba4068", Public: "0x363A67Ed8D83b74f132364c07D95058cfBba4068", BLSKey: "22414d6da911385752f95b27aae20c492ae8bdd08857525462abda655da4a890"},
{Address: "0x3712a9599454A3510C4Bf0927DB91333D7fe72bf", Public: "0x3712a9599454A3510C4Bf0927DB91333D7fe72bf", BLSKey: "2f074d22b61e3a8fcf74c6a652c963f111fef28ca3999efb9bf40cc76ffbf286"},
{Address: "0x374beF68Fb58142Ca63b3Ed86C3132E008eC9957", Public: "0x374beF68Fb58142Ca63b3Ed86C3132E008eC9957", BLSKey: "355a2959f6e457a15af3aaa46d0017fe8cbbec115c101b8b2af71dc4abada87b"},
{Address: "0x37731F1Ec1826b278CA47EF87a4177cc5931Db67", Public: "0x37731F1Ec1826b278CA47EF87a4177cc5931Db67", BLSKey: "37df0b60c13e2fcd0a4ffb93abd98495ba91ec02cb1e0c6a2ba654c81959a67e"},
{Address: "0x377dc894E403D4e099851038c4Aa40D67fdd64Ca", Public: "0x377dc894E403D4e099851038c4Aa40D67fdd64Ca", BLSKey: "c069afea8371a240a7caec01314c1f756476e1e962231f1ea89ec360644a3cf"},
{Address: "0x379c7e2c06932A064D25dd2B938974a31AFFAe4D", Public: "0x379c7e2c06932A064D25dd2B938974a31AFFAe4D", BLSKey: "3a8a036f05ac5960aed102c28f505b5ec3760c9891ff19e676221cf94072f0a1"},
{Address: "0x39248D6c63c76BC3C8dD4f8C910C9cb1098A0019", Public: "0x39248D6c63c76BC3C8dD4f8C910C9cb1098A0019", BLSKey: "6d4ba1ae10814906175bdd0447204733b82f20c6485d8d49723b4c8911047e10"},
{Address: "0x39d1F7820013fE09056b2187359Ad03891C7DB78", Public: "0x39d1F7820013fE09056b2187359Ad03891C7DB78", BLSKey: "46d3ef05731b7d3937cb9f628525f8ff777e3f4832c5244c9aaeb187277cf217"},
{Address: "0x3D053cDBf1B9A8D5AeDDB2F5fA1E414E2E1b3996", Public: "0x3D053cDBf1B9A8D5AeDDB2F5fA1E414E2E1b3996", BLSKey: "401dca23ed5183a1d79e74d7cc024bf6300e3c6e6b2b039df2b2443eeeaddfd1"},
{Address: "0x3FebCCaB09ECe4ef6f6a2bEA73A898B324976E74", Public: "0x3FebCCaB09ECe4ef6f6a2bEA73A898B324976E74", BLSKey: "1f1c73b0a5a8655473abe0798a3c0d9d153bf5432acb1a3848aef8b4da69f58e"},
// 90 - 99
{Address: "0x3c8FC1035Dcb6e6106C15a901C4775035b3dA784", Public: "0x3c8FC1035Dcb6e6106C15a901C4775035b3dA784", BLSKey: "604eb67a99f972cf99d8ec05e42241b49dd71417107d828b7cdaad0ad14f9a9"},
{Address: "0x3d1f908D73dDd221E06Ed234B65C482CA45a4DF0", Public: "0x3d1f908D73dDd221E06Ed234B65C482CA45a4DF0", BLSKey: "4ac30570f97cb844a89ab6a80f47625a0bb80b365ea8e060fca8ab8c9eb1d981"},
{Address: "0x3d693307B4Fb93A8f18eB7407Ba667fAA3071acC", Public: "0x3d693307B4Fb93A8f18eB7407Ba667fAA3071acC", BLSKey: "4565bf7d81c64674940fd35580755dcf2eb2237bf34be6802c1a6cbbcf594694"},
{Address: "0x3dEd77a2008C1a37A4A8dBa95A3f271fA9FE612A", Public: "0x3dEd77a2008C1a37A4A8dBa95A3f271fA9FE612A", BLSKey: "6d52741035ac3a2d60dd91f28f903146fdba67c61d6cff16e7ab276e4ce697f3"},
{Address: "0x4028C0fEE197D2e0d2Cd2C69860498a712cbB8E2", Public: "0x4028C0fEE197D2e0d2Cd2C69860498a712cbB8E2", BLSKey: "1741d48c9f8ad0e7606f76da552af140f0257d392403f3c12580dcb38319e491"},
{Address: "0x41D5410D1ac8Ed178c2494BEdD696E759052A428", Public: "0x41D5410D1ac8Ed178c2494BEdD696E759052A428", BLSKey: "fda7223876fc48d558f62b68c5cccda78ac1f1833b0422afdb906d989e4cc95"},
{Address: "0x41EbA30f94338B69F7dCdCC51C2e5557fe8Fb2e8", Public: "0x41EbA30f94338B69F7dCdCC51C2e5557fe8Fb2e8", BLSKey: "478b9d46f45001853c8b4befc94f3d3bcc79769d047d1fa17b67af4a739da3e"},
{Address: "0x4204324E99c2D24DEFb4Ec92c04F91f9Ab1a4b3D", Public: "0x4204324E99c2D24DEFb4Ec92c04F91f9Ab1a4b3D", BLSKey: "1da31678d51e8a0c5a1a1c2553313651fbe29306173d0d00e2683966724f2648"},
{Address: "0x421F5E2b63530911aeB2e0C047E970f92cA5BFFe", Public: "0x421F5E2b63530911aeB2e0C047E970f92cA5BFFe", BLSKey: "1bc1e85afb3f51912275eb4d3e939bd7ef850eee287678de774d788f26a5a97b"},
{Address: "0x4229a06ca14dECaCc667ea3752Ec9F6cf6883E5D", Public: "0x4229a06ca14dECaCc667ea3752Ec9F6cf6883E5D", BLSKey: "3954afffff50d2909ec6a5a7a75eec896f1da9ad11c77f84bfe7a1e8fc98fef6"},
// 100 - 109
{Address: "0x4325bC92bA7e8D83dFCD3748998835deA565a619", Public: "0x4325bC92bA7e8D83dFCD3748998835deA565a619", BLSKey: "4fdd0de66c62e32754099e9808a60f5a96b0d4bb03b685012d067be258df703a"},
{Address: "0x44456966A18d5aD69b6E7a088289751a49bf40AB", Public: "0x44456966A18d5aD69b6E7a088289751a49bf40AB", BLSKey: "3ceb086e7ddcfb51a6efff73a183c09ba8013839c06cdcb401c16f7fc71e525d"},
{Address: "0x446B633889513A21a1d27063ADcd1B062c277D76", Public: "0x446B633889513A21a1d27063ADcd1B062c277D76", BLSKey: "324392c4f9acb0f6fd5958517b4ab0c3c57c42207f501dd3ead2d16e73dcd392"},
{Address: "0x4478E05FdBB69b90fd5D2da08182e62356FdF7D4", Public: "0x4478E05FdBB69b90fd5D2da08182e62356FdF7D4", BLSKey: "67a5b4c35e24f37e11a5a5fa734607c319fb3784f7fbbe10a6d688acad5c0c8b"},
{Address: "0x4499471831Bb521c02ccbf144882ED910D0BfF12", Public: "0x4499471831Bb521c02ccbf144882ED910D0BfF12", BLSKey: "3ed806b1bfd18f0921c5fb03467e467f27a61ce87d53a76448449bf8b0bb24e1"},
{Address: "0x44D7732cE7f12Df848E0B21d111f74a618f8a43e", Public: "0x44D7732cE7f12Df848E0B21d111f74a618f8a43e", BLSKey: "69e293dbddcb5c0b86d41afca89bfd958b01c220046ea76db57b36ea2fd13fa3"},
{Address: "0x453aa59A3227bf616a95b1E373A02b6a52Fb375b", Public: "0x453aa59A3227bf616a95b1E373A02b6a52Fb375b", BLSKey: "415d5be49fd039a215bbff5eab11a1a29b6efb6ac095c334d9ac8e0867a9071"},
{Address: "0x45FdDE03B486e2c0C4bBb89F398241A3755D5D11", Public: "0x45FdDE03B486e2c0C4bBb89F398241A3755D5D11", BLSKey: "3a1e087c9cf9117d5a72407c90c76d02764ade78a4cfc06496ed53770ba400ef"},
{Address: "0x45aee6EFF98397835640638bA345E0EB31827AD0", Public: "0x45aee6EFF98397835640638bA345E0EB31827AD0", BLSKey: "254556d6392bd78ec71b791312755172644f5061fa5b96c51e885e980fea3d86"},
{Address: "0x46ccCF8882c4703350A9aD72cA0Ae08730d148b8", Public: "0x46ccCF8882c4703350A9aD72cA0Ae08730d148b8", BLSKey: "1481b11253025feb15318fb335c297dd47be6ea72a5f8be4f9af836849e9d4ea"},
// 110 - 119
{Address: "0x4762F1BDcD9B3B4b14293ee97d29A68F328Ef4EC", Public: "0x4762F1BDcD9B3B4b14293ee97d29A68F328Ef4EC", BLSKey: "70f66629a34d9f4854c5cf19cefeac93e20d9c665ee54ba8b89bd1c7f99c3fe7"},
{Address: "0x477c8504Eed8fa3914e53285150CE0A87c87C696", Public: "0x477c8504Eed8fa3914e53285150CE0A87c87C696", BLSKey: "673bd067628ffc01ffa28e9be14ead22338f576ca9ddae528c2163880e557e8f"},
{Address: "0x4851E31eB74c400d906d98da8aD8BAC2A9dB3328", Public: "0x4851E31eB74c400d906d98da8aD8BAC2A9dB3328", BLSKey: "519eb2d731ed14c99b13c789ed9f0ba0346bec70767a90449d2a09b80afceb89"},
{Address: "0x49047Cd6Bb970E711a198DF1186aeb1E6E645EB5", Public: "0x49047Cd6Bb970E711a198DF1186aeb1E6E645EB5", BLSKey: "12bec12dc0e43d0ba7933477553e0035c803ace7af5355448e64a3114f435aa"},
{Address: "0x4B4f226886dD72d30B27197593bC6313d228e115", Public: "0x4B4f226886dD72d30B27197593bC6313d228e115", BLSKey: "705c56af2bf51cb3ebc8400d10693b1a06494d050ef6bce3d646e08bff63ef33"},
{Address: "0x4B8C78E300D5d8DBc80Aadc03d2a899521fc4418", Public: "0x4B8C78E300D5d8DBc80Aadc03d2a899521fc4418", BLSKey: "70f68ef6ccbb5c109a46db4d676aa095c6334fa6d5b22b10a61b34e77269bd13"},
{Address: "0x4D30F9107a8dF1a89E040C693A7d63F65aA6D289", Public: "0x4D30F9107a8dF1a89E040C693A7d63F65aA6D289", BLSKey: "2a6fe7449da20945d43912fc08e93f57e19bd506a0c8229f47df0c7323d71e6f"},
{Address: "0x4D9EAF51339cC05a8D01f19B3D960b6A67db62BB", Public: "0x4D9EAF51339cC05a8D01f19B3D960b6A67db62BB", BLSKey: "259cfc767d71dad6cb6a25fb53b597fb8c481be1b7f96e8f1ffd5d2c5344ad97"},
{Address: "0x4Da55B8bf9c484155ff90F18CD858B9b4Ba9F456", Public: "0x4Da55B8bf9c484155ff90F18CD858B9b4Ba9F456", BLSKey: "64ce6f41bb636527b5fe9204bc279227d0c09806a19aa003aeaa6ab3a294ca62"},
{Address: "0x4F39740C7479d45E9D89bAf57A0773FdC03b5773", Public: "0x4F39740C7479d45E9D89bAf57A0773FdC03b5773", BLSKey: "2691facfc42de9e5217eadecf407feaa67df6220744ab3eb212dad8ae064017b"},
// 120 - 129
{Address: "0x4af845890077f56e154A1D725CF76A707a4C325a", Public: "0x4af845890077f56e154A1D725CF76A707a4C325a", BLSKey: "645173de4d31edc624ae169dc4b336c69fd79f9222e2d7e0cc56f82b5d2a4b5f"},
{Address: "0x4ff4cA3C6725e57fEEb23c5B8a05e71bdFfd7c67", Public: "0x4ff4cA3C6725e57fEEb23c5B8a05e71bdFfd7c67", BLSKey: "333c707a8b189a304143470f5855b5ce908674425b07ec5226b4a878758c3988"},
{Address: "0x503C240fC52b4556Fd990beBC2ee07f17a1D9fb6", Public: "0x503C240fC52b4556Fd990beBC2ee07f17a1D9fb6", BLSKey: "1c967cb004574cdde6b0aa3a1df8e81dcae16547d19a5f81dc756d3f5a325a53"},
{Address: "0x5042aa9eBb9701942391f975A57B5DAcbB8b3678", Public: "0x5042aa9eBb9701942391f975A57B5DAcbB8b3678", BLSKey: "3cf0bbfb6874cce1efa31deca09cc7e8071e6cef8bda4542cc8eb1baf5e86dc"},
{Address: "0x509E55f51e887A42A38a2C43A373B84779d9C408", Public: "0x509E55f51e887A42A38a2C43A373B84779d9C408", BLSKey: "70cff0292ac16586ca98cea6037f05ec843c645b70045aebb330291458241209"},
{Address: "0x50eB59e5D69F0151d45aF7De42eb06A566D00922", Public: "0x50eB59e5D69F0151d45aF7De42eb06A566D00922", BLSKey: "4fe2b96b3236ad94b661addc9c1daf02707a5367af52007da2158eeeea2c096f"},
{Address: "0x513B35302F1DC54A194E58a5e5D1F4fF73b1240D", Public: "0x513B35302F1DC54A194E58a5e5D1F4fF73b1240D", BLSKey: "c9eda0cda7020fbe9f658c0c1d8dfc77872d289d712f34a18ebc0261a36f5dc"},
{Address: "0x51Cef58fb50f46baddC6c9b712c1B0dBA2835296", Public: "0x51Cef58fb50f46baddC6c9b712c1B0dBA2835296", BLSKey: "c0e4743bbd7c08bc110433f0391d684b11350be9a7692cca7b0e98d57536249"},
{Address: "0x51f82DFC182b1c08a11bDC159EDE6e8219Ff8D7d", Public: "0x51f82DFC182b1c08a11bDC159EDE6e8219Ff8D7d", BLSKey: "2dddbece218694a323876deba2e9ac454b8b0b9ca57f40bd12e85e73b1ec9c82"},
{Address: "0x5325ADa44428d5b2Dedf7aE41E5Abe129B8433BA", Public: "0x5325ADa44428d5b2Dedf7aE41E5Abe129B8433BA", BLSKey: "604a7fa1ca714e74a4fbed4c436f74df9ba65646a5c0a71df90101456f9f3b3f"},
// 130 - 139
{Address: "0x53e8B34C45193abf3eb290973eAB78f9f0af64dC", Public: "0x53e8B34C45193abf3eb290973eAB78f9f0af64dC", BLSKey: "62cfaa61711764397ba0731fdb872260c80f720c8c9d680e3cc24ba1537d594d"},
{Address: "0x54030397F9EEe4e9294c5E6E161510109C3727d9", Public: "0x54030397F9EEe4e9294c5E6E161510109C3727d9", BLSKey: "68f0988d0aea0951abfbb3162684e413534369a1655675f58b0a0041e9e2392d"},
{Address: "0x545F361048B1EEA955Af00Bd86618F91FFA04CeD", Public: "0x545F361048B1EEA955Af00Bd86618F91FFA04CeD", BLSKey: "15c99f870bec4f827f5929b228e85c28c386e18db37f6324d72febab307d385e"},
{Address: "0x557dD1c2C39e8Ebd7d46af5dDf8e3F450108C44A", Public: "0x557dD1c2C39e8Ebd7d46af5dDf8e3F450108C44A", BLSKey: "5a843260af82d81c34f3c85c5607aa4f6238ba0528a072cb0d0fb6d5dc127a7a"},
{Address: "0x5672f21553783d16AE7A7901A4461adBf6C09c56", Public: "0x5672f21553783d16AE7A7901A4461adBf6C09c56", BLSKey: "696557aa3a4fd2b02b242fc68ba803a0582adea151c20f1f154649ff092ac461"},
{Address: "0x596907B8b2E11e2EBC6f6c8011Ad379e1b83F669", Public: "0x596907B8b2E11e2EBC6f6c8011Ad379e1b83F669", BLSKey: "4c245fec7c15ac0bd8c8e913a5559aee634900852ec582884a57385a41856ece"},
{Address: "0x5A9B1A7b7c889C359e8D52c08e1566C10Fa8B5a9", Public: "0x5A9B1A7b7c889C359e8D52c08e1566C10Fa8B5a9", BLSKey: "55fcaff93bf91d29d8c222aa6fd2210b7b23d91ce5592b6e6477b3bc707a5fa"},
{Address: "0x5B266C47A82c4a849a70a1F96760fC1025784E7D", Public: "0x5B266C47A82c4a849a70a1F96760fC1025784E7D", BLSKey: "6838d0739ccc407e973dca0a704a0d3a619a1865638030c512da7bf49d8bdd80"},
{Address: "0x5Cb5E2Bb095d2DD25C9b2887851f8D9E7b733e75", Public: "0x5Cb5E2Bb095d2DD25C9b2887851f8D9E7b733e75", BLSKey: "39b9dc0a3ba09a7f10c0b1587855251acbf376b153f87ba960516ce8504621fc"},
{Address: "0x5Cc69576F059260426e29bDccaf22711ee9F2730", Public: "0x5Cc69576F059260426e29bDccaf22711ee9F2730", BLSKey: "186067e0cb2c7dbba73c60cd66a5aec7bb18260c260f2d4cf41f01827399b4ab"},
// 140 - 149
{Address: "0x5F8a55259e904D8bECa6b19C728Bc933c6ab692C", Public: "0x5F8a55259e904D8bECa6b19C728Bc933c6ab692C", BLSKey: "28d8e49d67d1fd0562db65eef70a7da0a14cde89dc5d9f0e16e49e2d08e1b52"},
{Address: "0x5aE8A1e341D5aBF60F639E6ed878f234Ccdf03D9", Public: "0x5aE8A1e341D5aBF60F639E6ed878f234Ccdf03D9", BLSKey: "7214e59168108690b803394aaa74eed2f248596c51ab40dd01726ebd76cd5ce8"},
{Address: "0x5b28EFBa128480AEF7c07536Cd5719eF32346ec3", Public: "0x5b28EFBa128480AEF7c07536Cd5719eF32346ec3", BLSKey: "38472b8d453fbfca88b33ddf4039d0738656ca662e392dc1d4be51ebbc6c1ca2"},
{Address: "0x5b780aA2EB82a7D3a2643360e69060ea12aE8d40", Public: "0x5b780aA2EB82a7D3a2643360e69060ea12aE8d40", BLSKey: "22e6e9a4cbf9a7e42132d878eff172b7ad0d6ea24fdc08e19d50052600e6ba50"},
{Address: "0x5d64C1e6389f4D15fA1cc02e43F8Cd2AeCE89DD7", Public: "0x5d64C1e6389f4D15fA1cc02e43F8Cd2AeCE89DD7", BLSKey: "1dd21ef27cefb2b3a100b9a59a6386787d1818d5dde11d36dc29b05a60abdb4e"},
{Address: "0x5fbB8cF80Fb9C582Cf77d8a307378Edaf3855fD5", Public: "0x5fbB8cF80Fb9C582Cf77d8a307378Edaf3855fD5", BLSKey: "480b774b00b944b592c4c587d58f6a3fe4472027cb31d0ef05d47065e0542cde"},
{Address: "0x617AA0d05af99A91D7263D92F35e32909322E5EE", Public: "0x617AA0d05af99A91D7263D92F35e32909322E5EE", BLSKey: "41694958d8e1d347695936d0fdcd227d840710192d7e9669378a84ea69ba0368"},
{Address: "0x621bdbD1089b4297D857aA1289EeF311baF3f2B7", Public: "0x621bdbD1089b4297D857aA1289EeF311baF3f2B7", BLSKey: "1a3d3fe365b6dad5329da53d9e0a467c0434300a90e4741ee3b6c908515c45ff"},
{Address: "0x631eF9cA4Cd625e0610e9808674284028Ad30662", Public: "0x631eF9cA4Cd625e0610e9808674284028Ad30662", BLSKey: "4f8ad74ee2e2ee9131234e99ef1ed2432603def3567f64f045491c2e34779652"},
{Address: "0x65324a6539e78e476AA1e08396bcA1a141C93938", Public: "0x65324a6539e78e476AA1e08396bcA1a141C93938", BLSKey: "6620a08b0b0ff8ee6939419fe30abc73b6faf8634e7beefdcf411c936679ef68"},
// 150 - 159
{Address: "0x6574854fEB55F3c04D24d34EB9AB6fda880EBA77", Public: "0x6574854fEB55F3c04D24d34EB9AB6fda880EBA77", BLSKey: "1cb3b2424c61bce4a6bee99d905144b7468b75181575bb170f5508962f0573e5"},
{Address: "0x6746713E1E01F22809453a9A74669eC3f9B888fe", Public: "0x6746713E1E01F22809453a9A74669eC3f9B888fe", BLSKey: "361ba6e15e5bef2de4e43e3c062e9877942cd64b91265230802d12f36e8d1824"},
{Address: "0x695F372E04A79CCed0857cCB0364CC229b944C8C", Public: "0x695F372E04A79CCed0857cCB0364CC229b944C8C", BLSKey: "64cffc45bf4167a32b59933ed6912406a74c520a644bc51726dfbcf5b8ec3db6"},
{Address: "0x69Ccd21Fe984E812Eb22023beA809E93707C940f", Public: "0x69Ccd21Fe984E812Eb22023beA809E93707C940f", BLSKey: "3e96c2febdb631d2cb2b90357f21726287718ea1628fff3c10119197c8805639"},
{Address: "0x6BBa4A8e29dD2C491b493dB83F648ec822B2a73d", Public: "0x6BBa4A8e29dD2C491b493dB83F648ec822B2a73d", BLSKey: "440ec2f4d4c49cff7a5057c2b9b343b6e0f018e5cb9634bf09ed4295a04d2143"},
{Address: "0x6D24Ac5F7702c552dE9F2d72d4e0F6F01f786f5f", Public: "0x6D24Ac5F7702c552dE9F2d72d4e0F6F01f786f5f", BLSKey: "25909353a7a363eb3d3714bc4da80e1623d34de1184770fc8e9de3de4b0061f4"},
{Address: "0x6E1401fe11502f367C5f789a8379e33Db3a934F8", Public: "0x6E1401fe11502f367C5f789a8379e33Db3a934F8", BLSKey: "4d99ebfe563d682ec44e16b8c1e8cecbe93d28423d1721aa7dd933cedf410038"},
{Address: "0x6EeB2b78CF742745ddf3Ddc88C3519665ed1b4Ef", Public: "0x6EeB2b78CF742745ddf3Ddc88C3519665ed1b4Ef", BLSKey: "37088b80b29b857a1818c02a1b94479e7cb67f56a59d20e80b5bb66c1984cd70"},
{Address: "0x6F3E52d859Cc49c095ea1336D55098670a3a6b3E", Public: "0x6F3E52d859Cc49c095ea1336D55098670a3a6b3E", BLSKey: "372e6c6bc2ff54051fd7ce799016931b8437e1fa1ee544bf98175e282880f220"},
{Address: "0x6FcEA1b902493E2dd94D9EA490700E6B81b098c1", Public: "0x6FcEA1b902493E2dd94D9EA490700E6B81b098c1", BLSKey: "6c9a2f7d073de858a2c630d11e1340a61100e773b038749abda61673b59d0292"},
// 160 - 169
{Address: "0x6bC118200f6D273950F957aA2156157cF751E681", Public: "0x6bC118200f6D273950F957aA2156157cF751E681", BLSKey: "699b00c886d33e5168d7c9ce07266ba7ac11cee7110b5b1137c6109b2a448345"},
{Address: "0x6d3Fb5f10ae1347b5225BA61dabFb2F7A5F96D0D", Public: "0x6d3Fb5f10ae1347b5225BA61dabFb2F7A5F96D0D", BLSKey: "59110889fd25c44b12b3964aba6a5c448197c05276183fd4f59c7fbd6cb3245d"},
{Address: "0x6e923376145EE43671B1F5f6B259eE08EF330Ec5", Public: "0x6e923376145EE43671B1F5f6B259eE08EF330Ec5", BLSKey: "19074918d941f1bcd9bec8cb3c03da9649151b75936a46086b6e66346a563d4"},
{Address: "0x6f0832Ecd5361288Ed0E0897191AeB80fef3E918", Public: "0x6f0832Ecd5361288Ed0E0897191AeB80fef3E918", BLSKey: "38d7b86ef04717e8eb71a449c27fc37e48405451990dff03d77f7540ec38dbe5"},
{Address: "0x6fE418ed174CBbc500DB471ee49179e9A8DF248F", Public: "0x6fE418ed174CBbc500DB471ee49179e9A8DF248F", BLSKey: "390f92d028063c5bffd646f5351cf43c2c19723ed4107f8fee1a123c0e113c24"},
{Address: "0x70302fa02bC4b603be3F475531163f8bC83EA7D2", Public: "0x70302fa02bC4b603be3F475531163f8bC83EA7D2", BLSKey: "55514de8e0fa8a16e7407175f2e0ffb923ad258511df3d32b05ea6c67edea06f"},
{Address: "0x7057dFC56072BCd80150fE810b2c5AA4Af96c549", Public: "0x7057dFC56072BCd80150fE810b2c5AA4Af96c549", BLSKey: "1e1a14a25913dd9f1178764e2fc2932bc5d52baf99dedff5a62a520fa52550cf"},
{Address: "0x7087194e46d6766635261ECfc8ecb8aee43b8cA1", Public: "0x7087194e46d6766635261ECfc8ecb8aee43b8cA1", BLSKey: "45e5d79d18ffbeed05e3060f0d26a61fa05ae2965a1c0b2acf6061813475bb14"},
{Address: "0x708d570a7b0E974cc3D4A4bf363674454c90c84B", Public: "0x708d570a7b0E974cc3D4A4bf363674454c90c84B", BLSKey: "4f1bc3b48fe91862a60025bb9b4512805cb050d3f87509a4466dfc3c4daab53a"},
{Address: "0x7200724064D7a2db5AF9260E6A14F14fFE9eCC9F", Public: "0x7200724064D7a2db5AF9260E6A14F14fFE9eCC9F", BLSKey: "61aeaffe7aa54d4d4e79af4bb4f9fa443a9c7ff5de358a240f319bfa4f815a48"},
// 170 - 179
{Address: "0x7234E8dFF697f93cC5945b31953303bDB997418e", Public: "0x7234E8dFF697f93cC5945b31953303bDB997418e", BLSKey: "6b4854f8586b111ea3f20a508cddcb1fa890aa6559882b9665bc70080c1fd760"},
{Address: "0x73BD0193121a53bbDC768eBa6AF393Ae86483b31", Public: "0x73BD0193121a53bbDC768eBa6AF393Ae86483b31", BLSKey: "2eb16fe974742406d11a4f867f0c9027c59486df9dc30fe67076243370b1d581"},
{Address: "0x74798b01776702994aA567E4cfdA313057360744", Public: "0x74798b01776702994aA567E4cfdA313057360744", BLSKey: "4808cece9c95323d10b9548998d97f0b918bdb35814fa2721d8f934a285dd1ba"},
{Address: "0x74B368c634AC7c4a78D35AdaD4D631d31697bfF7", Public: "0x74B368c634AC7c4a78D35AdaD4D631d31697bfF7", BLSKey: "119e35d1322d7ab34c05ef796a33535aeb13e20383459e4ca901f1fae0cab8e4"},
{Address: "0x75d7ae6361ebB756201e044aFf34c91AB6b8771e", Public: "0x75d7ae6361ebB756201e044aFf34c91AB6b8771e", BLSKey: "257c4bcd61229e2ce0eee794e4b6a9b4b7acff5baa38ff422160e201e4e17911"},
{Address: "0x7612Fda7865d441BCE510509f4ce29191C112B86", Public: "0x7612Fda7865d441BCE510509f4ce29191C112B86", BLSKey: "15cea70c6c468981f71b5b2c5d238501d17575d14eb7ce3dc3908ee53554dafa"},
{Address: "0x766B51338c6C4F7De2d4f15357bdbA4B877C0835", Public: "0x766B51338c6C4F7De2d4f15357bdbA4B877C0835", BLSKey: "5815674963019b63c4253b818f65ecd44e486c96bf7849c01d577602041c88fb"},
{Address: "0x76e2A98706F1d4d01e2FF1FE6D8e4609A0622Fb4", Public: "0x76e2A98706F1d4d01e2FF1FE6D8e4609A0622Fb4", BLSKey: "690b26c8dd881ffc2b475d6bac7b2dffe904a1ce4cbc4c5302739b85ebaeb4a7"},
{Address: "0x770b8e3A35Bff512F173cE152BD1220d82bB9de0", Public: "0x770b8e3A35Bff512F173cE152BD1220d82bB9de0", BLSKey: "667c62ffdbb3ebbb61e36bf6fa8a5f98785ed497bd30a07665ddb53c4e5c3f8e"},
{Address: "0x77229fA6198791D333F286fa8360946042c65337", Public: "0x77229fA6198791D333F286fa8360946042c65337", BLSKey: "61bb642370056bf58fc3ea6a8c8478cd25fc87bda366464853b94cf1dfb2a39e"},
// 180 - 189
{Address: "0x78404079f5081A5Dc38902b47257c0D1D4e2E028", Public: "0x78404079f5081A5Dc38902b47257c0D1D4e2E028", BLSKey: "2ba8e633f598909e6b9bcf36015867a67ec8105b20385f8022e21027ed8f79ba"},
{Address: "0x79BE4EF66f3cc7B5b379F85353873115aeDbD242", Public: "0x79BE4EF66f3cc7B5b379F85353873115aeDbD242", BLSKey: "bf57d6c1f796c753d8c5385304f63f1286571994183f11dcb8c6acf5723c92c"},
{Address: "0x7Dc053eAc8613229a6c316Fc436f100477571EE2", Public: "0x7Dc053eAc8613229a6c316Fc436f100477571EE2", BLSKey: "227529082d061f060fcf03ecbb17c415b75871bf648fff61aae8f7fde4c045ef"},
{Address: "0x7F58C0cD5c255020Ec94425873F666F1D68FBaA6", Public: "0x7F58C0cD5c255020Ec94425873F666F1D68FBaA6", BLSKey: "512384025f246b7c33ab5f077bb621c3da55ec5c727b20eb98cfdd7e14897d9"},
{Address: "0x7F686454f91A68cC3248a642F59aDb2970e84D8e", Public: "0x7F686454f91A68cC3248a642F59aDb2970e84D8e", BLSKey: "388075110297ccba427da63cd04bd79e511f3781b5a18aed424fa7d1b68102d9"},
{Address: "0x7FB5fF6e7aE8279F21B843Bc297b24bFbC45733E", Public: "0x7FB5fF6e7aE8279F21B843Bc297b24bFbC45733E", BLSKey: "937efe4d31a1ac71098140927cafe6c483714fe8b228e4d6285c71efd788b57"},
{Address: "0x7a22ff5B8483CE859757Bc0Ef7Ec64d11421B680", Public: "0x7a22ff5B8483CE859757Bc0Ef7Ec64d11421B680", BLSKey: "4563fef72600345d932c42a361a465f3ed51b7e04a6ccb0ac7bbf7367095d9b4"},
{Address: "0x7bBf40bD603B2434A964CdF979020B1E0E68E13D", Public: "0x7bBf40bD603B2434A964CdF979020B1E0E68E13D", BLSKey: "36a08be71c0c705f2a0ecb42a08c5cb5191ade4c060447164439ba7e39e1537e"},
{Address: "0x7c14C7f6dE1f39579F7ab8DE24c168737E3FF53f", Public: "0x7c14C7f6dE1f39579F7ab8DE24c168737E3FF53f", BLSKey: "604164d04d1e1f495b2f70014b7eedc7ad7255939ff96e06c4b5f960135d925d"},
{Address: "0x7cc507b9345a58B5232e16B49b02F365bEB7d91e", Public: "0x7cc507b9345a58B5232e16B49b02F365bEB7d91e", BLSKey: "1b5454a629b29d2bbff9a880b7fe36cc25c21254ff5a838363a811013dceb25f"},
// 190 - 199
{Address: "0x7fC313531F4355CA2C0439f39b3Af2D419A93897", Public: "0x7fC313531F4355CA2C0439f39b3Af2D419A93897", BLSKey: "293609b250fb3139d4c13e5b9731b70cd918d9c17a75d72f0e43b7ff76914243"},
{Address: "0x8044Dc039C1AF68a580210379B8562A46938c449", Public: "0x8044Dc039C1AF68a580210379B8562A46938c449", BLSKey: "21bd4d75480a248a7e4c63ec22351a207d2bc5407d5f460b2dd2d6a69c5c082e"},
{Address: "0x804a1CE2387874E311e966c63A02C67dB15f2A87", Public: "0x804a1CE2387874E311e966c63A02C67dB15f2A87", BLSKey: "2f170b477aa4548fe25e4ba087d7de18e45fdd0f9ef33aa93207f44654aaa79f"},
{Address: "0x8080ca14e1b3466b3b13441cDfd0f413E0BEb67a", Public: "0x8080ca14e1b3466b3b13441cDfd0f413E0BEb67a", BLSKey: "3a91b702318047d82183b2b0fa6ccd8d40c7a73ea0906e2bbd7916c85d45d7e7"},
{Address: "0x80FBE7a01D593aC28CA1fE12E9CE62d6E2a08e5C", Public: "0x80FBE7a01D593aC28CA1fE12E9CE62d6E2a08e5C", BLSKey: "72929bf6d64b6264dcf9c3764d173b8831eac7244911ad6b7196a2c8ee2723e4"},
{Address: "0x81237F5d14F5db4d6370D353e3F5952e7aaae0cd", Public: "0x81237F5d14F5db4d6370D353e3F5952e7aaae0cd", BLSKey: "3d965de56945fa98734f7fb610f7a2e0febd8eec2fe1edeb578397f479387319"},
{Address: "0x822D6E108e434A3C2B27E0890C5DC3936D009560", Public: "0x822D6E108e434A3C2B27E0890C5DC3936D009560", BLSKey: "34677319bdf5eab0818f1dc28ecd14a033d16745f3fe79b7977288b1fc5659a9"},
{Address: "0x82375BA85Dc7F301f6609a39E2C3FFccB1433d5e", Public: "0x82375BA85Dc7F301f6609a39E2C3FFccB1433d5e", BLSKey: "408714aa7d1454e95be41c59433e80d461f00a326eb2f42e622205b9298cb303"},
{Address: "0x8244c534557d3d40caD3771EdeA45d394bbc3f60", Public: "0x8244c534557d3d40caD3771EdeA45d394bbc3f60", BLSKey: "27d235f7b6e5a5a8c10fa17787fe556b669bd45bc17b9ff30909655aa3d70751"},
{Address: "0x8265cb4Bab2c82390776e17ACCfa0D5EaA785e05", Public: "0x8265cb4Bab2c82390776e17ACCfa0D5EaA785e05", BLSKey: "20a5ce066514f2e18152bea068f210db934899ae90c0925894c77eff90063eb"},
// 200 - 209
{Address: "0x843836cd5F7FA674a8394bA7029E5FB6C1Ac445d", Public: "0x843836cd5F7FA674a8394bA7029E5FB6C1Ac445d", BLSKey: "34d6a0fc3d3b3f8eba03d66ee0b0d2dccdcc807f3a9f94740dc0fa38a7ac3a9e"},
{Address: "0x8472C1E3482439e8ab74707A37AfBc1450744487", Public: "0x8472C1E3482439e8ab74707A37AfBc1450744487", BLSKey: "4914c1ed159f2dbd81d3ca81823a1b42f37ca70ad08088f8accab540124b13cd"},
{Address: "0x8523F06c816275Bf969935d81c3F8a567BF5C4ee", Public: "0x8523F06c816275Bf969935d81c3F8a567BF5C4ee", BLSKey: "f1c953830fab4f9a595e454e25ee57d1714ae7ae5922fd5a374534fa4088ec6"},
{Address: "0x8596ddC36ab3AdF720519D872446D93E3dD56b9B", Public: "0x8596ddC36ab3AdF720519D872446D93E3dD56b9B", BLSKey: "6722c0bc5ba1666f1c22703f6fd17e61d25339d0070374970f696c2f4c859629"},
{Address: "0x85E1bADF991A19013282C956f1a64CD468832465", Public: "0x85E1bADF991A19013282C956f1a64CD468832465", BLSKey: "2b0e63fd78f78a5147273292eccd33166c928d18e2881c85041457fbe33a9a56"},
{Address: "0x8A61A375d192c324348a590387fF9385137e3516", Public: "0x8A61A375d192c324348a590387fF9385137e3516", BLSKey: "274a33f8c7fdc37a494df84cf1a4936368f8fa51f8c2963db10c8989d4b17469"},
{Address: "0x8A74D5F8Cdb657DA50BA3670876b0928F2639375", Public: "0x8A74D5F8Cdb657DA50BA3670876b0928F2639375", BLSKey: "39a25a02986518bd25048fe0212269794b982b9395c79f3268070acaaaeeb9ce"},
{Address: "0x8Ab219d5F9FFEB2E05631852be69F9Ee16192b53", Public: "0x8Ab219d5F9FFEB2E05631852be69F9Ee16192b53", BLSKey: "30da8a9f0f88619ea618bc6662403d395b900a1747cdfd1052a1010b24947b6b"},
{Address: "0x8AdcE99aABDc8e149807A4ee3Df76a85D726C76A", Public: "0x8AdcE99aABDc8e149807A4ee3Df76a85D726C76A", BLSKey: "3b0c26b82945a90d88c80e2d9b136619dc52a52904e046ae86f64d3a5b29e336"},
{Address: "0x8B98C8f1aCf11b58f30aaac600b8E72102E9393C", Public: "0x8B98C8f1aCf11b58f30aaac600b8E72102E9393C", BLSKey: "2399d4f7d3faceda17507043df1419dea26f8150c3ab7a09eb1ae75a5e7761a1"},
// 210 - 219
{Address: "0x8C0090401130aAAdab6D1bF68E42d66cbbd05492", Public: "0x8C0090401130aAAdab6D1bF68E42d66cbbd05492", BLSKey: "f1066d3f6cb292e8784a342ab8dd0115c3a9ea36096f903ed796e609ff73f30"},
{Address: "0x8CcFA7D08aa57BfBaDf3F9c2398618FeBC6242C9", Public: "0x8CcFA7D08aa57BfBaDf3F9c2398618FeBC6242C9", BLSKey: "4b3b9303dbf6ed9c84b827b0b4ede125126ea60c2b5c3ab114247ea9f2eff7d9"},
{Address: "0x8Cd0FdaAeAB633dE1156167c4cFFAFBfd1115262", Public: "0x8Cd0FdaAeAB633dE1156167c4cFFAFBfd1115262", BLSKey: "151e012da726a503066c48484189387315c7d25416ce619373d9a9f0ed05b5c6"},
{Address: "0x8D83762E8aaE86c89C7BAa5a7d9Fb3eCB0520c11", Public: "0x8D83762E8aaE86c89C7BAa5a7d9Fb3eCB0520c11", BLSKey: "6ebd39b9dc4cfdd1b96c6ec489bbb14c520d7c1e990eaa5249515fdf81a16ab1"},
{Address: "0x8E6727f22F99a544DE88829547be11bFD15d2e74", Public: "0x8E6727f22F99a544DE88829547be11bFD15d2e74", BLSKey: "6561fb335142a29eb845558cfa7732f1335aeaa5c775974277bb7a7296f63bcd"},
{Address: "0x8F70bae25fFB3b4769ba03f7F25D41011299ce2F", Public: "0x8F70bae25fFB3b4769ba03f7F25D41011299ce2F", BLSKey: "2b6fbd5b042f0aa5c4672639d52bac208fbc94d5da635090adde10c339037a64"},
{Address: "0x8b870d5E5D1c7F8A883d033f2B191B9A753b7505", Public: "0x8b870d5E5D1c7F8A883d033f2B191B9A753b7505", BLSKey: "dbb1755c208c9cf92b74f35a817b6f7530dd00e1a2b187bf6d282a21511d4d0"},
{Address: "0x8f16F6397D1FE318c2C99f7393Cd0AF18c6e9400", Public: "0x8f16F6397D1FE318c2C99f7393Cd0AF18c6e9400", BLSKey: "12b1165a713ccfbce1f624e95b145fdb9389aaacab80b2dab89c1ce86bd6bc06"},
{Address: "0x8f1ACE0ae44D9fdCF5E6f5499fA8622e8EcD782D", Public: "0x8f1ACE0ae44D9fdCF5E6f5499fA8622e8EcD782D", BLSKey: "5e13c9362a0f6808f420132bcf75a7b34a51d35109746335a5424d81a754d5d5"},
{Address: "0x91136E3d84a594A375A40dAb2BF0499aBE4af875", Public: "0x91136E3d84a594A375A40dAb2BF0499aBE4af875", BLSKey: "25628008b68d0d08784c49586ec2bd96dabc27452c2d6a5b31fd71bea64089e1"},
// 220 - 229
{Address: "0x918c7E1f1CEdD25415439786A53c3C35030beE0B", Public: "0x918c7E1f1CEdD25415439786A53c3C35030beE0B", BLSKey: "40c3a24ac47f4b794e888ef09a9e04191c2832ecba3162d037e533509b301b0b"},
{Address: "0x91bD0CC6c2016DA1B1AA798eE7fC30f6a3327d15", Public: "0x91bD0CC6c2016DA1B1AA798eE7fC30f6a3327d15", BLSKey: "10a4619aa0a7a5810374f6de8a860dddfb875a87b59ea91c369ebfd123749675"},
{Address: "0x929Fe1f0Bb4E21704c2D63c12fd563553c77E912", Public: "0x929Fe1f0Bb4E21704c2D63c12fd563553c77E912", BLSKey: "3c6bf37987e81854e69b5bc2aa1954968781aec5d092abbb867ae5a20442caf7"},
{Address: "0x92d4dBCb8809De9980aB8F95C573DCc1041a346a", Public: "0x92d4dBCb8809De9980aB8F95C573DCc1041a346a", BLSKey: "59201e3accf48500d7d80a301bab669b2c36be4b446637ee41dd82d4761e3fcf"},
{Address: "0x9423bD42443Ef279DC3b73f20E1c4223C398A12B", Public: "0x9423bD42443Ef279DC3b73f20E1c4223C398A12B", BLSKey: "54d5fac1eca2ecc1b11df0146a932eb83108eb94197b49b623c83689b66b0a71"},
{Address: "0x94257dE2c456265883152Ec7a425f054631bC39A", Public: "0x94257dE2c456265883152Ec7a425f054631bC39A", BLSKey: "12dd26613dc6176d7bdf1948b7853d416cdf3a4aef1726c223e49adcd0c53a51"},
{Address: "0x945D919f1035F6D5fD480800500F8fC524eDda56", Public: "0x945D919f1035F6D5fD480800500F8fC524eDda56", BLSKey: "5d2ebc848ebf978781364419f8c9e34aeee4b011995e8101796e57d90e8f021f"},
{Address: "0x949C42889D7A48641D84E104E60A2ed56a1aCD7c", Public: "0x949C42889D7A48641D84E104E60A2ed56a1aCD7c", BLSKey: "16c04ea4962a38744e9152a9e7957d3d9b4696929de97dcde22eb3eb9d763003"},
{Address: "0x94cA2706dc707449E56cC72702a6D9C2a1aD2E5E", Public: "0x94cA2706dc707449E56cC72702a6D9C2a1aD2E5E", BLSKey: "350332b08a3e177916a248af0f743cfbee24bb4c7f7530f40a2f02e513d0b1ee"},
{Address: "0x956545e1eA3C5Eb90E71E33941307A5498F0897F", Public: "0x956545e1eA3C5Eb90E71E33941307A5498F0897F", BLSKey: "3bc4cc6fab4ca636ebbd09756a1d2764718fc15290d5d7363efaacd141fd7559"},
// 230 - 239
{Address: "0x956c3d59b33e1B794Ec0Db0825E4bFcC0b68C7A2", Public: "0x956c3d59b33e1B794Ec0Db0825E4bFcC0b68C7A2", BLSKey: "72ec8021fc95f4a2a5d4aa71b1438e45a3ccaf8e0a3c95325cd232a7d6a6b173"},
{Address: "0x95D04aF9290982333d2A647Ff994E5ECDc9A6d5C", Public: "0x95D04aF9290982333d2A647Ff994E5ECDc9A6d5C", BLSKey: "6ff86074b021efdebf968331f6137d6fbcb584578628864a0c4d1948897f204"},
{Address: "0x95E0D358E5FdDF85f4266f1AF31C08D269A1Bd0C", Public: "0x95E0D358E5FdDF85f4266f1AF31C08D269A1Bd0C", BLSKey: "66388c0308df2817d02f54d5ba408eedc3c3bfbf4fe6c0f8f493980856e361b3"},
{Address: "0x9637B9690f424212eC563D27faDfb5405d87ECbc", Public: "0x9637B9690f424212eC563D27faDfb5405d87ECbc", BLSKey: "3b7dbc119a1e12e682df39314b955794246b938c038cb059aeb4c2d9b55f429e"},
{Address: "0x9699B184547c8A72E2720798cc844483829AE364", Public: "0x9699B184547c8A72E2720798cc844483829AE364", BLSKey: "8ee1810a789e118a0332f5af9fc642e99d9af38b1868ab3a35b382ae383a418"},
{Address: "0x96bEBCB6c547e24071360fE52c8DFD1EceAe1159", Public: "0x96bEBCB6c547e24071360fE52c8DFD1EceAe1159", BLSKey: "42f69001c41e3bf19657ed9b343ce091b17b74b5869838cd4f2d2749457b7487"},
{Address: "0x9747CC556515c00E2966fC83A81659D6C3977Ff6", Public: "0x9747CC556515c00E2966fC83A81659D6C3977Ff6", BLSKey: "39164837b01df5b5ad181b12e589d8fc8013e28b809c180f11c97df12130e44e"},
{Address: "0x9862aDb98793D1a25Fe75EF315DFa1f3a2133652", Public: "0x9862aDb98793D1a25Fe75EF315DFa1f3a2133652", BLSKey: "28591cd6325b9a374a57637e986d1edbffac4125220979fcfcfb21b14668e7e1"},
{Address: "0x99F5bb9F80643569A4AA8AFfEB64FeB06bba29Cc", Public: "0x99F5bb9F80643569A4AA8AFfEB64FeB06bba29Cc", BLSKey: "6008d524f1401176cd1d0df1523720a8e2248f73f2aeb3b68142f6f71cf5d0b0"},
{Address: "0x99d2ef179790030eD3aEBDC0E471BBDcFA6eCc70", Public: "0x99d2ef179790030eD3aEBDC0E471BBDcFA6eCc70", BLSKey: "1402b8bf04cbc4232be13cf93a71b23a52923ddbc13599785e7e0342f2d2475"},
// 240 - 249
{Address: "0x9B844e64A50a1495e1ff67587b9AB44d47129F90", Public: "0x9B844e64A50a1495e1ff67587b9AB44d47129F90", BLSKey: "52c9cac458b745e5be5ecafbe8c65b543710f3e9f475751181044578561f1a69"},
{Address: "0x9DCd46C76f46e0C813523b8E1f180A2D5F37831A", Public: "0x9DCd46C76f46e0C813523b8E1f180A2D5F37831A", BLSKey: "3c5f05f275e3b8d67034b4bda1fccd3058d4efb21433d3cd5b553c55d32bfd02"},
{Address: "0x9E715388FA18e42F05373396dc4333199BFD6309", Public: "0x9E715388FA18e42F05373396dc4333199BFD6309", BLSKey: "352450b18d535febbecf6c12ec8f1803526da5e305ec8699d6bae2f5f18da6c0"},
{Address: "0x9F59275941150FC43215B66cf0Ff8e806CD13F85", Public: "0x9F59275941150FC43215B66cf0Ff8e806CD13F85", BLSKey: "4b02d2c3af697426c80998e80ba514a3c411ac63399ba6b23db405413cd1d982"},
{Address: "0x9b353a54E0bd19EB7849252df0d48053b0B40fa1", Public: "0x9b353a54E0bd19EB7849252df0d48053b0B40fa1", BLSKey: "62548ddc9c4adbd19a2cadda379c12a474e6671ca21870aab094d0a0b970e8c4"},
{Address: "0x9e6BEc699cF0BF5ba303C230711CF18172CC65f0", Public: "0x9e6BEc699cF0BF5ba303C230711CF18172CC65f0", BLSKey: "5e836599131d36c6bafd860b47c16fc0521d99386786cea903263a669066095d"},
{Address: "0x9eBD19bcEB9e8503055d504de006B69eC724e6E7", Public: "0x9eBD19bcEB9e8503055d504de006B69eC724e6E7", BLSKey: "609546d6c75c0a7c972b98b9c0fa80c8ecf818227bc0b720d2779bb89479a156"},
{Address: "0xA123a6AA1Ea595D1561a7D65d14b538fa3378fa9", Public: "0xA123a6AA1Ea595D1561a7D65d14b538fa3378fa9", BLSKey: "1f4ccf8e40ee8db11f5c07b8bce8cdd7ccb33890b7990b900aa58cb122747cea"},
{Address: "0xA3F7ec53f39415aa1A1907F95FfAcDf46dFb9fa8", Public: "0xA3F7ec53f39415aa1A1907F95FfAcDf46dFb9fa8", BLSKey: "4ab1d4e58d1f5a37ef73ebf48b958147fe052081e97884e8018a9c7bd8bc925"},
{Address: "0xA40d92133594d20a13FFbD396853476373B85E61", Public: "0xA40d92133594d20a13FFbD396853476373B85E61", BLSKey: "22381b35edf9e6fde8a15eca1df75ffcdb457b7dd78344864ecac4c48cac5f58"},
// 250 - 259
{Address: "0xA53a112afcE812F55A22EbdE2214FD1ef555B9Cc", Public: "0xA53a112afcE812F55A22EbdE2214FD1ef555B9Cc", BLSKey: "3f4999a8515043b37973dc974833f20a794e8ea492e32687960c66fe3ebd91b5"},
{Address: "0xA57471E20BDe6a199a6967c113545b7031551eA3", Public: "0xA57471E20BDe6a199a6967c113545b7031551eA3", BLSKey: "6b79eed2fe258ce32c889130a16f6999fb84985c5810b55c893f4a9b41200d3e"},
{Address: "0xA652360e89E08CdE3A99be1b22C60077c96bf85e", Public: "0xA652360e89E08CdE3A99be1b22C60077c96bf85e", BLSKey: "5a6188025e3227d11c6861aa0d3f670d1b72ef7e1c3df5ee1fa502853cc43eca"},
{Address: "0xA8AF447E19ba3673263d1d9223138C726D4A69F2", Public: "0xA8AF447E19ba3673263d1d9223138C726D4A69F2", BLSKey: "613f744cb43b5413ae0917854070407e4890ea0513b3bc23cb0055c0cfb14d9e"},
{Address: "0xA9FF4Fe2b64BF6341d2016488CBedF0F660Cb35e", Public: "0xA9FF4Fe2b64BF6341d2016488CBedF0F660Cb35e", BLSKey: "380f6b3ac4f43f89c249d5e6762aff1efb4008d6673061a9c4333079230b9f74"},
{Address: "0xA9dd45caf7963Ec0Cf71067111AB74AFAd84B53C", Public: "0xA9dd45caf7963Ec0Cf71067111AB74AFAd84B53C", BLSKey: "2b5e4ea1f0abd35b3c7e14b82c792facd252c4250b61de743f200aa06e6e1d2c"},
{Address: "0xAC8E1689872748d074B123dbd8D535fF82d4FD7F", Public: "0xAC8E1689872748d074B123dbd8D535fF82d4FD7F", BLSKey: "72720ae38fc5b6e7c6c7160a02243323eb7044eecbe4e194613a159197c69ba2"},
{Address: "0xAE71c8067bf12C0027fd5ADcda9fd006D5e02a21", Public: "0xAE71c8067bf12C0027fd5ADcda9fd006D5e02a21", BLSKey: "dbff1f93812f3c50c1bbc7e50f2442cf72a3d82b1e01a0a99aba0bcaee6eb73"},
{Address: "0xB32EC947bD777294924746Fb9A2f1d870c7D7b77", Public: "0xB32EC947bD777294924746Fb9A2f1d870c7D7b77", BLSKey: "5435ffa63bd327e9de20f84a892b14f077553c9eeadaa841fe9dcb1cccad1a87"},
{Address: "0xB340E34F8f9C73E7F1321102912E5A1A888AeB8B", Public: "0xB340E34F8f9C73E7F1321102912E5A1A888AeB8B", BLSKey: "3d21fac529bf39bfd10776eebfd888cf9d71cee927543a244b10b495cd777c3e"},
// 260 - 269
{Address: "0xB37A17A8aaB2c51297f2207D9325450Aa9FCbB3d", Public: "0xB37A17A8aaB2c51297f2207D9325450Aa9FCbB3d", BLSKey: "32765206d5ec4e15df9ff0e7b0419f4de5d604c124f3fe082da970d221126b33"},
{Address: "0xB3B065fFB5F081170A1b3a7497711A4f0AA8405a", Public: "0xB3B065fFB5F081170A1b3a7497711A4f0AA8405a", BLSKey: "54debaa56e63d5550375815d1484ee834300dc80db61f70cbc67e4d9dc26327"},
{Address: "0xB48856c51a2beb57df0fdb9D53463F36bD42cded", Public: "0xB48856c51a2beb57df0fdb9D53463F36bD42cded", BLSKey: "666e73e4adabe0e7c6838b25b5e5a53d59d34a01308784e60be95a99f4f35ae9"},
{Address: "0xB5562E105957e2F9fCc4e0De836032FCc4Dd2689", Public: "0xB5562E105957e2F9fCc4e0De836032FCc4Dd2689", BLSKey: "3acc61b39b9bad264b4cbb05176dd2361b8c32090e436c4b10fb55a9f1cd322"},
{Address: "0xB6370063dC8d761B3655398129F55eAfc80F35FB", Public: "0xB6370063dC8d761B3655398129F55eAfc80F35FB", BLSKey: "2ec6f71d2dc8aee4ccfa9c32e53184c66737aebf811d92683033b88b0e1364f3"},
{Address: "0xB79D19d38bcd7385a133EEb882130fc904c8440e", Public: "0xB79D19d38bcd7385a133EEb882130fc904c8440e", BLSKey: "2ce44d146914342b11e3cc1d633f3442bfd11e5c81cd614954cd81f36601f14b"},
{Address: "0xB91b5bfc5B127D2eD459AA630E89cf22fa2F97FB", Public: "0xB91b5bfc5B127D2eD459AA630E89cf22fa2F97FB", BLSKey: "5a9fa89d238cbc218376232dbe1ae72b2858b53a7d6db733aa517dc70934fdca"},
{Address: "0xB9E454ad521658387D8466211A2EfBa67D5b5E1c", Public: "0xB9E454ad521658387D8466211A2EfBa67D5b5E1c", BLSKey: "410a6c91db96281333645bfe765d3ef6456b214877f4639099c0b9816301d815"},
{Address: "0xBA18CcF3De40887863Ec531Ba26601800118d895", Public: "0xBA18CcF3De40887863Ec531Ba26601800118d895", BLSKey: "5bf7c036fe6fe1e144d7d12889b8c9f60ad216c520fc158841d7aa9906126bd3"},
{Address: "0xBAD8736500D4A532C58AdBD0371C104fa2963742", Public: "0xBAD8736500D4A532C58AdBD0371C104fa2963742", BLSKey: "5ae28ab35f97b21670ba813c24f34a14cb2246d85bd36010edf1f4d7cf0b24e3"},
// 270 - 279
{Address: "0xBCadE9E4936F8B04dDFf820357F1C2C069E34F1E", Public: "0xBCadE9E4936F8B04dDFf820357F1C2C069E34F1E", BLSKey: "88421776b866f4819b57024d695fed202f71d06c0903f28a8a3c49cfff4d6d7"},
{Address: "0xBD63c16C80f5526c1EBA246A3465671584B2934a", Public: "0xBD63c16C80f5526c1EBA246A3465671584B2934a", BLSKey: "2fcde213d3cfa0805956e0750da460e551238f4cf5c26ebecb15ffa2a6a2cff4"},
{Address: "0xBaf1a0819EfAF0979b86A06FD3082Ee039e260A0", Public: "0xBaf1a0819EfAF0979b86A06FD3082Ee039e260A0", BLSKey: "3ee02ec36a7f07f0f05577b4d9d33179edf488576f3995a2cfb324dc9555713"},
{Address: "0xBbA4B237fe8C33064b4bB51a236385Ff874445c8", Public: "0xBbA4B237fe8C33064b4bB51a236385Ff874445c8", BLSKey: "1c14f24ade596e26b85a651cfaf37b0e87efa2561cb65c5fb9e83572de92812e"},
{Address: "0xBe6e4235E7dC80835bf6326607f6701B046BE1B2", Public: "0xBe6e4235E7dC80835bf6326607f6701B046BE1B2", BLSKey: "6cf553fc53489d7cc9c28eac54c28e44adba04c8d1f86b3aeec57872478c01f7"},
{Address: "0xC046ab6829bA4A7cf695F1CE39Aa121fe2d2650a", Public: "0xC046ab6829bA4A7cf695F1CE39Aa121fe2d2650a", BLSKey: "702257d05e2ee02f8800ee52d0f18c8f3dc7064a6a9319fc56f23514e6b246d4"},
{Address: "0xC0cDc35768Fe19eF60D287435c625f315f70eA51", Public: "0xC0cDc35768Fe19eF60D287435c625f315f70eA51", BLSKey: "527e5f786ce846085562ec4622d2c93357966b55aad54c8e781f8d44f5999af2"},
{Address: "0xC132eb0bD93De571397A26d3e30Eb77875fA7d97", Public: "0xC132eb0bD93De571397A26d3e30Eb77875fA7d97", BLSKey: "48baeb64231f61393297f6539ce73bafd4674a599d7cdee69c8b986d1546b7a1"},
{Address: "0xC36b3c49190Bbc027d08C6757Eee6F81A8B8d0dF", Public: "0xC36b3c49190Bbc027d08C6757Eee6F81A8B8d0dF", BLSKey: "32144cd410e442c3290ce7f3b9d57980b9dcbdfcfc4dbcb44b6e7f5dd8292ab1"},
{Address: "0xC49034EBDB90ffD6c7767FF85ae3B30e03C29CB0", Public: "0xC49034EBDB90ffD6c7767FF85ae3B30e03C29CB0", BLSKey: "6f1ed3a071ab5866de4c8ae2c9fbc92ab316dc67e82b3e72f72e96a9e4f94bb2"},
// 280 - 289
{Address: "0xC6D0B4180A25d1A7EdA9Be2D8eE9dd0D41d2D75D", Public: "0xC6D0B4180A25d1A7EdA9Be2D8eE9dd0D41d2D75D", BLSKey: "3cffdc3bbc325c95af382da7b4d29f75111a5e73d05f2281696dbfeac58467a0"},
{Address: "0xC7D97FE4962F3990f93421a26a8020EB0898c5e6", Public: "0xC7D97FE4962F3990f93421a26a8020EB0898c5e6", BLSKey: "5f3aee26cfe3d9872b1e45c3ce5a222f10e2734d2b6e122c4364ced72e18a3f1"},
{Address: "0xCAcd563284f44dAb78CeE1E1BC74C07042b414Ec", Public: "0xCAcd563284f44dAb78CeE1E1BC74C07042b414Ec", BLSKey: "1e8ff9d5bdc44d289dab0afc8500043e0abbde98c09afcf2c64fb04b7e2b1357"},
{Address: "0xCB4c0864bBD5921E0Eb7951Fdf16E7Bb2607542C", Public: "0xCB4c0864bBD5921E0Eb7951Fdf16E7Bb2607542C", BLSKey: "16311ef8dc8b586489b410a01519e356db2d93f8bbe4237f3565d842534bf8d1"},
{Address: "0xCC332c845b6Bd7d28a5C54a51D5ea32C08cC2369", Public: "0xCC332c845b6Bd7d28a5C54a51D5ea32C08cC2369", BLSKey: "9aaf12d3f49de4db734d04e19ec61be87def1c784ebe9d657fad2604262d773"},
{Address: "0xCC831ce78Ee204C124a7Cc1A5d55bfeBE58E924B", Public: "0xCC831ce78Ee204C124a7Cc1A5d55bfeBE58E924B", BLSKey: "3d482eeea6cd4b565b3d72ae25874bf9c5b9ff5c14d585f51f07b3080e6ce375"},
{Address: "0xCC98Fe686F3Be69566F64F550E581Ee97647D8c0", Public: "0xCC98Fe686F3Be69566F64F550E581Ee97647D8c0", BLSKey: "385e78b03f68631eb41da1ba5ca3ec193d9c9592f672ed20653e159cfbcec86f"},
{Address: "0xCCe50309EF9Ad3EBA4fcb822Cc3878c5485964ef", Public: "0xCCe50309EF9Ad3EBA4fcb822Cc3878c5485964ef", BLSKey: "6926c6782db3d66da2797dedf30040a6221f736a58c8796eea764475d748680f"},
{Address: "0xCD929182222226982c3CB45D98Edee24927F70A8", Public: "0xCD929182222226982c3CB45D98Edee24927F70A8", BLSKey: "45ffa6192469020a63c09ab0fb8748a6e89d5b646f04da4516aa76539b97dafc"},
{Address: "0xCa6Cf168c91bb6Fd5C7fB224b567Fa390DB0FFD1", Public: "0xCa6Cf168c91bb6Fd5C7fB224b567Fa390DB0FFD1", BLSKey: "1e6c1a36cf84420b3aa31b297b0a122a5deadcf30ce0573c847cdd3b6b7ac50e"},
// 290 - 299
{Address: "0xCb1A498eFe2eA5Ff136Db7D826b1429a2702B9AB", Public: "0xCb1A498eFe2eA5Ff136Db7D826b1429a2702B9AB", BLSKey: "6b78d84bded09b0d9717b3ff8ac53be7ead1eef33fdc5b9c12aa068dfe6aa1c9"},
{Address: "0xCc4f14C63AA7BaD2BFB612186127C10793eC1F58", Public: "0xCc4f14C63AA7BaD2BFB612186127C10793eC1F58", BLSKey: "2e76b8ba821a752bf9121dea2d1247cd357170b619efe3d4193446e7e9607b06"},
{Address: "0xCd5B0539b872914bDB4d83BF4A49131CbC984Cc7", Public: "0xCd5B0539b872914bDB4d83BF4A49131CbC984Cc7", BLSKey: "9a040b18a6a2955084918c9bb02cdce1a0568c70c4dd4c5075fcab4a87fbeb4"},
{Address: "0xD13C3b87cABc9bc3E1C33d59780c415ffF0F6454", Public: "0xD13C3b87cABc9bc3E1C33d59780c415ffF0F6454", BLSKey: "4479e1a8c035f3c63092b61828e41283a4f3df665fd7678513d480be021cb37d"},
{Address: "0xD1A3bBB32805bdAcEA7509BE202972be13e12E33", Public: "0xD1A3bBB32805bdAcEA7509BE202972be13e12E33", BLSKey: "20292738f4c02f5a3a04cc82caa5ed905626ce2465ccce71410b38f0846dc0e1"},
{Address: "0xD351CF869089ec9b903d7e9Dd13d9E1fA98Cd9CA", Public: "0xD351CF869089ec9b903d7e9Dd13d9E1fA98Cd9CA", BLSKey: "80ebf557b991a248b8808c095b5b47b2a1ff638399a9e0714feac8dc191e34d"},
{Address: "0xD36077cD3160A5345F1a9A65BAE04fFf811B987A", Public: "0xD36077cD3160A5345F1a9A65BAE04fFf811B987A", BLSKey: "9710c5d36808dcc5c9e52848dc7f0806116c22d1e6aefb0eab3a83d162fc6e2"},
{Address: "0xD420759A7B75F797B026d5eCd945611f2d1075Ca", Public: "0xD420759A7B75F797B026d5eCd945611f2d1075Ca", BLSKey: "6ca67f3a8db47afcc472ced1931e2cba462eced6c514f639cbbc430e6fc6ee63"},
{Address: "0xD716df51d645aD7E3a59539d45Dc632ec6513aD3", Public: "0xD716df51d645aD7E3a59539d45Dc632ec6513aD3", BLSKey: "576ae4099565ae72574fa06baa78f60baef7cfadf6e6bb5df5499f5075e8bd1f"},
{Address: "0xD905Fed0e733CADB51496C1CC0A139e20fEFD37C", Public: "0xD905Fed0e733CADB51496C1CC0A139e20fEFD37C", BLSKey: "355e6dcda5f54bd8040d20a122e9220a782a1e1a1a1907c9c1d4a081308c69e0"},
// 300 - 309
{Address: "0xDDd3e231d0CD737E82d080DAE41c3A4B087E7b8b", Public: "0xDDd3e231d0CD737E82d080DAE41c3A4B087E7b8b", BLSKey: "6adf5b3066ce5effbb0a715ae5ca9091cabe72e030738208477798825bfc2afe"},
{Address: "0xDa4CE4A006A2b5EE7c1F48B2780fedb39a509593", Public: "0xDa4CE4A006A2b5EE7c1F48B2780fedb39a509593", BLSKey: "67f49dd84dd6e5448e7f110508cbd37c09416a3336215f8b1c58cb415e03227c"},
{Address: "0xDb04208A0f67A3C1CbB900baeC864369c27B182F", Public: "0xDb04208A0f67A3C1CbB900baeC864369c27B182F", BLSKey: "3258170f73205b2955c8be28e53e954063147ba52e45f43d000fb15c246120e8"},
{Address: "0xDcB67CB0CAC26bA013C7d6cABCB10920e61eCF70", Public: "0xDcB67CB0CAC26bA013C7d6cABCB10920e61eCF70", BLSKey: "1fca28daf69d36ab779b48d92c41d60033e751c67184fccdbe8ac39fa4178d37"},
{Address: "0xDdBe700758a452F2Ab02BDe237ff6Cb1fd39DC91", Public: "0xDdBe700758a452F2Ab02BDe237ff6Cb1fd39DC91", BLSKey: "3bbdc80b745b08fc0bc854d7d1fe6068fd88c3833c5822e423d065d5222b2540"},
{Address: "0xDe6eD0AbBcfF62fa956A39215EC452352f71FEf5", Public: "0xDe6eD0AbBcfF62fa956A39215EC452352f71FEf5", BLSKey: "353a20a1b5a9b27aae8c6655e768e70d8f477898c27e2f3635ba9926dc320ec"},
{Address: "0xE0Bc6F5cf7Dd5795998D46d1Fc85eB9EaC873eEe", Public: "0xE0Bc6F5cf7Dd5795998D46d1Fc85eB9EaC873eEe", BLSKey: "3d191e6a5e884e90702b71868a2a9719cbbea45538a82c3f1e57a3aa0f4dd2a3"},
{Address: "0xE0d9D74036D37684E36cBb76Aef8563D58D229c9", Public: "0xE0d9D74036D37684E36cBb76Aef8563D58D229c9", BLSKey: "4e8db7695f466deb28fb776a0cb0ce8d1ba4b1606299b94286e3ba8888993ad1"},
{Address: "0xE190B5677915fcFEDD1d075E28C1dC9AF3F4aF9B", Public: "0xE190B5677915fcFEDD1d075E28C1dC9AF3F4aF9B", BLSKey: "410baa663c67f5d0e4376f756f158741d6b47ee0acf981ae4ea2055b0a55505c"},
{Address: "0xE31f391363F2f09B4c7BFc2b8F797Ab5119033b1", Public: "0xE31f391363F2f09B4c7BFc2b8F797Ab5119033b1", BLSKey: "3550ce9f169edf948ea0a4267b04c13db519d61daeb83b8bdad2dc8a203ecc53"},
// 310 - 319
{Address: "0xE3B7e3163Cb5646C3aB72233e899ebeC1a677f9E", Public: "0xE3B7e3163Cb5646C3aB72233e899ebeC1a677f9E", BLSKey: "296018dae6ca1b522f1b5bb6f5bf0fe22a2c7a1756913bfa0d021db6d97eda85"},
{Address: "0xE62185a7fEad984F071A7C4bC88fF5548b8a703c", Public: "0xE62185a7fEad984F071A7C4bC88fF5548b8a703c", BLSKey: "6462abb07375a448c743ab0953393ce963217e85f99f496ce9a7df516a962fd3"},
{Address: "0xE64dE8594090cf41a7c63353faa3A6fc19e24134", Public: "0xE64dE8594090cf41a7c63353faa3A6fc19e24134", BLSKey: "29a01650c1b9087287e7c8c574ee476488f78cddb411bc4311161fe7581ca91c"},
{Address: "0xE6F0E07c91F3f36e469b6bbbBEd5aAAFE36d8Da0", Public: "0xE6F0E07c91F3f36e469b6bbbBEd5aAAFE36d8Da0", BLSKey: "5513b03cb0685542183321de603b3fb25218d4a43fad5177e7f4c334a23c5f76"},
{Address: "0xE85ae0aD9d135AdF59f578e167e83C9024139cc8", Public: "0xE85ae0aD9d135AdF59f578e167e83C9024139cc8", BLSKey: "4ed6fe178cc1301b9793dd306f0cce13023206e6e595c4ee59bc5901a3e0f441"},
{Address: "0xE9c5E4E5356C43c0Acb6315B99EE06b9a2444671", Public: "0xE9c5E4E5356C43c0Acb6315B99EE06b9a2444671", BLSKey: "58ae5f2584eaea631ba5b1e191916f0c21bffea2dfe7017ff0ed3261a3e94421"},
{Address: "0xEA7C41f1BbA4376A39ce5c01A51F3a4a3e5A8ebD", Public: "0xEA7C41f1BbA4376A39ce5c01A51F3a4a3e5A8ebD", BLSKey: "3684c0ff3338bbe4937203292c8a6f377a5fae46c82aef6431feb13fe5f7400b"},
{Address: "0xEFa188A4765422f95938de1e3FBDB7dc6FaDDC78", Public: "0xEFa188A4765422f95938de1e3FBDB7dc6FaDDC78", BLSKey: "578497b38259eb9f80c7a9182a8aa930eb6ae76118d763e670e23b2cabb04e85"},
{Address: "0xEc616773962E7094295F0F31D416748747535E37", Public: "0xEc616773962E7094295F0F31D416748747535E37", BLSKey: "30d0086d2503fb117797cba425409ba6583a084f18a972d3fb640bdf56038eb5"},
{Address: "0xEe406e757d1CC84dEAF3696A5C9f4507aEAD4794", Public: "0xEe406e757d1CC84dEAF3696A5C9f4507aEAD4794", BLSKey: "210d958055e8ca19640215fb0516fca7e1b7d238c08f04139d7ff896d79bfa48"},
// 320 - 329
{Address: "0xEf6F999b96f939597EfDa9e19Ad02A7Fa2b1aA20", Public: "0xEf6F999b96f939597EfDa9e19Ad02A7Fa2b1aA20", BLSKey: "50496ab028917d81f6f505bab391bf1770bda22dcf24da32438ee6f0a8ef2258"},
{Address: "0xF3c55A45c03e17efB0A50163e0aabcB70648848d", Public: "0xF3c55A45c03e17efB0A50163e0aabcB70648848d", BLSKey: "376967a5d894d9b5e4ca4aea85b21dafd5a09ad2c42515aa57594ffdcaf186f9"},
{Address: "0xF6C5363A8E2C792697B01da8c0bC8cCa6668bdE0", Public: "0xF6C5363A8E2C792697B01da8c0bC8cCa6668bdE0", BLSKey: "680e17746f0e0312db7358290fd0cbcd6da84f6278ba168b3e7d66ee83b496b6"},
{Address: "0xF97C989cc1D31aBdeE222cCe7ED8A3a3e4D45A2e", Public: "0xF97C989cc1D31aBdeE222cCe7ED8A3a3e4D45A2e", BLSKey: "20a41b3121ec7862b5312255b30d819ade0179c846f8c365ccf113c07ae184a"},
{Address: "0xF9cc6BdB428b23e1f8485aC95b22f8D93FC5a425", Public: "0xF9cc6BdB428b23e1f8485aC95b22f8D93FC5a425", BLSKey: "598cd6a029f07771c3a81d10eb249b07636bd0e632087785c02bc5c09ae62d5b"},
{Address: "0xFB48d5809AcBbF5C350a12b955c76CE5bCd1c27C", Public: "0xFB48d5809AcBbF5C350a12b955c76CE5bCd1c27C", BLSKey: "66372929f9a6f815cbffcbdffdac44dedb690a75b7992a0e014d903365662509"},
{Address: "0xFBd3b6Aeb408FC2a99d82786565a9C981d63Ef0E", Public: "0xFBd3b6Aeb408FC2a99d82786565a9C981d63Ef0E", BLSKey: "65390aade3163d581e5fe002faa8382dd648f1c2ffa851fb5d799a8dfb41bf5a"},
{Address: "0xFC5d56e8f45F7D918b429ef9eCAEF439031A9638", Public: "0xFC5d56e8f45F7D918b429ef9eCAEF439031A9638", BLSKey: "915da10bcd42172c44fab5dcf3490d00062a6c68869d5d62a7253332f31145b"},
{Address: "0xFc0cC772Cd483ba94030F7Add507B5Bca80E9a03", Public: "0xFc0cC772Cd483ba94030F7Add507B5Bca80E9a03", BLSKey: "3256a73b02164340d5c33d36870efc695925ddcd94ed4021c30b80174a185479"},
{Address: "0xFfa7dE5ef5774B1211328e7C40A8030af69872A2", Public: "0xFfa7dE5ef5774B1211328e7C40A8030af69872A2", BLSKey: "64f77b40fe37a15906cb6402b1d520ecb98c0c67c2ccf87fac4e590b1d32b9c8"},
// 330 - 339
{Address: "0xa1aB772E82de47DBa2Df2A597729716e055f13e4", Public: "0xa1aB772E82de47DBa2Df2A597729716e055f13e4", BLSKey: "2c43e7a4b516863cb3f560b1e67b8a1c4e4db32b5c964664b43d4359d4762c82"},
{Address: "0xa525D0E0408B22Ac4C88ff5B1b18F6a04F455A9d", Public: "0xa525D0E0408B22Ac4C88ff5B1b18F6a04F455A9d", BLSKey: "9fb6747b54116c1a4b897b01b668c9ab7094c366a72cdf91bc2f49f5b02b80d"},
{Address: "0xa579b6d75Ec067A3281348319F16E8cd23f9e6eE", Public: "0xa579b6d75Ec067A3281348319F16E8cd23f9e6eE", BLSKey: "3a248d92141092a8e7b49204988c63c714b718fded785de9895b1619c769ca19"},
{Address: "0xa756b3920807ef8F5b356dc87204FE326675fC3e", Public: "0xa756b3920807ef8F5b356dc87204FE326675fC3e", BLSKey: "96c91223538664c6e8bfb4a481c0fd6bf5696e10d2deaabf32317f6f43dc2d7"},
{Address: "0xa816F63F1375d3d14Ab3CCdEF7856E29c18Ab574", Public: "0xa816F63F1375d3d14Ab3CCdEF7856E29c18Ab574", BLSKey: "6b9abd93b8188f1b30d5521d7bafd51ea5abf283c24deca414911b2c32002005"},
{Address: "0xaB31963011e61F6c9c98f8332fB6788C6843d284", Public: "0xaB31963011e61F6c9c98f8332fB6788C6843d284", BLSKey: "16b313aeafefb27c35096476f814f4da43455ae815c6cff9d9cce6cd518f70f3"},
{Address: "0xaB9c949A9296172b6AE2b87fE5a87FE20758A59c", Public: "0xaB9c949A9296172b6AE2b87fE5a87FE20758A59c", BLSKey: "40f1d485565138bb0871f222708237f83cbc32fffeafa764273fda4bb028865a"},
{Address: "0xaE030b5785357a5686Ed9b89EF2C0D82a5AA4650", Public: "0xaE030b5785357a5686Ed9b89EF2C0D82a5AA4650", BLSKey: "69f80059680d189580681e94cd39cd8b177234285946f7bb56e9373747465fe5"},
{Address: "0xaEBc085A0AF631a81486b680F2334369DB2c7bB3", Public: "0xaEBc085A0AF631a81486b680F2334369DB2c7bB3", BLSKey: "346a4291eaaa6d0fe9b1b39b89cf6ce32562ba1a0f7eba19e84df1393c8803dd"},
{Address: "0xaF4a7499aD01ef627a9985152711ca45d0E86B7A", Public: "0xaF4a7499aD01ef627a9985152711ca45d0E86B7A", BLSKey: "3d9d8deccc2e8403fb9fa9f9277dae6dc01ed0dbc6d42c71d040ca168c0223c4"},
// 340 - 349
{Address: "0xb09490021A24F17509AdeD7A59141E9f2B15Eb68", Public: "0xb09490021A24F17509AdeD7A59141E9f2B15Eb68", BLSKey: "30218d463d984352571fc19cf213aeb6310f284f4829c6c4b414ba30688a819"},
{Address: "0xb25D4f96f06513C851D65f6bED3D9ac0Ce4699B2", Public: "0xb25D4f96f06513C851D65f6bED3D9ac0Ce4699B2", BLSKey: "537dfd4a941ab49ae3509fcad3c610f91ee43405826e61a77c28afa3a3b49bd9"},
{Address: "0xb25F57695D6541f712856aEE545aa8c583E153b8", Public: "0xb25F57695D6541f712856aEE545aa8c583E153b8", BLSKey: "4cc3a966e634fb750a9fa9b1e3810fa083ac06361ee376185ddadd18e30113be"},
{Address: "0xb4453086a8b623905743c083A49F60821a1C3a97", Public: "0xb4453086a8b623905743c083A49F60821a1C3a97", BLSKey: "1bdb21511b7f39de2f20274bae1d24702c7bb22ac103f35dd2bd5b25d0201f30"},
{Address: "0xb69FD1866215B8d6a6A1f99a71ce565b654F0156", Public: "0xb69FD1866215B8d6a6A1f99a71ce565b654F0156", BLSKey: "68fbe438b66ddb040752583cd99d6b899d7a32e5744ff58aa55d5ac1f701f48d"},
{Address: "0xb88c75b52BE0Db22B1EaBaCc161a73E465b50F00", Public: "0xb88c75b52BE0Db22B1EaBaCc161a73E465b50F00", BLSKey: "fa9e2a656a18649d5c14876e020f7ceecf353ecdd6616e65f44d1574ae5e650"},
{Address: "0xb8adDC78d695F532DDC2c8891842741bF6b627C4", Public: "0xb8adDC78d695F532DDC2c8891842741bF6b627C4", BLSKey: "5343784b3b85860dfb4d343a631d42f87dfc3d21973ca83eedea7ec6c06b545f"},
{Address: "0xb99C7D8F3D2D542025D8f45E21FE83a5319422EC", Public: "0xb99C7D8F3D2D542025D8f45E21FE83a5319422EC", BLSKey: "3e2db641341451088ad8a76e40638f5eada346753b50769fda0468ad4bf6beda"},
{Address: "0xbA30b84b8d0F106d936Af77D93C6653116EF54b9", Public: "0xbA30b84b8d0F106d936Af77D93C6653116EF54b9", BLSKey: "26bea457455ab74c00254f9c7e374eac45f616defdb43f633427d10c922f70c7"},
{Address: "0xbB61Aa32EAab4f5C0b1D66B3649aD97D9836576C", Public: "0xbB61Aa32EAab4f5C0b1D66B3649aD97D9836576C", BLSKey: "4b597458ed89420dd410bbcf46bd1e45920ac03cb7be54ecb6f76ffd8577444b"},
// 350 - 359
{Address: "0xba155CD47eF9cF07bf9140721af95ffB76D4EE8B", Public: "0xba155CD47eF9cF07bf9140721af95ffB76D4EE8B", BLSKey: "23e8797e9e61996d66facaae06c10977dbb8fbeea60f4c24f906f93ad7135eb0"},
{Address: "0xba98270b18E72A885370567138951af6CFc06d5c", Public: "0xba98270b18E72A885370567138951af6CFc06d5c", BLSKey: "665678cc3ec51744533057574667e989a0377e2c48e61c82ba21b5bd21e0d9c3"},
{Address: "0xbd1Afa5FB3B24c50A50f7a99A252517e1EDb6E14", Public: "0xbd1Afa5FB3B24c50A50f7a99A252517e1EDb6E14", BLSKey: "6626e5e4f125389fb8aea2a6b0273ec8f5cc101f19e3d10518c34af323702851"},
{Address: "0xbd9711147b5d809B38650626be865F017B91eA63", Public: "0xbd9711147b5d809B38650626be865F017B91eA63", BLSKey: "40f229ca444ae93dec52fae35e6b21e2ed414a048743d5372a3119be137e8747"},
{Address: "0xc0BB4aA4F2C15c0fD86e84CA8e7aFFC9d6a1BA8c", Public: "0xc0BB4aA4F2C15c0fD86e84CA8e7aFFC9d6a1BA8c", BLSKey: "270834519eb8a87775737194717cdb80c6f9cb56c1e1f1a60e3c8c57dca319a4"},
{Address: "0xc12953820Eaaf808c0181de242b59a72e3E55606", Public: "0xc12953820Eaaf808c0181de242b59a72e3E55606", BLSKey: "21146deafb8fcbf1e83ef1d0e48db54dfd2b16c6bb2fe9c09b4a71d8af2d2273"},
{Address: "0xc129b78786Abd0Fe6307048A95D38D5C22e03732", Public: "0xc129b78786Abd0Fe6307048A95D38D5C22e03732", BLSKey: "36bd8e315c03a3ca7d3e2e2615a11364907a568f425c9b2fd012dfa47c8fe8aa"},
{Address: "0xc24693350F83C446A1A65FD29b12D144600c8A56", Public: "0xc24693350F83C446A1A65FD29b12D144600c8A56", BLSKey: "65178e1e2213aa0132c6f3adfb94c033d9e1f0ab90bc5f584148fa6f1f2d90f9"},
{Address: "0xc2b1dA16bbe3F9106e5bf535Fc7458419c98D102", Public: "0xc2b1dA16bbe3F9106e5bf535Fc7458419c98D102", BLSKey: "6670e50e05c0ce23eeda349960bc863abf892b055a3eb5472a9bc691403d610"},
{Address: "0xc7B8417d78cA2d0833b0016e8E12f8E5679a44Eb", Public: "0xc7B8417d78cA2d0833b0016e8E12f8E5679a44Eb", BLSKey: "42d2c0adaaabb504f5030c1e5b52d5d3cf5d45f4cf9e8b3d60b6aca9ffa8654a"},
// 360 - 369
{Address: "0xc7be7908Be33a58c08FBc5FD3f06b1d4B7781641", Public: "0xc7be7908Be33a58c08FBc5FD3f06b1d4B7781641", BLSKey: "631de0fe2dd3d94f431682a4973354b4f39a1c2812e77dfaf01b124f9a351d52"},
{Address: "0xc82204e189EDF63807270d91c6bAf1d54ABB62B8", Public: "0xc82204e189EDF63807270d91c6bAf1d54ABB62B8", BLSKey: "5fc69b80f176fe905c77d97c8258dcab419bb0d9fb722fe6b36a92c19e53cb5c"},
{Address: "0xc84a3D4461f5a2f216D488Eb4F4852f523Aee385", Public: "0xc84a3D4461f5a2f216D488Eb4F4852f523Aee385", BLSKey: "3889e0dedebe075729b8a1b2dd3bb68e08c957a25216787fd2bea612a13d674"},
{Address: "0xc9dCBE9CB27eA03fC1c57d1B4b0204a3E9bC8Cb3", Public: "0xc9dCBE9CB27eA03fC1c57d1B4b0204a3E9bC8Cb3", BLSKey: "520fb72bc08dd73ab42e589398c42680deef308fad411655f2569d98a5e64cd5"},
{Address: "0xcAd114c0d8B87367cc598A4F13eEBa55a86C5F06", Public: "0xcAd114c0d8B87367cc598A4F13eEBa55a86C5F06", BLSKey: "b920c20a80d3b052da92f87c9d90d456b76c1bf2fd18c3a5552f9f94d023ffb"},
{Address: "0xcB8196eC986DF4DF027fF7406efDe74D3549f192", Public: "0xcB8196eC986DF4DF027fF7406efDe74D3549f192", BLSKey: "6b484fa0fa74852a54445a7711e23091aaf4b5cf6dd8f08348834b784cbb964f"},
{Address: "0xcB8Fe1D1ae31c09B3EA6D18A3680E00004E54De9", Public: "0xcB8Fe1D1ae31c09B3EA6D18A3680E00004E54De9", BLSKey: "6f5a1772e28d0ae68d3b1a8706eb1df089d0afc574dd3751ff20e6130c9c3fe2"},
{Address: "0xcE1f3C5f4Ee8759fF451286E90c156976BEe3742", Public: "0xcE1f3C5f4Ee8759fF451286E90c156976BEe3742", BLSKey: "43e0e38c16cb8ce39ed460fe4e45cc96313dd00cfb2b464564b81775d40e6e33"},
{Address: "0xcE319c2f6c4745b0D41530b55b1Efb09392Fb357", Public: "0xcE319c2f6c4745b0D41530b55b1Efb09392Fb357", BLSKey: "58b5edd11f637ef7dae64a9faa9d9920fa0014dc7406ad256f54389329163cca"},
{Address: "0xd16fb86Ad95B25baDb44092129cb6aA4FcD0190b", Public: "0xd16fb86Ad95B25baDb44092129cb6aA4FcD0190b", BLSKey: "3edec95885fa4537ae0e6ea6436556aa65b3e766688debd679ac4275aab4565e"},
// 370 - 379
{Address: "0xd20331D75CF373ee16547Bc00b3b71a283187A31", Public: "0xd20331D75CF373ee16547Bc00b3b71a283187A31", BLSKey: "4b8c600a6f9a9a594808b0a7a829362cca6988cd9cde27c5f8af3800bd3c7a51"},
{Address: "0xd24640d8fDE68cBFDF25C41613e4B593dF1F7845", Public: "0xd24640d8fDE68cBFDF25C41613e4B593dF1F7845", BLSKey: "668512fa11139688cd35c7280f9b03c2c83e0bc566962251fe05dd8d720275f6"},
{Address: "0xd2ab9e42DbFd509dfd9Ab937Ac875c3953Ea6B63", Public: "0xd2ab9e42DbFd509dfd9Ab937Ac875c3953Ea6B63", BLSKey: "69ff9529219e9809ac9defe3488708b0af1f1801cdf5db97060a1bbdb9998842"},
{Address: "0xd41160791b8886F8e45ac1cc9ebb5FB9c7118fbE", Public: "0xd41160791b8886F8e45ac1cc9ebb5FB9c7118fbE", BLSKey: "21aa010eefd0cae7bebc20eb1d1c4c1a0ff5d11dafd909501a84e51cb11eecf5"},
{Address: "0xd892C406dCB97B544cba6354fD42C18c9175d8DF", Public: "0xd892C406dCB97B544cba6354fD42C18c9175d8DF", BLSKey: "3dee31ca3234b2d4aef52fe769fec0c7ef9175f9218fd7a589e5a860c915da5a"},
{Address: "0xdE0205b06C6517048769B673014E771f2F978bd7", Public: "0xdE0205b06C6517048769B673014E771f2F978bd7", BLSKey: "388dc8624ef0b116bc9b05d84a35047b7d68fc81be0eb75e3a86a66d1f8870d0"},
{Address: "0xdF73134FB98c299DAA522Ceb54E87C8Da6a116c1", Public: "0xdF73134FB98c299DAA522Ceb54E87C8Da6a116c1", BLSKey: "454605346778d61816c1ae2ac46cc762778d5d62288bd5d730c995d6dddde98d"},
{Address: "0xda1BcF114a3f717D179eeB789D1d9248A8a1631c", Public: "0xda1BcF114a3f717D179eeB789D1d9248A8a1631c", BLSKey: "11c7110b0cc9e55974795bfba09ef7295499edc0557a6107afca261c7bef1819"},
{Address: "0xddBb08c3385d8c9b7eD70507761bb6ae86601b36", Public: "0xddBb08c3385d8c9b7eD70507761bb6ae86601b36", BLSKey: "118c13281095152f68d2293d4b05778c242ef161de0bb12aa9d8fbccda94caf8"},
{Address: "0xe089cbD31bab882923c5c8D3C5432eAfA680E4f6", Public: "0xe089cbD31bab882923c5c8D3C5432eAfA680E4f6", BLSKey: "2da35f8e789fc21616c97c879a11df66bd52a3aec2df72680f0f24fc34b1fe94"},
// 380 - 389
{Address: "0xe201AE926cb423D61C67364FF3C736359b8f52C3", Public: "0xe201AE926cb423D61C67364FF3C736359b8f52C3", BLSKey: "337b27c9cf1e031cae3c404ee50e0212c3db2be8a75a96d77ce2a5189d53b716"},
{Address: "0xe21383C4dFeA14C3124e86C5F987045Ef2cF3F42", Public: "0xe21383C4dFeA14C3124e86C5F987045Ef2cF3F42", BLSKey: "3f91a2069201e08c0a5ae071db16aeae711572f5c3b3d6af5b84a0ce52f10a6e"},
{Address: "0xe36FCA53f5BC3FBa611E7CA51525755A6b3227E2", Public: "0xe36FCA53f5BC3FBa611E7CA51525755A6b3227E2", BLSKey: "67863c2970271fa46695941095f7a054daa98c502aeec51bad3ada39ad623a4b"},
{Address: "0xe38bFD8B5bB44D9ec008ce94607a4d8485471B08", Public: "0xe38bFD8B5bB44D9ec008ce94607a4d8485471B08", BLSKey: "55383422b6ebfb4b2ecff33138ffdcce2bd8aec8ae0625d60b1f167e50aa80e2"},
{Address: "0xe67ce5A7d9BB454cfa022F47e1fC13Fc1D7bAA2d", Public: "0xe67ce5A7d9BB454cfa022F47e1fC13Fc1D7bAA2d", BLSKey: "5c05807126e2fad3b406407e955d7ea127e90bb8fbc09fdf86a3a7ec2ee3ce85"},
{Address: "0xe6A45a867f4d8a12E66ba38012327df10Ac4E5AD", Public: "0xe6A45a867f4d8a12E66ba38012327df10Ac4E5AD", BLSKey: "2f350c3dec9315661e05c00d4364a21abda080d940df26435683591987e9e416"},
{Address: "0xe6d861421a4D252d4DC5D9D34B3EdC2891473456", Public: "0xe6d861421a4D252d4DC5D9D34B3EdC2891473456", BLSKey: "376d5170ea720ace62eb74a0920c185a132f242225a6336a63178647529d5dcf"},
{Address: "0xe7f43Af7D0879F904D9a81C469142e88F562de4E", Public: "0xe7f43Af7D0879F904D9a81C469142e88F562de4E", BLSKey: "eb629a9a1b9201c9a22070e3dc4f4ede4dde215428bfb9fb2a538817c73b75d"},
{Address: "0xe809bF710657bD64A238af34085156D571037BeF", Public: "0xe809bF710657bD64A238af34085156D571037BeF", BLSKey: "51989ea72586048ab637f9d915de34534974e0759481f9171407fa5b1d6fbf1"},
{Address: "0xe9bD1cA4896533cD6648ea43b1A7D68827aCc2b2", Public: "0xe9bD1cA4896533cD6648ea43b1A7D68827aCc2b2", BLSKey: "6cd040fde6f12cd033c92440e7f2522a7c89a184e0c8e14e262be07f8cd4d293"},
// 390 - 399
{Address: "0xeCF73C626B228664471d3884D54d2bd9541AD4bc", Public: "0xeCF73C626B228664471d3884D54d2bd9541AD4bc", BLSKey: "6190bea6b18a980cc3b5a1d062eb0082117ba64512cd68e2d92c0ae8f77c64d5"},
{Address: "0xeE584723c953C4DD049edd39738f5247740a9594", Public: "0xeE584723c953C4DD049edd39738f5247740a9594", BLSKey: "6c400832176de3842c3ad0f438d18e8f8532fcf74b68709cd66143f1e86390c9"},
{Address: "0xf105C333253a16C1Ae24c23191E133E06C9ba501", Public: "0xf105C333253a16C1Ae24c23191E133E06C9ba501", BLSKey: "5fe548d085416e0fd9fdf87cca97524139779b9859641a56e31c2e841f108723"},
{Address: "0xf216D7d113ee2AF079DEF5056CFAbEA5dE2Ea853", Public: "0xf216D7d113ee2AF079DEF5056CFAbEA5dE2Ea853", BLSKey: "6332f8b6b7ea579b12aa5a4c217a981f3460ce410a16679e3b2bb1865836b02e"},
{Address: "0xf2441A675f12977C719ADe3e2879eCf5c1a91f1B", Public: "0xf2441A675f12977C719ADe3e2879eCf5c1a91f1B", BLSKey: "651d71e3c6c8c223c851de3fa3801b9f3e5935ac9651f88595bd77205fb9812"},
{Address: "0xf63217cC7a99b7ca4c0B234BFbffC62e6c1C62bE", Public: "0xf63217cC7a99b7ca4c0B234BFbffC62e6c1C62bE", BLSKey: "705ca73fc12db4fe0817177a2fbd6103ebb5b148a10af62ee1eb4e49490d61ce"},
{Address: "0xf6642b7CA43d333fE8CD943A5423C6A28d5a8F28", Public: "0xf6642b7CA43d333fE8CD943A5423C6A28d5a8F28", BLSKey: "1371247800322cbe955853a8a4486042c56c181e0d71ef4f6de78af166de6126"},
{Address: "0xf66508CFa2a6a52ebC708cF048334d1C6871Fa0F", Public: "0xf66508CFa2a6a52ebC708cF048334d1C6871Fa0F", BLSKey: "45a1c19cb546daac8316fa2245de20880fa5555cca67ca4ad8d8268b6eb5b2"},
{Address: "0xf7D06869051f6470b3a40C6A733571d135641D3b", Public: "0xf7D06869051f6470b3a40C6A733571d135641D3b", BLSKey: "5cc1ef1345b16338d70dbc5c72d8da984193e0b39409c1541c04257a8d63de4e"},
{Address: "0xfA41EDfFf9325c748140ed8Df677B4358568A529", Public: "0xfA41EDfFf9325c748140ed8Df677B4358568A529", BLSKey: "1225faaa2f69dd35d9b256bdfde57d333bf2bbf1bd2771c84601919e9fe4fbe2"},
// 400 - 409
{Address: "0xfD87f1fb4720cD7f89914D42BB42cEA7c23fcccd", Public: "0xfD87f1fb4720cD7f89914D42BB42cEA7c23fcccd", BLSKey: "1d6c7dc40bf9474be1a6e0564fc38698cd6001e3eb7a3a9b0c0e03b1e319f9aa"},
{Address: "0xfEa557d30651C3F0AeeCA12d33936eeFA0fc4f93", Public: "0xfEa557d30651C3F0AeeCA12d33936eeFA0fc4f93", BLSKey: "1dd9515fc011183f605630cfd65996ad41e29a9363b5bb8cc5856ce37895ab9e"},
{Address: "0xfF86Ff1FF457c3eBc18D71ffA30cfedd0860559c", Public: "0xfF86Ff1FF457c3eBc18D71ffA30cfedd0860559c", BLSKey: "32f11911ea0cfc103f3934d1d308603054c7cafa17781eac1286d7c5be7756d5"},
{Address: "0xff1bE0eAC9B6053CD656947F0CcE7d277FF720Ec", Public: "0xff1bE0eAC9B6053CD656947F0CcE7d277FF720Ec", BLSKey: "13226e5756efa7e607c94e790116126f07f9bba7052437056ea0f21c772f783a"},
}

@ -0,0 +1,9 @@
package genesis
import (
"testing"
)
func TestString(t *testing.T) {
_ = BeaconAccountPriKey()
}

@ -0,0 +1,15 @@
package genesis
// NewNodeAccounts are the accounts for the new node
var NewNodeAccounts = [...]DeployAccount{
{Address: "0x0e59b767D5E74cf7B29Ef9bEc3dA4c402d357C6C", Public: "0x0e59b767D5E74cf7B29Ef9bEc3dA4c402d357C6C", BLSKey: "60c398270c8122ae196f03b9bee10186f224f0fe378eefbdcdfd2240a52d46ef"},
{Address: "0x0fAAda81c203C74CAc786786f7D428477a04bF9c", Public: "0x0fAAda81c203C74CAc786786f7D428477a04bF9c", BLSKey: "3ff0efdc6c88d21070721840da44cb2d381a6056d08bc2bc5552bfaafd3652b3"},
{Address: "0x0fd228bdFbe9ad0c898e9A0Fee2E6FB01f596F0d", Public: "0x0fd228bdFbe9ad0c898e9A0Fee2E6FB01f596F0d", BLSKey: "34ef1d0db507afd5b59aa52c73cf2a46e25026a36592d83e561e07d618a10b4e"},
{Address: "0x123FF831333e2662D00c60A2C46f7196204506e9", Public: "0x123FF831333e2662D00c60A2C46f7196204506e9", BLSKey: "517de2e70402bdcc8c6d8f3ff4993f4b409e8a925cf9c40dc72a88b231f8608"},
{Address: "0x1240775288d0EE975583A2A7022006539dADb354", Public: "0x1240775288d0EE975583A2A7022006539dADb354", BLSKey: "3e463c1eafd23c6dec50b425dd6635763b74b51c971994ac651814fdd1715ce5"},
{Address: "0x127b8Cb71Fb78338d9EFFe47bB51c2EAd3995378", Public: "0x127b8Cb71Fb78338d9EFFe47bB51c2EAd3995378", BLSKey: "1e9f19c02ecc4f39753d91262cfb0744f7ef590f23eebaba7ca88a6f28faf8d"},
{Address: "0x141B0e0f05739B7B784654E973e9b9146473aAb9", Public: "0x141B0e0f05739B7B784654E973e9b9146473aAb9", BLSKey: "6ddc97eb5c8d7b64fda8e75c6bbe9f407bbafb84d1b73ad57b5eae5644557559"},
{Address: "0x1492ebD0EcfD54B4c211b37C8891bA3493c52100", Public: "0x1492ebD0EcfD54B4c211b37C8891bA3493c52100", BLSKey: "3dd53a752ae9551e6b5047bcf17d0abb5a8161d254fb3fd7a19e52a7ab1bface"},
{Address: "0x1530A04592F9C3bF06aC6044525f08937ED38edB", Public: "0x1530A04592F9C3bF06aC6044525f08937ED38edB", BLSKey: "62f20a140c27318050edbaece0194ef383e008dc403a8362ea8a87bd62a79cf3"},
{Address: "0xE2ab78ecf325084485957B2599d53Bcf944Cbca8", Public: "0xE2ab78ecf325084485957B2599d53Bcf944Cbca8", BLSKey: "3d99ea18a9f0ffbfc031476e88d1f729629a561a9041f8441df1cd4e2ffbda4d"},
}

@ -4,6 +4,7 @@ import (
"fmt"
"net/http"
"reflect"
"runtime"
"sync"
"time"
@ -18,9 +19,11 @@ const (
MemProfilingPortDiff = 1000
// Constants of for scanning mem size.
memSizeScanTime = 30 * time.Second
// Run garbage collector every 30 minutes.
gcTime = 10 * time.Minute
)
// MemProfiling is the struct of MemProfiling.
// MemProfiling is the struct to watch objects for memprofiling.
type MemProfiling struct {
h *memsizeui.Handler
s *http.Server
@ -88,3 +91,32 @@ func (m *MemProfiling) PeriodicallyScanMemSize() {
}
}()
}
// MaybeCallGCPeriodically runs GC manually every gcTime minutes. This is one of the options to mitigate the OOM issue.
func MaybeCallGCPeriodically() {
go func() {
for {
select {
case <-time.After(gcTime):
PrintMemUsage("mem stats before GC")
runtime.GC()
PrintMemUsage("mem stats after GC")
}
}
}()
}
// PrintMemUsage prints memory usage.
func PrintMemUsage(msg string) {
var m runtime.MemStats
runtime.ReadMemStats(&m)
utils.GetLogInstance().Info(msg,
"alloc", bToMb(m.Alloc),
"totalalloc", bToMb(m.TotalAlloc),
"sys", bToMb(m.Sys),
"numgc", m.NumGC)
}
func bToMb(b uint64) uint64 {
return b / 1024 / 1024
}

@ -90,6 +90,9 @@ func countOneBitsInByte(by byte) int {
// CountOneBits counts the number of 1 bit in byte array
func CountOneBits(arr []byte) int {
if len(arr) == 0 {
return 0
}
count := 0
for i := range arr {
count += countOneBitsInByte(arr[i])

File diff suppressed because it is too large Load Diff

@ -1,11 +0,0 @@
package contract_test
import (
"testing"
"github.com/harmony-one/harmony/internal/utils/contract"
)
func TestStringsToAddrs(t *testing.T) {
contract.BeaconAccountPriKey()
}

@ -16,8 +16,8 @@ import (
"github.com/harmony-one/harmony/contracts"
"github.com/harmony-one/harmony/contracts/structs"
"github.com/harmony-one/harmony/core/types"
"github.com/harmony-one/harmony/internal/genesis"
"github.com/harmony-one/harmony/internal/utils"
contract_constants "github.com/harmony-one/harmony/internal/utils/contract"
)
// Constants related to smart contract.
@ -38,7 +38,7 @@ const (
func (node *Node) AddStakingContractToPendingTransactions() {
// Add a contract deployment transaction
//Generate contract key and associate funds with the smart contract
priKey := contract_constants.GenesisBeaconAccountPriKey
priKey := genesis.GenesisBeaconAccountPriKey
contractAddress := crypto.PubkeyToAddress(priKey.PublicKey)
//Initially the smart contract should have minimal funds.
contractFunds := big.NewInt(0)
@ -81,7 +81,7 @@ func (node *Node) QueryStakeInfo() *structs.StakeInfoReturnValue {
return nil
}
priKey := contract_constants.GenesisBeaconAccountPriKey
priKey := genesis.GenesisBeaconAccountPriKey
deployerAddress := crypto.PubkeyToAddress(priKey.PublicKey)
state, err := node.Blockchain().State()
@ -217,7 +217,7 @@ func (node *Node) AddContractKeyAndAddress(t builtInSC) {
case scStaking:
// staking contract
node.CurrentStakes = make(map[common.Address]*structs.StakeInfo)
stakingPrivKey := contract_constants.GenesisBeaconAccountPriKey
stakingPrivKey := genesis.GenesisBeaconAccountPriKey
node.StakingContractAddress = crypto.CreateAddress(crypto.PubkeyToAddress(stakingPrivKey.PublicKey), uint64(0))
default:
utils.GetLogInstance().Error("AddContractKeyAndAddress", "unknown SC", t)

@ -27,7 +27,6 @@ import (
"github.com/harmony-one/harmony/drand"
nodeconfig "github.com/harmony-one/harmony/internal/configs/node"
"github.com/harmony-one/harmony/internal/ctxerror"
"github.com/harmony-one/harmony/internal/memprofiling"
"github.com/harmony-one/harmony/internal/shardchain"
"github.com/harmony-one/harmony/internal/utils"
"github.com/harmony-one/harmony/node/worker"
@ -224,16 +223,19 @@ func (node *Node) Beaconchain() *core.BlockChain {
return bc
}
func (node *Node) reducePendingTransactions() {
// If length of pendingTransactions is greater than TxPoolLimit then by greedy take the TxPoolLimit recent transactions.
if len(node.pendingTransactions) > TxPoolLimit+TxPoolLimit {
curLen := len(node.pendingTransactions)
node.pendingTransactions = append(types.Transactions(nil), node.pendingTransactions[curLen-TxPoolLimit:]...)
}
}
// Add new transactions to the pending transaction list.
func (node *Node) addPendingTransactions(newTxs types.Transactions) {
node.pendingTxMutex.Lock()
node.pendingTransactions = append(node.pendingTransactions, newTxs...)
// If length of pendingTransactions is greater than TxPoolLimit then by greedy take the TxPoolLimit recent transactions.
if len(node.pendingTransactions) > TxPoolLimit {
utils.GetLogInstance().Warn("Got more transactions than expected and this could caused OOM", "num", len(newTxs), "totalPending", len(node.pendingTransactions))
curLen := len(node.pendingTransactions)
node.pendingTransactions = node.pendingTransactions[curLen-TxPoolLimit:]
}
node.reducePendingTransactions()
node.pendingTxMutex.Unlock()
utils.GetLogInstance().Info("Got more transactions", "num", len(newTxs), "totalPending", len(node.pendingTransactions))
}
@ -251,6 +253,7 @@ func (node *Node) getTransactionsForNewBlock(maxNumTxs int) types.Transactions {
selected, unselected, invalid := node.Worker.SelectTransactionsForNewBlock(node.pendingTransactions, maxNumTxs)
node.pendingTransactions = unselected
node.reducePendingTransactions()
utils.GetLogInstance().Debug("Selecting Transactions", "remainPending", len(node.pendingTransactions), "selected", len(selected), "invalidDiscarded", len(invalid))
node.pendingTxMutex.Unlock()
return selected
@ -283,12 +286,6 @@ func (node *Node) GetSyncID() [SyncIDLength]byte {
return node.syncID
}
// WatchObservedObjects adds more objects to watch for memory issues.
func (node *Node) WatchObservedObjects() {
memprofiling.GetMemProfiling().Add("currentNode.pendingTransactions", &node.pendingTransactions)
memprofiling.GetMemProfiling().Add("currentNode.transactionInConsensus", &node.transactionInConsensus)
}
// New creates a new node.
func New(host p2p.Host, consensusObj *consensus.Consensus, chainDBFactory shardchain.DBFactory, isArchival bool) *Node {
var err error

@ -17,8 +17,8 @@ import (
"github.com/harmony-one/harmony/core/rawdb"
"github.com/harmony-one/harmony/core/types"
"github.com/harmony-one/harmony/internal/ctxerror"
"github.com/harmony-one/harmony/internal/genesis"
"github.com/harmony-one/harmony/internal/utils"
"github.com/harmony-one/harmony/internal/utils/contract"
)
const (
@ -76,11 +76,6 @@ func (node *Node) SetupGenesisBlock(db ethdb.Database, shardID uint32) error {
genesisAlloc[contractDeployerAddress] = core.GenesisAccount{Balance: contractDeployerFunds}
node.ContractDeployerKey = contractDeployerKey
// Add puzzle fund
puzzleFunds := big.NewInt(TotalInitFund)
puzzleFunds = puzzleFunds.Mul(puzzleFunds, big.NewInt(denominations.One))
genesisAlloc[common.HexToAddress(contract.PuzzleAccounts[0].Address)] = core.GenesisAccount{Balance: puzzleFunds}
if shardID == 0 {
// Accounts used by validator/nodes to stake and participate in the network.
AddNodeAddressesToGenesisAlloc(genesisAlloc)
@ -136,13 +131,7 @@ func (node *Node) CreateGenesisAllocWithTestingAddresses(numAddress int) core.Ge
// AddNodeAddressesToGenesisAlloc adds to the genesis block allocation the accounts used for network validators/nodes,
// including the account used by the nodes of the initial beacon chain and later new nodes.
func AddNodeAddressesToGenesisAlloc(genesisAlloc core.GenesisAlloc) {
for _, account := range contract.GenesisAccounts {
testBankFunds := big.NewInt(InitFreeFundInEther)
testBankFunds = testBankFunds.Mul(testBankFunds, big.NewInt(denominations.One))
address := common.HexToAddress(account.Address)
genesisAlloc[address] = core.GenesisAccount{Balance: testBankFunds}
}
for _, account := range contract.DemoAccounts {
for _, account := range genesis.GenesisAccounts {
testBankFunds := big.NewInt(InitFreeFundInEther)
testBankFunds = testBankFunds.Mul(testBankFunds, big.NewInt(denominations.One))
address := common.HexToAddress(account.Address)

@ -1,21 +1,20 @@
127.0.0.1 9000 validator 0
127.0.0.1 9001 validator 0
127.0.0.1 9002 validator 0
127.0.0.1 9003 validator 0
127.0.0.1 9004 validator 0
127.0.0.1 9005 validator 0
127.0.0.1 9006 validator 0
127.0.0.1 9007 validator 0
127.0.0.1 9008 validator 0
127.0.0.1 9009 validator 0
127.0.0.1 9010 validator 0
127.0.0.1 9011 validator 0
127.0.0.1 9012 validator 0
127.0.0.1 9013 validator 0
127.0.0.1 9014 validator 0
127.0.0.1 9015 validator 0
127.0.0.1 9016 validator 0
127.0.0.1 9017 validator 0
127.0.0.1 9018 validator 0
127.0.0.1 9019 validator 0
127.0.0.1 19999 client 0
127.0.0.1 9000 validator 0x007579ED2Fe889C5255C36d4978Ac94d25811771
127.0.0.1 9001 validator 0x00F98965458a35f3788C45A095582AB18A5ae79c
127.0.0.1 9002 validator 0x0102B41674C3ac2634f404d8c25C25Bb959fE952
127.0.0.1 9003 validator 0x0178A7bE4399c1968156edE4f52ae91953ab9B63
127.0.0.1 9004 validator 0x0215c51A3d67Eb1e949bD1Df8b74D3aef097e92d
127.0.0.1 9005 validator 0x021983eA41fbeeB39F82a9CAf1A83476F0cFeEDC
127.0.0.1 9006 validator 0x03d1a55eA1246efB257D49D9286f7D370bd09c97
127.0.0.1 9007 validator 0x055b95d5205B5711099C32626Ea61481779a2233
127.0.0.1 9008 validator 0x0566729A6FCDda16287777baB5D4425AA93bB0Fc
127.0.0.1 9009 validator 0x05bA7FcC4c1d7286f7A3d5552DdF305677338c22
127.0.0.1 9010 validator 0x063893E8EfA148E29B914702AD6A9930d41C8F13
127.0.0.1 9011 validator 0x06693dEE3d72a30075E7447b18c6f3ed8AE62174
127.0.0.1 9012 validator 0x066B40c45D06eEFE8Bb8677fdaFdaC5C8dF9d09C
127.0.0.1 9013 validator 0x079C1FFEaa70Ebdd2F3235b2F82BeE0b1101f092
127.0.0.1 9014 validator 0x07Fe4B973008c53528142b719BdfaC428F81905b
127.0.0.1 9015 validator 0x09531Cea52595bCe55329Be07f11Ad033B9814Ee
127.0.0.1 9016 validator 0x0B4B626c913a46138feD9d7201E187A751DFF485
127.0.0.1 9017 validator 0x0CCa9111F4588EDB3c9a282faE233B830dE21A0D
127.0.0.1 9018 validator 0x0F595ed534b6464eB2C80A037FFba02D23AfdfD2
127.0.0.1 9019 validator 0x0a0b8c48e42c540078fD99004915Be265f380dB7

@ -153,8 +153,8 @@ sleep 2
# Start nodes
i=0
while IFS='' read -r line || [[ -n "$line" ]]; do
IFS=' ' read ip port mode shardID <<< $line
args=("${base_args[@]}" -ip "${ip}" -port "${port}" -account_index "${i}" -key "/tmp/${ip}-${port}.key" -db_dir "db-${ip}-${port}")
IFS=' ' read ip port mode account <<< $line
args=("${base_args[@]}" -ip "${ip}" -port "${port}" -key "/tmp/${ip}-${port}.key" -db_dir "db-${ip}-${port}" -accounts "${account}")
case "${mode}" in
leader*|validator*) args=("${args[@]}" -is_genesis);;
esac
@ -178,7 +178,7 @@ if [ "$TXGEN" == "true" ]; then
echo "launching txgen ... wait"
# sleep 2
line=$(grep client $config)
IFS=' ' read ip port mode shardID <<< $line
IFS=' ' read ip port mode account <<< $line
if [ "$mode" == "client" ]; then
$DRYRUN $ROOT/bin/txgen -log_folder $log_folder -duration $DURATION -ip $ip -port $port -bootnodes "${BN_MA}" > $LOG_FILE 2>&1
fi

@ -3,6 +3,8 @@
DIRROOT=$(dirname $0)/..
OS=$(uname -s)
export GO111MODULE=on
pushd $DIRROOT
./scripts/travis_checker.sh

Loading…
Cancel
Save