tapimo 0.13.0 → 0.14.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.
Files changed (230) hide show
  1. package/dist/App.d.ts +6064 -4829
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/App.js +1 -0
  4. package/dist/App.js.map +1 -1
  5. package/dist/Webhooks.js +2 -2
  6. package/dist/Webhooks.js.map +1 -1
  7. package/dist/admin/App.d.ts +1008 -917
  8. package/dist/admin/App.d.ts.map +1 -1
  9. package/dist/admin/apps/earn-vaults.d.ts +48 -0
  10. package/dist/admin/apps/earn-vaults.d.ts.map +1 -1
  11. package/dist/admin/apps/earn-vaults.js +2 -1
  12. package/dist/admin/apps/earn-vaults.js.map +1 -1
  13. package/dist/admin/apps/organizations.d.ts +92 -3
  14. package/dist/admin/apps/organizations.d.ts.map +1 -1
  15. package/dist/admin/apps/organizations.js +69 -7
  16. package/dist/admin/apps/organizations.js.map +1 -1
  17. package/dist/admin/apps/verified-tokens.d.ts +74 -74
  18. package/dist/admin/ui.generated.d.ts +1 -1
  19. package/dist/admin/ui.generated.js +69 -69
  20. package/dist/admin/ui.generated.js.map +1 -1
  21. package/dist/apps/Zones.d.ts +12 -12
  22. package/dist/apps/Zones.js +3 -3
  23. package/dist/apps/data/App.d.ts +2909 -2523
  24. package/dist/apps/data/App.d.ts.map +1 -1
  25. package/dist/apps/data/App.js +11 -6
  26. package/dist/apps/data/App.js.map +1 -1
  27. package/dist/apps/data/routes/addresses.d.ts +22 -22
  28. package/dist/apps/data/routes/earn.d.ts +183 -7
  29. package/dist/apps/data/routes/earn.d.ts.map +1 -1
  30. package/dist/apps/data/routes/earn.js +434 -75
  31. package/dist/apps/data/routes/earn.js.map +1 -1
  32. package/dist/apps/data/routes/exchanges.d.ts +15 -0
  33. package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
  34. package/dist/apps/data/routes/exchanges.js +180 -114
  35. package/dist/apps/data/routes/exchanges.js.map +1 -1
  36. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
  37. package/dist/apps/data/routes/fee-amm.js +18 -19
  38. package/dist/apps/data/routes/fee-amm.js.map +1 -1
  39. package/dist/apps/data/routes/tokens.d.ts +93 -93
  40. package/dist/apps/data/routes/transfers.d.ts +12 -12
  41. package/dist/apps/data/routes/valuation.d.ts +30 -30
  42. package/dist/apps/data/routes/verified-tokens.d.ts +5 -5
  43. package/dist/apps/data/routes/webhooks.d.ts +805 -102
  44. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  45. package/dist/apps/data/routes/webhooks.js +47 -5
  46. package/dist/apps/data/routes/webhooks.js.map +1 -1
  47. package/dist/apps/funding/App.d.ts +456 -45
  48. package/dist/apps/funding/App.d.ts.map +1 -1
  49. package/dist/apps/funding/App.js +1 -1
  50. package/dist/apps/funding/App.js.map +1 -1
  51. package/dist/apps/funding/routes/deposit-addresses.d.ts +17 -17
  52. package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -1
  53. package/dist/apps/funding/routes/deposit-addresses.js +1 -1
  54. package/dist/apps/funding/routes/deposit-addresses.js.map +1 -1
  55. package/dist/apps/funding/routes/transfers.d.ts +654 -73
  56. package/dist/apps/funding/routes/transfers.d.ts.map +1 -1
  57. package/dist/apps/funding/routes/transfers.js +211 -5
  58. package/dist/apps/funding/routes/transfers.js.map +1 -1
  59. package/dist/apps/management/App.d.ts +831 -387
  60. package/dist/apps/management/App.d.ts.map +1 -1
  61. package/dist/apps/management/Billing.d.ts +1 -1
  62. package/dist/apps/management/Billing.d.ts.map +1 -1
  63. package/dist/apps/management/Billing.js +17 -1
  64. package/dist/apps/management/Billing.js.map +1 -1
  65. package/dist/apps/management/routes/api-keys.d.ts +76 -76
  66. package/dist/apps/management/routes/billing.d.ts +76 -76
  67. package/dist/apps/management/routes/faucet.d.ts +12 -12
  68. package/dist/apps/management/routes/invitations.d.ts +24 -24
  69. package/dist/apps/management/routes/invite-links.d.ts +46 -46
  70. package/dist/apps/management/routes/members.d.ts +46 -46
  71. package/dist/apps/management/routes/orgs.d.ts +20 -20
  72. package/dist/apps/management/routes/projects.d.ts +44 -44
  73. package/dist/apps/management/routes/usage.d.ts +32 -32
  74. package/dist/apps/management/routes/verified-token-requests.d.ts +16 -16
  75. package/dist/apps/management/routes/webhooks.d.ts +707 -57
  76. package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
  77. package/dist/apps/management/routes/webhooks.js +21 -21
  78. package/dist/apps/management/routes/webhooks.js.map +1 -1
  79. package/dist/apps/relay/App.d.ts.map +1 -1
  80. package/dist/apps/relay/App.js +115 -23
  81. package/dist/apps/relay/App.js.map +1 -1
  82. package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
  83. package/dist/apps/relay/Sponsorships.js +27 -1
  84. package/dist/apps/relay/Sponsorships.js.map +1 -1
  85. package/dist/db/Db.d.ts.map +1 -1
  86. package/dist/db/Db.js +22 -0
  87. package/dist/db/Db.js.map +1 -1
  88. package/dist/db/Schema.d.ts +8 -3
  89. package/dist/db/Schema.d.ts.map +1 -1
  90. package/dist/db/Schema.js +16 -1
  91. package/dist/db/Schema.js.map +1 -1
  92. package/dist/db/tables/fundingTransferTransactions.d.ts +38 -0
  93. package/dist/db/tables/fundingTransferTransactions.d.ts.map +1 -1
  94. package/dist/db/tables/fundingTransferTransactions.js +44 -3
  95. package/dist/db/tables/fundingTransferTransactions.js.map +1 -1
  96. package/dist/db/tables/fundingTransfers.d.ts +17 -0
  97. package/dist/db/tables/fundingTransfers.d.ts.map +1 -1
  98. package/dist/db/tables/fundingTransfers.js +21 -0
  99. package/dist/db/tables/fundingTransfers.js.map +1 -1
  100. package/dist/db/tables/organizations.d.ts +24 -0
  101. package/dist/db/tables/organizations.d.ts.map +1 -1
  102. package/dist/db/tables/organizations.js +27 -0
  103. package/dist/db/tables/organizations.js.map +1 -1
  104. package/dist/db/tables/projects.d.ts +25 -1
  105. package/dist/db/tables/projects.d.ts.map +1 -1
  106. package/dist/db/tables/projects.js +26 -0
  107. package/dist/db/tables/projects.js.map +1 -1
  108. package/dist/db/tables/sponsoredTransactions.d.ts +44 -0
  109. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  110. package/dist/db/tables/sponsoredTransactions.js +146 -13
  111. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  112. package/dist/db/tables/webhookSubscriptions.d.ts +10 -6
  113. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
  114. package/dist/db/tables/webhookSubscriptions.js +9 -6
  115. package/dist/db/tables/webhookSubscriptions.js.map +1 -1
  116. package/dist/internal/EarnVaults.js +5 -5
  117. package/dist/internal/EarnVaults.js.map +1 -1
  118. package/dist/internal/Log.d.ts +1 -1
  119. package/dist/internal/Log.d.ts.map +1 -1
  120. package/dist/internal/Log.js.map +1 -1
  121. package/dist/internal/Viem.d.ts +16 -1
  122. package/dist/internal/Viem.d.ts.map +1 -1
  123. package/dist/internal/Viem.js +12 -2
  124. package/dist/internal/Viem.js.map +1 -1
  125. package/dist/internal/funding/DepositWebhook.d.ts.map +1 -1
  126. package/dist/internal/funding/DepositWebhook.js +2 -1
  127. package/dist/internal/funding/DepositWebhook.js.map +1 -1
  128. package/dist/internal/funding/Evidence.d.ts.map +1 -1
  129. package/dist/internal/funding/Evidence.js +2 -10
  130. package/dist/internal/funding/Evidence.js.map +1 -1
  131. package/dist/internal/funding/Provider.d.ts +40 -0
  132. package/dist/internal/funding/Provider.d.ts.map +1 -1
  133. package/dist/internal/funding/Provider.js +5 -0
  134. package/dist/internal/funding/Provider.js.map +1 -1
  135. package/dist/internal/funding/SourceObservation.d.ts.map +1 -1
  136. package/dist/internal/funding/SourceObservation.js +5 -7
  137. package/dist/internal/funding/SourceObservation.js.map +1 -1
  138. package/dist/internal/funding/Transfer.d.ts +101 -6
  139. package/dist/internal/funding/Transfer.d.ts.map +1 -1
  140. package/dist/internal/funding/Transfer.js +162 -34
  141. package/dist/internal/funding/Transfer.js.map +1 -1
  142. package/dist/internal/funding/TransferReconciliation.d.ts +52 -0
  143. package/dist/internal/funding/TransferReconciliation.d.ts.map +1 -0
  144. package/dist/internal/funding/TransferReconciliation.js +192 -0
  145. package/dist/internal/funding/TransferReconciliation.js.map +1 -0
  146. package/dist/internal/funding/TransferWebhook.d.ts +21 -0
  147. package/dist/internal/funding/TransferWebhook.d.ts.map +1 -0
  148. package/dist/internal/funding/TransferWebhook.js +43 -0
  149. package/dist/internal/funding/TransferWebhook.js.map +1 -0
  150. package/dist/internal/funding/index.d.ts +1 -0
  151. package/dist/internal/funding/index.d.ts.map +1 -1
  152. package/dist/internal/funding/index.js +1 -0
  153. package/dist/internal/funding/index.js.map +1 -1
  154. package/dist/internal/funding/providers/relay.d.ts.map +1 -1
  155. package/dist/internal/funding/providers/relay.js +3 -12
  156. package/dist/internal/funding/providers/relay.js.map +1 -1
  157. package/dist/internal/funding/providers/stargate.d.ts +99 -0
  158. package/dist/internal/funding/providers/stargate.d.ts.map +1 -1
  159. package/dist/internal/funding/providers/stargate.js +337 -35
  160. package/dist/internal/funding/providers/stargate.js.map +1 -1
  161. package/dist/internal/webhookDestinations/slack.d.ts.map +1 -1
  162. package/dist/internal/webhookDestinations/slack.js +16 -0
  163. package/dist/internal/webhookDestinations/slack.js.map +1 -1
  164. package/package.json +1 -1
  165. package/src/App.ts +1 -0
  166. package/src/Client.test-d.ts +83 -2
  167. package/src/Webhooks.ts +2 -2
  168. package/src/admin/apps/earn-vaults.ts +2 -1
  169. package/src/admin/apps/organizations.test.ts +53 -1
  170. package/src/admin/apps/organizations.ts +90 -5
  171. package/src/admin/ui/src/lib/organizations.test.ts +112 -1
  172. package/src/admin/ui/src/lib/organizations.ts +55 -0
  173. package/src/admin/ui/src/routes/organizations_.$orgId.tsx +116 -0
  174. package/src/admin/ui.generated.ts +69 -69
  175. package/src/apps/Zones.test.ts +3 -3
  176. package/src/apps/Zones.ts +3 -3
  177. package/src/apps/composition.test.ts +1 -0
  178. package/src/apps/data/App.ts +15 -6
  179. package/src/apps/data/routes/earn.test.ts +369 -14
  180. package/src/apps/data/routes/earn.ts +548 -79
  181. package/src/apps/data/routes/exchanges.test.ts +740 -15
  182. package/src/apps/data/routes/exchanges.ts +954 -753
  183. package/src/apps/data/routes/fee-amm.ts +17 -18
  184. package/src/apps/data/routes/webhooks.test.ts +21 -5
  185. package/src/apps/data/routes/webhooks.ts +63 -8
  186. package/src/apps/funding/App.ts +12 -2
  187. package/src/apps/funding/routes/deposit-addresses.test.ts +4 -4
  188. package/src/apps/funding/routes/deposit-addresses.ts +2 -2
  189. package/src/apps/funding/routes/transfers.test.ts +510 -19
  190. package/src/apps/funding/routes/transfers.ts +271 -5
  191. package/src/apps/management/Billing.ts +18 -5
  192. package/src/apps/management/routes/webhooks.test.ts +3 -3
  193. package/src/apps/management/routes/webhooks.ts +24 -25
  194. package/src/apps/relay/App.test.ts +212 -1
  195. package/src/apps/relay/App.ts +158 -29
  196. package/src/apps/relay/Sponsorships.ts +24 -1
  197. package/src/db/Db.ts +35 -0
  198. package/src/db/Schema.ts +17 -2
  199. package/src/db/tables/fundingTransferTransactions.test.ts +43 -0
  200. package/src/db/tables/fundingTransferTransactions.ts +79 -3
  201. package/src/db/tables/fundingTransfers.test.ts +26 -0
  202. package/src/db/tables/fundingTransfers.ts +36 -0
  203. package/src/db/tables/organizations.test.ts +41 -0
  204. package/src/db/tables/organizations.ts +49 -0
  205. package/src/db/tables/projects.test.ts +55 -0
  206. package/src/db/tables/projects.ts +46 -1
  207. package/src/db/tables/sponsoredTransactions.test.ts +338 -0
  208. package/src/db/tables/sponsoredTransactions.ts +197 -13
  209. package/src/db/tables/webhookSubscriptions.ts +18 -11
  210. package/src/internal/EarnVaults.ts +5 -5
  211. package/src/internal/Log.test-d.ts +2 -0
  212. package/src/internal/Log.ts +2 -0
  213. package/src/internal/Viem.ts +39 -3
  214. package/src/internal/Webhooks.test.ts +45 -0
  215. package/src/internal/funding/DepositWebhook.ts +2 -1
  216. package/src/internal/funding/Evidence.ts +2 -13
  217. package/src/internal/funding/Provider.ts +43 -0
  218. package/src/internal/funding/SourceObservation.ts +5 -9
  219. package/src/internal/funding/Transfer.test.ts +155 -0
  220. package/src/internal/funding/Transfer.ts +254 -37
  221. package/src/internal/funding/TransferReconciliation.test.ts +147 -0
  222. package/src/internal/funding/TransferReconciliation.ts +264 -0
  223. package/src/internal/funding/TransferWebhook.test.ts +128 -0
  224. package/src/internal/funding/TransferWebhook.ts +67 -0
  225. package/src/internal/funding/index.test.ts +1 -0
  226. package/src/internal/funding/index.ts +1 -0
  227. package/src/internal/funding/providers/relay.ts +3 -15
  228. package/src/internal/funding/providers/stargate.test.ts +169 -4
  229. package/src/internal/funding/providers/stargate.ts +498 -51
  230. package/src/internal/webhookDestinations/slack.ts +15 -0
