tempo.ts 0.5.1 → 0.5.3

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 (55) hide show
  1. package/dist/viem/Actions/policy.d.ts +9 -1
  2. package/dist/viem/Actions/policy.d.ts.map +1 -1
  3. package/dist/viem/Actions/policy.js.map +1 -1
  4. package/dist/viem/Chain.d.ts.map +1 -1
  5. package/dist/viem/Chain.js +8 -2
  6. package/dist/viem/Chain.js.map +1 -1
  7. package/dist/viem/Transaction.js +4 -1
  8. package/dist/viem/Transaction.js.map +1 -1
  9. package/dist/viem/Transport.d.ts +8 -0
  10. package/dist/viem/Transport.d.ts.map +1 -1
  11. package/dist/viem/Transport.js +87 -1
  12. package/dist/viem/Transport.js.map +1 -1
  13. package/dist/wagmi/Actions/faucet.d.ts +31 -0
  14. package/dist/wagmi/Actions/faucet.d.ts.map +1 -1
  15. package/dist/wagmi/Actions/faucet.js +31 -0
  16. package/dist/wagmi/Actions/faucet.js.map +1 -1
  17. package/dist/wagmi/Actions/index.d.ts +1 -0
  18. package/dist/wagmi/Actions/index.d.ts.map +1 -1
  19. package/dist/wagmi/Actions/index.js +1 -0
  20. package/dist/wagmi/Actions/index.js.map +1 -1
  21. package/dist/wagmi/Actions/policy.d.ts +481 -0
  22. package/dist/wagmi/Actions/policy.d.ts.map +1 -0
  23. package/dist/wagmi/Actions/policy.js +530 -0
  24. package/dist/wagmi/Actions/policy.js.map +1 -0
  25. package/dist/wagmi/Connector.d.ts +1 -1
  26. package/dist/wagmi/Connector.d.ts.map +1 -1
  27. package/dist/wagmi/Connector.js +3 -85
  28. package/dist/wagmi/Connector.js.map +1 -1
  29. package/dist/wagmi/Hooks/faucet.d.ts +33 -1
  30. package/dist/wagmi/Hooks/faucet.d.ts.map +1 -1
  31. package/dist/wagmi/Hooks/faucet.js +37 -1
  32. package/dist/wagmi/Hooks/faucet.js.map +1 -1
  33. package/dist/wagmi/Hooks/index.d.ts +1 -0
  34. package/dist/wagmi/Hooks/index.d.ts.map +1 -1
  35. package/dist/wagmi/Hooks/index.js +1 -0
  36. package/dist/wagmi/Hooks/index.js.map +1 -1
  37. package/dist/wagmi/Hooks/policy.d.ts +424 -0
  38. package/dist/wagmi/Hooks/policy.d.ts.map +1 -0
  39. package/dist/wagmi/Hooks/policy.js +510 -0
  40. package/dist/wagmi/Hooks/policy.js.map +1 -0
  41. package/package.json +2 -2
  42. package/src/viem/Actions/policy.ts +25 -0
  43. package/src/viem/Chain.ts +9 -2
  44. package/src/viem/Transaction.ts +9 -4
  45. package/src/viem/Transport.ts +107 -1
  46. package/src/viem/e2e.test.ts +33 -24
  47. package/src/wagmi/Actions/faucet.ts +43 -0
  48. package/src/wagmi/Actions/index.ts +1 -0
  49. package/src/wagmi/Actions/policy.test.ts +461 -0
  50. package/src/wagmi/Actions/policy.ts +819 -0
  51. package/src/wagmi/Connector.ts +4 -112
  52. package/src/wagmi/Hooks/faucet.ts +69 -1
  53. package/src/wagmi/Hooks/index.ts +1 -0
  54. package/src/wagmi/Hooks/policy.test.ts +665 -0
  55. package/src/wagmi/Hooks/policy.ts +875 -0
@@ -1,4 +1,15 @@
1
- import { createTransport, type Transport } from 'viem'
1
+ import * as Address from 'ox/Address'
2
+ import * as Hash from 'ox/Hash'
3
+ import * as Hex from 'ox/Hex'
4
+ import * as Provider from 'ox/Provider'
5
+ import * as RpcRequest from 'ox/RpcRequest'
6
+ import { createClient, createTransport, type Transport } from 'viem'
7
+ import {
8
+ getTransactionReceipt,
9
+ sendTransaction,
10
+ sendTransactionSync,
11
+ } from 'viem/actions'
12
+ import type * as tempo_Chain from './Chain.js'
2
13
  import * as Transaction from './Transaction.js'
