-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the evm-lite wiki!
The Service exposes an API at the address specified by the --eth.listen flag for clients to interact with Ethereum.
This endpoint returns all the accounts that are controlled by the evm-lite instance. These are the accounts whose private keys are present in the keystore.
example:
host:~$ curl http://[api_addr]/accounts -s | json_pp
{
"accounts" : [
{
"address" : "0x629007eb99ff5c3539ada8a5800847eacfc25727",
"balance" : 1337000000000000000000,
"nonce": 0
},
{
"address" : "0xe32e14de8b81d8d3aedacb1868619c74a68feab0",
"balance" : 1337000000000000000000,
"nonce": 0
}
]
}
This method allows retrieving the information about any account, not just the ones whose keys are included in the keystore.
host:~$ curl http://[api_addr]/account/0x629007eb99ff5c3539ada8a5800847eacfc25727 -s | json_pp
{
"address":"0x629007eb99ff5c3539ada8a5800847eacfc25727",
"balance":1337000000000000000000,
"nonce":0
}
Send a transaction from an account controlled by the evm-lite instance. The transaction will be signed by the service since the corresponding private key is present in the keystore.
example: Send Ether between accounts
host:~$ curl -X POST http://[api_addr]/tx -d '{"from":"0x629007eb99ff5c3539ada8a5800847eacfc25727","to":"0xe32e14de8b81d8d3aedacb1868619c74a68feab0","value":6666}' -s | json_pp
{
"txHash" : "0xeeeed34877502baa305442e3a72df094cfbb0b928a7c53447745ff35d50020bf"
}
example:
host:~$ curl http://[api_addr]/tx/0xeeeed34877502baa305442e3a72df094cfbb0b928a7c53447745ff35d50020bf -s | json_pp
{
"to" : "0xe32e14de8b81d8d3aedacb1868619c74a68feab0",
"root" : "0xc8f90911c9280651a0cd84116826d31773e902e48cb9a15b7bb1e7a6abc850c5",
"gasUsed" : "0x5208",
"from" : "0x629007eb99ff5c3539ada8a5800847eacfc25727",
"transactionHash" : "0xeeeed34877502baa305442e3a72df094cfbb0b928a7c53447745ff35d50020bf",
"logs" : [],
"cumulativeGasUsed" : "0x5208",
"contractAddress" : null,
"logsBloom" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
Then check accounts again to see that the balances have changed:
{
"accounts" : [
{
"address" : "0x629007eb99ff5c3539ada8a5800847eacfc25727",
"balance" : 1336999999999999993334,
"nonce":1
},
{
"address" : "0xe32e14de8b81d8d3aedacb1868619c74a68feab0",
"balance" : 1337000000000000006666,
"nonce":0
}
]
}
Most of the time, one will require to send transactions from accounts that are
not controlled by the evm-lite instance. The transaction will be assembled,
signed and encoded on the client side. The resulting raw signed transaction
bytes can be submitted to evm-lite through the /rawtx
endpoint.
example:
host:~$ curl -X POST http://[api_addr]/rawtx -d '0xf8628080830f424094564686380e267d1572ee409368e1d42081562a8e8201f48026a022b4f68bfbd4f4c309524ebdbf4bac858e0ad65fd06108c934b45a6da88b92f7a046433c388997fd7b02eb7128f4d2401ef2d10d574c42edf15875a43ee51a1993' -s | json_pp
{
"txHash":"0x5496489c606d74ad7435568393fa2c4619e64497267f80864109277631aa849d"
}
The /call
endpoint allows calling SmartContract code for READONLY operations.
these calls will NOT modify the EVM state.
The API input format is just like /tx
endpoint, but will return the return data.
The /info
endpoint exposes a map of information provided by the consensus
system.