tapimo 0.0.2 → 0.2.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 (517) hide show
  1. package/README.md +38 -16
  2. package/dist/ApiKey.d.ts +14 -11
  3. package/dist/ApiKey.d.ts.map +1 -1
  4. package/dist/ApiKey.js +11 -12
  5. package/dist/ApiKey.js.map +1 -1
  6. package/dist/ApiKeys.d.ts +207 -0
  7. package/dist/ApiKeys.d.ts.map +1 -0
  8. package/dist/ApiKeys.js +282 -0
  9. package/dist/ApiKeys.js.map +1 -0
  10. package/dist/App.d.ts +6771 -3819
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +145 -317
  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 +14 -4
  19. package/dist/Scope.d.ts.map +1 -1
  20. package/dist/Scope.js +16 -4
  21. package/dist/Scope.js.map +1 -1
  22. package/dist/Webhooks.d.ts +5 -7
  23. package/dist/Webhooks.d.ts.map +1 -1
  24. package/dist/Webhooks.js +11 -4
  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 +167 -205
  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 +105 -5
  35. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  36. package/dist/admin/apps/api-keys.js +75 -9
  37. package/dist/admin/apps/api-keys.js.map +1 -1
  38. package/dist/admin/apps/scopes.d.ts +6 -0
  39. package/dist/admin/apps/scopes.d.ts.map +1 -1
  40. package/dist/admin/apps/verified-tokens.d.ts +35 -149
  41. package/dist/admin/apps/verified-tokens.d.ts.map +1 -1
  42. package/dist/admin/apps/verified-tokens.js +18 -39
  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 +1 -1
  46. package/dist/apps/data/App.d.ts +19176 -0
  47. package/dist/apps/data/App.d.ts.map +1 -0
  48. package/dist/apps/data/App.js +236 -0
  49. package/dist/apps/data/App.js.map +1 -0
  50. package/dist/apps/data/index.d.ts +3 -0
  51. package/dist/apps/data/index.d.ts.map +1 -0
  52. package/dist/apps/data/index.js +3 -0
  53. package/dist/apps/data/index.js.map +1 -0
  54. package/dist/apps/{activities.d.ts → data/routes/activities.d.ts} +32 -32
  55. package/dist/apps/{activities.d.ts.map → data/routes/activities.d.ts.map} +1 -1
  56. package/dist/apps/{activities.js → data/routes/activities.js} +13 -13
  57. package/dist/apps/data/routes/activities.js.map +1 -0
  58. package/dist/apps/{addresses.d.ts → data/routes/addresses.d.ts} +22 -22
  59. package/dist/apps/{addresses.d.ts.map → data/routes/addresses.d.ts.map} +1 -1
  60. package/dist/apps/{addresses.js → data/routes/addresses.js} +5 -5
  61. package/dist/apps/data/routes/addresses.js.map +1 -0
  62. package/dist/apps/{balances.d.ts → data/routes/balances.d.ts} +49 -49
  63. package/dist/apps/data/routes/balances.d.ts.map +1 -0
  64. package/dist/apps/{balances.js → data/routes/balances.js} +42 -11
  65. package/dist/apps/data/routes/balances.js.map +1 -0
  66. package/dist/apps/{blocks.d.ts → data/routes/blocks.d.ts} +47 -47
  67. package/dist/apps/data/routes/blocks.d.ts.map +1 -0
  68. package/dist/apps/{blocks.js → data/routes/blocks.js} +13 -13
  69. package/dist/apps/data/routes/blocks.js.map +1 -0
  70. package/dist/apps/{coingecko.d.ts → data/routes/coingecko.d.ts} +183 -183
  71. package/dist/apps/data/routes/coingecko.d.ts.map +1 -0
  72. package/dist/apps/{coingecko.js → data/routes/coingecko.js} +13 -13
  73. package/dist/apps/data/routes/coingecko.js.map +1 -0
  74. package/dist/apps/{exchanges.d.ts → data/routes/exchanges.d.ts} +460 -460
  75. package/dist/apps/data/routes/exchanges.d.ts.map +1 -0
  76. package/dist/apps/{exchanges.js → data/routes/exchanges.js} +19 -19
  77. package/dist/apps/data/routes/exchanges.js.map +1 -0
  78. package/dist/apps/{fee-amm.d.ts → data/routes/fee-amm.d.ts} +94 -94
  79. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -0
  80. package/dist/apps/{fee-amm.js → data/routes/fee-amm.js} +17 -17
  81. package/dist/apps/data/routes/fee-amm.js.map +1 -0
  82. package/dist/apps/{indexer.d.ts → data/routes/indexer.d.ts} +4 -4
  83. package/dist/apps/data/routes/indexer.d.ts.map +1 -0
  84. package/dist/apps/{indexer.js → data/routes/indexer.js} +13 -9
  85. package/dist/apps/data/routes/indexer.js.map +1 -0
  86. package/dist/apps/{receipts.d.ts → data/routes/receipts.d.ts} +6 -6
  87. package/dist/apps/data/routes/receipts.d.ts.map +1 -0
  88. package/dist/apps/{receipts.js → data/routes/receipts.js} +12 -12
  89. package/dist/apps/data/routes/receipts.js.map +1 -0
  90. package/dist/apps/{rpc.d.ts → data/routes/rpc.d.ts} +4 -4
  91. package/dist/apps/data/routes/rpc.d.ts.map +1 -0
  92. package/dist/apps/{rpc.js → data/routes/rpc.js} +6 -6
  93. package/dist/apps/data/routes/rpc.js.map +1 -0
  94. package/dist/apps/{tokenlist.d.ts → data/routes/tokenlist.d.ts} +4 -4
  95. package/dist/apps/data/routes/tokenlist.d.ts.map +1 -0
  96. package/dist/apps/{tokenlist.js → data/routes/tokenlist.js} +8 -8
  97. package/dist/apps/data/routes/tokenlist.js.map +1 -0
  98. package/dist/apps/{tokens.d.ts → data/routes/tokens.d.ts} +11 -11
  99. package/dist/apps/data/routes/tokens.d.ts.map +1 -0
  100. package/dist/apps/{tokens.js → data/routes/tokens.js} +19 -19
  101. package/dist/apps/data/routes/tokens.js.map +1 -0
  102. package/dist/apps/{transactions.d.ts → data/routes/transactions.d.ts} +288 -288
  103. package/dist/apps/data/routes/transactions.d.ts.map +1 -0
  104. package/dist/apps/{transactions.js → data/routes/transactions.js} +13 -13
  105. package/dist/apps/data/routes/transactions.js.map +1 -0
  106. package/dist/apps/{transfers.d.ts → data/routes/transfers.d.ts} +35 -35
  107. package/dist/apps/data/routes/transfers.d.ts.map +1 -0
  108. package/dist/apps/{transfers.js → data/routes/transfers.js} +13 -13
  109. package/dist/apps/data/routes/transfers.js.map +1 -0
  110. package/dist/apps/{verified-tokens.d.ts → data/routes/verified-tokens.d.ts} +42 -42
  111. package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -0
  112. package/dist/apps/{verified-tokens.js → data/routes/verified-tokens.js} +9 -9
  113. package/dist/apps/data/routes/verified-tokens.js.map +1 -0
  114. package/dist/apps/{webhooks.d.ts → data/routes/webhooks.d.ts} +66 -63
  115. package/dist/apps/{webhooks.d.ts.map → data/routes/webhooks.d.ts.map} +1 -1
  116. package/dist/apps/{webhooks.js → data/routes/webhooks.js} +67 -59
  117. package/dist/apps/data/routes/webhooks.js.map +1 -0
  118. package/dist/apps/docs/App.d.ts +27 -0
  119. package/dist/apps/docs/App.d.ts.map +1 -0
  120. package/dist/apps/docs/App.js +122 -0
  121. package/dist/apps/docs/App.js.map +1 -0
  122. package/dist/{internal/OpenApi.fonts.d.ts → apps/docs/fonts.d.ts} +1 -1
  123. package/dist/apps/docs/fonts.d.ts.map +1 -0
  124. package/dist/{internal/OpenApi.fonts.js → apps/docs/fonts.js} +1 -1
  125. package/dist/apps/docs/fonts.js.map +1 -0
  126. package/dist/apps/docs/index.d.ts +2 -0
  127. package/dist/apps/docs/index.d.ts.map +1 -0
  128. package/dist/apps/docs/index.js +2 -0
  129. package/dist/apps/docs/index.js.map +1 -0
  130. package/dist/{internal/OpenApi.logo.d.ts → apps/docs/logo.d.ts} +1 -1
  131. package/dist/apps/docs/logo.d.ts.map +1 -0
  132. package/dist/{internal/OpenApi.logo.js → apps/docs/logo.js} +1 -1
  133. package/dist/apps/docs/logo.js.map +1 -0
  134. package/dist/apps/index.d.ts +4 -0
  135. package/dist/apps/index.d.ts.map +1 -0
  136. package/dist/apps/index.js +4 -0
  137. package/dist/apps/index.js.map +1 -0
  138. package/dist/apps/metadata.d.ts +7 -0
  139. package/dist/apps/metadata.d.ts.map +1 -0
  140. package/dist/apps/metadata.js +15 -0
  141. package/dist/apps/metadata.js.map +1 -0
  142. package/dist/apps/platform/App.d.ts +2985 -0
  143. package/dist/apps/platform/App.d.ts.map +1 -0
  144. package/dist/apps/platform/App.js +74 -0
  145. package/dist/apps/platform/App.js.map +1 -0
  146. package/dist/apps/platform/index.d.ts +2 -0
  147. package/dist/apps/platform/index.d.ts.map +1 -0
  148. package/dist/apps/platform/index.js +2 -0
  149. package/dist/apps/platform/index.js.map +1 -0
  150. package/dist/apps/platform/routes/api-keys.d.ts +681 -0
  151. package/dist/apps/platform/routes/api-keys.d.ts.map +1 -0
  152. package/dist/apps/platform/routes/api-keys.js +328 -0
  153. package/dist/apps/platform/routes/api-keys.js.map +1 -0
  154. package/dist/apps/platform/routes/invitations.d.ts +733 -0
  155. package/dist/apps/platform/routes/invitations.d.ts.map +1 -0
  156. package/dist/apps/platform/routes/invitations.js +413 -0
  157. package/dist/apps/platform/routes/invitations.js.map +1 -0
  158. package/dist/apps/platform/routes/me.d.ts +95 -0
  159. package/dist/apps/platform/routes/me.d.ts.map +1 -0
  160. package/dist/apps/platform/routes/me.js +81 -0
  161. package/dist/apps/platform/routes/me.js.map +1 -0
  162. package/dist/apps/platform/routes/members.d.ts +554 -0
  163. package/dist/apps/platform/routes/members.d.ts.map +1 -0
  164. package/dist/apps/platform/routes/members.js +251 -0
  165. package/dist/apps/platform/routes/members.js.map +1 -0
  166. package/dist/apps/platform/routes/orgs.d.ts +582 -0
  167. package/dist/apps/platform/routes/orgs.d.ts.map +1 -0
  168. package/dist/apps/platform/routes/orgs.js +265 -0
  169. package/dist/apps/platform/routes/orgs.js.map +1 -0
  170. package/dist/apps/platform/routes/projects.d.ts +740 -0
  171. package/dist/apps/platform/routes/projects.d.ts.map +1 -0
  172. package/dist/apps/platform/routes/projects.js +286 -0
  173. package/dist/apps/platform/routes/projects.js.map +1 -0
  174. package/dist/apps/relay/App.d.ts +41 -0
  175. package/dist/apps/relay/App.d.ts.map +1 -0
  176. package/dist/apps/relay/App.js +103 -0
  177. package/dist/apps/relay/App.js.map +1 -0
  178. package/dist/apps/relay/Sponsorships.d.ts +107 -0
  179. package/dist/apps/relay/Sponsorships.d.ts.map +1 -0
  180. package/dist/apps/relay/Sponsorships.js +193 -0
  181. package/dist/apps/relay/Sponsorships.js.map +1 -0
  182. package/dist/apps/relay/index.d.ts +3 -0
  183. package/dist/apps/relay/index.d.ts.map +1 -0
  184. package/dist/apps/relay/index.js +3 -0
  185. package/dist/apps/relay/index.js.map +1 -0
  186. package/dist/{Cli.d.ts → cli/Cli.d.ts} +13 -2
  187. package/dist/cli/Cli.d.ts.map +1 -0
  188. package/dist/cli/Cli.js +19 -0
  189. package/dist/cli/Cli.js.map +1 -0
  190. package/dist/cli/bin.d.ts +3 -0
  191. package/dist/cli/bin.d.ts.map +1 -0
  192. package/dist/cli/bin.js +4 -0
  193. package/dist/cli/bin.js.map +1 -0
  194. package/dist/cli/commands/admin.d.ts +15 -0
  195. package/dist/cli/commands/admin.d.ts.map +1 -0
  196. package/dist/cli/commands/admin.js +60 -0
  197. package/dist/cli/commands/admin.js.map +1 -0
  198. package/dist/cloudflare.d.ts +7 -0
  199. package/dist/cloudflare.d.ts.map +1 -1
  200. package/dist/cloudflare.js +9 -0
  201. package/dist/cloudflare.js.map +1 -1
  202. package/dist/db/Db.d.ts +113 -0
  203. package/dist/db/Db.d.ts.map +1 -0
  204. package/dist/db/Db.js +402 -0
  205. package/dist/db/Db.js.map +1 -0
  206. package/dist/db/Schema.d.ts +168 -0
  207. package/dist/db/Schema.d.ts.map +1 -0
  208. package/dist/db/Schema.js +229 -0
  209. package/dist/db/Schema.js.map +1 -0
  210. package/dist/db/tables/invitations.d.ts +84 -0
  211. package/dist/db/tables/invitations.d.ts.map +1 -0
  212. package/dist/db/tables/invitations.js +165 -0
  213. package/dist/db/tables/invitations.js.map +1 -0
  214. package/dist/db/tables/memberships.d.ts +108 -0
  215. package/dist/db/tables/memberships.d.ts.map +1 -0
  216. package/dist/db/tables/memberships.js +153 -0
  217. package/dist/db/tables/memberships.js.map +1 -0
  218. package/dist/db/tables/organizations.d.ts +123 -0
  219. package/dist/db/tables/organizations.d.ts.map +1 -0
  220. package/dist/db/tables/organizations.js +170 -0
  221. package/dist/db/tables/organizations.js.map +1 -0
  222. package/dist/db/tables/projects.d.ts +65 -0
  223. package/dist/db/tables/projects.d.ts.map +1 -0
  224. package/dist/db/tables/projects.js +75 -0
  225. package/dist/db/tables/projects.js.map +1 -0
  226. package/dist/db/tables/sponsoredTransactions.d.ts +120 -0
  227. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -0
  228. package/dist/db/tables/sponsoredTransactions.js +161 -0
  229. package/dist/db/tables/sponsoredTransactions.js.map +1 -0
  230. package/dist/db/tables/users.d.ts +48 -0
  231. package/dist/db/tables/users.d.ts.map +1 -0
  232. package/dist/db/tables/users.js +65 -0
  233. package/dist/db/tables/users.js.map +1 -0
  234. package/dist/db/tables/verifiedTokens.d.ts +53 -0
  235. package/dist/db/tables/verifiedTokens.d.ts.map +1 -0
  236. package/dist/db/tables/verifiedTokens.js +74 -0
  237. package/dist/db/tables/verifiedTokens.js.map +1 -0
  238. package/dist/db/tables/webhookDeliveries.d.ts +71 -0
  239. package/dist/db/tables/webhookDeliveries.d.ts.map +1 -0
  240. package/dist/db/tables/webhookDeliveries.js +119 -0
  241. package/dist/db/tables/webhookDeliveries.js.map +1 -0
  242. package/dist/db/tables/webhookSubscriptions.d.ts +158 -0
  243. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -0
  244. package/dist/db/tables/webhookSubscriptions.js +272 -0
  245. package/dist/db/tables/webhookSubscriptions.js.map +1 -0
  246. package/dist/handlers/internal/executionError.d.ts +25 -0
  247. package/dist/handlers/internal/executionError.d.ts.map +1 -0
  248. package/dist/handlers/internal/executionError.js +186 -0
  249. package/dist/handlers/internal/executionError.js.map +1 -0
  250. package/dist/handlers/internal/multisig.d.ts +233 -0
  251. package/dist/handlers/internal/multisig.d.ts.map +1 -0
  252. package/dist/handlers/internal/multisig.js +542 -0
  253. package/dist/handlers/internal/multisig.js.map +1 -0
  254. package/dist/handlers/internal/requestListener.d.ts +124 -0
  255. package/dist/handlers/internal/requestListener.d.ts.map +1 -0
  256. package/dist/handlers/internal/requestListener.js +173 -0
  257. package/dist/handlers/internal/requestListener.js.map +1 -0
  258. package/dist/handlers/internal/sponsorship.d.ts +113 -0
  259. package/dist/handlers/internal/sponsorship.d.ts.map +1 -0
  260. package/dist/handlers/internal/sponsorship.js +128 -0
  261. package/dist/handlers/internal/sponsorship.js.map +1 -0
  262. package/dist/handlers/internal/types.d.ts +284 -0
  263. package/dist/handlers/internal/types.d.ts.map +1 -0
  264. package/dist/handlers/internal/types.js +2 -0
  265. package/dist/handlers/internal/types.js.map +1 -0
  266. package/dist/handlers/internal/utils.d.ts +34 -0
  267. package/dist/handlers/internal/utils.d.ts.map +1 -0
  268. package/dist/handlers/internal/utils.js +131 -0
  269. package/dist/handlers/internal/utils.js.map +1 -0
  270. package/dist/handlers/relay.d.ts +123 -0
  271. package/dist/handlers/relay.d.ts.map +1 -0
  272. package/dist/handlers/relay.js +1278 -0
  273. package/dist/handlers/relay.js.map +1 -0
  274. package/dist/index.d.ts +4 -2
  275. package/dist/index.d.ts.map +1 -1
  276. package/dist/index.js +4 -2
  277. package/dist/index.js.map +1 -1
  278. package/dist/internal/Auth.d.ts +224 -16
  279. package/dist/internal/Auth.d.ts.map +1 -1
  280. package/dist/internal/Auth.js +572 -33
  281. package/dist/internal/Auth.js.map +1 -1
  282. package/dist/internal/Log.d.ts +7 -3
  283. package/dist/internal/Log.d.ts.map +1 -1
  284. package/dist/internal/Log.js +4 -0
  285. package/dist/internal/Log.js.map +1 -1
  286. package/dist/internal/OpenApi.d.ts +0 -19
  287. package/dist/internal/OpenApi.d.ts.map +1 -1
  288. package/dist/internal/OpenApi.js +0 -57
  289. package/dist/internal/OpenApi.js.map +1 -1
  290. package/dist/internal/RpcSchema.d.ts +10 -0
  291. package/dist/internal/RpcSchema.d.ts.map +1 -0
  292. package/dist/internal/RpcSchema.js +2 -0
  293. package/dist/internal/RpcSchema.js.map +1 -0
  294. package/dist/internal/Store.d.ts +49 -4
  295. package/dist/internal/Store.d.ts.map +1 -1
  296. package/dist/internal/Store.js +81 -5
  297. package/dist/internal/Store.js.map +1 -1
  298. package/dist/internal/VerifiedTokens.d.ts +15 -34
  299. package/dist/internal/VerifiedTokens.d.ts.map +1 -1
  300. package/dist/internal/VerifiedTokens.js +115 -159
  301. package/dist/internal/VerifiedTokens.js.map +1 -1
  302. package/dist/internal/Viem.d.ts +84 -0
  303. package/dist/internal/Viem.d.ts.map +1 -1
  304. package/dist/internal/Webhooks.d.ts +50 -36
  305. package/dist/internal/Webhooks.d.ts.map +1 -1
  306. package/dist/internal/Webhooks.js +92 -205
  307. package/dist/internal/Webhooks.js.map +1 -1
  308. package/package.json +37 -6
  309. package/src/ApiKey.test.ts +3 -3
  310. package/src/ApiKey.ts +11 -12
  311. package/src/ApiKeys.test.ts +278 -0
  312. package/src/ApiKeys.ts +358 -0
  313. package/src/App.test-d.ts +1 -1
  314. package/src/App.test.ts +40508 -19083
  315. package/src/App.ts +239 -416
  316. package/src/Client.test-d.ts +307 -16
  317. package/src/Handler.ts +154 -0
  318. package/src/Scope.ts +17 -4
  319. package/src/Webhooks.test.ts +8 -7
  320. package/src/Webhooks.ts +13 -7
  321. package/src/admin/Access.ts +1 -3
  322. package/src/admin/App.ts +19 -24
  323. package/src/admin/apps/api-keys.test.ts +70 -18
  324. package/src/admin/apps/api-keys.ts +92 -9
  325. package/src/admin/apps/scopes.test.ts +8 -0
  326. package/src/admin/apps/verified-tokens.test.ts +3 -30
  327. package/src/admin/apps/verified-tokens.ts +18 -37
  328. package/src/admin/ui.generated.ts +1 -1
  329. package/src/apps/composition.test.ts +66 -0
  330. package/src/apps/data/App.ts +295 -0
  331. package/src/apps/data/index.ts +2 -0
  332. package/src/apps/{activities.test.ts → data/routes/activities.test.ts} +3 -3
  333. package/src/apps/{activities.ts → data/routes/activities.ts} +15 -15
  334. package/src/apps/{addresses.ts → data/routes/addresses.ts} +6 -6
  335. package/src/apps/{balances.test.ts → data/routes/balances.test.ts} +6 -5
  336. package/src/apps/{balances.ts → data/routes/balances.ts} +46 -12
  337. package/src/apps/{blocks.test.ts → data/routes/blocks.test.ts} +4 -4
  338. package/src/apps/{blocks.ts → data/routes/blocks.ts} +14 -14
  339. package/src/apps/{coingecko.test.ts → data/routes/coingecko.test.ts} +2 -2
  340. package/src/apps/{coingecko.ts → data/routes/coingecko.ts} +14 -14
  341. package/src/apps/{exchanges.test.ts → data/routes/exchanges.test.ts} +2 -2
  342. package/src/apps/{exchanges.ts → data/routes/exchanges.ts} +20 -20
  343. package/src/apps/{fee-amm.test.ts → data/routes/fee-amm.test.ts} +3 -3
  344. package/src/apps/{fee-amm.ts → data/routes/fee-amm.ts} +18 -18
  345. package/src/apps/{indexer.test.ts → data/routes/indexer.test.ts} +27 -6
  346. package/src/apps/{indexer.ts → data/routes/indexer.ts} +13 -10
  347. package/src/apps/{receipts.test.ts → data/routes/receipts.test.ts} +4 -4
  348. package/src/apps/{receipts.ts → data/routes/receipts.ts} +13 -13
  349. package/src/apps/{rpc.test.ts → data/routes/rpc.test.ts} +142 -13
  350. package/src/apps/{rpc.ts → data/routes/rpc.ts} +7 -7
  351. package/src/apps/{tokenlist.test.ts → data/routes/tokenlist.test.ts} +8 -10
  352. package/src/apps/{tokenlist.ts → data/routes/tokenlist.ts} +9 -9
  353. package/src/apps/{tokens.test.ts → data/routes/tokens.test.ts} +6 -5
  354. package/src/apps/{tokens.ts → data/routes/tokens.ts} +20 -20
  355. package/src/apps/{transactions.test.ts → data/routes/transactions.test.ts} +4 -4
  356. package/src/apps/{transactions.ts → data/routes/transactions.ts} +15 -15
  357. package/src/apps/{transfers.test.ts → data/routes/transfers.test.ts} +3 -3
  358. package/src/apps/{transfers.ts → data/routes/transfers.ts} +15 -15
  359. package/src/apps/{verified-tokens.test.ts → data/routes/verified-tokens.test.ts} +27 -15
  360. package/src/apps/{verified-tokens.ts → data/routes/verified-tokens.ts} +10 -10
  361. package/src/apps/{webhooks.test.ts → data/routes/webhooks.test.ts} +137 -150
  362. package/src/apps/{webhooks.ts → data/routes/webhooks.ts} +83 -81
  363. package/src/apps/docs/App.ts +136 -0
  364. package/src/apps/docs/index.ts +1 -0
  365. package/src/apps/index.ts +3 -0
  366. package/src/apps/metadata.ts +23 -0
  367. package/src/apps/platform/App.ts +130 -0
  368. package/src/apps/platform/index.ts +1 -0
  369. package/src/apps/platform/routes/api-keys.test.ts +330 -0
  370. package/src/apps/platform/routes/api-keys.ts +427 -0
  371. package/src/apps/platform/routes/invitations.test.ts +361 -0
  372. package/src/apps/platform/routes/invitations.ts +519 -0
  373. package/src/apps/platform/routes/me.test.ts +121 -0
  374. package/src/apps/platform/routes/me.ts +106 -0
  375. package/src/apps/platform/routes/members.test.ts +195 -0
  376. package/src/apps/platform/routes/members.ts +313 -0
  377. package/src/apps/platform/routes/orgs.test.ts +313 -0
  378. package/src/apps/platform/routes/orgs.ts +343 -0
  379. package/src/apps/platform/routes/projects.test.ts +181 -0
  380. package/src/apps/platform/routes/projects.ts +367 -0
  381. package/src/apps/relay/App.test.ts +484 -0
  382. package/src/apps/relay/App.ts +128 -0
  383. package/src/apps/relay/Sponsorships.test.ts +375 -0
  384. package/src/apps/relay/Sponsorships.ts +305 -0
  385. package/src/apps/relay/index.ts +2 -0
  386. package/src/{Cli.test.ts → cli/Cli.test.ts} +10 -9
  387. package/src/{Cli.ts → cli/Cli.ts} +16 -9
  388. package/src/cli/bin.ts +4 -0
  389. package/src/cli/commands/admin.test.ts +71 -0
  390. package/src/cli/commands/admin.ts +60 -0
  391. package/src/cloudflare.ts +10 -0
  392. package/src/db/Db.test.ts +84 -0
  393. package/src/db/Db.ts +542 -0
  394. package/src/db/Schema.ts +301 -0
  395. package/src/db/tables/invitations.ts +198 -0
  396. package/src/db/tables/memberships.ts +208 -0
  397. package/src/db/tables/organizations.test.ts +160 -0
  398. package/src/db/tables/organizations.ts +232 -0
  399. package/src/db/tables/projects.ts +107 -0
  400. package/src/db/tables/sponsoredTransactions.test.ts +218 -0
  401. package/src/db/tables/sponsoredTransactions.ts +236 -0
  402. package/src/db/tables/users.ts +85 -0
  403. package/src/db/tables/verifiedTokens.ts +111 -0
  404. package/src/db/tables/webhookDeliveries.ts +159 -0
  405. package/src/db/tables/webhookSubscriptions.ts +358 -0
  406. package/src/handlers/internal/executionError.ts +207 -0
  407. package/src/handlers/internal/multisig.test.ts +818 -0
  408. package/src/handlers/internal/multisig.ts +823 -0
  409. package/src/handlers/internal/requestListener.ts +273 -0
  410. package/src/handlers/internal/sponsorship.ts +245 -0
  411. package/src/handlers/internal/types.ts +378 -0
  412. package/src/handlers/internal/utils.ts +153 -0
  413. package/src/handlers/relay.test.ts +2035 -0
  414. package/src/handlers/relay.ts +1623 -0
  415. package/src/index.ts +4 -2
  416. package/src/internal/Auth.test.ts +337 -21
  417. package/src/internal/Auth.ts +783 -44
  418. package/src/internal/Cursor.test.ts +3 -2
  419. package/src/internal/Log.test.ts +1 -1
  420. package/src/internal/Log.ts +11 -3
  421. package/src/internal/MetricSink.ts +1 -1
  422. package/src/internal/OpenApi.ts +0 -59
  423. package/src/internal/RateLimit.test.ts +1 -1
  424. package/src/internal/RpcSchema.ts +10 -0
  425. package/src/internal/Store.test.ts +150 -10
  426. package/src/internal/Store.ts +136 -11
  427. package/src/internal/Tidx.local.test.ts +1 -1
  428. package/src/internal/VerifiedTokens.test.ts +99 -115
  429. package/src/internal/VerifiedTokens.ts +123 -175
  430. package/src/internal/WebhookDestination.test.ts +1 -1
  431. package/src/internal/Webhooks.test.ts +111 -111
  432. package/src/internal/Webhooks.ts +103 -221
  433. package/dist/ApiKeySource.d.ts +0 -166
  434. package/dist/ApiKeySource.d.ts.map +0 -1
  435. package/dist/ApiKeySource.js +0 -234
  436. package/dist/ApiKeySource.js.map +0 -1
  437. package/dist/Cli.d.ts.map +0 -1
  438. package/dist/Cli.js +0 -13
  439. package/dist/Cli.js.map +0 -1
  440. package/dist/apps/activities.js.map +0 -1
  441. package/dist/apps/addresses.js.map +0 -1
  442. package/dist/apps/balances.d.ts.map +0 -1
  443. package/dist/apps/balances.js.map +0 -1
  444. package/dist/apps/blocks.d.ts.map +0 -1
  445. package/dist/apps/blocks.js.map +0 -1
  446. package/dist/apps/coingecko.d.ts.map +0 -1
  447. package/dist/apps/coingecko.js.map +0 -1
  448. package/dist/apps/exchanges.d.ts.map +0 -1
  449. package/dist/apps/exchanges.js.map +0 -1
  450. package/dist/apps/fee-amm.d.ts.map +0 -1
  451. package/dist/apps/fee-amm.js.map +0 -1
  452. package/dist/apps/indexer.d.ts.map +0 -1
  453. package/dist/apps/indexer.js.map +0 -1
  454. package/dist/apps/receipts.d.ts.map +0 -1
  455. package/dist/apps/receipts.js.map +0 -1
  456. package/dist/apps/rpc.d.ts.map +0 -1
  457. package/dist/apps/rpc.js.map +0 -1
  458. package/dist/apps/tokenlist.d.ts.map +0 -1
  459. package/dist/apps/tokenlist.js.map +0 -1
  460. package/dist/apps/tokens.d.ts.map +0 -1
  461. package/dist/apps/tokens.js.map +0 -1
  462. package/dist/apps/transactions.d.ts.map +0 -1
  463. package/dist/apps/transactions.js.map +0 -1
  464. package/dist/apps/transfers.d.ts.map +0 -1
  465. package/dist/apps/transfers.js.map +0 -1
  466. package/dist/apps/verified-tokens.d.ts.map +0 -1
  467. package/dist/apps/verified-tokens.js.map +0 -1
  468. package/dist/apps/webhooks.js.map +0 -1
  469. package/dist/internal/OpenApi.fonts.d.ts.map +0 -1
  470. package/dist/internal/OpenApi.fonts.js.map +0 -1
  471. package/dist/internal/OpenApi.logo.d.ts.map +0 -1
  472. package/dist/internal/OpenApi.logo.js.map +0 -1
  473. package/seeds/31318/icons/0x20c0000000000000000000000000000000000000.svg +0 -1
  474. package/seeds/31318/icons/0x20c0000000000000000000000000000000000001.svg +0 -1
  475. package/seeds/31318/icons/0x20c0000000000000000000000000000000000002.svg +0 -1
  476. package/seeds/31318/icons/0x20c0000000000000000000000000000000000003.svg +0 -1
  477. package/seeds/31318/verified-tokens.json +0 -30
  478. package/seeds/4217/icons/0x20c0000000000000000000000000000000000000.svg +0 -25
  479. package/seeds/4217/icons/0x20c000000000000000000000048c8f36df1c9a4a.svg +0 -1
  480. package/seeds/4217/icons/0x20c0000000000000000000000520792dcccccccc.svg +0 -1
  481. package/seeds/4217/icons/0x20c0000000000000000000000a6da882d075a4c3.svg +0 -4
  482. package/seeds/4217/icons/0x20c000000000000000000000111111111e910f0f.svg +0 -30
  483. package/seeds/4217/icons/0x20c00000000000000000000014f22ca97301eb73.svg +0 -1
  484. package/seeds/4217/icons/0x20c0000000000000000000001621e21f71cf12fb.svg +0 -1
  485. package/seeds/4217/icons/0x20c0000000000000000000002f52d5cc21a3207b.svg +0 -1
  486. package/seeds/4217/icons/0x20c0000000000000000000003158081efd85bfc2.svg +0 -11
  487. package/seeds/4217/icons/0x20c0000000000000000000003554d28269e0f3c2.svg +0 -1
  488. package/seeds/4217/icons/0x20c000000000000000000000383a23bacb546ab9.svg +0 -1
  489. package/seeds/4217/icons/0x20c00000000000000000000042109aef2f8b28e1.png +0 -0
  490. package/seeds/4217/icons/0x20c0000000000000000000005c0bac7cef389a11.svg +0 -1
  491. package/seeds/4217/icons/0x20c0000000000000000000006fd9a167923ba194.png +0 -0
  492. package/seeds/4217/icons/0x20c0000000000000000000007f7ba549dd0251b9.svg +0 -1
  493. package/seeds/4217/icons/0x20c0000000000000000000008191667423f70e67.svg +0 -5
  494. package/seeds/4217/icons/0x20c0000000000000000000008ee4fcff88888888.svg +0 -1
  495. package/seeds/4217/icons/0x20c0000000000000000000009a4a4b17e0dc6651.svg +0 -1
  496. package/seeds/4217/icons/0x20c000000000000000000000ab02d39df30bd17e.svg +0 -1
  497. package/seeds/4217/icons/0x20c000000000000000000000ae247a1130450f09.svg +0 -1
  498. package/seeds/4217/icons/0x20c000000000000000000000aeed2ec36a54d0e5.svg +0 -1
  499. package/seeds/4217/icons/0x20c000000000000000000000b9537d11c60e8b50.svg +0 -1
  500. package/seeds/4217/icons/0x20c000000000000000000000bd95bfb69fbe6ce3.svg +0 -1
  501. package/seeds/4217/icons/0x20c000000000000000000000c412ec89d0c08be5.svg +0 -1
  502. package/seeds/4217/icons/0x20c000000000000000000000f047dd7018e50367.png +0 -0
  503. package/seeds/4217/verified-tokens.json +0 -177
  504. package/seeds/42431/icons/0x20c0000000000000000000000000000000000000.svg +0 -25
  505. package/seeds/42431/icons/0x20c0000000000000000000000000000000000001.svg +0 -1
  506. package/seeds/42431/icons/0x20c0000000000000000000000000000000000002.svg +0 -1
  507. package/seeds/42431/icons/0x20c0000000000000000000000000000000000003.svg +0 -1
  508. package/seeds/42431/icons/0x20c0000000000000000000009e8d7eb59b783726.svg +0 -1
  509. package/seeds/42431/icons/0x20c000000000000000000000d72572838bbee59c.svg +0 -1
  510. package/seeds/42431/verified-tokens.json +0 -44
  511. package/seeds/openrpc/README.md +0 -27
  512. package/seeds/openrpc/execution-apis.json +0 -8989
  513. package/src/ApiKeySource.test-d.ts +0 -11
  514. package/src/ApiKeySource.test.ts +0 -295
  515. package/src/ApiKeySource.ts +0 -303
  516. /package/src/{internal/OpenApi.fonts.ts → apps/docs/fonts.ts} +0 -0
  517. /package/src/{internal/OpenApi.logo.ts → apps/docs/logo.ts} +0 -0