3
14
 
4
15
  export type FeePayer = Transport<typeof withFeePayer.type>
@@ -45,3 +56,98 @@ export declare namespace withFeePayer {
45
56
 
46
57
  export type ReturnValue = FeePayer
47
58
  }
59
+
60
+ /**
61
+ * Creates a transport that instruments a compatibility layer for
62
+ * `wallet_` RPC actions (`sendCalls`, `getCallsStatus`, etc).
63
+ *
64
+ * @param transport - Transport to wrap.
65
+ * @returns Transport.
66
+ */
67
+ export function walletNamespaceCompat(transport: Transport): Transport {
68
+ const sendCallsMagic = Hash.keccak256(Hex.fromString('TEMPO_5792'))
69
+
70
+ return (options) => {
71
+ const t = transport(options)
72
+
73
+ const account = options.account
74
+
75
+ type Chain = ReturnType<ReturnType<typeof tempo_Chain.define>>
76
+ const chain = options.chain as Chain
77
+
78
+ return {
79
+ ...t,
80
+ async request(args: never) {
81
+ const request = RpcRequest.from(args)
82
+
83
+ const client = createClient({
84
+ account,
85
+ chain,
86
+ transport,
87
+ })
88
+
89
+ if (request.method === 'wallet_sendCalls') {
90
+ const params = request.params[0] ?? {}
91
+ const { capabilities, chainId, from } = params
92
+ const { sync } = capabilities ?? {}
93
+
94
+ if (!account) throw new Provider.DisconnectedError()
95
+ if (!chainId) throw new Provider.UnsupportedChainIdError()
96
+ if (Number(chainId) !== client.chain.id)
97
+ throw new Provider.UnsupportedChainIdError()
98
+ if (from && !Address.isEqual(from, account.address))
99
+ throw new Provider.DisconnectedError()
100
+
101
+ const calls = (params.calls ?? []).map((call) => ({
102
+ to: call.to,
103
+ value: call.value ? BigInt(call.value) : undefined,
104
+ data: call.data,
105
+ }))
106
+
107
+ const hash = await (async () => {
108
+ if (!sync)
109
+ return sendTransaction(client, {
110
+ account,
111
+ calls,
112
+ })
113
+
114
+ const { transactionHash } = await sendTransactionSync(client, {
115
+ account,
116
+ calls,
117
+ })
118
+ return transactionHash
119
+ })()
120
+
121
+ const id = Hex.concat(hash, Hex.padLeft(chainId, 32), sendCallsMagic)
122
+
123
+ return {
124
+ capabilities: { sync },
125
+ id,
126
+ }
127
+ }
128
+
129
+ if (request.method === 'wallet_getCallsStatus') {
130
+ const [id] = request.params ?? []
131
+ if (!id) throw new Error('`id` not found')
132
+ if (!id.endsWith(sendCallsMagic.slice(2)))
133
+ throw new Error('`id` not supported')
134
+ Hex.assert(id)
135
+
136
+ const hash = Hex.slice(id, 0, 32)
137
+ const chainId = Hex.slice(id, 32, 64)
138
+
139
+ const receipt = await getTransactionReceipt(client, { hash })
140
+ return {
141
+ atomic: true,
142
+ chainId: Number(chainId),
143
+ receipts: [receipt],
144
+ status: receipt.status === 'success' ? 200 : 500,
145
+ version: '2.0.0',
146
+ }
147
+ }
148
+
149
+ return t.request(args)
150
+ },
151
+ } as never
152
+ }
153
+ }
@@ -3,7 +3,7 @@ import { createRequestListener } from '@remix-run/node-fetch-server'
3
3
  import { RpcRequest, RpcResponse, WebCryptoP256 } from 'ox'
4
4
  import { Account, Transaction } from 'tempo.ts/viem'
5
5
  import { http, parseGwei, publicActions, walletActions } from 'viem'
6
- import { privateKeyToAccount } from 'viem/accounts'
6
+ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'
7
7
  import { afterAll, afterEach, beforeAll, describe, expect, test } from 'vitest'
8
8
  import { fetchOptions, rpcUrl } from '../../test/config.js'