@@ -1,25 +1,49 @@
1
- import { AbiFunction, Address, Hex, RpcTransport } from 'ox';
2
- import { createClient, custom, fallback, publicActions } from 'viem';
1
+ import { AbiEvent, AbiFunction, Address, Hash, Hex } from 'ox';
2
+ import { BlockNotFoundError, parseEventLogs, publicActions, TransactionReceiptNotFoundError, } from 'viem';
3
3
  import * as z from 'zod/mini';
4
+ import * as Viem from '../../Viem.js';
4
5
  import * as Action from '../Action.js';
6
+ import * as Chain from '../Chain.js';
5
7
  import * as FundingProvider from '../Provider.js';
6
8
  const approve = AbiFunction.from('function approve(address spender, uint256 amount)');
7
9
  const defaultFetch = (input, init) => globalThis.fetch(input, init);
8
10
  const destinationChainId = 'eip155:4217';
9
11
  const destinationEid = 30_410;
12
+ const destinationPool = '0x8c76e2f6c5ceda9aa7772e7eff30280226c44392';
10
13
  const destinationToken = '0x20C000000000000000000000b9537d11c60E8b50';
14
+ const layerZeroEndpoint = '0x1a44076050125825900e736c501f859c50fE728c';
15
+ const oftReceived = AbiEvent.from('event OFTReceived(bytes32 indexed guid, uint32 srcEid, address indexed toAddress, uint256 amountReceivedLD)');
16
+ const oftSent = AbiEvent.from('event OFTSent(bytes32 indexed guid, uint32 dstEid, address indexed fromAddress, uint256 amountSentLD, uint256 amountReceivedLD)');
17
+ const packetSent = AbiEvent.from('event PacketSent(bytes encodedPayload, bytes options, address sendLibrary)');
11
18
  const quoteOft = AbiFunction.from('function quoteOFT((uint32 dstEid, bytes32 to, uint256 amountLD, uint256 minAmountLD, bytes extraOptions, bytes composeMsg, bytes oftCmd) sendParam) view returns ((uint256 minAmountLD, uint256 maxAmountLD) limit, (int256 feeAmountLD, string description)[] oftFeeDetails, (uint256 amountSentLD, uint256 amountReceivedLD) receipt)');
