tapimo 0.8.0 → 0.10.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 (223) hide show
  1. package/dist/App.d.ts +7410 -7613
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/App.js +0 -1
  4. package/dist/App.js.map +1 -1
  5. package/dist/Webhooks.d.ts +21 -20
  6. package/dist/Webhooks.d.ts.map +1 -1
  7. package/dist/Webhooks.js +66 -23
  8. package/dist/Webhooks.js.map +1 -1
  9. package/dist/admin/apps/verified-tokens.d.ts +74 -74
  10. package/dist/apps/Zones.d.ts +34 -22
  11. package/dist/apps/Zones.d.ts.map +1 -1
  12. package/dist/apps/Zones.js +9 -8
  13. package/dist/apps/Zones.js.map +1 -1
  14. package/dist/apps/data/App.d.ts +3120 -2782
  15. package/dist/apps/data/App.d.ts.map +1 -1
  16. package/dist/apps/data/FxOracle.d.ts +4 -5
  17. package/dist/apps/data/FxOracle.d.ts.map +1 -1
  18. package/dist/apps/data/FxOracle.js +19 -4
  19. package/dist/apps/data/FxOracle.js.map +1 -1
  20. package/dist/apps/data/routes/activities.d.ts.map +1 -1
  21. package/dist/apps/data/routes/activities.js +32 -27
  22. package/dist/apps/data/routes/activities.js.map +1 -1
  23. package/dist/apps/data/routes/addresses.d.ts +283 -52
  24. package/dist/apps/data/routes/addresses.d.ts.map +1 -1
  25. package/dist/apps/data/routes/balances.d.ts +291 -21
  26. package/dist/apps/data/routes/balances.d.ts.map +1 -1
  27. package/dist/apps/data/routes/balances.js +232 -66
  28. package/dist/apps/data/routes/balances.js.map +1 -1
  29. package/dist/apps/data/routes/blocks.d.ts +4 -4
  30. package/dist/apps/data/routes/coingecko.d.ts +54 -54
  31. package/dist/apps/data/routes/earn.d.ts +642 -126
  32. package/dist/apps/data/routes/earn.d.ts.map +1 -1
  33. package/dist/apps/data/routes/earn.js +627 -58
  34. package/dist/apps/data/routes/earn.js.map +1 -1
  35. package/dist/apps/data/routes/exchanges.d.ts +120 -120
  36. package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
  37. package/dist/apps/data/routes/exchanges.js +114 -118
  38. package/dist/apps/data/routes/exchanges.js.map +1 -1
  39. package/dist/apps/data/routes/receipts.d.ts.map +1 -1
  40. package/dist/apps/data/routes/receipts.js +68 -47
  41. package/dist/apps/data/routes/receipts.js.map +1 -1
  42. package/dist/apps/data/routes/tokens.d.ts +2 -0
  43. package/dist/apps/data/routes/tokens.d.ts.map +1 -1
  44. package/dist/apps/data/routes/transactions.d.ts +59 -51
  45. package/dist/apps/data/routes/transactions.d.ts.map +1 -1
  46. package/dist/apps/data/routes/transactions.js +25 -23
  47. package/dist/apps/data/routes/transactions.js.map +1 -1
  48. package/dist/apps/data/routes/transfers.d.ts +40 -18
  49. package/dist/apps/data/routes/transfers.d.ts.map +1 -1
  50. package/dist/apps/data/routes/transfers.js +618 -105
  51. package/dist/apps/data/routes/transfers.js.map +1 -1
  52. package/dist/apps/data/routes/valuation.d.ts +21 -21
  53. package/dist/apps/data/routes/valuation.d.ts.map +1 -1
  54. package/dist/apps/data/routes/valuation.js +2 -2
  55. package/dist/apps/data/routes/valuation.js.map +1 -1
  56. package/dist/apps/data/routes/verified-tokens.d.ts +37 -37
  57. package/dist/apps/data/routes/webhooks.d.ts +102 -505
  58. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  59. package/dist/apps/data/routes/webhooks.js +484 -342
  60. package/dist/apps/data/routes/webhooks.js.map +1 -1
  61. package/dist/apps/data/routes/zones.d.ts +12 -12
  62. package/dist/apps/data/routes/zones.d.ts.map +1 -1
  63. package/dist/apps/data/routes/zones.js +3 -1
  64. package/dist/apps/data/routes/zones.js.map +1 -1
  65. package/dist/apps/funding/App.d.ts +127 -386
  66. package/dist/apps/funding/App.d.ts.map +1 -1
  67. package/dist/apps/funding/App.js +20 -5
  68. package/dist/apps/funding/App.js.map +1 -1
  69. package/dist/apps/funding/routes/deposit-addresses.d.ts +141 -532
  70. package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -1
  71. package/dist/apps/funding/routes/deposit-addresses.js +21 -103
  72. package/dist/apps/funding/routes/deposit-addresses.js.map +1 -1
  73. package/dist/apps/funding/routes/transfers.d.ts +4 -4
  74. package/dist/apps/funding/routes/transfers.js +5 -5
  75. package/dist/apps/funding/routes/transfers.js.map +1 -1
  76. package/dist/apps/management/App.d.ts +429 -727
  77. package/dist/apps/management/App.d.ts.map +1 -1
  78. package/dist/apps/management/routes/api-keys.d.ts +24 -24
  79. package/dist/apps/management/routes/billing.d.ts +72 -72
  80. package/dist/apps/management/routes/faucet.d.ts +6 -6
  81. package/dist/apps/management/routes/invite-links.d.ts +38 -38
  82. package/dist/apps/management/routes/me.d.ts +6 -6
  83. package/dist/apps/management/routes/members.d.ts +30 -30
  84. package/dist/apps/management/routes/projects.d.ts +20 -20
  85. package/dist/apps/management/routes/usage.d.ts +24 -24
  86. package/dist/apps/management/routes/webhooks.d.ts +158 -573
  87. package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
  88. package/dist/apps/mpp/App.d.ts +12 -0
  89. package/dist/apps/mpp/App.d.ts.map +1 -1
  90. package/dist/apps/mpp/Mpp.d.ts +3 -0
  91. package/dist/apps/mpp/Mpp.d.ts.map +1 -1
  92. package/dist/apps/mpp/Mpp.js +3 -0
  93. package/dist/apps/mpp/Mpp.js.map +1 -1
  94. package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -1
  95. package/dist/apps/mpp/internal/Adapter.js +9 -2
  96. package/dist/apps/mpp/internal/Adapter.js.map +1 -1
  97. package/dist/db/Db.d.ts +2 -2
  98. package/dist/db/Db.d.ts.map +1 -1
  99. package/dist/db/Db.js +25 -15
  100. package/dist/db/Db.js.map +1 -1
  101. package/dist/db/tables/fundingDeposits.d.ts +18 -1
  102. package/dist/db/tables/fundingDeposits.d.ts.map +1 -1
  103. package/dist/db/tables/fundingDeposits.js +46 -2
  104. package/dist/db/tables/fundingDeposits.js.map +1 -1
  105. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  106. package/dist/db/tables/sponsoredTransactions.js +4 -1
  107. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  108. package/dist/db/tables/webhookSubscriptions.d.ts +56 -3
  109. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
  110. package/dist/db/tables/webhookSubscriptions.js +76 -3
  111. package/dist/db/tables/webhookSubscriptions.js.map +1 -1
  112. package/dist/internal/Auth.d.ts +4 -0
  113. package/dist/internal/Auth.d.ts.map +1 -1
  114. package/dist/internal/Auth.js +11 -2
  115. package/dist/internal/Auth.js.map +1 -1
  116. package/dist/internal/MetricSink.d.ts +112 -3
  117. package/dist/internal/MetricSink.d.ts.map +1 -1
  118. package/dist/internal/MetricSink.js +116 -3
  119. package/dist/internal/MetricSink.js.map +1 -1
  120. package/dist/internal/Schema.js +1 -1
  121. package/dist/internal/Schema.js.map +1 -1
  122. package/dist/internal/Tidx.d.ts +1 -3
  123. package/dist/internal/Tidx.d.ts.map +1 -1
  124. package/dist/internal/Tidx.js +1 -3
  125. package/dist/internal/Tidx.js.map +1 -1
  126. package/dist/internal/Viem.d.ts.map +1 -1
  127. package/dist/internal/Viem.js +2 -1
  128. package/dist/internal/Viem.js.map +1 -1
  129. package/dist/internal/WebhookDestination.d.ts +2 -0
  130. package/dist/internal/WebhookDestination.d.ts.map +1 -1
  131. package/dist/internal/WebhookDestination.js +11 -0
  132. package/dist/internal/WebhookDestination.js.map +1 -1
  133. package/dist/internal/WebhookTransfer.d.ts +55 -0
  134. package/dist/internal/WebhookTransfer.d.ts.map +1 -0
  135. package/dist/internal/WebhookTransfer.js +296 -0
  136. package/dist/internal/WebhookTransfer.js.map +1 -0
  137. package/dist/internal/Webhooks.d.ts +37 -0
  138. package/dist/internal/Webhooks.d.ts.map +1 -1
  139. package/dist/internal/Webhooks.js +87 -13
  140. package/dist/internal/Webhooks.js.map +1 -1
  141. package/dist/internal/funding/Provider.d.ts +10 -6
  142. package/dist/internal/funding/Provider.d.ts.map +1 -1
  143. package/dist/internal/funding/Provider.js +11 -7
  144. package/dist/internal/funding/Provider.js.map +1 -1
  145. package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
  146. package/dist/internal/funding/Reconciliation.js +229 -16
  147. package/dist/internal/funding/Reconciliation.js.map +1 -1
  148. package/dist/internal/funding/providers/relay.d.ts +3 -0
  149. package/dist/internal/funding/providers/relay.d.ts.map +1 -1
  150. package/dist/internal/funding/providers/relay.js +18 -3
  151. package/dist/internal/funding/providers/relay.js.map +1 -1
  152. package/package.json +3 -3
  153. package/src/App.test.ts +32 -0
  154. package/src/App.ts +4 -1
  155. package/src/Client.test-d.ts +116 -38
  156. package/src/Webhooks.bench.ts +714 -0
  157. package/src/Webhooks.memory.bench.ts +250 -0
  158. package/src/Webhooks.test.ts +77 -6
  159. package/src/Webhooks.ts +83 -29
  160. package/src/apps/Zones.test.ts +5 -4
  161. package/src/apps/Zones.ts +9 -8
  162. package/src/apps/composition.test.ts +39 -10
  163. package/src/apps/data/FxOracle.test.ts +18 -0
  164. package/src/apps/data/FxOracle.ts +28 -5
  165. package/src/apps/data/routes/activities.test.ts +19 -0
  166. package/src/apps/data/routes/activities.ts +34 -30
  167. package/src/apps/data/routes/balances.test.ts +161 -10
  168. package/src/apps/data/routes/balances.ts +339 -147
  169. package/src/apps/data/routes/blocks.test.ts +12 -6
  170. package/src/apps/data/routes/earn.test.ts +286 -9
  171. package/src/apps/data/routes/earn.ts +841 -58
  172. package/src/apps/data/routes/exchanges.test.ts +7 -6
  173. package/src/apps/data/routes/exchanges.ts +124 -117
  174. package/src/apps/data/routes/receipts.test.ts +24 -7
  175. package/src/apps/data/routes/receipts.ts +67 -50
  176. package/src/apps/data/routes/tokens.test.ts +51 -0
  177. package/src/apps/data/routes/transactions.test.ts +42 -0
  178. package/src/apps/data/routes/transactions.ts +44 -39
  179. package/src/apps/data/routes/transfers.test.ts +402 -24
  180. package/src/apps/data/routes/transfers.ts +708 -101
  181. package/src/apps/data/routes/valuation.test.ts +26 -0
  182. package/src/apps/data/routes/valuation.ts +6 -2
  183. package/src/apps/data/routes/webhooks.test.ts +414 -130
  184. package/src/apps/data/routes/webhooks.ts +603 -419
  185. package/src/apps/data/routes/zones.ts +6 -1
  186. package/src/apps/funding/App.ts +20 -5
  187. package/src/apps/funding/routes/deposit-addresses.test.ts +43 -22
  188. package/src/apps/funding/routes/deposit-addresses.ts +34 -117
  189. package/src/apps/funding/routes/quotes.test.ts +1 -1
  190. package/src/apps/funding/routes/transfers.test.ts +6 -25
  191. package/src/apps/funding/routes/transfers.ts +5 -5
  192. package/src/apps/mpp/Mpp.test.ts +13 -1
  193. package/src/apps/mpp/Mpp.ts +8 -0
  194. package/src/apps/mpp/internal/Adapter.ts +10 -2
  195. package/src/db/Db.test.ts +40 -6
  196. package/src/db/Db.ts +42 -19
  197. package/src/db/tables/fundingDeposits.test.ts +101 -0
  198. package/src/db/tables/fundingDeposits.ts +71 -2
  199. package/src/db/tables/sponsoredTransactions.ts +9 -2
  200. package/src/db/tables/webhookSubscriptions.ts +116 -4
  201. package/src/internal/Auth.test.ts +28 -0
  202. package/src/internal/Auth.ts +15 -1
  203. package/src/internal/EarnVaults.test.ts +2 -2
  204. package/src/internal/MetricSink.test.ts +518 -0
  205. package/src/internal/MetricSink.ts +266 -9
  206. package/src/internal/Schema.ts +1 -1
  207. package/src/internal/Tidx.test.ts +4 -4
  208. package/src/internal/Tidx.ts +1 -3
  209. package/src/internal/Viem.test.ts +8 -0
  210. package/src/internal/Viem.ts +2 -1
  211. package/src/internal/WebhookDestination.test.ts +20 -0
  212. package/src/internal/WebhookDestination.ts +10 -0
  213. package/src/internal/WebhookTransfer.ts +426 -0
  214. package/src/internal/Webhooks.test.ts +137 -0
  215. package/src/internal/Webhooks.ts +131 -17
  216. package/src/internal/funding/Provider.test.ts +47 -7
  217. package/src/internal/funding/Provider.ts +16 -11
  218. package/src/internal/funding/Reconciliation.local.test.ts +3 -1
  219. package/src/internal/funding/Reconciliation.test.ts +1532 -54
  220. package/src/internal/funding/Reconciliation.ts +296 -53
  221. package/src/internal/funding/SourceObservation.test.ts +3 -2
  222. package/src/internal/funding/providers/relay.test.ts +1 -4
  223. package/src/internal/funding/providers/relay.ts +23 -3
