问题描述
基于doc,看来我们需要指定我们要跟踪的合约的地址。我如何跟踪新合同?例如。部署工厂合约后,我们还需要跟踪工厂创建的所有新合约。
了解您可以手动执行此操作或编写 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
解决方法
通常,工厂合约在部署新合约时会发出一个事件。只需跟踪此事件。但是这个问题没有合约的源代码,所以不好说。