Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
Unique,
Index,
CreateDateColumn,
DeleteDateColumn,
} from "typeorm";

@Entity({ schema: "evm" })
@Unique("UK_fallback_hyper_evm_flow_completed_chain_block_tx_log", [
"chainId",
"blockNumber",
"transactionHash",
"logIndex",
])
@Index("IX_fallback_hyper_evm_flow_completed_chainId", ["chainId"])
@Index("IX_fallback_hyper_evm_flow_completed_quoteNonce", ["quoteNonce"])
@Index("IX_fallback_hyper_evm_flow_completed_blockNumber", ["blockNumber"])
@Index("IX_fallback_hyper_evm_flow_completed_blockTimeStamp", [
"blockTimestamp",
])
@Index("IX_fallback_hyper_evm_flow_completed_deletedAt", ["deletedAt"])
@Index("IX_fallback_hyper_evm_flow_completed_finalised", ["finalised"])
export class FallbackHyperEVMFlowCompleted {
@PrimaryGeneratedColumn()
id: number;

@Column({ type: "bigint" })
chainId: string;

@Column({ nullable: true })
quoteNonce: string;

@Column({ type: "varchar" })
finalRecipient: string;

@Column({ type: "varchar" })
finalToken: string;

@Column({ type: "numeric" })
evmAmountIn: string;

@Column({ type: "numeric" })
bridgingFeesIncurred: string;

@Column({ type: "numeric" })
evmAmountSponsored: string;

@Column()
blockNumber: number;

@Column()
transactionHash: string;

@Column()
transactionIndex: number;

@Column()
logIndex: number;

@Column("boolean")
finalised: boolean;

@Column()
blockTimestamp: Date;

@CreateDateColumn()
createdAt: Date;

@DeleteDateColumn({ nullable: true })
deletedAt?: Date;
}
1 change: 1 addition & 0 deletions packages/indexer-database/src/entities/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,4 @@ export * from "./evm/SponsoredOFTSend";
// HyperEVM
export * from "./evm/SimpleTransferFlowCompleted";
export * from "./evm/ArbitraryActionsExecuted";
export * from "./evm/FallbackHyperEVMFlowCompleted";
1 change: 1 addition & 0 deletions packages/indexer-database/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ export const createDataSource = (config: DatabaseConfig): DataSource => {
// HyperEVM
entities.SimpleTransferFlowCompleted,
entities.ArbitraryActionsExecuted,
entities.FallbackHyperEVMFlowCompleted,
],
migrationsTableName: "_migrations",
migrations: ["migrations/*.ts"],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import { MigrationInterface, QueryRunner } from "typeorm";

