2019-08-28 12:07:00 +00:00
|
|
|
# beacon_chain
|
|
|
|
# Copyright (c) 2018-2019 Status Research & Development GmbH
|
|
|
|
# Licensed and distributed under either of
|
2019-11-25 15:30:02 +00:00
|
|
|
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
|
|
|
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
2019-08-28 12:07:00 +00:00
|
|
|
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
|
|
|
|
|
|
|
# Mocking validator public and private keys
|
|
|
|
# ---------------------------------------------------------------
|
|
|
|
|
|
|
|
import
|
|
|
|
# Specs
|
|
|
|
../../beacon_chain/spec/[datatypes, crypto]
|
|
|
|
|
2019-11-29 09:17:18 +00:00
|
|
|
# this is being indexed inside "mock_deposits.nim" by a value up to `validatorCount`
|
|
|
|
# which is `num_validators` which is `MIN_GENESIS_ACTIVE_VALIDATOR_COUNT`
|
2019-08-28 12:07:00 +00:00
|
|
|
let MockPrivKeys* = block:
|
2019-11-29 09:17:18 +00:00
|
|
|
var privkeys: array[MIN_GENESIS_ACTIVE_VALIDATOR_COUNT, ValidatorPrivKey]
|
2019-08-28 12:07:00 +00:00
|
|
|
for pk in privkeys.mitems():
|
2020-03-04 21:27:11 +00:00
|
|
|
let pair = newKeyPair()
|
|
|
|
pk = pair.priv
|
2019-08-28 12:07:00 +00:00
|
|
|
privkeys
|
|
|
|
|
|
|
|
let MockPubKeys* = block:
|
2019-11-29 09:17:18 +00:00
|
|
|
var pubkeys: array[MIN_GENESIS_ACTIVE_VALIDATOR_COUNT, ValidatorPubKey]
|
2019-08-28 12:07:00 +00:00
|
|
|
for idx, privkey in MockPrivKeys:
|
|
|
|
pubkeys[idx] = pubkey(privkey)
|
|
|
|
pubkeys
|
|
|
|
|
|
|
|
type MockKey = ValidatorPrivKey or ValidatorPubKey
|
|
|
|
|
|
|
|
template `[]`*[N: static int](a: array[N, MockKey], idx: ValidatorIndex): MockKey =
|
|
|
|
a[idx.int]
|