Refactor mock server.

This commit is contained in:
Ashwin Phatak 2021-05-13 16:02:11 +05:30
parent c84b481385
commit 11fbe0534d
4 changed files with 51 additions and 45 deletions

View File

@ -4,7 +4,7 @@
"description": "ERC20 Watcher",
"private": true,
"scripts": {
"server": "nodemon src/server.ts",
"server": "MOCK=1 nodemon src/server.ts",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {

View File

@ -1,52 +1,11 @@
import 'lodash';
import 'graphql-import-node';
import { makeExecutableSchema } from '@graphql-tools/schema';
import BigInt from 'apollo-type-bigint';
import * as typeDefs from './erc20.graphql';
import { blocks } from './mock-data';
import mockResolvers from './mock/resolvers';
const resolvers = {
BigInt: new BigInt('bigInt'),
TokenEvent: {
__resolveType: (obj) => {
if (obj.owner) {
return 'ApprovalEvent';
}
return 'TransferEvent';
}
},
Query: {
balanceOf: (_, { blockHash, token, owner }) => {
console.log('balanceOf', blockHash, token, owner);
return {
value: blocks[blockHash][token].balanceOf[owner],
proof: { data: '' }
}
},
allowance: (_, { blockHash, token, owner, spender }) => {
console.log('allowance', blockHash, token, owner, spender);
return {
value: blocks[blockHash][token].allowance[owner][spender],
proof: { data: '' }
}
},
events: (_, { blockHash, token, name }) => {
console.log('events', blockHash, token, name);
return blocks[blockHash][token].events
.filter(e => !name || name === e.name)
.map(e => ({ 'event': e }));
}
}
};
// TODO: Create resolvers backed by erc20 watcher.
const resolvers = process.env.MOCK ? mockResolvers : {};
export const schema = makeExecutableSchema({
typeDefs,

View File

@ -0,0 +1,47 @@
import BigInt from 'apollo-type-bigint';
import { blocks } from './data';
const resolvers = {
BigInt: new BigInt('bigInt'),
TokenEvent: {
__resolveType: (obj) => {
if (obj.owner) {
return 'ApprovalEvent';
}
return 'TransferEvent';
}
},
Query: {
balanceOf: (_, { blockHash, token, owner }) => {
console.log('balanceOf', blockHash, token, owner);
return {
value: blocks[blockHash][token].balanceOf[owner],
proof: { data: '' }
}
},
allowance: (_, { blockHash, token, owner, spender }) => {
console.log('allowance', blockHash, token, owner, spender);
return {
value: blocks[blockHash][token].allowance[owner][spender],
proof: { data: '' }
}
},
events: (_, { blockHash, token, name }) => {
console.log('events', blockHash, token, name);
return blocks[blockHash][token].events
.filter(e => !name || name === e.name)
.map(e => ({ 'event': e }));
}
}
};
export default resolvers;