@1shotapi/client-sdk 1.0.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 (86) hide show
  1. package/README.md +162 -0
  2. package/dist/categories/chains.d.ts +21 -0
  3. package/dist/categories/chains.js +44 -0
  4. package/dist/categories/chains.js.map +1 -0
  5. package/dist/categories/contractEvents.d.ts +103 -0
  6. package/dist/categories/contractEvents.js +115 -0
  7. package/dist/categories/contractEvents.js.map +1 -0
  8. package/dist/categories/contractMethods.d.ts +377 -0
  9. package/dist/categories/contractMethods.js +317 -0
  10. package/dist/categories/contractMethods.js.map +1 -0
  11. package/dist/categories/structs.d.ts +40 -0
  12. package/dist/categories/structs.js +68 -0
  13. package/dist/categories/structs.js.map +1 -0
  14. package/dist/categories/transactions.d.ts +31 -0
  15. package/dist/categories/transactions.js +51 -0
  16. package/dist/categories/transactions.js.map +1 -0
  17. package/dist/categories/wallets.d.ts +167 -0
  18. package/dist/categories/wallets.js +238 -0
  19. package/dist/categories/wallets.js.map +1 -0
  20. package/dist/client.d.ts +22 -0
  21. package/dist/client.js +61 -0
  22. package/dist/client.js.map +1 -0
  23. package/dist/index.d.ts +17 -0
  24. package/dist/index.js +22 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/types/abi.d.ts +32 -0
  27. package/dist/types/abi.js +2 -0
  28. package/dist/types/abi.js.map +1 -0
  29. package/dist/types/chain.d.ts +26 -0
  30. package/dist/types/chain.js +2 -0
  31. package/dist/types/chain.js.map +1 -0
  32. package/dist/types/client.d.ts +13 -0
  33. package/dist/types/client.js +2 -0
  34. package/dist/types/client.js.map +1 -0
  35. package/dist/types/common.d.ts +8 -0
  36. package/dist/types/common.js +2 -0
  37. package/dist/types/common.js.map +1 -0
  38. package/dist/types/contract.d.ts +5 -0
  39. package/dist/types/contract.js +2 -0
  40. package/dist/types/contract.js.map +1 -0
  41. package/dist/types/contractEvent.d.ts +46 -0
  42. package/dist/types/contractEvent.js +2 -0
  43. package/dist/types/contractEvent.js.map +1 -0
  44. package/dist/types/contractMethod.d.ts +31 -0
  45. package/dist/types/contractMethod.js +2 -0
  46. package/dist/types/contractMethod.js.map +1 -0
  47. package/dist/types/struct.d.ts +8 -0
  48. package/dist/types/struct.js +2 -0
  49. package/dist/types/struct.js.map +1 -0
  50. package/dist/types/transaction.d.ts +12 -0
  51. package/dist/types/transaction.js +2 -0
  52. package/dist/types/transaction.js.map +1 -0
  53. package/dist/types/wallet.d.ts +30 -0
  54. package/dist/types/wallet.js +2 -0
  55. package/dist/types/wallet.js.map +1 -0
  56. package/dist/types.d.ts +11 -0
  57. package/dist/types.js +2 -0
  58. package/dist/types.js.map +1 -0
  59. package/dist/utils/webhook.d.ts +19 -0
  60. package/dist/utils/webhook.js +66 -0
  61. package/dist/utils/webhook.js.map +1 -0
  62. package/dist/validation/abi.d.ts +470 -0
  63. package/dist/validation/abi.js +99 -0
  64. package/dist/validation/abi.js.map +1 -0
  65. package/dist/validation/chain.d.ts +157 -0
  66. package/dist/validation/chain.js +71 -0
  67. package/dist/validation/chain.js.map +1 -0
  68. package/dist/validation/common.d.ts +17 -0
  69. package/dist/validation/common.js +16 -0
  70. package/dist/validation/common.js.map +1 -0
  71. package/dist/validation/contractEvent.d.ts +323 -0
  72. package/dist/validation/contractEvent.js +148 -0
  73. package/dist/validation/contractEvent.js.map +1 -0
  74. package/dist/validation/contractMethod.d.ts +2746 -0
  75. package/dist/validation/contractMethod.js +787 -0
  76. package/dist/validation/contractMethod.js.map +1 -0
  77. package/dist/validation/struct.d.ts +495 -0
  78. package/dist/validation/struct.js +291 -0
  79. package/dist/validation/struct.js.map +1 -0
  80. package/dist/validation/transaction.d.ts +359 -0
  81. package/dist/validation/transaction.js +206 -0
  82. package/dist/validation/transaction.js.map +1 -0
  83. package/dist/validation/wallet.d.ts +537 -0
  84. package/dist/validation/wallet.js +287 -0
  85. package/dist/validation/wallet.js.map +1 -0
  86. package/package.json +71 -0
