Optimize getLogs GQL API #198

Merged
prathamesh0 merged 4 commits from pm-optimize-getlogs into v4 2022-10-05 09:44:18 +00:00
3 changed files with 9 additions and 6 deletions
Showing only changes of commit fd5f201bbd - Show all commits

View File

@ -1037,12 +1037,15 @@ func (r *Resolver) GetStorageAt(ctx context.Context, args struct {
func (r *Resolver) GetLogs(ctx context.Context, args struct { func (r *Resolver) GetLogs(ctx context.Context, args struct {
BlockHash common.Hash BlockHash common.Hash
Contract *common.Address Addresses *[]common.Address
}) (*[]*Log, error) { }) (*[]*Log, error) {
var filter eth.ReceiptFilter var filter eth.ReceiptFilter
if args.Contract != nil {
filter.LogAddresses = []string{args.Contract.String()} if args.Addresses != nil {
filter.LogAddresses = make([]string, len(*args.Addresses))
for i, address := range *args.Addresses {
filter.LogAddresses[i] = address.String()
}
} }
// Begin tx // Begin tx

View File

@ -343,7 +343,7 @@ const schema string = `
getStorageAt(blockHash: Bytes32!, contract: Address!, slot: Bytes32!): StorageResult getStorageAt(blockHash: Bytes32!, contract: Address!, slot: Bytes32!): StorageResult
# Get contract logs by block hash and contract address. # Get contract logs by block hash and contract address.
getLogs(blockHash: Bytes32!, contract: Address): [Log!] getLogs(blockHash: Bytes32!, addresses: [Address!]): [Log!]
# PostGraphile alternative to get headers with transactions using block number or block hash. # PostGraphile alternative to get headers with transactions using block number or block hash.
allEthHeaderCids(condition: EthHeaderCidCondition): EthHeaderCidsConnection allEthHeaderCids(condition: EthHeaderCidCondition): EthHeaderCidsConnection