Skip to content

Commit 178a9fb

Browse files
committed
Adding possibility to add more prefunded accounts
Add possibility to add more prefunded accounts to the L1 generated genesis by accepting a repeated `[]string` flag `--prefunded-account` which accepts the same format (private key in hex) as the static prefunded accounts. I debated about putting the `prefunded-account` flag on the L1 recipe directly, to scope it just to this. Maybe it would be preferable, let me know what do you think.
1 parent a9cc2c2 commit 178a9fb

File tree

2 files changed

+32
-15
lines changed

2 files changed

+32
-15
lines changed

main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ var platform string
3333
var contenderEnabled bool
3434
var contenderArgs []string
3535
var contenderTarget string
36+
var prefundedAccounts []string
3637

3738
var rootCmd = &cobra.Command{
3839
Use: "playground",
@@ -185,6 +186,7 @@ func main() {
185186
recipeCmd.Flags().BoolVar(&contenderEnabled, "contender", false, "spam nodes with contender")
186187
recipeCmd.Flags().StringArrayVar(&contenderArgs, "contender.arg", []string{}, "add/override contender CLI flags")
187188
recipeCmd.Flags().StringVar(&contenderTarget, "contender.target", "", "override the node that contender spams -- accepts names like \"el\"")
189+
recipeCmd.Flags().StringArrayVar(&prefundedAccounts, "prefunded-account", []string{}, "Add a prefunded account by passing its private key in hexadecimal format")
188190

189191
cookCmd.AddCommand(recipeCmd)
190192
}
@@ -225,6 +227,7 @@ func runIt(recipe playground.Recipe) error {
225227
builder := recipe.Artifacts()
226228
builder.OutputDir(outputFlag)
227229
builder.GenesisDelay(genesisDelayFlag)
230+
builder.PrefundedAccounts(prefundedAccounts)
228231
artifacts, err := builder.Build()
229232
if err != nil {
230233
return err

playground/artifacts.go

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ type ArtifactsBuilder struct {
6565
genesisDelay uint64
6666
applyLatestL2Fork *uint64
6767
OpblockTime uint64
68+
prefundedAccounts []string
6869
}
6970

7071
func NewArtifactsBuilder() *ArtifactsBuilder {
@@ -101,6 +102,32 @@ func (b *ArtifactsBuilder) OpBlockTime(blockTimeSeconds uint64) *ArtifactsBuilde
101102
return b
102103
}
103104

105+
func (b *ArtifactsBuilder) PrefundedAccounts(accounts []string) *ArtifactsBuilder {
106+
b.prefundedAccounts = accounts
107+
return b
108+
}
109+
110+
var staticPrefundedAccounts = []string{
111+
"0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80",
112+
"0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d",
113+
"0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a",
114+
"0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6",
115+
"0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a",
116+
"0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba",
117+
"0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e",
118+
"0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356",
119+
"0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97",
120+
"0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6",
121+
}
122+
123+
func (b *ArtifactsBuilder) getPrefundedAccounts() []string {
124+
if len(b.prefundedAccounts) > 0 {
125+
return append(append([]string{}, staticPrefundedAccounts...), b.prefundedAccounts...)
126+
}
127+
128+
return staticPrefundedAccounts
129+
}
130+
104131
type Artifacts struct {
105132
Out *output
106133
}
@@ -158,7 +185,7 @@ func (b *ArtifactsBuilder) Build() (*Artifacts, error) {
158185
// add pre-funded accounts
159186
prefundedBalance, _ := new(big.Int).SetString("10000000000000000000000", 16)
160187

161-
for _, privStr := range prefundedAccounts {
188+
for _, privStr := range b.getPrefundedAccounts() {
162189
priv, err := getPrivKey(privStr)
163190
if err != nil {
164191
return nil, err
@@ -283,7 +310,7 @@ func (b *ArtifactsBuilder) Build() (*Artifacts, error) {
283310
// Update the allocs to include the same prefunded accounts as the L1 genesis.
284311
allocs := make(map[string]interface{})
285312
input["alloc"] = allocs
286-
for _, privStr := range prefundedAccounts {
313+
for _, privStr := range b.getPrefundedAccounts() {
287314
priv, err := getPrivKey(privStr)
288315
if err != nil {
289316
return nil, err
@@ -678,19 +705,6 @@ func isByteSlice(t reflect.Type) bool {
678705
return t.Kind() == reflect.Slice && t.Elem().Kind() == reflect.Uint8
679706
}
680707

681-
var prefundedAccounts = []string{
682-
"0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80",
683-
"0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d",
684-
"0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a",
685-
"0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6",
686-
"0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a",
687-
"0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba",
688-
"0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e",
689-
"0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356",
690-
"0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97",
691-
"0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6",
692-
}
693-
694708
func applyTemplate2(templateStr []byte, input interface{}) ([]byte, error) {
695709
tpl, err := template.New("").Parse(string(templateStr))
696710
if err != nil {

0 commit comments

Comments
 (0)