├── types ├── index.d.ts ├── models │ ├── index.d.ts │ ├── index.js │ ├── StarterEntity.d.ts │ └── StarterEntity.js └── index.js ├── index.d.ts ├── .gitattributes ├── index.js └── mappings ├── mappingHandlers.d.ts └── mappingHandlers.js /types/index.d.ts: -------------------------------------------------------------------------------- 1 | export * from "./models"; 2 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | export * from './mappings/mappingHandlers'; 2 | -------------------------------------------------------------------------------- /types/models/index.d.ts: -------------------------------------------------------------------------------- 1 | export { StarterEntity } from "./StarterEntity"; 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | const tslib_1 = require("tslib"); 4 | //Exports all handler functions 5 | (0, tslib_1.__exportStar)(require("./mappings/mappingHandlers"), exports); 6 | -------------------------------------------------------------------------------- /types/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | // SPDX-License-Identifier: Apache-2.0 3 | Object.defineProperty(exports, "__esModule", { value: true }); 4 | const tslib_1 = require("tslib"); 5 | // Auto-generated , DO NOT EDIT 6 | (0, tslib_1.__exportStar)(require("./models"), exports); 7 | -------------------------------------------------------------------------------- /mappings/mappingHandlers.d.ts: -------------------------------------------------------------------------------- 1 | import { SubstrateExtrinsic, SubstrateEvent, SubstrateBlock } from "@subql/types"; 2 | export declare function handleBlock(block: SubstrateBlock): Promise; 3 | export declare function handleEvent(event: SubstrateEvent): Promise; 4 | export declare function handleCall(extrinsic: SubstrateExtrinsic): Promise; 5 | -------------------------------------------------------------------------------- /types/models/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | // SPDX-License-Identifier: Apache-2.0 3 | Object.defineProperty(exports, "__esModule", { value: true }); 4 | exports.StarterEntity = void 0; 5 | // Auto-generated , DO NOT EDIT 6 | var StarterEntity_1 = require("./StarterEntity"); 7 | Object.defineProperty(exports, "StarterEntity", { enumerable: true, get: function () { return StarterEntity_1.StarterEntity; } }); 8 | -------------------------------------------------------------------------------- /types/models/StarterEntity.d.ts: -------------------------------------------------------------------------------- 1 | import { Entity, FunctionPropertyNames } from "@subql/types"; 2 | export declare class StarterEntity implements Entity { 3 | constructor(id: string); 4 | id: string; 5 | field1: number; 6 | field2?: string; 7 | field3?: bigint; 8 | field4?: Date; 9 | field5?: boolean; 10 | save(): Promise; 11 | static remove(id: string): Promise; 12 | static get(id: string): Promise; 13 | static create(record: Partial>> & Entity): StarterEntity; 14 | } 15 | -------------------------------------------------------------------------------- /mappings/mappingHandlers.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.handleCall = exports.handleEvent = exports.handleBlock = void 0; 4 | const types_1 = require("../types"); 5 | async function handleBlock(block) { 6 | //Create a new starterEntity with ID using block hash 7 | let record = new types_1.StarterEntity(block.block.header.hash.toString()); 8 | //Record block number 9 | record.field1 = block.block.header.number.toNumber(); 10 | await record.save(); 11 | } 12 | exports.handleBlock = handleBlock; 13 | async function handleEvent(event) { 14 | const { event: { data: [account, balance] } } = event; 15 | //Retrieve the record by its ID 16 | const record = await types_1.StarterEntity.get(event.extrinsic.block.block.header.hash.toString()); 17 | record.field2 = account.toString(); 18 | //Big integer type Balance of a transfer event 19 | record.field3 = balance.toBigInt(); 20 | await record.save(); 21 | } 22 | exports.handleEvent = handleEvent; 23 | async function handleCall(extrinsic) { 24 | const record = await types_1.StarterEntity.get(extrinsic.block.block.header.hash.toString()); 25 | //Date type timestamp 26 | record.field4 = extrinsic.block.timestamp; 27 | //Boolean tyep 28 | record.field5 = true; 29 | await record.save(); 30 | } 31 | exports.handleCall = handleCall; 32 | -------------------------------------------------------------------------------- /types/models/StarterEntity.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.StarterEntity = void 0; 4 | const tslib_1 = require("tslib"); 5 | const assert_1 = (0, tslib_1.__importDefault)(require("assert")); 6 | class StarterEntity { 7 | constructor(id) { 8 | this.id = id; 9 | } 10 | async save() { 11 | let id = this.id; 12 | (0, assert_1.default)(id !== null, "Cannot save StarterEntity entity without an ID"); 13 | await store.set('StarterEntity', id.toString(), this); 14 | } 15 | static async remove(id) { 16 | (0, assert_1.default)(id !== null, "Cannot remove StarterEntity entity without an ID"); 17 | await store.remove('StarterEntity', id.toString()); 18 | } 19 | static async get(id) { 20 | (0, assert_1.default)((id !== null && id !== undefined), "Cannot get StarterEntity entity without an ID"); 21 | const record = await store.get('StarterEntity', id.toString()); 22 | if (record) { 23 | return StarterEntity.create(record); 24 | } 25 | else { 26 | return; 27 | } 28 | } 29 | static create(record) { 30 | (0, assert_1.default)(typeof record.id === 'string', "id must be provided"); 31 | let entity = new StarterEntity(record.id); 32 | Object.assign(entity, record); 33 | return entity; 34 | } 35 | } 36 | exports.StarterEntity = StarterEntity; 37 | --------------------------------------------------------------------------------