This is the initial release of the Emerald Web3 Gateway, full changelog can be seen below:
Changelog
- 83943be: Conflict resolution (@anonymousGiga)
- 0a6bf73: QueryLastIndexedRound: don't ignore error (@ptrus)
- 4b97830: README: add build, test and running instructions (@ptrus)
- fe89431: README: code coverage badge (@ptrus)
- 375528b: RPC server (@lesterli)
- cc1351b: Update Oasis Core version in README (@kostko)
- 0295305: add BlockHash for TransactionRef and update API (@SzeChuanChilliSauce)
- 1de099d: add BlockNumber (@anonymousGiga)
- e5fa687: add ConvertToOutBlock (@anonymousGiga)
- b40ab53: add QuerylastRetainedRound in indexer (@anonymousGiga)
- a1edea8: add codeowners (@ptrus)
- ba98000: add comment (@anonymousGiga)
- bbbc88d: add comments and optimize. (@SzeChuanChilliSauce)
- af855ab: add context. (@SzeChuanChilliSauce)
- 7ee214b: add contract code testdata for contract creation (@synote)
- 33eb8e2: add database indexes. (@SzeChuanChilliSauce)
- 87d8d88: add e2e tests for erc20 contract (@synote)
- 3828012: add eth getbalance api of oasis evm (@synote)
- 449930b: add eth_chainId rpc from network config (@synote)
- cceecdd: add function for backend (@anonymousGiga)
- aefb233: add generateEthBlock for indexer (@anonymousGiga)
- 7848938: add indexer (@anonymousGiga)
- 9f6012e: add indexer (@anonymousGiga)
- 76ed8e6: add main entry for gateway rpc service (@synote)
- 3ca0048: add pruning for indexer (@anonymousGiga)
- e8fb482: add pruning for indexer (@anonymousGiga)
- ed7a642: add rpc api of the eth module (@synote)
- c7b0f5d: add runtime-id flag (@pro-wh)
- 4c929eb: add sleep in indexer (@anonymousGiga)
- 1ca312a: add some rpc methods (@lesterli)
- 2fcee73: add subscribe filter tests (@ptrus)
- d1c06b6: add task in indexer (@anonymousGiga)
- 43fc129: add task in indexer (@anonymousGiga)
- 8b2f490: add test for fix-issue131 (@anonymousGiga)
- 62839e4: add test for getBlockByNumber and getBlockByHash (@anonymousGiga)
- 1c7e9b9: add tests for contract call (@synote)
- bb26e40: add tests for getBalance rpc (@synote)
- 08e6875: add txpool endpoint (@ptrus)
- 8b452af: api/SendRawTransaction: propagate CheckTx errors (@ptrus)
- 8e92b27: api/getLogs: use FilterCriteria which implements UnmarshalJSON (@ptrus)
- 7b1396f: assign connect timeout and remove sslmode (@SzeChuanChilliSauce)
- 98004b6: bump oasis-sdk and emerald (@ptrus)
- b55feb5: ci: Add basic CI (currently failing) (@kostko)
- 0a6c368: ci: bump actions/setup-go from 2.1.4 to 2.1.5 (@dependabot[bot])
- 907368b: config: enable loading config from env variables (@ptrus)
- 1dd3367: config: use viper for unmarshal and add log configuration (@ptrus)
- 89b9fac: configure max_open_conns. (@SzeChuanChilliSauce)
- ec19348: db test case (@SzeChuanChilliSauce)
- fa09cb5: db test case for ethereum transaction (@SzeChuanChilliSauce)
- d3c43a6: db test case. (@SzeChuanChilliSauce)
- 06e9773: db: add support for migrations (@ptrus)
- 1f9823e: db: implement Delete for Storage (@SzeChuanChilliSauce)
- dd158cf: db: implement Update interface. (@SzeChuanChilliSauce)
- 12d04b0: db: update test case. (@SzeChuanChilliSauce)
- 7c8ecf5: decode contract address from callresult in getTransactionReceipt (@synote)
- 3e2f307: decode ethereum transaction (@SzeChuanChilliSauce)
- add916e: decode from for EthTransaction (@SzeChuanChilliSauce)
- b510408: define configuration file and initialize (@SzeChuanChilliSauce)
- 137522e: define postgres db and initialize (@SzeChuanChilliSauce)
- 7b3448a: define server and initialize (@SzeChuanChilliSauce)
- 746f59b: define store and query interface (@SzeChuanChilliSauce)
- 12f4af6: delete duplicate code (@anonymousGiga)
- ed46068: e2e tests for rpc getTransactionCount (@synote)
- 8acd9db: e2e tests from ethereum sendRawTransaction (@synote)
- 9edd2fb: enable configuration via config.yml file (@ptrus)
- b64d3c3: estimateGas: append dummy signer and set ethereum caller address (@ptrus)
- 1cec638: eth/api: don't return errors if block or tx doesn't exist (@ptrus)
- 70d8d69: eth/get_Logs: filter by addresses and topics (@ptrus)
- c61de39: eth_GetTransactionReceipt: return null instead of empty address (@ptrus)
- 909e19e: eth_call: propagate error (@ptrus)
- 0d68b26: feat: add gitlint (@ptrus)
- 96129d1: feat: automate releaes using goreleaser (@ptrus)
- bef7419: feat: rename to emerald-web3-gateway (@ptrus)
- a57e0c7: feat: version information (@ptrus)
- f7f071e: fix (@SzeChuanChilliSauce)
- 3c3e80c: fix (@SzeChuanChilliSauce)
- 3703316: fix (@anonymousGiga)
- 15b94b7: fix (@anonymousGiga)
- a6d36b5: fix (@anonymousGiga)
- 8097f28: fix (@anonymousGiga)
- cf914e5: fix (@anonymousGiga)
- 5864d66: fix (@anonymousGiga)
- d6886ac: fix (@anonymousGiga)
- 032c5e4: fix TestEth_GetTransactionByHash (@anonymousGiga)
- ac31da4: fix bug (@anonymousGiga)
- 383a145: fix compile error. (@SzeChuanChilliSauce)
- 2b60566: fix conflicts (@SzeChuanChilliSauce)
- 4267d71: fix db test case. (@SzeChuanChilliSauce)
- 556ba02: fix error (@SzeChuanChilliSauce)
- 252d579: fix error (@SzeChuanChilliSauce)
- 85c6916: fix error (@SzeChuanChilliSauce)
- 1b70dc5: fix error (@SzeChuanChilliSauce)
- bcaf3ee: fix error (@SzeChuanChilliSauce)
- bf54eca: fix error (@SzeChuanChilliSauce)
- d8a7274: fix error (@anonymousGiga)
- 8f7d175: fix error (@anonymousGiga)
- 780b167: fix error and linter. (@SzeChuanChilliSauce)
- 0478c97: fix error cased by pr103 (@anonymousGiga)
- 0970212: fix error in pr98 (@anonymousGiga)
- bb57f37: fix error in tests (@anonymousGiga)
- 5869bb5: fix error in upsertSingle (@anonymousGiga)
- 45e3418: fix error: Call (@lesterli)
- 825d855: fix eth_call crash when some fields of call args not specified (@synote)
- 80d85b7: fix getReceipts (@anonymousGiga)
- 962a510: fix issue 41,42 (@anonymousGiga)
- 811a4ad: fix issue131 (@anonymousGiga)
- a3be884: fix issue55 (@anonymousGiga)
- db10f8a: fix issue69 (@anonymousGiga)
- 7d3f852: fix linter. (@SzeChuanChilliSauce)
- e6c7bd2: fix linter. (@SzeChuanChilliSauce)
- c03685b: fix linter. (@SzeChuanChilliSauce)
- 428abb4: fix linter. (@SzeChuanChilliSauce)
- 70ae741: fix linter. (@SzeChuanChilliSauce)
- 572a31c: fix problem with eth block (@anonymousGiga)
- 07ac50a: fix receipt parsing err due to empty contract address (@synote)
- d80f63c: fix test case (@SzeChuanChilliSauce)
- 5c0b7ee: fix(ci): don't lint dependabot commits (@ptrus)
- f910717: fix: TestEth_GetTransactionByHash (@SzeChuanChilliSauce)
- 1bb854e: fix: decode To of eth transaction (@SzeChuanChilliSauce)
- db701bb: fix:broken query in getTransactionByHash (@SzeChuanChilliSauce)
- 1a6368a: fix:timeout duration (@SzeChuanChilliSauce)
- 07e8287: format code (@SzeChuanChilliSauce)
- 18ef971: format code (@SzeChuanChilliSauce)
- d09f806: get tx receipt from db. (@SzeChuanChilliSauce)
- e46285b: getEvents: fix for queries without provided block hash (@ptrus)
- 4394f9e: getLogs: limit number of rounds in single query (@ptrus)
- c3b79ca: go: bump github.com/knadh/koanf from 1.3.2 to 1.4.0 (@dependabot[bot])
- 445d3a1: go: bump github.com/rs/cors from 1.7.0 to 1.8.2 (@dependabot[bot])
- 7361730: go: bump github.com/spf13/cobra from 1.2.1 to 1.3.0 (@dependabot[bot])
- 138b028: go: bump github.com/uptrace/bun/dialect/pgdialect from 1.0.19 to 1.0.21 (@dependabot[bot])
- 7687757: go: bump github.com/uptrace/bun/driver/pgdriver from 1.0.19 to 1.0.21 (@dependabot[bot])
- 0f025c2: go: bump google.golang.org/grpc from 1.41.0 to 1.43.0 (@dependabot[bot])
- f17b447: go: update to go1.17 (@ptrus)
- 7c57b7a: implement /health endpoint (@ptrus)
- e22a44c: implement Decode for indexer backend (@SzeChuanChilliSauce)
- 551d286: implement GetETHInfoBackend. (@SzeChuanChilliSauce)
- ac265f8: implement QueryEthTransaction for QueryableBackend (@SzeChuanChilliSauce)
- ec19670: implement storage interface (@SzeChuanChilliSauce)
- 254b614: indexer/backend: handle update error. (@SzeChuanChilliSauce)
- 23b3842: indexer/backend: store ethereum block. (@SzeChuanChilliSauce)
- 0b3007d: indexer/backend: the index of model transaction excludes non-ethereum transactions. (@SzeChuanChilliSauce)
- d6a17ff: indexer/backend:handle db error. (@SzeChuanChilliSauce)
- be5f066: indexer/utils: fill in BlockHash,Round,Index of transaction. (@SzeChuanChilliSauce)
- 64cf854: indexer/utils: optimization. (@SzeChuanChilliSauce)
- d9c7665: indexer/utils: remove func ConvertHashToString. (@SzeChuanChilliSauce)
- a1dbf36: indexer: Check correct error result in legacy format fallback (@kostko)
- c452712: indexer: Take last retained round into account (@kostko)
- 90aaf1f: indexer: convert to dbLogs only once (@ptrus)
- 624b123: indexer: don't log error in case legacy unmarshalling works (@ptrus)
- 04c264d: indexer: fallback to legacy events format (@ptrus)
- 20634a7: indexer: fix indexing logs (@ptrus)
- 42a5eeb: indexer: fix indexing round 0 (@ptrus)
- 19d684b: indexer: fix txreceipt logs (@ptrus)
- 4f98c46: indexer: insert round records in a transaction (@ptrus)
- f278711: indexer: minor fixes (@ptrus)
- 7a1bbdb: indexer: notify pubsub after block is indexed (@ptrus)
- 88a7ef0: indexer: set storageRetryTimeout to 1 second (@synote)
- af571e4: init rpc backend (@lesterli)
- df57a73: init tests (@anonymousGiga)
- 6be9dbb: internal error (@lesterli)
- 38cf18a: merge from main (@anonymousGiga)
- 1400484: merge from main (@anonymousGiga)
- 5212bbb: merge from main (@anonymousGiga)
- 71a6f3b: merge main to this branch (@anonymousGiga)
- ae10030: migrate import paths (@ptrus)
- 7c6b9bc: model/db: fix and optimize. (@SzeChuanChilliSauce)
- 2070c84: model/init:remove global models. (@SzeChuanChilliSauce)
- 0cb0f10: model: define ethereum block and header. (@SzeChuanChilliSauce)
- 465d634: modify Transaction table (@SzeChuanChilliSauce)
- 4f63168: modify get transaction through client (@anonymousGiga)
- cb4000f: modify getBlockByNumber (@anonymousGiga)
- 6ba36d0: modify index (@anonymousGiga)
- 2fa7e38: modify indexer worker (@anonymousGiga)
- 93d95b4: modify query interface (@SzeChuanChilliSauce)
- 8d689ad: modify tests (@anonymousGiga)
- 761a956: modify the fields' tag. (@SzeChuanChilliSauce)
- 6fe271d: optimization. (@SzeChuanChilliSauce)
- ee2bbc8: other: add contribution, release process and versioning documentation (@ptrus)
- c11a1d9: other: add issue templates (@ptrus)
- 0d39bf5: prune model.Receipt and model.TransactionRef (@anonymousGiga)
- 183632b: query evm nonce from derived account of eth address (@synote)
- b839e82: remove comments (@anonymousGiga)
- ea0de47: remove defaultSize in indexer (@anonymousGiga)
- 3ff4e27: remove error parm (@anonymousGiga)
- c6541ad: remove getBlockTransactions (@anonymousGiga)
- 8a3f4cc: remove getRPCBlock from rpc.go (@anonymousGiga)
- 7da35dd: remove getRPCBlockData (@anonymousGiga)
- b4ee023: remove print (@SzeChuanChilliSauce)
- 3df278a: remove query (@lesterli)
- ec4538a: remove sleep in indexer (@anonymousGiga)
- a8e4263: remove something not used (@anonymousGiga)
- e909e52: remove sslmode in db configuration (@SzeChuanChilliSauce)
- 9891021: remove unused QueryTransactionByRoundAndIndex (@ptrus)
- 8959f27: remove unused. (@SzeChuanChilliSauce)
- b54564e: remove watchBlocksWorker (@anonymousGiga)
- 6b52555: replace pg with bun. (@SzeChuanChilliSauce)
- 6bca20a: rpc from indexer (@lesterli)
- 83d5b1a: rpc/eth/api: fix logs filtering for multiple topics (@ptrus)
- f1c6cd6: rpc/eth/api: get transaction receipt from DB. (@SzeChuanChilliSauce)
- 0593f1b: rpc/eth/api: logging consistency (@ptrus)
- c039f51: rpc/eth/api: optimization. (@SzeChuanChilliSauce)
- 11fcf47: rpc/eth/api: remove duplicated code. (@SzeChuanChilliSauce)
- 43f1379: rpc/eth/api: rename. (@SzeChuanChilliSauce)
- be45e79: rpc/eth/api: update GetLogs. (@SzeChuanChilliSauce)
- 6eaf36b: rpc/eth/api: using the tx index in db to get eth tx and result. (@SzeChuanChilliSauce)
- dd8bd0e: rpc/eth: Use last retained block as earliest (@kostko)
- 313d2c9: rpc/eth: add GetLogs (@pro-wh)
- a774a19: rpc/eth: add GetStorageAt (@pro-wh)
- 3f3ad8a: rpc/eth: add roundParamFromBlockNum (@pro-wh)
- fa3908a: rpc/eth: cleanup 'roundParamFromBlockNum' errors (@ptrus)
- 29ad9b1: rpc/eth: define error msg. (@SzeChuanChilliSauce)
- e43b6c3: rpc/eth: ensure blocknum is positive (@ptrus)
- 2bd5e13: rpc/eth: fix handling 'latest' round in queries (@ptrus)
- bbdf3ef: rpc/eth: if data doesn't exist, return an empty response, not an error. (@SzeChuanChilliSauce)
- 969d98c: rpc/eth: query genesis to resolve earliest block (@pro-wh)
- 165a71b: rpc/eth: return correct block hashes (@ptrus)
- 107aa59: rpc/eth: return null when tx or block does not exist. (@SzeChuanChilliSauce)
- c1d3235: rpc/eth: support eth_estimateGas with updated version of oasis-sdk (@synote)
- b05761d: rpc/eth: tighten up GetStorageAt i/o format (@pro-wh)
- 05d4b83: rpc/eth: use blockNum in GetTransactionCount (@pro-wh)
- fa2d242: rpc/eth:update GetTransactionByBlockHashAndIndex,BlockNumber (@SzeChuanChilliSauce)
- 7a1a8ea: rpc/indexer: fix indexed transaction raw signature values (@ptrus)
- 06e1dd4: rpc/utils: fix NewRPCTransaction, ConvertToEthBlock. (@SzeChuanChilliSauce)
- 777393a: rpc/utils: fix type error. (@SzeChuanChilliSauce)
- 4e9d33c: rpc/utils: fix wrong address response. (@SzeChuanChilliSauce)
- a78a40a: rpc/utils: optimization. (@SzeChuanChilliSauce)
- e33fb7b: rpc/utils: optimize. (@SzeChuanChilliSauce)
- 37bce85: rpc: get event logs (@SzeChuanChilliSauce)
- d5a89cd: rpc: if data doesn't exist, return an empty response, not an error. (@SzeChuanChilliSauce)
- 174a726: rpc: implement GetTransactionReceipt (@SzeChuanChilliSauce)
- 0d11401: rpc: implement method web3_clientVersion (@synote)
- dcaf045: rpc: update GetTransactionReceipt (@SzeChuanChilliSauce)
- ae4546e: set all eth api on server start (@synote)
- 77448c1: setup dependabot (@ptrus)
- 972589a: solve conflicts. (@SzeChuanChilliSauce)
- 5391580: solve conflicts. (@SzeChuanChilliSauce)
- 8e80d92: spinup-oasis-stack: fail on jq compile errors (@ptrus)
- e12db46: start indexer (@anonymousGiga)
- 00fe257: storage/psql: GetLogs supports the BETWEEN query for the rounds. (@SzeChuanChilliSauce)
- abb9e3a: storage/psql: fix. (@SzeChuanChilliSauce)
- 3d61fc4: storage/psql: implement GetBlock by hash. (@SzeChuanChilliSauce)
- e665633: storage/psql: implement upsert. (@SzeChuanChilliSauce)
- 0b87779: storage/psql: load block transactions (@ptrus)
- dbbe69f: storage/psql: move db user and password into environment variables. (@SzeChuanChilliSauce)
- 1250518: storage/psql: remove useless code. (@SzeChuanChilliSauce)
- 07736fa: storage/psql: reset upsert. (@SzeChuanChilliSauce)
- 6314b68: storage/psql: store the data in db when it not exists, otherwise updates it. (@SzeChuanChilliSauce)
- e7d045b: storage: support for latest round (@ptrus)
- f000f45: store and query logs from db. (@SzeChuanChilliSauce)
- 7c97003: store ethereum transaction (@SzeChuanChilliSauce)
- 432080a: store ethereum transaction (@SzeChuanChilliSauce)
- 17b0636: store receipt in db. (@SzeChuanChilliSauce)
- d891f9d: support subscribe (@SzeChuanChilliSauce)
- 20ffe0e: switch license, attribute go-ethereum, readme updates (@ptrus)
- c93898f: table relations. (@SzeChuanChilliSauce)
- 9db9050: test file for RPC server (@lesterli)
- 8f374a2: test: GetTransactionReceipt (@SzeChuanChilliSauce)
- d44ad8b: testing for tx (@lesterli)
- 5784278: tests/rpc/TestEth_GetTransactionByHash: use ec.TransactionByHash (@ptrus)
- af27be0: tests/rpc: add regression tests for recently fixed issues (@ptrus)
- cb9234d: tests: Add funded tests keys (@ptrus)
- c1ebef7: tests: Fix linter and tests (@matevz)
- be30b00: tests: TestEth_GetLogsMultiple (@ptrus)
- cf80e8c: transactionReceipt: return explicit null for empty contract (@ptrus)
- 60f9373: unify logging to use oasis logger (@ptrus)
- 4763b6f: update GetBlockNumber. (@SzeChuanChilliSauce)
- 13185e4: update bloom (@lesterli)
- cb2f657: update comments (@SzeChuanChilliSauce)
- 7ed02e0: update comments. (@SzeChuanChilliSauce)
- 2ce77ba: update eth rpc (@lesterli)
- 5598c0f: update eth rpc (@lesterli)
- 732bcd0: update indexer backend and storage interface (@SzeChuanChilliSauce)
- 3767c67: update rpc GetBlockByNumber (@lesterli)
- 7f60b1f: update rpc api (@lesterli)
- 494e033: update rpc: Call (@lesterli)
- 0251818: update rpc: EstimateGas (@lesterli)
- ba7ae73: update rpc: SendRawTransaction (@lesterli)
- 1eefede: update storage interface and define model (@SzeChuanChilliSauce)
- 749fb11: update test. (@SzeChuanChilliSauce)
- b9c9f56: update: model.Transaction (@SzeChuanChilliSauce)
- c4d03ee: use SubmitTxNoWait when sending ethereum rawTransaction (@synote)
- 78581db: using postgresql orm (@SzeChuanChilliSauce)
- 49db974: utils/ConvertToEthBlock: handle empty block hash (@ptrus)
- dd4900d: utils/NewRPCTransaction: fix double encoded input (@ptrus)