thegraph.com Как программно обновить источник данных для отслеживания нового контракта?
Судя по документу , кажется, нам нужно указать адрес контракта, который мы хотим отслеживать. Как я могу отследить новый контракт? например. После развертывания фабричного контракта нам также необходимо отслеживать все новые контракты, созданные фабрикой.
Понимая, что вы можете сделать это вручную или написать задачу Cron для проверки развертывания нового контракта и сценария повторного развертывания, есть ли способ сделать это программно на thegraph.com? например. Как uniswap отслеживает новую торговую пару после того, как кто-то их добавил (я полагаю, адрес нового контракта для отслеживания)?
pragma solidity >=0.5.0;
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function createPair(address tokenA, address tokenB) external returns (address pair);
}
Это прямо вперед, чтобы отследить заводской контракт. Но после
createPair
, как я могу отследить только что созданный контракт
address pair
? Можно ли это сделать на thegraph.com? Или я должен сделать это трудным путем?
Ответ: https://thegraph.com/docs/define-a-subgraph#data-source-templates .
3 ответа
Обычно фабричный контракт генерирует событие при развертывании нового контракта. Просто отследите это событие. Однако в вопросе отсутствует исходный код контрактов, поэтому трудно сказать.
Вы не можете использоватьdataSources
динамически. Вы должны создатьtemplates
на вашеsubgraph.yaml
файл для дочернего договора. Если вы проверили подграф Uniswap, заводской контракт представляет собой источник данных , ноPair
(дочерний контракт) используются шаблоны .
Это объясняется в документации графа .
вы можете посмотреть официальный документ subgraph. https://thegraph.com/docs/en/developing/creating-a-subgraph/#data-source-templates