Instance
import { Instance } from "@blockflow-labs/sdk";Operations
How to Use
import { IEventContext, IBind, ISecrets } from "@blockflow-labs/utils";
import { Instance } from "@blockflow-labs/sdk";
import { Sender, Transfer, ITransfer, ISender } from "../../types/generated";
/**
* @dev Event::Transfer(address from, address to, uint256 value)
* @param context trigger object with contains {event: {from ,to ,value }, transaction, block, log}
* @param bind init function for database wrapper methods
*/
export const TransferHandler = async (
context: IEventContext,
bind: IBind,
secrets: ISecrets
) => {
// Implement your event handler logic for Transfer here
const { event, transaction, block, log } = context;
const { from, to, value } = event;
const client = Instance.MongoClient(bind);
const transferDB = client.db(Transfer);
const senderDB = client.db(Sender);
let transfer: ITransfer = {
from: from.toString(),
to: to.toString(),
amount: value.toString(),
};
let sender: ISender = await senderDB.load({
account: from.toString(),
});
if (!sender) {
sender = {
account: from.toString(),
frequency: 1,
};
} else {
sender = {
...sender,
frequency: sender.frequency + 1,
};
}
await Promise.all([transferDB.save(transfer), senderDB.save(sender)]);
};
Last updated