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
@@ -37,14 +37,14 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
37
37
  } | {
38
38
  output: {
39
39
  error: {
40
- code: "upstream_error";
40
+ code: "api_key_malformed";
41
41
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
42
42
  message: string;
43
43
  };
44
44
  requestId: string;
45
45
  };
46
46
  outputFormat: "json";
47
- status: 502;
47
+ status: 400;
48
48
  input: {
49
49
  param: {
50
50
  address: `0x${string}`;
@@ -63,14 +63,14 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
63
63
  } | {
64
64
  output: {
65
65
  error: {
66
- code: "api_key_malformed";
66
+ code: "api_key_invalid" | "api_key_missing";
67
67
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
68
68
  message: string;
69
69
  };
70
70
  requestId: string;
71
71
  };
72
72
  outputFormat: "json";
73
- status: 400;
73
+ status: 401;
74
74
  input: {
75
75
  param: {
76
76
  address: `0x${string}`;
@@ -89,14 +89,14 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
89
89
  } | {
90
90
  output: {
91
91
  error: {
92
- code: "api_key_invalid" | "api_key_missing";
92
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
93
93
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
94
94
  message: string;
95
95
  };
96
96
  requestId: string;
97
97
  };
98
98
  outputFormat: "json";
99
- status: 401;
99
+ status: 403;
100
100
  input: {
101
101
  param: {
102
102
  address: `0x${string}`;
@@ -115,14 +115,14 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
115
115
  } | {
116
116
  output: {
117
117
  error: {
118
- code: "api_key_forbidden" | "api_key_ip_forbidden";
118
+ code: "payment_required" | "rate_limit_exceeded";
119
119
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
120
120
  message: string;
121
121
  };
122
122
  requestId: string;
123
123
  };
124
124
  outputFormat: "json";
125
- status: 403;
125
+ status: 429;
126
126
  input: {
127
127
  param: {
128
128
  address: `0x${string}`;
@@ -141,14 +141,14 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
141
141
  } | {
142
142
  output: {
143
143
  error: {
144
- code: "payment_required" | "rate_limit_exceeded";
144
+ code: "query_invalid";
145
145
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
146
146
  message: string;
147
147
  };
148
148
  requestId: string;
149
149
  };
150
150
  outputFormat: "json";
151
- status: 429;
151
+ status: 400;
152
152
  input: {
153
153
  param: {
154
154
  address: `0x${string}`;
@@ -167,14 +167,14 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
167
167
  } | {
168
168
  output: {
169
169
  error: {
170
- code: "query_invalid";
170
+ code: "upstream_error";
171
171
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
172
172
  message: string;
173
173
  };
174
174
  requestId: string;
175
175
  };
176
176
  outputFormat: "json";
177
- status: 400;
177
+ status: 502;
178
178
  input: {
179
179
  param: {
180
180
  address: `0x${string}`;
@@ -3808,7 +3808,7 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
3808
3808
  };
3809
3809
  };
3810
3810
  }, "/"> | import("hono/types").MergeSchemaPath<{
3811
- "/v1/addresses/:address/balances": {
3811
+ "/v1/addresses/:address/valuation": {
3812
3812
  $get: {
3813
3813
  output: null;
3814
3814
  outputFormat: "body";
@@ -3821,13 +3821,111 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
3821
3821
  query?: {
3822
3822
  chainId?: string | string[];
3823
3823
  currency?: string | string[];
3824
- cursor?: string | string[];
3825
- feeEligible?: string | string[];
3826
- include?: string | string[];
3827
- limit?: string | string[];
3828
- page?: string | string[];
3829
- 'valuation.currency'?: string | string[];
3830
- verified?: string | string[];
3824
+ } | undefined;
3825
+ };
3826
+ } | {
3827
+ output: {
3828
+ error: {
3829
+ code: "api_key_malformed";
3830
+ details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
3831
+ message: string;
3832
+ };
3833
+ requestId: string;
3834
+ };
3835
+ outputFormat: "json";
3836
+ status: 400;
3837
+ input: {
3838
+ param: {
3839
+ address: `0x${string}`;
3840
+ };
3841
+ } & {
3842
+ query?: {
3843
+ chainId?: string | string[];
3844
+ currency?: string | string[];
3845
+ } | undefined;
3846
+ };
3847
+ } | {
3848
+ output: {
3849
+ error: {
3850
+ code: "api_key_invalid" | "api_key_missing";
3851
+ details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
3852
+ message: string;
3853
+ };
3854
+ requestId: string;
3855
+ };
3856
+ outputFormat: "json";
3857
+ status: 401;
3858
+ input: {
3859
+ param: {
3860
+ address: `0x${string}`;
3861
+ };
3862
+ } & {
3863
+ query?: {
3864
+ chainId?: string | string[];
3865
+ currency?: string | string[];
3866
+ } | undefined;
3867
+ };
3868
+ } | {
3869
+ output: {
3870
+ error: {
3871
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
3872
+ details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
3873
+ message: string;
3874
+ };
3875
+ requestId: string;
3876
+ };
3877
+ outputFormat: "json";
3878
+ status: 403;
3879
+ input: {
3880
+ param: {
3881
+ address: `0x${string}`;
3882
+ };
3883
+ } & {
3884
+ query?: {
3885
+ chainId?: string | string[];
3886
+ currency?: string | string[];
3887
+ } | undefined;
3888
+ };
3889
+ } | {
3890
+ output: {
3891
+ error: {
3892
+ code: "payment_required" | "rate_limit_exceeded";
3893
+ details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
3894
+ message: string;
3895
+ };
3896
+ requestId: string;
3897
+ };
3898
+ outputFormat: "json";
3899
+ status: 429;
3900
+ input: {
3901
+ param: {
3902
+ address: `0x${string}`;
3903
+ };
3904
+ } & {
3905
+ query?: {
3906
+ chainId?: string | string[];
3907
+ currency?: string | string[];
3908
+ } | undefined;
3909
+ };
3910
+ } | {
3911
+ output: {
3912
+ error: {
3913
+ code: "query_invalid";
3914
+ details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
3915
+ message: string;
3916
+ };
3917
+ requestId: string;
3918
+ };
3919
+ outputFormat: "json";
3920
+ status: 400;
3921
+ input: {
3922
+ param: {
3923
+ address: `0x${string}`;
3924
+ };
3925
+ } & {
3926
+ query?: {
3927
+ chainId?: string | string[];
3928
+ currency?: string | string[];
3831
3929
  } | undefined;
3832
3930
  };
3833
3931
  } | {
@@ -3841,6 +3939,70 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
3841
3939
  };
3842
3940
  outputFormat: "json";
3843
3941
  status: 502;
3942
+ input: {
3943
+ param: {
3944
+ address: `0x${string}`;
3945
+ };
3946
+ } & {
3947
+ query?: {
3948
+ chainId?: string | string[];
3949
+ currency?: string | string[];
3950
+ } | undefined;
3951
+ };
3952
+ } | {
3953
+ output: {
3954
+ error: {
3955
+ code: "address_invalid";
3956
+ details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
3957
+ message: string;
3958
+ };
3959
+ requestId: string;
3960
+ };
3961
+ outputFormat: "json";
3962
+ status: 400;
3963
+ input: {
3964
+ param: {
3965
+ address: `0x${string}`;
3966
+ };
3967
+ } & {
3968
+ query?: {
3969
+ chainId?: string | string[];
3970
+ currency?: string | string[];
3971
+ } | undefined;
3972
+ };
3973
+ } | {
3974
+ output: {
3975
+ address: `0x${string}`;
3976
+ amount: string;
3977
+ currency: string;
3978
+ id: string;
3979
+ pricing: {
3980
+ asOf: string;
3981
+ basis: "nominal";
3982
+ source: string;
3983
+ } | null;
3984
+ unpriced: string[];
3985
+ };
3986
+ outputFormat: "json";
3987
+ status: 200;
3988
+ input: {
3989
+ param: {
3990
+ address: `0x${string}`;
3991
+ };
3992
+ } & {
3993
+ query?: {
3994
+ chainId?: string | string[];
3995
+ currency?: string | string[];
3996
+ } | undefined;
3997
+ };
3998
+ };
3999
+ };
4000
+ }, "/"> | import("hono/types").MergeSchemaPath<{
4001
+ "/v1/addresses/:address/balances": {
4002
+ $get: {
4003
+ output: null;
4004
+ outputFormat: "body";
4005
+ status: 402;
3844
4006
  input: {
3845
4007
  param: {
3846
4008
  address: `0x${string}`;
@@ -3998,6 +4160,34 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
3998
4160
  verified?: string | string[];
3999
4161
  } | undefined;
4000
4162
  };
4163
+ } | {
4164
+ output: {
4165
+ error: {
4166
+ code: "upstream_error";
4167
+ details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
4168
+ message: string;
4169
+ };
4170
+ requestId: string;
4171
+ };
4172
+ outputFormat: "json";
4173
+ status: 502;
4174
+ input: {
4175
+ param: {
4176
+ address: `0x${string}`;
4177
+ };
4178
+ } & {
4179
+ query?: {
4180
+ chainId?: string | string[];
4181
+ currency?: string | string[];
4182
+ cursor?: string | string[];
4183
+ feeEligible?: string | string[];
4184
+ include?: string | string[];
4185
+ limit?: string | string[];
4186
+ page?: string | string[];
4187
+ 'valuation.currency'?: string | string[];
4188
+ verified?: string | string[];
4189
+ } | undefined;
4190
+ };
4001
4191
  } | {
4002
4192
  output: {
4003
4193
  error: {
@@ -4045,10 +4235,10 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
4045
4235
  symbol: string;
4046
4236
  verified: boolean;
4047
4237
  };
4048
- valuation: {
4238
+ valuation?: {
4049
4239
  amount: string;
4050
4240
  currency: string;
4051
- } | null;
4241
+ } | null | undefined;
4052
4242
  }[];
4053
4243
  meta?: {
4054
4244
  valuation?: {
@@ -4082,8 +4272,8 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
4082
4272
  };
4083
4273
  };
4084
4274
  };
4085
- }, "/"> | import("hono/types").MergeSchemaPath<{
4086
- "/v1/addresses/:address/valuation": {
4275
+ } & {
4276
+ "/v1/addresses/:address/balances/:token": {
4087
4277
  $get: {
4088
4278
  output: null;
4089
4279
  outputFormat: "body";
@@ -4091,137 +4281,144 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
4091
4281
  input: {
4092
4282
  param: {
4093
4283
  address: `0x${string}`;
4284
+ token: `0x${string}`;
4094
4285
  };
4095
4286
  } & {
4096
4287
  query?: {
4097
4288
  chainId?: string | string[];
4098
- currency?: string | string[];
4289
+ 'valuation.currency'?: string | string[];
4099
4290
  } | undefined;
4100
4291
  };
4101
4292
  } | {
4102
4293
  output: {
4103
4294
  error: {
4104
- code: "upstream_error";
4295
+ code: "api_key_malformed";
4105
4296
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
4106
4297
  message: string;
4107
4298
  };
4108
4299
  requestId: string;
4109
4300
  };
4110
4301
  outputFormat: "json";
4111
- status: 502;
4302
+ status: 400;
4112
4303
  input: {
4113
4304
  param: {
4114
4305
  address: `0x${string}`;
4306
+ token: `0x${string}`;
4115
4307
  };
4116
4308
  } & {
4117
4309
  query?: {
4118
4310
  chainId?: string | string[];
4119
- currency?: string | string[];
4311
+ 'valuation.currency'?: string | string[];
4120
4312
  } | undefined;
4121
4313
  };
4122
4314
  } | {
4123
4315
  output: {
4124
4316
  error: {
4125
- code: "api_key_malformed";
4317
+ code: "api_key_invalid" | "api_key_missing";
4126
4318
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
4127
4319
  message: string;
4128
4320
  };
4129
4321
  requestId: string;
4130
4322
  };
4131
4323
  outputFormat: "json";
4132
- status: 400;
4324
+ status: 401;
4133
4325
  input: {
4134
4326
  param: {
4135
4327
  address: `0x${string}`;
4328
+ token: `0x${string}`;
4136
4329
  };
4137
4330
  } & {
4138
4331
  query?: {
4139
4332
  chainId?: string | string[];
4140
- currency?: string | string[];
4333
+ 'valuation.currency'?: string | string[];
4141
4334
  } | undefined;
4142
4335
  };
4143
4336
  } | {
4144
4337
  output: {
4145
4338
  error: {
4146
- code: "api_key_invalid" | "api_key_missing";
4339
+ code: "api_key_forbidden" | "api_key_ip_forbidden";
4147
4340
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
4148
4341
  message: string;
4149
4342
  };
4150
4343
  requestId: string;
4151
4344
  };
4152
4345
  outputFormat: "json";
4153
- status: 401;
4346
+ status: 403;
4154
4347
  input: {
4155
4348
  param: {
4156
4349
  address: `0x${string}`;
4350
+ token: `0x${string}`;
4157
4351
  };
4158
4352
  } & {
4159
4353
  query?: {
4160
4354
  chainId?: string | string[];
4161
- currency?: string | string[];
4355
+ 'valuation.currency'?: string | string[];
4162
4356
  } | undefined;
4163
4357
  };
4164
4358
  } | {
4165
4359
  output: {
4166
4360
  error: {
4167
- code: "api_key_forbidden" | "api_key_ip_forbidden";
4361
+ code: "payment_required" | "rate_limit_exceeded";
4168
4362
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
4169
4363
  message: string;
4170
4364
  };
4171
4365
  requestId: string;
4172
4366
  };
4173
4367
  outputFormat: "json";
4174
- status: 403;
4368
+ status: 429;
4175
4369
  input: {
4176
4370
  param: {
4177
4371
  address: `0x${string}`;
4372
+ token: `0x${string}`;
4178
4373
  };
4179
4374
  } & {
4180
4375
  query?: {
4181
4376
  chainId?: string | string[];
4182
- currency?: string | string[];
4377
+ 'valuation.currency'?: string | string[];
4183
4378
  } | undefined;
4184
4379
  };
4185
4380
  } | {
4186
4381
  output: {
4187
4382
  error: {
4188
- code: "payment_required" | "rate_limit_exceeded";
4383
+ code: "query_invalid";
4189
4384
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
4190
4385
  message: string;
4191
4386
  };
4192
4387
  requestId: string;
4193
4388
  };
4194
4389
  outputFormat: "json";
4195
- status: 429;
4390
+ status: 400;
4196
4391
  input: {
4197
4392
  param: {
4198
4393
  address: `0x${string}`;
4394
+ token: `0x${string}`;
4199
4395
  };
4200
4396
  } & {
4201
4397
  query?: {
4202
4398
  chainId?: string | string[];
4203
- currency?: string | string[];
4399
+ 'valuation.currency'?: string | string[];
4204
4400
  } | undefined;
4205
4401
  };
4206
4402
  } | {
4207
4403
  output: {
4208
4404
  error: {
4209
- code: "query_invalid";
4405
+ code: "upstream_error";
4210
4406
  details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
4211
4407
  message: string;
4212
4408
  };
4213
4409
  requestId: string;
4214
4410
  };
4215
4411
  outputFormat: "json";
4216
- status: 400;
4412
+ status: 502;
4217
4413
  input: {
4218
4414
  param: {
4219
4415
  address: `0x${string}`;
4416
+ token: `0x${string}`;
4220
4417
  };
4221
4418
  } & {
4222
4419
  query?: {
4223
4420
  chainId?: string | string[];
4224
- currency?: string | string[];
4421
+ 'valuation.currency'?: string | string[];
4225
4422
  } | undefined;
4226
4423
  };
4227
4424
  } | {
@@ -4238,36 +4435,70 @@ export declare function addresses(options?: addresses.Options): import("hono/hon
4238
4435
  input: {
4239
4436
  param: {
4240
4437
  address: `0x${string}`;
4438
+ token: `0x${string}`;
4241
4439
  };
4242
4440
  } & {
4243
4441
  query?: {
4244
4442
  chainId?: string | string[];
4245
- currency?: string | string[];
4443
+ 'valuation.currency'?: string | string[];
4246
4444
  } | undefined;
4247
4445
  };
4248
4446
  } | {
4249
4447
  output: {
4250
- address: `0x${string}`;
4251
4448
  amount: string;
4252
4449
  currency: string;
4450
+ decimals: number;
4451
+ feeEligible?: boolean | undefined;
4452
+ formatted: string;
4253
4453
  id: string;
4254
- pricing: {
4255
- asOf: string;
4256
- basis: "nominal";
4257
- source: string;
4258
- } | null;
4259
- unpriced: string[];
4454
+ token: {
4455
+ address: `0x${string}`;
4456
+ currency: string;
4457
+ decimals: number;
4458
+ id: string;
4459
+ logoUri?: string | undefined;
4460
+ name: string;
4461
+ symbol: string;
4462
+ verified: boolean;
4463
+ };
4464
+ valuation?: {
4465
+ amount: string;
4466
+ currency: string;
4467
+ } | null | undefined;
4260
4468
  };
4261
4469
  outputFormat: "json";
4262
4470
  status: 200;
4263
4471
  input: {
4264
4472
  param: {
4265
4473
  address: `0x${string}`;
4474
+ token: `0x${string}`;
4266
4475
  };
4267
4476
  } & {
4268
4477
  query?: {
4269
4478
  chainId?: string | string[];
4270
- currency?: string | string[];
4479
+ 'valuation.currency'?: string | string[];
4480
+ } | undefined;
4481
+ };
4482
+ } | {
4483
+ output: {
4484
+ error: {
4485
+ code: "token_not_found";
4486
+ details?: readonly import("../../../internal/Response.js").error.Detail[] | undefined;
4487
+ message: string;
4488
+ };
4489
+ requestId: string;
4490
+ };
4491
+ outputFormat: "json";
4492
+ status: 404;
4493
+ input: {
4494
+ param: {
4495
+ address: `0x${string}`;
4496
+ token: `0x${string}`;
4497
+ };
4498
+ } & {
4499
+ query?: {
4500
+ chainId?: string | string[];
4501
+ 'valuation.currency'?: string | string[];
4271
4502
  } | undefined;
4272
4503
  };
4273
4504
  };
@@ -1 +1 @@
1
- {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/addresses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAG3C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,SAAS,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAKxD;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,qDAAqD;IACrD,KAAK,OAAO,GAAG;QACb,mDAAmD;QACnD,EAAE,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAA;KACxC,CAAA;CACF"}
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/addresses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAG3C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,SAAS,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAKxD;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,qDAAqD;IACrD,KAAK,OAAO,GAAG;QACb,mDAAmD;QACnD,EAAE,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAA;KACxC,CAAA;CACF"}