@@ -0,0 +1,206 @@
1
+ import { z } from "zod";
2
+ // Validation for log description
3
+ export const logDescriptionSchema = z
4
+ .object({
5
+ name: z.string().describe("Name of the log event"),
6
+ signature: z.string().describe("Signature of the log event"),
7
+ topic: z.string().describe("Topic of the log event"),
8
+ args: z
9
+ .lazy(() => z.array(z.union([z.string(), logDescriptionArgsSchema])))
10
+ .describe("Arguments of the log event - can be strings or nested arrays of strings"),
11
+ })
12
+ .describe("A description of a log event");
13
+ // Recursive schema for log description args
14
+ export const logDescriptionArgsSchema = z.lazy(() => z.union([z.string(), z.array(z.union([z.string(), logDescriptionArgsSchema]))]));
15
+ // Validation for transaction status
16
+ export const transactionStatusSchema = z
17
+ .enum(["Submitted", "Completed", "Retrying", "Failed", "Pending"])
18
+ .describe("The current status of a transaction. Tracks the lifecycle of a transaction from submission to completion or failure. Used for monitoring and error handling");
19
+ // Validation for transaction
20
+ export const transactionSchema = z
21
+ .object({
22
+ id: z
23
+ .string()
24
+ .uuid()
25
+ .describe("Internal ID of the transaction. Unique identifier for tracking the execution lifecycle"),
26
+ contractMethodIds: z
27
+ .array(z.string().uuid())
28
+ .describe("ID of the Contract Method being executed. Links to the Contract Method definition that was executed"),
29
+ apiCredentialId: z
30
+ .string()
31
+ .uuid()
32
+ .nullable()
33
+ .describe("ID of the API credential used for execution, if any. Identifies which API key was used to execute the transaction. Will be null if executed by a user"),
34
+ apiKey: z
35
+ .string()
36
+ .nullable()
37
+ .describe("API key used for execution, if any. The actual API key that was used. Will be null if executed by a user"),
38
+ userId: z
39
+ .string()
40
+ .uuid()
41
+ .nullable()
42
+ .describe("ID of the user who initiated the execution, if any. Identifies which user executed the transaction. Will be null if executed via API"),
43
+ status: transactionStatusSchema,
44
+ transactionHash: z
45
+ .string()
46
+ .nullable()
47
+ .describe("Hash of the transaction on the blockchain, if available. The actual blockchain transaction hash. Only available after status is Submitted"),
48
+ contractAddress: z
49
+ .string()
50
+ .describe("The address of the smart contract that was called in this transaction"),
51
+ name: z
52
+ .string()
53
+ .describe("Name of the transaction being executed. Included for convenience and display purposes"),
54
+ functionName: z
55
+ .string()
56
+ .describe("Name of the function being called. Included for convenience and display purposes"),
57
+ chainId: z
58
+ .number()
59
+ .int()
60
+ .positive()
61
+ .describe("ID of the blockchain network where the transaction is executed. Determines which blockchain the transaction was sent to"),
62
+ memo: z
63
+ .string()
64
+ .nullable()
65
+ .describe("Optional memo or note about the transaction. Can contain user-provided text or formatted data about why the execution was done"),
66
+ completed: z
67
+ .number()
68
+ .nullable()
69
+ .describe("Unix timestamp when the execution completed, if applicable. Used for tracking execution duration and timing"),
70
+ walletId: z.string().uuid().describe("ID of the wallet that executed the transaction"),
71
+ failureReason: z
72
+ .string()
73
+ .nullable()
74
+ .describe("The reason the transaction failed. This is only set if the transaction failed"),
75
+ from: z.string().describe("The address of the account that sent the transaction"),
76
+ to: z.string().nullable().describe("The address of the account that received the transaction"),
77
+ gasPrice: z.string().nullable().describe("The gas price of the transaction"),
78
+ gasLimit: z.string().nullable().describe("The gas limit of the transaction"),
79
+ maxFeePerGas: z.string().nullable().describe("The max fee per gas of the transaction"),
80
+ maxPriorityFeePerGas: z
81
+ .string()
82
+ .nullable()
83
+ .describe("The max priority fee per gas of the transaction"),
84
+ gasUsed: z.string().nullable().describe("The gas used by the transaction"),
85
+ logs: z
86
+ .array(logDescriptionSchema)
87
+ .nullable()
88
+ .describe("The logs, if any, emitted by the transaction"),
89
+ updated: z
90
+ .number()
91
+ .describe("Unix timestamp of the last update to this execution. Used for tracking changes"),
92
+ created: z
93
+ .number()
94
+ .describe("Unix timestamp when this execution was created. Used for tracking creation time"),
95
+ deleted: z
96
+ .boolean()
97
+ .describe("Whether this execution has been deleted. Used for soft deletion and filtering"),
98
+ })
99
+ .describe("A record of a transaction attempt. Represents a single execution of a transaction on the blockchain, including its status, parameters, and results. Used for tracking and monitoring transaction lifecycle");
100
+ // Validation for transaction list response
101
+ export const transactionListSchema = z
102
+ .object({
103
+ response: z
104
+ .array(transactionSchema)
105
+ .describe("List of transaction executions matching the query parameters"),
106
+ page: z
107
+ .number()
108
+ .int()
109
+ .positive()
110
+ .describe("Current page number in the paginated results (1-indexed)"),
111
+ pageSize: z
112
+ .number()
113
+ .int()
114
+ .positive()
115
+ .describe("Number of items per page. Determines how many executions are returned"),
116
+ totalResults: z
117
+ .number()
118
+ .int()
119
+ .nonnegative()
120
+ .describe("Total number of results available across all pages"),
121
+ })
122
+ .describe("Paginated list of transaction executions. Used for retrieving multiple transaction executions with pagination support");
123
+ // Validation for get transaction parameters
124
+ export const getTransactionSchema = z
125
+ .object({
126
+ transactionId: z
127
+ .string()
128
+ .uuid()
129
+ .describe("Execution ID of the specific transaction to retrieve. Identifies which execution to fetch"),
130
+ })
131
+ .describe("Parameters for retrieving a specific transaction. Used to get detailed information about a single execution");
132
+ // Validation for list transaction executions parameters
133
+ export const listTransactionsSchema = z
134
+ .object({
135
+ businessId: z
136
+ .string()
137
+ .uuid()
138
+ .describe("ID of the business to list executions for. Used for access control and filtering"),
139
+ pageSize: z
140
+ .number()
141
+ .int()
142
+ .positive()
143
+ .optional()
144
+ .nullable()
145
+ .describe("Number of items per page. Optional parameter for pagination control"),
146
+ page: z
147
+ .number()
148
+ .int()
149
+ .positive()
150
+ .optional()
151
+ .nullable()
152
+ .describe("Page number to retrieve (1-indexed). Optional parameter for pagination control"),
153
+ chainId: z
154
+ .number()
155
+ .int()
156
+ .positive()
157
+ .optional()
158
+ .nullable()
159
+ .describe("Filter executions by blockchain network ID. Optional parameter to get executions for a specific chainId"),
160
+ status: z
161
+ .enum(["Pending", "Submitted", "Completed", "Retrying", "Failed"])
162
+ .optional()
163
+ .nullable()
164
+ .describe("Filter executions by status. Optional parameter to filter by execution state"),
165
+ walletId: z
166
+ .string()
167
+ .uuid()
168
+ .optional()
169
+ .nullable()
170
+ .describe("Filter executions by wallet ID. Optional parameter to get executions for a specific wallet"),
171
+ contractMethodId: z
172
+ .string()
173
+ .uuid()
174
+ .optional()
175
+ .nullable()
176
+ .describe("Filter executions by contract method ID. Optional parameter to get executions of a specific contract method"),
177
+ apiCredentialId: z
178
+ .string()
179
+ .uuid()
180
+ .optional()
181
+ .nullable()
182
+ .describe("Filter executions by API credential ID. Optional parameter to get executions made with a specific API key"),
183
+ userId: z
184
+ .string()
185
+ .uuid()
186
+ .optional()
187
+ .nullable()
188
+ .describe("Filter executions by user ID. Optional parameter to get executions made by a specific user"),
189
+ memo: z
190
+ .string()
191
+ .optional()
192
+ .nullable()
193
+ .describe("Filter executions by memo text. Optional parameter to search for specific memos"),
194
+ createdAfter: z
195
+ .number()
196
+ .optional()
197
+ .nullable()
198
+ .describe("Filter executions created after this timestamp. Optional parameter for time-based filtering"),
199
+ createdBefore: z
200
+ .number()
201
+ .optional()
202
+ .nullable()
203
+ .describe("Filter executions created before this timestamp. Optional parameter for time-based filtering"),
204
+ })
205
+ .describe("Parameters for listing transaction executions. Used to filter and paginate execution lists with various criteria");
206
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/validation/transaction.ts"],"names":[],"mappings":"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"}