Skip to content

Commit

Permalink
Remove unnecessary code and contract. Split registration function to …
Browse files Browse the repository at this point in the history
…small functions signTx sendTx confGas
  • Loading branch information
Zaptoss committed Apr 5, 2024
1 parent 68b14ef commit cc5a3c4
Show file tree
Hide file tree
Showing 7 changed files with 114 additions and 901 deletions.
1 change: 0 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ require (
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-ozzo/ozzo-validation/v4 v4.2.1 // indirect
github.com/google/jsonapi v0.0.0-20200226002910-c8283f632fb7 // indirect
github.com/google/uuid v1.4.0 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
Expand Down
3 changes: 0 additions & 3 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1234,7 +1234,6 @@ github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA
github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw=
github.com/certifi/gocertifi v0.0.0-20200211180108-c7c1fbc02894 h1:JLaf/iINcLyjwbtTsCJjc6rtlASgHeIJPrB6QmwURnA=
github.com/certifi/gocertifi v0.0.0-20200211180108-c7c1fbc02894/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk=
github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s=
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
Expand Down Expand Up @@ -1535,8 +1534,6 @@ github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoG
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/jsonapi v0.0.0-20200226002910-c8283f632fb7 h1:aQ4kMXDAmP9IRIZHcSKB2orXHGwGiSxH4PX1BzKHR50=
github.com/google/jsonapi v0.0.0-20200226002910-c8283f632fb7/go.mod h1:XSx4m2SziAqk9DXY9nz659easTq4q6TyrpYd9tHSm0g=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
Expand Down
86 changes: 43 additions & 43 deletions internal/config/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,8 @@ func (e *ethereum) RelayerConfig() *RelayerConfig {
networkConfig := struct {
RPC *ethclient.Client `fig:"rpc,required"`
ContractAddress common.Address `fig:"contract_address,required"`
PrivateKey *ecdsa.PrivateKey `fig:"private_key"`
VaultAddress string `fig:"vault_address"`
VaultMountPath string `fig:"vault_mount_path"`
VaultAddress string `fig:"vault_address,required"`
VaultMountPath string `fig:"vault_mount_path,required"`
}{}

err := figure.
Expand All @@ -71,46 +70,7 @@ func (e *ethereum) RelayerConfig() *RelayerConfig {
panic(errors.Wrap(err, "failed to get chain ID"))
}

result.PrivateKey = networkConfig.PrivateKey
if result.PrivateKey == nil {
conf := vaultapi.DefaultConfig()
conf.Address = networkConfig.VaultAddress

vaultClient, err := vaultapi.NewClient(conf)
if err != nil {
panic(errors.Wrap(err, "failed to initialize new client"))
}

token := struct {
Token string `dig:"VAULT_TOKEN,clear"`
}{}

err = dig.Out(&token).Now()
if err != nil {
panic(errors.Wrap(err, "failed to dig out token"))
}

vaultClient.SetToken(token.Token)

secret, err := vaultClient.KVv2(networkConfig.VaultMountPath).Get(context.Background(), "relayer")
if err != nil {
panic(errors.Wrap(err, "failed to get secret"))
}

vaultRelayerConf := struct {
PrivateKey *ecdsa.PrivateKey `fig:"private_key,required"`
}{}

if err := figure.
Out(&vaultRelayerConf).
With(figure.EthereumHooks).
From(secret.Data).
Please(); err != nil {
panic(errors.Wrap(err, "failed to figure out"))
}

result.PrivateKey = vaultRelayerConf.PrivateKey
}
result.PrivateKey = extractPrivateKey(networkConfig.VaultAddress, networkConfig.VaultMountPath)

result.nonce, err = result.RPC.NonceAt(context.Background(), crypto.PubkeyToAddress(result.PrivateKey.PublicKey), nil)
if err != nil {
Expand Down Expand Up @@ -148,3 +108,43 @@ func (n *RelayerConfig) ResetNonce(client *ethclient.Client) error {
n.nonce = nonce
return nil
}

func extractPrivateKey(vaultAddress, vaultMountPath string) *ecdsa.PrivateKey {
conf := vaultapi.DefaultConfig()
conf.Address = vaultAddress

vaultClient, err := vaultapi.NewClient(conf)
if err != nil {
panic(errors.Wrap(err, "failed to initialize new client"))
}

token := struct {
Token string `dig:"VAULT_TOKEN,clear"`
}{}

err = dig.Out(&token).Now()
if err != nil {
panic(errors.Wrap(err, "failed to dig out token"))
}

vaultClient.SetToken(token.Token)

secret, err := vaultClient.KVv2(vaultMountPath).Get(context.Background(), "relayer")
if err != nil {
panic(errors.Wrap(err, "failed to get secret"))
}

vaultRelayerConf := struct {
PrivateKey *ecdsa.PrivateKey `fig:"private_key,required"`
}{}

if err := figure.
Out(&vaultRelayerConf).
With(figure.EthereumHooks).
From(secret.Data).
Please(); err != nil {
panic(errors.Wrap(err, "failed to figure out"))
}

return vaultRelayerConf.PrivateKey
}
Loading

0 comments on commit cc5a3c4

Please sign in to comment.