tapimo 0.0.1 → 0.1.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 (274) hide show
  1. package/README.md +13 -3
  2. package/dist/ApiKey.d.ts +12 -11
  3. package/dist/ApiKey.d.ts.map +1 -1
  4. package/dist/ApiKey.js +10 -12
  5. package/dist/ApiKey.js.map +1 -1
  6. package/dist/ApiKeys.d.ts +139 -0
  7. package/dist/ApiKeys.d.ts.map +1 -0
  8. package/dist/ApiKeys.js +166 -0
  9. package/dist/ApiKeys.js.map +1 -0
  10. package/dist/App.d.ts +920 -910
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +36 -12
  13. package/dist/App.js.map +1 -1
  14. package/dist/Handler.d.ts +86 -0
  15. package/dist/Handler.d.ts.map +1 -0
  16. package/dist/Handler.js +83 -0
  17. package/dist/Handler.js.map +1 -0
  18. package/dist/Scope.d.ts +4 -1
  19. package/dist/Scope.d.ts.map +1 -1
  20. package/dist/Scope.js +5 -1
  21. package/dist/Scope.js.map +1 -1
  22. package/dist/Webhooks.d.ts +3 -5
  23. package/dist/Webhooks.d.ts.map +1 -1
  24. package/dist/Webhooks.js +9 -2
  25. package/dist/Webhooks.js.map +1 -1
  26. package/dist/admin/Access.d.ts +1 -3
  27. package/dist/admin/Access.d.ts.map +1 -1
  28. package/dist/admin/Access.js +1 -3
  29. package/dist/admin/Access.js.map +1 -1
  30. package/dist/admin/App.d.ts +49 -160
  31. package/dist/admin/App.d.ts.map +1 -1
  32. package/dist/admin/App.js +2 -4
  33. package/dist/admin/App.js.map +1 -1
  34. package/dist/admin/apps/api-keys.d.ts +7 -5
  35. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  36. package/dist/admin/apps/api-keys.js +8 -9
  37. package/dist/admin/apps/api-keys.js.map +1 -1
  38. package/dist/admin/apps/scopes.d.ts +3 -0
  39. package/dist/admin/apps/scopes.d.ts.map +1 -1
  40. package/dist/admin/apps/verified-tokens.d.ts +101 -215
  41. package/dist/admin/apps/verified-tokens.d.ts.map +1 -1
  42. package/dist/admin/apps/verified-tokens.js +17 -38
  43. package/dist/admin/apps/verified-tokens.js.map +1 -1
  44. package/dist/admin/ui.generated.d.ts +1 -1
  45. package/dist/admin/ui.generated.js +13 -13
  46. package/dist/admin/ui.generated.js.map +1 -1
  47. package/dist/apps/balances.d.ts +43 -43
  48. package/dist/apps/coingecko.d.ts +176 -176
  49. package/dist/apps/coingecko.js +1 -1
  50. package/dist/apps/coingecko.js.map +1 -1
  51. package/dist/apps/receipts.d.ts +43 -43
  52. package/dist/apps/tokenlist.d.ts +36 -36
  53. package/dist/apps/tokens.d.ts +454 -454
  54. package/dist/apps/transactions.d.ts +43 -43
  55. package/dist/apps/transfers.d.ts +29 -29
  56. package/dist/apps/webhooks.d.ts +5 -2
  57. package/dist/apps/webhooks.d.ts.map +1 -1
  58. package/dist/apps/webhooks.js +38 -34
  59. package/dist/apps/webhooks.js.map +1 -1
  60. package/dist/{Cli.d.ts → cli/Cli.d.ts} +13 -2
  61. package/dist/cli/Cli.d.ts.map +1 -0
  62. package/dist/cli/Cli.js +19 -0
  63. package/dist/cli/Cli.js.map +1 -0
  64. package/dist/cli/bin.d.ts +3 -0
  65. package/dist/cli/bin.d.ts.map +1 -0
  66. package/dist/cli/bin.js +4 -0
  67. package/dist/cli/bin.js.map +1 -0
  68. package/dist/cli/commands/admin.d.ts +15 -0
  69. package/dist/cli/commands/admin.d.ts.map +1 -0
  70. package/dist/cli/commands/admin.js +60 -0
  71. package/dist/cli/commands/admin.js.map +1 -0
  72. package/dist/cloudflare.d.ts +7 -0
  73. package/dist/cloudflare.d.ts.map +1 -1
  74. package/dist/cloudflare.js +9 -0
  75. package/dist/cloudflare.js.map +1 -1
  76. package/dist/db/Db.d.ts +103 -0
  77. package/dist/db/Db.d.ts.map +1 -0
  78. package/dist/db/Db.js +274 -0
  79. package/dist/db/Db.js.map +1 -0
  80. package/dist/db/Schema.d.ts +88 -0
  81. package/dist/db/Schema.d.ts.map +1 -0
  82. package/dist/db/Schema.js +130 -0
  83. package/dist/db/Schema.js.map +1 -0
  84. package/dist/db/tables/organizations.d.ts +79 -0
  85. package/dist/db/tables/organizations.d.ts.map +1 -0
  86. package/dist/db/tables/organizations.js +81 -0
  87. package/dist/db/tables/organizations.js.map +1 -0
  88. package/dist/db/tables/verifiedTokens.d.ts +53 -0
  89. package/dist/db/tables/verifiedTokens.d.ts.map +1 -0
  90. package/dist/db/tables/verifiedTokens.js +74 -0
  91. package/dist/db/tables/verifiedTokens.js.map +1 -0
  92. package/dist/db/tables/webhookDeliveries.d.ts +71 -0
  93. package/dist/db/tables/webhookDeliveries.d.ts.map +1 -0
  94. package/dist/db/tables/webhookDeliveries.js +119 -0
  95. package/dist/db/tables/webhookDeliveries.js.map +1 -0
  96. package/dist/db/tables/webhookSubscriptions.d.ts +158 -0
  97. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -0
  98. package/dist/db/tables/webhookSubscriptions.js +272 -0
  99. package/dist/db/tables/webhookSubscriptions.js.map +1 -0
  100. package/dist/handlers/internal/executionError.d.ts +25 -0
  101. package/dist/handlers/internal/executionError.d.ts.map +1 -0
  102. package/dist/handlers/internal/executionError.js +184 -0
  103. package/dist/handlers/internal/executionError.js.map +1 -0
  104. package/dist/handlers/internal/multisig.d.ts +237 -0
  105. package/dist/handlers/internal/multisig.d.ts.map +1 -0
  106. package/dist/handlers/internal/multisig.js +567 -0
  107. package/dist/handlers/internal/multisig.js.map +1 -0
  108. package/dist/handlers/internal/requestListener.d.ts +124 -0
  109. package/dist/handlers/internal/requestListener.d.ts.map +1 -0
  110. package/dist/handlers/internal/requestListener.js +173 -0
  111. package/dist/handlers/internal/requestListener.js.map +1 -0
  112. package/dist/handlers/internal/sponsorship.d.ts +83 -0
  113. package/dist/handlers/internal/sponsorship.d.ts.map +1 -0
  114. package/dist/handlers/internal/sponsorship.js +103 -0
  115. package/dist/handlers/internal/sponsorship.js.map +1 -0
  116. package/dist/handlers/internal/types.d.ts +284 -0
  117. package/dist/handlers/internal/types.d.ts.map +1 -0
  118. package/dist/handlers/internal/types.js +2 -0
  119. package/dist/handlers/internal/types.js.map +1 -0
  120. package/dist/handlers/internal/utils.d.ts +34 -0
  121. package/dist/handlers/internal/utils.d.ts.map +1 -0
  122. package/dist/handlers/internal/utils.js +131 -0
  123. package/dist/handlers/internal/utils.js.map +1 -0
  124. package/dist/handlers/relay.d.ts +119 -0
  125. package/dist/handlers/relay.d.ts.map +1 -0
  126. package/dist/handlers/relay.js +1264 -0
  127. package/dist/handlers/relay.js.map +1 -0
  128. package/dist/index.d.ts +4 -2
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +4 -2
  131. package/dist/index.js.map +1 -1
  132. package/dist/internal/Auth.d.ts +16 -10
  133. package/dist/internal/Auth.d.ts.map +1 -1
  134. package/dist/internal/Auth.js +78 -13
  135. package/dist/internal/Auth.js.map +1 -1
  136. package/dist/internal/RpcSchema.d.ts +10 -0
  137. package/dist/internal/RpcSchema.d.ts.map +1 -0
  138. package/dist/internal/RpcSchema.js +2 -0
  139. package/dist/internal/RpcSchema.js.map +1 -0
  140. package/dist/internal/Store.d.ts +42 -3
  141. package/dist/internal/Store.d.ts.map +1 -1
  142. package/dist/internal/Store.js +87 -8
  143. package/dist/internal/Store.js.map +1 -1
  144. package/dist/internal/VerifiedTokens.d.ts +15 -34
  145. package/dist/internal/VerifiedTokens.d.ts.map +1 -1
  146. package/dist/internal/VerifiedTokens.js +115 -159
  147. package/dist/internal/VerifiedTokens.js.map +1 -1
  148. package/dist/internal/Viem.d.ts +81 -7
  149. package/dist/internal/Viem.d.ts.map +1 -1
  150. package/dist/internal/Webhooks.d.ts +49 -35
  151. package/dist/internal/Webhooks.d.ts.map +1 -1
  152. package/dist/internal/Webhooks.js +92 -205
  153. package/dist/internal/Webhooks.js.map +1 -1
  154. package/package.json +10 -5
  155. package/src/ApiKey.test.ts +3 -3
  156. package/src/ApiKey.ts +10 -12
  157. package/src/ApiKeys.test.ts +175 -0
  158. package/src/ApiKeys.ts +205 -0
  159. package/src/App.test-d.ts +1 -1
  160. package/src/App.test.ts +10768 -351
  161. package/src/App.ts +79 -36
  162. package/src/Client.test-d.ts +1 -1
  163. package/src/Handler.ts +154 -0
  164. package/src/Scope.ts +5 -1
  165. package/src/Webhooks.test.ts +8 -7
  166. package/src/Webhooks.ts +11 -5
  167. package/src/admin/Access.ts +1 -3
  168. package/src/admin/App.ts +19 -24
  169. package/src/admin/apps/api-keys.test.ts +19 -18
  170. package/src/admin/apps/api-keys.ts +8 -9
  171. package/src/admin/apps/scopes.test.ts +4 -0
  172. package/src/admin/apps/verified-tokens.test.ts +3 -30
  173. package/src/admin/apps/verified-tokens.ts +17 -36
  174. package/src/admin/ui.generated.ts +13 -13
  175. package/src/apps/balances.test.ts +4 -3
  176. package/src/apps/blocks.test.ts +1 -1
  177. package/src/apps/coingecko.ts +1 -1
  178. package/src/apps/exchanges.test.ts +1 -1
  179. package/src/apps/indexer.test.ts +2 -2
  180. package/src/apps/receipts.test.ts +1 -1
  181. package/src/apps/rpc.test.ts +100 -10
  182. package/src/apps/tokenlist.test.ts +5 -7
  183. package/src/apps/tokens.test.ts +4 -3
  184. package/src/apps/transactions.test.ts +1 -1
  185. package/src/apps/transfers.test.ts +1 -1
  186. package/src/apps/verified-tokens.test.ts +24 -12
  187. package/src/apps/webhooks.test.ts +131 -144
  188. package/src/apps/webhooks.ts +45 -47
  189. package/src/{Cli.test.ts → cli/Cli.test.ts} +10 -9
  190. package/src/{Cli.ts → cli/Cli.ts} +16 -9
  191. package/src/cli/bin.ts +4 -0
  192. package/src/cli/commands/admin.test.ts +71 -0
  193. package/src/cli/commands/admin.ts +60 -0
  194. package/src/cloudflare.ts +10 -0
  195. package/src/db/Db.test.ts +84 -0
  196. package/src/db/Db.ts +383 -0
  197. package/src/db/Schema.ts +164 -0
  198. package/src/db/tables/organizations.test.ts +124 -0
  199. package/src/db/tables/organizations.ts +127 -0
  200. package/src/db/tables/verifiedTokens.ts +111 -0
  201. package/src/db/tables/webhookDeliveries.ts +159 -0
  202. package/src/db/tables/webhookSubscriptions.ts +358 -0
  203. package/src/handlers/internal/executionError.ts +205 -0
  204. package/src/handlers/internal/multisig.localnet.test.ts +146 -0
  205. package/src/handlers/internal/multisig.test.ts +744 -0
  206. package/src/handlers/internal/multisig.ts +858 -0
  207. package/src/handlers/internal/relay.localnet.test.ts +2035 -0
  208. package/src/handlers/internal/requestListener.ts +273 -0
  209. package/src/handlers/internal/sponsorship.ts +186 -0
  210. package/src/handlers/internal/types.ts +378 -0
  211. package/src/handlers/internal/utils.ts +153 -0
  212. package/src/handlers/relay.ts +1605 -0
  213. package/src/index.ts +4 -2
  214. package/src/internal/Auth.test.ts +78 -20
  215. package/src/internal/Auth.ts +98 -20
  216. package/src/internal/RateLimit.test.ts +1 -1
  217. package/src/internal/RpcSchema.ts +10 -0
  218. package/src/internal/Store.test.ts +179 -7
  219. package/src/internal/Store.ts +136 -11
  220. package/src/internal/VerifiedTokens.test.ts +99 -115
  221. package/src/internal/VerifiedTokens.ts +123 -175
  222. package/src/internal/Viem.ts +2 -1
  223. package/src/internal/Webhooks.test.ts +107 -107
  224. package/src/internal/Webhooks.ts +102 -220
  225. package/dist/ApiKeySource.d.ts +0 -166
  226. package/dist/ApiKeySource.d.ts.map +0 -1
  227. package/dist/ApiKeySource.js +0 -234
  228. package/dist/ApiKeySource.js.map +0 -1
  229. package/dist/Cli.d.ts.map +0 -1
  230. package/dist/Cli.js +0 -13
  231. package/dist/Cli.js.map +0 -1
  232. package/seeds/31318/icons/0x20c0000000000000000000000000000000000000.svg +0 -1
  233. package/seeds/31318/icons/0x20c0000000000000000000000000000000000001.svg +0 -1
  234. package/seeds/31318/icons/0x20c0000000000000000000000000000000000002.svg +0 -1
  235. package/seeds/31318/icons/0x20c0000000000000000000000000000000000003.svg +0 -1
  236. package/seeds/31318/verified-tokens.json +0 -30
  237. package/seeds/4217/icons/0x20c0000000000000000000000000000000000000.svg +0 -25
  238. package/seeds/4217/icons/0x20c000000000000000000000048c8f36df1c9a4a.svg +0 -1
  239. package/seeds/4217/icons/0x20c0000000000000000000000520792dcccccccc.svg +0 -1
  240. package/seeds/4217/icons/0x20c0000000000000000000000a6da882d075a4c3.svg +0 -4
  241. package/seeds/4217/icons/0x20c000000000000000000000111111111e910f0f.svg +0 -30
  242. package/seeds/4217/icons/0x20c00000000000000000000014f22ca97301eb73.svg +0 -1
  243. package/seeds/4217/icons/0x20c0000000000000000000001621e21f71cf12fb.svg +0 -1
  244. package/seeds/4217/icons/0x20c0000000000000000000002f52d5cc21a3207b.svg +0 -1
  245. package/seeds/4217/icons/0x20c0000000000000000000003158081efd85bfc2.svg +0 -11
  246. package/seeds/4217/icons/0x20c0000000000000000000003554d28269e0f3c2.svg +0 -1
  247. package/seeds/4217/icons/0x20c000000000000000000000383a23bacb546ab9.svg +0 -1
  248. package/seeds/4217/icons/0x20c00000000000000000000042109aef2f8b28e1.png +0 -0
  249. package/seeds/4217/icons/0x20c0000000000000000000005c0bac7cef389a11.svg +0 -1
  250. package/seeds/4217/icons/0x20c0000000000000000000006fd9a167923ba194.png +0 -0
  251. package/seeds/4217/icons/0x20c0000000000000000000007f7ba549dd0251b9.svg +0 -1
  252. package/seeds/4217/icons/0x20c0000000000000000000008191667423f70e67.svg +0 -5
  253. package/seeds/4217/icons/0x20c0000000000000000000008ee4fcff88888888.svg +0 -1
  254. package/seeds/4217/icons/0x20c0000000000000000000009a4a4b17e0dc6651.svg +0 -1
  255. package/seeds/4217/icons/0x20c000000000000000000000ab02d39df30bd17e.svg +0 -1
  256. package/seeds/4217/icons/0x20c000000000000000000000ae247a1130450f09.svg +0 -1
  257. package/seeds/4217/icons/0x20c000000000000000000000aeed2ec36a54d0e5.svg +0 -1
  258. package/seeds/4217/icons/0x20c000000000000000000000b9537d11c60e8b50.svg +0 -1
  259. package/seeds/4217/icons/0x20c000000000000000000000bd95bfb69fbe6ce3.svg +0 -1
  260. package/seeds/4217/icons/0x20c000000000000000000000c412ec89d0c08be5.svg +0 -1
  261. package/seeds/4217/icons/0x20c000000000000000000000f047dd7018e50367.png +0 -0
  262. package/seeds/4217/verified-tokens.json +0 -177
  263. package/seeds/42431/icons/0x20c0000000000000000000000000000000000000.svg +0 -25
  264. package/seeds/42431/icons/0x20c0000000000000000000000000000000000001.svg +0 -1
  265. package/seeds/42431/icons/0x20c0000000000000000000000000000000000002.svg +0 -1
  266. package/seeds/42431/icons/0x20c0000000000000000000000000000000000003.svg +0 -1
  267. package/seeds/42431/icons/0x20c0000000000000000000009e8d7eb59b783726.svg +0 -1
  268. package/seeds/42431/icons/0x20c000000000000000000000d72572838bbee59c.svg +0 -1
  269. package/seeds/42431/verified-tokens.json +0 -44
  270. package/seeds/openrpc/README.md +0 -27
  271. package/seeds/openrpc/execution-apis.json +0 -8989
  272. package/src/ApiKeySource.test-d.ts +0 -11
  273. package/src/ApiKeySource.test.ts +0 -295
  274. package/src/ApiKeySource.ts +0 -303
