← Web3 / web3 / how-to
Použití brány Ethereum
Jakmile máte bránu Ethereum, což znamená, že jste vytvořit novou bránu s target z Ethereum, můžete pracovat s různé sítě Ethereum zadáním správného JSON objektu pro váš dotaz.
Čtení ze sítě
Cloudflare Ethereum Gateway umožňuje odesílat požadavky HTTP, jejichž tělo obsahuje JSON tělo požadavku, který chcete provést. Pokud byste například chtěli přečíst blok s číslem 0x2244, pak váš JSON blob vypadá takto:
{
"jsonrpc": "2.0",
"method": "eth_getBlockByNumber",
"params": ["0x2244", true],
"id": 1
}Každý blob používá platný method parametr. params pole zde obsahuje číslo bloku, který chceme vyhledat, a booleovskou hodnotu udávající, zda se mají jednotlivé transakce v bloku zobrazit v plném rozsahu (true) nebo jako zástupné hodnoty (false).
Chcete-li odeslat tento dotaz do své vlastní brána Ethereum, můžete použít příkaz cURL:
curl https://web3-trial.cloudflare-eth.com/v1/mainnet -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x2244", true],"id":1}'Stejný dotaz můžete zapsat také pomocí JS Fetch API:
await fetch(
new Request("https://web3-trial.cloudflare-eth.com/v1/mainnet", {
method: "POST",
body: JSON.stringify({
jsonrpc: "2.0",
method: "eth_getBlockByNumber",
params: ["0x2244", true],
id: 1,
}),
headers: {
"Content-Type": "application/json",
},
}),
).then((resp) => {
return resp.json();
});V obou případech bude odpovědí blok JSON ve tvaru:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"difficulty": "0x746ef15b66",
"extraData": "0x476574682f76312e302e302f6c696e75782f676f312e342e32",
"gasLimit": "0x1388",
"gasUsed": "0x0",
"hash": "0xd6bb42034740c5d728e774e43a01f26222e0fcc279c504ca5963dc34fe70f392",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"miner": "0xf927a40c8b7f6e07c5af7fa2155b4864a4112b13",
"mixHash": "0x975da446e302e6da6cedb3fbaa763c3c203ae88d6fab4924e2a3d34a568c4361",
"nonce": "0x88a7f12f49151c83",
"number": "0x2244",
"parentHash": "0x067fd84ecdbc7491bf5ec7d5d4ead361b1f590eec74797a7f90b4a7d7004a48d",
"receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"size": "0x21b",
"stateRoot": "0x828dade2067283e370993ec6a1bda0e65c1310e404a6d5bbb030b596eb80017c",
"timestamp": "0x55bb040f",
"totalDifficulty": "0x5c328da43525d",
"transactions": [],
"transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"uncles": []
}
}Zápis do sítě
Ethereum Gateway v současnosti umožňuje zápis do sítě pomocí eth_sendRawTransaction RPC metoda. Vytváří novou transakci volání zprávy nebo vytvoření kontraktu pro podepsané transakce. Transakce se podepisují pomocí tajného klíče odpovídajícího vašemu vlastnímu Peněženka Ethereum ↗.
Jakmile máte nastavenou peněženku a způsob podepisování vlastních transakcí, můžete tuto transakci zapsat do sítě Ethereum prostřednictvím Cloudflare Ethereum Gateway. Podepsané transakce používají hexadecimální řetězce ve tvaru:
"0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"Poté můžete použít svůj vlastní brána k odeslání transakce do sítě pomocí příkazu cURL:
curl https://web3-trial.cloudflare-eth.com/v1/mainnet -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"],"id":1}'Můžete také použít požadavek JS Fetch API:
await fetch(
new Request("https://web3-trial.cloudflare-eth.com/v1/mainnet", {
method: "POST",
body: JSON.stringify({
jsonrpc: "2.0",
method: "eth_sendRawTransaction",
params: [
"0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675",
],
id: 1,
}),
headers: {
"Content-Type": "application/json",
},
}),
).then((resp) => {
return resp.json();
});(Uvedený příkaz ve skutečnosti nebude fungovat, musíte zadat vlastní podepsanou transakci.)