@sogni-ai/sogni-client 0.2.5 → 0.3.1
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 +162 -6
- package/dist/Account/CurrentAccount.d.ts +8 -1
- package/dist/Account/CurrentAccount.js +4 -0
- package/dist/Account/CurrentAccount.js.map +1 -1
- package/dist/Account/index.d.ts +28 -0
- package/dist/Account/index.js +29 -1
- package/dist/Account/index.js.map +1 -1
- package/dist/ApiClient/WebSocketClient/index.d.ts +2 -1
- package/dist/ApiClient/WebSocketClient/index.js +8 -8
- package/dist/ApiClient/WebSocketClient/index.js.map +1 -1
- package/dist/ApiClient/index.d.ts +7 -1
- package/dist/ApiClient/index.js +5 -4
- package/dist/ApiClient/index.js.map +1 -1
- package/dist/Projects/Job.d.ts +6 -3
- package/dist/Projects/Job.js.map +1 -1
- package/dist/Projects/Project.d.ts +11 -5
- package/dist/Projects/Project.js +6 -0
- package/dist/Projects/Project.js.map +1 -1
- package/dist/Projects/index.d.ts +7 -8
- package/dist/Projects/index.js +26 -9
- package/dist/Projects/index.js.map +1 -1
- package/dist/Projects/types/index.d.ts +69 -2
- package/dist/events.d.ts +5 -0
- package/dist/events.js +3 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +42 -19
- package/dist/index.js +20 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/DataEntity.d.ts +3 -0
- package/dist/lib/DataEntity.js.map +1 -1
- package/dist/lib/DefaultLogger.d.ts +16 -0
- package/dist/lib/DefaultLogger.js +36 -0
- package/dist/lib/DefaultLogger.js.map +1 -0
- package/dist/lib/RestClient.d.ts +4 -2
- package/dist/lib/RestClient.js +3 -2
- package/dist/lib/RestClient.js.map +1 -1
- package/dist/lib/TypedEventEmitter.d.ts +4 -1
- package/dist/lib/TypedEventEmitter.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -1,8 +1,164 @@
|
|
|
1
|
-
#
|
|
2
|
-
This library provides
|
|
3
|
-
in both TypeScript and JavaScript projects
|
|
1
|
+
# Sogni SDK for JavaScript & Node.js
|
|
2
|
+
This library provides an easy way to interact with the [Sogni AI Supernet](https://www.sogni.ai/supernet) - a DePIN protocol for creative AI. It is written in TypeScript and can be used
|
|
3
|
+
in both TypeScript and JavaScript projects such as backend Node.js and browser environments.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Behind the scenes this SDK uses WebSocket connection for communication between clients, server, and workers. It harnesses an event-based API to interact with Supernet to make things super efficient.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
npm
|
|
7
|
+
## Installation
|
|
8
|
+
Add library to your project using npm or yarn:
|
|
9
|
+
```bash
|
|
10
|
+
npm install @sogni-ai/sogni-client
|
|
11
|
+
```
|
|
12
|
+
or
|
|
13
|
+
```bash
|
|
14
|
+
yarn add @sogni-ai/sogni-client
|
|
15
|
+
```
|
|
16
|
+
## Core concepts
|
|
17
|
+
In order to use Sogni Supernet you need an active Sogni account (in the form of a username and password) with a positive $tSOGNI balance.
|
|
18
|
+
You can create a free account in our [Web App](https://app.sogni.ai) or [Mac App](https://www.sogni.ai/studio) which will give you tokens just for signing up and confirming your email. You can get daily bonus tokens by claiming them (under rewards) each 24-hours.
|
|
19
|
+
|
|
20
|
+
Your account is tied to a [Base](https://www.base.org/) Wallet that is created during signup. The current network is [Base Sepolia](https://chainlist.org/chain/84532) and will be [Base Mainnet](https://chainlist.org/chain/8453) after mainnet launch.
|
|
21
|
+
|
|
22
|
+
The Library will use a default provider if none is provided, but note that it is not guaranteed to be always available. It is recommended to use your own Node endpoint such as alchemy.com (free and paid plans). You can specify your own node in `jsonRpcUrl` settings below.
|
|
23
|
+
|
|
24
|
+
### Supernet Types
|
|
25
|
+
There are 2 worker network types available:
|
|
26
|
+
- `fast` - this network runs on high-end GPUs and is optimized for speed. It is more expensive than `relaxed` network at roughly 1 $tSOGNI token per render.
|
|
27
|
+
- `relaxed` - this network runs on Apple Mac devices and is optimized for cost. It is cheaper than `fast` network at roughly 0.5 $tSOGNI token per render.
|
|
28
|
+
|
|
29
|
+
In both options the more complex your query is (the more steps) the higher the cost in tokens.
|
|
30
|
+
|
|
31
|
+
### Inference definitions: Projects and Jobs
|
|
32
|
+
One request for image generation is called a **Project**. Project can generate one or more images.
|
|
33
|
+
Each image is represented by a **Job**.
|
|
34
|
+
|
|
35
|
+
When you send a project to Supernet, it will be processed by one or more workers. The resulting images will be encrypted and
|
|
36
|
+
uploaded to Sogni servers where it will be stored for 24 hours. After this period images will be auto-deleted.
|
|
37
|
+
|
|
38
|
+
## Client initialization
|
|
39
|
+
To initialize client you need to provide `appId`, and account credentials.
|
|
40
|
+
|
|
41
|
+
```javascript
|
|
42
|
+
import { SogniClient } from '@sogni-ai/sogni-client';
|
|
43
|
+
|
|
44
|
+
const USERNAME = 'your-username';
|
|
45
|
+
const PASSWORD = 'your-password';
|
|
46
|
+
|
|
47
|
+
// If using default provider
|
|
48
|
+
const options = {
|
|
49
|
+
appId: 'your-app-id', // Required, must be unique string, UUID is recommended
|
|
50
|
+
network: 'fast', // Network to use, 'fast' or 'relaxed'
|
|
51
|
+
}
|
|
52
|
+
// If using custom provider
|
|
53
|
+
const options ={
|
|
54
|
+
appId: 'your-app-id', // Required, must be unique string, UUID is recommended
|
|
55
|
+
jsonRpcUrl: 'https://sepolia.base.org', // Put your custom JSON-RPC URL here
|
|
56
|
+
network: 'fast', // Network to use, 'fast' or 'relaxed'
|
|
57
|
+
}
|
|
58
|
+
const client = await SogniClient.createInstance(options);
|
|
59
|
+
// Login to Sogni account and establish WebSocket connection to Supernet
|
|
60
|
+
await client.login(USERNAME, PASSWORD);
|
|
61
|
+
// Now wait until list of available models is received.
|
|
62
|
+
// This step is only needed if you want to create project immediately.
|
|
63
|
+
const models = await client.waitForModels();
|
|
64
|
+
// You can get list of available models any time from `client.projects.availableModels`
|
|
65
|
+
```
|
|
66
|
+
**Important Note:**
|
|
67
|
+
- This sample assume you are using ES modules, which allow `await` on the top level, if you are CommomJS you will need to wrap `await` calls in an async function.
|
|
68
|
+
- Sogni is currently in Testnet phase, so you need to provide Base Sepolia network URL.
|
|
69
|
+
- `appId` must be unique string, UUID is recommended. It is used to identify your application.
|
|
70
|
+
- Only one connection per `appId` is allowed. If you try to connect with the same `appId` multiple times, the previous connection will be closed.
|
|
71
|
+
|
|
72
|
+
## Usage
|
|
73
|
+
After calling `login` method, the client will establish a WebSocket connection to Sogni Supernet. Within a short period of time the
|
|
74
|
+
client will receive current balance and list of available models. After this you can start using the client to generate images.
|
|
75
|
+
|
|
76
|
+
### Creating project
|
|
77
|
+
```javascript
|
|
78
|
+
// Find model that has the most workers
|
|
79
|
+
const mostPopularModel = client.projects.availableModels.reduce((a, b) =>
|
|
80
|
+
a.workerCount > b.workerCount ? a : b
|
|
81
|
+
);
|
|
82
|
+
// Create a project using the most popular model
|
|
83
|
+
const project = await client.projects.create({
|
|
84
|
+
modelId: mostPopularModel.id,
|
|
85
|
+
positivePrompt: 'A cat wearing a hat',
|
|
86
|
+
negativePrompt:
|
|
87
|
+
'malformation, bad anatomy, bad hands, missing fingers, cropped, low quality, bad quality, jpeg artifacts, watermark',
|
|
88
|
+
stylePrompt: 'anime',
|
|
89
|
+
steps: 20,
|
|
90
|
+
guidance: 7.5,
|
|
91
|
+
numberOfImages: 1
|
|
92
|
+
});
|
|
93
|
+
```
|
|
94
|
+
**Note:** Full project parameter list can be found in [ProjectParams](https://sogni-ai.github.io/sogni-client/interfaces/ProjectParams.html) docs.
|
|
95
|
+
|
|
96
|
+
### Getting project status and results
|
|
97
|
+
In general there are 2 ways to work with API:
|
|
98
|
+
1. Using promises or `async/await` syntax.
|
|
99
|
+
2. Listening events on `Project` and `Job` class instances.
|
|
100
|
+
|
|
101
|
+
#### Using promises
|
|
102
|
+
```javascript
|
|
103
|
+
const project = await client.projects.create({
|
|
104
|
+
modelId: mostPopularModel.id,
|
|
105
|
+
steps: 20,
|
|
106
|
+
guidance: 7.5,
|
|
107
|
+
positivePrompt: 'A cat wearing a hat',
|
|
108
|
+
negativePrompt:
|
|
109
|
+
'malformation, bad anatomy, bad hands, missing fingers, cropped, low quality, bad quality, jpeg artifacts, watermark',
|
|
110
|
+
stylePrompt: 'anime',
|
|
111
|
+
numberOfImages: 4
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
project.on('progress', (progress) => {
|
|
115
|
+
console.log('Project progress:', progress);
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
const imageUrls = await project.waitForCompletion();
|
|
119
|
+
// Now you can use image URLs to download images.
|
|
120
|
+
// Note that images will be available for 24 hours only!
|
|
121
|
+
console.log('Image URLs:', imageUrls);
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
#### Using events
|
|
125
|
+
```javascript
|
|
126
|
+
const project = await client.projects.create({
|
|
127
|
+
modelId: mostPopularModel.id,
|
|
128
|
+
steps: 20,
|
|
129
|
+
guidance: 7.5,
|
|
130
|
+
positivePrompt: 'A cat wearing a hat',
|
|
131
|
+
negativePrompt:
|
|
132
|
+
'malformation, bad anatomy, bad hands, missing fingers, cropped, low quality, bad quality, jpeg artifacts, watermark',
|
|
133
|
+
stylePrompt: 'anime',
|
|
134
|
+
numberOfImages: 4
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
// Fired when one of project jobs completed, you can get the resultUrl from the job
|
|
138
|
+
// without waiting for the entire project to complete
|
|
139
|
+
project.on('jobCompleted', (job) => {
|
|
140
|
+
console.log('Job completed:', job.id, job.resultUrl);
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// Fired when one of project jobs failed
|
|
144
|
+
project.on('jobFailed', (job) => {
|
|
145
|
+
console.log('Job failed:', job.id, job.error);
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
// Receive project completion percentage in real-time
|
|
149
|
+
project.on('progress', (progress) => {
|
|
150
|
+
// console.log('Project progress:', progress);
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
// Fired when the project is fully completed
|
|
154
|
+
project.on('completed', async (images) => {
|
|
155
|
+
console.log('Project completed:', images);
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
// Fired when the project failed
|
|
159
|
+
project.on('failed', async (errorData) => {
|
|
160
|
+
console.log('Project failed:', errorData);
|
|
161
|
+
});
|
|
162
|
+
```
|
|
163
|
+
## Code examples
|
|
164
|
+
You can find more code examples in the [examples](./examples) directory.
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import DataEntity from '../lib/DataEntity';
|
|
2
2
|
import { BalanceData } from './types';
|
|
3
3
|
import { SupernetType } from '../ApiClient/WebSocketClient/types';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* @inline
|
|
6
|
+
*/
|
|
7
|
+
export interface AccountData {
|
|
5
8
|
token: string | null;
|
|
6
9
|
networkStatus: 'connected' | 'disconnected' | 'connecting';
|
|
7
10
|
network: SupernetType | null;
|
|
@@ -10,6 +13,10 @@ interface AccountData {
|
|
|
10
13
|
expiresAt?: Date;
|
|
11
14
|
username?: string;
|
|
12
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Current account data.
|
|
18
|
+
* @expand
|
|
19
|
+
*/
|
|
13
20
|
declare class CurrentAccount extends DataEntity<AccountData> {
|
|
14
21
|
constructor(data?: AccountData);
|
|
15
22
|
_update<K extends keyof AccountData>(delta: Partial<AccountData>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrentAccount.js","sourceRoot":"","sources":["../../src/Account/CurrentAccount.ts"],"names":[],"mappings":";;;;;AAAA,mEAA2C;AAE3C,2CAAuC;
|
|
1
|
+
{"version":3,"file":"CurrentAccount.js","sourceRoot":"","sources":["../../src/Account/CurrentAccount.ts"],"names":[],"mappings":";;;;;AAAA,mEAA2C;AAE3C,2CAAuC;AAevC,SAAS,WAAW;IAClB,OAAO;QACL,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,cAAc;QAC7B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,GAAG;SACb;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,IAAI,GAAG,IAAA,sBAAS,EAA0D,KAAK,CAAC,CAAC;IACvF,OAAO;QACL,aAAa,EAAE,IAAI,CAAC,IAAI;QACxB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,cAAe,SAAQ,oBAAuB;IAClD,YAAY,IAAkB;QAC5B,KAAK,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAA8B,KAA2B;QAC9D,IAAI,CAAC,IAAI,mCAAQ,IAAI,CAAC,IAAI,GAAM,KAA8B,CAAE,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACxF,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;CACF;AAED,kBAAe,cAAc,CAAC"}
|
package/dist/Account/index.d.ts
CHANGED
|
@@ -4,6 +4,9 @@ import { Wallet } from 'ethers';
|
|
|
4
4
|
import { ApiReponse } from '../ApiClient';
|
|
5
5
|
import CurrentAccount from './CurrentAccount';
|
|
6
6
|
import { SupernetType } from '../ApiClient/WebSocketClient/types';
|
|
7
|
+
/**
|
|
8
|
+
* Account API methods that let you interact with the user's account.
|
|
9
|
+
*/
|
|
7
10
|
declare class AccountApi extends ApiGroup {
|
|
8
11
|
readonly currentAccount: CurrentAccount;
|
|
9
12
|
constructor(config: ApiConfig);
|
|
@@ -14,15 +17,40 @@ declare class AccountApi extends ApiGroup {
|
|
|
14
17
|
getWallet(username: string, password: string): Wallet;
|
|
15
18
|
create(username: string, email: string, password: string, subscribe?: boolean, referralCode?: string): Promise<AccountCreateData>;
|
|
16
19
|
setToken(username: string, token: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Login with username and password. WebSocket connection is established after successful login.
|
|
22
|
+
* @param username
|
|
23
|
+
* @param password
|
|
24
|
+
*/
|
|
17
25
|
login(username: string, password: string): Promise<LoginData>;
|
|
26
|
+
/**
|
|
27
|
+
* Logout the user and close the WebSocket connection.
|
|
28
|
+
*/
|
|
18
29
|
logout(): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Refresh the balance of the current account.
|
|
32
|
+
*/
|
|
19
33
|
refreshBalance(): Promise<BalanceData>;
|
|
34
|
+
/**
|
|
35
|
+
* Get the balance of a account wallet.
|
|
36
|
+
* @param walletAddress
|
|
37
|
+
*/
|
|
20
38
|
walletBalance(walletAddress: string): Promise<{
|
|
21
39
|
token: string;
|
|
22
40
|
ether: string;
|
|
23
41
|
}>;
|
|
24
42
|
validateUsername(username: string): Promise<import("../ApiClient").ApiErrorResponse | ApiReponse<undefined>>;
|
|
43
|
+
/**
|
|
44
|
+
* Switch between fast and relaxed networks.
|
|
45
|
+
* Note: This method will close the current WebSocket connection and establish a new one.
|
|
46
|
+
* Do not call this method if you have any active projects.
|
|
47
|
+
* @param network
|
|
48
|
+
*/
|
|
25
49
|
switchNetwork(network: SupernetType): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Get the transaction history of the current account.
|
|
52
|
+
* @param params
|
|
53
|
+
*/
|
|
26
54
|
transactionHistory(params: TxHistoryParams): Promise<{
|
|
27
55
|
entries: TxHistoryEntry[];
|
|
28
56
|
next: TxHistoryParams;
|
package/dist/Account/index.js
CHANGED
|
@@ -16,6 +16,9 @@ const ApiGroup_1 = __importDefault(require("../ApiGroup"));
|
|
|
16
16
|
const ethers_1 = require("ethers");
|
|
17
17
|
const ApiClient_1 = require("../ApiClient");
|
|
18
18
|
const CurrentAccount_1 = __importDefault(require("./CurrentAccount"));
|
|
19
|
+
/**
|
|
20
|
+
* Account API methods that let you interact with the user's account.
|
|
21
|
+
*/
|
|
19
22
|
class AccountApi extends ApiGroup_1.default {
|
|
20
23
|
constructor(config) {
|
|
21
24
|
super(config);
|
|
@@ -75,6 +78,11 @@ class AccountApi extends ApiGroup_1.default {
|
|
|
75
78
|
username
|
|
76
79
|
});
|
|
77
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Login with username and password. WebSocket connection is established after successful login.
|
|
83
|
+
* @param username
|
|
84
|
+
* @param password
|
|
85
|
+
*/
|
|
78
86
|
login(username, password) {
|
|
79
87
|
return __awaiter(this, void 0, void 0, function* () {
|
|
80
88
|
const wallet = this.getWallet(username, password);
|
|
@@ -91,15 +99,21 @@ class AccountApi extends ApiGroup_1.default {
|
|
|
91
99
|
return res.data;
|
|
92
100
|
});
|
|
93
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Logout the user and close the WebSocket connection.
|
|
104
|
+
*/
|
|
94
105
|
logout() {
|
|
95
106
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
107
|
this.client.rest.post('/v1/account/logout').catch((e) => {
|
|
97
|
-
|
|
108
|
+
this.client.logger.error('Failed to logout', e);
|
|
98
109
|
});
|
|
99
110
|
this.client.removeAuth();
|
|
100
111
|
this.currentAccount._clear();
|
|
101
112
|
});
|
|
102
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Refresh the balance of the current account.
|
|
116
|
+
*/
|
|
103
117
|
refreshBalance() {
|
|
104
118
|
return __awaiter(this, void 0, void 0, function* () {
|
|
105
119
|
const res = yield this.client.rest.get('/v1/account/balance');
|
|
@@ -107,6 +121,10 @@ class AccountApi extends ApiGroup_1.default {
|
|
|
107
121
|
return res.data;
|
|
108
122
|
});
|
|
109
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Get the balance of a account wallet.
|
|
126
|
+
* @param walletAddress
|
|
127
|
+
*/
|
|
110
128
|
walletBalance(walletAddress) {
|
|
111
129
|
return __awaiter(this, void 0, void 0, function* () {
|
|
112
130
|
const res = yield this.client.rest.get('/v1/wallet/balance', {
|
|
@@ -133,6 +151,12 @@ class AccountApi extends ApiGroup_1.default {
|
|
|
133
151
|
}
|
|
134
152
|
});
|
|
135
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Switch between fast and relaxed networks.
|
|
156
|
+
* Note: This method will close the current WebSocket connection and establish a new one.
|
|
157
|
+
* Do not call this method if you have any active projects.
|
|
158
|
+
* @param network
|
|
159
|
+
*/
|
|
136
160
|
switchNetwork(network) {
|
|
137
161
|
return __awaiter(this, void 0, void 0, function* () {
|
|
138
162
|
this.currentAccount._update({
|
|
@@ -142,6 +166,10 @@ class AccountApi extends ApiGroup_1.default {
|
|
|
142
166
|
this.client.socket.switchNetwork(network);
|
|
143
167
|
});
|
|
144
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Get the transaction history of the current account.
|
|
171
|
+
* @param params
|
|
172
|
+
*/
|
|
145
173
|
transactionHistory(params) {
|
|
146
174
|
return __awaiter(this, void 0, void 0, function* () {
|
|
147
175
|
const res = yield this.client.rest.get('/v1/transactions/list', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Account/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Account/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,14 @@ import { MessageType, SocketMessageMap } from './messages';
|
|
|
2
2
|
import { SocketEventMap } from './events';
|
|
3
3
|
import RestClient, { AuthData } from '../../lib/RestClient';
|
|
4
4
|
import { SupernetType } from './types';
|
|
5
|
+
import { Logger } from '../../lib/DefaultLogger';
|
|
5
6
|
declare class WebSocketClient extends RestClient<SocketEventMap> {
|
|
6
7
|
appId: string;
|
|
7
8
|
baseUrl: string;
|
|
8
9
|
private socket;
|
|
9
10
|
private _supernetType;
|
|
10
11
|
private _pingInterval;
|
|
11
|
-
constructor(baseUrl: string, appId: string, supernetType
|
|
12
|
+
constructor(baseUrl: string, appId: string, supernetType: SupernetType, logger: Logger);
|
|
12
13
|
set auth(auth: AuthData | null);
|
|
13
14
|
get supernetType(): SupernetType;
|
|
14
15
|
get isConnected(): boolean;
|
|
@@ -20,8 +20,8 @@ const js_cookie_1 = __importDefault(require("js-cookie"));
|
|
|
20
20
|
const version_1 = require("../../version");
|
|
21
21
|
const PING_INTERVAL = 15000;
|
|
22
22
|
class WebSocketClient extends RestClient_1.default {
|
|
23
|
-
constructor(baseUrl, appId, supernetType
|
|
24
|
-
super(baseUrl);
|
|
23
|
+
constructor(baseUrl, appId, supernetType, logger) {
|
|
24
|
+
super(baseUrl, logger);
|
|
25
25
|
this.socket = null;
|
|
26
26
|
this._pingInterval = null;
|
|
27
27
|
this.appId = appId;
|
|
@@ -126,7 +126,7 @@ class WebSocketClient extends RestClient_1.default {
|
|
|
126
126
|
}
|
|
127
127
|
let attempts = 10;
|
|
128
128
|
while (((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === isomorphic_ws_1.default.CONNECTING) {
|
|
129
|
-
|
|
129
|
+
this._logger.info('Waiting for WebSocket connection...');
|
|
130
130
|
yield new Promise((resolve) => setTimeout(resolve, 1000));
|
|
131
131
|
attempts--;
|
|
132
132
|
if (attempts === 0) {
|
|
@@ -146,7 +146,7 @@ class WebSocketClient extends RestClient_1.default {
|
|
|
146
146
|
}
|
|
147
147
|
handleClose(e) {
|
|
148
148
|
if (e.target === this.socket) {
|
|
149
|
-
|
|
149
|
+
this._logger.info('WebSocket disconnected, cleanup', e);
|
|
150
150
|
this.disconnect();
|
|
151
151
|
this.emit('disconnected', {
|
|
152
152
|
code: e.code,
|
|
@@ -155,7 +155,7 @@ class WebSocketClient extends RestClient_1.default {
|
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
handleError(e) {
|
|
158
|
-
|
|
158
|
+
this._logger.error('WebSocket error:', e);
|
|
159
159
|
}
|
|
160
160
|
handleMessage(e) {
|
|
161
161
|
let dataPromise;
|
|
@@ -180,17 +180,17 @@ class WebSocketClient extends RestClient_1.default {
|
|
|
180
180
|
payload[idKey] = payload[idKey].toUpperCase();
|
|
181
181
|
}
|
|
182
182
|
});
|
|
183
|
-
|
|
183
|
+
this._logger.debug('WebSocket:', data.type, payload);
|
|
184
184
|
this.emit(data.type, payload);
|
|
185
185
|
})
|
|
186
186
|
.catch((err) => {
|
|
187
|
-
|
|
187
|
+
this._logger.error('Failed to parse WebSocket message:', err);
|
|
188
188
|
});
|
|
189
189
|
}
|
|
190
190
|
send(messageType, data) {
|
|
191
191
|
return __awaiter(this, void 0, void 0, function* () {
|
|
192
192
|
yield this.waitForConnection();
|
|
193
|
-
|
|
193
|
+
this._logger.debug('WebSocket send:', messageType, data);
|
|
194
194
|
this.socket.send(JSON.stringify({ type: messageType, data: (0, base64_1.base64Encode)(JSON.stringify(data)) }));
|
|
195
195
|
});
|
|
196
196
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,sEAA4D;AAE5D,kEAAgF;AAChF,6CAA8D;AAC9D,kEAA0C;AAC1C,0DAA+B;AAC/B,2CAA4C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,12 @@ import { ApiClientEvents } from './events';
|
|
|
5
5
|
import { ServerConnectData, ServerDisconnectData } from './WebSocketClient/events';
|
|
6
6
|
import { JSONValue } from '../types/json';
|
|
7
7
|
import { SupernetType } from './WebSocketClient/types';
|
|
8
|
+
import { Logger } from '../lib/DefaultLogger';
|
|
8
9
|
export interface ApiReponse<D = JSONValue> {
|
|
9
10
|
status: 'success';
|
|
10
11
|
data: D;
|
|
11
12
|
}
|
|
13
|
+
/** @inline */
|
|
12
14
|
export interface ApiErrorResponse {
|
|
13
15
|
status: 'error';
|
|
14
16
|
message: string;
|
|
@@ -19,6 +21,9 @@ export declare class ApiError extends Error {
|
|
|
19
21
|
payload: ApiErrorResponse;
|
|
20
22
|
constructor(status: number, payload: ApiErrorResponse);
|
|
21
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* @inline
|
|
26
|
+
*/
|
|
22
27
|
interface AuthData {
|
|
23
28
|
token: string;
|
|
24
29
|
walletAddress: string;
|
|
@@ -26,11 +31,12 @@ interface AuthData {
|
|
|
26
31
|
}
|
|
27
32
|
declare class ApiClient extends TypedEventEmitter<ApiClientEvents> {
|
|
28
33
|
readonly appId: string;
|
|
34
|
+
readonly logger: Logger;
|
|
29
35
|
private _rest;
|
|
30
36
|
private _socket;
|
|
31
37
|
private _auth;
|
|
32
38
|
private _reconnectAttempts;
|
|
33
|
-
constructor(baseUrl: string, socketUrl: string, appId: string, networkType: SupernetType);
|
|
39
|
+
constructor(baseUrl: string, socketUrl: string, appId: string, networkType: SupernetType, logger: Logger);
|
|
34
40
|
get isAuthenticated(): boolean;
|
|
35
41
|
get auth(): AuthData | null;
|
|
36
42
|
get socket(): WebSocketClient;
|
package/dist/ApiClient/index.js
CHANGED
|
@@ -19,13 +19,14 @@ class ApiError extends Error {
|
|
|
19
19
|
}
|
|
20
20
|
exports.ApiError = ApiError;
|
|
21
21
|
class ApiClient extends TypedEventEmitter_1.default {
|
|
22
|
-
constructor(baseUrl, socketUrl, appId, networkType) {
|
|
22
|
+
constructor(baseUrl, socketUrl, appId, networkType, logger) {
|
|
23
23
|
super();
|
|
24
24
|
this._auth = null;
|
|
25
25
|
this._reconnectAttempts = WS_RECONNECT_ATTEMPTS;
|
|
26
26
|
this.appId = appId;
|
|
27
|
-
this.
|
|
28
|
-
this.
|
|
27
|
+
this.logger = logger;
|
|
28
|
+
this._rest = new RestClient_1.default(baseUrl, logger);
|
|
29
|
+
this._socket = new WebSocketClient_1.default(socketUrl, appId, networkType, logger);
|
|
29
30
|
this._socket.on('connected', this.handleSocketConnect.bind(this));
|
|
30
31
|
this._socket.on('disconnected', this.handleSocketDisconnect.bind(this));
|
|
31
32
|
}
|
|
@@ -64,7 +65,7 @@ class ApiClient extends TypedEventEmitter_1.default {
|
|
|
64
65
|
if (!data.code || (0, ErrorCode_1.isNotRecoverable)(data.code)) {
|
|
65
66
|
this.removeAuth();
|
|
66
67
|
this.emit('disconnected', data);
|
|
67
|
-
|
|
68
|
+
this.logger.error('Not recoverable socket error', data);
|
|
68
69
|
return;
|
|
69
70
|
}
|
|
70
71
|
if (this._reconnectAttempts <= 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ApiClient/index.ts"],"names":[],"mappings":";;;;;;AAAA,mEAA2C;AAC3C,wEAAgD;AAChD,2CAAuC;AACvC,iFAAyD;AAGzD,2DAA+D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ApiClient/index.ts"],"names":[],"mappings":"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"}
|
package/dist/Projects/Job.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import DataEntity, { EntityEvents } from '../lib/DataEntity';
|
|
2
2
|
import ErrorData from '../types/ErrorData';
|
|
3
3
|
export type JobStatus = 'pending' | 'initiating' | 'processing' | 'completed' | 'failed' | 'canceled';
|
|
4
|
+
/**
|
|
5
|
+
* @inline
|
|
6
|
+
*/
|
|
4
7
|
export interface JobData {
|
|
5
8
|
id: string;
|
|
6
9
|
status: JobStatus;
|
|
@@ -13,12 +16,12 @@ export interface JobData {
|
|
|
13
16
|
resultUrl?: string | null;
|
|
14
17
|
error?: ErrorData;
|
|
15
18
|
}
|
|
16
|
-
interface
|
|
19
|
+
export interface JobEventMap extends EntityEvents {
|
|
17
20
|
progress: number;
|
|
18
21
|
completed: string;
|
|
19
|
-
failed:
|
|
22
|
+
failed: ErrorData;
|
|
20
23
|
}
|
|
21
|
-
declare class Job extends DataEntity<JobData,
|
|
24
|
+
declare class Job extends DataEntity<JobData, JobEventMap> {
|
|
22
25
|
constructor(data: JobData);
|
|
23
26
|
get id(): string;
|
|
24
27
|
/**
|
package/dist/Projects/Job.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":";;;;;AAAA,mEAA6D;
|
|
1
|
+
{"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":";;;;;AAAA,mEAA6D;AAiC7D,MAAM,GAAI,SAAQ,oBAAgC;IAChD,YAAY,IAAa;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACrD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEO,aAAa,CAAC,IAAc;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAU,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF;AAED,kBAAe,GAAG,CAAC"}
|
|
@@ -3,7 +3,10 @@ import DataEntity, { EntityEvents } from '../lib/DataEntity';
|
|
|
3
3
|
import { ProjectParams } from './types';
|
|
4
4
|
import ErrorData from '../types/ErrorData';
|
|
5
5
|
export type ProjectStatus = 'pending' | 'queued' | 'processing' | 'completed' | 'failed';
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* @inline
|
|
8
|
+
*/
|
|
9
|
+
export interface ProjectData {
|
|
7
10
|
id: string;
|
|
8
11
|
startedAt: Date;
|
|
9
12
|
params: ProjectParams;
|
|
@@ -11,15 +14,18 @@ interface ProjectData {
|
|
|
11
14
|
status: ProjectStatus;
|
|
12
15
|
error?: ErrorData;
|
|
13
16
|
}
|
|
14
|
-
|
|
17
|
+
/** @inline */
|
|
18
|
+
export interface SerializedProject extends ProjectData {
|
|
15
19
|
jobs: JobData[];
|
|
16
20
|
}
|
|
17
|
-
interface
|
|
21
|
+
export interface ProjectEventMap extends EntityEvents {
|
|
18
22
|
progress: number;
|
|
19
23
|
completed: string[];
|
|
20
|
-
failed:
|
|
24
|
+
failed: ErrorData;
|
|
25
|
+
jobCompleted: Job;
|
|
26
|
+
jobFailed: Job;
|
|
21
27
|
}
|
|
22
|
-
declare class Project extends DataEntity<ProjectData,
|
|
28
|
+
declare class Project extends DataEntity<ProjectData, ProjectEventMap> {
|
|
23
29
|
private _jobs;
|
|
24
30
|
private _lastEmitedProgress;
|
|
25
31
|
constructor(data: ProjectParams);
|
package/dist/Projects/Project.js
CHANGED
|
@@ -120,6 +120,12 @@ class Project extends DataEntity_1.default {
|
|
|
120
120
|
job.on('updated', () => {
|
|
121
121
|
this.emit('updated', ['jobs']);
|
|
122
122
|
});
|
|
123
|
+
job.on('completed', () => {
|
|
124
|
+
this.emit('jobCompleted', job);
|
|
125
|
+
});
|
|
126
|
+
job.on('failed', () => {
|
|
127
|
+
this.emit('jobFailed', job);
|
|
128
|
+
});
|
|
123
129
|
return job;
|
|
124
130
|
}
|
|
125
131
|
/**
|