Индексируйте будущие сгенерированные контракты с помощью TheGraph
У меня есть контракт эфириума, который называется:
tokenFactory.sol
Этот контракт генерирует токены ERC20 по мере его выполнения, и когда он это делает, он генерирует событие и имеет сгенерированный адрес ERC20.
Я хотел бы пойти, а затем проиндексировать
Transfer
событие этих сгенерированных токен-контрактов. Есть ли способ сделать это программно с помощью Subgraph?
2 ответа
Вы определите эти события, контракты и обработчики вtemplates
ключ в манифесте. Это какdataSources
за исключением того, что нет адреса и начального блока, потому что они еще не были развернуты.
Когда вы получите сообщение о том, что этот контракт был развернут или его необходимо проиндексировать, вы создадите его, используя сгенерированный шаблон.
import { Token } from '../../generated/templates';
...
export function handleToken(event: TokenEvent): void {
const tokenAddress = event.params.token;
Token.create(tokenAddress);
...
}
Да, ты можешь.
Если вам нужно что-то простое, возможно, ознакомьтесь с кодом автогенерации OpenZepelling: https://docs.openzeppelin.com/subgraphs/0.1.x/
также вы можете проверить этот базовый подграф erc.20 https://github.com/graphprotocol/erc20-subgraph