tapimo 0.7.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -7
- package/dist/ApiKey.d.ts +3 -0
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +10 -0
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +7 -3
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +9 -2
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +20434 -19484
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +62 -4
- package/dist/App.js.map +1 -1
- package/dist/admin/App.d.ts +84 -74
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +14 -1
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +6 -2
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +2 -0
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +168 -168
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.js +67 -67
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +2 -0
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +3 -0
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/apps/data/App.d.ts +10305 -12785
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +4 -8
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +24 -24
- package/dist/apps/data/routes/addresses.d.ts +288 -288
- package/dist/apps/data/routes/balances.d.ts +6 -6
- package/dist/apps/data/routes/blocks.d.ts +39 -39
- package/dist/apps/data/routes/coingecko.d.ts +170 -170
- package/dist/apps/data/routes/earn.d.ts +436 -6
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +631 -4
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/exchanges.d.ts +10 -10
- package/dist/apps/data/routes/fee-amm.d.ts +2 -2
- package/dist/apps/data/routes/indexer.d.ts +6 -6
- package/dist/apps/data/routes/indexer.js +4 -1
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts +235 -235
- package/dist/apps/data/routes/rpc.d.ts +1 -1
- package/dist/apps/data/routes/rpc.js +4 -1
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +36 -36
- package/dist/apps/data/routes/tokens.d.ts +6 -6
- package/dist/apps/data/routes/transactions.d.ts +2 -2
- package/dist/apps/data/routes/transfers.d.ts +1 -1
- package/dist/apps/data/routes/valuation.d.ts +1 -1
- package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
- package/dist/apps/data/routes/webhooks.d.ts +9 -9
- package/dist/apps/data/routes/zones.d.ts +14 -14
- package/dist/apps/funding/Access.d.ts +16 -0
- package/dist/apps/funding/Access.d.ts.map +1 -0
- package/dist/apps/funding/Access.js +22 -0
- package/dist/apps/funding/Access.js.map +1 -0
- package/dist/apps/{data/routes/funding.d.ts → funding/App.d.ts} +1717 -3035
- package/dist/apps/funding/App.d.ts.map +1 -0
- package/dist/apps/funding/App.js +46 -0
- package/dist/apps/funding/App.js.map +1 -0
- package/dist/apps/funding/Inventory.d.ts +5 -0
- package/dist/apps/funding/Inventory.d.ts.map +1 -0
- package/dist/apps/funding/Inventory.js +25 -0
- package/dist/apps/funding/Inventory.js.map +1 -0
- package/dist/apps/funding/ProviderAttempts.d.ts +5 -0
- package/dist/apps/funding/ProviderAttempts.d.ts.map +1 -0
- package/dist/apps/funding/ProviderAttempts.js +24 -0
- package/dist/apps/funding/ProviderAttempts.js.map +1 -0
- package/dist/apps/funding/index.d.ts +2 -0
- package/dist/apps/funding/index.d.ts.map +1 -0
- package/dist/apps/funding/index.js +2 -0
- package/dist/apps/funding/index.js.map +1 -0
- package/dist/apps/funding/routes/chains.d.ts +169 -0
- package/dist/apps/funding/routes/chains.d.ts.map +1 -0
- package/dist/apps/funding/routes/chains.js +80 -0
- package/dist/apps/funding/routes/chains.js.map +1 -0
- package/dist/apps/funding/routes/deposit-addresses.d.ts +2388 -0
- package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -0
- package/dist/apps/funding/routes/deposit-addresses.js +860 -0
- package/dist/apps/funding/routes/deposit-addresses.js.map +1 -0
- package/dist/apps/funding/routes/providers.d.ts +91 -0
- package/dist/apps/funding/routes/providers.d.ts.map +1 -0
- package/dist/apps/funding/routes/providers.js +56 -0
- package/dist/apps/funding/routes/providers.js.map +1 -0
- package/dist/apps/funding/routes/quotes.d.ts +426 -0
- package/dist/apps/funding/routes/quotes.d.ts.map +1 -0
- package/dist/apps/funding/routes/quotes.js +188 -0
- package/dist/apps/funding/routes/quotes.js.map +1 -0
- package/dist/apps/funding/routes/transfers.d.ts +1999 -0
- package/dist/apps/funding/routes/transfers.d.ts.map +1 -0
- package/dist/apps/funding/routes/transfers.js +614 -0
- package/dist/apps/funding/routes/transfers.js.map +1 -0
- package/dist/apps/index.d.ts +1 -0
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +1 -0
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/management/App.d.ts +430 -165
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +298 -21
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +75 -1
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +6 -6
- package/dist/apps/management/routes/faucet.d.ts +35 -35
- package/dist/apps/management/routes/invitations.d.ts +48 -48
- package/dist/apps/management/routes/invite-links.d.ts +38 -38
- package/dist/apps/management/routes/members.d.ts +69 -69
- package/dist/apps/management/routes/orgs.d.ts +37 -37
- package/dist/apps/management/routes/projects.d.ts +25 -25
- package/dist/apps/management/routes/scopes.d.ts +1 -1
- package/dist/apps/management/routes/usage.d.ts +72 -72
- package/dist/apps/management/routes/verified-token-requests.d.ts +18 -18
- package/dist/apps/management/routes/webhooks.d.ts +128 -128
- package/dist/apps/mcp.d.ts +2 -3
- package/dist/apps/mcp.d.ts.map +1 -1
- package/dist/apps/mcp.js +16 -14
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/metadata.d.ts +4 -0
- package/dist/apps/metadata.d.ts.map +1 -1
- package/dist/apps/metadata.js +10 -0
- package/dist/apps/metadata.js.map +1 -1
- package/dist/apps/mpp/App.d.ts +2 -2
- package/dist/cloudflare.d.ts +50 -0
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +178 -0
- package/dist/cloudflare.js.map +1 -1
- package/dist/db/Db.d.ts +2 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +37 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +12 -0
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +20 -0
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/fundingDepositAddresses.d.ts +13 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -1
- package/dist/db/tables/fundingDepositAddresses.js +12 -0
- package/dist/db/tables/fundingDepositAddresses.js.map +1 -1
- package/dist/db/tables/fundingDepositRequestObservations.d.ts +45 -0
- package/dist/db/tables/fundingDepositRequestObservations.d.ts.map +1 -0
- package/dist/db/tables/fundingDepositRequestObservations.js +46 -0
- package/dist/db/tables/fundingDepositRequestObservations.js.map +1 -0
- package/dist/db/tables/fundingDeposits.d.ts +57 -1
- package/dist/db/tables/fundingDeposits.d.ts.map +1 -1
- package/dist/db/tables/fundingDeposits.js +82 -0
- package/dist/db/tables/fundingDeposits.js.map +1 -1
- package/dist/internal/Auth.d.ts +11 -11
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +41 -15
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cache.js +1 -1
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/EdgeCache.d.ts +2 -2
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +10 -4
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/IpAllowlist.d.ts +15 -0
- package/dist/internal/IpAllowlist.d.ts.map +1 -0
- package/dist/internal/IpAllowlist.js +27 -0
- package/dist/internal/IpAllowlist.js.map +1 -0
- package/dist/internal/OpenApi.d.ts +1 -1
- package/dist/internal/OpenApi.js +1 -1
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/Tidx.d.ts +6 -0
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +13 -3
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts +8 -0
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +12 -5
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/funding/Deposit.d.ts +42 -0
- package/dist/internal/funding/Deposit.d.ts.map +1 -1
- package/dist/internal/funding/Deposit.js +37 -5
- package/dist/internal/funding/Deposit.js.map +1 -1
- package/dist/internal/funding/Evidence.d.ts +1 -5
- package/dist/internal/funding/Evidence.d.ts.map +1 -1
- package/dist/internal/funding/Evidence.js +4 -3
- package/dist/internal/funding/Evidence.js.map +1 -1
- package/dist/internal/funding/Provider.d.ts +102 -0
- package/dist/internal/funding/Provider.d.ts.map +1 -1
- package/dist/internal/funding/Provider.js +5 -0
- package/dist/internal/funding/Provider.js.map +1 -1
- package/dist/internal/funding/Reconciliation.d.ts +16 -2
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
- package/dist/internal/funding/Reconciliation.js +257 -48
- package/dist/internal/funding/Reconciliation.js.map +1 -1
- package/dist/internal/funding/SourceObservation.d.ts +108 -0
- package/dist/internal/funding/SourceObservation.d.ts.map +1 -0
- package/dist/internal/funding/SourceObservation.js +143 -0
- package/dist/internal/funding/SourceObservation.js.map +1 -0
- package/dist/internal/funding/Subsidy.d.ts +2 -2
- package/dist/internal/funding/Subsidy.d.ts.map +1 -1
- package/dist/internal/funding/Subsidy.js +1 -1
- package/dist/internal/funding/Subsidy.js.map +1 -1
- package/dist/internal/funding/index.d.ts +1 -0
- package/dist/internal/funding/index.d.ts.map +1 -1
- package/dist/internal/funding/index.js +1 -0
- package/dist/internal/funding/index.js.map +1 -1
- package/dist/internal/funding/providers/relay.d.ts +43 -1
- package/dist/internal/funding/providers/relay.d.ts.map +1 -1
- package/dist/internal/funding/providers/relay.js +434 -27
- package/dist/internal/funding/providers/relay.js.map +1 -1
- package/package.json +3 -3
- package/src/ApiKey.test.ts +35 -0
- package/src/ApiKey.ts +27 -0
- package/src/ApiKeys.test.ts +29 -0
- package/src/ApiKeys.ts +11 -3
- package/src/App.test.ts +23 -5
- package/src/App.ts +76 -5
- package/src/Client.test-d.ts +171 -19
- package/src/admin/apps/api-keys.test.ts +25 -1
- package/src/admin/apps/api-keys.ts +6 -2
- package/src/admin/ui.generated.ts +67 -67
- package/src/analytics/Analytics.ts +4 -0
- package/src/apps/composition.test.ts +100 -2
- package/src/apps/data/App.test.ts +0 -12
- package/src/apps/data/App.ts +4 -8
- package/src/apps/data/routes/earn.test.ts +283 -0
- package/src/apps/data/routes/earn.ts +800 -3
- package/src/apps/data/routes/indexer.ts +2 -1
- package/src/apps/data/routes/rpc.ts +2 -0
- package/src/apps/data/routes/tokens.test.ts +6 -8
- package/src/apps/funding/Access.ts +26 -0
- package/src/apps/funding/App.test.ts +78 -0
- package/src/apps/funding/App.ts +63 -0
- package/src/apps/funding/Inventory.ts +30 -0
- package/src/apps/funding/ProviderAttempts.ts +26 -0
- package/src/apps/funding/index.ts +1 -0
- package/src/apps/funding/routes/chains.test.ts +78 -0
- package/src/apps/funding/routes/chains.ts +101 -0
- package/src/apps/funding/routes/deposit-addresses.test.ts +1628 -0
- package/src/apps/funding/routes/deposit-addresses.ts +1015 -0
- package/src/apps/funding/routes/providers.test.ts +165 -0
- package/src/apps/funding/routes/providers.ts +73 -0
- package/src/apps/funding/routes/quotes.test.ts +511 -0
- package/src/apps/funding/routes/quotes.ts +205 -0
- package/src/apps/funding/routes/transfers.test.ts +1255 -0
- package/src/apps/funding/routes/transfers.ts +704 -0
- package/src/apps/index.ts +1 -0
- package/src/apps/management/routes/api-keys.test.ts +98 -0
- package/src/apps/management/routes/api-keys.ts +96 -1
- package/src/apps/mcp.test.ts +17 -2
- package/src/apps/mcp.ts +18 -13
- package/src/apps/metadata.ts +12 -0
- package/src/apps/mpp/internal/Policy.test.ts +7 -1
- package/src/cloudflare.ts +279 -0
- package/src/db/Db.ts +62 -0
- package/src/db/Schema.ts +24 -0
- package/src/db/tables/fundingDepositAddresses.ts +28 -0
- package/src/db/tables/fundingDepositRequestObservations.test.ts +106 -0
- package/src/db/tables/fundingDepositRequestObservations.ts +99 -0
- package/src/db/tables/fundingDeposits.test.ts +138 -0
- package/src/db/tables/fundingDeposits.ts +145 -1
- package/src/internal/Auth.test.ts +177 -5
- package/src/internal/Auth.ts +48 -18
- package/src/internal/Cache.test.ts +37 -3
- package/src/internal/Cache.ts +1 -1
- package/src/internal/EdgeCache.test.ts +7 -7
- package/src/internal/EdgeCache.ts +13 -4
- package/src/internal/IpAllowlist.test.ts +52 -0
- package/src/internal/IpAllowlist.ts +39 -0
- package/src/internal/Log.test.ts +7 -1
- package/src/internal/OpenApi.ts +1 -1
- package/src/internal/Tidx.test.ts +28 -0
- package/src/internal/Tidx.ts +19 -3
- package/src/internal/Viem.test.ts +28 -0
- package/src/internal/Viem.ts +21 -5
- package/src/internal/funding/Deposit.ts +74 -5
- package/src/internal/funding/Evidence.test.ts +2 -2
- package/src/internal/funding/Evidence.ts +4 -9
- package/src/internal/funding/Provider.ts +115 -0
- package/src/internal/funding/Reconciliation.local.test.ts +7 -0
- package/src/internal/funding/Reconciliation.test.ts +1052 -35
- package/src/internal/funding/Reconciliation.ts +328 -56
- package/src/internal/funding/SourceObservation.test.ts +301 -0
- package/src/internal/funding/SourceObservation.ts +267 -0
- package/src/internal/funding/Subsidy.ts +2 -2
- package/src/internal/funding/index.test.ts +1 -0
- package/src/internal/funding/index.ts +1 -0
- package/src/internal/funding/providers/relay.test.ts +94 -4
- package/src/internal/funding/providers/relay.ts +528 -27
- package/dist/apps/data/routes/funding.d.ts.map +0 -1
- package/dist/apps/data/routes/funding.js +0 -1557
- package/dist/apps/data/routes/funding.js.map +0 -1
- package/src/apps/data/routes/funding.test.ts +0 -2994
- package/src/apps/data/routes/funding.ts +0 -1821
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type * as Db from '../../db/Db.js';
|
|
2
|
+
import * as FundingDeposits from '../../db/tables/fundingDeposits.js';
|
|
3
|
+
/** Active reusable address watched by one chain-and-token observer shard. */
|
|
4
|
+
export type Route = {
|
|
5
|
+
/** Provider-owned reusable address. */
|
|
6
|
+
address: string;
|
|
7
|
+
/** Funding deposit address id. */
|
|
8
|
+
id: string;
|
|
9
|
+
};
|
|
10
|
+
/** Verified source transfer discovered directly from an EVM log. */
|
|
11
|
+
export type Observation = {
|
|
12
|
+
/** Funding deposit address that received the transfer. */
|
|
13
|
+
addressId: string;
|
|
14
|
+
/** Source token quantity in base units. */
|
|
15
|
+
amount: string;
|
|
16
|
+
/** Confirmed source block containing the transfer. */
|
|
17
|
+
blockNumber: bigint;
|
|
18
|
+
/** Source chain CAIP-2 id. */
|
|
19
|
+
chainId: string;
|
|
20
|
+
/** Source-chain sender. */
|
|
21
|
+
sender: string;
|
|
22
|
+
/** Source token contract. */
|
|
23
|
+
tokenAddress: string;
|
|
24
|
+
/** Source transaction hash. */
|
|
25
|
+
transactionHash: string;
|
|
26
|
+
/** Transfer log position within the source transaction. */
|
|
27
|
+
transferIndex: number;
|
|
28
|
+
};
|
|
29
|
+
/** Scans confirmed EVM blocks for transfers into active reusable addresses. */
|
|
30
|
+
export declare function scan(options: scan.Options): Promise<scan.Result>;
|
|
31
|
+
export declare namespace scan {
|
|
32
|
+
/** EVM shard state and scan bounds. */
|
|
33
|
+
type Options = {
|
|
34
|
+
/** Initial confirmed-block backfill when no cursor exists. */
|
|
35
|
+
backfillBlocks?: bigint | undefined;
|
|
36
|
+
/** Source chain CAIP-2 id. */
|
|
37
|
+
chainId: string;
|
|
38
|
+
/** Required block confirmations. */
|
|
39
|
+
confirmations?: number | undefined;
|
|
40
|
+
/** Last confirmed block processed by the shard. */
|
|
41
|
+
cursor?: bigint | undefined;
|
|
42
|
+
/** Fetch implementation override. */
|
|
43
|
+
fetch?: typeof globalThis.fetch | undefined;
|
|
44
|
+
/** Maximum confirmed blocks processed in one invocation. */
|
|
45
|
+
maximumBlocks?: bigint | undefined;
|
|
46
|
+
/** Active reusable addresses in the shard. */
|
|
47
|
+
routes: readonly Route[];
|
|
48
|
+
/** Ordered source-chain RPC endpoints. */
|
|
49
|
+
rpcUrls: readonly string[];
|
|
50
|
+
/** Source token contract. */
|
|
51
|
+
tokenAddress: string;
|
|
52
|
+
};
|
|
53
|
+
/** Confirmed cursor and verified transfers produced by one scan. */
|
|
54
|
+
type Result = {
|
|
55
|
+
/** Last confirmed block processed by the shard. */
|
|
56
|
+
cursor: bigint;
|
|
57
|
+
/** Latest block satisfying the confirmation policy. */
|
|
58
|
+
head: bigint;
|
|
59
|
+
/** Verified transfers into active addresses. */
|
|
60
|
+
observations: readonly Observation[];
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/** Lists the active Relay addresses assigned to one source observer shard. */
|
|
64
|
+
export declare function listRoutes(db: Db.Db, options: listRoutes.Options): Promise<readonly Route[]>;
|
|
65
|
+
export declare namespace listRoutes {
|
|
66
|
+
/** Provider and source asset identifying one observer shard. */
|
|
67
|
+
type Options = {
|
|
68
|
+
/** Funding provider that owns the deposit addresses. */
|
|
69
|
+
providerId: string;
|
|
70
|
+
/** Source chain CAIP-2 id. */
|
|
71
|
+
sourceChainId: string;
|
|
72
|
+
/** Source token key. */
|
|
73
|
+
sourceTokenKey: string;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/** Persists one verified source transfer before provider indexing. */
|
|
77
|
+
export declare function observe(db: Db.Db, input: observe.Input): Promise<observe.Result>;
|
|
78
|
+
export declare namespace observe {
|
|
79
|
+
/** Verified source transfer and route identity. */
|
|
80
|
+
type Input = {
|
|
81
|
+
/** Funding deposit address id. */
|
|
82
|
+
addressId: string;
|
|
83
|
+
/** Source token quantity in base units. */
|
|
84
|
+
amount: string;
|
|
85
|
+
/** Source chain CAIP-2 id. */
|
|
86
|
+
chainId: string;
|
|
87
|
+
/** Detection time override. */
|
|
88
|
+
now?: Date | undefined;
|
|
89
|
+
/** Provider-owned reusable address that received the transfer. */
|
|
90
|
+
recipient: string;
|
|
91
|
+
/** Source-chain sender. */
|
|
92
|
+
sender: string;
|
|
93
|
+
/** Source token contract. */
|
|
94
|
+
tokenAddress: string;
|
|
95
|
+
/** Source transaction hash. */
|
|
96
|
+
transactionHash: string;
|
|
97
|
+
/** Transfer log position within the source transaction. */
|
|
98
|
+
transferIndex: number;
|
|
99
|
+
};
|
|
100
|
+
/** Persistence outcome for one chain-observed source transfer. */
|
|
101
|
+
type Result = {
|
|
102
|
+
record: FundingDeposits.Record;
|
|
103
|
+
type: 'created' | 'existing';
|
|
104
|
+
} | {
|
|
105
|
+
type: 'ignored';
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=SourceObservation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceObservation.d.ts","sourceRoot":"","sources":["../../../src/internal/funding/SourceObservation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { AbiEvent, Address, RpcTransport } from 'ox';
|
|
2
|
+
import { createClient, custom, fallback } from 'viem';
|
|
3
|
+
import { getBlockNumber, getLogs } from 'viem/actions';
|
|
4
|
+
import * as FundingDepositAddresses from '../../db/tables/fundingDepositAddresses.js';
|
|
5
|
+
import * as FundingDeposits from '../../db/tables/fundingDeposits.js';
|
|
6
|
+
import * as Value from '../Value.js';
|
|
7
|
+
import * as Deposit from './Deposit.js';
|
|
8
|
+
const addressBatchSize = 50;
|
|
9
|
+
const defaultBackfillBlocks = 16n;
|
|
10
|
+
const defaultConfirmations = 1;
|
|
11
|
+
const defaultMaximumBlocks = 16n;
|
|
12
|
+
const transferEvent = AbiEvent.from('event Transfer(address indexed from, address indexed to, uint256 value)');
|
|
13
|
+
/** Scans confirmed EVM blocks for transfers into active reusable addresses. */
|
|
14
|
+
export async function scan(options) {
|
|
15
|
+
if (options.routes.length === 0)
|
|
16
|
+
return { cursor: options.cursor ?? 0n, head: options.cursor ?? 0n, observations: [] };
|
|
17
|
+
if (!Address.validate(options.tokenAddress, { strict: false }))
|
|
18
|
+
throw new ConfigurationError('source token address');
|
|
19
|
+
if (options.rpcUrls.length === 0)
|
|
20
|
+
throw new ConfigurationError('source RPC URL');
|
|
21
|
+
const client = createClient({
|
|
22
|
+
transport: fallback(options.rpcUrls.map((url) => {
|
|
23
|
+
const transport = RpcTransport.fromHttp(url, { fetchFn: options.fetch ?? globalThis.fetch });
|
|
24
|
+
return custom(transport, { retryCount: 0 });
|
|
25
|
+
})),
|
|
26
|
+
});
|
|
27
|
+
const head = await getBlockNumber(client, { cacheTime: 0 });
|
|
28
|
+
const confirmations = BigInt(options.confirmations ?? defaultConfirmations);
|
|
29
|
+
const confirmed = head >= confirmations ? head - confirmations + 1n : 0n;
|
|
30
|
+
const backfillBlocks = options.backfillBlocks ?? defaultBackfillBlocks;
|
|
31
|
+
const fromBlock = (() => {
|
|
32
|
+
if (options.cursor !== undefined)
|
|
33
|
+
return options.cursor + 1n;
|
|
34
|
+
if (confirmed >= backfillBlocks)
|
|
35
|
+
return confirmed - backfillBlocks + 1n;
|
|
36
|
+
return 0n;
|
|
37
|
+
})();
|
|
38
|
+
if (fromBlock > confirmed)
|
|
39
|
+
return { cursor: options.cursor ?? confirmed, head: confirmed, observations: [] };
|
|
40
|
+
const maximumBlocks = options.maximumBlocks ?? defaultMaximumBlocks;
|
|
41
|
+
const toBlock = minimum(confirmed, fromBlock + maximumBlocks - 1n);
|
|
42
|
+
const routesByAddress = new Map(options.routes.map((route) => {
|
|
43
|
+
if (!Address.validate(route.address, { strict: false }))
|
|
44
|
+
throw new ConfigurationError('deposit address');
|
|
45
|
+
return [route.address.toLowerCase(), route];
|
|
46
|
+
}));
|
|
47
|
+
const addresses = [...routesByAddress.keys()];
|
|
48
|
+
const observations = [];
|
|
49
|
+
for (let index = 0; index < addresses.length; index += addressBatchSize) {
|
|
50
|
+
const batch = addresses.slice(index, index + addressBatchSize);
|
|
51
|
+
const logs = await getLogs(client, {
|
|
52
|
+
address: options.tokenAddress,
|
|
53
|
+
args: { to: batch },
|
|
54
|
+
event: transferEvent,
|
|
55
|
+
fromBlock,
|
|
56
|
+
strict: true,
|
|
57
|
+
toBlock,
|
|
58
|
+
});
|
|
59
|
+
for (const log of logs) {
|
|
60
|
+
if (log.blockNumber === null || log.logIndex === null || !log.transactionHash)
|
|
61
|
+
continue;
|
|
62
|
+
const event = (() => {
|
|
63
|
+
try {
|
|
64
|
+
return AbiEvent.decode(transferEvent, { data: log.data, topics: log.topics });
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
})();
|
|
70
|
+
const route = event ? routesByAddress.get(event.to.toLowerCase()) : undefined;
|
|
71
|
+
if (!event || !route)
|
|
72
|
+
continue;
|
|
73
|
+
observations.push({
|
|
74
|
+
addressId: route.id,
|
|
75
|
+
amount: event.value.toString(),
|
|
76
|
+
blockNumber: log.blockNumber,
|
|
77
|
+
chainId: options.chainId,
|
|
78
|
+
sender: event.from.toLowerCase(),
|
|
79
|
+
tokenAddress: options.tokenAddress.toLowerCase(),
|
|
80
|
+
transactionHash: log.transactionHash,
|
|
81
|
+
transferIndex: log.logIndex,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
observations.sort((left, right) => Number(left.blockNumber - right.blockNumber) || left.transferIndex - right.transferIndex);
|
|
86
|
+
return { cursor: toBlock, head: confirmed, observations };
|
|
87
|
+
}
|
|
88
|
+
/** Lists the active Relay addresses assigned to one source observer shard. */
|
|
89
|
+
export async function listRoutes(db, options) {
|
|
90
|
+
const records = await FundingDepositAddresses.listActiveSources(db, options);
|
|
91
|
+
return records.map((record) => ({ address: record.address, id: record.id }));
|
|
92
|
+
}
|
|
93
|
+
/** Persists one verified source transfer before provider indexing. */
|
|
94
|
+
export async function observe(db, input) {
|
|
95
|
+
const address = await FundingDepositAddresses.get(db, input.addressId);
|
|
96
|
+
if (!address ||
|
|
97
|
+
address.providerId !== 'relay' ||
|
|
98
|
+
address.status !== 'active' ||
|
|
99
|
+
address.snapshot.sourceChain.id !== input.chainId ||
|
|
100
|
+
!Address.isEqual(address.snapshot.sourceToken.address, input.tokenAddress) ||
|
|
101
|
+
!Address.isEqual(address.address, input.recipient))
|
|
102
|
+
return { type: 'ignored' };
|
|
103
|
+
return FundingDeposits.withSourceTransaction(db, {
|
|
104
|
+
depositAddressId: address.id,
|
|
105
|
+
fn: async (tx) => {
|
|
106
|
+
const existing = await FundingDeposits.listBySourceTransaction(tx, {
|
|
107
|
+
depositAddressId: address.id,
|
|
108
|
+
sourceTransactionHash: input.transactionHash,
|
|
109
|
+
});
|
|
110
|
+
const record = existing.find((candidate) => candidate.sourceTransferIndex === input.transferIndex) ??
|
|
111
|
+
existing.find((candidate) => candidate.sourceTransferIndex === null);
|
|
112
|
+
if (record)
|
|
113
|
+
return { record, type: 'existing' };
|
|
114
|
+
return Deposit.createFromSource(tx, {
|
|
115
|
+
now: input.now,
|
|
116
|
+
snapshot: {
|
|
117
|
+
...address.snapshot,
|
|
118
|
+
depositAddressId: address.id,
|
|
119
|
+
sender: input.sender,
|
|
120
|
+
sourceAmount: Value.tokenAmount({
|
|
121
|
+
baseUnits: input.amount,
|
|
122
|
+
currency: address.snapshot.sourceToken.currency,
|
|
123
|
+
decimals: address.snapshot.sourceToken.decimals,
|
|
124
|
+
}),
|
|
125
|
+
sourceTransactionHashes: [input.transactionHash],
|
|
126
|
+
},
|
|
127
|
+
sourceTransactionHash: input.transactionHash,
|
|
128
|
+
sourceTransferIndex: input.transferIndex,
|
|
129
|
+
});
|
|
130
|
+
},
|
|
131
|
+
sourceTransactionHash: input.transactionHash,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
function minimum(left, right) {
|
|
135
|
+
return left < right ? left : right;
|
|
136
|
+
}
|
|
137
|
+
class ConfigurationError extends Error {
|
|
138
|
+
name = 'FundingSourceObservation.ConfigurationError';
|
|
139
|
+
constructor(field) {
|
|
140
|
+
super(`Invalid ${field} configured for funding source observation.`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=SourceObservation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceObservation.js","sourceRoot":"","sources":["../../../src/internal/funding/SourceObservation.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,12 +85,12 @@ export declare namespace Settler {
|
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
/** Creates a subsidy settler backed by
|
|
88
|
+
/** Creates a subsidy settler backed by a Tempo account that holds pathUSD. */
|
|
89
89
|
export declare function create(options: create.Options): Settler;
|
|
90
90
|
export declare namespace create {
|
|
91
91
|
/** Dependencies and policy for one subsidy settler. */
|
|
92
92
|
type Options = {
|
|
93
|
-
/**
|
|
93
|
+
/** Tempo account that signs subsidies and holds pathUSD. */
|
|
94
94
|
account: LocalAccount;
|
|
95
95
|
/** Trusted Tempo RPC client resolver. */
|
|
96
96
|
getClient: Viem.GetClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subsidy.d.ts","sourceRoot":"","sources":["../../../src/internal/funding/Subsidy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,GAAG,EAAS,MAAM,IAAI,CAAA;AAC9D,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,YAAY,EAElB,MAAM,MAAM,CAAA;AAUb,OAAO,KAAK,KAAK,IAAI,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,KAAK,QAAQ,MAAM,eAAe,CAAA;AAK9C,0EAA0E;AAC1E,MAAM,MAAM,MAAM,GAAG;IACnB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAc3E;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,kEAAkE;IAClE,KAAK,OAAO,GAAG;QACb,mCAAmC;QACnC,MAAM,EAAE,MAAM,CAAA;QACd,kDAAkD;QAClD,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAA;QACnC,2CAA2C;QAC3C,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAA;KAC/B,CAAA;CACF;AAED,wEAAwE;AACxE,MAAM,MAAM,OAAO,GAAG;IACpB,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,8DAA8D;IAC9D,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAA;IACd,+DAA+D;IAC/D,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACpF,oEAAoE;IACpE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;CAClF,CAAA;AAED,mDAAmD;AACnD,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,iEAAiE;IACjE,UAAU,SAAS,CAAC;QAClB,uDAAuD;QACvD,KAAK,UAAU,GAAG;YAChB,iCAAiC;YACjC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA;YACb,sCAAsC;YACtC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAA;SACrB,CAAA;KACF;IAED,uDAAuD;IACvD,UAAU,OAAO,CAAC;QAChB,+DAA+D;QAC/D,KAAK,UAAU,GAAG;YAChB,+CAA+C;YAC/C,MAAM,EAAE,MAAM,CAAA;YACd,4DAA4D;YAC5D,SAAS,EAAE,MAAM,CAAA;YACjB,+CAA+C;YAC/C,SAAS,EAAE,OAAO,CAAA;YAClB,mDAAmD;YACnD,KAAK,EAAE,OAAO,CAAA;SACf,CAAA;QAED,2DAA2D;QAC3D,KAAK,UAAU,GAAG;YAChB,sCAAsC;YACtC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA;YACb,sCAAsC;YACtC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAA;SACrB,CAAA;KACF;IAED,uDAAuD;IACvD,UAAU,MAAM,CAAC;QACf,uDAAuD;QACvD,KAAK,UAAU,GAAG;YAChB,kCAAkC;YAClC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA;SACd,CAAA;QAED,4CAA4C;QAC5C,KAAK,UAAU,GACX;YACE,sCAAsC;YACtC,IAAI,EAAE,SAAS,CAAA;SAChB,GACD;YACE,gFAAgF;YAChF,YAAY,EAAE,MAAM,CAAA;YACpB,4CAA4C;YAC5C,IAAI,EAAE,UAAU,GAAG,SAAS,CAAA;SAC7B,CAAA;KACN;CACF;AAED,
|
|
1
|
+
{"version":3,"file":"Subsidy.d.ts","sourceRoot":"","sources":["../../../src/internal/funding/Subsidy.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export function supports(policy, options) {
|
|
|
20
20
|
})();
|
|
21
21
|
return maximum > 0n && BigInt(options.amount) <= maximum;
|
|
22
22
|
}
|
|
23
|
-
/** Creates a subsidy settler backed by
|
|
23
|
+
/** Creates a subsidy settler backed by a Tempo account that holds pathUSD. */
|
|
24
24
|
export function create(options) {
|
|
25
25
|
const client = options.getClient();
|
|
26
26
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subsidy.js","sourceRoot":"","sources":["../../../src/internal/funding/Subsidy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,IAAI,CAAA;AAC9D,OAAO,EAEL,SAAS,EACT,6BAA6B,EAE7B,+BAA+B,GAChC,MAAM,MAAM,CAAA;AACb,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,GAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAIlC,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,mBAAmB,GAAG,MAAO,CAAA;AAQnC,+EAA+E;AAC/E,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,OAAyB;IAChE,IACE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,KAAK,KAAK;QAC3C,OAAO,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,CAAC,gBAAgB,CAAC,QAAQ;QAElE,OAAO,KAAK,CAAA;IACd,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;QACpB,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IACJ,OAAO,OAAO,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAA;AAC1D,CAAC;AAuFD,
|
|
1
|
+
{"version":3,"file":"Subsidy.js","sourceRoot":"","sources":["../../../src/internal/funding/Subsidy.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export * as Evidence from './Evidence.js';
|
|
|
7
7
|
export * as Provider from './Provider.js';
|
|
8
8
|
export * as Reconciliation from './Reconciliation.js';
|
|
9
9
|
export * as Route from './Route.js';
|
|
10
|
+
export * as SourceObservation from './SourceObservation.js';
|
|
10
11
|
export * as Subsidy from './Subsidy.js';
|
|
11
12
|
export * as Token from './Token.js';
|
|
12
13
|
export * as Transfer from './Transfer.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/funding/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/funding/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA"}
|
|
@@ -7,6 +7,7 @@ export * as Evidence from './Evidence.js';
|
|
|
7
7
|
export * as Provider from './Provider.js';
|
|
8
8
|
export * as Reconciliation from './Reconciliation.js';
|
|
9
9
|
export * as Route from './Route.js';
|
|
10
|
+
export * as SourceObservation from './SourceObservation.js';
|
|
10
11
|
export * as Subsidy from './Subsidy.js';
|
|
11
12
|
export * as Token from './Token.js';
|
|
12
13
|
export * as Transfer from './Transfer.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/funding/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/funding/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA"}
|
|
@@ -1,6 +1,37 @@
|
|
|
1
1
|
import * as Db from '../../../db/Db.js';
|
|
2
|
+
import * as Viem from '../../Viem.js';
|
|
2
3
|
import * as FundingProvider from '../Provider.js';
|
|
3
4
|
import * as Subsidy from '../Subsidy.js';
|
|
5
|
+
/** Validates a Relay request-list response and reports payload drift with field-level details. */
|
|
6
|
+
export declare function parseDepositAddressRequests(value: unknown): {
|
|
7
|
+
continuation?: string | undefined;
|
|
8
|
+
requests: {
|
|
9
|
+
createdAt: string;
|
|
10
|
+
data?: {
|
|
11
|
+
outTxs?: {
|
|
12
|
+
txHash: string;
|
|
13
|
+
}[] | undefined;
|
|
14
|
+
} | undefined;
|
|
15
|
+
depositAddress?: {
|
|
16
|
+
depositTxHash?: string | null | undefined;
|
|
17
|
+
} | null | undefined;
|
|
18
|
+
id: string;
|
|
19
|
+
protocol?: {
|
|
20
|
+
deposit?: {
|
|
21
|
+
origin?: {
|
|
22
|
+
depositor?: string | undefined;
|
|
23
|
+
depository?: string | undefined;
|
|
24
|
+
} | undefined;
|
|
25
|
+
} | undefined;
|
|
26
|
+
orderId?: string | undefined;
|
|
27
|
+
solver?: {
|
|
28
|
+
address?: string | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
} | null | undefined;
|
|
31
|
+
status: string;
|
|
32
|
+
updatedAt: string;
|
|
33
|
+
}[];
|
|
34
|
+
};
|
|
4
35
|
/** Creates a Relay funding provider backed by `/quote/v2`. */
|
|
5
36
|
export declare function relay(options?: relay.Options): FundingProvider.Provider<'relay'>;
|
|
6
37
|
export declare namespace relay {
|
|
@@ -14,6 +45,8 @@ export declare namespace relay {
|
|
|
14
45
|
fetch?: FundingProvider.Fetch | undefined;
|
|
15
46
|
/** Clock override for deterministic tests. */
|
|
16
47
|
now?: (() => Date) | undefined;
|
|
48
|
+
/** EVM chain evidence used to accelerate authenticated provider delivery. */
|
|
49
|
+
observation?: Observation | undefined;
|
|
17
50
|
/** Optional recipient override; defaults to `userAddress`. */
|
|
18
51
|
recipientAddress?: string | undefined;
|
|
19
52
|
/** Deposit subsidy policy enabled for this integration. */
|
|
@@ -23,6 +56,15 @@ export declare namespace relay {
|
|
|
23
56
|
/** Tempo infrastructure used to receive authenticated Relay webhooks. */
|
|
24
57
|
webhook?: Webhook | undefined;
|
|
25
58
|
};
|
|
59
|
+
/** Chain evidence configuration for Relay delivery observation. */
|
|
60
|
+
type Observation = {
|
|
61
|
+
/** Authoritative funding database or per-request database factory. */
|
|
62
|
+
db: Db.Source;
|
|
63
|
+
/** Tempo chain that receives a shared RPC URL override. */
|
|
64
|
+
defaultChainId?: Viem.ChainId | undefined;
|
|
65
|
+
/** Shared or per-EVM-chain RPC URL environment value. */
|
|
66
|
+
rpcUrlEnv?: Viem.UrlResolver | undefined;
|
|
67
|
+
};
|
|
26
68
|
/** Authenticated Relay webhook integration attached to a provider instance. */
|
|
27
69
|
type Webhook = {
|
|
28
70
|
/** Authoritative funding database or per-request database factory. */
|
|
@@ -33,7 +75,7 @@ export declare namespace relay {
|
|
|
33
75
|
onResult?: ((result: WebhookResult) => void) | undefined;
|
|
34
76
|
};
|
|
35
77
|
/** Bounded operational result emitted while receiving a Relay webhook. */
|
|
36
|
-
type WebhookResult = 'authentication_failed' | 'enqueue_failed' | 'ignored' | 'payload_invalid' | 'queued' | 'unknown_address';
|
|
78
|
+
type WebhookResult = 'authentication_failed' | 'enqueue_failed' | 'ignored' | 'observation_failed' | 'payload_invalid' | 'queued' | 'unknown_address';
|
|
37
79
|
}
|
|
38
80
|
/** Relay webhook signature is missing, stale, or invalid. */
|
|
39
81
|
export declare class WebhookSignatureError extends FundingProvider.WebhookAuthenticationError {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../../src/internal/funding/providers/relay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../../src/internal/funding/providers/relay.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGvC,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AAIrC,OAAO,KAAK,eAAe,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAgOxC,kGAAkG;AAClG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzD;AAED,8DAA8D;AAC9D,wBAAgB,KAAK,CAAC,OAAO,GAAE,KAAK,CAAC,OAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CA4VpF;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,8BAA8B;IAC9B,KAAK,OAAO,GAAG;QACb,qDAAqD;QACrD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,qDAAqD;QACrD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,+CAA+C;QAC/C,KAAK,CAAC,EAAE,eAAe,CAAC,KAAK,GAAG,SAAS,CAAA;QACzC,8CAA8C;QAC9C,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;QAC9B,6EAA6E;QAC7E,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;QACrC,8DAA8D;QAC9D,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACrC,2DAA2D;QAC3D,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAA;QACtC,qDAAqD;QACrD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,yEAAyE;QACzE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC9B,CAAA;IAED,mEAAmE;IACnE,KAAK,WAAW,GAAG;QACjB,sEAAsE;QACtE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAA;QACb,2DAA2D;QAC3D,cAAc,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACzC,yDAAyD;QACzD,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;KACzC,CAAA;IAED,+EAA+E;IAC/E,KAAK,OAAO,GAAG;QACb,sEAAsE;QACtE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAA;QACb,gDAAgD;QAChD,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QAClF,gDAAgD;QAChD,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;KACzD,CAAA;IAED,0EAA0E;IAC1E,KAAK,aAAa,GACd,uBAAuB,GACvB,gBAAgB,GAChB,SAAS,GACT,oBAAoB,GACpB,iBAAiB,GACjB,QAAQ,GACR,iBAAiB,CAAA;CACtB;AAoZD,6DAA6D;AAC7D,qBAAa,qBAAsB,SAAQ,eAAe,CAAC,0BAA0B;IAC1E,IAAI,SAAiD;CAC/D;AAED,yEAAyE;AACzE,qBAAa,mBAAoB,SAAQ,eAAe,CAAC,mBAAmB;IACjE,IAAI,SAA+C;CAC7D"}
|