[Blockchain Watcher] (EVM) Improve redeem process (#1444)
* Improve redeem process * Re factor process * Improve implementation to process txs * Change process * Improve reedeem process * Revert some changes * Map target-events jobs * Map new filters in pods * Resolve test * Map source filters on pods * Remove sns change * Remove config filters on handler * Improve logs validation * Improve logs * Impelement strategy for transactions process * Create strategy for transactions process * Improve implentation * Add error validations on logs filter * Improve code with names and validations * Improve evm process and add logs * Improve code style * Improve default process * Improve DefaultProcess * Improve NFT process and handler * Re order pods * Improve strategy code * Improve default process * Change celo batch * Add strategy property on jobs * Resolve test * Improve filters method * Remove contracts * Resolve comment in PR * Resolve comment in PR --------- Co-authored-by: julian merlo <julianmerlo@julians-MacBook-Pro.local>
This commit is contained in:
parent
b0f4f6e319
commit
64a29f3cab
|
@ -16,13 +16,7 @@
|
|||
},
|
||||
"bsc": {
|
||||
"network": "mainnet",
|
||||
"rpcs": [
|
||||
"https://bscrpc.com",
|
||||
"https://bsc-dataseed1.defibit.io",
|
||||
"https://bsc-dataseed3.defibit.io",
|
||||
"https://bsc-dataseed3.bnbchain.org",
|
||||
"https://bsc-dataseed.bnbchain.org"
|
||||
]
|
||||
"rpcs": ["https://bscrpc.com"]
|
||||
},
|
||||
"polygon": {
|
||||
"network": "mainnet",
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { EvmLog } from "../../entities";
|
||||
import { EvmBlockRepository } from "../../repositories";
|
||||
import { GetEvmOpts } from "./PollEvm";
|
||||
import { EvmLog } from "../../entities";
|
||||
import winston from "winston";
|
||||
|
||||
export class GetEvmLogs {
|
||||
|
@ -12,28 +13,37 @@ export class GetEvmLogs {
|
|||
}
|
||||
|
||||
async execute(range: Range, opts: GetEvmOpts): Promise<EvmLog[]> {
|
||||
const fromBlock = range.fromBlock;
|
||||
const toBlock = range.toBlock;
|
||||
const { fromBlock, toBlock } = range;
|
||||
const chain = opts.chain;
|
||||
|
||||
if (fromBlock > toBlock) {
|
||||
this.logger.info(`[exec] Invalid range [fromBlock: ${fromBlock} - toBlock: ${toBlock}]`);
|
||||
this.logger.info(
|
||||
`[${chain}][exec] Invalid range [fromBlock: ${fromBlock} - toBlock: ${toBlock}]`
|
||||
);
|
||||
return [];
|
||||
}
|
||||
|
||||
const logs = await this.blockRepo.getFilteredLogs(opts.chain, {
|
||||
this.logger.info(
|
||||
`[${chain}][exec] Processing blocks [fromBlock: ${fromBlock} - toBlock: ${toBlock}]`
|
||||
);
|
||||
|
||||
const logs = await this.blockRepo.getFilteredLogs(chain, {
|
||||
fromBlock,
|
||||
toBlock,
|
||||
addresses: opts.addresses ?? [], // Works when sending multiple addresses, but not multiple topics.
|
||||
topics: opts.topics?.flat() ?? [],
|
||||
addresses: opts.filters[0].addresses ?? [], // At the moment, we only support one core contract per chain
|
||||
topics: opts.filters[0].topics?.flat() ?? [], // At the moment, we only support one topic per chain linked to the core contract
|
||||
});
|
||||
|
||||
const blockNumbers = new Set(logs.map((log) => log.blockNumber));
|
||||
const blocks = await this.blockRepo.getBlocks(opts.chain, blockNumbers, false);
|
||||
const blocks = await this.blockRepo.getBlocks(chain, blockNumbers, false);
|
||||
logs.forEach((log) => {
|
||||
const block = blocks[log.blockHash];
|
||||
log.blockTime = block.timestamp;
|
||||
});
|
||||
|
||||
this.logger.info(
|
||||
`[${chain}][exec] Got ${logs.length} logs to process [fromBlock: ${fromBlock} - toBlock: ${toBlock}]`
|
||||
);
|
||||
return logs;
|
||||
}
|
||||
}
|
||||
|
@ -42,13 +52,3 @@ type Range = {
|
|||
fromBlock: bigint;
|
||||
toBlock: bigint;
|
||||
};
|
||||
|
||||
export type TopicFilter = string | string[];
|
||||
|
||||
export type GetEvmOpts = {
|
||||
addresses?: string[];
|
||||
topics?: TopicFilter[];
|
||||
chain: string;
|
||||
chainId: number;
|
||||
environment: string;
|
||||
};
|
||||
|
|
|
@ -1,21 +1,27 @@
|
|||
import { EvmBlock, EvmTransaction, ReceiptTransaction } from "../../entities";
|
||||
import { GetTransactionsByLogFiltersStrategy } from "./strategy/GetTransactionsByLogFiltersStrategy";
|
||||
import { GetTransactionsByBlocksStrategy } from "./strategy/GetTransactionsByBlocksStrategy";
|
||||
import { EvmBlockRepository } from "../../repositories";
|
||||
import { GetEvmOpts } from "./GetEvmLogs";
|
||||
import { GetEvmOpts } from "./PollEvm";
|
||||
import winston from "winston";
|
||||
|
||||
export class GetEvmTransactions {
|
||||
private readonly blockRepo: EvmBlockRepository;
|
||||
protected readonly logger: winston.Logger;
|
||||
private strategies: GetTransactions[] = [];
|
||||
|
||||
constructor(blockRepo: EvmBlockRepository) {
|
||||
this.logger = winston.child({ module: "GetEvmTransactions" });
|
||||
this.blockRepo = blockRepo;
|
||||
this.strategies = [
|
||||
new GetTransactionsByLogFiltersStrategy(this.blockRepo),
|
||||
new GetTransactionsByBlocksStrategy(this.blockRepo),
|
||||
];
|
||||
}
|
||||
|
||||
async execute(range: Range, opts: GetEvmOpts): Promise<EvmTransaction[]> {
|
||||
const fromBlock = range.fromBlock;
|
||||
const toBlock = range.toBlock;
|
||||
const chain = opts.chain;
|
||||
const { fromBlock, toBlock } = range;
|
||||
const { chain, filters } = opts;
|
||||
|
||||
if (fromBlock > toBlock) {
|
||||
this.logger.info(
|
||||
|
@ -24,106 +30,67 @@ export class GetEvmTransactions {
|
|||
return [];
|
||||
}
|
||||
|
||||
let populatedTransactions: EvmTransaction[] = [];
|
||||
const isTransactionsPresent = true;
|
||||
|
||||
this.logger.info(
|
||||
`[${chain}][exec] Processing blocks [fromBlock: ${fromBlock} - toBlock: ${toBlock}]`
|
||||
);
|
||||
|
||||
const blockNumbers: Set<bigint> = new Set();
|
||||
for (let block = fromBlock; block <= toBlock; block++) {
|
||||
blockNumbers.add(block);
|
||||
}
|
||||
const evmBlocks = await this.blockRepo.getBlocks(chain, blockNumbers, isTransactionsPresent);
|
||||
let populatedTransactions: EvmTransaction[] = [];
|
||||
|
||||
for (const blockKey in evmBlocks) {
|
||||
const evmBlock = evmBlocks[blockKey];
|
||||
const transactions = evmBlock.transactions ?? [];
|
||||
|
||||
// Only process transactions to the contract address configured
|
||||
const transactionsByAddressConfigured = transactions.filter(
|
||||
(transaction) =>
|
||||
opts.addresses?.includes(String(transaction.from).toLowerCase()) ||
|
||||
opts.addresses?.includes(String(transaction.to).toLowerCase())
|
||||
);
|
||||
|
||||
if (transactionsByAddressConfigured.length > 0) {
|
||||
const hashNumbers = new Set(transactionsByAddressConfigured.map((tx) => tx.hash));
|
||||
const receiptTransactions = await this.blockRepo.getTransactionReceipt(chain, hashNumbers);
|
||||
|
||||
const filterTransactions = this.filterTransactions(
|
||||
opts,
|
||||
transactionsByAddressConfigured,
|
||||
receiptTransactions
|
||||
await Promise.all(
|
||||
filters.map(async (filter) => {
|
||||
await Promise.all(
|
||||
this.strategies.map(async (strategy) => {
|
||||
if (strategy.appliesTo(filter.strategy!)) {
|
||||
const result = await strategy.execute(filter, fromBlock, toBlock, opts);
|
||||
populatedTransactions.push(...result);
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
await this.populateTransaction(
|
||||
opts,
|
||||
evmBlock,
|
||||
receiptTransactions,
|
||||
filterTransactions,
|
||||
populatedTransactions
|
||||
);
|
||||
}
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
this.logger.info(
|
||||
`[${chain}][exec] Got ${
|
||||
populatedTransactions?.length
|
||||
} transactions to process for ${this.populateLog(opts, fromBlock, toBlock)}`
|
||||
`[${chain}][exec] Got ${populatedTransactions?.length} transactions to process [fromBlock: ${fromBlock} - toBlock: ${toBlock}]`
|
||||
);
|
||||
|
||||
return populatedTransactions;
|
||||
}
|
||||
|
||||
private async populateTransaction(
|
||||
opts: GetEvmOpts,
|
||||
evmBlock: EvmBlock,
|
||||
receiptTransactions: Record<string, ReceiptTransaction>,
|
||||
filterTransactions: EvmTransaction[],
|
||||
populatedTransactions: EvmTransaction[]
|
||||
) {
|
||||
filterTransactions.forEach((transaction) => {
|
||||
transaction.status = receiptTransactions[transaction.hash].status;
|
||||
transaction.timestamp = evmBlock.timestamp;
|
||||
transaction.environment = opts.environment;
|
||||
transaction.chainId = opts.chainId;
|
||||
transaction.chain = opts.chain;
|
||||
transaction.logs = receiptTransactions[transaction.hash].logs;
|
||||
populatedTransactions.push(transaction);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* This method filter the transactions in base your logs with the topic and address configured in the job
|
||||
* For example: Redeemed or MintAndWithdraw transactions
|
||||
*/
|
||||
private filterTransactions(
|
||||
opts: GetEvmOpts,
|
||||
transactionsByAddressConfigured: EvmTransaction[],
|
||||
receiptTransactions: Record<string, ReceiptTransaction>
|
||||
): EvmTransaction[] {
|
||||
return transactionsByAddressConfigured.filter((transaction) => {
|
||||
const optsTopics = opts.topics || [];
|
||||
const logs = receiptTransactions[transaction.hash]?.logs || [];
|
||||
|
||||
return optsTopics.some((topicsFilter) => {
|
||||
// if the filter is an array, we need to check if all desired topics are present in the logs
|
||||
if (Array.isArray(topicsFilter)) {
|
||||
return topicsFilter.every((tf) => logs.some((log) => log.topics.some((t) => t === tf)));
|
||||
}
|
||||
|
||||
// if the filter is a string, we need to check if it's present in any of the logs
|
||||
return logs.some((log) => log.topics.some((t) => t === topicsFilter));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private populateLog(opts: GetEvmOpts, fromBlock: bigint, toBlock: bigint): string {
|
||||
return `[addresses:${opts.addresses}][topics:${opts.topics}][blocks:${fromBlock} - ${toBlock}]`;
|
||||
}
|
||||
}
|
||||
|
||||
export function populateTransaction(
|
||||
opts: GetEvmOpts,
|
||||
evmBlocks: Record<string, EvmBlock>,
|
||||
transactionReceipts: Record<string, ReceiptTransaction>,
|
||||
filterTransactions: EvmTransaction[],
|
||||
populatedTransactions: EvmTransaction[]
|
||||
) {
|
||||
filterTransactions.forEach((transaction) => {
|
||||
transaction.status = transactionReceipts[transaction.hash].status;
|
||||
transaction.timestamp = evmBlocks[transaction.blockHash].timestamp;
|
||||
transaction.environment = opts.environment;
|
||||
transaction.chainId = opts.chainId;
|
||||
transaction.chain = opts.chain;
|
||||
transaction.logs = transactionReceipts[transaction.hash].logs;
|
||||
populatedTransactions.push(transaction);
|
||||
});
|
||||
}
|
||||
|
||||
// Interface for strategy pattern
|
||||
export interface GetTransactions {
|
||||
appliesTo(strategy: string): boolean;
|
||||
execute(
|
||||
filter: Filter,
|
||||
fromBlock: bigint,
|
||||
toBlock: bigint,
|
||||
opts: GetEvmOpts
|
||||
): Promise<EvmTransaction[]>;
|
||||
}
|
||||
|
||||
export type Filter = {
|
||||
addresses: string[];
|
||||
topics: string[];
|
||||
};
|
||||
|
||||
type Range = {
|
||||
fromBlock: bigint;
|
||||
toBlock: bigint;
|
||||
|
|
|
@ -29,8 +29,8 @@ export class HandleEvmLogs<T> {
|
|||
const mappedItems = logs
|
||||
.filter(
|
||||
(log) =>
|
||||
this.cfg.filter.addresses.includes(log.address.toLowerCase()) &&
|
||||
this.cfg.filter.topics.includes(log.topics[0].toLowerCase())
|
||||
this.cfg.filters[0].addresses.includes(log.address.toLowerCase()) &&
|
||||
this.cfg.filters[0].topics.includes(log.topics[0].toLowerCase())
|
||||
)
|
||||
.map((log) => {
|
||||
const iface = new ethers.utils.Interface([this.cfg.abi]);
|
||||
|
@ -56,16 +56,18 @@ export class HandleEvmLogs<T> {
|
|||
|
||||
private normalizeCfg(cfg: HandleEvmLogsConfig): HandleEvmLogsConfig {
|
||||
return {
|
||||
filter: {
|
||||
addresses: cfg.filter.addresses.map((addr) => addr.toLowerCase()),
|
||||
topics: cfg.filter.topics.map((topic) => topic.toLowerCase()),
|
||||
},
|
||||
metricName: cfg.metricName,
|
||||
commitment: cfg.commitment,
|
||||
chainId: cfg.chainId,
|
||||
chain: cfg.chain,
|
||||
abi: cfg.abi,
|
||||
id: cfg.id,
|
||||
filters: cfg.filters.map((filter) => {
|
||||
return {
|
||||
addresses: filter.addresses.map((address) => address.toLowerCase()),
|
||||
topics: filter.topics.map((topic) => topic.toLowerCase()),
|
||||
};
|
||||
}),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
import { EvmBlockRepository, MetadataRepository, StatRepository } from "../../repositories";
|
||||
import { EvmLog, EvmTransaction } from "../../entities";
|
||||
import { GetEvmTransactions } from "./GetEvmTransactions";
|
||||
import { RunPollingJob } from "../RunPollingJob";
|
||||
import { GetEvmLogs } from "./GetEvmLogs";
|
||||
import { EvmBlockRepository, MetadataRepository, StatRepository } from "../../repositories";
|
||||
import { Filters } from "./types";
|
||||
import winston from "winston";
|
||||
import { GetEvmTransactions } from "./GetEvmTransactions";
|
||||
|
||||
const ID = "watch-evm-logs";
|
||||
|
||||
|
@ -72,8 +73,7 @@ export class PollEvm extends RunPollingJob {
|
|||
const records = await this.getEvm.execute(range, {
|
||||
chain: this.cfg.chain,
|
||||
chainId: this.cfg.chainId,
|
||||
addresses: this.cfg.addresses,
|
||||
topics: this.cfg.topics,
|
||||
filters: this.cfg.filters,
|
||||
environment: this.cfg.environment,
|
||||
});
|
||||
|
||||
|
@ -162,12 +162,11 @@ export interface PollEvmLogsConfigProps {
|
|||
blockBatchSize?: number;
|
||||
commitment?: string;
|
||||
interval?: number;
|
||||
addresses: string[];
|
||||
topics: (string | string[])[];
|
||||
id?: string;
|
||||
chain: string;
|
||||
chainId: number;
|
||||
environment: string;
|
||||
filters: Filters;
|
||||
}
|
||||
|
||||
export class PollEvmLogsConfig {
|
||||
|
@ -213,12 +212,14 @@ export class PollEvmLogsConfig {
|
|||
return this.props.interval;
|
||||
}
|
||||
|
||||
public get addresses() {
|
||||
return this.props.addresses.map((address) => address.toLowerCase());
|
||||
}
|
||||
|
||||
public get topics() {
|
||||
return this.props.topics;
|
||||
public get filters() {
|
||||
return this.props.filters.map((filter) => {
|
||||
return {
|
||||
addresses: filter.addresses.map((address) => address.toLowerCase()),
|
||||
strategy: filter.strategy,
|
||||
topics: filter.topics.map((topic) => topic.toLowerCase()),
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
public get id() {
|
||||
|
@ -241,10 +242,16 @@ export class PollEvmLogsConfig {
|
|||
return new PollEvmLogsConfig({
|
||||
chain,
|
||||
fromBlock,
|
||||
addresses: [],
|
||||
topics: [],
|
||||
filters: [{ addresses: [], topics: [], strategy: "" }],
|
||||
environment: "",
|
||||
chainId: 0,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export type GetEvmOpts = {
|
||||
filters: Filters;
|
||||
chain: string;
|
||||
chainId: number;
|
||||
environment: string;
|
||||
};
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
import { GetTransactions, Filter, populateTransaction } from "../GetEvmTransactions";
|
||||
import { EvmBlockRepository } from "../../../repositories";
|
||||
import { EvmTransaction } from "../../../entities";
|
||||
import { GetEvmOpts } from "../PollEvm";
|
||||
|
||||
export class GetTransactionsByBlocksStrategy implements GetTransactions {
|
||||
private readonly blockRepo: EvmBlockRepository;
|
||||
|
||||
constructor(blockRepo: EvmBlockRepository) {
|
||||
this.blockRepo = blockRepo;
|
||||
}
|
||||
|
||||
appliesTo(strategy: string): boolean {
|
||||
return strategy == GetTransactionsByBlocksStrategy.name;
|
||||
}
|
||||
|
||||
async execute(
|
||||
filter: Filter,
|
||||
fromBlock: bigint,
|
||||
toBlock: bigint,
|
||||
opts: GetEvmOpts
|
||||
): Promise<EvmTransaction[]> {
|
||||
let populatedTransactions: EvmTransaction[] = [];
|
||||
const blockNumbers: Set<bigint> = new Set();
|
||||
const chain = opts.chain;
|
||||
|
||||
for (let block = fromBlock; block <= toBlock; block++) {
|
||||
blockNumbers.add(block);
|
||||
}
|
||||
// Get blocks with your transactions
|
||||
const evmBlocks = await this.blockRepo.getBlocks(chain, blockNumbers, true);
|
||||
|
||||
for (const blockKey in evmBlocks) {
|
||||
const evmBlock = evmBlocks[blockKey];
|
||||
const transactions = evmBlock.transactions ?? [];
|
||||
|
||||
// Only process transactions to the contract address configured
|
||||
const transactionsByAddressConfigured = transactions.filter(
|
||||
(transaction) =>
|
||||
filter.addresses?.includes(String(transaction.from).toLowerCase()) ||
|
||||
filter.addresses?.includes(String(transaction.to).toLowerCase())
|
||||
);
|
||||
|
||||
if (transactionsByAddressConfigured.length > 0) {
|
||||
// Get transaction details from blockchain
|
||||
const hashNumbers = new Set(transactionsByAddressConfigured.map((tx) => tx.hash));
|
||||
const transactionReceipts = await this.blockRepo.getTransactionReceipt(chain, hashNumbers);
|
||||
|
||||
populateTransaction(
|
||||
opts,
|
||||
evmBlocks,
|
||||
transactionReceipts,
|
||||
transactionsByAddressConfigured,
|
||||
populatedTransactions
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return populatedTransactions;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
import { Filter, GetTransactions, populateTransaction } from "../GetEvmTransactions";
|
||||
import { EvmBlockRepository } from "../../../repositories";
|
||||
import { EvmTransaction } from "../../../entities";
|
||||
import { GetEvmOpts } from "../PollEvm";
|
||||
|
||||
export class GetTransactionsByLogFiltersStrategy implements GetTransactions {
|
||||
private readonly blockRepo: EvmBlockRepository;
|
||||
|
||||
constructor(blockRepo: EvmBlockRepository) {
|
||||
this.blockRepo = blockRepo;
|
||||
}
|
||||
|
||||
appliesTo(strategy: string): boolean {
|
||||
return strategy == GetTransactionsByLogFiltersStrategy.name;
|
||||
}
|
||||
|
||||
async execute(
|
||||
filter: Filter,
|
||||
fromBlock: bigint,
|
||||
toBlock: bigint,
|
||||
opts: GetEvmOpts
|
||||
): Promise<EvmTransaction[]> {
|
||||
const populatedTransactions: EvmTransaction[] = [];
|
||||
const chain = opts.chain;
|
||||
|
||||
const logs = await this.blockRepo.getFilteredLogs(chain, {
|
||||
fromBlock: fromBlock,
|
||||
toBlock: toBlock,
|
||||
addresses: filter.addresses,
|
||||
topics: filter.topics,
|
||||
});
|
||||
|
||||
if (logs.length > 0) {
|
||||
const blockNumbers = new Set<bigint>();
|
||||
const blockHashes = new Set<string>();
|
||||
const txHashes = new Set<string>();
|
||||
|
||||
logs.forEach((log) => {
|
||||
blockNumbers.add(log.blockNumber);
|
||||
blockHashes.add(log.blockHash);
|
||||
txHashes.add(log.transactionHash);
|
||||
});
|
||||
|
||||
// Get blocks with your transactions
|
||||
const evmBlocks = await this.blockRepo.getBlocks(chain, blockNumbers, true);
|
||||
|
||||
if (evmBlocks) {
|
||||
const filterTransactions: EvmTransaction[] = [];
|
||||
|
||||
for (const blockHash of blockHashes) {
|
||||
const transactions = evmBlocks[blockHash]?.transactions || [];
|
||||
|
||||
// Collect complete transactions from the block by hash
|
||||
const filtered = transactions.filter((transaction) => txHashes.has(transaction.hash));
|
||||
filterTransactions.push(...filtered);
|
||||
}
|
||||
|
||||
// Get transaction details
|
||||
const transactionReceipts = await this.blockRepo.getTransactionReceipt(chain, txHashes);
|
||||
|
||||
populateTransaction(
|
||||
opts,
|
||||
evmBlocks,
|
||||
transactionReceipts,
|
||||
filterTransactions,
|
||||
populatedTransactions
|
||||
);
|
||||
}
|
||||
}
|
||||
return populatedTransactions;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,3 @@
|
|||
import { EvmTopicFilter } from "../../entities";
|
||||
|
||||
export interface HandleEvmConfig {
|
||||
metricName: string;
|
||||
commitment: string;
|
||||
|
@ -10,5 +8,11 @@ export interface HandleEvmConfig {
|
|||
}
|
||||
|
||||
export interface HandleEvmLogsConfig extends HandleEvmConfig {
|
||||
filter: EvmTopicFilter;
|
||||
filters: Filters;
|
||||
}
|
||||
|
||||
export type Filters = {
|
||||
addresses: string[];
|
||||
strategy?: string;
|
||||
topics: string[];
|
||||
}[];
|
||||
|
|
|
@ -50,11 +50,6 @@ export type EvmTransactionLog = { address: string; topics: string[]; data: strin
|
|||
|
||||
export type EvmTag = "finalized" | "latest" | "safe";
|
||||
|
||||
export type EvmTopicFilter = {
|
||||
addresses: string[];
|
||||
topics: string[];
|
||||
};
|
||||
|
||||
export type EvmLogFilter = {
|
||||
fromBlock: bigint | EvmTag;
|
||||
toBlock: bigint | EvmTag;
|
||||
|
|
|
@ -16,7 +16,7 @@ export const findProtocol = (
|
|||
address: string,
|
||||
comparativeMethod: string | number,
|
||||
hash: string
|
||||
): Protocol | undefined => {
|
||||
): Protocol => {
|
||||
for (const contract of contractsMapperConfig.contracts) {
|
||||
if (contract.chain === chain) {
|
||||
const foundProtocol = contract.protocols.find((protocol) =>
|
||||
|
@ -34,10 +34,14 @@ export const findProtocol = (
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
logger.warn(
|
||||
`[${chain}] Protocol not found, [hash: ${hash}][address: ${address}][method: ${comparativeMethod}]`
|
||||
);
|
||||
|
||||
return {
|
||||
method: "unknown",
|
||||
type: "unknown",
|
||||
};
|
||||
};
|
||||
|
||||
export interface ContractsMapperConfig {
|
||||
|
|
|
@ -724,6 +724,16 @@
|
|||
"method": "MethodCompleteTransfer"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"addresses": ["0x63d02D6792449905C981e1dcED273Bd1007b4eA6"],
|
||||
"type": "NTT",
|
||||
"methods": [
|
||||
{
|
||||
"methodId": "0xf953cec7",
|
||||
"method": "WormholeTransceiverReceiveMessage"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -1410,7 +1420,8 @@
|
|||
{
|
||||
"addresses": [
|
||||
"0x79A1027a6A159502049F10906D333EC57E95F083",
|
||||
"0x86f55a04690fd7815a3d802bd587e83ea888b239"
|
||||
"0x86f55a04690fd7815a3d802bd587e83ea888b239",
|
||||
"0x355b390658310d6fda26b9d67a2f652d21e5bc0d"
|
||||
],
|
||||
"type": "Token Bridge",
|
||||
"methods": [
|
||||
|
@ -1429,6 +1440,10 @@
|
|||
{
|
||||
"methodId": "0xf768441f",
|
||||
"method": "MethodUpdateWrapped"
|
||||
},
|
||||
{
|
||||
"methodId": "0x9e7e8327",
|
||||
"method": "MethodRedeem"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -28,11 +28,6 @@ export const evmRedeemedTransactionFoundMapper = (
|
|||
first10Characters,
|
||||
transaction.hash
|
||||
);
|
||||
|
||||
if (!protocol) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const { type: protocolType, method: protocolMethod } = protocol;
|
||||
|
||||
const vaaInformation = mappedVaaInformation(transaction.logs, transaction.input);
|
||||
|
|
|
@ -131,6 +131,7 @@ export class StaticJobRepository implements JobRepository {
|
|||
const config = {
|
||||
...(handler.config as any),
|
||||
commitment: jobDef.source.config.commitment,
|
||||
filters: jobDef.source.config.filters,
|
||||
chainId: jobDef.chainId,
|
||||
chain: jobDef.chain,
|
||||
id: jobDef.id,
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
import {
|
||||
EvmBlock,
|
||||
EvmLogFilter,
|
||||
EvmLog,
|
||||
EvmTag,
|
||||
ReceiptTransaction,
|
||||
} from "../../../domain/entities";
|
||||
import { EvmBlockRepository } from "../../../domain/repositories";
|
||||
import winston from "../../log";
|
||||
import { InstrumentedHttpProvider } from "../../rpc/http/InstrumentedHttpProvider";
|
||||
import { EvmBlockRepository } from "../../../domain/repositories";
|
||||
import { divideIntoBatches } from "../common/utils";
|
||||
import { HttpClientError } from "../../errors/HttpClientError";
|
||||
import { ChainRPCConfig } from "../../config";
|
||||
import { divideIntoBatches } from "../common/utils";
|
||||
import { ProviderPool } from "@xlabs/rpc-pool";
|
||||
import winston from "../../log";
|
||||
import {
|
||||
ReceiptTransaction,
|
||||
EvmLogFilter,
|
||||
EvmBlock,
|
||||
EvmLog,
|
||||
EvmTag,
|
||||
} from "../../../domain/entities";
|
||||
|
||||
/**
|
||||
* EvmJsonRPCBlockRepository is a repository that uses a JSON RPC endpoint to fetch blocks.
|
||||
|
@ -100,10 +100,7 @@ export class EvmJsonRPCBlockRepository implements EvmBlockRepository {
|
|||
) => {
|
||||
// Karura is getting 6969 errors for some blocks, so we'll just return empty blocks for those instead of throwing an error.
|
||||
// We take the timestamp from the previous block, which is not ideal but should be fine.
|
||||
if (
|
||||
(response && response.result === null) ||
|
||||
(response?.error && response.error?.code && response.error.code === 6969)
|
||||
) {
|
||||
if (response?.error && response.error?.code && response.error.code === 6969) {
|
||||
return {
|
||||
hash: "",
|
||||
number: BigInt(response.id),
|
||||
|
@ -151,13 +148,16 @@ export class EvmJsonRPCBlockRepository implements EvmBlockRepository {
|
|||
}
|
||||
|
||||
async getFilteredLogs(chain: string, filter: EvmLogFilter): Promise<EvmLog[]> {
|
||||
const parsedFilters = {
|
||||
let parsedFilters: ParsedFilters = {
|
||||
topics: filter.topics,
|
||||
address: filter.addresses,
|
||||
fromBlock: `${HEXADECIMAL_PREFIX}${filter.fromBlock.toString(16)}`,
|
||||
toBlock: `${HEXADECIMAL_PREFIX}${filter.toBlock.toString(16)}`,
|
||||
};
|
||||
|
||||
if (filter.addresses.length > 0) {
|
||||
parsedFilters.address = filter.addresses;
|
||||
}
|
||||
|
||||
const chainCfg = this.getCurrentChain(chain);
|
||||
let response: { result: Log[]; error?: ErrorBlock };
|
||||
try {
|
||||
|
@ -174,22 +174,32 @@ export class EvmJsonRPCBlockRepository implements EvmBlockRepository {
|
|||
throw e;
|
||||
}
|
||||
|
||||
if (response.error) {
|
||||
throw new Error(
|
||||
`[${chain}][getFilteredLogs] Error fetching logs with message: ${
|
||||
response.error.message
|
||||
}. Filter: ${JSON.stringify(filter)}`
|
||||
);
|
||||
}
|
||||
|
||||
const logs = response?.result;
|
||||
if (!logs || logs.length === 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
this.logger.info(
|
||||
`[${chain}][getFilteredLogs] Got ${logs?.length} logs for ${this.describeFilter(
|
||||
`[${chain}][getFilteredLogs] Got ${logs.length} logs for ${this.describeFilter(
|
||||
filter
|
||||
)} from ${chainCfg.rpc.hostname}`
|
||||
);
|
||||
|
||||
return logs
|
||||
? logs.map((log) => ({
|
||||
...log,
|
||||
blockNumber: BigInt(log.blockNumber),
|
||||
transactionIndex: log.transactionIndex.toString(),
|
||||
chainId: chainCfg.chainId,
|
||||
chain,
|
||||
}))
|
||||
: [];
|
||||
return logs.map((log) => ({
|
||||
...log,
|
||||
blockNumber: BigInt(log.blockNumber),
|
||||
transactionIndex: log.transactionIndex.toString(),
|
||||
chainId: chainCfg.chainId,
|
||||
chain,
|
||||
}));
|
||||
}
|
||||
|
||||
private describeFilter(filter: EvmLogFilter): string {
|
||||
|
@ -393,3 +403,10 @@ type ResultBlocks = {
|
|||
result?: EvmBlock;
|
||||
error?: ErrorBlock;
|
||||
};
|
||||
|
||||
type ParsedFilters = {
|
||||
fromBlock: string;
|
||||
toBlock: string;
|
||||
address?: string[];
|
||||
topics: string[];
|
||||
};
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
import { afterAll, afterEach, describe, it, expect, jest } from "@jest/globals";
|
||||
import { GetEvmTransactions } from "../../../../src/domain/actions/evm/GetEvmTransactions";
|
||||
import { EvmBlockRepository } from "../../../../src/domain/repositories";
|
||||
import { randomBytes } from "crypto";
|
||||
import {
|
||||
ReceiptTransaction,
|
||||
EvmTransaction,
|
||||
EvmBlock,
|
||||
EvmLog,
|
||||
EvmTransaction,
|
||||
ReceiptTransaction,
|
||||
} from "../../../../src/domain/entities/evm";
|
||||
import { randomBytes } from "crypto";
|
||||
|
||||
let getTransactionReceipt: jest.SpiedFunction<EvmBlockRepository["getTransactionReceipt"]>;
|
||||
let getBlocksSpy: jest.SpiedFunction<EvmBlockRepository["getBlocks"]>;
|
||||
|
@ -32,11 +32,16 @@ describe("GetEvmTransactions", () => {
|
|||
};
|
||||
|
||||
const opts = {
|
||||
addresses: [],
|
||||
topics: [],
|
||||
chain: "ethereum",
|
||||
chainId: 1,
|
||||
environment: "testnet",
|
||||
filters: [
|
||||
{
|
||||
addresses: [],
|
||||
topics: [],
|
||||
strategy: "GetTransactionsByLogFiltersStrategy",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
givenPollEvmLogs();
|
||||
|
@ -56,11 +61,16 @@ describe("GetEvmTransactions", () => {
|
|||
};
|
||||
|
||||
const opts = {
|
||||
addresses: ["0x1ee18b2214aff97000d974cf647e7c545e8fa585"],
|
||||
topics: [],
|
||||
chain: "ethereum",
|
||||
chainId: 1,
|
||||
environment: "mainnet",
|
||||
environment: "testnet",
|
||||
filters: [
|
||||
{
|
||||
addresses: [],
|
||||
topics: [],
|
||||
strategy: "GetTransactionsByLogFiltersStrategy",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const blocks = {
|
||||
|
@ -89,15 +99,27 @@ describe("GetEvmTransactions", () => {
|
|||
};
|
||||
|
||||
const opts = {
|
||||
addresses: ["0x3ee18b2214aff97000d974cf647e7c347e8fa585"],
|
||||
topics: ["0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9a"],
|
||||
chain: "ethereum",
|
||||
chainId: 1,
|
||||
environment: "mainnet",
|
||||
environment: "testnet",
|
||||
filters: [
|
||||
{
|
||||
addresses: [],
|
||||
topics: ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
strategy: "GetTransactionsByLogFiltersStrategy",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const blocks = {
|
||||
"0x01": new BlockBuilder().number(1n).txs([new TxBuilder().create()]).create(),
|
||||
"0xe4321e41fe0a07dcf43e25ee83876398e81eeed694771bb7729186ebb6ea0551": new BlockBuilder()
|
||||
.number(1n)
|
||||
.txs([
|
||||
new TxBuilder()
|
||||
.hash("0x936dfc1f96012263e600a915a5d10c73742148dc7399ed19df0767100eb575b1")
|
||||
.create(),
|
||||
])
|
||||
.create(),
|
||||
};
|
||||
|
||||
givenEvmBlockRepository(range.fromBlock, range.toBlock, blocks);
|
||||
|
@ -124,20 +146,25 @@ describe("GetEvmTransactions", () => {
|
|||
};
|
||||
|
||||
const opts = {
|
||||
addresses: ["0x3ee18b2214aff97000d974cf647e7c347e8fa585"],
|
||||
topics: ["0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9a"],
|
||||
chain: "ethereum",
|
||||
chainId: 1,
|
||||
environment: "mainnet",
|
||||
environment: "testnet",
|
||||
filters: [
|
||||
{
|
||||
addresses: [],
|
||||
topics: ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
strategy: "GetTransactionsByLogFiltersStrategy",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const blocks = {
|
||||
"0x01": new BlockBuilder()
|
||||
"0xe4321e41fe0a07dcf43e25ee83876398e81eeed694771bb7729186ebb6ea0551": new BlockBuilder()
|
||||
.number(1n)
|
||||
.txs([
|
||||
// different topic
|
||||
new TxBuilder()
|
||||
.hash("0x01")
|
||||
.hash("0x936dfc1f96012263e600a915a5d10c73742148dc7399ed19df0767100eb575b1")
|
||||
.logs([
|
||||
{
|
||||
address: "0x3ee18b2214aff97000d974cf647e7c347e8fa585",
|
||||
|
@ -148,7 +175,7 @@ describe("GetEvmTransactions", () => {
|
|||
.create(),
|
||||
// matches filters
|
||||
new TxBuilder()
|
||||
.hash("0x02")
|
||||
.hash("0x936dfc1f96012263e600a915a5d10c73742148dc7399ed19df0767100eb575b2")
|
||||
.logs([
|
||||
{
|
||||
address: "0x3ee18b2214aff97000d974cf647e7c347e8fa585",
|
||||
|
@ -159,7 +186,7 @@ describe("GetEvmTransactions", () => {
|
|||
.create(),
|
||||
// different to address
|
||||
new TxBuilder()
|
||||
.hash("0x03")
|
||||
.hash("0x936dfc1f96012263e600a915a5d10c73742148dc7399ed19df0767100eb575b4")
|
||||
.to("0x4cb69fae7e7af841e44e1a1c30af640739378bb2")
|
||||
.logs([
|
||||
{
|
||||
|
@ -171,7 +198,7 @@ describe("GetEvmTransactions", () => {
|
|||
.create(),
|
||||
// different to address, but same log emitter
|
||||
new TxBuilder()
|
||||
.hash("0x04")
|
||||
.hash("0x936dfc1f96012263e600a915a5d10c73742148dc7399ed19df0767100eb575b6")
|
||||
.to("0x4cb69fae7e7af841e44e1a1c30af640739378bb2")
|
||||
.logs([
|
||||
{
|
||||
|
@ -193,7 +220,9 @@ describe("GetEvmTransactions", () => {
|
|||
|
||||
// Then
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result[0].hash).toEqual("0x02");
|
||||
expect(result[0].hash).toEqual(
|
||||
"0x936dfc1f96012263e600a915a5d10c73742148dc7399ed19df0767100eb575b1"
|
||||
);
|
||||
expect(result[0].to).toEqual("0x3ee18b2214aff97000d974cf647e7c347e8fa585");
|
||||
expect(getTransactionReceipt).toHaveReturnedTimes(1);
|
||||
expect(getBlocksSpy).toHaveReturnedTimes(1);
|
||||
|
@ -207,17 +236,16 @@ describe("GetEvmTransactions", () => {
|
|||
};
|
||||
|
||||
const opts = {
|
||||
addresses: [
|
||||
"0x4cb69fae7e7af841e44e1a1c30af640739378bb2",
|
||||
"0xBd3fa81B58Ba92a82136038B25aDec7066af3155",
|
||||
],
|
||||
topics: [
|
||||
"0x1b2a7ff080b8cb6ff436ce0372e399692bbfb6d4ae5766fd8d58a7b8cc6142e6",
|
||||
"0xf02867db6908ee5f81fd178573ae9385837f0a0a72553f8c08306759a7e0f00e",
|
||||
],
|
||||
chain: "ethereum",
|
||||
chainId: 1,
|
||||
environment: "mainnet",
|
||||
environment: "testnet",
|
||||
filters: [
|
||||
{
|
||||
addresses: [],
|
||||
topics: ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
strategy: "GetTransactionsByLogFiltersStrategy",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const logs = [
|
||||
|
@ -237,13 +265,25 @@ describe("GetEvmTransactions", () => {
|
|||
];
|
||||
|
||||
const blocks = {
|
||||
"0x01": new BlockBuilder()
|
||||
"0xe4321e41fe0a07dcf43e25ee83876398e81eeed694771bb7729186ebb6ea0551": new BlockBuilder()
|
||||
.number(1n)
|
||||
.txs([new TxBuilder().logs(logs).to("0x4cb69fae7e7af841e44e1a1c30af640739378bb2").create()])
|
||||
.txs([
|
||||
new TxBuilder()
|
||||
.logs(logs)
|
||||
.to("0x4cb69fae7e7af841e44e1a1c30af640739378bb2")
|
||||
.hash("0x936dfc1f96012263e600a915a5d10c73742148dc7399ed19df0767100eb575b1")
|
||||
.create(),
|
||||
])
|
||||
.create(),
|
||||
"0x02": new BlockBuilder()
|
||||
"0xe4321e41fe0a07dcf43e25ee83876398e81eeed694771bb7729186ebb6ea0552": new BlockBuilder()
|
||||
.number(2n)
|
||||
.txs([new TxBuilder().logs(logs).to("0x4cb69fae7e7af841e44e1a1c30af640739378bb2").create()])
|
||||
.txs([
|
||||
new TxBuilder()
|
||||
.logs(logs)
|
||||
.to("0x4cb69fae7e7af841e44e1a1c30af640739378bb2")
|
||||
.hash("0x936dfc1f96012263e600a915a5d10c73742148dc7399ed19df0767100eb575b2")
|
||||
.create(),
|
||||
])
|
||||
.create(),
|
||||
};
|
||||
|
||||
|
@ -259,96 +299,7 @@ describe("GetEvmTransactions", () => {
|
|||
expect(result[0].status).toEqual("0x1");
|
||||
expect(result[0].from).toEqual("0x3ee123456786797000d974cf647e7c347e8fa585");
|
||||
expect(result[0].to).toEqual("0x4cb69fae7e7af841e44e1a1c30af640739378bb2");
|
||||
expect(getTransactionReceipt).toHaveReturnedTimes(2);
|
||||
expect(getBlocksSpy).toHaveReturnedTimes(1);
|
||||
});
|
||||
|
||||
it("should apply a multiple topics filter", async () => {
|
||||
// Given
|
||||
const range = {
|
||||
fromBlock: 1n,
|
||||
toBlock: 2n,
|
||||
};
|
||||
|
||||
const opts = {
|
||||
addresses: ["0x7b1bd7a6b4e61c2a123ac6bc2cbfc614437d0470"],
|
||||
topics: [
|
||||
[
|
||||
"0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e",
|
||||
"0x504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a91",
|
||||
],
|
||||
],
|
||||
chain: "ethereum",
|
||||
chainId: 1,
|
||||
environment: "mainnet",
|
||||
};
|
||||
|
||||
const logs = [
|
||||
{
|
||||
address: "0x00ac6efc189140b50a043b5e43c108cf571586d1",
|
||||
topics: ["0xf557dbbb087662f52c815f6c7ee350628a37a51eae9608ff840d996b65f87475"],
|
||||
data: "0xe9d6f4dbc1d568640ce3f6111b2d082e8282461feb9812135b30c9f7c1dcf300000000000000000000000000000000000000000000000000000000000000271200000000000000000000000055aaf4d9399c472b252e7c0b49408b5bc7d7328e",
|
||||
},
|
||||
{
|
||||
address: "0xcc1ebd7a6661c0f6e19d2bbdb881b11f3b3f40ff",
|
||||
topics: ["0x35a2101eaac94b493e0dfca061f9a7f087913fde8678e7cde0aca9897edba0e5"],
|
||||
data: "0xb20b3f32244182844595b9670c53aa82303829fe827af22c460458be9bbae85700000000000000000000000000ac6efc189140b50a043b5e43c108cf571586d10000000000000000000000000000000000000000000000000000000000000000",
|
||||
},
|
||||
{
|
||||
address: "0xcc1ebd7a6661c0f6e19d2bbdb881b11f3b3f40ff",
|
||||
topics: [
|
||||
"0x504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a91",
|
||||
"0xb20b3f32244182844595b9670c53aa82303829fe827af22c460458be9bbae857",
|
||||
],
|
||||
data: "0x",
|
||||
},
|
||||
{
|
||||
address: "0xb12c77938c09d81f1e9797d48501b5c4e338b45b",
|
||||
topics: [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
|
||||
"0x0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0x000000000000000000000000e6990c7e206d418d62b9e50c8e61f59dc360183b",
|
||||
],
|
||||
data: "0x00000000000000000000000000000000000000000000000000354a6ba7a18000",
|
||||
},
|
||||
{
|
||||
address: "0x7b1bd7a6b4e61c2a123ac6bc2cbfc614437d0470",
|
||||
topics: [
|
||||
"0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e",
|
||||
"0x00000000000000000000000000ac6efc189140b50a043b5e43c108cf571586d1",
|
||||
"0x0000000000000000000000000000000000000000000000000000000000002712",
|
||||
"0x00000000000000000000000000000000000000000000000000000000000013ac",
|
||||
],
|
||||
data: "0xe9d6f4dbc1d568640ce3f6111b2d082e8282461feb9812135b30c9f7c1dcf3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002dd05000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
},
|
||||
];
|
||||
|
||||
const blocks = {
|
||||
"0x01": new BlockBuilder()
|
||||
.number(1n)
|
||||
.txs([new TxBuilder().logs(logs).to("0x7b1bd7a6b4e61c2a123ac6bc2cbfc614437d0470").create()])
|
||||
.create(),
|
||||
"0x02": new BlockBuilder()
|
||||
.number(2n)
|
||||
.txs([
|
||||
new TxBuilder().logs([logs[4]]).to("0x7b1bd7a6b4e61c2a123ac6bc2cbfc614437d0470").create(),
|
||||
])
|
||||
.create(),
|
||||
};
|
||||
|
||||
givenEvmBlockRepository(range.fromBlock, range.toBlock, blocks);
|
||||
givenPollEvmLogs();
|
||||
|
||||
// When
|
||||
const result = await getEvmTransactions.execute(range, opts);
|
||||
|
||||
// Then
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result[0].chainId).toEqual(1);
|
||||
expect(result[0].status).toEqual("0x1");
|
||||
expect(result[0].from).toEqual("0x3ee123456786797000d974cf647e7c347e8fa585");
|
||||
expect(result[0].to).toEqual("0x7b1bd7a6b4e61c2a123ac6bc2cbfc614437d0470");
|
||||
expect(getTransactionReceipt).toHaveReturnedTimes(2);
|
||||
expect(getTransactionReceipt).toHaveReturnedTimes(1);
|
||||
expect(getBlocksSpy).toHaveReturnedTimes(1);
|
||||
});
|
||||
});
|
||||
|
@ -374,18 +325,22 @@ const givenEvmBlockRepository = (
|
|||
if (height) {
|
||||
for (let index = height; index <= (blocksAhead ?? 1n); index++) {
|
||||
logsResponse.push({
|
||||
blockNumber: height + index,
|
||||
blockHash: `0x0${index}`,
|
||||
blockTime: 0,
|
||||
address: "",
|
||||
address: "0x5a58505a96d1dbf8df91cb21b54419fc36e93fde",
|
||||
topics: [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0x0000000000000000000000000000000000000000000000000000000000000016",
|
||||
"0x0000000000000000000000000000000000000000000000000000000000000001",
|
||||
"0x0000000000000000000000000000000000000000000000000000000000025b4e",
|
||||
],
|
||||
data: "0x",
|
||||
blockNumber: height,
|
||||
transactionHash: `0x936dfc1f96012263e600a915a5d10c73742148dc7399ed19df0767100eb575b${index}`,
|
||||
transactionIndex: "0x47",
|
||||
blockHash: `0xe4321e41fe0a07dcf43e25ee83876398e81eeed694771bb7729186ebb6ea055${index}`,
|
||||
logIndex: 123,
|
||||
removed: false,
|
||||
data: "",
|
||||
transactionHash: "",
|
||||
transactionIndex: "",
|
||||
topics: [],
|
||||
logIndex: 0,
|
||||
chainId: 2,
|
||||
chain: "ethereum",
|
||||
chainId: 5,
|
||||
chain: "polygon",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -464,7 +419,7 @@ class TxBuilder {
|
|||
|
||||
default() {
|
||||
return {
|
||||
blockHash: "0xf5794b0970386d7951e45465ac2c9835537e5a9",
|
||||
blockHash: "0xe4321e41fe0a07dcf43e25ee83876398e81eeed694771bb7729186ebb6ea0551",
|
||||
hash: "0x" + randomBytes(32).toString("hex"),
|
||||
blockNumber: 1n,
|
||||
chainId: 1,
|
||||
|
|
|
@ -64,10 +64,12 @@ const givenHandleEvmLogs = (targetFn: "save" | "failingSave" = "save") => {
|
|||
|
||||
const givenConfig = (abi: string) => {
|
||||
cfg = {
|
||||
filter: {
|
||||
addresses: ["0x28D8F1Be96f97C1387e94A53e00eCcFb4E75175a"],
|
||||
topics: ["0xda8540426b64ece7b164a9dce95448765f0a7263ef3ff85091c9c7361e485364"],
|
||||
},
|
||||
filters: [
|
||||
{
|
||||
addresses: ["0x28D8F1Be96f97C1387e94A53e00eCcFb4E75175a"],
|
||||
topics: ["0xda8540426b64ece7b164a9dce95448765f0a7263ef3ff85091c9c7361e485364"],
|
||||
},
|
||||
],
|
||||
metricName: "process_source_ethereum_event",
|
||||
abi,
|
||||
commitment: "latest",
|
||||
|
@ -92,8 +94,8 @@ const givenEvmLogs = (length: number, matchingFilterOnes: number) => {
|
|||
let address = "0x392f472048681816e91026cd768c60958b55352add2837adea9ea6249178b8a8";
|
||||
let topic: string | undefined = undefined;
|
||||
if (matchingCount < matchingFilterOnes) {
|
||||
address = cfg.filter.addresses![0].toUpperCase();
|
||||
topic = cfg.filter.topics![0];
|
||||
address = cfg.filters[0].addresses![0].toUpperCase();
|
||||
topic = cfg.filters[0].topics![0];
|
||||
matchingCount++;
|
||||
}
|
||||
|
||||
|
|
|
@ -50,8 +50,8 @@ describe("PollEvm", () => {
|
|||
),
|
||||
() =>
|
||||
expect(getLogsSpy).toBeCalledWith("acala", {
|
||||
addresses: cfg.addresses,
|
||||
topics: cfg.topics,
|
||||
addresses: cfg.filters[0].addresses,
|
||||
topics: cfg.filters[0].topics,
|
||||
fromBlock: currentHeight + blocksAhead,
|
||||
toBlock: currentHeight + blocksAhead,
|
||||
})
|
||||
|
@ -75,8 +75,8 @@ describe("PollEvm", () => {
|
|||
),
|
||||
() =>
|
||||
expect(getLogsSpy).toBeCalledWith("acala", {
|
||||
addresses: cfg.addresses,
|
||||
topics: cfg.topics,
|
||||
addresses: cfg.filters[0].addresses,
|
||||
topics: cfg.filters[0].topics,
|
||||
fromBlock: lastExtractedBlock + 1n,
|
||||
toBlock: lastExtractedBlock + blocksAhead,
|
||||
})
|
||||
|
|
|
@ -30,7 +30,7 @@ describe("aptosRedeemedTransactionFoundMapper", () => {
|
|||
}
|
||||
});
|
||||
|
||||
it("should not be able to map log to aptosRedeemedTransactionFoundMapper", async () => {
|
||||
it("should not be able to map with one protocol and set up unknown name in log aptosRedeemedTransactionFoundMapper", async () => {
|
||||
// Given
|
||||
const tx: AptosTransaction = {
|
||||
blockHeight: 154363203n,
|
||||
|
@ -68,7 +68,8 @@ describe("aptosRedeemedTransactionFoundMapper", () => {
|
|||
const result = aptosRedeemedTransactionFoundMapper(tx);
|
||||
|
||||
// Then
|
||||
expect(result).toBeUndefined();
|
||||
expect(result?.name).toBe("transfer-redeemed");
|
||||
expect(result?.attributes.protocol).toBe("unknown");
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ let statsRepo = {
|
|||
|
||||
const handler = new HandleEvmLogs(
|
||||
{
|
||||
filter: { addresses: [address], topics: [topic] },
|
||||
filters: [{ addresses: [address], topics: [topic] }],
|
||||
abi: "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
metricName: "process_source_ethereum_event",
|
||||
commitment: "latest",
|
||||
|
|
|
@ -45,8 +45,12 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 15000,
|
||||
"addresses": [
|
||||
"0xE4eacc10990ba3308DdCC72d985f2a27D20c7d03"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xE4eacc10990ba3308DdCC72d985f2a27D20c7d03"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "karura",
|
||||
"chainId": 11
|
||||
|
@ -59,14 +63,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0xE4eacc10990ba3308DdCC72d985f2a27D20c7d03"
|
||||
],
|
||||
"topics": [
|
||||
"0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"
|
||||
]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -81,8 +77,12 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": [
|
||||
"0x1BB3B4119b7BA9dfad76B0545fb3F531383c3bB7"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x1BB3B4119b7BA9dfad76B0545fb3F531383c3bB7"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "fantom",
|
||||
"chainId": 10
|
||||
|
@ -95,14 +95,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x1BB3B4119b7BA9dfad76B0545fb3F531383c3bB7"
|
||||
],
|
||||
"topics": [
|
||||
"0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"
|
||||
]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -117,8 +109,12 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 15000,
|
||||
"addresses": [
|
||||
"0x4377B49d559c0a9466477195C6AdC3D433e265c0"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x4377B49d559c0a9466477195C6AdC3D433e265c0"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "acala",
|
||||
"chainId": 12
|
||||
|
@ -131,14 +127,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x4377B49d559c0a9466477195C6AdC3D433e265c0"
|
||||
],
|
||||
"topics": [
|
||||
"0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"
|
||||
]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -153,8 +141,12 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 15000,
|
||||
"addresses": [
|
||||
"0x7bbcE28e64B3F8b84d876Ab298393c38ad7aac4C"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x7bbcE28e64B3F8b84d876Ab298393c38ad7aac4C"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "avalanche",
|
||||
"chainId": 6,
|
||||
|
@ -168,14 +160,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x7bbcE28e64B3F8b84d876Ab298393c38ad7aac4C"
|
||||
],
|
||||
"topics": [
|
||||
"0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"
|
||||
]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -190,7 +174,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x68605AD7b15c732a30b1BbC62BE8F2A509D74b4D"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x68605AD7b15c732a30b1BbC62BE8F2A509D74b4D"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "bsc",
|
||||
"chainId": 4
|
||||
}
|
||||
|
@ -202,10 +192,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x68605AD7b15c732a30b1BbC62BE8F2A509D74b4D"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -220,7 +206,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0xa5B7D85a8f27dd7907dc8FdC21FA5657D5E2F901"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xa5B7D85a8f27dd7907dc8FdC21FA5657D5E2F901"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "moonbeam",
|
||||
"chainId": 16
|
||||
}
|
||||
|
@ -232,81 +224,103 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xa5B7D85a8f27dd7907dc8FdC21FA5657D5E2F901"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-sui",
|
||||
"chain": "sui",
|
||||
"id": "poll-log-message-published-arbitrum-sepolia",
|
||||
"chain": "arbitrum-sepolia",
|
||||
"source": {
|
||||
"action": "PollSuiTransactions",
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"interval": 5000,
|
||||
"chain": "sui",
|
||||
"filter": {
|
||||
"MoveFunction": {
|
||||
"package": "0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94",
|
||||
"module": "publish_message",
|
||||
"function": "publish_message"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleSuiTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "suiLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"eventTypes": [
|
||||
"0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94::publish_message::WormholeMessage"
|
||||
],
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-aptos",
|
||||
"chain": "aptos",
|
||||
"source": {
|
||||
"action": "PollAptos",
|
||||
"config": {
|
||||
"limitBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 25000,
|
||||
"addresses": ["0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625"],
|
||||
"chain": "aptos",
|
||||
"chainId": 22,
|
||||
"blockBatchSize": 1000,
|
||||
"commitment": "latest",
|
||||
"interval": 30000,
|
||||
"filters": [
|
||||
{
|
||||
"fieldName": "event",
|
||||
"address": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625",
|
||||
"event": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessageHandle",
|
||||
"type": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessage"
|
||||
"addresses": ["0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
]
|
||||
],
|
||||
"chain": "arbitrum-sepolia",
|
||||
"chainId": 10003
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleAptosTransactions",
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "aptosLogMessagePublishedMapper",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"metricName": "process_source_event",
|
||||
"metricLabels": {
|
||||
"job": "poll-log-message-published-aptos",
|
||||
"chain": "aptos",
|
||||
"commitment": "finalized"
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-ethereum-sepolia",
|
||||
"chain": "ethereum-sepolia",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "ethereum-sepolia",
|
||||
"chainId": 10002
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-ethereum-holesky",
|
||||
"chain": "ethereum-holesky",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xa10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "ethereum-holesky",
|
||||
"chainId": 10006
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -323,8 +337,12 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0xa321448d90d4e5b0A732867c18eA198e75CAC48E"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xa321448d90d4e5b0A732867c18eA198e75CAC48E"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "karura",
|
||||
"chainId": 11
|
||||
|
@ -337,14 +355,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0xa321448d90d4e5b0A732867c18eA198e75CAC48E"
|
||||
],
|
||||
"topics": [
|
||||
"0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"
|
||||
]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -359,8 +369,12 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x126783A6Cb203a3E35344528B26ca3a0489a1485"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x126783A6Cb203a3E35344528B26ca3a0489a1485"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "fantom",
|
||||
"chainId": 10
|
||||
|
@ -373,14 +387,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x126783A6Cb203a3E35344528B26ca3a0489a1485"
|
||||
],
|
||||
"topics": [
|
||||
"0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"
|
||||
]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -395,8 +401,12 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0xa321448d90d4e5b0A732867c18eA198e75CAC48E"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xa321448d90d4e5b0A732867c18eA198e75CAC48E"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "acala",
|
||||
"chainId": 12
|
||||
|
@ -409,14 +419,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0xa321448d90d4e5b0A732867c18eA198e75CAC48E"
|
||||
],
|
||||
"topics": [
|
||||
"0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"
|
||||
]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -431,8 +433,12 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x54a8e5f9c4CbA08F9943965859F6c34eAF03E26c"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x54a8e5f9c4CbA08F9943965859F6c34eAF03E26c"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "avalanche",
|
||||
"chainId": 6,
|
||||
|
@ -446,14 +452,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x54a8e5f9c4CbA08F9943965859F6c34eAF03E26c"
|
||||
],
|
||||
"topics": [
|
||||
"0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"
|
||||
]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -468,7 +466,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "bsc",
|
||||
"chainId": 4
|
||||
}
|
||||
|
@ -480,10 +484,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -498,7 +498,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "moonbeam",
|
||||
"chainId": 16
|
||||
}
|
||||
|
@ -510,86 +516,71 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-sui",
|
||||
"chain": "sui",
|
||||
"id": "poll-log-message-published-arbitrum",
|
||||
"chain": "arbitrum",
|
||||
"source": {
|
||||
"action": "PollSuiTransactions",
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"blockBatchSize": 1000,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"chain": "sui",
|
||||
"filter": {
|
||||
"MoveFunction": {
|
||||
"package": "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",
|
||||
"module": "publish_message",
|
||||
"function": "publish_message"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xa5f208e072434bC67592E4C49C1B991BA79BCA46"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"chain": "arbitrum",
|
||||
"chainId": 23
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleSuiTransactions",
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "suiLogMessagePublishedMapper",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"eventTypes": [
|
||||
"0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a::publish_message::WormholeMessage"
|
||||
],
|
||||
"metricName": "process_source_event",
|
||||
"metricLabels": {
|
||||
"job": "poll-log-message-published-sui",
|
||||
"chain": "sui",
|
||||
"commitment": "immediate"
|
||||
}
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-aptos",
|
||||
"chain": "aptos",
|
||||
"id": "poll-log-message-published-ethereum",
|
||||
"chain": "ethereum",
|
||||
"source": {
|
||||
"action": "PollAptos",
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"limitBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625"],
|
||||
"chain": "aptos",
|
||||
"chainId": 22,
|
||||
"filters": [
|
||||
{
|
||||
"fieldName": "event",
|
||||
"address": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625",
|
||||
"event": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessageHandle",
|
||||
"type": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessage"
|
||||
"addresses": ["0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
]
|
||||
],
|
||||
"chain": "ethereum",
|
||||
"chainId": 2
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleAptosTransactions",
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "aptosLogMessagePublishedMapper",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"metricName": "process_source_event",
|
||||
"metricLabels": {
|
||||
"job": "poll-log-message-published-aptos",
|
||||
"chain": "aptos",
|
||||
"commitment": "finalized"
|
||||
}
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -649,18 +640,30 @@ spec:
|
|||
- name: AVALANCHE_RPCS
|
||||
value: '{{ .AVALANCHE_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .APTOS_RPCS }}
|
||||
- name: APTOS_RPCS
|
||||
value: '{{ .APTOS_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .SUI_RPCS }}
|
||||
- name: SUI_RPCS
|
||||
value: '{{ .SUI_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .KARURA_RPCS }}
|
||||
- name: KARURA_RPCS
|
||||
value: '{{ .KARURA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ARBITRUM_RPCS }}
|
||||
- name: ARBITRUM_RPCS
|
||||
value: '{{ .ARBITRUM_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ARBITRUM_SEPOLIA_RPCS }}
|
||||
- name: ARBITRUM_SEPOLIA_RPCS
|
||||
value: '{{ .ARBITRUM_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ETHEREUM_SEPOLIA_RPCS }}
|
||||
- name: ETHEREUM_SEPOLIA_RPCS
|
||||
value: '{{ .ETHEREUM_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ETHEREUM_RPCS }}
|
||||
- name: ETHEREUM_RPCS
|
||||
value: '{{ .ETHEREUM_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ETHEREUM_HOLESKY_RPCS }}
|
||||
- name: ETHEREUM_HOLESKY_RPCS
|
||||
value: '{{ .ETHEREUM_HOLESKY_RPCS }}'
|
||||
{{ end }}
|
||||
image: {{ .IMAGE_NAME }}
|
||||
resources:
|
||||
limits:
|
||||
|
|
|
@ -45,7 +45,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x31377888146f3253211EFEf5c676D41ECe7D58Fe"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x31377888146f3253211EFEf5c676D41ECe7D58Fe"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "optimism-sepolia",
|
||||
"chainId": 10005
|
||||
}
|
||||
|
@ -57,10 +63,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x31377888146f3253211EFEf5c676D41ECe7D58Fe"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -75,7 +77,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x79A1027a6A159502049F10906D333EC57E95F083"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x79A1027a6A159502049F10906D333EC57E95F083"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "base-sepolia",
|
||||
"chainId": 10004
|
||||
}
|
||||
|
@ -87,10 +95,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x79A1027a6A159502049F10906D333EC57E95F083"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -105,7 +109,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x88505117CA88e7dd2eC6EA1E13f0948db2D50D56"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x88505117CA88e7dd2eC6EA1E13f0948db2D50D56"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "celo",
|
||||
"chainId": 14
|
||||
}
|
||||
|
@ -117,10 +127,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x88505117CA88e7dd2eC6EA1E13f0948db2D50D56"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -135,7 +141,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0xc1C338397ffA53a2Eb12A7038b4eeb34791F8aCb"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xc1C338397ffA53a2Eb12A7038b4eeb34791F8aCb"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "oasis",
|
||||
"chainId": 7
|
||||
}
|
||||
|
@ -147,10 +159,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xc1C338397ffA53a2Eb12A7038b4eeb34791F8aCb"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -165,7 +173,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x1830CC6eE66c84D2F177B94D544967c774E624cA"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x1830CC6eE66c84D2F177B94D544967c774E624cA"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "klaytn",
|
||||
"chainId": 13
|
||||
}
|
||||
|
@ -177,40 +191,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x1830CC6eE66c84D2F177B94D544967c774E624cA"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-polygon",
|
||||
"chain": "polygon",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x0CBE91CF822c73C2315FB05100C2F714765d5c20"],
|
||||
"chain": "polygon",
|
||||
"chainId": 5
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x0CBE91CF822c73C2315FB05100C2F714765d5c20"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -225,7 +205,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "polygon-sepolia",
|
||||
"chainId": 10007
|
||||
}
|
||||
|
@ -237,10 +223,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -255,7 +237,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x055f47f1250012c6b20c436570a76e52c17af2d5"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x055f47f1250012c6b20c436570a76e52c17af2d5"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "scroll",
|
||||
"chainId": 34
|
||||
}
|
||||
|
@ -267,10 +255,6 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x055f47f1250012c6b20c436570a76e52c17af2d5"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -314,7 +298,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0x473e002D7add6fB67a4964F13bFd61280Ca46886"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x473e002D7add6fB67a4964F13bFd61280Ca46886"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "blast",
|
||||
"chainId": 36
|
||||
}
|
||||
|
@ -326,11 +316,7 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x473e002D7add6fB67a4964F13bFd61280Ca46886"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -344,7 +330,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0x376428e7f26D5867e69201b275553C45B09EE090"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x376428e7f26D5867e69201b275553C45B09EE090"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "mantle",
|
||||
"chainId": 35
|
||||
}
|
||||
|
@ -356,11 +348,39 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x376428e7f26D5867e69201b275553C45B09EE090"],
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-xlayer",
|
||||
"chain": "xlayer",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"blockBatchSize": 1,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xA31aa3FDb7aF7Db93d18DDA4e19F811342EDF780"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
],
|
||||
"chain": "xlayer",
|
||||
"chainId": 37
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -374,10 +394,17 @@ data:
|
|||
"source": {
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"fromBlock": 120604056,
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "optimism",
|
||||
"chainId": 24
|
||||
}
|
||||
|
@ -389,11 +416,7 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -407,7 +430,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "base",
|
||||
"chainId": 30
|
||||
}
|
||||
|
@ -419,11 +448,7 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -437,7 +462,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0xa321448d90d4e5b0A732867c18eA198e75CAC48E"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xa321448d90d4e5b0A732867c18eA198e75CAC48E"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "celo",
|
||||
"chainId": 14
|
||||
}
|
||||
|
@ -449,11 +480,7 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xa321448d90d4e5b0A732867c18eA198e75CAC48E"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -467,7 +494,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0xfE8cD454b4A1CA468B57D79c0cc77Ef5B6f64585"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xfE8cD454b4A1CA468B57D79c0cc77Ef5B6f64585"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "oasis",
|
||||
"chainId": 7
|
||||
}
|
||||
|
@ -479,11 +512,7 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xfE8cD454b4A1CA468B57D79c0cc77Ef5B6f64585"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -497,7 +526,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0x0C21603c4f3a6387e241c0091A7EA39E43E90bb7"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x0C21603c4f3a6387e241c0091A7EA39E43E90bb7"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "klaytn",
|
||||
"chainId": 13
|
||||
}
|
||||
|
@ -509,11 +544,7 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x0C21603c4f3a6387e241c0091A7EA39E43E90bb7"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -527,7 +558,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0x7A4B5a56256163F07b2C80A7cA55aBE66c4ec4d7"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x7A4B5a56256163F07b2C80A7cA55aBE66c4ec4d7"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "polygon",
|
||||
"chainId": 5
|
||||
}
|
||||
|
@ -539,11 +576,7 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x7A4B5a56256163F07b2C80A7cA55aBE66c4ec4d7"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -586,7 +619,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "blast",
|
||||
"chainId": 36
|
||||
}
|
||||
|
@ -598,11 +637,7 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -616,7 +651,13 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"],
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
}
|
||||
],
|
||||
"chain": "scroll",
|
||||
"chainId": 34
|
||||
}
|
||||
|
@ -628,10 +669,38 @@ data:
|
|||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"],
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-xlayer",
|
||||
"chain": "xlayer",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": ["0x194B123c5E96B9b2E49763619985790Dc241CAC0"],
|
||||
"type": "Portal Token Bridge",
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
}
|
||||
],
|
||||
"chain": "xlayer",
|
||||
"chainId": 37
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
|
@ -680,10 +749,18 @@ spec:
|
|||
- name: BASE_RPCS
|
||||
value: '{{ .BASE_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .BASE_SEPOLIA_RPCS }}
|
||||
- name: BASE_SEPOLIA_RPCS
|
||||
value: '{{ .BASE_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .OPTIMISM_RPCS }}
|
||||
- name: OPTIMISM_RPCS
|
||||
value: '{{ .OPTIMISM_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .OPTIMISM_SEPOLIA_RPCS }}
|
||||
- name: OPTIMISM_SEPOLIA_RPCS
|
||||
value: '{{ .OPTIMISM_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ARBITRUM_RPCS }}
|
||||
- name: ARBITRUM_RPCS
|
||||
value: '{{ .ARBITRUM_RPCS }}'
|
||||
|
@ -692,13 +769,9 @@ spec:
|
|||
- name: POLYGON_RPCS
|
||||
value: '{{ .POLYGON_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .BASE_SEPOLIA_RPCS }}
|
||||
- name: BASE_SEPOLIA_RPCS
|
||||
value: '{{ .BASE_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .OPTIMISM_SEPOLIA_RPCS }}
|
||||
- name: OPTIMISM_SEPOLIA_RPCS
|
||||
value: '{{ .OPTIMISM_SEPOLIA_RPCS }}'
|
||||
{{ if .POLYGON_SEPOLIA_RPCS }}
|
||||
- name: POLYGON_SEPOLIA_RPCS
|
||||
value: '{{ .POLYGON_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .CELO_RPCS }}
|
||||
- name: CELO_RPCS
|
||||
|
@ -708,10 +781,6 @@ spec:
|
|||
- name: SCROLL_RPCS
|
||||
value: '{{ .SCROLL_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .POLYGON_SEPOLIA_RPCS }}
|
||||
- name: POLYGON_SEPOLIA_RPCS
|
||||
value: '{{ .POLYGON_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ARBITRUM_SEPOLIA_RPCS }}
|
||||
- name: ARBITRUM_SEPOLIA_RPCS
|
||||
value: '{{ .ARBITRUM_SEPOLIA_RPCS }}'
|
||||
|
@ -724,6 +793,14 @@ spec:
|
|||
- name: KLAYTN_RPCS
|
||||
value: '{{ .KLAYTN_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .XLAYER_RPCS }}
|
||||
- name: XLAYER_RPCS
|
||||
value: '{{ .XLAYER_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .MANTLE_RPCS }}
|
||||
- name: MANTLE_RPCS
|
||||
value: '{{ .MANTLE_RPCS }}'
|
||||
{{ end }}
|
||||
image: {{ .IMAGE_NAME }}
|
||||
resources:
|
||||
limits:
|
||||
|
|
|
@ -37,121 +37,71 @@ data:
|
|||
testnet-jobs.json: |-
|
||||
[
|
||||
{
|
||||
"id": "poll-log-message-published-arbitrum-sepolia",
|
||||
"chain": "arbitrum-sepolia",
|
||||
"id": "poll-log-message-published-sui",
|
||||
"chain": "sui",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"action": "PollSuiTransactions",
|
||||
"config": {
|
||||
"blockBatchSize": 1000,
|
||||
"commitment": "latest",
|
||||
"interval": 30000,
|
||||
"addresses": ["0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35"],
|
||||
"chain": "arbitrum-sepolia",
|
||||
"chainId": 10003
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-ethereum-sepolia",
|
||||
"chain": "ethereum-sepolia",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78"],
|
||||
"chain": "ethereum-sepolia",
|
||||
"chainId": 10002
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-ethereum-holesky",
|
||||
"chain": "ethereum-holesky",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0xa10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a"],
|
||||
"chain": "ethereum-holesky",
|
||||
"chainId": 10006
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xa10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-xlayer",
|
||||
"chain": "xlayer",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"blockBatchSize": 1,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0xA31aa3FDb7aF7Db93d18DDA4e19F811342EDF780"],
|
||||
"chain": "xlayer",
|
||||
"chainId": 37
|
||||
"chain": "sui",
|
||||
"filter": {
|
||||
"MoveFunction": {
|
||||
"package": "0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94",
|
||||
"module": "publish_message",
|
||||
"function": "publish_message"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"action": "HandleSuiTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"mapper": "suiLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"eventTypes": [
|
||||
"0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94::publish_message::WormholeMessage"
|
||||
],
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-aptos",
|
||||
"chain": "aptos",
|
||||
"source": {
|
||||
"action": "PollAptos",
|
||||
"config": {
|
||||
"limitBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 25000,
|
||||
"addresses": ["0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625"],
|
||||
"chain": "aptos",
|
||||
"chainId": 22,
|
||||
"filters": [
|
||||
{
|
||||
"fieldName": "event",
|
||||
"address": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625",
|
||||
"event": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessageHandle",
|
||||
"type": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessage"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleAptosTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "aptosLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xA31aa3FDb7aF7Db93d18DDA4e19F811342EDF780"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"metricName": "process_source_event",
|
||||
"metricLabels": {
|
||||
"job": "poll-log-message-published-aptos",
|
||||
"chain": "aptos",
|
||||
"commitment": "finalized"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -160,91 +110,76 @@ data:
|
|||
mainnet-jobs.json: |-
|
||||
[
|
||||
{
|
||||
"id": "poll-log-message-published-arbitrum",
|
||||
"chain": "arbitrum",
|
||||
"id": "poll-log-message-published-sui",
|
||||
"chain": "sui",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"action": "PollSuiTransactions",
|
||||
"config": {
|
||||
"blockBatchSize": 1000,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": ["0xa5f208e072434bC67592E4C49C1B991BA79BCA46"],
|
||||
"chain": "arbitrum",
|
||||
"chainId": 23
|
||||
"chain": "sui",
|
||||
"filter": {
|
||||
"MoveFunction": {
|
||||
"package": "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",
|
||||
"module": "publish_message",
|
||||
"function": "publish_message"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"action": "HandleSuiTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"mapper": "suiLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0xa5f208e072434bC67592E4C49C1B991BA79BCA46"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"eventTypes": [
|
||||
"0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a::publish_message::WormholeMessage"
|
||||
],
|
||||
"metricName": "process_source_event",
|
||||
"metricLabels": {
|
||||
"job": "poll-log-message-published-sui",
|
||||
"chain": "sui",
|
||||
"commitment": "immediate"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-ethereum",
|
||||
"chain": "ethereum",
|
||||
"id": "poll-log-message-published-aptos",
|
||||
"chain": "aptos",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"action": "PollAptos",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"limitBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B"],
|
||||
"chain": "ethereum",
|
||||
"chainId": 2
|
||||
"addresses": ["0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625"],
|
||||
"chain": "aptos",
|
||||
"chainId": 22,
|
||||
"filters": [
|
||||
{
|
||||
"fieldName": "event",
|
||||
"address": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625",
|
||||
"event": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessageHandle",
|
||||
"type": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessage"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"action": "HandleAptosTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"mapper": "aptosLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-log-message-published-xlayer",
|
||||
"chain": "xlayer",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": ["0x194B123c5E96B9b2E49763619985790Dc241CAC0"],
|
||||
"chain": "xlayer",
|
||||
"chainId": 37
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmLogs",
|
||||
"target": "sns",
|
||||
"mapper": "evmLogMessagePublishedMapper",
|
||||
"config": {
|
||||
"abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)",
|
||||
"filter": {
|
||||
"addresses": ["0x194B123c5E96B9b2E49763619985790Dc241CAC0"],
|
||||
"topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"]
|
||||
},
|
||||
"metricName": "process_source_event"
|
||||
"metricName": "process_source_event",
|
||||
"metricLabels": {
|
||||
"job": "poll-log-message-published-aptos",
|
||||
"chain": "aptos",
|
||||
"commitment": "finalized"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -288,29 +223,13 @@ spec:
|
|||
value: {{ .SNS_REGION }}
|
||||
- name: JOBS_DIR
|
||||
value: /home/node/app/jobs
|
||||
{{ if .ARBITRUM_RPCS }}
|
||||
- name: ARBITRUM_RPCS
|
||||
value: '{{ .ARBITRUM_RPCS }}'
|
||||
{{ if .SUI_RPCS }}
|
||||
- name: SUI_RPCS
|
||||
value: '{{ .SUI_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ARBITRUM_SEPOLIA_RPCS }}
|
||||
- name: ARBITRUM_SEPOLIA_RPCS
|
||||
value: '{{ .ARBITRUM_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ETHEREUM_SEPOLIA_RPCS }}
|
||||
- name: ETHEREUM_SEPOLIA_RPCS
|
||||
value: '{{ .ETHEREUM_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ETHEREUM_RPCS }}
|
||||
- name: ETHEREUM_RPCS
|
||||
value: '{{ .ETHEREUM_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ETHEREUM_HOLESKY_RPCS }}
|
||||
- name: ETHEREUM_HOLESKY_RPCS
|
||||
value: '{{ .ETHEREUM_HOLESKY_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .XLAYER_RPCS }}
|
||||
- name: XLAYER_RPCS
|
||||
value: '{{ .XLAYER_RPCS }}'
|
||||
{{ if .APTOS_RPCS }}
|
||||
- name: APTOS_RPCS
|
||||
value: '{{ .APTOS_RPCS }}'
|
||||
{{ end }}
|
||||
image: {{ .IMAGE_NAME }}
|
||||
resources:
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -36,45 +36,6 @@ metadata:
|
|||
data:
|
||||
testnet-jobs.json: |-
|
||||
[
|
||||
{
|
||||
"id": "poll-redeemed-transactions-aptos",
|
||||
"chain": "aptos",
|
||||
"source": {
|
||||
"action": "PollAptos",
|
||||
"records": "GetAptosTransactions",
|
||||
"config": {
|
||||
"limitBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f",
|
||||
"0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130"
|
||||
],
|
||||
"chain": "aptos",
|
||||
"chainId": 22,
|
||||
"filters": [
|
||||
{
|
||||
"address": "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f",
|
||||
"type": "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f::complete_transfer::submit_vaa_and_register_entry"
|
||||
},
|
||||
{
|
||||
"address": "0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130",
|
||||
"type": "0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130::complete_transfer::submit_vaa_and_register_entry"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleAptosTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "aptosRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-redeemed-transactions-fantom",
|
||||
"chain": "fantom",
|
||||
|
@ -84,17 +45,23 @@ data:
|
|||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x599cea2204b4faecd584ab1f2b6aca137a0afbe8",
|
||||
"0x63eD9318628D26BdCB15df58B53BB27231D1B227",
|
||||
"0x9563a59C15842a6f322B10f69d1dD88b41f2E97B"
|
||||
"interval": 15000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": ["0x63eD9318628D26BdCB15df58B53BB27231D1B227"],
|
||||
"type": "NFT",
|
||||
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],
|
||||
"strategy": "GetTransactionsByBlocksStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "fantom",
|
||||
"chainId": 10,
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chainId": 10
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -103,17 +70,6 @@ data:
|
|||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x599cea2204b4faecd584ab1f2b6aca137a0afbe8",
|
||||
"0x63eD9318628D26BdCB15df58B53BB27231D1B227",
|
||||
"0x9563a59C15842a6f322B10f69d1dD88b41f2E97B"
|
||||
],
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -128,16 +84,23 @@ data:
|
|||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x88d8004a9bdbfd9d28090a02010c19897a29605c",
|
||||
"0xC5c25B41AB0b797571620F5204Afa116A44c0ebA"
|
||||
"interval": 15000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": ["0xC5c25B41AB0b797571620F5204Afa116A44c0ebA"],
|
||||
"type": "NFT",
|
||||
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],
|
||||
"strategy": "GetTransactionsByBlocksStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "oasis",
|
||||
"chainId": 7,
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chainId": 7
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -146,16 +109,6 @@ data:
|
|||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x88d8004a9bdbfd9d28090a02010c19897a29605c",
|
||||
"0xC5c25B41AB0b797571620F5204Afa116A44c0ebA"
|
||||
],
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -170,18 +123,29 @@ data:
|
|||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0xbc976d4b9d57e57c3ca52e1fd136c45ff7955a96",
|
||||
"0x98A0F4B96972b32Fcb3BD03cAeB66A44a6aB9Edb",
|
||||
"0x0591C25ebd0580E0d4F27A82Fc2e24E7489CB5e0",
|
||||
"0x9563a59C15842a6f322B10f69d1dD88b41f2E97B"
|
||||
"interval": 15000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Standard Relayer",
|
||||
"topics": ["0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": ["0x98A0F4B96972b32Fcb3BD03cAeB66A44a6aB9Edb"],
|
||||
"type": "NFT",
|
||||
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],
|
||||
"strategy": "GetTransactionsByBlocksStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "moonbeam",
|
||||
"chainId": 16,
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chainId": 16
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -190,18 +154,6 @@ data:
|
|||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0xbc976d4b9d57e57c3ca52e1fd136c45ff7955a96",
|
||||
"0x98A0F4B96972b32Fcb3BD03cAeB66A44a6aB9Edb",
|
||||
"0x0591C25ebd0580E0d4F27A82Fc2e24E7489CB5e0",
|
||||
"0x9563a59C15842a6f322B10f69d1dD88b41f2E97B"
|
||||
],
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -214,20 +166,31 @@ data:
|
|||
"action": "PollEvm",
|
||||
"records": "GetEvmTransactions",
|
||||
"config": {
|
||||
"blockBatchSize": 10,
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x05ca6037ec51f8b712ed2e6fa72219feae74e153",
|
||||
"0xaCD8190F647a31E56A656748bC30F69259f245Db",
|
||||
"0x306B68267Deb7c5DfCDa3619E22E9Ca39C374f84",
|
||||
"0x9563a59C15842a6f322B10f69d1dD88b41f2E97B"
|
||||
"interval": 15000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Standard Relayer",
|
||||
"topics": ["0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": ["0xaCD8190F647a31E56A656748bC30F69259f245Db"],
|
||||
"type": "NFT",
|
||||
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],
|
||||
"strategy": "GetTransactionsByBlocksStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "celo",
|
||||
"chainId": 14,
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chainId": 14
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -236,18 +199,6 @@ data:
|
|||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x05ca6037ec51f8b712ed2e6fa72219feae74e153",
|
||||
"0xaCD8190F647a31E56A656748bC30F69259f245Db",
|
||||
"0x306B68267Deb7c5DfCDa3619E22E9Ca39C374f84",
|
||||
"0x9563a59C15842a6f322B10f69d1dD88b41f2E97B"
|
||||
],
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -263,14 +214,16 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": [
|
||||
"0x22427d90b7da3fa4642f7025a854c7254e4e45bf"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "scroll",
|
||||
"chainId": 34,
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chainId": 34
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -279,15 +232,6 @@ data:
|
|||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x22427d90b7da3fa4642f7025a854c7254e4e45bf"
|
||||
],
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -303,14 +247,16 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": [
|
||||
"0x75Bfa155a9D7A3714b0861c8a8aF0C4633c45b5D"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "mantle",
|
||||
"chainId": 35,
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chainId": 35
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -319,15 +265,6 @@ data:
|
|||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x75Bfa155a9D7A3714b0861c8a8aF0C4633c45b5D"
|
||||
],
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -336,45 +273,6 @@ data:
|
|||
]
|
||||
mainnet-jobs.json: |-
|
||||
[
|
||||
{
|
||||
"id": "poll-redeemed-transactions-aptos",
|
||||
"chain": "aptos",
|
||||
"source": {
|
||||
"action": "PollAptos",
|
||||
"records": "GetAptosTransactions",
|
||||
"config": {
|
||||
"limitBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 3000,
|
||||
"addresses": [
|
||||
"0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f",
|
||||
"0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130"
|
||||
],
|
||||
"chain": "aptos",
|
||||
"chainId": 22,
|
||||
"filters": [
|
||||
{
|
||||
"address": "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f",
|
||||
"type": "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f::complete_transfer::submit_vaa_and_register_entry"
|
||||
},
|
||||
{
|
||||
"address": "0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130",
|
||||
"type": "0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130::complete_transfer::submit_vaa_and_register_entry"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleAptosTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "aptosRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-redeemed-transactions-fantom",
|
||||
"chain": "fantom",
|
||||
|
@ -384,21 +282,35 @@ data:
|
|||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x7c9fc5741288cdfdd83ceb07f3ea7e22618d79d2",
|
||||
"0x8b47f02e7e20174c76af910adc0ad8a4b0342f4c",
|
||||
"0xA9c7119aBDa80d4a4E0C06C8F4d8cF5893234535",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911",
|
||||
"0xcafd2f0a35a4459fa40c0517e17e6fa2939441ca"
|
||||
"interval": 15000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "NTT",
|
||||
"topics": ["0xf6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Standard Relayer",
|
||||
"topics": ["0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": ["0xA9c7119aBDa80d4a4E0C06C8F4d8cF5893234535"],
|
||||
"type": "NFT",
|
||||
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],
|
||||
"strategy": "GetTransactionsByBlocksStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "fantom",
|
||||
"chainId": 10,
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0x504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a91",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chainId": 10
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -408,20 +320,6 @@ data:
|
|||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x7c9fc5741288cdfdd83ceb07f3ea7e22618d79d2",
|
||||
"0x8b47f02e7e20174c76af910adc0ad8a4b0342f4c",
|
||||
"0xA9c7119aBDa80d4a4E0C06C8F4d8cF5893234535",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911",
|
||||
"0xcafd2f0a35a4459fa40c0517e17e6fa2939441ca"
|
||||
],
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0x504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a91",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -436,17 +334,23 @@ data:
|
|||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x5848c791e09901b40a9ef749f2a6735b418d7564",
|
||||
"0x04952D522Ff217f40B5Ef3cbF659EcA7b952a6c1"
|
||||
"interval": 15000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": ["0x04952D522Ff217f40B5Ef3cbF659EcA7b952a6c1"],
|
||||
"type": "NFT",
|
||||
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],
|
||||
"strategy": "GetTransactionsByBlocksStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "oasis",
|
||||
"chainId": 7,
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chainId": 7
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -456,16 +360,6 @@ data:
|
|||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x5848c791e09901b40a9ef749f2a6735b418d7564",
|
||||
"0x04952D522Ff217f40B5Ef3cbF659EcA7b952a6c1"
|
||||
],
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -480,19 +374,29 @@ data:
|
|||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0xb1731c586ca89a23809861c6103f0b96b3f57d92",
|
||||
"0x453cfbe096c0f8d763e8c5f24b441097d577bde2",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911",
|
||||
"0xcafd2f0a35a4459fa40c0517e17e6fa2939441ca"
|
||||
"interval": 15000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Standard Relayer",
|
||||
"topics": ["0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": ["0x453cfbe096c0f8d763e8c5f24b441097d577bde2"],
|
||||
"type": "NFT",
|
||||
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],
|
||||
"strategy": "GetTransactionsByBlocksStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "moonbeam",
|
||||
"chainId": 16,
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chainId": 16
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -502,18 +406,6 @@ data:
|
|||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0xb1731c586ca89a23809861c6103f0b96b3f57d92",
|
||||
"0x453cfbe096c0f8d763e8c5f24b441097d577bde2",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911",
|
||||
"0xcafd2f0a35a4459fa40c0517e17e6fa2939441ca"
|
||||
],
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -526,21 +418,31 @@ data:
|
|||
"action": "PollEvm",
|
||||
"records": "GetEvmTransactions",
|
||||
"config": {
|
||||
"blockBatchSize": 10,
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x796dff6d74f3e27060b71255fe517bfb23c93eed",
|
||||
"0xA6A377d75ca5c9052c9a77ED1e865Cc25Bd97bf3",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911",
|
||||
"0xcafd2f0a35a4459fa40c0517e17e6fa2939441ca"
|
||||
"interval": 15000,
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Standard Relayer",
|
||||
"topics": ["0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": ["0xA6A377d75ca5c9052c9a77ED1e865Cc25Bd97bf3"],
|
||||
"type": "NFT",
|
||||
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],
|
||||
"strategy": "GetTransactionsByBlocksStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "celo",
|
||||
"chainId": 14,
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chainId": 14
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -550,18 +452,6 @@ data:
|
|||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x796dff6d74f3e27060b71255fe517bfb23c93eed",
|
||||
"0xA6A377d75ca5c9052c9a77ED1e865Cc25Bd97bf3",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911",
|
||||
"0xcafd2f0a35a4459fa40c0517e17e6fa2939441ca"
|
||||
],
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -577,17 +467,22 @@ data:
|
|||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": [
|
||||
"0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911"
|
||||
"filters": [
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Portal Token Bridge (Connect, Portico, Omniswap, tBTC, etc)",
|
||||
"topics": ["0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
},
|
||||
{
|
||||
"addresses": [],
|
||||
"type": "Standard Relayer",
|
||||
"topics": ["0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"],
|
||||
"strategy": "GetTransactionsByLogFiltersStrategy"
|
||||
}
|
||||
],
|
||||
"chain": "scroll",
|
||||
"chainId": 34,
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
|
||||
"0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"
|
||||
]
|
||||
"chainId": 34
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
|
@ -597,17 +492,6 @@ data:
|
|||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911"
|
||||
],
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
|
||||
"0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -656,10 +540,6 @@ spec:
|
|||
- name: BASE_RPCS
|
||||
value: '{{ .BASE_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ARBITRUM_RPCS }}
|
||||
- name: ARBITRUM_RPCS
|
||||
value: '{{ .ARBITRUM_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .POLYGON_RPCS }}
|
||||
- name: POLYGON_RPCS
|
||||
value: '{{ .POLYGON_RPCS }}'
|
||||
|
@ -676,10 +556,6 @@ spec:
|
|||
- name: BASE_SEPOLIA_RPCS
|
||||
value: '{{ .BASE_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ARBITRUM_SEPOLIA_RPCS }}
|
||||
- name: ARBITRUM_SEPOLIA_RPCS
|
||||
value: '{{ .ARBITRUM_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .ETHEREUM_HOLESKY_RPCS }}
|
||||
- name: ETHEREUM_HOLESKY_RPCS
|
||||
value: '{{ .ETHEREUM_HOLESKY_RPCS }}'
|
||||
|
@ -688,10 +564,6 @@ spec:
|
|||
- name: CELO_RPCS
|
||||
value: '{{ .CELO_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .APTOS_RPCS }}
|
||||
- name: APTOS_RPCS
|
||||
value: '{{ .APTOS_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .SCROLL_RPCS }}
|
||||
- name: SCROLL_RPCS
|
||||
value: '{{ .SCROLL_RPCS }}'
|
||||
|
|
|
@ -37,137 +37,101 @@ data:
|
|||
testnet-jobs.json: |-
|
||||
[
|
||||
{
|
||||
"id": "poll-redeemed-transactions-optimism-sepolia",
|
||||
"chain": "optimism-sepolia",
|
||||
"id": "poll-redeemed-transactions-aptos",
|
||||
"chain": "aptos",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"records": "GetEvmTransactions",
|
||||
"action": "PollAptos",
|
||||
"records": "GetAptosTransactions",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"limitBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x2703483B1a5a7c577e8680de9Df8Be03c6f30e3c",
|
||||
"0x99737Ec4B815d816c49A385943baf0380e75c0Ac",
|
||||
"0x41265eb2863bf0238081f6aeefef73549c82c3dd",
|
||||
"0x93bad53ddfb6132b0ac8e37f6029163e63372cee",
|
||||
"0x27812285fbe85BA1DF242929B906B31EE3dd1b9f",
|
||||
"0x5FB63D9e076a314023F2D1aB5dBFd7045C281EbA"
|
||||
"0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f",
|
||||
"0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130"
|
||||
],
|
||||
"chain": "optimism-sepolia",
|
||||
"chainId": 10005,
|
||||
"topics": [
|
||||
"0x1b2a7ff080b8cb6ff436ce0372e399692bbfb6d4ae5766fd8d58a7b8cc6142e6",
|
||||
"0xf02867db6908ee5f81fd178573ae9385837f0a0a72553f8c08306759a7e0f00e",
|
||||
"0xf6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0",
|
||||
"0x504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a91",
|
||||
"0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"
|
||||
]
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"metricName": "process_vaa_event",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x2703483B1a5a7c577e8680de9Df8Be03c6f30e3c",
|
||||
"0x99737Ec4B815d816c49A385943baf0380e75c0Ac",
|
||||
"0x41265eb2863bf0238081f6aeefef73549c82c3dd",
|
||||
"0x93bad53ddfb6132b0ac8e37f6029163e63372cee",
|
||||
"0x27812285fbe85BA1DF242929B906B31EE3dd1b9f",
|
||||
"0x5FB63D9e076a314023F2D1aB5dBFd7045C281EbA"
|
||||
],
|
||||
"topics": [
|
||||
"0x1b2a7ff080b8cb6ff436ce0372e399692bbfb6d4ae5766fd8d58a7b8cc6142e6",
|
||||
"0xf02867db6908ee5f81fd178573ae9385837f0a0a72553f8c08306759a7e0f00e",
|
||||
"0xf6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0",
|
||||
"0x504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a91",
|
||||
"0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-redeemed-transactions-blast",
|
||||
"chain": "blast",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"records": "GetEvmTransactions",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x430855B4D43b8AEB9D2B9869B74d58dda79C0dB2"
|
||||
],
|
||||
"chain": "blast",
|
||||
"chainId": 36,
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x430855B4D43b8AEB9D2B9869B74d58dda79C0dB2"
|
||||
],
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chain": "aptos",
|
||||
"chainId": 22,
|
||||
"filters": [
|
||||
{
|
||||
"address": "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f",
|
||||
"type": "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f::complete_transfer::submit_vaa_and_register_entry"
|
||||
},
|
||||
{
|
||||
"address": "0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130",
|
||||
"type": "0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130::complete_transfer::submit_vaa_and_register_entry"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleAptosTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "aptosRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-redeemed-transactions-xlayer",
|
||||
"chain": "xlayer",
|
||||
"id": "poll-transfer-redeems-sui",
|
||||
"chain": "sui",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"records": "GetEvmTransactions",
|
||||
"action": "PollSuiTransactions",
|
||||
"config": {
|
||||
"blockBatchSize": 1,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0xdA91a06299BBF302091B053c6B9EF86Eff0f930D"
|
||||
],
|
||||
"chain": "xlayer",
|
||||
"chainId": 37,
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"chain": "sui",
|
||||
"filter": {
|
||||
"MoveFunction": {
|
||||
"package": "0x562760fc51d90d4ae1835bac3e91e0e6987d3497b06f066941d3e51f6e8d76d0",
|
||||
"module": "complete_transfer",
|
||||
"function": "authorize_transfer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmTransactions",
|
||||
"action": "HandleSuiTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"mapper": "suiRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0xdA91a06299BBF302091B053c6B9EF86Eff0f930D"
|
||||
],
|
||||
"topics": [
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"eventTypes": [
|
||||
"0x562760fc51d90d4ae1835bac3e91e0e6987d3497b06f066941d3e51f6e8d76d0::complete_transfer::TransferRedeemed"
|
||||
],
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-transfer-with-payload-redeems-sui",
|
||||
"chain": "sui",
|
||||
"source": {
|
||||
"action": "PollSuiTransactions",
|
||||
"config": {
|
||||
"interval": 5000,
|
||||
"chain": "sui",
|
||||
"filter": {
|
||||
"MoveFunction": {
|
||||
"package": "0x562760fc51d90d4ae1835bac3e91e0e6987d3497b06f066941d3e51f6e8d76d0",
|
||||
"module": "complete_transfer_with_payload",
|
||||
"function": "authorize_transfer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleSuiTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "suiRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"eventTypes": [
|
||||
"0x562760fc51d90d4ae1835bac3e91e0e6987d3497b06f066941d3e51f6e8d76d0::complete_transfer::TransferRedeemed"
|
||||
],
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -207,154 +171,101 @@ data:
|
|||
mainnet-jobs.json: |-
|
||||
[
|
||||
{
|
||||
"id": "poll-redeemed-transactions-optimism",
|
||||
"chain": "optimism",
|
||||
"id": "poll-redeemed-transactions-aptos",
|
||||
"chain": "aptos",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"records": "GetEvmTransactions",
|
||||
"action": "PollAptos",
|
||||
"records": "GetAptosTransactions",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"limitBatchSize": 100,
|
||||
"commitment": "finalized",
|
||||
"interval": 3000,
|
||||
"addresses": [
|
||||
"0x4cb69fae7e7af841e44e1a1c30af640739378bb2",
|
||||
"0x1d68124e65fafc907325e3edbf8c4d84499daa8b",
|
||||
"0x9ae506cddd27dee1275fd1fe6627e5dc65257061",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911",
|
||||
"0xfE8cD454b4A1CA468B57D79c0cc77Ef5B6f64585",
|
||||
"0x9bD8b7b527CA4e6738cBDaBdF51C22466756073d",
|
||||
"0x1293a54e160D1cd7075487898d65266081A15458",
|
||||
"0x956b0Aa39B37B23A0Ff13A5c9B22aB4772616737",
|
||||
"0xBF5f3f65102aE745A48BD521d10BaB5BF02A9eF4"
|
||||
"0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f",
|
||||
"0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130"
|
||||
],
|
||||
"chain": "optimism",
|
||||
"chainId": 24,
|
||||
"topics": [
|
||||
"0x1b2a7ff080b8cb6ff436ce0372e399692bbfb6d4ae5766fd8d58a7b8cc6142e6",
|
||||
"0xf02867db6908ee5f81fd178573ae9385837f0a0a72553f8c08306759a7e0f00e",
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xc2addcb063016f6dc1647fc8cd7206c3436cc4293c4acffe4feac288459ca7fc",
|
||||
"0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
"chain": "aptos",
|
||||
"chainId": 22,
|
||||
"filters": [
|
||||
{
|
||||
"address": "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f",
|
||||
"type": "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f::complete_transfer::submit_vaa_and_register_entry"
|
||||
},
|
||||
{
|
||||
"address": "0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130",
|
||||
"type": "0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130::complete_transfer::submit_vaa_and_register_entry"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmTransactions",
|
||||
"action": "HandleAptosTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"mapper": "aptosRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x4cb69fae7e7af841e44e1a1c30af640739378bb2",
|
||||
"0x1d68124e65fafc907325e3edbf8c4d84499daa8b",
|
||||
"0x9ae506cddd27dee1275fd1fe6627e5dc65257061",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911",
|
||||
"0xfE8cD454b4A1CA468B57D79c0cc77Ef5B6f64585",
|
||||
"0x9bD8b7b527CA4e6738cBDaBdF51C22466756073d",
|
||||
"0x1293a54e160D1cd7075487898d65266081A15458",
|
||||
"0x956b0Aa39B37B23A0Ff13A5c9B22aB4772616737",
|
||||
"0xBF5f3f65102aE745A48BD521d10BaB5BF02A9eF4"
|
||||
],
|
||||
"topics": [
|
||||
"0x1b2a7ff080b8cb6ff436ce0372e399692bbfb6d4ae5766fd8d58a7b8cc6142e6",
|
||||
"0xf02867db6908ee5f81fd178573ae9385837f0a0a72553f8c08306759a7e0f00e",
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xc2addcb063016f6dc1647fc8cd7206c3436cc4293c4acffe4feac288459ca7fc",
|
||||
"0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-redeemed-transactions-blast",
|
||||
"chain": "blast",
|
||||
"id": "poll-transfer-redeems-sui",
|
||||
"chain": "sui",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"records": "GetEvmTransactions",
|
||||
"action": "PollSuiTransactions",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 5000,
|
||||
"addresses": [
|
||||
"0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911"
|
||||
],
|
||||
"chain": "blast",
|
||||
"chainId": 36,
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
|
||||
"0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"
|
||||
]
|
||||
"chain": "sui",
|
||||
"filter": {
|
||||
"MoveFunction": {
|
||||
"package": "0x26efee2b51c911237888e5dc6702868abca3c7ac12c53f76ef8eba0697695e3d",
|
||||
"module": "complete_transfer",
|
||||
"function": "authorize_transfer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmTransactions",
|
||||
"action": "HandleSuiTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"mapper": "suiRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d",
|
||||
"0x27428dd2d3dd32a4d7f7c497eaaa23130d894911"
|
||||
],
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
|
||||
"0xbccc00b713f54173962e7de6098f643d8ebf53d488d71f4b2a5171496d038f9e"
|
||||
]
|
||||
},
|
||||
"eventTypes": [
|
||||
"0x26efee2b51c911237888e5dc6702868abca3c7ac12c53f76ef8eba0697695e3d::complete_transfer::TransferRedeemed"
|
||||
],
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "poll-redeemed-transactions-xlayer",
|
||||
"chain": "xlayer",
|
||||
"id": "poll-transfer-with-payload-redeems-sui",
|
||||
"chain": "sui",
|
||||
"source": {
|
||||
"action": "PollEvm",
|
||||
"records": "GetEvmTransactions",
|
||||
"action": "PollSuiTransactions",
|
||||
"config": {
|
||||
"blockBatchSize": 100,
|
||||
"commitment": "latest",
|
||||
"interval": 15000,
|
||||
"addresses": [
|
||||
"0x5537857664B0f9eFe38C9f320F75fEf23234D904"
|
||||
],
|
||||
"chain": "xlayer",
|
||||
"chainId": 37,
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
"interval": 5000,
|
||||
"chain": "sui",
|
||||
"filter": {
|
||||
"MoveFunction": {
|
||||
"package": "0x26efee2b51c911237888e5dc6702868abca3c7ac12c53f76ef8eba0697695e3d",
|
||||
"module": "complete_transfer_with_payload",
|
||||
"function": "authorize_transfer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"handlers": [
|
||||
{
|
||||
"action": "HandleEvmTransactions",
|
||||
"action": "HandleSuiTransactions",
|
||||
"target": "sns",
|
||||
"mapper": "evmRedeemedTransactionFoundMapper",
|
||||
"mapper": "suiRedeemedTransactionFoundMapper",
|
||||
"config": {
|
||||
"abi": "",
|
||||
"filter": {
|
||||
"addresses": [
|
||||
"0x5537857664B0f9eFe38C9f320F75fEf23234D904"
|
||||
],
|
||||
"topics": [
|
||||
"0xcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c169",
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
||||
]
|
||||
},
|
||||
"eventTypes": [
|
||||
"0x26efee2b51c911237888e5dc6702868abca3c7ac12c53f76ef8eba0697695e3d::complete_transfer::TransferRedeemed"
|
||||
],
|
||||
"metricName": "process_vaa_event"
|
||||
}
|
||||
}
|
||||
|
@ -429,21 +340,13 @@ spec:
|
|||
value: {{ .SNS_REGION }}
|
||||
- name: JOBS_DIR
|
||||
value: /home/node/app/jobs
|
||||
{{ if .OPTIMISM_RPCS }}
|
||||
- name: OPTIMISM_RPCS
|
||||
value: '{{ .OPTIMISM_RPCS }}'
|
||||
{{ if .APTOS_RPCS }}
|
||||
- name: APTOS_RPCS
|
||||
value: '{{ .APTOS_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .OPTIMISM_SEPOLIA_RPCS }}
|
||||
- name: OPTIMISM_SEPOLIA_RPCS
|
||||
value: '{{ .OPTIMISM_SEPOLIA_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .BLAST_RPCS }}
|
||||
- name: BLAST_RPCS
|
||||
value: '{{ .BLAST_RPCS }}'
|
||||
{{ end }}
|
||||
{{ if .XLAYER_RPCS }}
|
||||
- name: XLAYER_RPCS
|
||||
value: '{{ .XLAYER_RPCS }}'
|
||||
{{ if .SUI_RPCS }}
|
||||
- name: SUI_RPCS
|
||||
value: '{{ .SUI_RPCS }}'
|
||||
{{ end }}
|
||||
image: {{ .IMAGE_NAME }}
|
||||
resources:
|
||||
|
|
Loading…
Reference in New Issue