export class FallbackHyperEVMFlowCompleted1762818039419
implements MigrationInterface
{
name = "FallbackHyperEVMFlowCompleted1762818039419";

public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE TABLE "evm"."fallback_hyper_evm_flow_completed" (
"id" SERIAL NOT NULL,
"chainId" bigint NOT NULL,
"quoteNonce" character varying,
"finalRecipient" character varying NOT NULL,
"finalToken" character varying NOT NULL,
"evmAmountIn" numeric NOT NULL,
"bridgingFeesIncurred" numeric NOT NULL,
"evmAmountSponsored" numeric NOT NULL,
"blockNumber" integer NOT NULL,
"transactionHash" character varying NOT NULL,
"transactionIndex" integer NOT NULL,
"logIndex" integer NOT NULL,
"finalised" boolean NOT NULL,
"blockTimestamp" TIMESTAMP NOT NULL,
"createdAt" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
"deletedAt" TIMESTAMP,
CONSTRAINT "PK_fallback_hyper_evm_flow_completed" PRIMARY KEY ("id"),
CONSTRAINT "UK_fallback_hyper_evm_flow_completed_chain_block_tx_log" UNIQUE ("chainId", "blockNumber", "transactionHash", "logIndex")
)`,
);
await queryRunner.query(
`CREATE INDEX "IX_fallback_hyper_evm_flow_completed_chainId" ON "evm"."fallback_hyper_evm_flow_completed" ("chainId") `,
);
await queryRunner.query(
`CREATE INDEX "IX_fallback_hyper_evm_flow_completed_quoteNonce" ON "evm"."fallback_hyper_evm_flow_completed" ("quoteNonce") `,
);
await queryRunner.query(
`CREATE INDEX "IX_fallback_hyper_evm_flow_completed_blockNumber" ON "evm"."fallback_hyper_evm_flow_completed" ("blockNumber") `,
);
await queryRunner.query(
`CREATE INDEX "IX_fallback_hyper_evm_flow_completed_finalised" ON "evm"."fallback_hyper_evm_flow_completed" ("finalised") `,
);
await queryRunner.query(
`CREATE INDEX "IX_fallback_hyper_evm_flow_completed_blockTimestamp" ON "evm"."fallback_hyper_evm_flow_completed" ("blockTimestamp") `,
);
await queryRunner.query(
`CREATE INDEX "IX_fallback_hyper_evm_flow_completed_deletedAt" ON "evm"."fallback_hyper_evm_flow_completed" ("deletedAt") `,
);
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`DROP INDEX "evm"."IX_fallback_hyper_evm_flow_completed_deletedAt"`,
);
await queryRunner.query(
`DROP INDEX "evm"."IX_fallback_hyper_evm_flow_completed_blockTimestamp"`,
);
await queryRunner.query(
`DROP INDEX "evm"."IX_fallback_hyper_evm_flow_completed_blockNumber"`,
);
await queryRunner.query(
`DROP INDEX "evm"."IX_fallback_hyper_evm_flow_completed_quoteNonce"`,
);
await queryRunner.query(
`DROP INDEX "evm"."IX_fallback_hyper_evm_flow_completed_finalised"`,
);
await queryRunner.query(
`DROP INDEX "evm"."IX_fallback_hyper_evm_flow_completed_chainId"`,
);
await queryRunner.query(
`DROP TABLE "evm"."fallback_hyper_evm_flow_completed"`,
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export class BlockchainEventRepository {
* The unique keys to check for. It is recommended these keys to be indexed columns, so that the query is faster.
* @param comparisonKeys - The keys to compare for changes.
*/
protected async saveAndHandleFinalisationBatch<Entity extends ObjectLiteral>(
public async saveAndHandleFinalisationBatch<Entity extends ObjectLiteral>(
entity: EntityTarget<Entity>,
data: Partial<Entity>[],
uniqueKeys: (keyof Entity)[],
Expand Down
9 changes: 9 additions & 0 deletions packages/indexer/src/data-indexing/adapter/oft/model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,12 @@ export interface SponsoredOFTSendLog extends ethers.providers.Log {
sig: string;
};
}

export interface ComposeDeliveredEvent extends ethers.Event {
args: [] & {
from: string;
to: string;
guid: string;
index: number;
};
}
11 changes: 3 additions & 8 deletions packages/indexer/src/data-indexing/adapter/oft/service.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import { CHAIN_IDs } from "@across-protocol/constants";
import { createMapWithDefault } from "../../../utils/map";

// Taken from sample tx: https://layerzeroscan.com/tx/0x2bc0a3844389de155fac8a91cae44a01379ab9b13aa135cb69f368985b0ae85a
export const SPONSORED_OFT_SRC_PERIPHERY_ADDRESS: { [key: number]: string } =
createMapWithDefault(
{
[CHAIN_IDs.ARBITRUM]: "0x1235Ac1010FeeC8ae22744f323416cBBE37feDbE",
},
"0x1235Ac1010FeeC8ae22744f323416cBBE37feDbE",
);
export const SPONSORED_OFT_SRC_PERIPHERY_ADDRESS: { [key: number]: string } = {
[CHAIN_IDs.ARBITRUM]: "0x1235Ac1010FeeC8ae22744f323416cBBE37feDbE",
};

export type OftTokenKey = "usdt0";

Expand Down
20 changes: 10 additions & 10 deletions packages/indexer/src/data-indexing/model/hyperEvmExecutor.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { BigNumber, providers } from "ethers";
import { CHAIN_IDs } from "@across-protocol/constants";

export interface SimpleTransferFlowCompletedLog extends providers.Log {
args: {
Expand All @@ -22,12 +21,13 @@ export interface ArbitraryActionsExecutedLog extends providers.Log {
};
}

// Taken from https://testnet.purrsec.com/tx/0x1bf0dc091249341d0e91380b1c1d7dca683ab1b6773f7fb011b71a3d017a8fc9
export const HYPERCORE_FLOW_EXECUTOR_ADDRESS: { [key: number]: string } = {
[CHAIN_IDs.HYPEREVM_TESTNET]: "0x06C61D54958a0772Ee8aF41789466d39FfeaeB13",
};

// Taken from https://hyperevmscan.io/tx/0x869d1df5f1e7b6b91a824d8e2b455ac48d1f26f0b5f2823c96df391eb75dff34#eventlog#8
export const ARBITRARY_EVM_FLOW_EXECUTOR_ADDRESS: { [key: number]: string } = {
[CHAIN_IDs.HYPEREVM]: "0x7B164050BBC8e7ef3253e7db0D74b713Ba3F1c95",
};
export interface FallbackHyperEVMFlowCompletedLog extends providers.Log {
args: {
quoteNonce: string;
finalRecipient: string;
finalToken: string;
evmAmountIn: BigNumber;
bridgingFeesIncurred: BigNumber;
evmAmountSponsored: BigNumber;
};
}
Loading