9
9
  import {
@@ -157,10 +157,7 @@ describe('sendTransaction', () => {
157
157
  })
158
158
 
159
159
  test('with feePayer', async () => {
160
- const account = privateKeyToAccount(
161
- // unfunded PK
162
- '0xecc3fe55647412647e5c6b657c496803b08ef956f927b7a821da298cfbdd9666',
163
- )
160
+ const account = privateKeyToAccount(generatePrivateKey())
164
161
  const feePayer = accounts[0]
165
162
 
166
163
  const hash = await client.sendTransaction({
@@ -184,6 +181,7 @@ describe('sendTransaction', () => {
184
181
  maxPriorityFeePerGas,
185
182
  nonce,
186
183
  signature,
184
+ transactionIndex,
187
185
  ...transaction
188
186
  } = await client.getTransaction({ hash })
189
187
 
@@ -200,6 +198,7 @@ describe('sendTransaction', () => {
200
198
  expect(maxPriorityFeePerGas).toBeDefined()
201
199
  expect(nonce).toBeDefined()
202
200
  expect(signature).toBeDefined()
201
+ expect(transactionIndex).toBeDefined()
203
202
  expect(transaction).toMatchInlineSnapshot(`
204
203
  {
205
204
  "aaAuthorizationList": [],
@@ -213,11 +212,10 @@ describe('sendTransaction', () => {
213
212
  },
214
213
  ],
215
214
  "data": undefined,
216
- "feeToken": null,
215
+ "feeToken": "0x20c0000000000000000000000000000000000001",
217
216
  "maxFeePerBlobGas": undefined,
218
217
  "nonceKey": 0n,
219
218
  "to": null,
220
- "transactionIndex": 1,
221
219
  "type": "aa",
222
220
  "typeHex": "0x76",
223
221
  "v": undefined,
@@ -257,6 +255,7 @@ describe('sendTransaction', () => {
257
255
  maxPriorityFeePerGas,
258
256
  nonce,
259
257
  signature,
258
+ transactionIndex,
260
259
  ...transaction
261
260
  } = await client.getTransaction({
262
261
  hash: receipt.transactionHash,
@@ -273,6 +272,7 @@ describe('sendTransaction', () => {
273
272
  expect(maxPriorityFeePerGas).toBeDefined()
274
273
  expect(nonce).toBeDefined()
275
274
  expect(signature).toBeDefined()
275
+ expect(transactionIndex).toBeDefined()
276
276
  expect(transaction).toMatchInlineSnapshot(`
277
277
  {
278
278
  "aaAuthorizationList": [],
@@ -291,7 +291,6 @@ describe('sendTransaction', () => {
291
291
  "maxFeePerBlobGas": undefined,
292
292
  "nonceKey": 0n,
293
293
  "to": null,
294
- "transactionIndex": 1,
295
294
  "type": "aa",
296
295
  "typeHex": "0x76",
297
296
  "v": undefined,
@@ -338,6 +337,7 @@ describe('sendTransaction', () => {
338
337
  maxPriorityFeePerGas,
339
338
  nonce,
340
339
  signature,
340
+ transactionIndex,
341
341
  ...transaction
342
342
  } = await client.getTransaction({
343
343
  hash: receipt.transactionHash,
@@ -355,6 +355,7 @@ describe('sendTransaction', () => {
355
355
  expect(maxPriorityFeePerGas).toBeDefined()
356
356
  expect(nonce).toBeDefined()
357
357
  expect(signature).toBeDefined()
358
+ expect(transactionIndex).toBeDefined()
358
359
  expect(transaction).toMatchInlineSnapshot(`
359
360
  {
360
361
  "aaAuthorizationList": [],
@@ -366,7 +367,6 @@ describe('sendTransaction', () => {
366
367
  "maxFeePerBlobGas": undefined,
367
368
  "nonceKey": 0n,
368
369
  "to": null,
369
- "transactionIndex": 1,
370
370
  "type": "aa",
371
371
  "typeHex": "0x76",
372
372
  "v": undefined,
@@ -406,6 +406,7 @@ describe('sendTransaction', () => {
406
406
  maxPriorityFeePerGas,
407
407
  nonce,
408
408
  signature,
409
+ transactionIndex,
409
410
  ...transaction
410
411
  } = await client.getTransaction({ hash })
411
412
 
@@ -422,6 +423,7 @@ describe('sendTransaction', () => {
422
423
  expect(maxPriorityFeePerGas).toBeDefined()
423
424
  expect(nonce).toBeDefined()
424
425
  expect(signature).toBeDefined()
426
+ expect(transactionIndex).toBeDefined()
425
427
  expect(transaction).toMatchInlineSnapshot(`
426
428
  {
427
429
  "aaAuthorizationList": [],
@@ -435,11 +437,10 @@ describe('sendTransaction', () => {
435
437
  },
436
438
  ],
437
439
  "data": undefined,
438
- "feeToken": null,
440
+ "feeToken": "0x20c0000000000000000000000000000000000001",
439
441
  "maxFeePerBlobGas": undefined,
440
442
  "nonceKey": 0n,
441
443
  "to": null,
442
- "transactionIndex": 1,
443
444
  "type": "aa",
444
445
  "typeHex": "0x76",
445
446
  "v": undefined,
@@ -477,6 +478,7 @@ describe('sendTransaction', () => {
477
478
  maxPriorityFeePerGas,
478
479
  nonce,
479
480
  signature,
481
+ transactionIndex,
480
482
  ...transaction
481
483
  } = await client.getTransaction({
482
484
  hash: receipt.transactionHash,
@@ -492,6 +494,7 @@ describe('sendTransaction', () => {
492
494
  expect(maxPriorityFeePerGas).toBeDefined()
493
495
  expect(nonce).toBeDefined()
494
496
  expect(signature).toBeDefined()
497
+ expect(transactionIndex).toBeDefined()
495
498
  expect(transaction).toMatchInlineSnapshot(`
496
499
  {
497
500
  "aaAuthorizationList": [],
@@ -511,7 +514,6 @@ describe('sendTransaction', () => {
511
514
  "maxFeePerBlobGas": undefined,
512
515
  "nonceKey": 0n,
513
516
  "to": null,
514
- "transactionIndex": 1,
515
517
  "type": "aa",
516
518
  "typeHex": "0x76",
517
519
  "v": undefined,
@@ -648,6 +650,7 @@ describe('sendTransaction', () => {
648
650
  maxPriorityFeePerGas,
649
651
  nonce,
650
652
  signature,
653
+ transactionIndex,
651
654
  ...transaction
652
655
  } = await client.getTransaction({
653
656
  hash: receipt.transactionHash,
@@ -664,6 +667,7 @@ describe('sendTransaction', () => {
664
667
  expect(maxPriorityFeePerGas).toBeDefined()
665
668
  expect(nonce).toBeDefined()
666
669
  expect(signature).toBeDefined()
670
+ expect(transactionIndex).toBeDefined()
667
671
  expect(transaction).toMatchInlineSnapshot(`
668
672
  {
669
673
  "aaAuthorizationList": [],
@@ -682,7 +686,6 @@ describe('sendTransaction', () => {
682
686
  "maxFeePerBlobGas": undefined,
683
687
  "nonceKey": 0n,
684
688
  "to": null,
685
- "transactionIndex": 1,
686
689
  "type": "aa",
687
690
  "typeHex": "0x76",
688
691
  "v": undefined,
@@ -733,6 +736,7 @@ describe('sendTransaction', () => {
733
736
  maxPriorityFeePerGas,
734
737
  nonce,
735
738
  signature,
739
+ transactionIndex,
736
740
  ...transaction
737
741
  } = await client.getTransaction({
738
742
  hash: receipt.transactionHash,
@@ -750,6 +754,7 @@ describe('sendTransaction', () => {
750
754
  expect(maxPriorityFeePerGas).toBeDefined()
751
755
  expect(nonce).toBeDefined()
752
756
  expect(signature).toBeDefined()
757
+ expect(transactionIndex).toBeDefined()
753
758
  expect(transaction).toMatchInlineSnapshot(`
754
759
  {
755
760
  "aaAuthorizationList": [],
@@ -761,7 +766,6 @@ describe('sendTransaction', () => {
761
766
  "maxFeePerBlobGas": undefined,
762
767
  "nonceKey": 0n,
763
768
  "to": null,
764
- "transactionIndex": 1,
765
769
  "type": "aa",
766
770
  "typeHex": "0x76",
767
771
  "v": undefined,
@@ -805,6 +809,7 @@ describe('sendTransaction', () => {
805
809
  maxPriorityFeePerGas,
806
810
  nonce,
807
811
  signature,
812
+ transactionIndex,
808
813
  ...transaction
809
814
  } = await client.getTransaction({ hash })
810
815
 
@@ -821,6 +826,7 @@ describe('sendTransaction', () => {
821
826
  expect(maxPriorityFeePerGas).toBeDefined()
822
827
  expect(nonce).toBeDefined()
823
828
  expect(signature).toBeDefined()
829
+ expect(transactionIndex).toBeDefined()
824
830
  expect(transaction).toMatchInlineSnapshot(`
825
831
  {
826
832
  "aaAuthorizationList": [],
@@ -834,11 +840,10 @@ describe('sendTransaction', () => {
834
840
  },
835
841
  ],
836
842
  "data": undefined,
837
- "feeToken": null,
843
+ "feeToken": "0x20c0000000000000000000000000000000000001",
838
844
  "maxFeePerBlobGas": undefined,
839
845
  "nonceKey": 0n,
840
846
  "to": null,
841
- "transactionIndex": 1,
842
847
  "type": "aa",
843
848
  "typeHex": "0x76",
844
849
  "v": undefined,
@@ -892,6 +897,7 @@ describe('signTransaction', () => {
892
897
  maxPriorityFeePerGas,
893
898
  nonce,
894
899
  signature,
900
+ transactionIndex,
895
901
  ...transaction2
896
902
  } = await client.getTransaction({ hash })
897
903
 
@@ -907,6 +913,7 @@ describe('signTransaction', () => {
907
913
  expect(maxPriorityFeePerGas).toBeDefined()
908
914
  expect(nonce).toBeDefined()
909
915
  expect(signature).toBeDefined()
916
+ expect(transactionIndex).toBeDefined()
910
917
  expect(transaction2).toMatchInlineSnapshot(`
911
918
  {
912
919
  "aaAuthorizationList": [],
@@ -920,12 +927,11 @@ describe('signTransaction', () => {
920
927
  },
921
928
  ],
922
929
  "data": undefined,
923
- "feeToken": null,
930
+ "feeToken": "0x20c0000000000000000000000000000000000001",
924
931
  "gas": 24002n,
925
932
  "maxFeePerBlobGas": undefined,
926
933
  "nonceKey": 0n,
927
934
  "to": null,
928
- "transactionIndex": 1,
929
935
  "type": "aa",
930
936
  "typeHex": "0x76",
931
937
  "v": undefined,
@@ -1055,6 +1061,7 @@ describe('relay', () => {
1055
1061
  maxPriorityFeePerGas,
1056
1062
  nonce,
1057
1063
  signature,
1064
+ transactionIndex,
1058
1065
  ...transaction
1059
1066
  } = await client.getTransaction({ hash: receipt.transactionHash })
1060
1067
 
@@ -1071,6 +1078,7 @@ describe('relay', () => {
1071
1078
  expect(maxPriorityFeePerGas).toBeDefined()
1072
1079
  expect(nonce).toBeDefined()
1073
1080
  expect(signature).toBeDefined()
1081
+ expect(transactionIndex).toBeDefined()
1074
1082
  expect(transaction).toMatchInlineSnapshot(`
1075
1083
  {
1076
1084
  "aaAuthorizationList": [],
@@ -1084,11 +1092,10 @@ describe('relay', () => {
1084
1092
  },
1085
1093
  ],
1086
1094
  "data": undefined,
1087
- "feeToken": null,
1095
+ "feeToken": "0x20c0000000000000000000000000000000000001",
1088
1096
  "maxFeePerBlobGas": undefined,
1089
1097
  "nonceKey": 0n,
1090
1098
  "to": null,
1091
- "transactionIndex": 1,
1092
1099
  "type": "aa",
1093
1100
  "typeHex": "0x76",
1094
1101
  "v": undefined,
@@ -1135,6 +1142,7 @@ describe('relay', () => {
1135
1142
  maxPriorityFeePerGas,
1136
1143
  nonce,
1137
1144
  signature,
1145
+ transactionIndex,
1138
1146
  ...transaction
1139
1147
  } = await client.getTransaction({ hash: receipt.transactionHash })
1140
1148
 
@@ -1151,6 +1159,7 @@ describe('relay', () => {
1151
1159
  expect(maxPriorityFeePerGas).toBeDefined()
1152
1160
  expect(nonce).toBeDefined()
1153
1161
  expect(signature).toBeDefined()
1162
+ expect(transactionIndex).toBeDefined()
1154
1163
  expect(transaction).toMatchInlineSnapshot(`
1155
1164
  {
1156
1165
  "aaAuthorizationList": [],
@@ -1164,11 +1173,10 @@ describe('relay', () => {
1164
1173
  },
1165
1174
  ],
1166
1175
  "data": undefined,
1167
- "feeToken": null,
1176
+ "feeToken": "0x20c0000000000000000000000000000000000001",
1168
1177
  "maxFeePerBlobGas": undefined,
1169
1178
  "nonceKey": 0n,
1170
1179
  "to": null,
1171
- "transactionIndex": 1,
1172
1180
  "type": "aa",
1173
1181
  "typeHex": "0x76",
1174
1182
  "v": undefined,
@@ -1246,6 +1254,7 @@ describe('relay', () => {
1246
1254
  maxPriorityFeePerGas,
1247
1255
  nonce,
1248
1256
  signature,
1257
+ transactionIndex,
1249
1258
  ...transaction
1250
1259
  } = await client.getTransaction({ hash: receipt.transactionHash })
1251
1260
 
@@ -1262,6 +1271,7 @@ describe('relay', () => {
1262
1271
  expect(maxPriorityFeePerGas).toBeDefined()
1263
1272
  expect(nonce).toBeDefined()
1264
1273
  expect(signature).toBeDefined()
1274
+ expect(transactionIndex).toBeDefined()
1265
1275
  expect(transaction).toMatchInlineSnapshot(`
1266
1276
  {
1267
1277
  "aaAuthorizationList": [],
@@ -1275,11 +1285,10 @@ describe('relay', () => {
1275
1285
  },
1276
1286
  ],
1277
1287
  "data": undefined,
1278
- "feeToken": null,
1288
+ "feeToken": "0x20c0000000000000000000000000000000000001",
1279
1289
  "maxFeePerBlobGas": undefined,
1280
1290
  "nonceKey": 0n,
1281
1291
  "to": null,
1282
- "transactionIndex": 1,
1283
1292
  "type": "aa",
1284
1293
  "typeHex": "0x76",
1285
1294
  "v": undefined,
@@ -44,3 +44,46 @@ export declare namespace fund {
44
44
 
45
45
  export type ReturnValue = viem_Actions.fund.ReturnValue
46
46
  }
47
+
48
+ /**
49
+ * Funds an account with an initial amount of set token(s)
50
+ * on Tempo's testnet. Returns with the transaction receipts.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * import { createConfig, http } from '@wagmi/core'
55
+ * import { tempo } from 'tempo.ts/chains'
56
+ * import { Actions } from 'tempo.ts/wagmi'
57
+ *
58
+ * const config = createConfig({
59
+ * chains: [tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })],
60
+ * transports: {
61
+ * [tempo.id]: http(),
62
+ * },
63
+ * })
64
+ *
65
+ * const receipts = await Actions.faucet.fundSync(config, {
66
+ * account: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',
67
+ * })
68
+ * ```
69
+ *
70
+ * @param config - Config.
71
+ * @param parameters - Parameters.
72
+ * @returns The transaction hashes.
73
+ */
74
+ export async function fundSync<config extends Config>(
75
+ config: config,
76
+ parameters: fundSync.Parameters<config>,
77
+ ): Promise<fundSync.ReturnValue> {
78
+ const { chainId, ...rest } = parameters
79
+ const client = config.getClient({ chainId })
80
+ return viem_Actions.fundSync(client, rest)
81
+ }
82
+
83
+ export declare namespace fundSync {
84
+ export type Parameters<config extends Config> = UnionCompute<
85
+ ChainIdParameter<config> & viem_Actions.fundSync.Parameters
86
+ >
87
+
88
+ export type ReturnValue = viem_Actions.fundSync.ReturnValue
89
+ }
@@ -2,5 +2,6 @@ export * as amm from './amm.js'
2
2
  export * as dex from './dex.js'
3
3
  export * as faucet from './faucet.js'
4
4
  export * as fee from './fee.js'
5
+ export * as policy from './policy.js'
5
6
  export * as reward from './reward.js'
6
7
  export * as token from './token.js'