@@ -1,9 +1,11 @@
1
+ import { sql } from 'kysely';
1
2
  import { Hex } from 'ox';
2
3
  import * as z from 'zod/mini';
4
+ import * as Db from '../db/Db.js';
5
+ import * as core_VerifiedTokens from '../db/tables/verifiedTokens.js';
3
6
  import * as Schema from './Schema.js';
4
- import * as Store from './Store.js';
5
7
  import * as Timing from './Timing.js';
6
- /** Schema for a chain's verified token list (the value stored in KV). */
8
+ /** Schema for a chain's verified token list (validated at the write boundary). */
7
9
  export const Data = z
8
10
  .array(z
9
11
  .object({
@@ -26,7 +28,8 @@ export function compile(options) {
26
28
  const { chainId, tokens, updatedAt, version } = options;
27
29
  // Backfill the derived `id` (lowercased address) without re-parsing through
28
30
  // `Data`/`Schema.Address`, which would lowercase the stored `address` and
29
- // drop its curated checksum casing. Callers (readBlob/normalize) own validation.
31
+ // drop its curated checksum casing. Validation happens at the write boundary
32
+ // (`normalize`); reads trust the typed columns.
30
33
  const list = tokens.map((token) => ({
31
34
  ...token,
32
35
  id: token.id ?? token.address.toLowerCase(),
@@ -55,81 +58,26 @@ export function compile(options) {
55
58
  version,
56
59
  };
57
60
  }
58
- // Storage layout: one head pointer + one whole-chain blob per version, so
59
- // reads are a single `get` by known key (no `list()` scans) and a publish is an
60
- // atomic flip of `head` to a new, already-written `snapshot:{version}`.
61
- const keyPrefix = 'verified-token:v1';
62
- // Storage schema version stamped on every head/blob, so a future on-disk format
63
- // change can be detected and migrated.
64
- const storeSchema = 1;
65
- /** Store key for a chain's head pointer (current version + metadata). */
66
- function headKey(chainId) {
67
- return `${keyPrefix}:${chainId}:head`;
68
- }
69
- /** Store key for a chain's immutable snapshot blob at a given version. */
70
- function snapshotKey(chainId, version) {
71
- return `${keyPrefix}:${chainId}:snapshot:${version}`;
72
- }
73
- // Head pointer: tiny, read once per soft-TTL window to detect version changes
74
- // without fetching the (much larger) token blob.
75
- const Head = z
76
- .object({
77
- chainId: z.number().check(z.int(), z.describe('Chain the head belongs to.')),
78
- count: z.number().check(z.int(), z.nonnegative(), z.describe('Token count at this version.')),
79
- schema: z.number().check(z.int(), z.describe('Storage schema version.')),
80
- updatedAt: z.string().check(z.describe('ISO timestamp of the last publish.')),
81
- version: z.string().check(z.describe('Current snapshot version.')),
82
- })
83
- .check(z.describe('Verified-token head pointer stored under the head key.'));
84
- // Immutable per-version blob holding the validated token list.
85
- const Blob = z
86
- .object({
87
- chainId: z.number().check(z.int(), z.describe('Chain the blob belongs to.')),
88
- schema: z.number().check(z.int(), z.describe('Storage schema version.')),
89
- tokens: Data,
90
- updatedAt: z.string().check(z.describe('ISO timestamp of the last publish.')),
91
- version: z.string().check(z.describe('Snapshot version this blob holds.')),
92
- })
93
- .check(z.describe('Verified-token snapshot blob stored under a versioned key.'));
94
- /** Reads a chain's head pointer, or `null` when the chain has no head yet. */
95
- async function readHead(store, chainId) {
96
- const raw = await store.get(headKey(chainId));
97
- if (!raw)
98
- return null;
99
- return Head.parse(JSON.parse(raw));
61
+ /** Reads a chain's list metadata, or `null` when it has no list yet. */
62
+ async function readHead(db, chainId) {
63
+ return (await core_VerifiedTokens.head(db, chainId)) ?? null;
100
64
  }
101
65
  /**
102
- * Reads and compiles a chain's snapshot blob at a specific version. Throws
103
- * {@link TornStateError} when the blob is missing (a torn write that should
104
- * never happen given the write-blob-before-flip-head ordering).
66
+ * Reads and compiles a chain's current verified list. Returns `null` when the
67
+ * chain has none.
105
68
  */
106
- async function readBlob(store, chainId, version) {
107
- const raw = await store.get(snapshotKey(chainId, version));
108
- if (!raw)
109
- throw new TornStateError({ chainId, version });
110
- const parsed = JSON.parse(raw);
111
- const blob = Blob.parse({
112
- ...parsed,
113
- tokens: Array.isArray(parsed.tokens) ? withIds(parsed.tokens) : parsed.tokens,
114
- });
69
+ export async function read(db, chainId) {
70
+ const head = await readHead(db, chainId);
71
+ if (!head)
72
+ return null;
73
+ const rows = await core_VerifiedTokens.list(db, chainId);
115
74
  return compile({
116
75
  chainId,
117
- tokens: blob.tokens,
118
- updatedAt: blob.updatedAt,
119
- version: blob.version,
76
+ tokens: rows.map(core_VerifiedTokens.toToken),
77
+ updatedAt: head.updatedAt,
78
+ version: head.version,
120
79
  });
121
80
  }
122
- /**
123
- * Reads and compiles the snapshot a chain's head points at. Returns `null` when
124
- * the chain has no head. Throws {@link TornStateError} when `head` references a
125
- * missing snapshot blob.
126
- */
127
- export async function read(store, chainId) {
128
- const head = await readHead(store, chainId);
129
- if (!head)
130
- return null;
131
- return readBlob(store, chainId, head.version);
132
- }
133
81
  // Tracks the last epoch-ms used by `nextVersion` so versions stay strictly
134
82
  // monotonic even when multiple writes land in the same millisecond.
135
83
  let lastVersionMs = 0;
@@ -179,31 +127,42 @@ function withIds(tokens) {
179
127
  // Returns the current authoritative list for a chain to read-modify-write
180
128
  // against: the durable snapshot, or an empty list when the chain has no head yet
181
129
  // (the first write starts the chain's list from scratch).
182
- async function currentList(store, chainId) {
183
- return (await read(store, chainId))?.list ?? [];
130
+ async function currentList(db, chainId) {
131
+ return (await read(db, chainId))?.list ?? [];
184
132
  }
185
- // Best-effort optimistic concurrency: when `ifMatch` is set, the caller's
186
- // expected version must equal the current head version. On KV the head
187
- // read can itself be stale, so this narrows but does not eliminate — the
188
- // lost-update window under concurrent writers.
189
- async function assertVersion(store, chainId, ifMatch) {
133
+ // Optimistic concurrency: when `ifMatch` is set, the caller's expected version
134
+ // must equal the current head version. Runs inside the publish lock, so —
135
+ // unlike the old best-effort KV checkthe compare-and-set actually holds.
136
+ async function assertVersion(db, chainId, ifMatch) {
190
137
  if (ifMatch === undefined)
191
138
  return;
192
- const head = await readHead(store, chainId);
139
+ const head = await readHead(db, chainId);
193
140
  const actual = head?.version ?? emptyVersion;
194
141
  if (actual !== ifMatch)
195
142
  throw new VersionMismatchError({ actual, chainId, expected: ifMatch });
196
143
  }
197
- // Write-modify-flip-prime: validate the whole list, write the immutable
198
- // blob, flip `head` to it, then prime this isolate for read-your-write. Writing
199
- // the blob before flipping head means a crash in between leaves the old head
200
- // valid (no torn state).
201
- async function publish(store, chainId, tokens) {
144
+ /**
145
+ * Fixed first key for the per-chain publish advisory lock (the ASCII bytes of
146
+ * `"vtok"`); the chain id is the second key.
147
+ */
148
+ const publishLockKey = 0x76746f6b;
149
+ // Runs a write's read-modify-publish inside one transaction holding a
150
+ // per-chain advisory lock, serializing concurrent writers so `assertVersion`
151
+ // and the read-modify-write can't interleave (the lock releases on commit).
152
+ async function withPublishLock(db, chainId, fn) {
153
+ return db.transaction(async (tx) => {
154
+ await sql `SELECT pg_advisory_xact_lock(${publishLockKey}, ${chainId})`.execute(tx.kysely);
155
+ return fn(tx);
156
+ });
157
+ }
158
+ // Validate-replace-prime: validate the whole list, replace the chain's rows
159
+ // and bump its list version (atomic inside the publish lock's transaction),
160
+ // then prime this isolate for read-your-write.
161
+ async function publish(db, chainId, tokens) {
202
162
  const list = normalize(chainId, tokens);
203
163
  const version = nextVersion();
204
164
  const updatedAt = new Date().toISOString();
205
- await store.put(snapshotKey(chainId, version), JSON.stringify({ chainId, schema: storeSchema, tokens: list, updatedAt, version }));
206
- await store.put(headKey(chainId), JSON.stringify({ chainId, count: list.length, schema: storeSchema, updatedAt, version }));
165
+ await core_VerifiedTokens.publish(db, chainId, { tokens: list, updatedAt, version });
207
166
  const snapshot = compile({ chainId, tokens: list, updatedAt, version });
208
167
  prime(chainId, snapshot);
209
168
  return snapshot;
@@ -212,72 +171,80 @@ async function publish(store, chainId, tokens) {
212
171
  * Appends a verified token to a chain's list and publishes a new snapshot.
213
172
  * Throws on a duplicate address or (case-insensitive) symbol.
214
173
  */
215
- export async function create(store, input) {
174
+ export async function create(db, input) {
216
175
  const { chainId, currency, decimals, logoUri, name, symbol } = input;
217
176
  const address = input.address.toLowerCase();
218
- const list = await currentList(store, chainId);
219
- const token = {
220
- address,
221
- currency,
222
- decimals,
223
- id: address,
224
- name,
225
- symbol,
226
- ...(logoUri === undefined ? {} : { logoUri }),
227
- };
228
- const snapshot = await publish(store, chainId, [...list, token]);
229
- return { snapshot, token: snapshot.byAddress.get(address) };
177
+ return withPublishLock(db, chainId, async (tx) => {
178
+ const list = await currentList(tx, chainId);
179
+ const token = {
180
+ address,
181
+ currency,
182
+ decimals,
183
+ id: address,
184
+ name,
185
+ symbol,
186
+ ...(logoUri === undefined ? {} : { logoUri }),
187
+ };
188
+ const snapshot = await publish(tx, chainId, [...list, token]);
189
+ return { snapshot, token: snapshot.byAddress.get(address) };
190
+ });
230
191
  }
231
192
  /**
232
193
  * Partially updates a verified token in place (preserving list order) and
233
194
  * publishes a new snapshot. Throws {@link NotFoundError} when the address is
234
195
  * absent, and the uniqueness errors when an edit collides with another entry.
235
196
  */
236
- export async function patch(store, chainId, address, input, options = {}) {
237
- await assertVersion(store, chainId, options.ifMatch);
197
+ export async function patch(db, chainId, address, input, options = {}) {
238
198
  const target = address.toLowerCase();
239
- const list = await currentList(store, chainId);
240
- const index = list.findIndex((token) => token.address.toLowerCase() === target);
241
- if (index === -1)
242
- throw new NotFoundError({ address: target, chainId });
243
- // Edit in place, overriding only the fields the patch supplies.
244
- const next = list.map((token, i) => {
245
- if (i !== index)
246
- return token;
247
- const logoUri = input.logoUri ?? token.logoUri;
248
- return {
249
- address: target,
250
- currency: input.currency ?? token.currency,
251
- decimals: input.decimals ?? token.decimals,
252
- id: target,
253
- name: input.name ?? token.name,
254
- symbol: input.symbol ?? token.symbol,
255
- ...(logoUri === undefined ? {} : { logoUri }),
256
- };
199
+ return withPublishLock(db, chainId, async (tx) => {
200
+ await assertVersion(tx, chainId, options.ifMatch);
201
+ const list = await currentList(tx, chainId);
202
+ const index = list.findIndex((token) => token.address.toLowerCase() === target);
203
+ if (index === -1)
204
+ throw new NotFoundError({ address: target, chainId });
205
+ // Edit in place, overriding only the fields the patch supplies.
206
+ const next = list.map((token, i) => {
207
+ if (i !== index)
208
+ return token;
209
+ const logoUri = input.logoUri ?? token.logoUri;
210
+ return {
211
+ address: target,
212
+ currency: input.currency ?? token.currency,
213
+ decimals: input.decimals ?? token.decimals,
214
+ id: target,
215
+ name: input.name ?? token.name,
216
+ symbol: input.symbol ?? token.symbol,
217
+ ...(logoUri === undefined ? {} : { logoUri }),
218
+ };
219
+ });
220
+ const snapshot = await publish(tx, chainId, next);
221
+ return { snapshot, token: snapshot.byAddress.get(target) };
257
222
  });
258
- const snapshot = await publish(store, chainId, next);
259
- return { snapshot, token: snapshot.byAddress.get(target) };
260
223
  }
261
224
  /**
262
225
  * Removes a verified token from a chain's list and publishes a new snapshot.
263
226
  * Throws {@link NotFoundError} when the address is absent.
264
227
  */
265
- export async function remove(store, chainId, address, options = {}) {
266
- await assertVersion(store, chainId, options.ifMatch);
228
+ export async function remove(db, chainId, address, options = {}) {
267
229
  const target = address.toLowerCase();
268
- const list = await currentList(store, chainId);
269
- const next = list.filter((token) => token.address.toLowerCase() !== target);
270
- if (next.length === list.length)
271
- throw new NotFoundError({ address: target, chainId });
272
- return { snapshot: await publish(store, chainId, next) };
230
+ return withPublishLock(db, chainId, async (tx) => {
231
+ await assertVersion(tx, chainId, options.ifMatch);
232
+ const list = await currentList(tx, chainId);
233
+ const next = list.filter((token) => token.address.toLowerCase() !== target);
234
+ if (next.length === list.length)
235
+ throw new NotFoundError({ address: target, chainId });
236
+ return { snapshot: await publish(tx, chainId, next) };
237
+ });
273
238
  }
274
239
  /**
275
240
  * Replaces a chain's entire verified list and publishes a new snapshot. Used to
276
241
  * bulk-load the initial list and to roll back to a previous one.
277
242
  */
278
- export async function replace(store, chainId, tokens, options = {}) {
279
- await assertVersion(store, chainId, options.ifMatch);
280
- return { snapshot: await publish(store, chainId, tokens) };
243
+ export async function replace(db, chainId, tokens, options = {}) {
244
+ return withPublishLock(db, chainId, async (tx) => {
245
+ await assertVersion(tx, chainId, options.ifMatch);
246
+ return { snapshot: await publish(tx, chainId, tokens) };
247
+ });
281
248
  }
282
249
  // Sentinel version/time for the empty snapshot served before a chain has any
283
250
  // durable head (KV is the single source of truth; nothing is verified until it
@@ -317,13 +284,13 @@ export function prime(chainId, snapshot) {
317
284
  }
318
285
  // Single-flight wrapper around `refreshCell`: concurrent stale/cold reads for a
319
286
  // chain share one in-flight refresh.
320
- function refresh(c, store, chainId, cell) {
287
+ function refresh(c, db, chainId, cell) {
321
288
  const existing = refreshes.get(chainId);
322
289
  if (existing)
323
290
  return existing;
324
291
  const flight = (async () => {
325
292
  try {
326
- return await refreshCell(c, store, chainId, cell);
293
+ return await refreshCell(c, db, chainId, cell);
327
294
  }
328
295
  finally {
329
296
  refreshes.delete(chainId);
@@ -335,12 +302,12 @@ function refresh(c, store, chainId, cell) {
335
302
  // Refresh state machine. Soft-stale reads only the head and recompiles
336
303
  // solely on a version change; cold loads the full snapshot (an empty snapshot
337
304
  // when the chain has no head yet).
338
- async function refreshCell(c, store, chainId, cell) {
339
- // Cold: no prior snapshot. Load from store, or an empty snapshot when the
340
- // chain has no head. A hard failure here propagates (we have nothing good to
341
- // serve, and must not resurrect deleted tokens).
305
+ async function refreshCell(c, db, chainId, cell) {
306
+ // Cold: no prior snapshot. Load from the database, or an empty snapshot when
307
+ // the chain has no head. A hard failure here propagates (we have nothing good
308
+ // to serve, and must not resurrect deleted tokens).
342
309
  if (!cell) {
343
- const loaded = await Timing.time(c, 'verified_snapshot', () => read(store, chainId));
310
+ const loaded = await Timing.time(c, 'verified_snapshot', () => read(db, chainId));
344
311
  const snapshot = loaded ?? emptySnapshot(chainId);
345
312
  cells.set(chainId, { checkedAt: Date.now(), snapshot });
346
313
  return snapshot;
@@ -348,14 +315,14 @@ async function refreshCell(c, store, chainId, cell) {
348
315
  // Soft-stale: serve the last good in-memory snapshot and log loudly on
349
316
  // failure rather than dropping to empty (no resurrection of deleted tokens).
350
317
  try {
351
- const head = await Timing.time(c, 'verified_head', () => readHead(store, chainId));
318
+ const head = await Timing.time(c, 'verified_head', () => readHead(db, chainId));
352
319
  // Unchanged version (or head not yet present): keep snapshot, bump checkedAt.
353
320
  if (!head || head.version === cell.snapshot.version) {
354
321
  cells.set(chainId, { checkedAt: Date.now(), snapshot: cell.snapshot });
355
322
  return cell.snapshot;
356
323
  }
357
- // Version changed: load the new blob directly (head already in hand).
358
- const snapshot = await Timing.time(c, 'verified_snapshot', () => readBlob(store, chainId, head.version));
324
+ // Version changed: reload the current list (kept on a racing delete).
325
+ const snapshot = (await Timing.time(c, 'verified_snapshot', () => read(db, chainId))) ?? cell.snapshot;
359
326
  cells.set(chainId, { checkedAt: Date.now(), snapshot });
360
327
  return snapshot;
361
328
  }
@@ -369,30 +336,30 @@ async function refreshCell(c, store, chainId, cell) {
369
336
  * Returns the compiled verified-token {@link Snapshot} for a chain.
370
337
  *
371
338
  * When the verified-tokens feature is unconfigured, serves an empty snapshot.
372
- * When configured with a {@link Store.State}, serves a per-isolate snapshot
373
- * refreshed on a soft TTL: fresh lookups do zero store I/O; soft-stale
339
+ * When configured, serves a per-isolate snapshot backed by the app database,
340
+ * refreshed on a soft TTL: fresh lookups do zero database I/O; soft-stale
374
341
  * lookups return the current snapshot immediately and refresh in the background
375
342
  * (single-flight, head-only unless the version changed); a cold isolate loads
376
- * from the store (an empty snapshot when no head exists).
343
+ * from the database (an empty snapshot when no head exists).
377
344
  */
378
345
  export async function snapshot(c, chainId) {
379
346
  return Timing.time(c, 'verified_tokens', () => {
380
347
  const config = c.get('verifiedTokens');
381
- // Unconfigured: nothing is verified. No store, no cell.
348
+ // Unconfigured: nothing is verified. No reads, no cell.
382
349
  if (!config)
383
350
  return emptySnapshot(chainId);
384
351
  const refreshMs = config.refreshMs ?? defaultRefreshMs;
385
352
  const cell = cells.get(chainId);
386
- // Fresh: serve the in-memory snapshot with zero store I/O.
353
+ // Fresh: serve the in-memory snapshot with zero database I/O.
387
354
  if (cell && Date.now() - cell.checkedAt < refreshMs)
388
355
  return cell.snapshot;
389
356
  // Soft-stale: serve immediately, refresh in the background. Never blocks.
390
357
  if (cell) {
391
- void refresh(c, config.store, chainId, cell);
358
+ void refresh(c, Db.get(c.get('dbCached')), chainId, cell);
392
359
  return cell.snapshot;
393
360
  }
394
361
  // Cold: must load before the first response.
395
- return refresh(c, config.store, chainId, undefined);
362
+ return refresh(c, Db.get(c.get('dbCached')), chainId, undefined);
396
363
  });
397
364
  }
398
365
  /**
@@ -402,17 +369,6 @@ export async function snapshot(c, chainId) {
402
369
  * authoritative set is `Snapshot.currencies` from the live store.
403
370
  */
404
371
  export const currencies = ['EUR', 'USD'];
405
- /**
406
- * Thrown when a chain's `head` points at a snapshot version whose blob is
407
- * missing from the store. The write path always writes the blob before flipping
408
- * the head, so this indicates a torn write or external tampering.
409
- */
410
- export class TornStateError extends Error {
411
- name = 'VerifiedTokens.TornStateError';
412
- constructor(options) {
413
- super(`verified-token head for chain ${options.chainId} points at missing snapshot version "${options.version}".`);
414
- }
415
- }
416
372
  /** Thrown when a write would introduce a duplicate address on a chain. */
417
373
  export class DuplicateAddressError extends Error {
418
374
  name = 'VerifiedTokens.DuplicateAddressError';
@@ -1 +1 @@
1
- {"version":3,"file":"VerifiedTokens.js","sourceRoot":"","sources":["../../src/internal/VerifiedTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAKrC,yEAAyE;AACzE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;KAClB,KAAK,CACJ,CAAC;KACE,MAAM,CAAC;IACN,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC;IACpF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;IAC1E,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;IACnF,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC;IAC3E,OAAO,EAAE,CAAC;SACP,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;SACxC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAC;IAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;CACtE,CAAC;KACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CACrD;KACA,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAA;AAkCtD,kEAAkE;AAClE,MAAM,UAAU,OAAO,CAAC,OAAwB;IAC9C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IACvD,4EAA4E;IAC5E,0EAA0E;IAC1E,iFAAiF;IACjF,MAAM,IAAI,GAAoB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnD,GAAG,KAAK;QACR,EAAE,EAAE,KAAK,CAAC,EAAE,IAAK,KAAK,CAAC,OAAO,CAAC,WAAW,EAAc;KACzD,CAAC,CAAC,CAAA;IAEH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAA;IAClD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAA;IACrD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAA;IACjD,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAA;QACjD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAA;QAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;YACvB,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACxC,CAAC;IAED,OAAO;QACL,SAAS;QACT,UAAU;QACV,QAAQ;QACR,OAAO;QACP,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QAC3E,IAAI;QACJ,SAAS;QACT,OAAO;KACR,CAAA;AACH,CAAC;AAgBD,0EAA0E;AAC1E,gFAAgF;AAChF,wEAAwE;AACxE,MAAM,SAAS,GAAG,mBAAmB,CAAA;AAErC,gFAAgF;AAChF,uCAAuC;AACvC,MAAM,WAAW,GAAG,CAAC,CAAA;AAErB,yEAAyE;AACzE,SAAS,OAAO,CAAC,OAAgB;IAC/B,OAAO,GAAG,SAAS,IAAI,OAAO,OAAO,CAAA;AACvC,CAAC;AAED,0EAA0E;AAC1E,SAAS,WAAW,CAAC,OAAgB,EAAE,OAAe;IACpD,OAAO,GAAG,SAAS,IAAI,OAAO,aAAa,OAAO,EAAE,CAAA;AACtD,CAAC;AAED,8EAA8E;AAC9E,iDAAiD;AACjD,MAAM,IAAI,GAAG,CAAC;KACX,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;IAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;IAC7F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IAC7E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;CACnE,CAAC;KACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,wDAAwD,CAAC,CAAC,CAAA;AAE9E,+DAA+D;AAC/D,MAAM,IAAI,GAAG,CAAC;KACX,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IACxE,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IAC7E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;CAC3E,CAAC;KACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC,CAAC,CAAA;AAKlF,8EAA8E;AAC9E,KAAK,UAAU,QAAQ,CAAC,KAAkB,EAAE,OAAgB;IAC1D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;AACpC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,QAAQ,CAAC,KAAkB,EAAE,OAAgB,EAAE,OAAe;IAC3E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACtB,GAAG,MAAM;QACT,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;KAC9E,CAAC,CAAA;IACF,OAAO,OAAO,CAAC;QACb,OAAO;QACP,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,KAAkB,EAAE,OAAgB;IAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;AAC/C,CAAC;AAED,2EAA2E;AAC3E,oEAAoE;AACpE,IAAI,aAAa,GAAG,CAAC,CAAA;AAErB,2EAA2E;AAC3E,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,SAAS,WAAW;IAClB,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,GAAG,CAAC,CAAC,CAAA;IACvD,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAClF,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,OAAgB,EAAE,MAA6B;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvD,GAAG,KAAK;QACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAa;QAC/C,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAa;KAC3C,CAAC,CAAC,CAAA;IACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,qBAAqB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA,CAAC,kBAAkB;QACzH,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;QAC1F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,yEAAyE;AACzE,+EAA+E;AAC/E,wEAAwE;AACxE,SAAS,OAAO,CAAC,MAA0B;IACzC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAC9E,OAAO,EAAE,GAAI,KAAiC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA;IAC3F,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,0EAA0E;AAC1E,iFAAiF;AACjF,0DAA0D;AAC1D,KAAK,UAAU,WAAW,CACxB,KAAkB,EAClB,OAAgB;IAEhB,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAA;AACjD,CAAC;AAED,0EAA0E;AAC1E,uEAAuE;AACvE,2EAA2E;AAC3E,+CAA+C;AAC/C,KAAK,UAAU,aAAa,CAC1B,KAAkB,EAClB,OAAgB,EAChB,OAA2B;IAE3B,IAAI,OAAO,KAAK,SAAS;QAAE,OAAM;IACjC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3C,MAAM,MAAM,GAAG,IAAI,EAAE,OAAO,IAAI,YAAY,CAAA;IAC5C,IAAI,MAAM,KAAK,OAAO;QAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;AAChG,CAAC;AAED,wEAAwE;AACxE,gFAAgF;AAChF,6EAA6E;AAC7E,yBAAyB;AACzB,KAAK,UAAU,OAAO,CACpB,KAAkB,EAClB,OAAgB,EAChB,MAA6B;IAE7B,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAA;IAC7B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC1C,MAAM,KAAK,CAAC,GAAG,CACb,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CACnF,CAAA;IACD,MAAM,KAAK,CAAC,GAAG,CACb,OAAO,CAAC,OAAO,CAAC,EAChB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CACzF,CAAA;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;IACvE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACxB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAkB,EAAE,KAAmB;IAClE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAa,CAAA;IACtD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAU;QACnB,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,EAAE,EAAE,OAAO;QACX,IAAI;QACJ,MAAM;QACN,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KAC9C,CAAA;IACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAE,EAAE,CAAA;AAC9D,CAAC;AA6BD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,KAAkB,EAClB,OAAgB,EAChB,OAAe,EACf,KAAkB,EAClB,OAAO,GAAkB,EAAE;IAE3B,MAAM,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAa,CAAA;IAC/C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAA;IAC/E,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACvE,gEAAgE;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAA;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAA;QAC9C,OAAO;YACL,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ;YAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ;YAC1C,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;YACpC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;SAC9C,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACpD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,EAAE,CAAA;AAC7D,CAAC;AAuBD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAkB,EAClB,OAAgB,EAChB,OAAe,EACf,OAAO,GAAkB,EAAE;IAE3B,MAAM,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IACpC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAA;IAC3E,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAA;AAC1D,CAAC;AAUD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAAkB,EAClB,OAAgB,EAChB,MAA6B,EAC7B,OAAO,GAAkB,EAAE;IAE3B,MAAM,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAA;AAC5D,CAAC;AAED,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,gCAAgC;AAChC,MAAM,YAAY,GAAG,OAAO,CAAA;AAC5B,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AAEhD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAqB,CAAA;AAEnD,oFAAoF;AACpF,SAAS,aAAa,CAAC,OAAgB;IACrC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC;QACvB,OAAO;QACP,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,YAAY;KACtB,CAAC,CAAA;IACF,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACrC,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,6EAA6E;AAC7E,qCAAqC;AACrC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAU/B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAA;AAEtC,6EAA6E;AAC7E,qEAAqE;AACrE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAA;AAEvD;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,OAAgB,EAAE,QAAkB;IACxD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AACzD,CAAC;AAED,gFAAgF;AAChF,qCAAqC;AACrC,SAAS,OAAO,CACd,CAA2B,EAC3B,KAAkB,EAClB,OAAgB,EAChB,IAAsB;IAEtB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC;YACH,OAAO,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QACnD,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IACJ,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC9B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,uEAAuE;AACvE,8EAA8E;AAC9E,mCAAmC;AACnC,KAAK,UAAU,WAAW,CACxB,CAA2B,EAC3B,KAAkB,EAClB,OAAgB,EAChB,IAAsB;IAEtB,0EAA0E;IAC1E,6EAA6E;IAC7E,iDAAiD;IACjD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QACpF,MAAM,QAAQ,GAAG,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;QACjD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QACvD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,uEAAuE;IACvE,6EAA6E;IAC7E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QAClF,8EAA8E;QAC9E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YACtE,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;QACD,sEAAsE;QACtE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAC9D,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CACvC,CAAA;QACD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QACvD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8DAA8D,EAAE,KAAK,CAAC,CAAA;QACpF,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtE,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,CAA2B,EAAE,OAAgB;IAC1E,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;QACtC,wDAAwD;QACxD,IAAI,CAAC,MAAM;YAAE,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;QAE1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,gBAAgB,CAAA;QACtD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAE/B,2DAA2D;QAC3D,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAA;QAEzE,0EAA0E;QAC1E,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;QAED,6CAA6C;QAC7C,OAAO,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAExC;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,GAAG,+BAA+B,CAAA;IAC/C,YAAY,OAA6C;QACvD,KAAK,CACH,iCAAiC,OAAO,CAAC,OAAO,wCAAwC,OAAO,CAAC,OAAO,IAAI,CAC5G,CAAA;IACH,CAAC;CACF;AAED,0EAA0E;AAC1E,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,GAAG,sCAAsC,CAAA;IACtD,YAAY,OAA6C;QACvD,KAAK,CAAC,kBAAkB,OAAO,CAAC,OAAO,4BAA4B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAA;IACxF,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,GAAG,qCAAqC,CAAA;IACrD,YAAY,OAA4C;QACtD,KAAK,CAAC,oBAAoB,OAAO,CAAC,MAAM,6BAA6B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAA;IAC1F,CAAC;CACF;AAED,oFAAoF;AACpF,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,GAAG,8BAA8B,CAAA;IAC9C,YAAY,OAA6C;QACvD,KAAK,CAAC,kBAAkB,OAAO,CAAC,OAAO,uBAAuB,OAAO,CAAC,OAAO,GAAG,CAAC,CAAA;IACnF,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,GAAG,qCAAqC,CAAA;IACrD,YAAY,OAA8D;QACxE,KAAK,CACH,4CAA4C,OAAO,CAAC,OAAO,eAAe,OAAO,CAAC,QAAQ,aAAa,OAAO,CAAC,MAAM,IAAI,CAC1H,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"VerifiedTokens.js","sourceRoot":"","sources":["../../src/internal/VerifiedTokens.ts"],"names":[],"mappings":"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"}