Update "Go Account Management" doc (#21248)
This commit is contained in:
parent
9116d22de0
commit
4b06034376
@ -66,12 +66,15 @@ need to import only the `accounts` package into your code:
|
|||||||
|
|
||||||
```go
|
```go
|
||||||
import "github.com/ethereum/go-ethereum/accounts"
|
import "github.com/ethereum/go-ethereum/accounts"
|
||||||
|
import "github.com/ethereum/go-ethereum/accounts/keystore"
|
||||||
|
import "github.com/ethereum/go-ethereum/common"
|
||||||
```
|
```
|
||||||
|
|
||||||
Afterwards you can create a new encrypted account manager via:
|
Afterwards you can create a new encrypted account manager via:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
am := accounts.NewManager("/path/to/keystore", accounts.StandardScryptN, accounts.StandardScryptP);
|
ks := keystore.NewKeyStore("/path/to/keystore", keystore.StandardScryptN, keystore.StandardScryptP)
|
||||||
|
am := accounts.NewManager(&accounts.Config{InsecureUnlockAllowed: false}, ks)
|
||||||
```
|
```
|
||||||
|
|
||||||
The path to the keystore folder needs to be a location that is writable by the local user
|
The path to the keystore folder needs to be a location that is writable by the local user
|
||||||
@ -141,21 +144,22 @@ lifecycle operations with a handful of function calls (error handling omitted).
|
|||||||
|
|
||||||
```go
|
```go
|
||||||
// Create a new account with the specified encryption passphrase.
|
// Create a new account with the specified encryption passphrase.
|
||||||
newAcc, _ := am.NewAccount("Creation password");
|
newAcc, _ := ks.NewAccount("Creation password")
|
||||||
|
fmt.Println(newAcc)
|
||||||
|
|
||||||
// Export the newly created account with a different passphrase. The returned
|
// Export the newly created account with a different passphrase. The returned
|
||||||
// data from this method invocation is a JSON encoded, encrypted key-file.
|
// data from this method invocation is a JSON encoded, encrypted key-file.
|
||||||
jsonAcc, _ := am.Export(newAcc, "Creation password", "Export password");
|
jsonAcc, _ := ks.Export(newAcc, "Creation password", "Export password")
|
||||||
|
|
||||||
// Update the passphrase on the account created above inside the local keystore.
|
// Update the passphrase on the account created above inside the local keystore.
|
||||||
am.Update(newAcc, "Creation password", "Update password");
|
_ = ks.Update(newAcc, "Creation password", "Update password")
|
||||||
|
|
||||||
// Delete the account updated above from the local keystore.
|
// Delete the account updated above from the local keystore.
|
||||||
am.Delete(newAcc, "Update password");
|
_ = ks.Delete(newAcc, "Update password")
|
||||||
|
|
||||||
// Import back the account we've exported (and then deleted) above with yet
|
// Import back the account we've exported (and then deleted) above with yet
|
||||||
// again a fresh passphrase.
|
// again a fresh passphrase.
|
||||||
impAcc, _ := am.Import(jsonAcc, "Export password", "Import password");
|
impAcc, _ := ks.Import(jsonAcc, "Export password", "Import password")
|
||||||
```
|
```
|
||||||
|
|
||||||
*Although instances of
|
*Although instances of
|
||||||
@ -213,8 +217,8 @@ instead.
|
|||||||
|
|
||||||
```go
|
```go
|
||||||
// Create a new account to sign transactions with
|
// Create a new account to sign transactions with
|
||||||
signer, _ := am.NewAccount("Signer password");
|
signer, _ := ks.NewAccount("Signer password")
|
||||||
txHash := common.HexToHash("0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef");
|
txHash := common.HexToHash("0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef")
|
||||||
```
|
```
|
||||||
|
|
||||||
With the boilerplate out of the way, we can now sign transaction using the authorization
|
With the boilerplate out of the way, we can now sign transaction using the authorization
|
||||||
@ -222,16 +226,16 @@ mechanisms described above:
|
|||||||
|
|
||||||
```go
|
```go
|
||||||
// Sign a transaction with a single authorization
|
// Sign a transaction with a single authorization
|
||||||
signature, _ := am.SignWithPassphrase(signer, "Signer password", txHash.Bytes());
|
signature, _ := ks.SignHashWithPassphrase(signer, "Signer password", txHash.Bytes())
|
||||||
|
|
||||||
// Sign a transaction with multiple manually cancelled authorizations
|
// Sign a transaction with multiple manually cancelled authorizations
|
||||||
am.Unlock(signer, "Signer password");
|
_ = ks.Unlock(signer, "Signer password")
|
||||||
signature, _ = am.Sign(signer.Address, txHash.Bytes());
|
signature, _ = ks.SignHash(signer, txHash.Bytes())
|
||||||
am.Lock(signer.Address);
|
_ = ks.Lock(signer.Address)
|
||||||
|
|
||||||
// Sign a transaction with multiple automatically cancelled authorizations
|
// Sign a transaction with multiple automatically cancelled authorizations
|
||||||
am.TimedUnlock(signer, "Signer password", time.Second);
|
_ = ks.TimedUnlock(signer, "Signer password", time.Second)
|
||||||
signature, _ = am.Sign(signer.Address, txHash.Bytes());
|
signature, _ = ks.SignHash(signer, txHash.Bytes())
|
||||||
```
|
```
|
||||||
|
|
||||||
You may wonder why
|
You may wonder why
|
||||||
|
Loading…
x
Reference in New Issue
Block a user