@@ -1,4 +1,5 @@
1
1
  import { type Context } from 'hono';
2
+ import type { Actions } from 'viem/tempo';
2
3
  import { type Chain } from 'viem';
3
4
  import * as z from 'zod/mini';
4
5
  import type * as App from '../../../App.js';
@@ -539,9 +540,90 @@ export declare namespace schema {
539
540
  nextCursor: z.ZodMiniNullable<z.ZodMiniString<string>>;
540
541
  }, z.core.$strict>;
541
542
  }
543
+ /** Schemas for the getEarnAddressPositions operation. */
544
+ namespace getEarnAddressPositions {
545
+ /** Path parameters identifying the account. */
546
+ const Params: z.ZodMiniObject<{
547
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
548
+ }, z.core.$strict>;
549
+ /** Query parameters for listing an account's earn positions. */
550
+ const Query: z.ZodMiniObject<{
551
+ chainId: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniEnum<{
552
+ mainnet: "mainnet";
553
+ testnet: "testnet";
554
+ }>, z.ZodMiniTransform<4217 | 42431, "mainnet" | "testnet">>, z.ZodMiniNumber<unknown>]>, z.ZodMiniNumber<number>>>;
555
+ cursor: z.ZodMiniOptional<z.ZodMiniString<string>>;
556
+ limit: z.ZodMiniDefault<z.ZodMiniNumber<unknown>>;
557
+ 'valuation.currency': z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<string, string>>>;
558
+ verified: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniEnum<{
559
+ false: "false";
560
+ true: "true";
561
+ }>, z.ZodMiniTransform<boolean, "false" | "true">>>;
562
+ }, z.core.$strict>;
563
+ /** Page-level valuation rate provenance. */
564
+ const Meta: z.ZodMiniObject<{
565
+ valuation: z.ZodMiniOptional<z.ZodMiniObject<{
566
+ asOf: z.ZodMiniISODateTime;
567
+ basis: z.ZodMiniLiteral<"nominal">;
568
+ source: z.ZodMiniString<string>;
569
+ }, z.core.$strip>>;
570
+ }, z.core.$strip>;
571
+ /** Paginated list of the account's earn vault positions. */
572
+ const Response: z.ZodMiniObject<{
573
+ data: z.ZodMiniArray<z.ZodMiniObject<{
574
+ assetAmount: z.ZodMiniObject<{
575
+ amount: z.ZodMiniString<string>;
576
+ currency: z.ZodMiniString<string>;
577
+ decimals: z.ZodMiniNumber<number>;
578
+ formatted: z.ZodMiniString<string>;
579
+ }, z.core.$strict>;
580
+ assetToken: z.ZodMiniObject<{
581
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
582
+ currency: z.ZodMiniString<string>;
583
+ decimals: z.ZodMiniNumber<number>;
584
+ id: z.ZodMiniString<string>;
585
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
586
+ name: z.ZodMiniString<string>;
587
+ symbol: z.ZodMiniString<string>;
588
+ verified: z.ZodMiniBoolean<boolean>;
589
+ }, z.core.$strip>;
590
+ id: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
591
+ shareAmount: z.ZodMiniObject<{
592
+ amount: z.ZodMiniString<string>;
593
+ currency: z.ZodMiniString<string>;
594
+ decimals: z.ZodMiniNumber<number>;
595
+ formatted: z.ZodMiniString<string>;
596
+ }, z.core.$strict>;
597
+ shareToken: z.ZodMiniObject<{
598
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
599
+ currency: z.ZodMiniString<string>;
600
+ decimals: z.ZodMiniNumber<number>;
601
+ id: z.ZodMiniString<string>;
602
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
603
+ name: z.ZodMiniString<string>;
604
+ symbol: z.ZodMiniString<string>;
605
+ verified: z.ZodMiniBoolean<boolean>;
606
+ }, z.core.$strip>;
607
+ valuation: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniObject<{
608
+ amount: z.ZodMiniString<string>;
609
+ currency: z.ZodMiniString<string>;
610
+ }, z.core.$strip>>>;
611
+ vaultAddress: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
612
+ verified: z.ZodMiniBoolean<boolean>;
613
+ }, z.core.$strict>>;
614
+ meta: z.ZodMiniOptional<z.ZodMiniObject<{
615
+ valuation: z.ZodMiniOptional<z.ZodMiniObject<{
616
+ asOf: z.ZodMiniISODateTime;
617
+ basis: z.ZodMiniLiteral<"nominal">;
618
+ source: z.ZodMiniString<string>;
619
+ }, z.core.$strip>>;
620
+ }, z.core.$strip>>;
621
+ nextCursor: z.ZodMiniNullable<z.ZodMiniString<string>>;
622
+ }, z.core.$strict>;
623
+ }
542
624
  /** Schemas for the getEarnVault operation. */
