@hirosystems/chainhooks-client 0.1.4
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.
- package/README.md +224 -0
- package/dist/src/client.d.ts +61 -0
- package/dist/src/client.d.ts.map +1 -0
- package/dist/src/client.js +121 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +19 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/schemas/api/index.d.ts +222 -0
- package/dist/src/schemas/api/index.d.ts.map +1 -0
- package/dist/src/schemas/api/index.js +31 -0
- package/dist/src/schemas/api/index.js.map +1 -0
- package/dist/src/schemas/chainhook/action.d.ts +13 -0
- package/dist/src/schemas/chainhook/action.d.ts.map +1 -0
- package/dist/src/schemas/chainhook/action.js +12 -0
- package/dist/src/schemas/chainhook/action.js.map +1 -0
- package/dist/src/schemas/chainhook/index.d.ts +221 -0
- package/dist/src/schemas/chainhook/index.d.ts.map +1 -0
- package/dist/src/schemas/chainhook/index.js +73 -0
- package/dist/src/schemas/chainhook/index.js.map +1 -0
- package/dist/src/schemas/chainhook/stacks/filters.d.ts +242 -0
- package/dist/src/schemas/chainhook/stacks/filters.d.ts.map +1 -0
- package/dist/src/schemas/chainhook/stacks/filters.js +112 -0
- package/dist/src/schemas/chainhook/stacks/filters.js.map +1 -0
- package/dist/src/schemas/chainhook/stacks/index.d.ts +16 -0
- package/dist/src/schemas/chainhook/stacks/index.d.ts.map +1 -0
- package/dist/src/schemas/chainhook/stacks/index.js +33 -0
- package/dist/src/schemas/chainhook/stacks/index.js.map +1 -0
- package/dist/src/schemas/chainhook-event/common.d.ts +21 -0
- package/dist/src/schemas/chainhook-event/common.d.ts.map +1 -0
- package/dist/src/schemas/chainhook-event/common.js +20 -0
- package/dist/src/schemas/chainhook-event/common.js.map +1 -0
- package/dist/src/schemas/chainhook-event/index.d.ts +725 -0
- package/dist/src/schemas/chainhook-event/index.d.ts.map +1 -0
- package/dist/src/schemas/chainhook-event/index.js +35 -0
- package/dist/src/schemas/chainhook-event/index.js.map +1 -0
- package/dist/src/schemas/chainhook-event/stacks/block.d.ts +385 -0
- package/dist/src/schemas/chainhook-event/stacks/block.d.ts.map +1 -0
- package/dist/src/schemas/chainhook-event/stacks/block.js +47 -0
- package/dist/src/schemas/chainhook-event/stacks/block.js.map +1 -0
- package/dist/src/schemas/chainhook-event/stacks/index.d.ts +14 -0
- package/dist/src/schemas/chainhook-event/stacks/index.d.ts.map +1 -0
- package/dist/src/schemas/chainhook-event/stacks/index.js +30 -0
- package/dist/src/schemas/chainhook-event/stacks/index.js.map +1 -0
- package/dist/src/schemas/chainhook-event/stacks/operations.d.ts +494 -0
- package/dist/src/schemas/chainhook-event/stacks/operations.d.ts.map +1 -0
- package/dist/src/schemas/chainhook-event/stacks/operations.js +169 -0
- package/dist/src/schemas/chainhook-event/stacks/operations.js.map +1 -0
- package/dist/src/schemas/chainhook-event/stacks/post_conditions.d.ts +159 -0
- package/dist/src/schemas/chainhook-event/stacks/post_conditions.d.ts.map +1 -0
- package/dist/src/schemas/chainhook-event/stacks/post_conditions.js +70 -0
- package/dist/src/schemas/chainhook-event/stacks/post_conditions.js.map +1 -0
- package/dist/src/schemas/chainhook-event/stacks/transaction.d.ts +422 -0
- package/dist/src/schemas/chainhook-event/stacks/transaction.d.ts.map +1 -0
- package/dist/src/schemas/chainhook-event/stacks/transaction.js +64 -0
- package/dist/src/schemas/chainhook-event/stacks/transaction.js.map +1 -0
- package/dist/src/schemas/index.d.ts +5 -0
- package/dist/src/schemas/index.d.ts.map +1 -0
- package/dist/src/schemas/index.js +21 -0
- package/dist/src/schemas/index.js.map +1 -0
- package/dist/src/schemas/utils.d.ts +10 -0
- package/dist/src/schemas/utils.d.ts.map +1 -0
- package/dist/src/schemas/utils.js +16 -0
- package/dist/src/schemas/utils.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +54 -0
package/README.md
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# @hirosystems/chainhooks-client
|
|
2
|
+
|
|
3
|
+
A TypeScript client for the Chainhooks API with full type safety and comprehensive schema definitions.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 🚀 **Full TypeScript Support** - Complete type safety using TypeBox schemas
|
|
8
|
+
- 🔐 **Authentication** - Built-in API key and JWT support
|
|
9
|
+
- 📚 **Schema Export** - Access to all Chainhook schemas and types
|
|
10
|
+
- 🎯 **Modern API** - Promise-based async/await interface
|
|
11
|
+
- 🛡️ **Error Handling** - Comprehensive error handling with meaningful messages
|
|
12
|
+
- 🌐 **HTTP Client** - Uses undici for high-performance HTTP requests
|
|
13
|
+
- 🏗️ **Built-in URLs** - Pre-configured URLs for mainnet and testnet
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install @hirosystems/chainhooks-client
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Note:** This package uses [undici](https://github.com/nodejs/undici) as its HTTP client, which provides high-performance HTTP/1.1 and HTTP/2 support. It's automatically installed as a dependency.
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import { ChainhooksClient, ChainhookDefinition } from '@hirosystems/chainhooks-client';
|
|
27
|
+
|
|
28
|
+
// Initialize the client
|
|
29
|
+
const client = new ChainhooksClient({
|
|
30
|
+
baseUrl: 'https://api.mainnet.hiro.so',
|
|
31
|
+
apiKey: 'your-api-key-here',
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// Register a new chainhook
|
|
35
|
+
const chainhook: ChainhookDefinition = {
|
|
36
|
+
name: 'My Stacks Chainhook',
|
|
37
|
+
chain: 'stacks',
|
|
38
|
+
network: 'mainnet',
|
|
39
|
+
filters: {
|
|
40
|
+
// Your filters here
|
|
41
|
+
},
|
|
42
|
+
options: {
|
|
43
|
+
start_at_block_height: 1000000,
|
|
44
|
+
},
|
|
45
|
+
action: {
|
|
46
|
+
// Your action configuration
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
const result = await client.registerChainhook(chainhook);
|
|
52
|
+
console.log('Chainhook registered:', result.uuid);
|
|
53
|
+
} catch (error) {
|
|
54
|
+
console.error('Failed to register chainhook:', error.message);
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Pre-configured URLs
|
|
59
|
+
|
|
60
|
+
The client provides pre-configured URLs for convenience:
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
import { CHAINHOOKS_BASE_URL } from '@hirosystems/chainhooks-client';
|
|
64
|
+
|
|
65
|
+
const client = new ChainhooksClient({
|
|
66
|
+
baseUrl: CHAINHOOKS_BASE_URL.mainnet, // https://api.mainnet.hiro.so
|
|
67
|
+
apiKey: 'your-api-key',
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// Or for testnet
|
|
71
|
+
const testnetClient = new ChainhooksClient({
|
|
72
|
+
baseUrl: CHAINHOOKS_BASE_URL.testnet, // https://api.testnet.hiro.so
|
|
73
|
+
apiKey: 'your-api-key',
|
|
74
|
+
});
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## API Methods
|
|
78
|
+
|
|
79
|
+
### Chainhook Management
|
|
80
|
+
|
|
81
|
+
#### `registerChainhook(definition: ChainhookDefinition): Promise<Chainhook>`
|
|
82
|
+
Register a new chainhook with the API.
|
|
83
|
+
|
|
84
|
+
#### `getChainhooks(options?: PaginationOptions): Promise<PaginatedChainhookResponse>`
|
|
85
|
+
Retrieve all chainhooks with optional pagination.
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
// Get first 20 chainhooks
|
|
89
|
+
const chainhooks = await client.getChainhooks({ limit: 20, offset: 0 });
|
|
90
|
+
|
|
91
|
+
// Get next page
|
|
92
|
+
const nextPage = await client.getChainhooks({ limit: 20, offset: 20 });
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
#### `getChainhook(uuid: string): Promise<Chainhook>`
|
|
96
|
+
Retrieve a specific chainhook by its UUID.
|
|
97
|
+
|
|
98
|
+
#### `deleteChainhook(uuid: string): Promise<void>`
|
|
99
|
+
Delete a chainhook by its UUID.
|
|
100
|
+
|
|
101
|
+
### API Status
|
|
102
|
+
|
|
103
|
+
#### `getStatus(): Promise<ApiStatusResponse>`
|
|
104
|
+
Check the API status and version information.
|
|
105
|
+
|
|
106
|
+
## Configuration
|
|
107
|
+
|
|
108
|
+
The client accepts the following configuration options:
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
interface ChainhooksClientConfig {
|
|
112
|
+
baseUrl: string; // Required: API base URL
|
|
113
|
+
apiKey?: string; // Optional: API key for authentication
|
|
114
|
+
jwt?: string; // Optional: JWT token for authentication
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Note:** You can use either `apiKey` or `jwt` for authentication, or both if needed.
|
|
119
|
+
|
|
120
|
+
## Schema Types
|
|
121
|
+
|
|
122
|
+
All Chainhook schemas are exported for use in your application:
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
import {
|
|
126
|
+
Chainhook,
|
|
127
|
+
ChainhookDefinition,
|
|
128
|
+
ChainhookStatus,
|
|
129
|
+
ChainhookNetwork,
|
|
130
|
+
PaginatedChainhookResponse,
|
|
131
|
+
ApiStatusResponse,
|
|
132
|
+
// ... and many more
|
|
133
|
+
} from '@hirosystems/chainhooks-client';
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Pagination
|
|
137
|
+
|
|
138
|
+
The client supports pagination for list operations:
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
interface PaginationOptions {
|
|
142
|
+
offset?: number; // Starting position (default: 0)
|
|
143
|
+
limit?: number; // Number of results (default: 20, max: 60)
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Examples
|
|
148
|
+
|
|
149
|
+
### Complete Workflow
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
import { ChainhooksClient, CHAINHOOKS_BASE_URL } from '@hirosystems/chainhooks-client';
|
|
153
|
+
|
|
154
|
+
const client = new ChainhooksClient({
|
|
155
|
+
baseUrl: CHAINHOOKS_BASE_URL.mainnet,
|
|
156
|
+
apiKey: process.env.CHAINHOOKS_API_KEY,
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
async function manageChainhooks() {
|
|
160
|
+
try {
|
|
161
|
+
// Check API status
|
|
162
|
+
const status = await client.getStatus();
|
|
163
|
+
console.log('API Status:', status.status);
|
|
164
|
+
console.log('Server Version:', status.server_version);
|
|
165
|
+
|
|
166
|
+
// List all chainhooks
|
|
167
|
+
const { results, total } = await client.getChainhooks({ limit: 50 });
|
|
168
|
+
console.log(`Found ${total} chainhooks`);
|
|
169
|
+
|
|
170
|
+
// Get details of first chainhook
|
|
171
|
+
if (results.length > 0) {
|
|
172
|
+
const firstChainhook = await client.getChainhook(results[0].uuid);
|
|
173
|
+
console.log('First chainhook:', firstChainhook.definition.name);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
} catch (error) {
|
|
177
|
+
console.error('Error managing chainhooks:', error.message);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Using JWT Authentication
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
const client = new ChainhooksClient({
|
|
186
|
+
baseUrl: CHAINHOOKS_BASE_URL.mainnet,
|
|
187
|
+
jwt: 'your-jwt-token-here',
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
try {
|
|
191
|
+
const result = await client.registerChainhook(chainhookDefinition);
|
|
192
|
+
console.log('Success:', result.uuid);
|
|
193
|
+
} catch (error) {
|
|
194
|
+
console.error('Failed:', error.message);
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Error Handling
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
const client = new ChainhooksClient({
|
|
202
|
+
baseUrl: CHAINHOOKS_BASE_URL.mainnet,
|
|
203
|
+
apiKey: 'your-key',
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
try {
|
|
207
|
+
const result = await client.registerChainhook(chainhookDefinition);
|
|
208
|
+
console.log('Success:', result.uuid);
|
|
209
|
+
} catch (error) {
|
|
210
|
+
console.error('Failed:', error.message);
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## TypeScript Support
|
|
215
|
+
|
|
216
|
+
This package is written in TypeScript and provides full type definitions. All API methods, request/response types, and configuration interfaces are fully typed.
|
|
217
|
+
|
|
218
|
+
## Contributing
|
|
219
|
+
|
|
220
|
+
Contributions are welcome! Please ensure all changes maintain type safety and include appropriate tests.
|
|
221
|
+
|
|
222
|
+
## License
|
|
223
|
+
|
|
224
|
+
Apache-2.0
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ApiStatusResponse, Chainhook, ChainhookDefinition, PaginatedChainhookResponse } from './schemas';
|
|
2
|
+
/**
|
|
3
|
+
* Network URLs for the Chainhooks Client
|
|
4
|
+
*/
|
|
5
|
+
export declare const CHAINHOOKS_BASE_URL: {
|
|
6
|
+
mainnet: string;
|
|
7
|
+
testnet: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for the Chainhooks Client
|
|
11
|
+
*/
|
|
12
|
+
export interface ChainhooksClientConfig {
|
|
13
|
+
/** Base URL to use when interacting with the Chainhooks API */
|
|
14
|
+
baseUrl: string;
|
|
15
|
+
/** API key to use */
|
|
16
|
+
apiKey?: string;
|
|
17
|
+
/** JSON Web Token to use */
|
|
18
|
+
jwt?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Pagination options for the Chainhooks Client
|
|
22
|
+
*/
|
|
23
|
+
export interface PaginationOptions {
|
|
24
|
+
/** Offset of the first item to return */
|
|
25
|
+
offset?: number;
|
|
26
|
+
/** Number of items to return */
|
|
27
|
+
limit?: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Chainhooks Client
|
|
31
|
+
*
|
|
32
|
+
* A TypeScript client for interacting with the Chainhooks API.
|
|
33
|
+
*/
|
|
34
|
+
export declare class ChainhooksClient {
|
|
35
|
+
private readonly config;
|
|
36
|
+
private readonly requestHeaders;
|
|
37
|
+
private readonly baseUrl;
|
|
38
|
+
constructor(config: ChainhooksClientConfig);
|
|
39
|
+
/**
|
|
40
|
+
* Register a new chainhook
|
|
41
|
+
*/
|
|
42
|
+
registerChainhook(definition: ChainhookDefinition): Promise<Chainhook>;
|
|
43
|
+
/**
|
|
44
|
+
* Get all chainhooks with pagination
|
|
45
|
+
*/
|
|
46
|
+
getChainhooks(options?: PaginationOptions): Promise<PaginatedChainhookResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* Get a specific chainhook by UUID
|
|
49
|
+
*/
|
|
50
|
+
getChainhook(uuid: string): Promise<Chainhook>;
|
|
51
|
+
/**
|
|
52
|
+
* Delete a chainhook by UUID
|
|
53
|
+
*/
|
|
54
|
+
deleteChainhook(uuid: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Get API status
|
|
57
|
+
*/
|
|
58
|
+
getStatus(): Promise<ApiStatusResponse>;
|
|
59
|
+
private request;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,WAAW,CAAC;AAGnB;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;CAG/B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AASD;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,sBAAsB;IAe1C;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ5E;;OAEG;IACG,aAAa,CACjB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,0BAA0B,CAAC;IAetC;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAOpD;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;YAO/B,OAAO;CAgCtB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChainhooksClient = exports.CHAINHOOKS_BASE_URL = void 0;
|
|
4
|
+
const undici_1 = require("undici");
|
|
5
|
+
/**
|
|
6
|
+
* Network URLs for the Chainhooks Client
|
|
7
|
+
*/
|
|
8
|
+
exports.CHAINHOOKS_BASE_URL = {
|
|
9
|
+
mainnet: 'https://api.mainnet.hiro.so',
|
|
10
|
+
testnet: 'https://api.testnet.hiro.so',
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Chainhooks Client
|
|
14
|
+
*
|
|
15
|
+
* A TypeScript client for interacting with the Chainhooks API.
|
|
16
|
+
*/
|
|
17
|
+
class ChainhooksClient {
|
|
18
|
+
config;
|
|
19
|
+
requestHeaders;
|
|
20
|
+
baseUrl;
|
|
21
|
+
constructor(config) {
|
|
22
|
+
this.config = config;
|
|
23
|
+
this.requestHeaders = {
|
|
24
|
+
'Content-Type': 'application/json',
|
|
25
|
+
Accept: 'application/json',
|
|
26
|
+
};
|
|
27
|
+
if (this.config.jwt) {
|
|
28
|
+
this.requestHeaders['Authorization'] = `Bearer ${this.config.jwt}`;
|
|
29
|
+
}
|
|
30
|
+
if (this.config.apiKey) {
|
|
31
|
+
this.requestHeaders['x-api-key'] = this.config.apiKey;
|
|
32
|
+
}
|
|
33
|
+
this.baseUrl = this.config.baseUrl;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Register a new chainhook
|
|
37
|
+
*/
|
|
38
|
+
async registerChainhook(definition) {
|
|
39
|
+
return this.request({
|
|
40
|
+
method: 'POST',
|
|
41
|
+
path: '/chainhooks/me',
|
|
42
|
+
body: JSON.stringify(definition),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get all chainhooks with pagination
|
|
47
|
+
*/
|
|
48
|
+
async getChainhooks(options = {}) {
|
|
49
|
+
const query = {};
|
|
50
|
+
if (options.offset !== undefined) {
|
|
51
|
+
query.offset = options.offset.toString();
|
|
52
|
+
}
|
|
53
|
+
if (options.limit !== undefined) {
|
|
54
|
+
query.limit = options.limit.toString();
|
|
55
|
+
}
|
|
56
|
+
return this.request({
|
|
57
|
+
method: 'GET',
|
|
58
|
+
path: '/chainhooks/me',
|
|
59
|
+
query,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get a specific chainhook by UUID
|
|
64
|
+
*/
|
|
65
|
+
async getChainhook(uuid) {
|
|
66
|
+
return this.request({
|
|
67
|
+
method: 'GET',
|
|
68
|
+
path: `/chainhooks/me/${uuid}`,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Delete a chainhook by UUID
|
|
73
|
+
*/
|
|
74
|
+
async deleteChainhook(uuid) {
|
|
75
|
+
await this.request({
|
|
76
|
+
method: 'DELETE',
|
|
77
|
+
path: `/chainhooks/me/${uuid}`,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get API status
|
|
82
|
+
*/
|
|
83
|
+
async getStatus() {
|
|
84
|
+
return this.request({
|
|
85
|
+
method: 'GET',
|
|
86
|
+
path: '/chainhooks',
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
async request(options) {
|
|
90
|
+
const { method, path, body, query } = options;
|
|
91
|
+
const url = new URL(path, this.baseUrl);
|
|
92
|
+
if (query) {
|
|
93
|
+
Object.entries(query).forEach(([key, value]) => {
|
|
94
|
+
url.searchParams.append(key, value.toString());
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
const { statusCode, body: responseBody } = await (0, undici_1.request)(url.toString(), {
|
|
98
|
+
method,
|
|
99
|
+
headers: this.requestHeaders,
|
|
100
|
+
body,
|
|
101
|
+
});
|
|
102
|
+
if (statusCode >= 400) {
|
|
103
|
+
let errorMessage;
|
|
104
|
+
try {
|
|
105
|
+
const errorData = (await responseBody.json());
|
|
106
|
+
errorMessage = errorData.error || `HTTP ${statusCode}`;
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
errorMessage = `HTTP ${statusCode}`;
|
|
110
|
+
}
|
|
111
|
+
throw new Error(`ChainhooksClient error: ${errorMessage}`);
|
|
112
|
+
}
|
|
113
|
+
if (statusCode === 204) {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
const data = await responseBody.json();
|
|
117
|
+
return data;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.ChainhooksClient = ChainhooksClient;
|
|
121
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./client"), exports);
|
|
18
|
+
__exportStar(require("./schemas"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B"}
|