# README
goether
A simple Ethereum wallet implementation and utilities in Golang.
Install
go get -u github.com/everFinance/goether
Examples
Send Eth with data
prvHex := "your prvkey"
rpc := "https://infura.io/v3/{{InfuraKey}}"
testWallet, err := goether.NewWallet(prvHex, rpc)
if err != nil {
panic(err)
}
// default send DynamicFeeTx
txHash, err := testWallet.SendTx(
common.HexToAddress("0xa06b79E655Db7D7C3B3E7B2ccEEb068c3259d0C9"), // To
goether.EthToBN(0.12), // Value
[]byte("123"), // Data
nil)
// send with opts
nonce := int(1)
gasLimit := int(999999)
txHash, err := testWallet.SendTx(
common.HexToAddress("0xa06b79E655Db7D7C3B3E7B2ccEEb068c3259d0C9"),
goether.EthToBN(0.12),
[]byte("123"),
&goether.TxOpts{ // Configure nonce/gas yourself
Nonce: &nonce,
GasLimit: &gasLimit,
GasPrice: goether.GweiToBN(10),
})
Contract Interaction
abi := `[{"constant": true,"inputs": [{"name": "","type": "address"}],"name": "balanceOf","outputs": [{"name": "","type": "uint256"}],"payable": false,"stateMutability": "view","type": "function"},{"constant": false,"inputs": [{"name": "dst","type": "address"},{"name": "wad","type": "uint256"}],"name": "transfer","outputs": [{"name": "","type": "bool"}],"payable": false,"stateMutability": "nonpayable","type": "function"}]`
contractAddr := common.HexToAddress("contract address")
prvHex := "your prvkey"
rpc := "https://kovan.infura.io/v3/{{InfuraKey}}"
// init contract instance with wallet
testWallet, _ := goether.NewWallet(prvHex, rpc)
testContract, err := goether.NewContract(contractAddr, abi, rpc, testWallet)
if err != nil {
panic(err)
}
// ERC20 BalanceOf
amount, err := testContract.CallMethod(
"balanceOf", // Method name
"latest", // Tag
common.HexToAddress("0xa06b79e655db7d7c3b3e7b2cceeb068c3259d0c9")) // Args
// ERC20 Transfer
txHash, err := testContract.ExecMethod(
"transfer", // Method name
&goether.TxOpts{ // Configure nonce/gas yourself, nil load params from eth-node
Nonce: &nonce,
GasLimit: &gasLimit,
GasPrice: goether.GweiToBN(10),
},
common.HexToAddress("0xab6c371B6c466BcF14d4003601951e5873dF2AcA"), // Args
big.NewInt(100))
Modules
Signer
Ethereum Account which can be used to sign messages and transactions.
- NewSignerFromMnemonic
- SignTx
- SignMsg
- SignTypedData
- GetPublicKey
- GetPublicKeyHex
- GetPrivateKey
- Decrypt
Wallet
Connect to Ethereum Network, execute state changing operations.
- SendTx
- SendLegacyTx
- GetAddress
- GetBalance
- GetNonce
- GetPendingNonce
Contract
Creating Contract Instance for call & execute contract.
- CallMethod
- ExecMethod
- EncodeData
- EncodeDataHex
- DecodeData
- DecodeDataHex
- DecodeEvent
- DecodeEventHex
Utils
- EthToBN
- GweiToBN
- EIP712Hash
- Ecrecover
- Encrypt
# Packages
No description provided by the author
# Functions
No description provided by the author
No description provided by the author
Encrypt encrypt.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author