tapimo 0.8.0 → 0.9.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/dist/App.d.ts +2095 -2111
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +0 -1
- package/dist/App.js.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +166 -166
- package/dist/apps/data/App.d.ts +4084 -3845
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +270 -270
- package/dist/apps/data/routes/addresses.d.ts +248 -17
- package/dist/apps/data/routes/addresses.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.d.ts +272 -2
- package/dist/apps/data/routes/balances.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.js +114 -2
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +123 -123
- package/dist/apps/data/routes/earn.d.ts +65 -3
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +259 -14
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +31 -31
- package/dist/apps/data/routes/tokens.d.ts +454 -454
- package/dist/apps/data/routes/transfers.d.ts +81 -81
- package/dist/apps/funding/App.d.ts +40 -299
- package/dist/apps/funding/App.d.ts.map +1 -1
- package/dist/apps/funding/App.js +20 -5
- package/dist/apps/funding/App.js.map +1 -1
- package/dist/apps/funding/routes/deposit-addresses.d.ts +43 -434
- package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -1
- package/dist/apps/funding/routes/deposit-addresses.js +21 -103
- package/dist/apps/funding/routes/deposit-addresses.js.map +1 -1
- package/dist/apps/funding/routes/quotes.d.ts +89 -89
- package/dist/apps/funding/routes/transfers.js +5 -5
- package/dist/apps/funding/routes/transfers.js.map +1 -1
- package/dist/apps/management/routes/invitations.d.ts +134 -134
- package/dist/apps/management/routes/orgs.d.ts +98 -98
- package/dist/apps/management/routes/verified-token-requests.d.ts +83 -83
- package/dist/apps/mpp/App.d.ts +44 -44
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +8 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/tables/fundingDeposits.d.ts +18 -1
- package/dist/db/tables/fundingDeposits.d.ts.map +1 -1
- package/dist/db/tables/fundingDeposits.js +46 -2
- package/dist/db/tables/fundingDeposits.js.map +1 -1
- package/dist/internal/Auth.d.ts +4 -0
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +11 -2
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/funding/Provider.d.ts +6 -6
- package/dist/internal/funding/Provider.d.ts.map +1 -1
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
- package/dist/internal/funding/Reconciliation.js +101 -16
- package/dist/internal/funding/Reconciliation.js.map +1 -1
- package/dist/internal/funding/providers/relay.d.ts.map +1 -1
- package/dist/internal/funding/providers/relay.js +6 -2
- package/dist/internal/funding/providers/relay.js.map +1 -1
- package/package.json +1 -1
- package/src/App.test.ts +32 -0
- package/src/App.ts +4 -1
- package/src/Client.test-d.ts +56 -33
- package/src/apps/composition.test.ts +39 -10
- package/src/apps/data/routes/balances.test.ts +42 -0
- package/src/apps/data/routes/balances.ts +218 -85
- package/src/apps/data/routes/earn.test.ts +89 -9
- package/src/apps/data/routes/earn.ts +355 -14
- package/src/apps/funding/App.ts +20 -5
- package/src/apps/funding/routes/deposit-addresses.test.ts +43 -22
- package/src/apps/funding/routes/deposit-addresses.ts +34 -117
- package/src/apps/funding/routes/transfers.test.ts +6 -25
- package/src/apps/funding/routes/transfers.ts +5 -5
- package/src/db/Db.ts +9 -0
- package/src/db/tables/fundingDeposits.test.ts +101 -0
- package/src/db/tables/fundingDeposits.ts +71 -2
- package/src/internal/Auth.test.ts +28 -0
- package/src/internal/Auth.ts +15 -1
- package/src/internal/funding/Provider.ts +4 -4
- package/src/internal/funding/Reconciliation.test.ts +292 -54
- package/src/internal/funding/Reconciliation.ts +160 -53
- package/src/internal/funding/SourceObservation.test.ts +2 -2
- package/src/internal/funding/providers/relay.ts +7 -2
|
@@ -17,6 +17,7 @@ import * as Evidence from './Evidence.js'
|
|
|
17
17
|
import * as Provider from './Provider.js'
|
|
18
18
|
import * as Reconciliation from './Reconciliation.js'
|
|
19
19
|
import * as Relay from './providers/relay.js'
|
|
20
|
+
import * as SourceObservation from './SourceObservation.js'
|
|
20
21
|
|
|
21
22
|
const db = TestApp.database()
|
|
22
23
|
const transferTopic = AbiEvent.getSelector('event Transfer(address,address,uint256)')
|
|
@@ -1506,7 +1507,7 @@ describe('createTracker', () => {
|
|
|
1506
1507
|
}
|
|
1507
1508
|
})
|
|
1508
1509
|
|
|
1509
|
-
test('completes
|
|
1510
|
+
test('completes chain-detected Relay delivery before provider attribution', async () => {
|
|
1510
1511
|
const route = TestFunding.transferSnapshot()
|
|
1511
1512
|
const ambiguousOrderId = `0x${'3d'.repeat(32)}`
|
|
1512
1513
|
const ambiguousSweepTransactionHash = `0x${'3e'.repeat(32)}`
|
|
@@ -1548,8 +1549,10 @@ describe('createTracker', () => {
|
|
|
1548
1549
|
histogram() {},
|
|
1549
1550
|
})
|
|
1550
1551
|
const rpcMethods: string[] = []
|
|
1551
|
-
let
|
|
1552
|
+
let ambiguous = true
|
|
1553
|
+
let correlateDestination = false
|
|
1552
1554
|
let delivered = false
|
|
1555
|
+
let indexed = false
|
|
1553
1556
|
const server = await TestRelay.createServer(async (request, response) => {
|
|
1554
1557
|
if (request.method === 'GET') {
|
|
1555
1558
|
const url = new URL(request.url ?? '/', server.url)
|
|
@@ -1571,26 +1574,23 @@ describe('createTracker', () => {
|
|
|
1571
1574
|
],
|
|
1572
1575
|
}
|
|
1573
1576
|
: {
|
|
1574
|
-
requests:
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
if (!correlated) return {}
|
|
1582
|
-
return {
|
|
1577
|
+
requests: indexed
|
|
1578
|
+
? [
|
|
1579
|
+
{
|
|
1580
|
+
createdAt: '2026-01-04T00:01:00.000Z',
|
|
1581
|
+
data: { outTxs: [] },
|
|
1582
|
+
depositAddress: { depositTxHash: sourceTransactionHash },
|
|
1583
|
+
id: 'relay-observed-request',
|
|
1583
1584
|
protocol: {
|
|
1584
1585
|
deposit: { origin: { depositor: refundAddress, depository } },
|
|
1585
1586
|
orderId,
|
|
1586
1587
|
solver: { address: solver },
|
|
1587
1588
|
},
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
],
|
|
1589
|
+
status: 'pending',
|
|
1590
|
+
updatedAt: '2026-01-04T00:02:00.000Z',
|
|
1591
|
+
},
|
|
1592
|
+
]
|
|
1593
|
+
: [],
|
|
1594
1594
|
},
|
|
1595
1595
|
),
|
|
1596
1596
|
)
|
|
@@ -1614,10 +1614,14 @@ describe('createTracker', () => {
|
|
|
1614
1614
|
blockNumber: 0xf0,
|
|
1615
1615
|
from: solver,
|
|
1616
1616
|
hash: destinationTransactionHash,
|
|
1617
|
-
input:
|
|
1618
|
-
AbiFunction.
|
|
1619
|
-
|
|
1620
|
-
|
|
1617
|
+
input: (() => {
|
|
1618
|
+
const input = AbiFunction.encodeData(
|
|
1619
|
+
AbiFunction.from('function transfer(address recipient,uint256 amount)'),
|
|
1620
|
+
[route.recipient as Address.Address, 1_000_000n],
|
|
1621
|
+
)
|
|
1622
|
+
if (!correlateDestination) return input
|
|
1623
|
+
return Hex.concat(input, orderId as Hex.Hex)
|
|
1624
|
+
})(),
|
|
1621
1625
|
to: route.destinationToken.address,
|
|
1622
1626
|
})
|
|
1623
1627
|
: rpcTransaction({
|
|
@@ -1657,15 +1661,19 @@ describe('createTracker', () => {
|
|
|
1657
1661
|
const filter = parameter as { address?: string | undefined }
|
|
1658
1662
|
if (filter.address?.toLowerCase() === depository.toLowerCase())
|
|
1659
1663
|
return [
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1664
|
+
...(ambiguous
|
|
1665
|
+
? [
|
|
1666
|
+
relayDepositLog({
|
|
1667
|
+
amount: 1_000_000n,
|
|
1668
|
+
blockNumber: 0x81,
|
|
1669
|
+
depository,
|
|
1670
|
+
from: refundAddress,
|
|
1671
|
+
orderId: ambiguousOrderId,
|
|
1672
|
+
token: route.sourceToken.address,
|
|
1673
|
+
transactionHash: ambiguousSweepTransactionHash,
|
|
1674
|
+
}),
|
|
1675
|
+
]
|
|
1676
|
+
: []),
|
|
1669
1677
|
relayDepositLog({
|
|
1670
1678
|
amount: 1_000_000n,
|
|
1671
1679
|
blockNumber: 0x82,
|
|
@@ -1747,6 +1755,50 @@ describe('createTracker', () => {
|
|
|
1747
1755
|
now: () => new Date('2026-01-04T00:03:00.000Z'),
|
|
1748
1756
|
observation: { db },
|
|
1749
1757
|
})
|
|
1758
|
+
if (!Provider.canObserveDepositAddressRequest(provider))
|
|
1759
|
+
throw new Error('Expected Relay delivery observation.')
|
|
1760
|
+
const ambiguousObservation = await provider.observeDepositAddressRequest(
|
|
1761
|
+
{
|
|
1762
|
+
address: depositAddress,
|
|
1763
|
+
destinationChain: route.destinationChain,
|
|
1764
|
+
destinationToken: route.destinationToken,
|
|
1765
|
+
recipient: route.recipient,
|
|
1766
|
+
refundAddress,
|
|
1767
|
+
source: { amount: '1000000', transactionHash: sourceTransactionHash },
|
|
1768
|
+
sourceChain: route.sourceChain,
|
|
1769
|
+
sourceToken: route.sourceToken,
|
|
1770
|
+
},
|
|
1771
|
+
new AbortController().signal,
|
|
1772
|
+
)
|
|
1773
|
+
ambiguous = false
|
|
1774
|
+
delivered = true
|
|
1775
|
+
const uncorrelatedObservation = await provider.observeDepositAddressRequest(
|
|
1776
|
+
{
|
|
1777
|
+
address: depositAddress,
|
|
1778
|
+
destinationChain: route.destinationChain,
|
|
1779
|
+
destinationToken: route.destinationToken,
|
|
1780
|
+
recipient: route.recipient,
|
|
1781
|
+
refundAddress,
|
|
1782
|
+
source: { amount: '1000000', transactionHash: sourceTransactionHash },
|
|
1783
|
+
sourceChain: route.sourceChain,
|
|
1784
|
+
sourceToken: route.sourceToken,
|
|
1785
|
+
},
|
|
1786
|
+
new AbortController().signal,
|
|
1787
|
+
)
|
|
1788
|
+
correlateDestination = true
|
|
1789
|
+
delivered = false
|
|
1790
|
+
const observed = await SourceObservation.observe(db, {
|
|
1791
|
+
addressId: address.id,
|
|
1792
|
+
amount: '1000000',
|
|
1793
|
+
chainId: route.sourceChain.id,
|
|
1794
|
+
now: new Date('2026-01-04T00:00:30.000Z'),
|
|
1795
|
+
recipient: depositAddress,
|
|
1796
|
+
sender: refundAddress,
|
|
1797
|
+
tokenAddress: route.sourceToken.address,
|
|
1798
|
+
transactionHash: sourceTransactionHash,
|
|
1799
|
+
transferIndex: 0,
|
|
1800
|
+
})
|
|
1801
|
+
if (observed.type === 'ignored') throw new Error('Expected source observation.')
|
|
1750
1802
|
const tracker = Reconciliation.createTracker({
|
|
1751
1803
|
db,
|
|
1752
1804
|
dispatch: async (...parameters) => {
|
|
@@ -1757,25 +1809,30 @@ describe('createTracker', () => {
|
|
|
1757
1809
|
providers: [provider],
|
|
1758
1810
|
verifyTransfers: Evidence.createVerifier({ db }),
|
|
1759
1811
|
})
|
|
1760
|
-
const
|
|
1812
|
+
const pending = await tracker.reconcile({
|
|
1761
1813
|
addressId: address.id,
|
|
1762
|
-
|
|
1763
|
-
trigger: 'webhook',
|
|
1814
|
+
trigger: 'chain',
|
|
1764
1815
|
type: 'funding:deposit-address:reconcile',
|
|
1765
|
-
}
|
|
1766
|
-
const
|
|
1767
|
-
|
|
1768
|
-
if (!followUp) throw new Error('Expected a delivery follow-up message.')
|
|
1769
|
-
correlated = true
|
|
1816
|
+
})
|
|
1817
|
+
const [deliveryFollowUp] = dispatches
|
|
1818
|
+
if (!deliveryFollowUp) throw new Error('Expected a delivery follow-up message.')
|
|
1770
1819
|
delivered = true
|
|
1771
|
-
const completed = await tracker.reconcile(
|
|
1820
|
+
const completed = await tracker.reconcile(deliveryFollowUp[0])
|
|
1821
|
+
const completedRecord = await FundingDeposits.get(db, observed.record.id)
|
|
1822
|
+
const [, providerFollowUp] = dispatches
|
|
1823
|
+
if (!providerFollowUp) throw new Error('Expected a provider follow-up message.')
|
|
1824
|
+
indexed = true
|
|
1825
|
+
const attributed = await tracker.reconcile(providerFollowUp[0])
|
|
1772
1826
|
const [record] = await FundingDeposits.listBySourceTransaction(db, {
|
|
1773
1827
|
depositAddressId: address.id,
|
|
1774
1828
|
sourceTransactionHash,
|
|
1775
1829
|
})
|
|
1776
1830
|
|
|
1777
1831
|
expect({
|
|
1832
|
+
ambiguousObservation,
|
|
1833
|
+
attributed,
|
|
1778
1834
|
completed,
|
|
1835
|
+
completedRecord,
|
|
1779
1836
|
counts,
|
|
1780
1837
|
dispatches: dispatches.map(([message, dispatchOptions]) => [
|
|
1781
1838
|
{ ...message, addressId: '<address-id>' },
|
|
@@ -1784,6 +1841,8 @@ describe('createTracker', () => {
|
|
|
1784
1841
|
pending,
|
|
1785
1842
|
record,
|
|
1786
1843
|
rpcMethods,
|
|
1844
|
+
sourceObservation: observed.type,
|
|
1845
|
+
uncorrelatedObservation,
|
|
1787
1846
|
}).toMatchInlineSnapshot(
|
|
1788
1847
|
{
|
|
1789
1848
|
record: {
|
|
@@ -1793,14 +1852,144 @@ describe('createTracker', () => {
|
|
|
1793
1852
|
snapshot: { depositAddressId: expect.any(String) },
|
|
1794
1853
|
updatedAt: expect.any(String),
|
|
1795
1854
|
},
|
|
1855
|
+
completedRecord: {
|
|
1856
|
+
createdAt: expect.any(String),
|
|
1857
|
+
depositAddressId: expect.any(String),
|
|
1858
|
+
id: expect.any(String),
|
|
1859
|
+
snapshot: { depositAddressId: expect.any(String) },
|
|
1860
|
+
updatedAt: expect.any(String),
|
|
1861
|
+
},
|
|
1796
1862
|
},
|
|
1797
1863
|
`
|
|
1798
1864
|
{
|
|
1865
|
+
"ambiguousObservation": {
|
|
1866
|
+
"type": "pending",
|
|
1867
|
+
},
|
|
1868
|
+
"attributed": {
|
|
1869
|
+
"created": 0,
|
|
1870
|
+
"type": "completed",
|
|
1871
|
+
"updated": 1,
|
|
1872
|
+
},
|
|
1799
1873
|
"completed": {
|
|
1800
1874
|
"created": 0,
|
|
1801
1875
|
"type": "completed",
|
|
1802
1876
|
"updated": 1,
|
|
1803
1877
|
},
|
|
1878
|
+
"completedRecord": {
|
|
1879
|
+
"createdAt": Any<String>,
|
|
1880
|
+
"depositAddressId": Any<String>,
|
|
1881
|
+
"detectionTrigger": "chain",
|
|
1882
|
+
"environment": "production",
|
|
1883
|
+
"id": Any<String>,
|
|
1884
|
+
"orgId": "org_delivery_observation",
|
|
1885
|
+
"pollObservedAt": null,
|
|
1886
|
+
"projectId": null,
|
|
1887
|
+
"providerOutputAmount": {
|
|
1888
|
+
"baseUnits": "1000000",
|
|
1889
|
+
"currency": "USD",
|
|
1890
|
+
"decimals": 6,
|
|
1891
|
+
"formatted": "1",
|
|
1892
|
+
},
|
|
1893
|
+
"providerOutputToken": {
|
|
1894
|
+
"address": "0x20c000000000000000000000b9537d11c60e8b50",
|
|
1895
|
+
"currency": "USD",
|
|
1896
|
+
"decimals": 6,
|
|
1897
|
+
"name": "Bridged USDC (Stargate)",
|
|
1898
|
+
"standard": "TIP-20",
|
|
1899
|
+
"symbol": "USDC.e",
|
|
1900
|
+
"tokenKey": "eip155:4217/erc20:0x20c000000000000000000000b9537d11c60e8b50",
|
|
1901
|
+
"verified": true,
|
|
1902
|
+
},
|
|
1903
|
+
"providerRequestId": null,
|
|
1904
|
+
"providerRequestIds": [],
|
|
1905
|
+
"providerState": {
|
|
1906
|
+
"relay": {
|
|
1907
|
+
"destinationObservedAt": "2026-01-04T00:03:00.000Z",
|
|
1908
|
+
"orderId": "0x3434343434343434343434343434343434343434343434343434343434343434",
|
|
1909
|
+
"sourceDepository": "0x3232323232323232323232323232323232323232",
|
|
1910
|
+
"sourceObservedAt": "2026-01-04T00:03:00.000Z",
|
|
1911
|
+
"sourceSweepTransactionHash": "0x3636363636363636363636363636363636363636363636363636363636363636",
|
|
1912
|
+
},
|
|
1913
|
+
},
|
|
1914
|
+
"providerTransactionHashes": [
|
|
1915
|
+
"0x3636363636363636363636363636363636363636363636363636363636363636",
|
|
1916
|
+
"0x3333333333333333333333333333333333333333333333333333333333333333",
|
|
1917
|
+
],
|
|
1918
|
+
"providerTransferIndex": 0,
|
|
1919
|
+
"retryState": null,
|
|
1920
|
+
"settlementTransaction": null,
|
|
1921
|
+
"settlementTransactionHash": null,
|
|
1922
|
+
"snapshot": {
|
|
1923
|
+
"depositAddressId": Any<String>,
|
|
1924
|
+
"destinationAmount": {
|
|
1925
|
+
"baseUnits": "1000000",
|
|
1926
|
+
"currency": "USD",
|
|
1927
|
+
"decimals": 6,
|
|
1928
|
+
"formatted": "1",
|
|
1929
|
+
},
|
|
1930
|
+
"destinationChain": {
|
|
1931
|
+
"addressFormat": "hex",
|
|
1932
|
+
"id": "eip155:4217",
|
|
1933
|
+
"kind": "evm",
|
|
1934
|
+
"name": "Tempo",
|
|
1935
|
+
},
|
|
1936
|
+
"destinationToken": {
|
|
1937
|
+
"address": "0x20c000000000000000000000b9537d11c60e8b50",
|
|
1938
|
+
"currency": "USD",
|
|
1939
|
+
"decimals": 6,
|
|
1940
|
+
"name": "Bridged USDC (Stargate)",
|
|
1941
|
+
"standard": "TIP-20",
|
|
1942
|
+
"symbol": "USDC.e",
|
|
1943
|
+
"tokenKey": "eip155:4217/erc20:0x20c000000000000000000000b9537d11c60e8b50",
|
|
1944
|
+
"verified": true,
|
|
1945
|
+
},
|
|
1946
|
+
"destinationTransactionHashes": [
|
|
1947
|
+
"0x3333333333333333333333333333333333333333333333333333333333333333",
|
|
1948
|
+
],
|
|
1949
|
+
"provider": {
|
|
1950
|
+
"id": "relay",
|
|
1951
|
+
"name": "Relay",
|
|
1952
|
+
},
|
|
1953
|
+
"recipient": "0x1111111111111111111111111111111111111111",
|
|
1954
|
+
"refundAddress": "0x3838383838383838383838383838383838383838",
|
|
1955
|
+
"sender": "0x3838383838383838383838383838383838383838",
|
|
1956
|
+
"sourceAmount": {
|
|
1957
|
+
"baseUnits": "1000000",
|
|
1958
|
+
"currency": "USD",
|
|
1959
|
+
"decimals": 6,
|
|
1960
|
+
"formatted": "1",
|
|
1961
|
+
},
|
|
1962
|
+
"sourceChain": {
|
|
1963
|
+
"addressFormat": "hex",
|
|
1964
|
+
"id": "eip155:8453",
|
|
1965
|
+
"kind": "evm",
|
|
1966
|
+
"name": "Base",
|
|
1967
|
+
},
|
|
1968
|
+
"sourceToken": {
|
|
1969
|
+
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
|
|
1970
|
+
"currency": "USD",
|
|
1971
|
+
"decimals": 6,
|
|
1972
|
+
"name": "USD Coin",
|
|
1973
|
+
"standard": "ERC-20",
|
|
1974
|
+
"symbol": "USDC",
|
|
1975
|
+
"tokenKey": "eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
|
|
1976
|
+
"verified": true,
|
|
1977
|
+
},
|
|
1978
|
+
"sourceTransactionHashes": [
|
|
1979
|
+
"0x3737373737373737373737373737373737373737373737373737373737373737",
|
|
1980
|
+
],
|
|
1981
|
+
},
|
|
1982
|
+
"sourceChainId": "eip155:8453",
|
|
1983
|
+
"sourceTransactionHash": "0x3737373737373737373737373737373737373737373737373737373737373737",
|
|
1984
|
+
"sourceTransferIndex": 0,
|
|
1985
|
+
"status": "completed",
|
|
1986
|
+
"statusReason": null,
|
|
1987
|
+
"subsidyAmount": null,
|
|
1988
|
+
"tempoGasPaid": null,
|
|
1989
|
+
"updatedAt": Any<String>,
|
|
1990
|
+
"version": 3,
|
|
1991
|
+
"webhookReceivedAt": null,
|
|
1992
|
+
},
|
|
1804
1993
|
"counts": [
|
|
1805
1994
|
[
|
|
1806
1995
|
"funding_deposit_delivery_observation_count",
|
|
@@ -1811,37 +2000,47 @@ describe('createTracker', () => {
|
|
|
1811
2000
|
},
|
|
1812
2001
|
],
|
|
1813
2002
|
[
|
|
1814
|
-
"
|
|
2003
|
+
"funding_deposit_reconciliation_count",
|
|
1815
2004
|
1,
|
|
1816
2005
|
{
|
|
2006
|
+
"outcome": "follow_up_enqueued",
|
|
1817
2007
|
"provider": "relay",
|
|
1818
|
-
"trigger": "
|
|
2008
|
+
"trigger": "chain",
|
|
1819
2009
|
},
|
|
1820
2010
|
],
|
|
1821
2011
|
[
|
|
1822
2012
|
"funding_deposit_reconciliation_count",
|
|
1823
2013
|
1,
|
|
1824
2014
|
{
|
|
1825
|
-
"outcome": "
|
|
2015
|
+
"outcome": "completed",
|
|
2016
|
+
"provider": "relay",
|
|
2017
|
+
"trigger": "chain",
|
|
2018
|
+
},
|
|
2019
|
+
],
|
|
2020
|
+
[
|
|
2021
|
+
"funding_deposit_delivery_observation_count",
|
|
2022
|
+
1,
|
|
2023
|
+
{
|
|
2024
|
+
"outcome": "verified",
|
|
1826
2025
|
"provider": "relay",
|
|
1827
|
-
"trigger": "webhook",
|
|
1828
2026
|
},
|
|
1829
2027
|
],
|
|
1830
2028
|
[
|
|
1831
2029
|
"funding_deposit_reconciliation_count",
|
|
1832
2030
|
1,
|
|
1833
2031
|
{
|
|
1834
|
-
"outcome": "
|
|
2032
|
+
"outcome": "follow_up_enqueued",
|
|
1835
2033
|
"provider": "relay",
|
|
1836
|
-
"trigger": "
|
|
2034
|
+
"trigger": "chain",
|
|
1837
2035
|
},
|
|
1838
2036
|
],
|
|
1839
2037
|
[
|
|
1840
|
-
"
|
|
2038
|
+
"funding_deposit_reconciliation_count",
|
|
1841
2039
|
1,
|
|
1842
2040
|
{
|
|
1843
|
-
"outcome": "
|
|
2041
|
+
"outcome": "completed",
|
|
1844
2042
|
"provider": "relay",
|
|
2043
|
+
"trigger": "chain",
|
|
1845
2044
|
},
|
|
1846
2045
|
],
|
|
1847
2046
|
[
|
|
@@ -1850,7 +2049,7 @@ describe('createTracker', () => {
|
|
|
1850
2049
|
{
|
|
1851
2050
|
"outcome": "completed",
|
|
1852
2051
|
"provider": "relay",
|
|
1853
|
-
"trigger": "
|
|
2052
|
+
"trigger": "chain",
|
|
1854
2053
|
},
|
|
1855
2054
|
],
|
|
1856
2055
|
],
|
|
@@ -1862,8 +2061,21 @@ describe('createTracker', () => {
|
|
|
1862
2061
|
"attempt": 0,
|
|
1863
2062
|
"kind": "delivery",
|
|
1864
2063
|
},
|
|
1865
|
-
"
|
|
1866
|
-
"
|
|
2064
|
+
"trigger": "chain",
|
|
2065
|
+
"type": "funding:deposit-address:reconcile",
|
|
2066
|
+
},
|
|
2067
|
+
{
|
|
2068
|
+
"delaySeconds": 1,
|
|
2069
|
+
},
|
|
2070
|
+
],
|
|
2071
|
+
[
|
|
2072
|
+
{
|
|
2073
|
+
"addressId": "<address-id>",
|
|
2074
|
+
"followUp": {
|
|
2075
|
+
"attempt": 0,
|
|
2076
|
+
"kind": "provider",
|
|
2077
|
+
},
|
|
2078
|
+
"trigger": "chain",
|
|
1867
2079
|
"type": "funding:deposit-address:reconcile",
|
|
1868
2080
|
},
|
|
1869
2081
|
{
|
|
@@ -1872,14 +2084,14 @@ describe('createTracker', () => {
|
|
|
1872
2084
|
],
|
|
1873
2085
|
],
|
|
1874
2086
|
"pending": {
|
|
1875
|
-
"created":
|
|
2087
|
+
"created": 0,
|
|
1876
2088
|
"type": "completed",
|
|
1877
2089
|
"updated": 1,
|
|
1878
2090
|
},
|
|
1879
2091
|
"record": {
|
|
1880
2092
|
"createdAt": Any<String>,
|
|
1881
2093
|
"depositAddressId": Any<String>,
|
|
1882
|
-
"detectionTrigger": "
|
|
2094
|
+
"detectionTrigger": "chain",
|
|
1883
2095
|
"environment": "production",
|
|
1884
2096
|
"id": Any<String>,
|
|
1885
2097
|
"orgId": "org_delivery_observation",
|
|
@@ -1961,7 +2173,7 @@ describe('createTracker', () => {
|
|
|
1961
2173
|
},
|
|
1962
2174
|
"recipient": "0x1111111111111111111111111111111111111111",
|
|
1963
2175
|
"refundAddress": "0x3838383838383838383838383838383838383838",
|
|
1964
|
-
"sender": "
|
|
2176
|
+
"sender": "0x3838383838383838383838383838383838383838",
|
|
1965
2177
|
"sourceAmount": {
|
|
1966
2178
|
"baseUnits": "1000000",
|
|
1967
2179
|
"currency": "USD",
|
|
@@ -1996,16 +2208,21 @@ describe('createTracker', () => {
|
|
|
1996
2208
|
"subsidyAmount": null,
|
|
1997
2209
|
"tempoGasPaid": null,
|
|
1998
2210
|
"updatedAt": Any<String>,
|
|
1999
|
-
"version":
|
|
2211
|
+
"version": 4,
|
|
2000
2212
|
"webhookReceivedAt": null,
|
|
2001
2213
|
},
|
|
2002
2214
|
"rpcMethods": [
|
|
2003
2215
|
"eth_getTransactionReceipt",
|
|
2004
2216
|
"eth_blockNumber",
|
|
2217
|
+
"eth_getLogs",
|
|
2218
|
+
"eth_getTransactionByHash",
|
|
2219
|
+
"eth_getTransactionByHash",
|
|
2005
2220
|
"eth_getTransactionReceipt",
|
|
2006
2221
|
"eth_blockNumber",
|
|
2007
2222
|
"eth_getLogs",
|
|
2008
2223
|
"eth_getTransactionByHash",
|
|
2224
|
+
"eth_blockNumber",
|
|
2225
|
+
"eth_getLogs",
|
|
2009
2226
|
"eth_getTransactionByHash",
|
|
2010
2227
|
"eth_getTransactionReceipt",
|
|
2011
2228
|
"eth_blockNumber",
|
|
@@ -2015,10 +2232,31 @@ describe('createTracker', () => {
|
|
|
2015
2232
|
"eth_getTransactionByHash",
|
|
2016
2233
|
"eth_blockNumber",
|
|
2017
2234
|
"eth_getLogs",
|
|
2235
|
+
"eth_getTransactionReceipt",
|
|
2236
|
+
"eth_blockNumber",
|
|
2237
|
+
"eth_blockNumber",
|
|
2238
|
+
"eth_getLogs",
|
|
2018
2239
|
"eth_getTransactionByHash",
|
|
2019
2240
|
"eth_getTransactionReceipt",
|
|
2020
2241
|
"eth_blockNumber",
|
|
2242
|
+
"eth_getTransactionReceipt",
|
|
2243
|
+
"eth_blockNumber",
|
|
2021
2244
|
],
|
|
2245
|
+
"sourceObservation": "created",
|
|
2246
|
+
"uncorrelatedObservation": {
|
|
2247
|
+
"providerState": {
|
|
2248
|
+
"relay": {
|
|
2249
|
+
"orderId": "0x3434343434343434343434343434343434343434343434343434343434343434",
|
|
2250
|
+
"sourceDepository": "0x3232323232323232323232323232323232323232",
|
|
2251
|
+
"sourceObservedAt": "2026-01-04T00:03:00.000Z",
|
|
2252
|
+
"sourceSweepTransactionHash": "0x3636363636363636363636363636363636363636363636363636363636363636",
|
|
2253
|
+
},
|
|
2254
|
+
},
|
|
2255
|
+
"providerTransactionHashes": [
|
|
2256
|
+
"0x3636363636363636363636363636363636363636363636363636363636363636",
|
|
2257
|
+
],
|
|
2258
|
+
"type": "pending",
|
|
2259
|
+
},
|
|
2022
2260
|
}
|
|
2023
2261
|
`,
|
|
2024
2262
|
)
|