12
19
  const quoteSend = AbiFunction.from('function quoteSend((uint32 dstEid, bytes32 to, uint256 amountLD, uint256 minAmountLD, bytes extraOptions, bytes composeMsg, bytes oftCmd) sendParam, bool payInLzToken) view returns ((uint256 nativeFee, uint256 lzTokenFee) fee)');
13
20
  const sendToken = AbiFunction.from('function sendToken((uint32 dstEid, bytes32 to, uint256 amountLD, uint256 minAmountLD, bytes extraOptions, bytes composeMsg, bytes oftCmd) sendParam, (uint256 nativeFee, uint256 lzTokenFee) fee, address refundAddress) payable returns ((bytes32 guid, uint64 nonce, (uint256 nativeFee, uint256 lzTokenFee) fee) msgReceipt, (uint256 amountSentLD, uint256 amountReceivedLD) oftReceipt, (uint72 ticketId, bytes passengerBytes) ticket)');
14
21
  const quoteTtlMs = 60_000;
22
+ const maximumLogBlockRange = 100000n;
23
+ const sourceEids = {
24
+ 'eip155:1': 30_101,
25
+ 'eip155:8453': 30_184,
26
+ };
27
+ const transferEvent = AbiEvent.from('event Transfer(address indexed from, address indexed to, uint256 value)');
15
28
  const zeroAddress = '0x0000000000000000000000000000000000000000';
16
- const configuration = z
17
- .strictObject({
18
- poolAddress: z
19
- .string()
20
- .check(z.regex(/^0x[0-9a-fA-F]{40}$/), z.describe('Stargate pool contract on the source chain.')),
21
- })
22
- .check(z.describe('Stargate configuration for one funding route.'));
29
+ /** Stargate provider schemas. */
30
+ export var schema;
31
+ (function (schema) {
32
+ /** Configuration captured from one selected Stargate route. */
33
+ schema.Configuration = z
34
+ .strictObject({
35
+ destinationPoolAddress: z.optional(z
36
+ .string()
37
+ .check(z.regex(/^0x[0-9a-fA-F]{40}$/), z.describe('Stargate pool contract on the Tempo destination chain.'))),
38
+ poolAddress: z
39
+ .string()
40
+ .check(z.regex(/^0x[0-9a-fA-F]{40}$/), z.describe('Stargate pool contract on the source chain.')),
41
+ sourceEid: z.optional(z
42
+ .number()
43
+ .check(z.int(), z.positive(), z.describe('LayerZero endpoint ID for the source chain.'))),
44
+ })
45
+ .check(z.describe('Stargate configuration for one funding route.'));
46
+ })(schema || (schema = {}));
23
47
  /** Creates a direct Stargate V2 OFT funding provider. */
24
48
  export function stargate(options = {}) {
25
49
  const fetch = options.fetch ?? defaultFetch;
@@ -42,7 +66,11 @@ export function stargate(options = {}) {
42
66
  amount: candidate.sourceAmount.amount,
43
67
  recipient: zeroAddress,
44
68
  });
45
- const [limit, feeDetails, receipt] = await client({ fetch, route, signal }).readContract({
69
+ const [limit, feeDetails, receipt] = await rpcClient({
70
+ fetch,
71
+ signal,
72
+ urls: route.source.chain.rpcUrls,
73
+ }).readContract({
46
74
  abi: [quoteOft],
47
75
  address: deployment.pool,
48
76
  args: [sendParam],
@@ -74,8 +102,8 @@ export function stargate(options = {}) {
74
102
  if (!deployment)
75
103
  throw new FundingProvider.ProviderUnavailableError();
76
104
  const sendParam = createSendParam({ amount: candidate.sourceAmount.amount, recipient });
77
- const rpc = client({ fetch, route: candidate.route, signal });
78
- const [[limit, feeDetails, receipt], messagingFee] = await Promise.all([
105
+ const rpc = rpcClient({ fetch, signal, urls: candidate.route.source.chain.rpcUrls });
106
+ const [[limit, feeDetails, receipt], messagingFee, destinationBlock] = await Promise.all([
79
107
  rpc.readContract({
80
108
  abi: [quoteOft],
81
109
  address: deployment.pool,
@@ -89,6 +117,11 @@ export function stargate(options = {}) {
89
117
  args: [sendParam, false],
90
118
  functionName: 'quoteSend',
91
119
  }),
120
+ rpcClient({
121
+ fetch,
122
+ signal,
123
+ urls: candidate.route.destination.chain.rpcUrls,
124
+ }).getBlock({ blockTag: 'finalized', includeTransactions: false }),
92
125
  ]);
93
126
  if (!isExactQuote({ amount: candidate.sourceAmount.amount, feeDetails, limit, receipt }))
94
127
  throw new FundingProvider.ProviderUnavailableError();
@@ -137,6 +170,10 @@ export function stargate(options = {}) {
137
170
  token: nativeToken(candidate.sourceChain.id),
138
171
  },
139
172
  ],
173
+ providerState: {
174
+ destinationBlockNumber: destinationBlock.number.toString(),
175
+ routeConfiguration: candidate.configuration,
176
+ },
140
177
  quality: quality(),
141
178
  sampledAt: sampledAt.toISOString(),
142
179
  };
@@ -155,6 +192,53 @@ export function stargate(options = {}) {
155
192
  }),
156
193
  };
157
194
  },
195
+ async verifySourceTransaction({ destinationChain, providerState, routeConfiguration, sourceChain, transactionHash, transfer, }, signal) {
196
+ if (transfer.method !== 'transaction' || transfer.mode !== 'exactSource' || !transfer.sender)
197
+ return { type: 'invalid' };
198
+ const configuration = providerState?.['routeConfiguration'] ?? routeConfiguration;
199
+ const evidence = await verifySourceTransaction({
200
+ configuration,
201
+ destinationTokenAddress: transfer.destinationToken.address,
202
+ fetch,
203
+ recipient: transfer.recipient,
204
+ sender: transfer.sender,
205
+ signal,
206
+ sourceAmount: transfer.sourceAmount.baseUnits,
207
+ sourceChain,
208
+ sourceTokenAddress: transfer.sourceToken.address,
209
+ transactionHash,
210
+ validAfter: transfer.quote.sampledAt,
211
+ });
212
+ if (evidence.type === 'invalid')
213
+ return evidence;
214
+ if (evidence.type !== 'verified')
215
+ return { type: 'pending' };
216
+ const destinationBlockNumber = typeof providerState?.['destinationBlockNumber'] === 'string' &&
217
+ /^\d+$/.test(providerState['destinationBlockNumber'])
218
+ ? providerState['destinationBlockNumber']
219
+ : await blockNumberBefore({
220
+ chain: destinationChain,
221
+ fetch,
222
+ signal,
223
+ timestamp: transfer.quote.sampledAt,
224
+ });
225
+ return {
226
+ providerState: {
227
+ ...providerState,
228
+ destinationBlockNumber,
229
+ routeConfiguration: configuration,
230
+ stargate: {
231
+ guid: evidence.guid,
232
+ sourceBlock: {
233
+ hash: evidence.sourceBlock.hash,
234
+ number: evidence.sourceBlock.number.toString(),
235
+ },
236
+ sourceEid: evidence.sourceEid,
237
+ },
238
+ },
239
+ type: 'verified',
240
+ };
241
+ },
158
242
  });
159
243
  }
160
244
  /** Validates one direct Stargate action and returns its exact native-value allowance. */
@@ -172,25 +256,21 @@ export function validateAction(options) {
172
256
  throw new FundingProvider.ProviderPayloadError();
173
257
  const [approval, execution] = action.calls;
174
258
  if (!Address.isEqual(approval.to, deployment.sourceToken) ||
175
- BigInt(approval.value) !== 0n ||
176
- !Address.isEqual(execution.to, deployment.pool))
259
+ BigInt(approval.value) !== 0n)
177
260
  throw new FundingProvider.ProviderPayloadError();
178
261
  const [spender, approvalAmount] = AbiFunction.decodeData(approve, approval.data);
179
- const [sendParam, messagingFee, refundAddress] = AbiFunction.decodeData(sendToken, execution.data);
180
- const nativeValue = BigInt(execution.value);
181
262
  if (!Address.isEqual(spender, deployment.pool) ||
182
- approvalAmount !== BigInt(options.sourceAmount) ||
183
- sendParam.amountLD !== BigInt(options.sourceAmount) ||
184
- sendParam.composeMsg !== '0x' ||
185
- sendParam.dstEid !== destinationEid ||
186
- sendParam.extraOptions !== '0x' ||
187
- sendParam.minAmountLD !== BigInt(options.sourceAmount) ||
188
- sendParam.oftCmd !== '0x' ||
189
- !Hex.isEqual(sendParam.to, recipientBytes32(options.recipient)) ||
190
- messagingFee.lzTokenFee !== 0n ||
191
- messagingFee.nativeFee !== nativeValue ||
192
- !Address.isEqual(refundAddress, options.sender))
263
+ approvalAmount !== BigInt(options.sourceAmount))
193
264
  throw new FundingProvider.ProviderPayloadError();
265
+ validateSend({
266
+ data: execution.data,
267
+ nativeValue: BigInt(execution.value),
268
+ pool: deployment.pool,
269
+ recipient: options.recipient,
270
+ sender: options.sender,
271
+ sourceAmount: options.sourceAmount,
272
+ to: execution.to,
273
+ });
194
274
  return [{ to: execution.to, value: execution.value }];
195
275
  }
196
276
  catch (cause) {
@@ -199,14 +279,215 @@ export function validateAction(options) {
199
279
  throw new FundingProvider.ProviderPayloadError();
200
280
  }
201
281
  }
202
- function client(options) {
203
- if (options.route.source.chain.rpcUrls.length === 0)
282
+ /** Verifies a submitted Stargate source transaction against stored transfer terms. */
283
+ export async function verifySourceTransaction(options) {
284
+ const deployment = resolveDeployment({
285
+ configuration: options.configuration,
286
+ destinationChainId,
287
+ destinationTokenAddress: options.destinationTokenAddress,
288
+ sourceChainId: options.sourceChain.id,
289
+ sourceTokenAddress: options.sourceTokenAddress,
290
+ });
291
+ if (!deployment ||
292
+ options.sourceChain.kind !== 'evm' ||
293
+ !Hash.validate(options.transactionHash) ||
294
+ !Address.validate(options.recipient, { strict: false }) ||
295
+ !Address.validate(options.sender, { strict: false }))
296
+ return { type: 'invalid' };
297
+ const rpc = rpcClient({
298
+ fetch: options.fetch ?? defaultFetch,
299
+ signal: options.signal,
300
+ urls: options.sourceChain.rpcUrls,
301
+ });
302
+ const hash = options.transactionHash;
303
+ const [chainId, receipt] = await Promise.all([
304
+ rpc.getChainId(),
305
+ rpc.getTransactionReceipt({ hash }).catch((cause) => {
306
+ if (cause instanceof TransactionReceiptNotFoundError)
307
+ return undefined;
308
+ throw cause;
309
+ }),
310
+ ]);
311
+ if (chainId !== Number(Chain.eip155Id(options.sourceChain)))
312
+ return { type: 'invalid' };
313
+ const block = !receipt || receipt.blockNumber === null
314
+ ? undefined
315
+ : await rpc
316
+ .getBlock({ blockNumber: receipt.blockNumber, includeTransactions: false })
317
+ .catch((cause) => {
318
+ if (cause instanceof BlockNotFoundError)
319
+ return undefined;
320
+ throw cause;
321
+ });
322
+ if (!receipt ||
323
+ receipt.blockNumber === null ||
324
+ !block ||
325
+ !Hex.isEqual(block.hash, receipt.blockHash)) {
326
+ if (!options.sourceBlock)
327
+ return { type: 'pending' };
328
+ const finalized = await rpc.getBlock({ blockTag: 'finalized', includeTransactions: false });
329
+ if (finalized.number < options.sourceBlock.number)
330
+ return { type: 'pending' };
331
+ const canonical = await rpc
332
+ .getBlock({ blockNumber: options.sourceBlock.number, includeTransactions: false })
333
+ .catch((cause) => {
334
+ if (cause instanceof BlockNotFoundError)
335
+ return undefined;
336
+ throw cause;
337
+ });
338
+ if (!canonical || Hex.isEqual(canonical.hash, options.sourceBlock.hash))
339
+ return { type: 'pending' };
340
+ return { type: 'reorged' };
341
+ }
342
+ if (receipt.status !== 'success')
343
+ return { type: 'invalid' };
344
+ const validAfter = Math.floor(Date.parse(options.validAfter) / 1_000);
345
+ if (!Number.isSafeInteger(validAfter) || block.timestamp < BigInt(validAfter))
346
+ return { type: 'invalid' };
347
+ const amount = BigInt(options.sourceAmount);
348
+ const sourceEvents = parseEventLogs({ abi: [oftSent], logs: receipt.logs, strict: true }).filter(({ address, args }) => Address.isEqual(address, deployment.pool) &&
349
+ args.dstEid === destinationEid &&
350
+ Address.isEqual(args.fromAddress, options.sender) &&
351
+ args.amountSentLD === amount &&
352
+ args.amountReceivedLD === amount);
353
+ const transfers = parseEventLogs({
354
+ abi: [transferEvent],
355
+ logs: receipt.logs,
356
+ strict: true,
357
+ }).filter(({ address, args }) => Address.isEqual(address, deployment.sourceToken) &&
358
+ Address.isEqual(args.from, options.sender) &&
359
+ Address.isEqual(args.to, deployment.pool) &&
360
+ args.value === amount);
361
+ if (sourceEvents.length !== 1 || transfers.length !== 1)
362
+ return { type: 'invalid' };
363
+ const guid = sourceEvents[0].args.guid;
364
+ // PacketV1's 113-byte header is followed by Stargate's type, asset id, recipient, and amount.
365
+ const packets = parseEventLogs({ abi: [packetSent], logs: receipt.logs, strict: true }).filter(({ address, args }) => {
366
+ const packet = args.encodedPayload;
367
+ return (Address.isEqual(address, layerZeroEndpoint) &&
368
+ Hex.size(packet) === 156 &&
369
+ Hex.toNumber(Hex.slice(packet, 0, 1)) === 1 &&
370
+ Hex.toNumber(Hex.slice(packet, 9, 13)) === deployment.sourceEid &&
371
+ Hex.toNumber(Hex.slice(packet, 45, 49)) === destinationEid &&
372
+ Hex.isEqual(Hex.slice(packet, 81, 113), guid) &&
373
+ Hex.toNumber(Hex.slice(packet, 113, 114)) === 1 &&
374
+ Hex.isEqual(Hex.slice(packet, 116, 148), recipientBytes32(options.recipient)) &&
375
+ Hex.toBigInt(Hex.slice(packet, 148, 156)) === amount);
376
+ });
377
+ if (packets.length !== 1)
378
+ return { type: 'invalid' };
379
+ return {
380
+ guid,
381
+ sourceBlock: { hash: block.hash, number: block.number },
382
+ sourceEid: deployment.sourceEid,
383
+ type: 'verified',
384
+ };
385
+ }
386
+ /** Finds and verifies the finalized Stargate delivery directly on Tempo. */
387
+ export async function verifyDestinationDelivery(options) {
388
+ const deployment = resolveDeployment({
389
+ configuration: options.configuration,
390
+ destinationChainId: options.destinationChain.id,
391
+ destinationTokenAddress: options.destinationTokenAddress,
392
+ sourceChainId: options.sourceChainId,
393
+ sourceTokenAddress: options.sourceTokenAddress,
394
+ });
395
+ if (!deployment ||
396
+ options.destinationChain.kind !== 'evm' ||
397
+ !/^\d+$/.test(options.destinationBlockNumber) ||
398
+ !Hash.validate(options.guid) ||
399
+ !Address.validate(options.recipient, { strict: false }))
400
+ return { type: 'invalid' };
401
+ const rpc = rpcClient({
402
+ fetch: options.fetch ?? defaultFetch,
403
+ urls: options.destinationChain.rpcUrls,
404
+ });
405
+ const [chainId, finalized] = await Promise.all([
406
+ rpc.getChainId(),
407
+ rpc.getBlock({ blockTag: 'finalized', includeTransactions: false }),
408
+ ]);
409
+ if (chainId !== Number(Chain.eip155Id(options.destinationChain)))
410
+ return { type: 'invalid' };
411
+ const amount = BigInt(options.destinationAmount);
412
+ const discovered = await (async () => {
413
+ for (let fromBlock = BigInt(options.destinationBlockNumber); fromBlock <= finalized.number; fromBlock += maximumLogBlockRange) {
414
+ const toBlock = fromBlock + maximumLogBlockRange - 1n;
415
+ const logs = await rpc.getLogs({
416
+ address: deployment.destinationPool,
417
+ args: { guid: options.guid, toAddress: options.recipient },
418
+ event: oftReceived,
419
+ fromBlock,
420
+ strict: true,
421
+ toBlock: toBlock > finalized.number ? finalized.number : toBlock,
422
+ });
423
+ const matches = logs.filter(({ args, transactionHash }) => transactionHash &&
424
+ args.srcEid === deployment.sourceEid &&
425
+ args.amountReceivedLD === amount);
426
+ if (logs.length !== matches.length || matches.length > 1)
427
+ return { type: 'invalid' };
428
+ if (matches[0]?.transactionHash)
429
+ return { transactionHash: matches[0].transactionHash, type: 'found' };
430
+ }
431
+ return { type: 'pending' };
432
+ })();
433
+ if (discovered.type !== 'found')
434
+ return discovered;
435
+ const { transactionHash } = discovered;
436
+ const receipt = await rpc.getTransactionReceipt({ hash: transactionHash }).catch((cause) => {
437
+ if (cause instanceof TransactionReceiptNotFoundError)
438
+ return undefined;
439
+ throw cause;
440
+ });
441
+ if (!receipt || receipt.blockNumber === null)
442
+ return { type: 'pending' };
443
+ if (receipt.status !== 'success' || receipt.blockNumber > finalized.number)
444
+ return { type: 'invalid' };
445
+ const transfers = parseEventLogs({
446
+ abi: [transferEvent],
447
+ logs: receipt.logs,
448
+ strict: true,
449
+ }).filter(({ address, args }) => Address.isEqual(address, destinationToken) &&
450
+ Address.isEqual(args.from, zeroAddress) &&
451
+ Address.isEqual(args.to, options.recipient) &&
452
+ args.value === amount);
453
+ if (transfers.length !== 1)
454
+ return { type: 'invalid' };
455
+ return { transactionHash, type: 'verified' };
456
+ }
457
+ function rpcClient(options) {
458
+ if (options.urls.length === 0)
204
459
  throw new FundingProvider.ProviderConfigurationError();
205
- return createClient({
206
- transport: fallback(options.route.source.chain.rpcUrls.map((url) => custom(RpcTransport.fromHttp(url, {
207
- fetchFn: (input, init) => options.fetch(input, { ...init, signal: options.signal }),
208
- }), { retryCount: 0 }))),
209
- }).extend(publicActions);
460
+ return Viem.createEvmClient(options).extend(publicActions);
461
+ }
462
+ async function blockNumberBefore(options) {
463
+ if (options.chain.kind !== 'evm')
464
+ throw new FundingProvider.ProviderConfigurationError();
465
+ const timestamp = Date.parse(options.timestamp);
466
+ if (!Number.isFinite(timestamp))
467
+ throw new FundingProvider.ProviderPayloadError();
468
+ const rpc = rpcClient({
469
+ fetch: options.fetch,
470
+ signal: options.signal,
471
+ urls: options.chain.rpcUrls,
472
+ });
473
+ const [chainId, finalized] = await Promise.all([
474
+ rpc.getChainId(),
475
+ rpc.getBlock({ blockTag: 'finalized', includeTransactions: false }),
476
+ ]);
477
+ if (chainId !== Number(Chain.eip155Id(options.chain)))
478
+ throw new FundingProvider.ProviderConfigurationError();
479
+ const target = BigInt(Math.floor(timestamp / 1_000) - 1);
480
+ let lower = 0n;
481
+ let upper = finalized.number;
482
+ while (lower < upper) {
483
+ const middle = (lower + upper + 1n) / 2n;
484
+ const block = await rpc.getBlock({ blockNumber: middle, includeTransactions: false });
485
+ if (block.timestamp <= target)
486
+ lower = middle;
487
+ else
488
+ upper = middle - 1n;
489
+ }
490
+ return lower.toString();
210
491
  }
211
492
  function createSendParam(options) {
212
493
  const amount = BigInt(options.amount);
@@ -252,9 +533,28 @@ function recipientBytes32(recipient) {
252
533
  throw new FundingProvider.ProviderConfigurationError();
253
534
  return Hex.padLeft(recipient, 32);
254
535
  }
536
+ function validateSend(options) {
537
+ const [sendParam, messagingFee, refundAddress] = AbiFunction.decodeData(sendToken, options.data);
538
+ const amount = BigInt(options.sourceAmount);
539
+ if (!Address.isEqual(options.to, options.pool) ||
540
+ sendParam.amountLD !== amount ||
541
+ sendParam.composeMsg !== '0x' ||
542
+ sendParam.dstEid !== destinationEid ||
543
+ sendParam.extraOptions !== '0x' ||
544
+ sendParam.minAmountLD !== amount ||
545
+ sendParam.oftCmd !== '0x' ||
546
+ !Hex.isEqual(sendParam.to, recipientBytes32(options.recipient)) ||
547
+ messagingFee.lzTokenFee !== 0n ||
548
+ messagingFee.nativeFee !== options.nativeValue ||
549
+ !Address.isEqual(refundAddress, options.sender))
550
+ throw new FundingProvider.ProviderPayloadError();
551
+ }
255
552
  function resolveDeployment(options) {
256
- const parsed = configuration.safeParse(options.configuration);
553
+ const parsed = schema.Configuration.safeParse(options.configuration);
554
+ const sourceEid = parsed.success &&
555
+ (parsed.data.sourceEid ?? sourceEids[options.sourceChainId]);
257
556
  if (!parsed.success ||
557
+ !sourceEid ||
258
558
  options.destinationChainId !== destinationChainId ||
259
559
  !options.sourceChainId.startsWith('eip155:') ||
260
560
  !Address.validate(options.destinationTokenAddress, { strict: false }) ||
@@ -262,7 +562,9 @@ function resolveDeployment(options) {
262
562
  !Address.isEqual(options.destinationTokenAddress, destinationToken))
263
563
  return undefined;
264
564
  return {
565
+ destinationPool: Address.checksum(parsed.data.destinationPoolAddress ?? destinationPool),
265
566
  pool: Address.checksum(parsed.data.poolAddress),
567
+ sourceEid,
266
568
  sourceToken: Address.checksum(options.sourceTokenAddress),
267
569
  };
268
570
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stargate.js","sourceRoot":"","sources":["../../../../src/internal/funding/providers/stargate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stargate.js","sourceRoot":"","sources":["../../../../src/internal/funding/providers/stargate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../../src/internal/webhookDestinations/slack.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAE/C,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAA;AAE9D;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAgBxF;AAED,2DAA2D;AAC3D,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAE7C,wEAAwE;AACxE,KAAK,KAAK,GACN;IAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAwBpC;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA2D3F;AA2VD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAejD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlD"}
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../../src/internal/webhookDestinations/slack.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAE/C,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAA;AAE9D;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAgBxF;AAED,2DAA2D;AAC3D,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAE7C,wEAAwE;AACxE,KAAK,KAAK,GACN;IAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAyBpC;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA2D3F;AAyWD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAejD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlD"}
@@ -28,6 +28,7 @@ export function slack(url) {
28
28
  const friendlyName = {
29
29
  'block:created': ':link: Block created',
30
30
  'funding:deposit.updated': ':inbox_tray: Funding deposit updated',
31
+ 'funding:transfer.updated': ':arrows_counterclockwise: Funding transfer updated',
31
32
  'log:emitted': ':label: Log emitted',
32
33
  ping: ':bell: Webhook test ping',
33
34
  'token:transfer': ':money_with_wings: Token transfer',
@@ -117,6 +118,8 @@ function renderEvent(type, data, base) {
117
118
  return blockLayout(data, base);
118
119
  if (type === 'funding:deposit.updated')
119
120
  return fundingDepositLayout(data);
121
+ if (type === 'funding:transfer.updated')
122
+ return fundingTransferLayout(data);
120
123
  return pingLayout();
121
124
  }
122
125
  function fundingDepositLayout(data) {
@@ -132,6 +135,19 @@ function fundingDepositLayout(data) {
132
135
  text: `Funding deposit updated · ${str(data['status']) ?? 'unknown'}`,
133
136
  };
134
137
  }
138
+ function fundingTransferLayout(data) {
139
+ const fields = [];
140
+ field(fields, 'Transfer', escape(str(data['id']) ?? 'unknown'));
141
+ field(fields, 'Status', escape(str(data['status']) ?? 'unknown'));
142
+ const recipient = str(data['recipient']);
143
+ if (recipient !== undefined)
144
+ field(fields, 'Recipient', escape(recipient));
145
+ return {
146
+ fields,
147
+ header: friendlyName['funding:transfer.updated'],
148
+ text: `Funding transfer updated · ${str(data['status']) ?? 'unknown'}`,
149
+ };
150
+ }
135
151
  function transferLayout(data, base) {
136
152
  const amount = str(data['amount']);
137
153
  const token = typeof data['token'] === 'object' && data['token'] !== null