543
625
  namespace getEarnVault {
544
- /** Path parameters identifying one Earn vault. */
626
+ /** Path parameters identifying one earn vault. */
545
627
  const Params: z.ZodMiniObject<{
546
628
  vaultId: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
547
629
  }, z.core.$strict>;
@@ -723,6 +805,7 @@ export declare namespace schema {
723
805
  testnet: "testnet";
724
806
  }>, z.ZodMiniTransform<4217 | 42431, "mainnet" | "testnet">>, z.ZodMiniNumber<unknown>]>, z.ZodMiniNumber<number>>>;
725
807
  period: z.ZodMiniDefault<z.ZodMiniEnum<{
808
+ "30d": "30d";
726
809
  active: "active";
727
810
  lifetime: "lifetime";
728
811
  }>>;
@@ -744,12 +827,21 @@ export declare namespace schema {
744
827
  activeEarnings: z.ZodMiniString<string>;
745
828
  period: z.ZodMiniLiteral<"active">;
746
829
  status: z.ZodMiniLiteral<"complete">;
830
+ }, z.core.$strict>, z.ZodMiniObject<{
831
+ account: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
832
+ assetToken: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
833
+ currentValue: z.ZodMiniString<string>;
834
+ id: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
835
+ period: z.ZodMiniLiteral<"30d">;
836
+ status: z.ZodMiniLiteral<"complete">;
837
+ windowEarnings: z.ZodMiniString<string>;
747
838
  }, z.core.$strict>, z.ZodMiniObject<{
748
839
  account: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
749
840
  assetToken: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
750
841
  currentValue: z.ZodMiniString<string>;
751
842
  id: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
752
843
  period: z.ZodMiniEnum<{
844
+ "30d": "30d";
753
845
  active: "active";
754
846
  lifetime: "lifetime";
755
847
  }>;
@@ -759,7 +851,10 @@ export declare namespace schema {
759
851
  assetToken: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
760
852
  currentValue: z.ZodMiniString<string>;
761
853
  id: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
762
- period: z.ZodMiniLiteral<"lifetime">;
854
+ period: z.ZodMiniEnum<{
855
+ "30d": "30d";
856
+ lifetime: "lifetime";
857
+ }>;
763
858
  status: z.ZodMiniLiteral<"pending_redemption">;
764
859
  }, z.core.$strict>]>;
765
860
  }
