Skip to content

Instantly share code, notes, and snippets.

@hendrikhofstadt
Created September 24, 2019 13:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hendrikhofstadt/ae6c7bc22f8b6d0a29d1b69efd9c599e to your computer and use it in GitHub Desktop.
Save hendrikhofstadt/ae6c7bc22f8b6d0a29d1b69efd9c599e to your computer and use it in GitHub Desktop.
Compile guardian and run the python script on the already migrated genesis
package main
import (
"encoding/base64"
"fmt"
"github.com/tendermint/tendermint/crypto/ed25519"
"os"
)
func main() {
in := os.Args[1]
rawKey, err := base64.StdEncoding.DecodeString(in)
if err != nil {
panic(err)
}
key := ed25519.PubKeyEd25519{}
copy(key[:], rawKey)
fmt.Print(base64.StdEncoding.EncodeToString(key.Bytes()))
}
import json
import subprocess
import bech32
import base64
f = open("genesis.json")
data = json.load(f)
vals = data["app_state"]["staking"]["validators"]
for val in vals:
cons = val["consensus_pubkey"]
valRaw = cons["value"]
out = subprocess.check_output(['./guardian', valRaw]).decode("utf-8")
godata = base64.b64decode(out.rstrip())
print(out)
bp = bech32.bech32_encode("cosmosvalconspub", bech32.convertbits(godata, 8, 5))
val["consensus_pubkey"] = bp
data["app_state"]["staking"]["validators"] = vals
f2 = open("newgen.json", mode="w")
json.dump(data, f2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment