tapimo 0.9.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 (198) hide show
  1. package/dist/App.d.ts +4887 -5074
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/Webhooks.d.ts +21 -20
  4. package/dist/Webhooks.d.ts.map +1 -1
  5. package/dist/Webhooks.js +66 -23
  6. package/dist/Webhooks.js.map +1 -1
  7. package/dist/admin/apps/verified-tokens.d.ts +168 -168
  8. package/dist/apps/Zones.d.ts +34 -22
  9. package/dist/apps/Zones.d.ts.map +1 -1
  10. package/dist/apps/Zones.js +9 -8
  11. package/dist/apps/Zones.js.map +1 -1
  12. package/dist/apps/data/App.d.ts +5198 -5099
  13. package/dist/apps/data/App.d.ts.map +1 -1
  14. package/dist/apps/data/FxOracle.d.ts +4 -5
  15. package/dist/apps/data/FxOracle.d.ts.map +1 -1
  16. package/dist/apps/data/FxOracle.js +19 -4
  17. package/dist/apps/data/FxOracle.js.map +1 -1
  18. package/dist/apps/data/routes/activities.d.ts +270 -270
  19. package/dist/apps/data/routes/activities.d.ts.map +1 -1
  20. package/dist/apps/data/routes/activities.js +32 -27
  21. package/dist/apps/data/routes/activities.js.map +1 -1
  22. package/dist/apps/data/routes/addresses.d.ts +52 -52
  23. package/dist/apps/data/routes/balances.d.ts +36 -36
  24. package/dist/apps/data/routes/balances.d.ts.map +1 -1
  25. package/dist/apps/data/routes/balances.js +135 -81
  26. package/dist/apps/data/routes/balances.js.map +1 -1
  27. package/dist/apps/data/routes/blocks.d.ts +125 -125
  28. package/dist/apps/data/routes/coingecko.d.ts +54 -54
  29. package/dist/apps/data/routes/earn.d.ts +512 -58
  30. package/dist/apps/data/routes/earn.d.ts.map +1 -1
  31. package/dist/apps/data/routes/earn.js +368 -44
  32. package/dist/apps/data/routes/earn.js.map +1 -1
  33. package/dist/apps/data/routes/exchanges.d.ts +120 -120
  34. package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
  35. package/dist/apps/data/routes/exchanges.js +114 -118
  36. package/dist/apps/data/routes/exchanges.js.map +1 -1
  37. package/dist/apps/data/routes/receipts.d.ts.map +1 -1
  38. package/dist/apps/data/routes/receipts.js +68 -47
  39. package/dist/apps/data/routes/receipts.js.map +1 -1
  40. package/dist/apps/data/routes/rpc.d.ts +31 -31
  41. package/dist/apps/data/routes/tokens.d.ts +461 -459
  42. package/dist/apps/data/routes/tokens.d.ts.map +1 -1
  43. package/dist/apps/data/routes/transactions.d.ts +59 -51
  44. package/dist/apps/data/routes/transactions.d.ts.map +1 -1
  45. package/dist/apps/data/routes/transactions.js +25 -23
  46. package/dist/apps/data/routes/transactions.js.map +1 -1
  47. package/dist/apps/data/routes/transfers.d.ts +108 -86
  48. package/dist/apps/data/routes/transfers.d.ts.map +1 -1
  49. package/dist/apps/data/routes/transfers.js +618 -105
  50. package/dist/apps/data/routes/transfers.js.map +1 -1
  51. package/dist/apps/data/routes/valuation.d.ts +21 -21
  52. package/dist/apps/data/routes/valuation.d.ts.map +1 -1
  53. package/dist/apps/data/routes/valuation.js +2 -2
  54. package/dist/apps/data/routes/valuation.js.map +1 -1
  55. package/dist/apps/data/routes/verified-tokens.d.ts +37 -37
  56. package/dist/apps/data/routes/webhooks.d.ts +102 -505
  57. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  58. package/dist/apps/data/routes/webhooks.js +484 -342
  59. package/dist/apps/data/routes/webhooks.js.map +1 -1
  60. package/dist/apps/data/routes/zones.d.ts +12 -12
  61. package/dist/apps/data/routes/zones.d.ts.map +1 -1
  62. package/dist/apps/data/routes/zones.js +3 -1
  63. package/dist/apps/data/routes/zones.js.map +1 -1
  64. package/dist/apps/funding/App.d.ts +96 -96
  65. package/dist/apps/funding/routes/deposit-addresses.d.ts +52 -52
  66. package/dist/apps/funding/routes/quotes.d.ts +89 -89
  67. package/dist/apps/funding/routes/transfers.d.ts +4 -4
  68. package/dist/apps/management/App.d.ts +429 -727
  69. package/dist/apps/management/App.d.ts.map +1 -1
  70. package/dist/apps/management/routes/api-keys.d.ts +24 -24
  71. package/dist/apps/management/routes/billing.d.ts +72 -72
  72. package/dist/apps/management/routes/faucet.d.ts +6 -6
  73. package/dist/apps/management/routes/invitations.d.ts +134 -134
  74. package/dist/apps/management/routes/invite-links.d.ts +38 -38
  75. package/dist/apps/management/routes/me.d.ts +6 -6
  76. package/dist/apps/management/routes/members.d.ts +30 -30
  77. package/dist/apps/management/routes/orgs.d.ts +98 -98
  78. package/dist/apps/management/routes/projects.d.ts +20 -20
  79. package/dist/apps/management/routes/usage.d.ts +24 -24
  80. package/dist/apps/management/routes/verified-token-requests.d.ts +83 -83
  81. package/dist/apps/management/routes/webhooks.d.ts +158 -573
  82. package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
  83. package/dist/apps/mpp/App.d.ts +56 -44
  84. package/dist/apps/mpp/App.d.ts.map +1 -1
  85. package/dist/apps/mpp/Mpp.d.ts +3 -0
  86. package/dist/apps/mpp/Mpp.d.ts.map +1 -1
  87. package/dist/apps/mpp/Mpp.js +3 -0
  88. package/dist/apps/mpp/Mpp.js.map +1 -1
  89. package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -1
  90. package/dist/apps/mpp/internal/Adapter.js +9 -2
  91. package/dist/apps/mpp/internal/Adapter.js.map +1 -1
  92. package/dist/db/Db.d.ts +2 -2
  93. package/dist/db/Db.d.ts.map +1 -1
  94. package/dist/db/Db.js +17 -15
  95. package/dist/db/Db.js.map +1 -1
  96. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  97. package/dist/db/tables/sponsoredTransactions.js +4 -1
  98. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  99. package/dist/db/tables/webhookSubscriptions.d.ts +56 -3
  100. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
  101. package/dist/db/tables/webhookSubscriptions.js +76 -3
  102. package/dist/db/tables/webhookSubscriptions.js.map +1 -1
  103. package/dist/internal/MetricSink.d.ts +112 -3
  104. package/dist/internal/MetricSink.d.ts.map +1 -1
  105. package/dist/internal/MetricSink.js +116 -3
  106. package/dist/internal/MetricSink.js.map +1 -1
  107. package/dist/internal/Schema.js +1 -1
  108. package/dist/internal/Schema.js.map +1 -1
  109. package/dist/internal/Tidx.d.ts +1 -3
  110. package/dist/internal/Tidx.d.ts.map +1 -1
  111. package/dist/internal/Tidx.js +1 -3
  112. package/dist/internal/Tidx.js.map +1 -1
  113. package/dist/internal/Viem.d.ts.map +1 -1
  114. package/dist/internal/Viem.js +2 -1
  115. package/dist/internal/Viem.js.map +1 -1
  116. package/dist/internal/WebhookDestination.d.ts +2 -0
  117. package/dist/internal/WebhookDestination.d.ts.map +1 -1
  118. package/dist/internal/WebhookDestination.js +11 -0
  119. package/dist/internal/WebhookDestination.js.map +1 -1
  120. package/dist/internal/WebhookTransfer.d.ts +55 -0
  121. package/dist/internal/WebhookTransfer.d.ts.map +1 -0
  122. package/dist/internal/WebhookTransfer.js +296 -0
  123. package/dist/internal/WebhookTransfer.js.map +1 -0
  124. package/dist/internal/Webhooks.d.ts +37 -0
  125. package/dist/internal/Webhooks.d.ts.map +1 -1
  126. package/dist/internal/Webhooks.js +87 -13
  127. package/dist/internal/Webhooks.js.map +1 -1
  128. package/dist/internal/funding/Provider.d.ts +4 -0
  129. package/dist/internal/funding/Provider.d.ts.map +1 -1
  130. package/dist/internal/funding/Provider.js +11 -7
  131. package/dist/internal/funding/Provider.js.map +1 -1
  132. package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
  133. package/dist/internal/funding/Reconciliation.js +128 -0
  134. package/dist/internal/funding/Reconciliation.js.map +1 -1
  135. package/dist/internal/funding/providers/relay.d.ts +3 -0
  136. package/dist/internal/funding/providers/relay.d.ts.map +1 -1
  137. package/dist/internal/funding/providers/relay.js +12 -1
  138. package/dist/internal/funding/providers/relay.js.map +1 -1
  139. package/package.json +3 -3
  140. package/src/Client.test-d.ts +60 -5
  141. package/src/Webhooks.bench.ts +714 -0
  142. package/src/Webhooks.memory.bench.ts +250 -0
  143. package/src/Webhooks.test.ts +77 -6
  144. package/src/Webhooks.ts +83 -29
  145. package/src/apps/Zones.test.ts +5 -4
  146. package/src/apps/Zones.ts +9 -8
  147. package/src/apps/data/FxOracle.test.ts +18 -0
  148. package/src/apps/data/FxOracle.ts +28 -5
  149. package/src/apps/data/routes/activities.test.ts +19 -0
  150. package/src/apps/data/routes/activities.ts +34 -30
  151. package/src/apps/data/routes/balances.test.ts +119 -10
  152. package/src/apps/data/routes/balances.ts +154 -95
  153. package/src/apps/data/routes/blocks.test.ts +12 -6
  154. package/src/apps/data/routes/earn.test.ts +197 -0
  155. package/src/apps/data/routes/earn.ts +486 -44
  156. package/src/apps/data/routes/exchanges.test.ts +7 -6
  157. package/src/apps/data/routes/exchanges.ts +124 -117
  158. package/src/apps/data/routes/receipts.test.ts +24 -7
  159. package/src/apps/data/routes/receipts.ts +67 -50
  160. package/src/apps/data/routes/tokens.test.ts +51 -0
  161. package/src/apps/data/routes/transactions.test.ts +42 -0
  162. package/src/apps/data/routes/transactions.ts +44 -39
  163. package/src/apps/data/routes/transfers.test.ts +402 -24
  164. package/src/apps/data/routes/transfers.ts +708 -101
  165. package/src/apps/data/routes/valuation.test.ts +26 -0
  166. package/src/apps/data/routes/valuation.ts +6 -2
  167. package/src/apps/data/routes/webhooks.test.ts +414 -130
  168. package/src/apps/data/routes/webhooks.ts +603 -419
  169. package/src/apps/data/routes/zones.ts +6 -1
  170. package/src/apps/funding/routes/quotes.test.ts +1 -1
  171. package/src/apps/mpp/Mpp.test.ts +13 -1
  172. package/src/apps/mpp/Mpp.ts +8 -0
  173. package/src/apps/mpp/internal/Adapter.ts +10 -2
  174. package/src/db/Db.test.ts +40 -6
  175. package/src/db/Db.ts +33 -19
  176. package/src/db/tables/sponsoredTransactions.ts +9 -2
  177. package/src/db/tables/webhookSubscriptions.ts +116 -4
  178. package/src/internal/EarnVaults.test.ts +2 -2
  179. package/src/internal/MetricSink.test.ts +518 -0
  180. package/src/internal/MetricSink.ts +266 -9
  181. package/src/internal/Schema.ts +1 -1
  182. package/src/internal/Tidx.test.ts +4 -4
  183. package/src/internal/Tidx.ts +1 -3
  184. package/src/internal/Viem.test.ts +8 -0
  185. package/src/internal/Viem.ts +2 -1
  186. package/src/internal/WebhookDestination.test.ts +20 -0
  187. package/src/internal/WebhookDestination.ts +10 -0
  188. package/src/internal/WebhookTransfer.ts +426 -0
  189. package/src/internal/Webhooks.test.ts +137 -0
  190. package/src/internal/Webhooks.ts +131 -17
  191. package/src/internal/funding/Provider.test.ts +47 -7
  192. package/src/internal/funding/Provider.ts +12 -7
  193. package/src/internal/funding/Reconciliation.local.test.ts +3 -1
  194. package/src/internal/funding/Reconciliation.test.ts +1240 -0
  195. package/src/internal/funding/Reconciliation.ts +136 -0
  196. package/src/internal/funding/SourceObservation.test.ts +1 -0
  197. package/src/internal/funding/providers/relay.test.ts +1 -4
  198. package/src/internal/funding/providers/relay.ts +16 -1
@@ -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>;
@@ -799,14 +881,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
799
881
  } | {
800
882
  output: {
801
883
  error: {
802
- code: "api_key_malformed";
884
+ code: "upstream_error";
803
885
  details?: readonly Response.error.Detail[] | undefined;
804
886
  message: string;
805
887
  };
806
888
  requestId: string;
807
889
  };
808
890
  outputFormat: "json";
809
- status: 400;
891
+ status: 502;
810
892
  input: {
811
893
  query?: {
812
894
  asset?: string | string[];
@@ -822,14 +904,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
822
904
  } | {
823
905
  output: {
824
906
  error: {
825
- code: "api_key_invalid" | "api_key_missing";
907
+ code: "api_key_malformed";
826
908
  details?: readonly Response.error.Detail[] | undefined;
827
909
  message: string;
828
910
  };
829
911
  requestId: string;
830
912
  };
831
913
  outputFormat: "json";
832
- status: 401;
914
+ status: 400;
833
915
  input: {
834
916
  query?: {
835
917
  asset?: string | string[];
@@ -845,14 +927,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
845
927
  } | {
846
928
  output: {
847
929
  error: {
848
- code: "api_key_forbidden" | "api_key_ip_forbidden";
930
+ code: "api_key_invalid" | "api_key_missing";
849
931
  details?: readonly Response.error.Detail[] | undefined;
850
932
  message: string;
851
933
  };
852
934
  requestId: string;
853
935
  };
854
936
  outputFormat: "json";
855
- status: 403;
937
+ status: 401;
856
938
  input: {
857
939
  query?: {
858
940
  asset?: string | string[];
@@ -868,14 +950,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
868
950
  } | {
869
951
  output: {
870
952
  error: {
871
- code: "payment_required" | "rate_limit_exceeded";
953
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
872
954
  details?: readonly Response.error.Detail[] | undefined;
873
955
  message: string;
874
956
  };
875
957
  requestId: string;
876
958
  };
877
959
  outputFormat: "json";
878
- status: 429;
960
+ status: 403;
879
961
  input: {
880
962
  query?: {
881
963
  asset?: string | string[];
@@ -891,14 +973,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
891
973
  } | {
892
974
  output: {
893
975
  error: {
894
- code: "query_invalid";
976
+ code: "payment_required" | "rate_limit_exceeded";
895
977
  details?: readonly Response.error.Detail[] | undefined;
896
978
  message: string;
897
979
  };
898
980
  requestId: string;
899
981
  };
900
982
  outputFormat: "json";
901
- status: 400;
983
+ status: 429;
902
984
  input: {
903
985
  query?: {
904
986
  asset?: string | string[];
@@ -914,14 +996,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
914
996
  } | {
915
997
  output: {
916
998
  error: {
917
- code: "upstream_error";
999
+ code: "query_invalid";
918
1000
  details?: readonly Response.error.Detail[] | undefined;
919
1001
  message: string;
920
1002
  };
921
1003
  requestId: string;
922
1004
  };
923
1005
  outputFormat: "json";
924
- status: 502;
1006
+ status: 400;
925
1007
  input: {
926
1008
  query?: {
927
1009
  asset?: string | string[];
@@ -1062,14 +1144,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1062
1144
  } | {
1063
1145
  output: {
1064
1146
  error: {
1065
- code: "api_key_malformed";
1147
+ code: "upstream_error";
1066
1148
  details?: readonly Response.error.Detail[] | undefined;
1067
1149
  message: string;
1068
1150
  };
1069
1151
  requestId: string;
1070
1152
  };
1071
1153
  outputFormat: "json";
1072
- status: 400;
1154
+ status: 502;
1073
1155
  input: {
1074
1156
  query?: {
1075
1157
  asset?: string | string[];
@@ -1085,14 +1167,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1085
1167
  } | {
1086
1168
  output: {
1087
1169
  error: {
1088
- code: "api_key_invalid" | "api_key_missing";
1170
+ code: "api_key_malformed";
1089
1171
  details?: readonly Response.error.Detail[] | undefined;
1090
1172
  message: string;
1091
1173
  };
1092
1174
  requestId: string;
1093
1175
  };
1094
1176
  outputFormat: "json";
1095
- status: 401;
1177
+ status: 400;
1096
1178
  input: {
1097
1179
  query?: {
1098
1180
  asset?: string | string[];
@@ -1108,14 +1190,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1108
1190
  } | {
1109
1191
  output: {
1110
1192
  error: {
1111
- code: "api_key_forbidden" | "api_key_ip_forbidden";
1193
+ code: "api_key_invalid" | "api_key_missing";
1112
1194
  details?: readonly Response.error.Detail[] | undefined;
1113
1195
  message: string;
1114
1196
  };
1115
1197
  requestId: string;
1116
1198
  };
1117
1199
  outputFormat: "json";
1118
- status: 403;
1200
+ status: 401;
1119
1201
  input: {
1120
1202
  query?: {
1121
1203
  asset?: string | string[];
@@ -1131,14 +1213,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1131
1213
  } | {
1132
1214
  output: {
1133
1215
  error: {
1134
- code: "payment_required" | "rate_limit_exceeded";
1216
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
1135
1217
  details?: readonly Response.error.Detail[] | undefined;
1136
1218
  message: string;
1137
1219
  };
1138
1220
  requestId: string;
1139
1221
  };
1140
1222
  outputFormat: "json";
1141
- status: 429;
1223
+ status: 403;
1142
1224
  input: {
1143
1225
  query?: {
1144
1226
  asset?: string | string[];
@@ -1154,14 +1236,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1154
1236
  } | {
1155
1237
  output: {
1156
1238
  error: {
1157
- code: "query_invalid";
1239
+ code: "payment_required" | "rate_limit_exceeded";
1158
1240
  details?: readonly Response.error.Detail[] | undefined;
1159
1241
  message: string;
1160
1242
  };
1161
1243
  requestId: string;
1162
1244
  };
1163
1245
  outputFormat: "json";
1164
- status: 400;
1246
+ status: 429;
1165
1247
  input: {
1166
1248
  query?: {
1167
1249
  asset?: string | string[];
@@ -1177,14 +1259,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1177
1259
  } | {
1178
1260
  output: {
1179
1261
  error: {
1180
- code: "upstream_error";
1262
+ code: "query_invalid";
1181
1263
  details?: readonly Response.error.Detail[] | undefined;
1182
1264
  message: string;
1183
1265
  };
1184
1266
  requestId: string;
1185
1267
  };
1186
1268
  outputFormat: "json";
1187
- status: 502;
1269
+ status: 400;
1188
1270
  input: {
1189
1271
  query?: {
1190
1272
  asset?: string | string[];
@@ -1305,7 +1387,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1305
1387
  };
1306
1388
  };
1307
1389
  } & {
1308
- "/v1/earn/vaults/:vaultId/positions/:address": {
1390
+ "/v1/earn/addresses/:address/positions": {
1309
1391
  $get: {
1310
1392
  output: null;
1311
1393
  outputFormat: "body";
@@ -1313,11 +1395,62 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1313
1395
  input: {
1314
1396
  param: {
1315
1397
  address: `0x${string}`;
1316
- vaultId: `0x${string}`;
1317
1398
  };
1318
1399
  } & {
1319
1400
  query?: {
1320
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[];
1321
1454
  } | undefined;
1322
1455
  };
1323
1456
  } | {
@@ -1334,11 +1467,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1334
1467
  input: {
1335
1468
  param: {
1336
1469
  address: `0x${string}`;
1337
- vaultId: `0x${string}`;
1338
1470
  };
1339
1471
  } & {
1340
1472
  query?: {
1341
1473
  chainId?: string | string[];
1474
+ cursor?: string | string[];
1475
+ limit?: string | string[];
1476
+ 'valuation.currency'?: string | string[];
1477
+ verified?: string | string[];
1342
1478
  } | undefined;
1343
1479
  };
1344
1480
  } | {
@@ -1355,11 +1491,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1355
1491
  input: {
1356
1492
  param: {
1357
1493
  address: `0x${string}`;
1358
- vaultId: `0x${string}`;
1359
1494
  };
1360
1495
  } & {
1361
1496
  query?: {
1362
1497
  chainId?: string | string[];
1498
+ cursor?: string | string[];
1499
+ limit?: string | string[];
1500
+ 'valuation.currency'?: string | string[];
1501
+ verified?: string | string[];
1363
1502
  } | undefined;
1364
1503
  };
1365
1504
  } | {
@@ -1376,11 +1515,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1376
1515
  input: {
1377
1516
  param: {
1378
1517
  address: `0x${string}`;
1379
- vaultId: `0x${string}`;
1380
1518
  };
1381
1519
  } & {
1382
1520
  query?: {
1383
1521
  chainId?: string | string[];
1522
+ cursor?: string | string[];
1523
+ limit?: string | string[];
1524
+ 'valuation.currency'?: string | string[];
1525
+ verified?: string | string[];
1384
1526
  } | undefined;
1385
1527
  };
1386
1528
  } | {
@@ -1397,11 +1539,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1397
1539
  input: {
1398
1540
  param: {
1399
1541
  address: `0x${string}`;
1400
- vaultId: `0x${string}`;
1401
1542
  };
1402
1543
  } & {
1403
1544
  query?: {
1404
1545
  chainId?: string | string[];
1546
+ cursor?: string | string[];
1547
+ limit?: string | string[];
1548
+ 'valuation.currency'?: string | string[];
1549
+ verified?: string | string[];
1405
1550
  } | undefined;
1406
1551
  };
1407
1552
  } | {
@@ -1415,6 +1560,163 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1415
1560
  };
1416
1561
  outputFormat: "json";
1417
1562
  status: 400;
1563
+ input: {
1564
+ param: {
1565
+ address: `0x${string}`;
1566
+ };
1567
+ } & {
1568
+ query?: {
1569
+ chainId?: string | string[];
1570
+ cursor?: string | string[];
1571
+ limit?: string | string[];
1572
+ 'valuation.currency'?: string | string[];
1573
+ verified?: string | string[];
1574
+ } | undefined;
1575
+ };
1576
+ } | {
1577
+ output: {
1578
+ error: {
1579
+ code: "chain_id_invalid";
1580
+ details?: readonly Response.error.Detail[] | undefined;
1581
+ message: string;
1582
+ };
1583
+ requestId: string;
1584
+ };
1585
+ outputFormat: "json";
1586
+ status: 400;
1587
+ input: {
1588
+ param: {
1589
+ address: `0x${string}`;
1590
+ };
1591
+ } & {
1592
+ query?: {
1593
+ chainId?: string | string[];
1594
+ cursor?: string | string[];
1595
+ limit?: string | string[];
1596
+ 'valuation.currency'?: string | string[];
1597
+ verified?: string | string[];
1598
+ } | undefined;
1599
+ };
1600
+ } | {
1601
+ output: {
1602
+ error: {
1603
+ code: "positions_invalid";
1604
+ details?: readonly Response.error.Detail[] | undefined;
1605
+ message: string;
1606
+ };
1607
+ requestId: string;
1608
+ };
1609
+ outputFormat: "json";
1610
+ status: 400;
1611
+ input: {
1612
+ param: {
1613
+ address: `0x${string}`;
1614
+ };
1615
+ } & {
1616
+ query?: {
1617
+ chainId?: string | string[];
1618
+ cursor?: string | string[];
1619
+ limit?: string | string[];
1620
+ 'valuation.currency'?: string | string[];
1621
+ verified?: string | string[];
1622
+ } | undefined;
1623
+ };
1624
+ } | {
1625
+ output: {
1626
+ data: {
1627
+ assetAmount: {
1628
+ amount: string;
1629
+ currency: string;
1630
+ decimals: number;
1631
+ formatted: string;
1632
+ };
1633
+ assetToken: {
1634
+ address: `0x${string}`;
1635
+ currency: string;
1636
+ decimals: number;
1637
+ id: string;
1638
+ logoUri?: string | undefined;
1639
+ name: string;
1640
+ symbol: string;
1641
+ verified: boolean;
1642
+ };
1643
+ id: `0x${string}`;
1644
+ shareAmount: {
1645
+ amount: string;
1646
+ currency: string;
1647
+ decimals: number;
1648
+ formatted: string;
1649
+ };
1650
+ shareToken: {
1651
+ address: `0x${string}`;
1652
+ currency: string;
1653
+ decimals: number;
1654
+ id: string;
1655
+ logoUri?: string | undefined;
1656
+ name: string;
1657
+ symbol: string;
1658
+ verified: boolean;
1659
+ };
1660
+ valuation?: {
1661
+ amount: string;
1662
+ currency: string;
1663
+ } | null | undefined;
1664
+ vaultAddress: `0x${string}`;
1665
+ verified: boolean;
1666
+ }[];
1667
+ meta?: {
1668
+ valuation?: {
1669
+ asOf: string;
1670
+ basis: "nominal";
1671
+ source: string;
1672
+ } | undefined;
1673
+ } | undefined;
1674
+ nextCursor: string | null;
1675
+ };
1676
+ outputFormat: "json";
1677
+ status: 200;
1678
+ input: {
1679
+ param: {
1680
+ address: `0x${string}`;
1681
+ };
1682
+ } & {
1683
+ query?: {
1684
+ chainId?: string | string[];
1685
+ cursor?: string | string[];
1686
+ limit?: string | string[];
1687
+ 'valuation.currency'?: string | string[];
1688
+ verified?: string | string[];
1689
+ } | undefined;
1690
+ };
1691
+ };
1692
+ };
1693
+ } & {
1694
+ "/v1/earn/vaults/:vaultId/positions/:address": {
1695
+ $get: {
1696
+ output: null;
1697
+ outputFormat: "body";
1698
+ status: 402;
1699
+ input: {
1700
+ param: {
1701
+ address: `0x${string}`;
1702
+ vaultId: `0x${string}`;
1703
+ };
1704
+ } & {
1705
+ query?: {
1706
+ chainId?: string | string[];
1707
+ } | undefined;
1708
+ };
1709
+ } | {
1710
+ output: {
1711
+ error: {
1712
+ code: "chain_id_unsupported";
1713
+ details?: readonly Response.error.Detail[] | undefined;
1714
+ message: string;
1715
+ };
1716
+ requestId: string;
1717
+ };
1718
+ outputFormat: "json";
1719
+ status: 400;
1418
1720
  input: {
1419
1721
  param: {
1420
1722
  address: `0x${string}`;
@@ -1449,7 +1751,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1449
1751
  } | {
1450
1752
  output: {
1451
1753
  error: {
1452
- code: "chain_id_invalid";
1754
+ code: "api_key_malformed";
1453
1755
  details?: readonly Response.error.Detail[] | undefined;
1454
1756
  message: string;
1455
1757
  };
@@ -1470,7 +1772,91 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1470
1772
  } | {
1471
1773
  output: {
1472
1774
  error: {
1473
- code: "chain_id_unsupported";
1775
+ code: "api_key_invalid" | "api_key_missing";
1776
+ details?: readonly Response.error.Detail[] | undefined;
1777
+ message: string;
1778
+ };
1779
+ requestId: string;
1780
+ };
1781
+ outputFormat: "json";
1782
+ status: 401;
1783
+ input: {
1784
+ param: {
1785
+ address: `0x${string}`;
1786
+ vaultId: `0x${string}`;
1787
+ };
1788
+ } & {
1789
+ query?: {
1790
+ chainId?: string | string[];
1791
+ } | undefined;
1792
+ };
1793
+ } | {
1794
+ output: {
1795
+ error: {
1796
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
1797
+ details?: readonly Response.error.Detail[] | undefined;
1798
+ message: string;
1799
+ };
1800
+ requestId: string;
1801
+ };
1802
+ outputFormat: "json";
1803
+ status: 403;
1804
+ input: {
1805
+ param: {
1806
+ address: `0x${string}`;
1807
+ vaultId: `0x${string}`;
1808
+ };
1809
+ } & {
1810
+ query?: {
1811
+ chainId?: string | string[];
1812
+ } | undefined;
1813
+ };
1814
+ } | {
1815
+ output: {
1816
+ error: {
1817
+ code: "payment_required" | "rate_limit_exceeded";
1818
+ details?: readonly Response.error.Detail[] | undefined;
1819
+ message: string;
1820
+ };
1821
+ requestId: string;
1822
+ };
1823
+ outputFormat: "json";
1824
+ status: 429;
1825
+ input: {
1826
+ param: {
1827
+ address: `0x${string}`;
1828
+ vaultId: `0x${string}`;
1829
+ };
1830
+ } & {
1831
+ query?: {
1832
+ chainId?: string | string[];
1833
+ } | undefined;
1834
+ };
1835
+ } | {
1836
+ output: {
1837
+ error: {
1838
+ code: "query_invalid";
1839
+ details?: readonly Response.error.Detail[] | undefined;
1840
+ message: string;
1841
+ };
1842
+ requestId: string;
1843
+ };
1844
+ outputFormat: "json";
1845
+ status: 400;
1846
+ input: {
1847
+ param: {
1848
+ address: `0x${string}`;
1849
+ vaultId: `0x${string}`;
1850
+ };
1851
+ } & {
1852
+ query?: {
1853
+ chainId?: string | string[];
1854
+ } | undefined;
1855
+ };
1856
+ } | {
1857
+ output: {
1858
+ error: {
1859
+ code: "chain_id_invalid";
1474
1860
  details?: readonly Response.error.Detail[] | undefined;
1475
1861
  message: string;
1476
1862
  };
@@ -1576,7 +1962,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1576
1962
  } | {
1577
1963
  output: {
1578
1964
  error: {
1579
- code: "api_key_malformed";
1965
+ code: "chain_id_unsupported";
1580
1966
  details?: readonly Response.error.Detail[] | undefined;
1581
1967
  message: string;
1582
1968
  };
@@ -1598,14 +1984,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1598
1984
  } | {
1599
1985
  output: {
1600
1986
  error: {
1601
- code: "api_key_invalid" | "api_key_missing";
1987
+ code: "upstream_error";
1602
1988
  details?: readonly Response.error.Detail[] | undefined;
1603
1989
  message: string;
1604
1990
  };
1605
1991
  requestId: string;
1606
1992
  };
1607
1993
  outputFormat: "json";
1608
- status: 401;
1994
+ status: 502;
1609
1995
  input: {
1610
1996
  param: {
1611
1997
  address: `0x${string}`;
@@ -1620,14 +2006,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1620
2006
  } | {
1621
2007
  output: {
1622
2008
  error: {
1623
- code: "api_key_forbidden" | "api_key_ip_forbidden";
2009
+ code: "api_key_malformed";
1624
2010
  details?: readonly Response.error.Detail[] | undefined;
1625
2011
  message: string;
1626
2012
  };
1627
2013
  requestId: string;
1628
2014
  };
1629
2015
  outputFormat: "json";
1630
- status: 403;
2016
+ status: 400;
1631
2017
  input: {
1632
2018
  param: {
1633
2019
  address: `0x${string}`;
@@ -1642,14 +2028,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1642
2028
  } | {
1643
2029
  output: {
1644
2030
  error: {
1645
- code: "payment_required" | "rate_limit_exceeded";
2031
+ code: "api_key_invalid" | "api_key_missing";
1646
2032
  details?: readonly Response.error.Detail[] | undefined;
1647
2033
  message: string;
1648
2034
  };
1649
2035
  requestId: string;
1650
2036
  };
1651
2037
  outputFormat: "json";
1652
- status: 429;
2038
+ status: 401;
1653
2039
  input: {
1654
2040
  param: {
1655
2041
  address: `0x${string}`;
@@ -1664,14 +2050,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1664
2050
  } | {
1665
2051
  output: {
1666
2052
  error: {
1667
- code: "query_invalid";
2053
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
1668
2054
  details?: readonly Response.error.Detail[] | undefined;
1669
2055
  message: string;
1670
2056
  };
1671
2057
  requestId: string;
1672
2058
  };
1673
2059
  outputFormat: "json";
1674
- status: 400;
2060
+ status: 403;
1675
2061
  input: {
1676
2062
  param: {
1677
2063
  address: `0x${string}`;
@@ -1686,14 +2072,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1686
2072
  } | {
1687
2073
  output: {
1688
2074
  error: {
1689
- code: "upstream_error";
2075
+ code: "payment_required" | "rate_limit_exceeded";
1690
2076
  details?: readonly Response.error.Detail[] | undefined;
1691
2077
  message: string;
1692
2078
  };
1693
2079
  requestId: string;
1694
2080
  };
1695
2081
  outputFormat: "json";
1696
- status: 502;
2082
+ status: 429;
1697
2083
  input: {
1698
2084
  param: {
1699
2085
  address: `0x${string}`;
@@ -1708,7 +2094,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1708
2094
  } | {
1709
2095
  output: {
1710
2096
  error: {
1711
- code: "chain_id_invalid";
2097
+ code: "query_invalid";
1712
2098
  details?: readonly Response.error.Detail[] | undefined;
1713
2099
  message: string;
1714
2100
  };
@@ -1730,7 +2116,7 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1730
2116
  } | {
1731
2117
  output: {
1732
2118
  error: {
1733
- code: "chain_id_unsupported";
2119
+ code: "chain_id_invalid";
1734
2120
  details?: readonly Response.error.Detail[] | undefined;
1735
2121
  message: string;
1736
2122
  };
@@ -1868,14 +2254,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1868
2254
  } | {
1869
2255
  output: {
1870
2256
  error: {
1871
- code: "api_key_malformed";
2257
+ code: "upstream_error";
1872
2258
  details?: readonly Response.error.Detail[] | undefined;
1873
2259
  message: string;
1874
2260
  };
1875
2261
  requestId: string;
1876
2262
  };
1877
2263
  outputFormat: "json";
1878
- status: 400;
2264
+ status: 502;
1879
2265
  input: {
1880
2266
  param: {
1881
2267
  vaultId: `0x${string}`;
@@ -1890,14 +2276,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1890
2276
  } | {
1891
2277
  output: {
1892
2278
  error: {
1893
- code: "api_key_invalid" | "api_key_missing";
2279
+ code: "api_key_malformed";
1894
2280
  details?: readonly Response.error.Detail[] | undefined;
1895
2281
  message: string;
1896
2282
  };
1897
2283
  requestId: string;
1898
2284
  };
1899
2285
  outputFormat: "json";
1900
- status: 401;
2286
+ status: 400;
1901
2287
  input: {
1902
2288
  param: {
1903
2289
  vaultId: `0x${string}`;
@@ -1912,14 +2298,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1912
2298
  } | {
1913
2299
  output: {
1914
2300
  error: {
1915
- code: "api_key_forbidden" | "api_key_ip_forbidden";
2301
+ code: "api_key_invalid" | "api_key_missing";
1916
2302
  details?: readonly Response.error.Detail[] | undefined;
1917
2303
  message: string;
1918
2304
  };
1919
2305
  requestId: string;
1920
2306
  };
1921
2307
  outputFormat: "json";
1922
- status: 403;
2308
+ status: 401;
1923
2309
  input: {
1924
2310
  param: {
1925
2311
  vaultId: `0x${string}`;
@@ -1934,14 +2320,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1934
2320
  } | {
1935
2321
  output: {
1936
2322
  error: {
1937
- code: "payment_required" | "rate_limit_exceeded";
2323
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
1938
2324
  details?: readonly Response.error.Detail[] | undefined;
1939
2325
  message: string;
1940
2326
  };
1941
2327
  requestId: string;
1942
2328
  };
1943
2329
  outputFormat: "json";
1944
- status: 429;
2330
+ status: 403;
1945
2331
  input: {
1946
2332
  param: {
1947
2333
  vaultId: `0x${string}`;
@@ -1956,14 +2342,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1956
2342
  } | {
1957
2343
  output: {
1958
2344
  error: {
1959
- code: "query_invalid";
2345
+ code: "payment_required" | "rate_limit_exceeded";
1960
2346
  details?: readonly Response.error.Detail[] | undefined;
1961
2347
  message: string;
1962
2348
  };
1963
2349
  requestId: string;
1964
2350
  };
1965
2351
  outputFormat: "json";
1966
- status: 400;
2352
+ status: 429;
1967
2353
  input: {
1968
2354
  param: {
1969
2355
  vaultId: `0x${string}`;
@@ -1978,14 +2364,14 @@ export declare function earn(options?: earn.Options): import("hono/hono-base").H
1978
2364
  } | {
1979
2365
  output: {
1980
2366
  error: {
1981
- code: "upstream_error";
2367
+ code: "query_invalid";
1982
2368
  details?: readonly Response.error.Detail[] | undefined;
1983
2369
  message: string;
1984
2370
  };
1985
2371
  requestId: string;
1986
2372
  };
1987
2373
  outputFormat: "json";
1988
- status: 502;
2374
+ status: 400;
1989
2375
  input: {
1990
2376
  param: {
1991
2377
  vaultId: `0x${string}`;
@@ -2496,6 +2882,74 @@ export declare namespace listVerifiedVaults {
2496
2882
  oracle: FxOracle.Oracle;
2497
2883
  };
2498
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
+ }
2499
2953
  /** Gets one compatible Earn vault. */
2500
2954
  export declare function getVault(c: Context<App.Environment>, options: getVault.Options): Promise<{
2501
2955
  access?: {