@@ -786,14 +881,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
786
881
  } | {
787
882
  output: {
788
883
  error: {
789
- code: "api_key_malformed";
884
+ code: "upstream_error";
790
885
  details?: readonly Response.error.Detail[] | undefined;
791
886
  message: string;
792
887
  };
793
888
  requestId: string;
794
889
  };
795
890
  outputFormat: "json";
796
- status: 400;
891
+ status: 502;
797
892
  input: {
798
893
  query?: {
799
894
  asset?: string | string[];
@@ -809,14 +904,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
809
904
  } | {
810
905
  output: {
811
906
  error: {
812
- code: "api_key_invalid" | "api_key_missing";
907
+ code: "api_key_malformed";
813
908
  details?: readonly Response.error.Detail[] | undefined;
814
909
  message: string;
815
910
  };
816
911
  requestId: string;
817
912
  };
818
913
  outputFormat: "json";
819
- status: 401;
914
+ status: 400;
820
915
  input: {
821
916
  query?: {
822
917
  asset?: string | string[];
@@ -832,14 +927,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
832
927
  } | {
833
928
  output: {
834
929
  error: {
835
- code: "api_key_forbidden" | "api_key_ip_forbidden";
930
+ code: "api_key_invalid" | "api_key_missing";
836
931
  details?: readonly Response.error.Detail[] | undefined;
837
932
  message: string;
838
933
  };
839
934
  requestId: string;
840
935
  };
841
936
  outputFormat: "json";
842
- status: 403;
937
+ status: 401;
843
938
  input: {
844
939
  query?: {
845
940
  asset?: string | string[];
@@ -855,14 +950,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
855
950
  } | {
856
951
  output: {
857
952
  error: {
858
- code: "payment_required" | "rate_limit_exceeded";
953
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
859
954
  details?: readonly Response.error.Detail[] | undefined;
860
955
  message: string;
861
956
  };
862
957
  requestId: string;
863
958
  };
864
959
  outputFormat: "json";
865
- status: 429;
960
+ status: 403;
866
961
  input: {
867
962
  query?: {
868
963
  asset?: string | string[];
@@ -878,14 +973,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
878
973
  } | {
879
974
  output: {
880
975
  error: {
881
- code: "query_invalid";
976
+ code: "payment_required" | "rate_limit_exceeded";
882
977
  details?: readonly Response.error.Detail[] | undefined;
883
978
  message: string;
884
979
  };
885
980
  requestId: string;
886
981
  };
887
982
  outputFormat: "json";
888
- status: 400;
983
+ status: 429;
889
984
  input: {
890
985
  query?: {
891
986
  asset?: string | string[];
@@ -901,14 +996,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
901
996
  } | {
902
997
  output: {
903
998
  error: {
904
- code: "upstream_error";
999
+ code: "query_invalid";
905
1000
  details?: readonly Response.error.Detail[] | undefined;
906
1001
  message: string;
907
1002
  };
908
1003
  requestId: string;
909
1004
  };
910
1005
  outputFormat: "json";
911
- status: 502;
1006
+ status: 400;
912
1007
  input: {
913
1008
  query?: {
914
1009
  asset?: string | string[];
@@ -1046,6 +1141,29 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1046
1141
  'apy.window'?: string | string[];
1047
1142
  } | undefined;
1048
1143
  };
1144
+ } | {
1145
+ output: {
1146
+ error: {
1147
+ code: "upstream_error";
1148
+ details?: readonly Response.error.Detail[] | undefined;
1149
+ message: string;
1150
+ };
1151
+ requestId: string;
1152
+ };
1153
+ outputFormat: "json";
1154
+ status: 502;
1155
+ input: {
1156
+ query?: {
1157
+ asset?: string | string[];
1158
+ capability?: string | string[];
1159
+ chainId?: string | string[];
1160
+ cursor?: string | string[];
1161
+ 'engine.type'?: string | string[];
1162
+ include?: string | string[];
1163
+ limit?: string | string[];
1164
+ 'apy.window'?: string | string[];
1165
+ } | undefined;
1166
+ };
1049
1167
  } | {
1050
1168
  output: {
1051
1169
  error: {
@@ -1128,20 +1246,337 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1128
1246
  status: 429;
1129
1247
  input: {
1130
1248
  query?: {
1131
- asset?: string | string[];
1132
- capability?: string | string[];
1249
+ asset?: string | string[];
1250
+ capability?: string | string[];
1251
+ chainId?: string | string[];
1252
+ cursor?: string | string[];
1253
+ 'engine.type'?: string | string[];
1254
+ include?: string | string[];
1255
+ limit?: string | string[];
1256
+ 'apy.window'?: string | string[];
1257
+ } | undefined;
1258
+ };
1259
+ } | {
1260
+ output: {
1261
+ error: {
1262
+ code: "query_invalid";
1263
+ details?: readonly Response.error.Detail[] | undefined;
1264
+ message: string;
1265
+ };
1266
+ requestId: string;
1267
+ };
1268
+ outputFormat: "json";
1269
+ status: 400;
1270
+ input: {
1271
+ query?: {
1272
+ asset?: string | string[];
1273
+ capability?: string | string[];
1274
+ chainId?: string | string[];
1275
+ cursor?: string | string[];
1276
+ 'engine.type'?: string | string[];
1277
+ include?: string | string[];
1278
+ limit?: string | string[];
1279
+ 'apy.window'?: string | string[];
1280
+ } | undefined;
1281
+ };
1282
+ } | {
1283
+ output: {
1284
+ data: {
1285
+ access?: {
1286
+ status: "allowlisted" | "open";
1287
+ } | undefined;
1288
+ apy?: {
1289
+ asOf: string;
1290
+ methodology: "share-price-growth-annualized:v1";
1291
+ net: string;
1292
+ window: "1d" | "1h" | "30d" | "7d";
1293
+ } | null | undefined;
1294
+ assetToken: {
1295
+ address: `0x${string}`;
1296
+ currency: string;
1297
+ decimals: number;
1298
+ id: string;
1299
+ logoUri?: string | undefined;
1300
+ name: string;
1301
+ symbol: string;
1302
+ verified: boolean;
1303
+ };
1304
+ capabilities?: {
1305
+ asyncRedeem: boolean;
1306
+ boundedRedeem: boolean;
1307
+ deposit: boolean;
1308
+ exactWithdraw: boolean;
1309
+ inKindDeposit: boolean;
1310
+ privateRouting: boolean;
1311
+ redeem: boolean;
1312
+ routerSwaps: boolean;
1313
+ } | undefined;
1314
+ description: string | null;
1315
+ id: `0x${string}`;
1316
+ instantLiquidity: string | null;
1317
+ label: string;
1318
+ sharePrice: {
1319
+ amount: string;
1320
+ currency: string;
1321
+ decimals: number;
1322
+ formatted: string;
1323
+ } | null;
1324
+ shareToken: {
1325
+ address: `0x${string}`;
1326
+ currency: string;
1327
+ decimals: number;
1328
+ id: string;
1329
+ logoUri?: string | undefined;
1330
+ name: string;
1331
+ symbol: string;
1332
+ verified: boolean;
1333
+ };
1334
+ state: {
1335
+ depositsPaused: boolean;
1336
+ engineShares: string;
1337
+ feesActive: boolean;
1338
+ isAccountingAligned: boolean;
1339
+ openRedeemRequestCount: number;
1340
+ totalAssets: string;
1341
+ totalEarnShares: string;
1342
+ };
1343
+ tvl?: {
1344
+ amount: string;
1345
+ currency: string;
1346
+ decimals: number;
1347
+ formatted: string;
1348
+ } | null | undefined;
1349
+ vaultAddress: `0x${string}`;
1350
+ zone?: {
1351
+ chainId: number;
1352
+ inputTokens: `0x${string}`[];
1353
+ name: string;
1354
+ outputTokens: `0x${string}`[];
1355
+ } | null | undefined;
1356
+ engine: {
1357
+ address: `0x${string}`;
1358
+ venue: `0x${string}` | null;
1359
+ type: "erc4626" | "veda";
1360
+ };
1361
+ slug: string;
1362
+ verified: true;
1363
+ }[];
1364
+ meta?: {
1365
+ valuation?: {
1366
+ asOf: string;
1367
+ basis: "nominal";
1368
+ source: string;
1369
+ } | undefined;
1370
+ } | undefined;
1371
+ nextCursor: string | null;
1372
+ };
1373
+ outputFormat: "json";
1374
+ status: 200;
1375
+ input: {
1376
+ query?: {
1377
+ asset?: string | string[];
1378
+ capability?: string | string[];
1379
+ chainId?: string | string[];
1380
+ cursor?: string | string[];
1381
+ 'engine.type'?: string | string[];
1382
+ include?: string | string[];
1383
+ limit?: string | string[];
1384
+ 'apy.window'?: string | string[];
1385
+ } | undefined;
1386
+ };
1387
+ };
1388
+ };
1389
+ } & {
1390
+ "/v1/earn/addresses/:address/positions": {
1391
+ $get: {
1392
+ output: null;
1393
+ outputFormat: "body";
1394
+ status: 402;
1395
+ input: {
1396
+ param: {
1397
+ address: `0x${string}`;
1398
+ };
1399
+ } & {
1400
+ query?: {
1401
+ chainId?: string | string[];
1402
+ cursor?: string | string[];
1403
+ limit?: string | string[];
1404
+ 'valuation.currency'?: string | string[];
1405
+ verified?: string | string[];
1406
+ } | undefined;
1407
+ };
1408
+ } | {
1409
+ output: {
1410
+ error: {
1411
+ code: "chain_id_unsupported";
1412
+ details?: readonly Response.error.Detail[] | undefined;
1413
+ message: string;
1414
+ };
1415
+ requestId: string;
1416
+ };
1417
+ outputFormat: "json";
1418
+ status: 400;
1419
+ input: {
1420
+ param: {
1421
+ address: `0x${string}`;
1422
+ };
1423
+ } & {
1424
+ query?: {
1425
+ chainId?: string | string[];
1426
+ cursor?: string | string[];
1427
+ limit?: string | string[];
1428
+ 'valuation.currency'?: string | string[];
1429
+ verified?: string | string[];
1430
+ } | undefined;
1431
+ };
1432
+ } | {
1433
+ output: {
1434
+ error: {
1435
+ code: "upstream_error";
1436
+ details?: readonly Response.error.Detail[] | undefined;
1437
+ message: string;
1438
+ };
1439
+ requestId: string;
1440
+ };
1441
+ outputFormat: "json";
1442
+ status: 502;
1443
+ input: {
1444
+ param: {
1445
+ address: `0x${string}`;
1446
+ };
1447
+ } & {
1448
+ query?: {
1449
+ chainId?: string | string[];
1450
+ cursor?: string | string[];
1451
+ limit?: string | string[];
1452
+ 'valuation.currency'?: string | string[];
1453
+ verified?: string | string[];
1454
+ } | undefined;
1455
+ };
1456
+ } | {
1457
+ output: {
1458
+ error: {
1459
+ code: "api_key_malformed";
1460
+ details?: readonly Response.error.Detail[] | undefined;
1461
+ message: string;
1462
+ };
1463
+ requestId: string;
1464
+ };
1465
+ outputFormat: "json";
1466
+ status: 400;
1467
+ input: {
1468
+ param: {
1469
+ address: `0x${string}`;
1470
+ };
1471
+ } & {
1472
+ query?: {
1473
+ chainId?: string | string[];
1474
+ cursor?: string | string[];
1475
+ limit?: string | string[];
1476
+ 'valuation.currency'?: string | string[];
1477
+ verified?: string | string[];
1478
+ } | undefined;
1479
+ };
1480
+ } | {
1481
+ output: {
1482
+ error: {
1483
+ code: "api_key_invalid" | "api_key_missing";
1484
+ details?: readonly Response.error.Detail[] | undefined;
1485
+ message: string;
1486
+ };
1487
+ requestId: string;
1488
+ };
1489
+ outputFormat: "json";
1490
+ status: 401;
1491
+ input: {
1492
+ param: {
1493
+ address: `0x${string}`;
1494
+ };
1495
+ } & {
1496
+ query?: {
1497
+ chainId?: string | string[];
1498
+ cursor?: string | string[];
1499
+ limit?: string | string[];
1500
+ 'valuation.currency'?: string | string[];
1501
+ verified?: string | string[];
1502
+ } | undefined;
1503
+ };
1504
+ } | {
1505
+ output: {
1506
+ error: {
1507
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
1508
+ details?: readonly Response.error.Detail[] | undefined;
1509
+ message: string;
1510
+ };
1511
+ requestId: string;
1512
+ };
1513
+ outputFormat: "json";
1514
+ status: 403;
1515
+ input: {
1516
+ param: {
1517
+ address: `0x${string}`;
1518
+ };
1519
+ } & {
1520
+ query?: {
1521
+ chainId?: string | string[];
1522
+ cursor?: string | string[];
1523
+ limit?: string | string[];
1524
+ 'valuation.currency'?: string | string[];
1525
+ verified?: string | string[];
1526
+ } | undefined;
1527
+ };
1528
+ } | {
1529
+ output: {
1530
+ error: {
1531
+ code: "payment_required" | "rate_limit_exceeded";
1532
+ details?: readonly Response.error.Detail[] | undefined;
1533
+ message: string;
1534
+ };
1535
+ requestId: string;
1536
+ };
1537
+ outputFormat: "json";
1538
+ status: 429;
1539
+ input: {
1540
+ param: {
1541
+ address: `0x${string}`;
1542
+ };
1543
+ } & {
1544
+ query?: {
1545
+ chainId?: string | string[];
1546
+ cursor?: string | string[];
1547
+ limit?: string | string[];
1548
+ 'valuation.currency'?: string | string[];
1549
+ verified?: string | string[];
1550
+ } | undefined;
1551
+ };
1552
+ } | {
1553
+ output: {
1554
+ error: {
1555
+ code: "query_invalid";
1556
+ details?: readonly Response.error.Detail[] | undefined;
1557
+ message: string;
1558
+ };
1559
+ requestId: string;
1560
+ };
1561
+ outputFormat: "json";
1562
+ status: 400;
1563
+ input: {
1564
+ param: {
1565
+ address: `0x${string}`;
1566
+ };
1567
+ } & {
1568
+ query?: {
1133
1569
  chainId?: string | string[];
1134
1570
  cursor?: string | string[];
1135
- 'engine.type'?: string | string[];
1136
- include?: string | string[];
1137
1571
  limit?: string | string[];
1138
- 'apy.window'?: string | string[];
1572
+ 'valuation.currency'?: string | string[];
1573
+ verified?: string | string[];
1139
1574
  } | undefined;
1140
1575
  };
1141
1576
  } | {
1142
1577
  output: {
1143
1578
  error: {
1144
- code: "query_invalid";
1579
+ code: "chain_id_invalid";
1145
1580
  details?: readonly Response.error.Detail[] | undefined;
1146
1581
  message: string;
1147
1582
  };
@@ -1150,52 +1585,51 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1150
1585
  outputFormat: "json";
1151
1586
  status: 400;
1152
1587
  input: {
1588
+ param: {
1589
+ address: `0x${string}`;
1590
+ };
1591
+ } & {
1153
1592
  query?: {
1154
- asset?: string | string[];
1155
- capability?: string | string[];
1156
1593
  chainId?: string | string[];
1157
1594
  cursor?: string | string[];
1158
- 'engine.type'?: string | string[];
1159
- include?: string | string[];
1160
1595
  limit?: string | string[];
1161
- 'apy.window'?: string | string[];
1596
+ 'valuation.currency'?: string | string[];
1597
+ verified?: string | string[];
1162
1598
  } | undefined;
1163
1599
  };
1164
1600
  } | {
1165
1601
  output: {
1166
1602
  error: {
1167
- code: "upstream_error";
1603
+ code: "positions_invalid";
1168
1604
  details?: readonly Response.error.Detail[] | undefined;
1169
1605
  message: string;
1170
1606
  };
1171
1607
  requestId: string;
1172
1608
  };
1173
1609
  outputFormat: "json";
1174
- status: 502;
1610
+ status: 400;
1175
1611
  input: {
1612
+ param: {
1613
+ address: `0x${string}`;
1614
+ };
1615
+ } & {
1176
1616
  query?: {
1177
- asset?: string | string[];
1178
- capability?: string | string[];
1179
1617
  chainId?: string | string[];
1180
1618
  cursor?: string | string[];
1181
- 'engine.type'?: string | string[];
1182
- include?: string | string[];
1183
1619
  limit?: string | string[];
1184
- 'apy.window'?: string | string[];
1620
+ 'valuation.currency'?: string | string[];
1621
+ verified?: string | string[];
1185
1622
  } | undefined;
1186
1623
  };
1187
1624
  } | {
1188
1625
  output: {
1189
1626
  data: {
1190
- access?: {
1191
- status: "allowlisted" | "open";
1192
- } | undefined;
1193
- apy?: {
1194
- asOf: string;
1195
- methodology: "share-price-growth-annualized:v1";
1196
- net: string;
1197
- window: "1d" | "1h" | "30d" | "7d";
1198
- } | null | undefined;
1627
+ assetAmount: {
1628
+ amount: string;
1629
+ currency: string;
1630
+ decimals: number;
1631
+ formatted: string;
1632
+ };
1199
1633
  assetToken: {
1200
1634
  address: `0x${string}`;
1201
1635
  currency: string;
@@ -1206,26 +1640,13 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1206
1640
  symbol: string;
1207
1641
  verified: boolean;
1208
1642
  };
1209
- capabilities?: {
1210
- asyncRedeem: boolean;
1211
- boundedRedeem: boolean;
1212
- deposit: boolean;
1213
- exactWithdraw: boolean;
1214
- inKindDeposit: boolean;
1215
- privateRouting: boolean;
1216
- redeem: boolean;
1217
- routerSwaps: boolean;
1218
- } | undefined;
1219
- description: string | null;
1220
1643
  id: `0x${string}`;
1221
- instantLiquidity: string | null;
1222
- label: string;
1223
- sharePrice: {
1644
+ shareAmount: {
1224
1645
  amount: string;
1225
1646
  currency: string;
1226
1647
  decimals: number;
1227
1648
  formatted: string;
1228
- } | null;
1649
+ };
1229
1650
  shareToken: {
1230
1651
  address: `0x${string}`;
1231
1652
  currency: string;
@@ -1236,35 +1657,12 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1236
1657
  symbol: string;
1237
1658
  verified: boolean;
1238
1659
  };
1239
- state: {
1240
- depositsPaused: boolean;
1241
- engineShares: string;
1242
- feesActive: boolean;
1243
- isAccountingAligned: boolean;
1244
- openRedeemRequestCount: number;
1245
- totalAssets: string;
1246
- totalEarnShares: string;
1247
- };
1248
- tvl?: {
1660
+ valuation?: {
1249
1661
  amount: string;
1250
1662
  currency: string;
1251
- decimals: number;
1252
- formatted: string;
1253
1663
  } | null | undefined;
1254
1664
  vaultAddress: `0x${string}`;
1255
- zone?: {
1256
- chainId: number;
1257
- inputTokens: `0x${string}`[];
1258
- name: string;
1259
- outputTokens: `0x${string}`[];
1260
- } | null | undefined;
1261
- engine: {
1262
- address: `0x${string}`;
1263
- venue: `0x${string}` | null;
1264
- type: "erc4626" | "veda";
1265
- };
1266
- slug: string;
1267
- verified: true;
1665
+ verified: boolean;
1268
1666
  }[];
1269
1667
  meta?: {
1270
1668
  valuation?: {
@@ -1278,15 +1676,16 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1278
1676
  outputFormat: "json";
1279
1677
  status: 200;
1280
1678
  input: {
1679
+ param: {
1680
+ address: `0x${string}`;
1681
+ };
1682
+ } & {
1281
1683
  query?: {
1282
- asset?: string | string[];
1283
- capability?: string | string[];
1284
1684
  chainId?: string | string[];
1285
1685
  cursor?: string | string[];
1286
- 'engine.type'?: string | string[];
1287
- include?: string | string[];
1288
1686
  limit?: string | string[];
1289
- 'apy.window'?: string | string[];
1687
+ 'valuation.currency'?: string | string[];
1688
+ verified?: string | string[];
1290
1689
  } | undefined;
1291
1690
  };
1292
1691
  };
@@ -1310,7 +1709,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1310
1709
  } | {
1311
1710
  output: {
1312
1711
  error: {
1313
- code: "api_key_malformed";
1712
+ code: "chain_id_unsupported";
1314
1713
  details?: readonly Response.error.Detail[] | undefined;
1315
1714
  message: string;
1316
1715
  };
@@ -1331,14 +1730,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1331
1730
  } | {
1332
1731
  output: {
1333
1732
  error: {
1334
- code: "api_key_invalid" | "api_key_missing";
1733
+ code: "upstream_error";
1335
1734
  details?: readonly Response.error.Detail[] | undefined;
1336
1735
  message: string;
1337
1736
  };
1338
1737
  requestId: string;
1339
1738
  };
1340
1739
  outputFormat: "json";
1341
- status: 401;
1740
+ status: 502;
1342
1741
  input: {
1343
1742
  param: {
1344
1743
  address: `0x${string}`;
@@ -1352,14 +1751,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1352
1751
  } | {
1353
1752
  output: {
1354
1753
  error: {
1355
- code: "api_key_forbidden" | "api_key_ip_forbidden";
1754
+ code: "api_key_malformed";
1356
1755
  details?: readonly Response.error.Detail[] | undefined;
1357
1756
  message: string;
1358
1757
  };
1359
1758
  requestId: string;
1360
1759
  };
1361
1760
  outputFormat: "json";
1362
- status: 403;
1761
+ status: 400;
1363
1762
  input: {
1364
1763
  param: {
1365
1764
  address: `0x${string}`;
@@ -1373,14 +1772,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1373
1772
  } | {
1374
1773
  output: {
1375
1774
  error: {
1376
- code: "payment_required" | "rate_limit_exceeded";
1775
+ code: "api_key_invalid" | "api_key_missing";
1377
1776
  details?: readonly Response.error.Detail[] | undefined;
1378
1777
  message: string;
1379
1778
  };
1380
1779
  requestId: string;
1381
1780
  };
1382
1781
  outputFormat: "json";
1383
- status: 429;
1782
+ status: 401;
1384
1783
  input: {
1385
1784
  param: {
1386
1785
  address: `0x${string}`;
@@ -1394,14 +1793,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1394
1793
  } | {
1395
1794
  output: {
1396
1795
  error: {
1397
- code: "query_invalid";
1796
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
1398
1797
  details?: readonly Response.error.Detail[] | undefined;
1399
1798
  message: string;
1400
1799
  };
1401
1800
  requestId: string;
1402
1801
  };
1403
1802
  outputFormat: "json";
1404
- status: 400;
1803
+ status: 403;
1405
1804
  input: {
1406
1805
  param: {
1407
1806
  address: `0x${string}`;
@@ -1415,14 +1814,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1415
1814
  } | {
1416
1815
  output: {
1417
1816
  error: {
1418
- code: "upstream_error";
1817
+ code: "payment_required" | "rate_limit_exceeded";
1419
1818
  details?: readonly Response.error.Detail[] | undefined;
1420
1819
  message: string;
1421
1820
  };
1422
1821
  requestId: string;
1423
1822
  };
1424
1823
  outputFormat: "json";
1425
- status: 502;
1824
+ status: 429;
1426
1825
  input: {
1427
1826
  param: {
1428
1827
  address: `0x${string}`;
@@ -1436,7 +1835,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1436
1835
  } | {
1437
1836
  output: {
1438
1837
  error: {
1439
- code: "chain_id_invalid";
1838
+ code: "query_invalid";
1440
1839
  details?: readonly Response.error.Detail[] | undefined;
1441
1840
  message: string;
1442
1841
  };
@@ -1457,7 +1856,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1457
1856
  } | {
1458
1857
  output: {
1459
1858
  error: {
1460
- code: "chain_id_unsupported";
1859
+ code: "chain_id_invalid";
1461
1860
  details?: readonly Response.error.Detail[] | undefined;
1462
1861
  message: string;
1463
1862
  };
@@ -1563,7 +1962,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1563
1962
  } | {
1564
1963
  output: {
1565
1964
  error: {
1566
- code: "api_key_malformed";
1965
+ code: "chain_id_unsupported";
1567
1966
  details?: readonly Response.error.Detail[] | undefined;
1568
1967
  message: string;
1569
1968
  };
@@ -1585,14 +1984,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1585
1984
  } | {
1586
1985
  output: {
1587
1986
  error: {
1588
- code: "api_key_invalid" | "api_key_missing";
1987
+ code: "upstream_error";
1589
1988
  details?: readonly Response.error.Detail[] | undefined;
1590
1989
  message: string;
1591
1990
  };
1592
1991
  requestId: string;
1593
1992
  };
1594
1993
  outputFormat: "json";
1595
- status: 401;
1994
+ status: 502;
1596
1995
  input: {
1597
1996
  param: {
1598
1997
  address: `0x${string}`;
@@ -1607,14 +2006,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1607
2006
  } | {
1608
2007
  output: {
1609
2008
  error: {
1610
- code: "api_key_forbidden" | "api_key_ip_forbidden";
2009
+ code: "api_key_malformed";
1611
2010
  details?: readonly Response.error.Detail[] | undefined;
1612
2011
  message: string;
1613
2012
  };
1614
2013
  requestId: string;
1615
2014
  };
1616
2015
  outputFormat: "json";
1617
- status: 403;
2016
+ status: 400;
1618
2017
  input: {
1619
2018
  param: {
1620
2019
  address: `0x${string}`;
@@ -1629,14 +2028,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1629
2028
  } | {
1630
2029
  output: {
1631
2030
  error: {
1632
- code: "payment_required" | "rate_limit_exceeded";
2031
+ code: "api_key_invalid" | "api_key_missing";
1633
2032
  details?: readonly Response.error.Detail[] | undefined;
1634
2033
  message: string;
1635
2034
  };
1636
2035
  requestId: string;
1637
2036
  };
1638
2037
  outputFormat: "json";
1639
- status: 429;
2038
+ status: 401;
1640
2039
  input: {
1641
2040
  param: {
1642
2041
  address: `0x${string}`;
@@ -1651,14 +2050,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1651
2050
  } | {
1652
2051
  output: {
1653
2052
  error: {
1654
- code: "query_invalid";
2053
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
1655
2054
  details?: readonly Response.error.Detail[] | undefined;
1656
2055
  message: string;
1657
2056
  };
1658
2057
  requestId: string;
1659
2058
  };
1660
2059
  outputFormat: "json";
1661
- status: 400;
2060
+ status: 403;
1662
2061
  input: {
1663
2062
  param: {
1664
2063
  address: `0x${string}`;
@@ -1673,14 +2072,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1673
2072
  } | {
1674
2073
  output: {
1675
2074
  error: {
1676
- code: "upstream_error";
2075
+ code: "payment_required" | "rate_limit_exceeded";
1677
2076
  details?: readonly Response.error.Detail[] | undefined;
1678
2077
  message: string;
1679
2078
  };
1680
2079
  requestId: string;
1681
2080
  };
1682
2081
  outputFormat: "json";
1683
- status: 502;
2082
+ status: 429;
1684
2083
  input: {
1685
2084
  param: {
1686
2085
  address: `0x${string}`;
@@ -1695,7 +2094,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1695
2094
  } | {
1696
2095
  output: {
1697
2096
  error: {
1698
- code: "chain_id_invalid";
2097
+ code: "query_invalid";
1699
2098
  details?: readonly Response.error.Detail[] | undefined;
1700
2099
  message: string;
1701
2100
  };
@@ -1717,7 +2116,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1717
2116
  } | {
1718
2117
  output: {
1719
2118
  error: {
1720
- code: "chain_id_unsupported";
2119
+ code: "chain_id_invalid";
1721
2120
  details?: readonly Response.error.Detail[] | undefined;
1722
2121
  message: string;
1723
2122
  };
@@ -1802,14 +2201,22 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1802
2201
  assetToken: `0x${string}`;
1803
2202
  currentValue: string;
1804
2203
  id: `0x${string}`;
1805
- period: "active" | "lifetime";
2204
+ period: "30d";
2205
+ status: "complete";
2206
+ windowEarnings: string;
2207
+ } | {
2208
+ account: `0x${string}`;
2209
+ assetToken: `0x${string}`;
2210
+ currentValue: string;
2211
+ id: `0x${string}`;
2212
+ period: "30d" | "active" | "lifetime";
1806
2213
  status: "incomplete_cost_basis";
1807
2214
  } | {
1808
2215
  account: `0x${string}`;
1809
2216
  assetToken: `0x${string}`;
1810
2217
  currentValue: string;
1811
2218
  id: `0x${string}`;
1812
- period: "lifetime";
2219
+ period: "30d" | "lifetime";
1813
2220
  status: "pending_redemption";
1814
2221
  };
1815
2222
  outputFormat: "json";
@@ -1847,14 +2254,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1847
2254
  } | {
1848
2255
  output: {
1849
2256
  error: {
1850
- code: "api_key_malformed";
2257
+ code: "upstream_error";
1851
2258
  details?: readonly Response.error.Detail[] | undefined;
1852
2259
  message: string;
1853
2260
  };
1854
2261
  requestId: string;
1855
2262
  };
1856
2263
  outputFormat: "json";
1857
- status: 400;
2264
+ status: 502;
1858
2265
  input: {
1859
2266
  param: {
1860
2267
  vaultId: `0x${string}`;
@@ -1869,14 +2276,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1869
2276
  } | {
1870
2277
  output: {
1871
2278
  error: {
1872
- code: "api_key_invalid" | "api_key_missing";
2279
+ code: "api_key_malformed";
1873
2280
  details?: readonly Response.error.Detail[] | undefined;
1874
2281
  message: string;
1875
2282
  };
1876
2283
  requestId: string;
1877
2284
  };
1878
2285
  outputFormat: "json";
1879
- status: 401;
2286
+ status: 400;
1880
2287
  input: {
1881
2288
  param: {
1882
2289
  vaultId: `0x${string}`;
@@ -1891,14 +2298,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1891
2298
  } | {
1892
2299
  output: {
1893
2300
  error: {
1894
- code: "api_key_forbidden" | "api_key_ip_forbidden";
2301
+ code: "api_key_invalid" | "api_key_missing";
1895
2302
  details?: readonly Response.error.Detail[] | undefined;
1896
2303
  message: string;
1897
2304
  };
1898
2305
  requestId: string;
1899
2306
  };
1900
2307
  outputFormat: "json";
1901
- status: 403;
2308
+ status: 401;
1902
2309
  input: {
1903
2310
  param: {
1904
2311
  vaultId: `0x${string}`;
@@ -1913,14 +2320,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1913
2320
  } | {
1914
2321
  output: {
1915
2322
  error: {
1916
- code: "payment_required" | "rate_limit_exceeded";
2323
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
1917
2324
  details?: readonly Response.error.Detail[] | undefined;
1918
2325
  message: string;
1919
2326
  };
1920
2327
  requestId: string;
1921
2328
  };
1922
2329
  outputFormat: "json";
1923
- status: 429;
2330
+ status: 403;
1924
2331
  input: {
1925
2332
  param: {
1926
2333
  vaultId: `0x${string}`;
@@ -1935,14 +2342,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1935
2342
  } | {
1936
2343
  output: {
1937
2344
  error: {
1938
- code: "query_invalid";
2345
+ code: "payment_required" | "rate_limit_exceeded";
1939
2346
  details?: readonly Response.error.Detail[] | undefined;
1940
2347
  message: string;
1941
2348
  };
1942
2349
  requestId: string;
1943
2350
  };
1944
2351
  outputFormat: "json";
1945
- status: 400;
2352
+ status: 429;
1946
2353
  input: {
1947
2354
  param: {
1948
2355
  vaultId: `0x${string}`;
@@ -1957,14 +2364,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1957
2364
  } | {
1958
2365
  output: {
1959
2366
  error: {
1960
- code: "upstream_error";
2367
+ code: "query_invalid";
1961
2368
  details?: readonly Response.error.Detail[] | undefined;
1962
2369
  message: string;
1963
2370
  };
1964
2371
  requestId: string;
1965
2372
  };
1966
2373
  outputFormat: "json";
1967
- status: 502;
2374
+ status: 400;
1968
2375
  input: {
1969
2376
  param: {
1970
2377
  vaultId: `0x${string}`;
@@ -2169,7 +2576,48 @@ export declare function getVaultEarnings(c: Context<App.Environment>, options: g
2169
2576
  period: "lifetime";
2170
2577
  lifetimeEarnings: string;
2171
2578
  status: 'complete';
2579
+ } | {
2580
+ account: `0x${string}`;
2581
+ assetToken: `0x${string}`;
2582
+ currentValue: string;
2583
+ id: `0x${string}`;
2584
+ period: "30d";
2585
+ status: 'incomplete_cost_basis';
2586
+ } | {
2587
+ account: `0x${string}`;
2588
+ assetToken: `0x${string}`;
2589
+ currentValue: string;
2590
+ id: `0x${string}`;
2591
+ period: "30d";
2592
+ status: 'pending_redemption';
2593
+ } | {
2594
+ account: `0x${string}`;
2595
+ assetToken: `0x${string}`;
2596
+ currentValue: string;
2597
+ id: `0x${string}`;
2598
+ period: "30d";
2599
+ status: 'complete';
2600
+ windowEarnings: string;
2172
2601
  }>;
2602
+ /** Calculates cash-flow-adjusted earnings between two position snapshots. */
2603
+ export declare function calculateWindowEarnings(options: calculateWindowEarnings.Options): bigint;
2604
+ export declare namespace calculateWindowEarnings {
2605
+ /** Asset-denominated values spanning one earnings window. */
2606
+ type Options = {
2607
+ /** Assets deposited during the window. */
2608
+ deposited: bigint;
2609
+ /** Asset value of shares held at the ending boundary. */
2610
+ endingValue: bigint;
2611
+ /** Assets received from async redemptions finalized during the window. */
2612
+ finalized: bigint;
2613
+ /** Asset value of shares held at the opening boundary. */
2614
+ openingValue: bigint;
2615
+ /** Assets received from redemptions during the window. */
2616
+ redeemed: bigint;
2617
+ /** Assets received from exact withdrawals during the window. */
2618
+ withdrewExact: bigint;
2619
+ };
2620
+ }
2173
2621
  export declare namespace getVaultEarnings {
2174
2622
  /** Inputs identifying the account and vault to calculate. */
2175
2623
  type Options = {
@@ -2434,6 +2882,74 @@ export declare namespace listVerifiedVaults {
2434
2882
  oracle: FxOracle.Oracle;
2435
2883
  };
2436
2884
  }
2885
+ /** Lists every vault where an account holds earn shares, ordered by vault address. */
2886
+ export declare function listPositions(c: Context<App.Environment>, options: listPositions.Options): Promise<{
2887
+ data: {
2888
+ assetAmount: {
2889
+ amount: string;
2890
+ currency: string;
2891
+ decimals: number;
2892
+ formatted: string;
2893
+ };
2894
+ assetToken: {
2895
+ address: `0x${string}`;
2896
+ currency: string;
2897
+ decimals: number;
2898
+ id: string;
2899
+ logoUri?: string | undefined;
2900
+ name: string;
2901
+ symbol: string;
2902
+ verified: boolean;
2903
+ };
2904
+ id: `0x${string}`;
2905
+ shareAmount: {
2906
+ amount: string;
2907
+ currency: string;
2908
+ decimals: number;
2909
+ formatted: string;
2910
+ };
2911
+ shareToken: {
2912
+ address: `0x${string}`;
2913
+ currency: string;
2914
+ decimals: number;
2915
+ id: string;
2916
+ logoUri?: string | undefined;
2917
+ name: string;
2918
+ symbol: string;
2919
+ verified: boolean;
2920
+ };
2921
+ valuation?: {
2922
+ amount: string;
2923
+ currency: string;
2924
+ } | null;
2925
+ vaultAddress: `0x${string}`;
2926
+ verified: boolean;
2927
+ }[];
2928
+ meta?: {
2929
+ valuation: {
2930
+ asOf: string;
2931
+ basis: 'nominal';
2932
+ source: string;
2933
+ };
2934
+ };
2935
+ nextCursor: string | null;
2936
+ }>;
2937
+ export declare namespace listPositions {
2938
+ /** One candidate vault holding a non-zero position. */
2939
+ type Match = {
2940
+ position: Actions.earn.getPosition.ReturnValue;
2941
+ record?: RegistryRecord | undefined;
2942
+ vaultAddress: string;
2943
+ };
2944
+ /** Options for listing an account's earn positions. */
2945
+ type Options = z.output<typeof schema.getEarnAddressPositions.Query> & {
2946
+ /** Account whose positions to list. */
2947
+ address: z.output<typeof Schema.Address>;
2948
+ chainId: z.output<typeof Schema.ChainId>;
2949
+ /** FX rate oracle backing per-row valuation. */
2950
+ oracle: FxOracle.Oracle;
2951
+ };
2952
+ }
2437
2953
  /** Gets one compatible Earn vault. */
2438
2954
  export declare function getVault(c: Context<App.Environment>, options: getVault.Options): Promise<{
2439
2955
  access?: {