package/dist/Webhooks.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import * as AppWebhooks from './apps/webhooks.js';
2
+ import * as Db from './db/Db.js';
2
3
  import * as MetricSink from './internal/MetricSink.js';
4
+ import * as Store from './internal/Store.js';
3
5
  import * as Tidx from './internal/Tidx.js';
4
6
  import * as Viem from './internal/Viem.js';
5
7
  // Re-export the runtime-agnostic primitives (subscriptions, signing, delivery,
@@ -30,7 +32,9 @@ export { eventTypes, schema } from './apps/webhooks.js';
30
32
  * request state.
31
33
  */
32
34
  export function createPoller(options) {
33
- const { store } = options.webhook;
35
+ // Persistent memoize cache for token metadata, shared across ticks (the
36
+ // webhook state store used to double-duty as this cache).
37
+ const cache = Store.memory();
34
38
  const getTidx = options.tidx
35
39
  ? Tidx.createGetClient({ defaultChainId: options.defaultChainId, tidx: options.tidx })
36
40
  : undefined;
@@ -70,9 +74,13 @@ export function createPoller(options) {
70
74
  try {
71
75
  const result = await AppWebhooks.poll({
72
76
  batchSize: input.batchSize ?? options.batchSize,
77
+ cache,
73
78
  chainId,
74
79
  client: getClient(chainId),
75
80
  confirmations: input.confirmations ?? options.confirmations,
81
+ // Resolve per tick so Workers factories build a fresh
82
+ // Hyperdrive-pooled connection each run.
83
+ db: Db.get(options.db),
76
84
  dispatch,
77
85
  eventTypes: input.eventTypes ?? options.eventTypes,
78
86
  ...(input.headBlockNumber === undefined
@@ -80,7 +88,6 @@ export function createPoller(options) {
80
88
  : { headBlockNumber: input.headBlockNumber }),
81
89
  maxBlocks: input.maxBlocks ?? options.maxBlocks,
82
90
  now: input.now ?? options.now,
83
- store,
84
91
  ...(getTidx ? { tidx: getTidx(chainId) } : {}),
85
92
  });
86
93
  metrics?.record({
@@ -1 +1 @@
1
- {"version":3,"file":"Webhooks.js","sourceRoot":"","sources":["../src/Webhooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Webhooks.js","sourceRoot":"","sources":["../src/Webhooks.ts"],"names":[],"mappings":"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"}
@@ -20,10 +20,8 @@ import type * as App from './App.js';
20
20
  * ```ts
21
21
  * import { App, Access } from 'tapimo/admin'
22
22
  *
23
- * const source = {} as App.create.Options['apiKey']['source']
24
- *
25
23
  * App.create({
26
- * apiKey: { source },
24
+ * // ...
27
25
  * identify: Access.cloudflareAccess({
28
26
  * teamDomain: 'https://tempo.cloudflareaccess.com',
29
27
  * }),
@@ -1 +1 @@
1
- {"version":3,"file":"Access.d.ts","sourceRoot":"","sources":["../../src/admin/Access.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;AAOpC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,CAAC,OAAO,GAChC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAmBpD;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,4CAA4C;IAC5C,KAAK,OAAO,GAAG;QACb,gGAAgG;QAChG,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF"}
1
+ {"version":3,"file":"Access.d.ts","sourceRoot":"","sources":["../../src/admin/Access.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;AAOpC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,CAAC,OAAO,GAChC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAmBpD;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,4CAA4C;IAC5C,KAAK,OAAO,GAAG;QACb,gGAAgG;QAChG,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF"}
@@ -24,10 +24,8 @@ const cookieName = 'CF_Authorization';
24
24
  * ```ts
25
25
  * import { App, Access } from 'tapimo/admin'
26
26
  *
27
- * const source = {} as App.create.Options['apiKey']['source']
28
- *
29
27
  * App.create({
30
- * apiKey: { source },
28
+ * // ...
31
29
  * identify: Access.cloudflareAccess({
32
30
  * teamDomain: 'https://tempo.cloudflareaccess.com',
33
31
  * }),
@@ -1 +1 @@
1
- {"version":3,"file":"Access.js","sourceRoot":"","sources":["../../src/admin/Access.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAI5B,gFAAgF;AAChF,MAAM,UAAU,GAAG,yBAAyB,CAAA;AAC5C,4EAA4E;AAC5E,MAAM,UAAU,GAAG,kBAAkB,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAiC;IAEjC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IAE9B,8EAA8E;IAC9E,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,uBAAuB,CAAC,CAAC,CAAA;IAE/E,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACjE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;YACjE,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAUD;;;GAGG;AACH,SAAS,SAAS,CAAC,OAAgB;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9C,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"Access.js","sourceRoot":"","sources":["../../src/admin/Access.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAI5B,gFAAgF;AAChF,MAAM,UAAU,GAAG,yBAAyB,CAAA;AAC5C,4EAA4E;AAC5E,MAAM,UAAU,GAAG,kBAAkB,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAiC;IAEjC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IAE9B,8EAA8E;IAC9E,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,uBAAuB,CAAC,CAAC,CAAA;IAE/E,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACjE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;YACjE,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAUD;;;GAGG;AACH,SAAS,SAAS,CAAC,OAAgB;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9C,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { type RequestIdVariables } from 'hono/request-id';
2
- import * as ApiKeySource from '../ApiKeySource.js';
3
2
  import type * as Assets from '../Assets.js';
4
- import * as Response from '../internal/Response.js';
3
+ import type * as Db from '../db/Db.js';
5
4
  import type * as Store from '../internal/Store.js';
5
+ import * as Response from '../internal/Response.js';
6
6
  /** A verified admin identity, as returned by {@link create.Options.identify}. */
7
7
  export type Identity = {
8
8
  /** The admin's verified email, recorded as `createdBy` on every minted key. */
@@ -13,14 +13,14 @@ export type Environment = {
13
13
  Variables: RequestIdVariables & {
14
14
  /** Static-asset writer (e.g. the R2 icon bucket), when configured. */
15
15
  assets: create.Assets | undefined;
16
+ /** Authoritative Postgres store, or a per-request factory. Resolve at the leaf with `Db.get`. */
17
+ db: Db.Source;
18
+ /** KV state store backing API-key records (mint/list/revoke). */
19
+ kv: {
20
+ store: Store.State;
21
+ };
16
22
  /** The admin identity, or `null` when unauthenticated (gated routes reject). */
17
23
  identity: Identity | null;
18
- /** The API-key source provisioned against (mint/list/revoke). */
19
- source: ApiKeySource.Source;
20
- /** Verified-token state store, when management is enabled. */
21
- verifiedTokens: {
22
- store: Store.State;
23
- } | undefined;
24
24
  };
25
25
  };
26
26
  /** The admin portal Hono app. Inferred from {@link create}. */
@@ -36,6 +36,9 @@ export declare function create(options: create.Options): import("hono/hono-base"
36
36
  }, {
37
37
  readonly description: 'Run ad-hoc queries against the raw indexer passthrough.';
38
38
  readonly scope: 'indexer:query';
39
+ }, {
40
+ readonly description: 'Fill and submit transactions through the relay.';
41
+ readonly scope: 'rpc-relay';
39
42
  }, {
40
43
  readonly description: 'Read webhook subscriptions.';
41
44
  readonly scope: 'webhooks:read';
@@ -62,7 +65,7 @@ export declare function create(options: create.Options): import("hono/hono-base"
62
65
  perMinute: number;
63
66
  };
64
67
  } | undefined;
65
- scopes: readonly ("*" | "data:read" | "indexer:query" | "webhooks:read" | "webhooks:write")[];
68
+ scopes: readonly ("*" | "data:read" | "indexer:query" | "rpc-relay" | "webhooks:read" | "webhooks:write")[];
66
69
  createdAt: string;
67
70
  createdBy?: string | undefined;
68
71
  expiresAt?: string | undefined;
@@ -78,7 +81,7 @@ export declare function create(options: create.Options): import("hono/hono-base"
78
81
  rateLimits?: Record<string, {
79
82
  perMinute: number;
80
83
  }> | undefined;
81
- scopes: readonly ("*" | "data:read" | "indexer:query" | "webhooks:read" | "webhooks:write")[];
84
+ scopes: readonly ("*" | "data:read" | "indexer:query" | "rpc-relay" | "webhooks:read" | "webhooks:write")[];
82
85
  expiresAt?: string | undefined;
83
86
  orgId?: string | undefined;
84
87
  };
@@ -99,7 +102,7 @@ export declare function create(options: create.Options): import("hono/hono-base"
99
102
  perMinute: number;
100
103
  };
101
104
  } | undefined;
102
- scopes: readonly ("*" | "data:read" | "indexer:query" | "webhooks:read" | "webhooks:write")[];
105
+ scopes: readonly ("*" | "data:read" | "indexer:query" | "rpc-relay" | "webhooks:read" | "webhooks:write")[];
103
106
  createdAt: string;
104
107
  createdBy?: string | undefined;
105
108
  expiresAt?: string | undefined;
@@ -149,22 +152,6 @@ export declare function create(options: create.Options): import("hono/hono-base"
149
152
  }, "/api-keys"> | import("hono/types").MergeSchemaPath<{
150
153
  "/": {
151
154
  $get: {
152
- output: {
153
- error: {
154
- code: "verified_tokens_not_enabled";
155
- details?: readonly Response.error.Detail[] | undefined;
156
- message: string;
157
- };
158
- requestId: string;
159
- };
160
- outputFormat: "json";
161
- status: 404;
162
- input: {
163
- query: {
164
- chainId: string | string[];
165
- };
166
- };
167
- } | {
168
155
  output: {
169
156
  data: {
170
157
  address: `0x${string}`;
@@ -191,14 +178,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
191
178
  $post: {
192
179
  output: {
193
180
  error: {
194
- code: "upstream_error";
181
+ code: string;
195
182
  details?: readonly Response.error.Detail[] | undefined;
196
183
  message: string;
197
184
  };
198
185
  requestId: string;
199
186
  };
200
187
  outputFormat: "json";
201
- status: 502;
188
+ status: 400 | 413 | 415;
202
189
  input: {
203
190
  json: {
204
191
  address: `0x${string}`;
@@ -214,14 +201,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
214
201
  } | {
215
202
  output: {
216
203
  error: {
217
- code: "verified_tokens_not_enabled";
204
+ code: "upstream_error";
218
205
  details?: readonly Response.error.Detail[] | undefined;
219
206
  message: string;
220
207
  };
221
208
  requestId: string;
222
209
  };
223
210
  outputFormat: "json";
224
- status: 404;
211
+ status: 502;
225
212
  input: {
226
213
  json: {
227
214
  address: `0x${string}`;
@@ -284,29 +271,6 @@ export declare function create(options: create.Options): import("hono/hono-base"
284
271
  logo?: string | undefined;
285
272
  };
286
273
  };
287
- } | {
288
- output: {
289
- error: {
290
- code: string;
291
- details?: readonly Response.error.Detail[] | undefined;
292
- message: string;
293
- };
294
- requestId: string;
295
- };
296
- outputFormat: "json";
297
- status: 400 | 413 | 415;
298
- input: {
299
- json: {
300
- address: `0x${string}`;
301
- currency: string;
302
- decimals: number;
303
- logoUri?: string | undefined;
304
- name: string;
305
- symbol: string;
306
- chainId: unknown;
307
- logo?: string | undefined;
308
- };
309
- };
310
274
  } | {
311
275
  output: {
312
276
  error: {
@@ -406,41 +370,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
406
370
  $put: {
407
371
  output: {
408
372
  error: {
409
- code: "upstream_error";
410
- details?: readonly Response.error.Detail[] | undefined;
411
- message: string;
412
- };
413
- requestId: string;
414
- };
415
- outputFormat: "json";
416
- status: 502;
417
- input: {
418
- query: {
419
- chainId: string | string[];
420
- };
421
- } & {
422
- json: {
423
- tokens: {
424
- address: `0x${string}`;
425
- currency: string;
426
- decimals: number;
427
- logoUri?: string | undefined;
428
- name: string;
429
- symbol: string;
430
- }[];
431
- };
432
- };
433
- } | {
434
- output: {
435
- error: {
436
- code: "verified_tokens_not_enabled";
373
+ code: string;
437
374
  details?: readonly Response.error.Detail[] | undefined;
438
375
  message: string;
439
376
  };
440
377
  requestId: string;
441
378
  };
442
379
  outputFormat: "json";
443
- status: 404;
380
+ status: 400 | 413 | 415;
444
381
  input: {
445
382
  query: {
446
383
  chainId: string | string[];
@@ -460,14 +397,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
460
397
  } | {
461
398
  output: {
462
399
  error: {
463
- code: string;
400
+ code: "upstream_error";
464
401
  details?: readonly Response.error.Detail[] | undefined;
465
402
  message: string;
466
403
  };
467
404
  requestId: string;
468
405
  };
469
406
  outputFormat: "json";
470
- status: 400 | 413 | 415;
407
+ status: 502;
471
408
  input: {
472
409
  query: {
473
410
  chainId: string | string[];
@@ -630,14 +567,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
630
567
  $patch: {
631
568
  output: {
632
569
  error: {
633
- code: "upstream_error";
570
+ code: string;
634
571
  details?: readonly Response.error.Detail[] | undefined;
635
572
  message: string;
636
573
  };
637
574
  requestId: string;
638
575
  };
639
576
  outputFormat: "json";
640
- status: 502;
577
+ status: 400 | 413 | 415;
641
578
  input: {
642
579
  param: {
643
580
  address: `0x${string}`;
@@ -658,14 +595,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
658
595
  } | {
659
596
  output: {
660
597
  error: {
661
- code: "verified_tokens_not_enabled";
598
+ code: "upstream_error";
662
599
  details?: readonly Response.error.Detail[] | undefined;
663
600
  message: string;
664
601
  };
665
602
  requestId: string;
666
603
  };
667
604
  outputFormat: "json";
668
- status: 404;
605
+ status: 502;
669
606
  input: {
670
607
  param: {
671
608
  address: `0x${string}`;
@@ -715,34 +652,6 @@ export declare function create(options: create.Options): import("hono/hono-base"
715
652
  symbol?: string | undefined;
716
653
  };
717
654
  };
718
- } | {
719
- output: {
720
- error: {
721
- code: string;
722
- details?: readonly Response.error.Detail[] | undefined;
723
- message: string;
724
- };
725
- requestId: string;
726
- };
727
- outputFormat: "json";
728
- status: 400 | 413 | 415;
729
- input: {
730
- param: {
731
- address: `0x${string}`;
732
- };
733
- } & {
734
- query: {
735
- chainId: string | string[];
736
- };
737
- } & {
738
- json: {
739
- currency?: string | undefined;
740
- decimals?: number | undefined;
741
- logoUri?: string | undefined;
742
- name?: string | undefined;
743
- symbol?: string | undefined;
744
- };
745
- };
746
655
  } | {
747
656
  output: {
748
657
  error: {
@@ -862,34 +771,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
862
771
  $delete: {
863
772
  output: {
864
773
  error: {
865
- code: "upstream_error";
866
- details?: readonly Response.error.Detail[] | undefined;
867
- message: string;
868
- };
869
- requestId: string;
870
- };
871
- outputFormat: "json";
872
- status: 502;
873
- input: {
874
- param: {
875
- address: `0x${string}`;
876
- };
877
- } & {
878
- query: {
879
- chainId: string | string[];
880
- };
881
- };
882
- } | {
883
- output: {
884
- error: {
885
- code: "verified_tokens_not_enabled";
774
+ code: string;
886
775
  details?: readonly Response.error.Detail[] | undefined;
887
776
  message: string;
888
777
  };
889
778
  requestId: string;
890
779
  };
891
780
  outputFormat: "json";
892
- status: 404;
781
+ status: 400 | 413 | 415;
893
782
  input: {
894
783
  param: {
895
784
  address: `0x${string}`;
@@ -902,14 +791,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
902
791
  } | {
903
792
  output: {
904
793
  error: {
905
- code: string;
794
+ code: "upstream_error";
906
795
  details?: readonly Response.error.Detail[] | undefined;
907
796
  message: string;
908
797
  };
909
798
  requestId: string;
910
799
  };
911
800
  outputFormat: "json";
912
- status: 400 | 413 | 415;
801
+ status: 502;
913
802
  input: {
914
803
  param: {
915
804
  address: `0x${string}`;
@@ -1058,14 +947,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
1058
947
  $put: {
1059
948
  output: {
1060
949
  error: {
1061
- code: "assets_not_enabled";
950
+ code: "body_invalid";
1062
951
  details?: readonly Response.error.Detail[] | undefined;
1063
952
  message: string;
1064
953
  };
1065
954
  requestId: string;
1066
955
  };
1067
956
  outputFormat: "json";
1068
- status: 404;
957
+ status: 400;
1069
958
  input: {
1070
959
  param: {
1071
960
  address: `0x${string}`;
@@ -1078,14 +967,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
1078
967
  } | {
1079
968
  output: {
1080
969
  error: {
1081
- code: "unsupported_media_type";
970
+ code: "assets_not_enabled";
1082
971
  details?: readonly Response.error.Detail[] | undefined;
1083
972
  message: string;
1084
973
  };
1085
974
  requestId: string;
1086
975
  };
1087
976
  outputFormat: "json";
1088
- status: 415;
977
+ status: 404;
1089
978
  input: {
1090
979
  param: {
1091
980
  address: `0x${string}`;
@@ -1098,14 +987,14 @@ export declare function create(options: create.Options): import("hono/hono-base"
1098
987
  } | {
1099
988
  output: {
1100
989
  error: {
1101
- code: "body_invalid";
990
+ code: "unsupported_media_type";
1102
991
  details?: readonly Response.error.Detail[] | undefined;
1103
992
  message: string;
1104
993
  };
1105
994
  requestId: string;
1106
995
  };
1107
996
  outputFormat: "json";
1108
- status: 400;
997
+ status: 415;
1109
998
  input: {
1110
999
  param: {
1111
1000
  address: `0x${string}`;
@@ -1180,16 +1069,24 @@ export declare namespace create {
1180
1069
  type Assets = Assets.Assets;
1181
1070
  /** Options for {@link create}. */
1182
1071
  type Options = {
1183
- /** API-key provisioning config (mirrors the API app's `apiKey` option). */
1184
- apiKey: {
1185
- /** Source to provision against (mint/list/revoke). */
1186
- source: ApiKeySource.Source;
1187
- };
1188
1072
  /**
1189
1073
  * Static-asset writer for logo uploads (shared with the main API's `assets`
1190
1074
  * loader) to enable `PUT /verified-tokens/:address/logo`; omit for `404`.
1191
1075
  */
1192
1076
  assets?: Assets | undefined;
1077
+ /**
1078
+ * Authoritative Postgres store shared with the main API (verified
1079
+ * tokens). Pass a long-lived `Db.postgres(...)` singleton on Node, or a
1080
+ * factory (`() => Db.postgres(...)`) on Workers.
1081
+ */
1082
+ db: Db.Source;
1083
+ /**
1084
+ * KV state store backing API-key records (shared with the main API's
1085
+ * `kv` option), provisioned against by the `/api-keys` routes.
1086
+ */
1087
+ kv: {
1088
+ store: Store.State;
1089
+ };
1193
1090
  /**
1194
1091
  * Extracts the verified admin identity from a request, or `null` to deny.
1195
1092
  * Must only return an identity for an already-authenticated request (a
@@ -1201,14 +1098,6 @@ export declare namespace create {
1201
1098
  * `loginUrl`/`logoutUrl` are surfaced in `GET /config.json`.
1202
1099
  */
1203
1100
  ui?: Ui | false | undefined;
1204
- /**
1205
- * Verified-token management config (store shared with the main API's reads)
1206
- * to enable the `/verified-tokens` routes; omit to serve them as `404`.
1207
- */
1208
- verifiedTokens?: {
1209
- /** Verified-token state store (shared with the main API's reads). */
1210
- store: Store.State;
1211
- } | undefined;
1212
1101
  };
1213
1102
  /** Admin UI options surfaced to the SPA via `GET /config.json`. */
1214
1103
  type Ui = {
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/admin/App.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/admin/App.ts"],"names":[],"mappings":"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"}
package/dist/admin/App.js CHANGED
@@ -2,7 +2,6 @@ import { Hono } from 'hono';
2
2
  import { HTTPException } from 'hono/http-exception';
3
3
  import { requestId } from 'hono/request-id';
4
4
  import * as ApiKey from '../ApiKey.js';
5
- import * as ApiKeySource from '../ApiKeySource.js';
6
5
  import * as Response from '../internal/Response.js';
7
6
  import { apiKeys } from './apps/api-keys.js';
8
7
  import { scopes } from './apps/scopes.js';
@@ -11,7 +10,6 @@ import * as Ui from './ui.generated.js';
11
10
  /** Creates the admin portal Hono app. */
12
11
  export function create(options) {
13
12
  const { identify } = options;
14
- const { source } = options.apiKey;
15
13
  // `false` (disabled) collapses to `undefined` so only a real config surfaces
16
14
  // `loginUrl`/`logoutUrl` in `/config.json`.
17
15
  const ui = options.ui || undefined;
@@ -24,9 +22,9 @@ export function create(options) {
24
22
  app.use('*', async (c, next) => {
25
23
  // Admin data is per-principal and mutating: never cache.
26
24
  c.header('Cache-Control', 'no-store');
27
- c.set('source', source);
28
25
  c.set('assets', options.assets);
29
- c.set('verifiedTokens', options.verifiedTokens);
26
+ c.set('db', options.db);
27
+ c.set('kv', options.kv);
30
28
  c.set('identity', await identify(c.req.raw));
31
29
  return next();
32
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/admin/App.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/admin/App.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export declare namespace schema {
22
22
  "*": "*";
23
23
  "data:read": "data:read";
24
24
  "indexer:query": "indexer:query";
25
+ "rpc-relay": "rpc-relay";
25
26
  "webhooks:read": "webhooks:read";
26
27
  "webhooks:write": "webhooks:write";
27
28
  }>>>;
@@ -44,6 +45,7 @@ export declare namespace schema {
44
45
  "*": "*";
45
46
  "data:read": "data:read";
46
47
  "indexer:query": "indexer:query";
48
+ "rpc-relay": "rpc-relay";
47
49
  "webhooks:read": "webhooks:read";
48
50
  "webhooks:write": "webhooks:write";
49
51
  }>>>;
@@ -77,6 +79,7 @@ export declare namespace schema {
77
79
  "*": "*";
78
80
  "data:read": "data:read";
79
81
  "indexer:query": "indexer:query";
82
+ "rpc-relay": "rpc-relay";
80
83
  "webhooks:read": "webhooks:read";
81
84
  "webhooks:write": "webhooks:write";
82
85
  }>>>;
@@ -100,8 +103,7 @@ export declare namespace schema {
100
103
  }
101
104
  }
102
105
  /**
103
- * Provisioning routes for API keys, backed by the request's
104
- * {@link App.Environment} `source`:
106
+ * Provisioning routes for API keys, backed by the app's KV state store:
105
107
  *
106
108
  * - `POST /` mints a key, recording `createdBy` from the verified identity and
107
109
  * returning the one-time token.
@@ -121,7 +123,7 @@ export declare function apiKeys(): import("hono/hono-base").HonoBase<App.Environ
121
123
  perMinute: number;
122
124
  };
123
125
  } | undefined;
124
- scopes: readonly ("*" | "data:read" | "indexer:query" | "webhooks:read" | "webhooks:write")[];
126
+ scopes: readonly ("*" | "data:read" | "indexer:query" | "rpc-relay" | "webhooks:read" | "webhooks:write")[];
125
127
  createdAt: string;
126
128
  createdBy?: string | undefined;
127
129
  expiresAt?: string | undefined;
@@ -137,7 +139,7 @@ export declare function apiKeys(): import("hono/hono-base").HonoBase<App.Environ
137
139
  rateLimits?: Record<string, {
138
140
  perMinute: number;
139
141
  }> | undefined;
140
- scopes: readonly ("*" | "data:read" | "indexer:query" | "webhooks:read" | "webhooks:write")[];
142
+ scopes: readonly ("*" | "data:read" | "indexer:query" | "rpc-relay" | "webhooks:read" | "webhooks:write")[];
141
143
  expiresAt?: string | undefined;
142
144
  orgId?: string | undefined;
143
145
  };
@@ -158,7 +160,7 @@ export declare function apiKeys(): import("hono/hono-base").HonoBase<App.Environ
158
160
  perMinute: number;
159
161
  };
160
162
  } | undefined;
161
- scopes: readonly ("*" | "data:read" | "indexer:query" | "webhooks:read" | "webhooks:write")[];
163
+ scopes: readonly ("*" | "data:read" | "indexer:query" | "rpc-relay" | "webhooks:read" | "webhooks:write")[];
162
164
  createdAt: string;
163
165
  createdBy?: string | undefined;
164
166
  expiresAt?: string | undefined;