Skip to content

Commit 5b39169

Browse files
authored
Add info on decoding including examples (#614)
1 parent d2119f3 commit 5b39169

File tree

4 files changed

+71
-3
lines changed

4 files changed

+71
-3
lines changed

docs/HyperSync/HyperRPC/hyperrpc-url-endpoints.md

-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ Here is a table of the currently supported networks on HyperRPC and their respec
3535
| Cyber | 7560 | https://cyber.rpc.hypersync.xyz or https://7560.rpc.hypersync.xyz | |
3636
| Darwinia | 46 | https://darwinia.rpc.hypersync.xyz or https://46.rpc.hypersync.xyz | ✔️ |
3737
| Ethereum Mainnet | 1 | https://eth.rpc.hypersync.xyz or https://1.rpc.hypersync.xyz | ✔️ |
38-
| Extrabud | 283027429 | https://extrabud.rpc.hypersync.xyz or https://283027429.rpc.hypersync.xyz | |
3938
| Fantom | 250 | https://fantom.rpc.hypersync.xyz or https://250.rpc.hypersync.xyz | |
4039
| Flare | 14 | https://flare.rpc.hypersync.xyz or https://14.rpc.hypersync.xyz | |
4140
| Fraxtal | 252 | https://fraxtal.rpc.hypersync.xyz or https://252.rpc.hypersync.xyz | |

docs/HyperSync/hypersync-supported-networks.md

-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ If you are a network operator or user and would like improved service support or
5151
| Cyber | 7560 | https://cyber.hypersync.xyz or https://7560.hypersync.xyz | 🪨 | |
5252
| Darwinia | 46 | https://darwinia.hypersync.xyz or https://46.hypersync.xyz | 🪨 | ✔️ |
5353
| Ethereum Mainnet | 1 | https://eth.hypersync.xyz or https://1.hypersync.xyz | 🏅 | ✔️ |
54-
| Extrabud | 283027429 | https://extrabud.hypersync.xyz or https://283027429.hypersync.xyz | 🏗️ | |
5554
| Fantom | 250 | https://fantom.hypersync.xyz or https://250.hypersync.xyz | 🥉 | |
5655
| Flare | 14 | https://flare.hypersync.xyz or https://14.hypersync.xyz | 🪨 | |
5756
| Fraxtal | 252 | https://fraxtal.hypersync.xyz or https://252.hypersync.xyz | 🪨 | |

docs/HyperSync/hypersync-usage.md

+70
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,76 @@ async def collect_usdc_transfers():
256256
asyncio.run(collect_usdc_transfers())
257257
```
258258

259+
## Decoding Event Logs
260+
261+
When working with blockchain data, event logs contain encoded data that needs to be properly decoded to extract meaningful information. HyperSync provides powerful decoding capabilities to simplify this process.
262+
263+
### Understanding Log Structure
264+
265+
Event logs in Ethereum have the following structure:
266+
267+
- **Address**: The contract that emitted the event
268+
- **Topic0**: The event signature hash (keccak256 of the event signature)
269+
- **Topics 1-3**: Indexed parameters (up to 3)
270+
- **Data**: Non-indexed parameters packed together
271+
272+
### Using the Decoder
273+
274+
HyperSync's client libraries include a `Decoder` class that can parse these raw logs into structured data:
275+
276+
```javascript
277+
// Create a decoder with event signatures
278+
const decoder = Decoder.fromSignatures([
279+
"Transfer(address indexed from, address indexed to, uint256 amount)",
280+
"Approval(address indexed owner, address indexed spender, uint256 amount)",
281+
]);
282+
283+
// Decode logs
284+
const decodedLogs = await decoder.decodeLogs(logs);
285+
```
286+
287+
### Single vs. Multiple Event Types
288+
289+
HyperSync provides flexibility to decode different types of event logs:
290+
291+
- **Single Event Type**: For processing one type of event (e.g., only Swap events)
292+
293+
- See complete example: [run-decoder.js](https://github.com/enviodev/hypersync-quickstart/blob/main/run-decoder.js)
294+
295+
- **Multiple Event Types**: For processing different events from the same contract (e.g., Transfer and Approval)
296+
- See complete example: [run-decoder-multi.js](https://github.com/enviodev/hypersync-quickstart/blob/main/run-decoder-multi.js)
297+
298+
### Working with Decoded Data
299+
300+
After decoding, you can access the log parameters in a structured way:
301+
302+
- **Indexed parameters**: Available in `decodedLog.indexed` array
303+
- **Non-indexed parameters**: Available in `decodedLog.body` array
304+
305+
Each parameter object contains:
306+
307+
- **name**: The parameter name from the signature
308+
- **type**: The Solidity type
309+
- **val**: The actual value
310+
311+
For example, to access parameters from a Transfer event:
312+
313+
```javascript
314+
// Access indexed parameters (from, to)
315+
const from = decodedLog.indexed[0]?.val.toString();
316+
const to = decodedLog.indexed[1]?.val.toString();
317+
318+
// Access non-indexed parameters (amount)
319+
const amount = decodedLog.body[0]?.val.toString();
320+
```
321+
322+
### Benefits of Using the Decoder
323+
324+
- **Type Safety**: Values are properly converted to their corresponding types
325+
- **Simplified Access**: Direct access to named parameters
326+
- **Batch Processing**: Decode multiple logs with a single call
327+
- **Multiple Event Support**: Handle different event types in the same processing pipeline
328+
259329
## Next Steps
260330
261331
Now that you understand the basics of using HyperSync:

supported-networks.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
"supported-networks/any-evm-with-rpc",
33
"supported-networks/local-anvil",
44
"supported-networks/local-hardhat",
5-
"supported-networks/0g-newton-testnet","supported-networks/abstract","supported-networks/aleph-zero-evm","supported-networks/altlayer-op-demo-testnet","supported-networks/ancient8","supported-networks/arbitrum","supported-networks/arbitrum-blueberry","supported-networks/arbitrum-nova","supported-networks/arbitrum-sepolia","supported-networks/artela-testnet","supported-networks/arthera-mainnet","supported-networks/asset-chain-mainnet","supported-networks/astar-zkevm","supported-networks/astar-zkyoto","supported-networks/aurora","supported-networks/avalanche","supported-networks/b2-hub-testnet","supported-networks/b3","supported-networks/b3-sepolia-testnet","supported-networks/base","supported-networks/base-sepolia","supported-networks/beam","supported-networks/berachain","supported-networks/berachain-artio-testnet","supported-networks/berachain-bartio","supported-networks/bevm-mainnet","supported-networks/bevm-testnet","supported-networks/bitfinity-mainnet","supported-networks/bitfinity-testnet","supported-networks/bitgert-mainnet","supported-networks/bitlayer","supported-networks/blast","supported-networks/blast-sepolia","supported-networks/bnb-smart-chain","supported-networks/bnb-smart-chain-testnet","supported-networks/bob-mainnet","supported-networks/boba","supported-networks/boba-bnb-mainnet","supported-networks/botanix-testnet","supported-networks/bsc","supported-networks/bsc-testnet","supported-networks/canto","supported-networks/canto-testnet","supported-networks/celo","supported-networks/celo-alfajores-testnet","supported-networks/chiliz","supported-networks/chiliz-testnet-spicy","supported-networks/citrea-devnet","supported-networks/citrea-testnet","supported-networks/core","supported-networks/creator-testnet","supported-networks/cronos-zkevm","supported-networks/cronos-zkevm-testnet","supported-networks/crossfi-mainnet","supported-networks/crossfi-mainnet","supported-networks/crossfi-testnet","supported-networks/cyber","supported-networks/darwinia","supported-networks/degen-chain","supported-networks/dfk-chain","supported-networks/dogechain-mainnet","supported-networks/dogechain-testnet","supported-networks/dos-chain","supported-networks/energy-web","supported-networks/eos","supported-networks/eth","supported-networks/etherlink-testnet","supported-networks/exosama","supported-networks/extrabud","supported-networks/fantom","supported-networks/fantom-testnet","supported-networks/flare","supported-networks/flare-songbird","supported-networks/flow","supported-networks/flow-testnet","supported-networks/fraxtal","supported-networks/fuel-mainnet","supported-networks/fuel-testnet","supported-networks/fuji","supported-networks/galadriel-devnet","supported-networks/gnosis","supported-networks/gnosis-chiado","supported-networks/gnosis-traces","supported-networks/gravity-alpha-mainnet","supported-networks/harmony-shard-0","supported-networks/heco-chain","supported-networks/holesky","supported-networks/holesky-token-test","supported-networks/hyperliquid","supported-networks/hyperliquid-temp","supported-networks/immutable-zkevm","supported-networks/immutable-zkevm-testnet","supported-networks/ink","supported-networks/internal-test-chain","supported-networks/iotex-network","supported-networks/japan-open-chain","supported-networks/kaia","supported-networks/kakarot-starknet-sepolia","supported-networks/kroma","supported-networks/layeredge-testnet","supported-networks/lightlink-pegasus-testnet","supported-networks/lightlink-phoenix","supported-networks/linea","supported-networks/lisk","supported-networks/lukso","supported-networks/lukso-testnet","supported-networks/manta","supported-networks/manta-pacific-sepolia","supported-networks/mantle","supported-networks/megaeth-testnet","supported-networks/merlin","supported-networks/metall2","supported-networks/meter-mainnet","supported-networks/meter-testnet","supported-networks/metis","supported-networks/mev-commit","supported-networks/mint-mainnet","supported-networks/mode","supported-networks/monad-testnet","supported-networks/moonbase-alpha","supported-networks/moonbeam","supported-networks/morph","supported-networks/morph-holesky","supported-networks/nautilus","supported-networks/neo-x-testnet","supported-networks/nibiru-testnet","supported-networks/now-chaint","supported-networks/oasis-emerald","supported-networks/oasis-sapphire","supported-networks/onigiri-subnet","supported-networks/onigiri-test-subnet","supported-networks/ontology-mainnet","supported-networks/ontology-testnet","supported-networks/op-celestia-raspberry","supported-networks/opbnb","supported-networks/optimism","supported-networks/optimism-sepolia","supported-networks/optopia","supported-networks/peaq","supported-networks/pharos-devnet","supported-networks/polygon","supported-networks/polygon-amoy","supported-networks/polygon-zkevm","supported-networks/polygon-zkevm-cardona-testnet","supported-networks/public-goods-network","supported-networks/pulsechain","supported-networks/puppynet-shibarium","supported-networks/ronin","supported-networks/rootstock","supported-networks/saakuru","supported-networks/satoshivm","supported-networks/scroll","supported-networks/scroll-sepolia","supported-networks/sepolia","supported-networks/shibarium","supported-networks/shimmer-evm","supported-networks/skale-europa","supported-networks/soneium","supported-networks/sophon","supported-networks/sophon-testnet","supported-networks/stratovm-testnet","supported-networks/superseed","supported-networks/superseed-sepolia-testnet","supported-networks/taiko","supported-networks/tanssi-demo","supported-networks/telos-evm-mainnet","supported-networks/telos-evm-testnet","supported-networks/torus-mainnet","supported-networks/torus-testnet","supported-networks/unichain","supported-networks/unichain-sepolia","supported-networks/unicorn-ultra-nebulas-testnet","supported-networks/velas-mainnet","supported-networks/viction","supported-networks/x-layer-mainnet","supported-networks/x-layer-testnet","supported-networks/xdc","supported-networks/xdc-apothem-testnet","supported-networks/xdc-network","supported-networks/xdc-testnet","supported-networks/zeta","supported-networks/zeta-testnet","supported-networks/zircuit","supported-networks/zklink-nova-mainnet","supported-networks/zksync","supported-networks/zksync-sepolia-testnet","supported-networks/zora","supported-networks/zora-sepolia"]}
5+
"supported-networks/0g-newton-testnet","supported-networks/abstract","supported-networks/aleph-zero-evm","supported-networks/altlayer-op-demo-testnet","supported-networks/ancient8","supported-networks/arbitrum","supported-networks/arbitrum-blueberry","supported-networks/arbitrum-nova","supported-networks/arbitrum-sepolia","supported-networks/artela-testnet","supported-networks/arthera-mainnet","supported-networks/asset-chain-mainnet","supported-networks/astar-zkevm","supported-networks/astar-zkyoto","supported-networks/aurora","supported-networks/avalanche","supported-networks/b2-hub-testnet","supported-networks/b3","supported-networks/b3-sepolia-testnet","supported-networks/base","supported-networks/base-sepolia","supported-networks/beam","supported-networks/berachain","supported-networks/berachain-artio-testnet","supported-networks/berachain-bartio","supported-networks/bevm-mainnet","supported-networks/bevm-testnet","supported-networks/bitfinity-mainnet","supported-networks/bitfinity-testnet","supported-networks/bitgert-mainnet","supported-networks/bitlayer","supported-networks/blast","supported-networks/blast-sepolia","supported-networks/bnb-smart-chain","supported-networks/bnb-smart-chain-testnet","supported-networks/bob-mainnet","supported-networks/boba","supported-networks/boba-bnb-mainnet","supported-networks/botanix-testnet","supported-networks/bsc","supported-networks/bsc-testnet","supported-networks/canto","supported-networks/canto-testnet","supported-networks/celo","supported-networks/celo-alfajores-testnet","supported-networks/chiliz","supported-networks/chiliz-testnet-spicy","supported-networks/citrea-devnet","supported-networks/citrea-testnet","supported-networks/core","supported-networks/creator-testnet","supported-networks/cronos-zkevm","supported-networks/cronos-zkevm-testnet","supported-networks/crossfi-mainnet","supported-networks/crossfi-mainnet","supported-networks/crossfi-testnet","supported-networks/cyber","supported-networks/darwinia","supported-networks/degen-chain","supported-networks/dfk-chain","supported-networks/dogechain-mainnet","supported-networks/dogechain-testnet","supported-networks/dos-chain","supported-networks/energy-web","supported-networks/eos","supported-networks/eth","supported-networks/etherlink-testnet","supported-networks/exosama","supported-networks/fantom","supported-networks/fantom-testnet","supported-networks/flare","supported-networks/flare-songbird","supported-networks/flow","supported-networks/flow-testnet","supported-networks/fraxtal","supported-networks/fuel-mainnet","supported-networks/fuel-testnet","supported-networks/fuji","supported-networks/galadriel-devnet","supported-networks/gnosis","supported-networks/gnosis-chiado","supported-networks/gnosis-traces","supported-networks/gravity-alpha-mainnet","supported-networks/harmony-shard-0","supported-networks/heco-chain","supported-networks/holesky","supported-networks/holesky-token-test","supported-networks/hyperliquid","supported-networks/hyperliquid-temp","supported-networks/immutable-zkevm","supported-networks/immutable-zkevm-testnet","supported-networks/ink","supported-networks/internal-test-chain","supported-networks/iotex-network","supported-networks/japan-open-chain","supported-networks/kaia","supported-networks/kakarot-starknet-sepolia","supported-networks/kroma","supported-networks/layeredge-testnet","supported-networks/lightlink-pegasus-testnet","supported-networks/lightlink-phoenix","supported-networks/linea","supported-networks/lisk","supported-networks/lukso","supported-networks/lukso-testnet","supported-networks/manta","supported-networks/manta-pacific-sepolia","supported-networks/mantle","supported-networks/megaeth-testnet","supported-networks/merlin","supported-networks/metall2","supported-networks/meter-mainnet","supported-networks/meter-testnet","supported-networks/metis","supported-networks/mev-commit","supported-networks/mint-mainnet","supported-networks/mode","supported-networks/monad-testnet","supported-networks/moonbase-alpha","supported-networks/moonbeam","supported-networks/morph","supported-networks/morph-holesky","supported-networks/nautilus","supported-networks/neo-x-testnet","supported-networks/nibiru-testnet","supported-networks/now-chaint","supported-networks/oasis-emerald","supported-networks/oasis-sapphire","supported-networks/onigiri-subnet","supported-networks/onigiri-test-subnet","supported-networks/ontology-mainnet","supported-networks/ontology-testnet","supported-networks/op-celestia-raspberry","supported-networks/opbnb","supported-networks/optimism","supported-networks/optimism-sepolia","supported-networks/optopia","supported-networks/peaq","supported-networks/pharos-devnet","supported-networks/polygon","supported-networks/polygon-amoy","supported-networks/polygon-zkevm","supported-networks/polygon-zkevm-cardona-testnet","supported-networks/public-goods-network","supported-networks/pulsechain","supported-networks/puppynet-shibarium","supported-networks/ronin","supported-networks/rootstock","supported-networks/saakuru","supported-networks/satoshivm","supported-networks/scroll","supported-networks/scroll-sepolia","supported-networks/sepolia","supported-networks/shibarium","supported-networks/shimmer-evm","supported-networks/skale-europa","supported-networks/soneium","supported-networks/sophon","supported-networks/sophon-testnet","supported-networks/stratovm-testnet","supported-networks/superseed","supported-networks/superseed-sepolia-testnet","supported-networks/taiko","supported-networks/tanssi-demo","supported-networks/telos-evm-mainnet","supported-networks/telos-evm-testnet","supported-networks/torus-mainnet","supported-networks/torus-testnet","supported-networks/unichain","supported-networks/unichain-sepolia","supported-networks/unicorn-ultra-nebulas-testnet","supported-networks/velas-mainnet","supported-networks/viction","supported-networks/x-layer-mainnet","supported-networks/x-layer-testnet","supported-networks/xdc","supported-networks/xdc-apothem-testnet","supported-networks/xdc-network","supported-networks/xdc-testnet","supported-networks/zeta","supported-networks/zeta-testnet","supported-networks/zircuit","supported-networks/zklink-nova-mainnet","supported-networks/zksync","supported-networks/zksync-sepolia-testnet","supported-networks/zora","supported-networks/zora-sepolia"]}

0 commit comments

Comments
 (0)