Skip to content

Commit

Permalink
Merge pull request #6 from namle133/feat/prevent_to_get_keypair
Browse files Browse the repository at this point in the history
feat: prevent to get keypair when func appear error
  • Loading branch information
namle133 authored Nov 27, 2023
2 parents 12f5524 + 05b6a41 commit c9fbc10
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 9 deletions.
20 changes: 15 additions & 5 deletions chains/ethereum/chain.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,74 +101,82 @@ func InitializeChain(chainCfg *core.ChainConfig, logger log15.Logger, sysErr cha
return nil, err
}
kp, _ := kpI.(*secp256k1.Keypair)

// delete keypair initialize
kpI.DeleteKeyPair()

bs, err := setupBlockstore(cfg, kp.Address())
if err != nil {
kp.DeleteKeyPair()
return nil, err
}

stop := make(chan int)
conn := connection.NewConnection(cfg.endpoint, cfg.http, kp, logger, cfg.gasLimit, cfg.maxGasPrice, cfg.gasMultiplier, cfg.egsApiKey, cfg.egsSpeed)
// delete keypair
kp.DeleteKeyPair()

err = conn.Connect()
if err != nil {
kp.DeleteKeyPair()
return nil, err
}
err = conn.EnsureHasBytecode(cfg.bridgeContract)
if err != nil {
kp.DeleteKeyPair()
return nil, err
}

if cfg.erc20HandlerContract != utils.ZeroAddress {
err = conn.EnsureHasBytecode(cfg.erc20HandlerContract)
if err != nil {
kp.DeleteKeyPair()
return nil, err
}
}

if cfg.genericHandlerContract != utils.ZeroAddress {
err = conn.EnsureHasBytecode(cfg.genericHandlerContract)
if err != nil {
kp.DeleteKeyPair()
return nil, err
}
}

bridgeContract, err := bridge.NewBridge(cfg.bridgeContract, conn.Client())
if err != nil {
kp.DeleteKeyPair()
return nil, err
}

chainId, err := bridgeContract.ChainID(conn.CallOpts())
if err != nil {
kp.DeleteKeyPair()
return nil, err
}

if chainId != uint8(chainCfg.Id) {
kp.DeleteKeyPair()
return nil, fmt.Errorf("chainId (%d) and configuration chainId (%d) do not match", chainId, chainCfg.Id)
}

erc20HandlerContract, err := erc20Handler.NewERC20Handler(cfg.erc20HandlerContract, conn.Client())
if err != nil {
kp.DeleteKeyPair()
return nil, err
}

erc721HandlerContract, err := erc721Handler.NewERC721Handler(cfg.erc721HandlerContract, conn.Client())
if err != nil {
kp.DeleteKeyPair()
return nil, err
}

genericHandlerContract, err := GenericHandler.NewGenericHandler(cfg.genericHandlerContract, conn.Client())
if err != nil {
kp.DeleteKeyPair()
return nil, err
}

if chainCfg.LatestBlock {
curr, err := conn.LatestBlock()
if err != nil {
kp.DeleteKeyPair()
return nil, err
}
cfg.startBlock = curr
Expand All @@ -179,6 +187,8 @@ func InitializeChain(chainCfg *core.ChainConfig, logger log15.Logger, sysErr cha

writer := NewWriter(conn, cfg, logger, stop, sysErr, m)
writer.setContract(bridgeContract)
// delete keypair
kp.DeleteKeyPair()

return &Chain{
cfg: chainCfg,
Expand Down
8 changes: 7 additions & 1 deletion cmd/chainbridge/account.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ func ValidatePassword(password string) bool {
return false
}

// Check if all constraints are satisfied
log.Info("Password created successfully")
return true
}

Expand Down Expand Up @@ -235,6 +235,7 @@ func importPrivKey(ctx *cli.Context, keytype, datadir, key string, password []by
for i := 0; i < len(salt); i++ {
salt[i] = 0
}
kp.DeleteKeyPair()
return "", fmt.Errorf("could not generate sr25519 keypair from given string: %w", err)
}
} else if keytype == crypto.Secp256k1Type {
Expand All @@ -252,6 +253,7 @@ func importPrivKey(ctx *cli.Context, keytype, datadir, key string, password []by
for i := 0; i < len(salt); i++ {
salt[i] = 0
}
kp.DeleteKeyPair()
return "", fmt.Errorf("could not generate secp256k1 keypair from given string: %w", err)
}
} else {
Expand All @@ -272,6 +274,7 @@ func importPrivKey(ctx *cli.Context, keytype, datadir, key string, password []by
for i := 0; i < len(salt); i++ {
salt[i] = 0
}
kp.DeleteKeyPair()
return "", fmt.Errorf("invalid filepath: %w", err)
}

Expand All @@ -283,6 +286,7 @@ func importPrivKey(ctx *cli.Context, keytype, datadir, key string, password []by
for i := 0; i < len(salt); i++ {
salt[i] = 0
}
kp.DeleteKeyPair()
return "", fmt.Errorf("Unable to Open File: %w", err)
}

Expand All @@ -301,6 +305,8 @@ func importPrivKey(ctx *cli.Context, keytype, datadir, key string, password []by
for i := 0; i < len(salt); i++ {
salt[i] = 0
}

kp.DeleteKeyPair()
return "", fmt.Errorf("could not write key to file: %w", err)
}
for i := 0; i < len(hshPwd); i++ {
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ require (
golang.org/x/sys v0.14.0 // indirect
)

replace github.com/ChainSafe/chainbridge-utils v1.0.6 => github.com/ChainVerse-Team/chainbridge-utils v0.0.5-alpha
replace github.com/ChainSafe/chainbridge-utils v1.0.6 => github.com/ChainVerse-Team/chainbridge-utils v0.0.5-beta
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ github.com/ChainSafe/chainbridge-substrate-events v0.0.0-20200715141113-87198532
github.com/ChainSafe/chainbridge-substrate-events v0.0.0-20200715141113-87198532025e/go.mod h1:H5fNH57wn/j1oLifOnWEqYbfJZcOWzr7jZjKKrUckSQ=
github.com/ChainSafe/log15 v1.0.0 h1:vRDVtWtVwIH5uSCBvgTTZh6FA58UBJ6+QiiypaZfBf8=
github.com/ChainSafe/log15 v1.0.0/go.mod h1:5v1+ALHtdW0NfAeeoYyKmzCAMcAeqkdhIg4uxXWIgOg=
github.com/ChainVerse-Team/chainbridge-utils v0.0.5-alpha h1:isR+2RF4pOthPwHb8ldHzXA0Lr1bwLRgG3JapDmRpPY=
github.com/ChainVerse-Team/chainbridge-utils v0.0.5-alpha/go.mod h1:hrkNR9+xaFYyfFaDFN/U6B12TZLUhAHHX2Hnd7v4xl4=
github.com/ChainVerse-Team/chainbridge-utils v0.0.5-beta h1:dYm8gOkj/WaqF2GQTAUTHgIq5bNsF2JRWK7jxUa2SHs=
github.com/ChainVerse-Team/chainbridge-utils v0.0.5-beta/go.mod h1:hrkNR9+xaFYyfFaDFN/U6B12TZLUhAHHX2Hnd7v4xl4=
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/OneOfOne/xxhash v1.2.5/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
Expand Down

0 comments on commit c9fbc10

Please sign in to comment.