@graphprotocol/graph-cli
Version:
CLI for building for and deploying to The Graph
40 lines (39 loc) • 1.38 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.mapping = exports.source = void 0;
const gluegun_1 = require("gluegun");
const schema_1 = require("../../../scaffold/schema");
const abi_1 = __importDefault(require("../abi"));
const source = ({ contract, contractName, startBlock, }) => startBlock
? `
address: '${contract}'
abi: ${contractName}
startBlock: ${startBlock}`
: `
address: '${contract}'
abi: ${contractName}`;
exports.source = source;
const mapping = ({ abi, contractName }) => `
kind: ethereum/events
apiVersion: 0.0.7
language: wasm/assemblyscript
entities:
${(0, schema_1.abiEvents)(abi)
.map(event => `- ${event.get('collision')
? `${contractName}${event.get('_alias')}`
: event.get('_alias')}`)
.join('\n ')}
abis:
- name: ${contractName}
file: ./abis/${contractName}.json
eventHandlers:
${(0, schema_1.abiEvents)(abi)
.map(event => `
- event: ${abi_1.default.eventSignature(event)}
handler: handle${event.get('_alias')}`)
.join('')}
file: ./src/${gluegun_1.strings.kebabCase(contractName)}.ts`;
exports.mapping = mapping;
;