@mysten/docs 0.1.12 → 0.1.14
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/dist/walrus/index.md +130 -137
- package/package.json +10 -10
package/dist/walrus/index.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
> Store and retrieve blobs on Walrus decentralized storage
|
|
4
4
|
|
|
5
|
+
The Walrus TypeScript SDK works directly with Walrus storage nodes or with the Walrus upload relay.
|
|
6
|
+
When you use the Walrus SDK without an upload relay, reading and writing Walrus blobs requires many
|
|
7
|
+
requests (approximately 2200 to write a blob and approximately 335 to read a blob). The upload relay
|
|
8
|
+
reduces the number of requests needed to write a blob, but reads through the Walrus SDK still
|
|
9
|
+
require many requests. For many applications, using publishers and aggregators is recommended, but
|
|
10
|
+
the TypeScript SDK is useful when building applications where the application needs to directly
|
|
11
|
+
interact with Walrus, or when users need to pay for their own storage directly.
|
|
12
|
+
|
|
13
|
+
The Walrus SDK exposes high-level methods for reading and writing blobs, as well as lower-level
|
|
14
|
+
methods for the individual steps in the process. You can use the lower-level methods to implement
|
|
15
|
+
more complex flows when you want more control over optimization.
|
|
16
|
+
|
|
5
17
|
## Installation
|
|
6
18
|
|
|
7
19
|
```bash npm2yarn
|
|
@@ -10,8 +22,8 @@ npm install --save @mysten/walrus @mysten/sui
|
|
|
10
22
|
|
|
11
23
|
## Setup
|
|
12
24
|
|
|
13
|
-
To use the
|
|
14
|
-
|
|
25
|
+
To use the Walrus SDK, you need to create a client from the TypeScript SDK and extend it with the
|
|
26
|
+
Walrus SDK.
|
|
15
27
|
|
|
16
28
|
```ts
|
|
17
29
|
|
|
@@ -21,9 +33,9 @@ const client = new SuiGrpcClient({
|
|
|
21
33
|
}).$extend(walrus());
|
|
22
34
|
```
|
|
23
35
|
|
|
24
|
-
The
|
|
25
|
-
|
|
26
|
-
|
|
36
|
+
The Walrus SDK includes all the relevant package and object IDs needed for connecting to Testnet.
|
|
37
|
+
You can also manually configure the Walrus SDK to use a different set of IDs, allowing you to
|
|
38
|
+
connect to a different network or updated deployment of the Walrus contracts.
|
|
27
39
|
|
|
28
40
|
```ts
|
|
29
41
|
|
|
@@ -40,7 +52,7 @@ const client = new SuiGrpcClient({
|
|
|
40
52
|
);
|
|
41
53
|
```
|
|
42
54
|
|
|
43
|
-
|
|
55
|
+
Some environments require you to customize how data is fetched:
|
|
44
56
|
|
|
45
57
|
```ts
|
|
46
58
|
|
|
@@ -60,37 +72,22 @@ const client = new SuiGrpcClient({
|
|
|
60
72
|
);
|
|
61
73
|
```
|
|
62
74
|
|
|
63
|
-
|
|
64
|
-
any other desired behavior.
|
|
65
|
-
|
|
66
|
-
## SDK Overview
|
|
67
|
-
|
|
68
|
-
The Walrus TS SDK is designed to work directly with walrus storage nodes, or with the walrus upload
|
|
69
|
-
relay. When using the walrus SDK without an upload relay, it is important to understand that reading
|
|
70
|
-
and writing walrus blobs requires a lot of requests (~2200 to write a blob, ~335 to read a blob).
|
|
71
|
-
The upload relay will reduce the number of requests needed to write a blob, but reads through the
|
|
72
|
-
walrus SDK will still require a lot of requests. For many applications, using publishers and
|
|
73
|
-
aggregators is recommended, but the TS SDK can be useful when building applications where the
|
|
74
|
-
application needs to directly interact with walrus or users need to pay for their own storage
|
|
75
|
-
directly.
|
|
76
|
-
|
|
77
|
-
The walrus sdk exposes high level methods for reading and writing blobs, as well as lower level
|
|
78
|
-
methods for the individual steps in the process that can be used to implement more complex flows
|
|
79
|
-
when you want more control to implement more optimized implementations.
|
|
75
|
+
You can use this approach to implement a fetch function with custom timeouts, rate limits, retry
|
|
76
|
+
logic, or any other desired behavior.
|
|
80
77
|
|
|
81
|
-
##
|
|
78
|
+
## `WalrusFile` API
|
|
82
79
|
|
|
83
|
-
The `WalrusFile` API provides a higher
|
|
84
|
-
about how data is stored in
|
|
85
|
-
|
|
80
|
+
The `WalrusFile` API provides a higher-level abstraction so that applications do not need to worry
|
|
81
|
+
about how data is stored in Walrus. It handles data stored directly in blobs and data stored in
|
|
82
|
+
quilts, but might expand to cover other storage patterns in the future.
|
|
86
83
|
|
|
87
84
|
### Reading files
|
|
88
85
|
|
|
89
|
-
To read files,
|
|
90
|
-
|
|
86
|
+
To read files, use the `getFiles` method. This method accepts both blob IDs and quilt IDs, and
|
|
87
|
+
returns a `WalrusFile`.
|
|
91
88
|
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
Read files in batches when possible, which allows the client to be more efficient when loading
|
|
90
|
+
multiple files from the same quilt.
|
|
94
91
|
|
|
95
92
|
```ts
|
|
96
93
|
const [file1, file2] = await client.walrus.getFiles({ ids: [anyBlobId, orQuiltId] });
|
|
@@ -107,17 +104,16 @@ const text = await file1.text();
|
|
|
107
104
|
const json = await file2.json();
|
|
108
105
|
```
|
|
109
106
|
|
|
110
|
-
A `WalrusFile`
|
|
111
|
-
quilt.
|
|
107
|
+
A `WalrusFile` might also have `identifier` and `tags` properties if the file was stored in a quilt.
|
|
112
108
|
|
|
113
109
|
```ts
|
|
114
110
|
const identifier: string | null = await file1.getIdentifier();
|
|
115
111
|
const tags: Record<string, string> = await file1.getTags();
|
|
116
112
|
```
|
|
117
113
|
|
|
118
|
-
|
|
114
|
+
#### `WalrusBlob`
|
|
119
115
|
|
|
120
|
-
You can also get a `WalrusBlob` instead of a `WalrusFile` if you have the blobId
|
|
116
|
+
You can also get a `WalrusBlob` instead of a `WalrusFile` if you have the `blobId`:
|
|
121
117
|
|
|
122
118
|
```ts
|
|
123
119
|
const blob = await client.walrus.getBlob({ blobId });
|
|
@@ -138,8 +134,8 @@ const filesById = await blob.files({ ids: [quiltID] });
|
|
|
138
134
|
|
|
139
135
|
### Writing files
|
|
140
136
|
|
|
141
|
-
You can also construct a `WalrusFile` from a `Uint8Array`, `Blob`, or a `string
|
|
142
|
-
|
|
137
|
+
You can also construct a `WalrusFile` from a `Uint8Array`, `Blob`, or a `string`, which you can then
|
|
138
|
+
store on Walrus:
|
|
143
139
|
|
|
144
140
|
```ts
|
|
145
141
|
const file1 = WalrusFile.from({
|
|
@@ -159,15 +155,15 @@ const file3 = WalrusFile.from({
|
|
|
159
155
|
});
|
|
160
156
|
```
|
|
161
157
|
|
|
162
|
-
|
|
158
|
+
After you have your files, use the `writeFiles` method to write them to Walrus.
|
|
163
159
|
|
|
164
|
-
Along with the files, you
|
|
165
|
-
transaction
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
160
|
+
Along with the files, you also need to provide a `Signer` instance that signs and pays for the
|
|
161
|
+
transaction and storage fees. The signer's address needs sufficient SUI to cover the transactions
|
|
162
|
+
that register the blob and certify its availability after upload. The signer must own sufficient WAL
|
|
163
|
+
to pay to store the blob for the specified number of epochs, as well as the write fee for writing
|
|
164
|
+
the blob.
|
|
169
165
|
|
|
170
|
-
The exact costs
|
|
166
|
+
The exact costs depend on the size of the blobs, as well as the current gas and storage prices.
|
|
171
167
|
|
|
172
168
|
```ts
|
|
173
169
|
const results: {
|
|
@@ -182,32 +178,32 @@ const results: {
|
|
|
182
178
|
});
|
|
183
179
|
```
|
|
184
180
|
|
|
185
|
-
|
|
186
|
-
|
|
181
|
+
The provided files are all written into a single quilt. Future versions of the SDK might optimize
|
|
182
|
+
how files are stored to be more efficient by splitting files into multiple quilts.
|
|
187
183
|
|
|
188
184
|
The current quilt encoding is less efficient for single files, so writing multiple files together is
|
|
189
185
|
recommended when possible. Writing raw blobs directly is also possible using the `writeBlob` API
|
|
190
|
-
|
|
186
|
+
described below.
|
|
191
187
|
|
|
192
|
-
|
|
188
|
+
#### Writing files in browser environments
|
|
193
189
|
|
|
194
|
-
When the transactions to upload a blob are signed by a wallet in a browser, some wallets
|
|
195
|
-
|
|
196
|
-
interaction,
|
|
190
|
+
When the transactions to upload a blob are signed by a wallet in a browser, some wallets use popups
|
|
191
|
+
to prompt you for a signature. If the popups are not opened in direct response to a user
|
|
192
|
+
interaction, the browser might block them.
|
|
197
193
|
|
|
198
|
-
To avoid this,
|
|
199
|
-
|
|
194
|
+
To avoid this, execute the transactions that register and certify the blob in separate event
|
|
195
|
+
handlers by creating separate buttons for each step.
|
|
200
196
|
|
|
201
197
|
The `client.writeFilesFlow` method returns an object with a set of methods that break the write flow
|
|
202
198
|
into several smaller steps:
|
|
203
199
|
|
|
204
|
-
1. `encode
|
|
205
|
-
2. `register
|
|
206
|
-
3. `upload
|
|
207
|
-
4. `certify
|
|
208
|
-
5. `listFiles
|
|
200
|
+
1. `encode`: Encodes the files and generates a `blobId`.
|
|
201
|
+
2. `register`: Returns a transaction that registers the blob onchain.
|
|
202
|
+
3. `upload`: Uploads the data to storage nodes.
|
|
203
|
+
4. `certify`: Returns a transaction that certifies the blob onchain.
|
|
204
|
+
5. `listFiles`: Returns a list of the created files.
|
|
209
205
|
|
|
210
|
-
|
|
206
|
+
The following simplified example shows the core API usage with separate user interactions:
|
|
211
207
|
|
|
212
208
|
```tsx
|
|
213
209
|
// Step 1: Create and encode the flow (can be done immediately when file is selected)
|
|
@@ -263,9 +259,8 @@ interactions, allowing wallet popups to work properly without being blocked by t
|
|
|
263
259
|
|
|
264
260
|
### Running the full flow
|
|
265
261
|
|
|
266
|
-
If you
|
|
267
|
-
pipeline as an async iterator.
|
|
268
|
-
recovery:
|
|
262
|
+
If you do not need separate user interactions for each step, use `run()` to execute the full
|
|
263
|
+
pipeline as an async iterator.
|
|
269
264
|
|
|
270
265
|
```ts
|
|
271
266
|
const flow = client.walrus.writeBlobFlow({ blob });
|
|
@@ -286,10 +281,11 @@ const up = await flow.upload({ digest: reg.txDigest });
|
|
|
286
281
|
const cert = await flow.executeCertify({ signer });
|
|
287
282
|
```
|
|
288
283
|
|
|
289
|
-
|
|
284
|
+
#### Resuming uploads
|
|
290
285
|
|
|
291
|
-
|
|
292
|
-
|
|
286
|
+
Each step executed by `run()` produces a `WriteBlobStep` that you can persist for crash recovery. To
|
|
287
|
+
resume an upload after a crash, pass a saved `WriteBlobStep` as `resume`. The flow skips completed
|
|
288
|
+
steps, validates the `blobId`, and only uploads slivers that are not already stored:
|
|
293
289
|
|
|
294
290
|
```ts
|
|
295
291
|
const saved = await db.load(fileId);
|
|
@@ -300,13 +296,12 @@ for await (const step of flow.run({ signer, epochs: 3, deletable: true })) {
|
|
|
300
296
|
}
|
|
301
297
|
```
|
|
302
298
|
|
|
303
|
-
##
|
|
299
|
+
## Using an upload relay
|
|
304
300
|
|
|
305
|
-
Writing blobs directly from a client requires
|
|
306
|
-
|
|
307
|
-
complexity for the client.
|
|
301
|
+
Writing blobs directly from a client requires many requests to write data to all the storage nodes.
|
|
302
|
+
An upload relay offloads the work of these writes to a server, reducing complexity for the client.
|
|
308
303
|
|
|
309
|
-
To use an upload relay,
|
|
304
|
+
To use an upload relay, add the `uploadRelay` option when adding the Walrus extension:
|
|
310
305
|
|
|
311
306
|
```ts
|
|
312
307
|
const client = new SuiGrpcClient({
|
|
@@ -324,18 +319,18 @@ const client = new SuiGrpcClient({
|
|
|
324
319
|
);
|
|
325
320
|
```
|
|
326
321
|
|
|
327
|
-
The `host` option is required
|
|
328
|
-
require a tip to
|
|
329
|
-
|
|
330
|
-
|
|
322
|
+
The `host` option is required and indicates the URL for your upload relay. Upload relays might
|
|
323
|
+
require a tip to cover the cost of writing the blob. You can configure a maximum tip (paid in MIST)
|
|
324
|
+
and the `WalrusClient` automatically determines the required tip for your upload relay. You can also
|
|
325
|
+
manually configure the tip as shown below.
|
|
331
326
|
|
|
332
|
-
|
|
333
|
-
`https://upload-relay.testnet.walrus.space/v1/tip-config`)
|
|
334
|
-
|
|
327
|
+
Find the tip required by an upload relay using the `tip-config` endpoint (for example,
|
|
328
|
+
`https://upload-relay.testnet.walrus.space/v1/tip-config`). The tip is either a `const` or a
|
|
329
|
+
`linear` type.
|
|
335
330
|
|
|
336
331
|
### `const` tip
|
|
337
332
|
|
|
338
|
-
A `const`
|
|
333
|
+
A `const` tip sends a fixed amount for each blob written to the upload relay.
|
|
339
334
|
|
|
340
335
|
```ts
|
|
341
336
|
const client = new SuiGrpcClient({
|
|
@@ -358,8 +353,8 @@ const client = new SuiGrpcClient({
|
|
|
358
353
|
|
|
359
354
|
### `linear` tip
|
|
360
355
|
|
|
361
|
-
A `linear` tip
|
|
362
|
-
|
|
356
|
+
A `linear` tip sends a fixed amount for each blob written to the upload relay, plus a multiplier
|
|
357
|
+
based on the size of the blob.
|
|
363
358
|
|
|
364
359
|
```ts
|
|
365
360
|
const client = new SuiGrpcClient({
|
|
@@ -385,22 +380,22 @@ const client = new SuiGrpcClient({
|
|
|
385
380
|
|
|
386
381
|
## Interacting with blobs directly
|
|
387
382
|
|
|
388
|
-
|
|
389
|
-
|
|
383
|
+
If you do not want to use the `WalrusFile` abstractions, use the `readBlob` and `writeBlob` APIs
|
|
384
|
+
directly.
|
|
390
385
|
|
|
391
386
|
### Reading blobs
|
|
392
387
|
|
|
393
|
-
The `readBlob` method
|
|
388
|
+
The `readBlob` method reads a blob given the `blobId` and returns a `Uint8Array` containing the blob
|
|
394
389
|
content:
|
|
395
390
|
|
|
396
391
|
```ts
|
|
397
392
|
const blob = await client.walrus.readBlob({ blobId });
|
|
398
393
|
```
|
|
399
394
|
|
|
400
|
-
### Writing
|
|
395
|
+
### Writing blobs
|
|
401
396
|
|
|
402
|
-
The writeBlob method
|
|
403
|
-
|
|
397
|
+
The `writeBlob` method writes a blob (as a `Uint8Array`) to Walrus. You need to specify how long the
|
|
398
|
+
blob should be stored for and whether the blob should be deletable.
|
|
404
399
|
|
|
405
400
|
```ts
|
|
406
401
|
const file = new TextEncoder().encode('Hello from the TS SDK!!!\n');
|
|
@@ -426,26 +421,14 @@ const { blobId } = await client.walrus.writeBlob({
|
|
|
426
421
|
});
|
|
427
422
|
```
|
|
428
423
|
|
|
429
|
-
## Full API
|
|
430
|
-
|
|
431
|
-
For a complete overview of the available methods on the `WalrusClient` you can reference type
|
|
432
|
-
[TypeDocs](/typedoc/classes/_mysten_walrus.WalrusClient.html)
|
|
433
|
-
|
|
434
|
-
## Examples
|
|
435
|
-
|
|
436
|
-
There are a number of simple
|
|
437
|
-
[examples you can reference](https://github.com/MystenLabs/ts-sdks/tree/main/packages/walrus/examples)
|
|
438
|
-
in the `ts-sdks` repo that show things like building simple aggregators and publishers with the
|
|
439
|
-
walrus SDK
|
|
440
|
-
|
|
441
424
|
## Error handling
|
|
442
425
|
|
|
443
426
|
The SDK exports all the error classes for different types of errors that can be thrown. Walrus is a
|
|
444
|
-
fault-tolerant distributed system
|
|
445
|
-
changes
|
|
446
|
-
|
|
427
|
+
fault-tolerant distributed system where many types of errors can be recovered from. During epoch
|
|
428
|
+
changes, the data cached in the `WalrusClient` can become invalid. Errors that result from this
|
|
429
|
+
situation extend the `RetryableWalrusClientError` class.
|
|
447
430
|
|
|
448
|
-
You can check for these errors
|
|
431
|
+
You can check for these errors and reset the client before retrying:
|
|
449
432
|
|
|
450
433
|
```ts
|
|
451
434
|
|
|
@@ -456,25 +439,25 @@ if (error instanceof RetryableWalrusClientError) {
|
|
|
456
439
|
}
|
|
457
440
|
```
|
|
458
441
|
|
|
459
|
-
`RetryableWalrusClientError` are not guaranteed to succeed after resetting the client and
|
|
460
|
-
but this pattern
|
|
442
|
+
`RetryableWalrusClientError` errors are not guaranteed to succeed after resetting the client and
|
|
443
|
+
retrying, but this pattern handles some edge cases.
|
|
461
444
|
|
|
462
|
-
High
|
|
463
|
-
|
|
445
|
+
High-level methods like `readBlob` already handle various error cases and automatically retry when
|
|
446
|
+
encountering these errors, as well as handling cases where only a subset of nodes need to respond
|
|
464
447
|
successfully to read or publish a blob.
|
|
465
448
|
|
|
466
|
-
When using the lower
|
|
467
|
-
|
|
468
|
-
|
|
449
|
+
When using the lower-level methods to build your own read or publish flows, understand the number of
|
|
450
|
+
shards and slivers that need to be successfully written or read for your operation to succeed.
|
|
451
|
+
Gracefully handle cases where some nodes might be in a bad state.
|
|
469
452
|
|
|
470
453
|
### Network errors
|
|
471
454
|
|
|
472
|
-
Walrus
|
|
473
|
-
|
|
474
|
-
challenging
|
|
455
|
+
Walrus handles some nodes being down, and the SDK only throws errors when it cannot read from or
|
|
456
|
+
write to enough storage nodes. When troubleshooting problems, figuring out what went wrong can be
|
|
457
|
+
challenging because you do not see all the individual network errors.
|
|
475
458
|
|
|
476
|
-
|
|
477
|
-
|
|
459
|
+
Pass an `onError` option in the `storageNodeClientOptions` to get the individual errors from failed
|
|
460
|
+
requests:
|
|
478
461
|
|
|
479
462
|
```ts
|
|
480
463
|
const client = new SuiGrpcClient({
|
|
@@ -491,16 +474,14 @@ const client = new SuiGrpcClient({
|
|
|
491
474
|
|
|
492
475
|
## Configuring network requests
|
|
493
476
|
|
|
494
|
-
Reading and writing blobs directly from storage nodes requires
|
|
495
|
-
|
|
496
|
-
|
|
477
|
+
Reading and writing blobs directly from storage nodes requires many requests. The Walrus SDK issues
|
|
478
|
+
all requests needed to complete these operations, but does not handle all the complexities a robust
|
|
479
|
+
aggregator or publisher might encounter.
|
|
497
480
|
|
|
498
|
-
By default, all requests
|
|
499
|
-
in.
|
|
481
|
+
By default, all requests use the global `fetch` for whatever runtime the SDK runs in.
|
|
500
482
|
|
|
501
|
-
This
|
|
502
|
-
|
|
503
|
-
`fetch` method:
|
|
483
|
+
This does not impose any limitations on concurrency, and is subject to default timeouts and behavior
|
|
484
|
+
defined by your runtime. To customize how requests are made, provide a custom `fetch` method:
|
|
504
485
|
|
|
505
486
|
```ts
|
|
506
487
|
|
|
@@ -525,15 +506,15 @@ const client = new SuiGrpcClient({
|
|
|
525
506
|
);
|
|
526
507
|
```
|
|
527
508
|
|
|
528
|
-
## Loading the
|
|
509
|
+
## Loading the WASM module in Vite or client-side apps
|
|
529
510
|
|
|
530
|
-
The
|
|
531
|
-
some bundlers this
|
|
511
|
+
The Walrus SDK requires WASM bindings to encode and decode blobs. When running in Node.js or Bun,
|
|
512
|
+
and with some bundlers, this works without any additional configuration.
|
|
532
513
|
|
|
533
|
-
In some cases you
|
|
514
|
+
In some cases, you might need to manually specify where the SDK loads the WASM bindings from.
|
|
534
515
|
|
|
535
|
-
In
|
|
536
|
-
|
|
516
|
+
In Vite, get the URL for the WASM bindings by importing the WASM file with a `?url` suffix, then
|
|
517
|
+
pass it into the Walrus client:
|
|
537
518
|
|
|
538
519
|
```ts
|
|
539
520
|
|
|
@@ -547,8 +528,8 @@ const client = new SuiGrpcClient({
|
|
|
547
528
|
);
|
|
548
529
|
```
|
|
549
530
|
|
|
550
|
-
If you are unable to get a
|
|
551
|
-
the
|
|
531
|
+
If you are unable to get a URL for the WASM file in your bundler or build system, you can self-host
|
|
532
|
+
the WASM bindings or load them from a CDN:
|
|
552
533
|
|
|
553
534
|
```ts
|
|
554
535
|
const client = new SuiGrpcClient({
|
|
@@ -561,8 +542,8 @@ const client = new SuiGrpcClient({
|
|
|
561
542
|
);
|
|
562
543
|
```
|
|
563
544
|
|
|
564
|
-
In
|
|
565
|
-
|
|
545
|
+
In Next.js, when using Walrus in API routes, you might need to tell Next.js to skip bundling for the
|
|
546
|
+
Walrus packages:
|
|
566
547
|
|
|
567
548
|
```ts
|
|
568
549
|
// next.config.ts
|
|
@@ -571,9 +552,21 @@ const nextConfig: NextConfig = {
|
|
|
571
552
|
};
|
|
572
553
|
```
|
|
573
554
|
|
|
574
|
-
## Known fetch limitations
|
|
555
|
+
## Known fetch limitations
|
|
556
|
+
|
|
557
|
+
- Some nodes can be slow to respond. When running in Node.js, the default `connectTimeout` is 10
|
|
558
|
+
seconds and can cause request timeouts.
|
|
559
|
+
- In Bun, the `abort` signal stops requests from responding, but the requests still wait for
|
|
560
|
+
completion before their promises reject.
|
|
561
|
+
|
|
562
|
+
## Full API
|
|
563
|
+
|
|
564
|
+
For a complete overview of the available methods on the `WalrusClient`, reference the
|
|
565
|
+
[TypeDocs](/typedoc/classes/_mysten_walrus.WalrusClient.html).
|
|
575
566
|
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
567
|
+
## Examples
|
|
568
|
+
|
|
569
|
+
There are a number of
|
|
570
|
+
[examples you can reference](https://github.com/MystenLabs/ts-sdks/tree/main/packages/walrus/examples)
|
|
571
|
+
in the `ts-sdks` repository that show things like building aggregators and publishers with the
|
|
572
|
+
Walrus SDK.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mysten/docs",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"description": "LLM-friendly documentation for the Sui TypeScript SDK ecosystem",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -28,22 +28,22 @@
|
|
|
28
28
|
"react-dom": "^19.2.3",
|
|
29
29
|
"@mysten/bcs": "2.0.3",
|
|
30
30
|
"@mysten/dapp-kit": "1.0.4",
|
|
31
|
-
"@mysten/dapp-kit-core": "1.2.2",
|
|
32
|
-
"@mysten/dapp-kit-react": "2.0.1",
|
|
33
31
|
"@mysten/deepbook-v3": "1.2.1",
|
|
32
|
+
"@mysten/dapp-kit-react": "2.0.1",
|
|
33
|
+
"@mysten/dapp-kit-core": "1.2.2",
|
|
34
34
|
"@mysten/enoki": "1.0.4",
|
|
35
|
-
"@mysten/enoki-connect": "1.0.2",
|
|
36
|
-
"@mysten/kiosk": "1.2.0",
|
|
37
|
-
"@mysten/payment-kit": "0.1.4",
|
|
38
35
|
"@mysten/seal": "1.1.1",
|
|
39
36
|
"@mysten/signers": "1.0.2",
|
|
37
|
+
"@mysten/enoki-connect": "1.0.2",
|
|
40
38
|
"@mysten/slush-wallet": "1.0.3",
|
|
41
|
-
"@mysten/sui": "2.14.
|
|
42
|
-
"@mysten/suins": "1.0.2",
|
|
39
|
+
"@mysten/sui": "2.14.1",
|
|
43
40
|
"@mysten/utils": "0.3.1",
|
|
41
|
+
"@mysten/suins": "1.0.2",
|
|
44
42
|
"@mysten/wallet-standard": "0.20.1",
|
|
45
|
-
"@mysten/
|
|
46
|
-
"@mysten/
|
|
43
|
+
"@mysten/zksend": "1.0.3",
|
|
44
|
+
"@mysten/kiosk": "1.2.0",
|
|
45
|
+
"@mysten/payment-kit": "0.1.5",
|
|
46
|
+
"@mysten/walrus": "1.1.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@tailwindcss/postcss": "^4.1.18",
|