@misonetwork/sdk 0.5.0 → 0.7.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.
- package/README.md +23 -4
- package/dist/client.d.ts +24 -13
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +25 -8
- package/dist/client.js.map +1 -1
- package/dist/contracts/miso/composition.d.ts +16 -38
- package/dist/contracts/miso/composition.d.ts.map +1 -1
- package/dist/contracts/miso/composition.js +16 -37
- package/dist/contracts/miso/composition.js.map +1 -1
- package/dist/contracts/miso/recording.d.ts +43 -18
- package/dist/contracts/miso/recording.d.ts.map +1 -1
- package/dist/contracts/miso/recording.js +45 -19
- package/dist/contracts/miso/recording.js.map +1 -1
- package/dist/contracts/miso/release.d.ts +2 -0
- package/dist/contracts/miso/release.d.ts.map +1 -1
- package/dist/contracts/miso/track.d.ts +39 -8
- package/dist/contracts/miso/track.d.ts.map +1 -1
- package/dist/contracts/miso/track.js +42 -8
- package/dist/contracts/miso/track.js.map +1 -1
- package/dist/deployments.d.ts +21 -0
- package/dist/deployments.d.ts.map +1 -0
- package/dist/deployments.js +17 -0
- package/dist/deployments.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +2 -0
- package/dist/internal.js.map +1 -1
- package/dist/parsers.d.ts +1 -2
- package/dist/parsers.d.ts.map +1 -1
- package/dist/parsers.js +1 -5
- package/dist/parsers.js.map +1 -1
- package/dist/transactions.d.ts +0 -9
- package/dist/transactions.d.ts.map +1 -1
- package/dist/transactions.js +1 -3
- package/dist/transactions.js.map +1 -1
- package/dist/types.d.ts +17 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -1
- package/src/client.ts +46 -12
- package/src/contracts/miso/composition.ts +16 -53
- package/src/contracts/miso/recording.ts +59 -22
- package/src/contracts/miso/track.ts +51 -8
- package/src/deployments.ts +42 -0
- package/src/index.ts +1 -0
- package/src/internal.ts +2 -0
- package/src/parsers.ts +1 -10
- package/src/transactions.ts +1 -11
- package/src/types.ts +17 -9
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ const client = new SuiGrpcClient({
|
|
|
25
25
|
network: "testnet",
|
|
26
26
|
baseUrl: "https://fullnode.testnet.sui.io:443",
|
|
27
27
|
})
|
|
28
|
-
.$extend(miso(
|
|
28
|
+
.$extend(miso());
|
|
29
29
|
|
|
30
30
|
const recording = await client.miso.getRecordingById("0x...");
|
|
31
31
|
const adminCapId = client.miso.deriveRecordingAdminCapId("0x...");
|
|
@@ -35,6 +35,10 @@ Pass a `SuiGraphQLClient` as `graphqlClient` only for generic type discovery,
|
|
|
35
35
|
such as `getCompositionByShareType` and `getRecordingByShareType`. ID reads and
|
|
36
36
|
owned-cap queries use the Core API.
|
|
37
37
|
|
|
38
|
+
The current Testnet package is bundled with the SDK and selected from the Sui
|
|
39
|
+
client's network. Mainnet fails closed until this protocol ABI is deployed there;
|
|
40
|
+
custom deployments can be supplied explicitly with `miso({ deployment })`.
|
|
41
|
+
|
|
38
42
|
## Data model
|
|
39
43
|
|
|
40
44
|
- `Composition`: the written work, with a share currency and royalty rate.
|
|
@@ -134,12 +138,27 @@ tx.add(client.miso.call.track._new({
|
|
|
134
138
|
|
|
135
139
|
## Event parsers
|
|
136
140
|
|
|
137
|
-
Core emits only publish
|
|
138
|
-
`client.miso.parse.compositionPublishedEvent`,
|
|
139
|
-
`compositionRoyaltySetEvent`, `recordingPublishedEvent`, and
|
|
141
|
+
Core emits only publish events. Parse them with
|
|
142
|
+
`client.miso.parse.compositionPublishedEvent`, `recordingPublishedEvent`, and
|
|
140
143
|
`releasePublishedEvent`. Track creation has no core event; pre-publish
|
|
141
144
|
observability is an extension concern.
|
|
142
145
|
|
|
146
|
+
## 0.6.0 → 0.7.0 migration
|
|
147
|
+
|
|
148
|
+
The composition royalty rate is now immutable after creation, with no protocol
|
|
149
|
+
ceiling (it was capped at 2000 bps).
|
|
150
|
+
|
|
151
|
+
| Previous API | 0.7.0 |
|
|
152
|
+
| --- | --- |
|
|
153
|
+
| `composition::set_royalty_rate` call, `CompositionRoyaltySetEvent`, `client.miso.parse.compositionRoyaltySetEvent` | removed; the rate no longer changes after `composition::new` |
|
|
154
|
+
| `createRecording(tx, { ..., maxRoyaltyRateBps })` | `maxRoyaltyRateBps` removed; the immutable rate needs no slippage guard |
|
|
155
|
+
| `PROTOCOL_MAX_ROYALTY_RATE_BPS` | removed; there is no protocol-level cap on `royaltyRateBps` |
|
|
156
|
+
| `Recording` (no composition reference) | `Recording.compositionId` — the parent composition's object id |
|
|
157
|
+
| `Track` (no composition reference) | `Track.compositionId` — the underlying composition's object id |
|
|
158
|
+
|
|
159
|
+
Update `@misofm/sdk` in the same release window: it depends on `@misonetwork/sdk`
|
|
160
|
+
for these primitives.
|
|
161
|
+
|
|
143
162
|
## 0.4.0 → 0.5.0 migration
|
|
144
163
|
|
|
145
164
|
| Previous API | 0.5.0 |
|
package/dist/client.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ClientWithCoreApi, SuiClientRegistration } from "@mysten/sui/client";
|
|
2
2
|
import type { SuiGraphQLClient } from "@mysten/sui/graphql";
|
|
3
|
+
import { type MisoProtocolDeployment } from "./deployments.ts";
|
|
3
4
|
import * as parsers from "./parsers.ts";
|
|
4
5
|
import * as queries from "./queries.ts";
|
|
5
6
|
import * as view from "./view.ts";
|
|
@@ -11,8 +12,13 @@ import * as track from "./contracts/miso/track.ts";
|
|
|
11
12
|
export interface MisoOptions<Name extends string = "miso"> {
|
|
12
13
|
/** Name for the client extension. Defaults to "miso". */
|
|
13
14
|
name?: Name;
|
|
14
|
-
/**
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Complete custom deployment. Omit for bundled Mainnet/Testnet addresses,
|
|
17
|
+
* selected from the Sui client's `network`.
|
|
18
|
+
*/
|
|
19
|
+
deployment?: MisoProtocolDeployment;
|
|
20
|
+
/** @deprecated Use `deployment`. Retained for compatibility with pre-0.4 callers. */
|
|
21
|
+
misoPackageId?: string;
|
|
16
22
|
/**
|
|
17
23
|
* Optional GraphQL client, required ONLY for the global type-discovery reads
|
|
18
24
|
* the Core API cannot express: `getCompositionByShareType`,
|
|
@@ -27,14 +33,20 @@ export interface MisoOptions<Name extends string = "miso"> {
|
|
|
27
33
|
* @example
|
|
28
34
|
* ```ts
|
|
29
35
|
* const client = new SuiGrpcClient({ network: 'testnet' })
|
|
30
|
-
* .$extend(miso(
|
|
36
|
+
* .$extend(miso());
|
|
31
37
|
* const composition = await client.miso.getCompositionById('0x...');
|
|
32
38
|
* ```
|
|
33
39
|
*/
|
|
34
|
-
export declare function miso<const Name extends string = "miso">(options
|
|
35
|
-
export
|
|
40
|
+
export declare function miso<const Name extends string = "miso">(options?: MisoOptions<Name>): SuiClientRegistration<ClientWithCoreApi, Name, MisoProtocolClient>;
|
|
41
|
+
export interface MisoProtocolClientOptions {
|
|
42
|
+
deployment: MisoProtocolDeployment;
|
|
43
|
+
graphqlClient?: SuiGraphQLClient;
|
|
44
|
+
}
|
|
45
|
+
export declare class MisoProtocolClient {
|
|
36
46
|
#private;
|
|
37
|
-
constructor(client: ClientWithCoreApi, options:
|
|
47
|
+
constructor(client: ClientWithCoreApi, options: MisoProtocolClientOptions);
|
|
48
|
+
/** The exact deployment selected for this client. */
|
|
49
|
+
get deployment(): MisoProtocolDeployment;
|
|
38
50
|
getCompositionById(compositionId: string): Promise<Composition>;
|
|
39
51
|
getCompositionsByIds(ids: string[]): Promise<Record<string, Composition>>;
|
|
40
52
|
getWorksByIds(ids: queries.WorkIds): Promise<queries.WorksById>;
|
|
@@ -88,6 +100,7 @@ export declare class MisoClient {
|
|
|
88
100
|
Initialized: null;
|
|
89
101
|
Published: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
90
102
|
}, "@local-pkg/miso::recording::RecordingState">;
|
|
103
|
+
composition_id: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
91
104
|
}, "@local-pkg/miso::recording::Recording<phantom RecordingShare, phantom CompositionShare>">;
|
|
92
105
|
Release: import("./contracts/utils/index.ts").MoveStruct<{
|
|
93
106
|
id: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
@@ -101,6 +114,7 @@ export declare class MisoClient {
|
|
|
101
114
|
Unassigned: string;
|
|
102
115
|
Assigned: true;
|
|
103
116
|
}, "Unassigned" | "Assigned">;
|
|
117
|
+
composition_id: string;
|
|
104
118
|
recording_id: string;
|
|
105
119
|
split_bps: [number];
|
|
106
120
|
}[], Iterable<{
|
|
@@ -108,6 +122,7 @@ export declare class MisoClient {
|
|
|
108
122
|
Unassigned: string | Uint8Array<ArrayBufferLike>;
|
|
109
123
|
Assigned: boolean | object | null;
|
|
110
124
|
}>;
|
|
125
|
+
composition_id: string | Uint8Array<ArrayBufferLike>;
|
|
111
126
|
recording_id: string | Uint8Array<ArrayBufferLike>;
|
|
112
127
|
split_bps: readonly [number];
|
|
113
128
|
}> & {
|
|
@@ -119,18 +134,13 @@ export declare class MisoClient {
|
|
|
119
134
|
Unassigned: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
120
135
|
Assigned: null;
|
|
121
136
|
}, "@local-pkg/miso::track::TrackState">;
|
|
137
|
+
composition_id: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
122
138
|
recording_id: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
123
139
|
split_bps: import("./contracts/utils/index.ts").MoveTuple<readonly [import("@mysten/bcs").BcsType<number, number, "u16">], "bps::bps::BPS">;
|
|
124
140
|
}, "@local-pkg/miso::track::Track">;
|
|
125
141
|
CompositionPublishedEvent: import("./contracts/utils/index.ts").MoveStruct<{
|
|
126
142
|
composition_id: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
127
143
|
}, "@local-pkg/miso::composition::CompositionPublishedEvent<phantom CompositionShare>">;
|
|
128
|
-
CompositionRoyaltySetEvent: import("./contracts/utils/index.ts").MoveStruct<{
|
|
129
|
-
composition_id: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
130
|
-
previous_royalty_rate_bps: import("@mysten/bcs").BcsType<number, number, "u16">;
|
|
131
|
-
royalty_rate_bps: import("@mysten/bcs").BcsType<number, number, "u16">;
|
|
132
|
-
changed_by: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
133
|
-
}, "@local-pkg/miso::composition::CompositionRoyaltySetEvent<phantom CompositionShare>">;
|
|
134
144
|
RecordingPublishedEvent: import("./contracts/utils/index.ts").MoveStruct<{
|
|
135
145
|
recording_id: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
136
146
|
}, "@local-pkg/miso::recording::RecordingPublishedEvent<phantom RecordingShare, phantom CompositionShare>">;
|
|
@@ -140,9 +150,10 @@ export declare class MisoClient {
|
|
|
140
150
|
};
|
|
141
151
|
get parse(): {
|
|
142
152
|
compositionPublishedEvent: typeof parsers.parseCompositionPublishedEvent;
|
|
143
|
-
compositionRoyaltySetEvent: typeof parsers.parseCompositionRoyaltySetEvent;
|
|
144
153
|
recordingPublishedEvent: typeof parsers.parseRecordingPublishedEvent;
|
|
145
154
|
releasePublishedEvent: typeof parsers.parseReleasePublishedEvent;
|
|
146
155
|
};
|
|
147
156
|
}
|
|
157
|
+
/** @deprecated Prefer the layer-specific `MisoProtocolClient` name. */
|
|
158
|
+
export { MisoProtocolClient as MisoClient };
|
|
148
159
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,WAAW,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAC;AAEnD,MAAM,WAAW,WAAW,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IACvD,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Miso Labs, Inc.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { getMisoProtocolDeployment, } from "./deployments.js";
|
|
3
4
|
import * as parsers from "./parsers.js";
|
|
4
5
|
import * as queries from "./queries.js";
|
|
5
6
|
import * as view from "./view.js";
|
|
@@ -25,25 +26,41 @@ function bindModulePackage(mod, pkg) {
|
|
|
25
26
|
* @example
|
|
26
27
|
* ```ts
|
|
27
28
|
* const client = new SuiGrpcClient({ network: 'testnet' })
|
|
28
|
-
* .$extend(miso(
|
|
29
|
+
* .$extend(miso());
|
|
29
30
|
* const composition = await client.miso.getCompositionById('0x...');
|
|
30
31
|
* ```
|
|
31
32
|
*/
|
|
32
|
-
export function miso(options) {
|
|
33
|
+
export function miso(options = {}) {
|
|
33
34
|
const name = (options.name ?? "miso");
|
|
34
35
|
return {
|
|
35
36
|
name,
|
|
36
|
-
register: (client) =>
|
|
37
|
+
register: (client) => {
|
|
38
|
+
const deployment = options.deployment ??
|
|
39
|
+
(options.misoPackageId
|
|
40
|
+
? { packageId: options.misoPackageId }
|
|
41
|
+
: getMisoProtocolDeployment(client.network));
|
|
42
|
+
return new MisoProtocolClient(client, {
|
|
43
|
+
deployment,
|
|
44
|
+
graphqlClient: options.graphqlClient,
|
|
45
|
+
});
|
|
46
|
+
},
|
|
37
47
|
};
|
|
38
48
|
}
|
|
39
|
-
export class
|
|
49
|
+
export class MisoProtocolClient {
|
|
40
50
|
#client;
|
|
41
51
|
#graphqlClient;
|
|
42
|
-
#
|
|
52
|
+
#deployment;
|
|
43
53
|
constructor(client, options) {
|
|
44
54
|
this.#client = client;
|
|
45
55
|
this.#graphqlClient = options.graphqlClient;
|
|
46
|
-
this.#
|
|
56
|
+
this.#deployment = options.deployment;
|
|
57
|
+
}
|
|
58
|
+
/** The exact deployment selected for this client. */
|
|
59
|
+
get deployment() {
|
|
60
|
+
return this.#deployment;
|
|
61
|
+
}
|
|
62
|
+
get #misoPackageId() {
|
|
63
|
+
return this.#deployment.packageId;
|
|
47
64
|
}
|
|
48
65
|
// === Composition ===
|
|
49
66
|
async getCompositionById(compositionId) {
|
|
@@ -149,7 +166,6 @@ export class MisoClient {
|
|
|
149
166
|
Release: release.Release,
|
|
150
167
|
Track: track.Track,
|
|
151
168
|
CompositionPublishedEvent: composition.CompositionPublishedEvent,
|
|
152
|
-
CompositionRoyaltySetEvent: composition.CompositionRoyaltySetEvent,
|
|
153
169
|
RecordingPublishedEvent: recording.RecordingPublishedEvent,
|
|
154
170
|
ReleasePublishedEvent: release.ReleasePublishedEvent,
|
|
155
171
|
};
|
|
@@ -158,7 +174,6 @@ export class MisoClient {
|
|
|
158
174
|
get parse() {
|
|
159
175
|
return {
|
|
160
176
|
compositionPublishedEvent: parsers.parseCompositionPublishedEvent,
|
|
161
|
-
compositionRoyaltySetEvent: parsers.parseCompositionRoyaltySetEvent,
|
|
162
177
|
recordingPublishedEvent: parsers.parseRecordingPublishedEvent,
|
|
163
178
|
releasePublishedEvent: parsers.parseReleasePublishedEvent,
|
|
164
179
|
};
|
|
@@ -170,4 +185,6 @@ export class MisoClient {
|
|
|
170
185
|
return this.#graphqlClient;
|
|
171
186
|
}
|
|
172
187
|
}
|
|
188
|
+
/** @deprecated Prefer the layer-specific `MisoProtocolClient` name. */
|
|
189
|
+
export { MisoProtocolClient as MisoClient };
|
|
173
190
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,sCAAsC;AAOtC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAUlC,iEAAiE;AACjE,OAAO,KAAK,WAAW,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,12 +66,6 @@ export declare const CompositionAdminCapKey: MoveTuple<readonly [import("@mysten
|
|
|
66
66
|
export declare const CompositionPublishedEvent: MoveStruct<{
|
|
67
67
|
composition_id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
68
68
|
}, "@local-pkg/miso::composition::CompositionPublishedEvent<phantom CompositionShare>">;
|
|
69
|
-
export declare const CompositionRoyaltySetEvent: MoveStruct<{
|
|
70
|
-
composition_id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
71
|
-
previous_royalty_rate_bps: import("@mysten/sui/bcs").BcsType<number, number, "u16">;
|
|
72
|
-
royalty_rate_bps: import("@mysten/sui/bcs").BcsType<number, number, "u16">;
|
|
73
|
-
changed_by: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
74
|
-
}, "@local-pkg/miso::composition::CompositionRoyaltySetEvent<phantom CompositionShare>">;
|
|
75
69
|
export interface NewArguments {
|
|
76
70
|
title: RawTransactionArgument<string>;
|
|
77
71
|
royaltyRateBps: RawTransactionArgument<number>;
|
|
@@ -91,10 +85,17 @@ export interface NewOptions {
|
|
|
91
85
|
];
|
|
92
86
|
}
|
|
93
87
|
/**
|
|
94
|
-
* Creates a new composition with the given title and royalty rate.
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
88
|
+
* Creates a new composition with the given title and royalty rate.
|
|
89
|
+
*
|
|
90
|
+
* The rate is set once, here, and is immutable for the composition's lifetime: it
|
|
91
|
+
* is a permanent standing offer that recorders and share buyers can price against
|
|
92
|
+
* without trusting the admin. The protocol imposes no opinion on it beyond the
|
|
93
|
+
* arithmetic bound of 100% (10000 bps, enforced by `bps::new`). There is no floor
|
|
94
|
+
* — 0% is permitted (e.g. a generative recording with no authored composition) —
|
|
95
|
+
* and no protocol ceiling: an uncompetitive rate simply attracts no recordings.
|
|
96
|
+
* What rate is reasonable is a client-side concern; per-deal deviations settle as
|
|
97
|
+
* voluntary share transfers after recording creation. Initializes share tokens
|
|
98
|
+
* (10M supply, 6 decimals) and returns:
|
|
98
99
|
*
|
|
99
100
|
* - The composition object
|
|
100
101
|
* - Admin capability for the owner
|
|
@@ -123,33 +124,6 @@ export interface PublishOptions {
|
|
|
123
124
|
* extension and may be attached before or after publish via `uid_mut`.
|
|
124
125
|
*/
|
|
125
126
|
export declare function publish(options: PublishOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
126
|
-
export interface SetRoyaltyRateArguments {
|
|
127
|
-
self: RawTransactionArgument<string>;
|
|
128
|
-
_: RawTransactionArgument<string>;
|
|
129
|
-
royaltyRateBps: RawTransactionArgument<number>;
|
|
130
|
-
}
|
|
131
|
-
export interface SetRoyaltyRateOptions {
|
|
132
|
-
package?: string;
|
|
133
|
-
arguments: SetRoyaltyRateArguments | [
|
|
134
|
-
self: RawTransactionArgument<string>,
|
|
135
|
-
_: RawTransactionArgument<string>,
|
|
136
|
-
royaltyRateBps: RawTransactionArgument<number>
|
|
137
|
-
];
|
|
138
|
-
typeArguments: [
|
|
139
|
-
string
|
|
140
|
-
];
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Sets the royalty rate this composition earns from each recording. Must not
|
|
144
|
-
* exceed `MAX_ROYALTY_RATE_BPS` (there is no floor; 0% is allowed). The rate can
|
|
145
|
-
* be changed in any lifecycle state, including after publishing, and takes effect
|
|
146
|
-
* immediately. There is deliberately no rate-change cooldown: a change cannot
|
|
147
|
-
* surprise anyone, because each recording snapshots the rate when it is created
|
|
148
|
-
* (existing recordings keep the rate they captured) and `recording::new`'s
|
|
149
|
-
* `max_royalty_rate_bps` slippage guard means no future recorder can be charged a
|
|
150
|
-
* rate they did not consent to.
|
|
151
|
-
*/
|
|
152
|
-
export declare function setRoyaltyRate(options: SetRoyaltyRateOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
153
127
|
export interface IdArguments {
|
|
154
128
|
self: RawTransactionArgument<string>;
|
|
155
129
|
}
|
|
@@ -190,7 +164,11 @@ export interface RoyaltyRateOptions {
|
|
|
190
164
|
string
|
|
191
165
|
];
|
|
192
166
|
}
|
|
193
|
-
/**
|
|
167
|
+
/**
|
|
168
|
+
* Returns the royalty rate this composition earns from each recording. Immutable
|
|
169
|
+
* for the composition's lifetime — the value read here is, by construction, the
|
|
170
|
+
* value `recording::new` will apply.
|
|
171
|
+
*/
|
|
194
172
|
export declare function royaltyRate(options: RoyaltyRateOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
195
173
|
export interface UidArguments {
|
|
196
174
|
self: RawTransactionArgument<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../../src/contracts/miso/composition.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAA0B,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEzH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,wCAAwC;AACxC,eAAO,MAAM,gBAAgB;IACrB,oDAAoD;;IAEpD,8EAA8E;;oDAE9E,CAAC;AACT,eAAO,MAAM,WAAW;IAChB,8CAA8C;;IAE9C,+BAA+B;;QAR/B,oDAAoD;;QAEpD,8EAA8E;;;IAQ9E,wCAAwC;;IAExC,yEAAyE;;yEAEzE,CAAC;AACT,eAAO,MAAM,mBAAmB;IACxB,6CAA6C;;iFAE7C,CAAC;AACT,eAAO,MAAM,sBAAsB,2IAA0F,CAAC;AAC9H,eAAO,MAAM,yBAAyB;;uFAE9B,CAAC;AACT,
|
|
1
|
+
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../../src/contracts/miso/composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,17 +64,18 @@ export const CompositionAdminCapKey = new MoveTuple({ name: `${$moduleName}::Com
|
|
|
64
64
|
export const CompositionPublishedEvent = new MoveStruct({ name: `${$moduleName}::CompositionPublishedEvent<phantom CompositionShare>`, fields: {
|
|
65
65
|
composition_id: bcs.Address
|
|
66
66
|
} });
|
|
67
|
-
export const CompositionRoyaltySetEvent = new MoveStruct({ name: `${$moduleName}::CompositionRoyaltySetEvent<phantom CompositionShare>`, fields: {
|
|
68
|
-
composition_id: bcs.Address,
|
|
69
|
-
previous_royalty_rate_bps: bcs.u16(),
|
|
70
|
-
royalty_rate_bps: bcs.u16(),
|
|
71
|
-
changed_by: bcs.Address
|
|
72
|
-
} });
|
|
73
67
|
/**
|
|
74
|
-
* Creates a new composition with the given title and royalty rate.
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
68
|
+
* Creates a new composition with the given title and royalty rate.
|
|
69
|
+
*
|
|
70
|
+
* The rate is set once, here, and is immutable for the composition's lifetime: it
|
|
71
|
+
* is a permanent standing offer that recorders and share buyers can price against
|
|
72
|
+
* without trusting the admin. The protocol imposes no opinion on it beyond the
|
|
73
|
+
* arithmetic bound of 100% (10000 bps, enforced by `bps::new`). There is no floor
|
|
74
|
+
* — 0% is permitted (e.g. a generative recording with no authored composition) —
|
|
75
|
+
* and no protocol ceiling: an uncompetitive rate simply attracts no recordings.
|
|
76
|
+
* What rate is reasonable is a client-side concern; per-deal deviations settle as
|
|
77
|
+
* voluntary share transfers after recording creation. Initializes share tokens
|
|
78
|
+
* (10M supply, 6 decimals) and returns:
|
|
78
79
|
*
|
|
79
80
|
* - The composition object
|
|
80
81
|
* - Admin capability for the owner
|
|
@@ -120,32 +121,6 @@ export function publish(options) {
|
|
|
120
121
|
typeArguments: options.typeArguments
|
|
121
122
|
});
|
|
122
123
|
}
|
|
123
|
-
/**
|
|
124
|
-
* Sets the royalty rate this composition earns from each recording. Must not
|
|
125
|
-
* exceed `MAX_ROYALTY_RATE_BPS` (there is no floor; 0% is allowed). The rate can
|
|
126
|
-
* be changed in any lifecycle state, including after publishing, and takes effect
|
|
127
|
-
* immediately. There is deliberately no rate-change cooldown: a change cannot
|
|
128
|
-
* surprise anyone, because each recording snapshots the rate when it is created
|
|
129
|
-
* (existing recordings keep the rate they captured) and `recording::new`'s
|
|
130
|
-
* `max_royalty_rate_bps` slippage guard means no future recorder can be charged a
|
|
131
|
-
* rate they did not consent to.
|
|
132
|
-
*/
|
|
133
|
-
export function setRoyaltyRate(options) {
|
|
134
|
-
const packageAddress = options.package ?? '@local-pkg/miso';
|
|
135
|
-
const argumentsTypes = [
|
|
136
|
-
null,
|
|
137
|
-
null,
|
|
138
|
-
'u16'
|
|
139
|
-
];
|
|
140
|
-
const parameterNames = ["self", "_", "royaltyRateBps"];
|
|
141
|
-
return (tx) => tx.moveCall({
|
|
142
|
-
package: packageAddress,
|
|
143
|
-
module: 'composition',
|
|
144
|
-
function: 'set_royalty_rate',
|
|
145
|
-
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
146
|
-
typeArguments: options.typeArguments
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
124
|
/** Returns the composition's object ID. */
|
|
150
125
|
export function id(options) {
|
|
151
126
|
const packageAddress = options.package ?? '@local-pkg/miso';
|
|
@@ -176,7 +151,11 @@ export function title(options) {
|
|
|
176
151
|
typeArguments: options.typeArguments
|
|
177
152
|
});
|
|
178
153
|
}
|
|
179
|
-
/**
|
|
154
|
+
/**
|
|
155
|
+
* Returns the royalty rate this composition earns from each recording. Immutable
|
|
156
|
+
* for the composition's lifetime — the value read here is, by construction, the
|
|
157
|
+
* value `recording::new` will apply.
|
|
158
|
+
*/
|
|
180
159
|
export function royaltyRate(options) {
|
|
181
160
|
const packageAddress = options.package ?? '@local-pkg/miso';
|
|
182
161
|
const argumentsTypes = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../../../src/contracts/miso/composition.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAA+B,MAAM,mBAAmB,CAAC;AACzH,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAoB,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AACzC,MAAM,WAAW,GAAG,8BAA8B,CAAC;AACnD,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,oBAAoB,EAAE,MAAM,EAAE;QACzF,oDAAoD;QACpD,WAAW,EAAE,IAAI;QACjB,8EAA8E;QAC9E,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE;KACvB,EAAE,CAAC,CAAC;AACT,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,yCAAyC,EAAE,MAAM,EAAE;QAC3G,8CAA8C;QAC9C,EAAE,EAAE,GAAG,CAAC,OAAO;QACf,+BAA+B;QAC/B,KAAK,EAAE,gBAAgB;QACvB,wCAAwC;QACxC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;QACnB,yEAAyE;QACzE,YAAY,EAAE,GAAG,CAAC,GAAG;KACxB,EAAE,CAAC,CAAC;AACT,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,iDAAiD,EAAE,MAAM,EAAE;QAC3H,6CAA6C;QAC7C,EAAE,EAAE,GAAG,CAAC,OAAO;KAClB,EAAE,CAAC,CAAC;AACT,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,0BAA0B,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9H,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,uDAAuD,EAAE,MAAM,EAAE;QACvI,cAAc,EAAE,GAAG,CAAC,OAAO;KAC9B,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../../../src/contracts/miso/composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,14 +43,15 @@
|
|
|
43
43
|
* the one trust assumption that never expires: integrators should model the cap
|
|
44
44
|
* holder as able to mutate or delete any extension data, forever.
|
|
45
45
|
*
|
|
46
|
-
* The recording carries its parent composition's identity
|
|
47
|
-
* `CompositionShare` phantom type parameter
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
46
|
+
* The recording carries its parent composition's identity two ways. The
|
|
47
|
+
* `CompositionShare` phantom type parameter is the durable identity (a share
|
|
48
|
+
* currency is published independently of miso and survives a fresh republish,
|
|
49
|
+
* whereas an object ID does not) and makes the recording↔composition lineage
|
|
50
|
+
* compile-time enforced wherever the two meet. The embedded `composition_id` is
|
|
51
|
+
* the address-level handle: Move cannot chase a type (or an ID) to an object, so
|
|
52
|
+
* on-chain consumers holding only `&Recording` — or a bare `Track` — could not
|
|
53
|
+
* otherwise reach the composition at all. Both are set at creation and immutable,
|
|
54
|
+
* so they cannot diverge.
|
|
54
55
|
*
|
|
55
56
|
* A recording is its own freshly-created object (`object::new`), not a derived
|
|
56
57
|
* child of its composition: `recording::new` takes a read-only `&Composition`
|
|
@@ -77,6 +78,14 @@ export declare const Recording: MoveStruct<{
|
|
|
77
78
|
/** Recording is published and immutable. Includes publication timestamp. */
|
|
78
79
|
Published: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
79
80
|
}, "@local-pkg/miso::recording::RecordingState">;
|
|
81
|
+
/**
|
|
82
|
+
* Object ID of the parent composition. The address-level counterpart of the
|
|
83
|
+
* `CompositionShare` phantom, set from the `&Composition` passed to `new` (the
|
|
84
|
+
* shared phantom proves the pairing). An identity handle — not a revenue routing
|
|
85
|
+
* target: the composition is paid through its recording-share ownership, settled
|
|
86
|
+
* at creation.
|
|
87
|
+
*/
|
|
88
|
+
composition_id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
80
89
|
}, "@local-pkg/miso::recording::Recording<phantom RecordingShare, phantom CompositionShare>">;
|
|
81
90
|
export declare const RecordingAdminCap: MoveStruct<{
|
|
82
91
|
/** Unique identifier for this capability. */
|
|
@@ -99,15 +108,13 @@ export interface NewArguments {
|
|
|
99
108
|
composition: RawTransactionArgument<string>;
|
|
100
109
|
shareCurrency: RawTransactionArgument<string>;
|
|
101
110
|
shareTreasuryCap: RawTransactionArgument<string>;
|
|
102
|
-
maxRoyaltyRateBps: RawTransactionArgument<number>;
|
|
103
111
|
}
|
|
104
112
|
export interface NewOptions {
|
|
105
113
|
package?: string;
|
|
106
114
|
arguments: NewArguments | [
|
|
107
115
|
composition: RawTransactionArgument<string>,
|
|
108
116
|
shareCurrency: RawTransactionArgument<string>,
|
|
109
|
-
shareTreasuryCap: RawTransactionArgument<string
|
|
110
|
-
maxRoyaltyRateBps: RawTransactionArgument<number>
|
|
117
|
+
shareTreasuryCap: RawTransactionArgument<string>
|
|
111
118
|
];
|
|
112
119
|
typeArguments: [
|
|
113
120
|
string,
|
|
@@ -126,13 +133,11 @@ export interface NewOptions {
|
|
|
126
133
|
* composition owner then does with the shares (hold, stake, sell) is outside the
|
|
127
134
|
* protocol's scope.
|
|
128
135
|
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
* will grant (pass the rate they observed, or `2000` to accept up to the protocol
|
|
135
|
-
* maximum).
|
|
136
|
+
* The composition's royalty rate is immutable, so the rate a recorder's client
|
|
137
|
+
* displayed is exactly the rate applied here — no slippage protection is needed or
|
|
138
|
+
* possible. Whether that rate is acceptable is the recorder's decision to make
|
|
139
|
+
* before calling; per-deal deviations settle as voluntary share transfers after
|
|
140
|
+
* creation.
|
|
136
141
|
*
|
|
137
142
|
* The composition need not be `Published`: within the composition's own creating
|
|
138
143
|
* transaction its creator can already mint recordings against it. Third parties
|
|
@@ -172,6 +177,26 @@ export interface PublishOptions {
|
|
|
172
177
|
* extension and may be attached before or after publish via `uid_mut`.
|
|
173
178
|
*/
|
|
174
179
|
export declare function publish(options: PublishOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
180
|
+
export interface CompositionIdArguments {
|
|
181
|
+
self: RawTransactionArgument<string>;
|
|
182
|
+
}
|
|
183
|
+
export interface CompositionIdOptions {
|
|
184
|
+
package?: string;
|
|
185
|
+
arguments: CompositionIdArguments | [
|
|
186
|
+
self: RawTransactionArgument<string>
|
|
187
|
+
];
|
|
188
|
+
typeArguments: [
|
|
189
|
+
string,
|
|
190
|
+
string
|
|
191
|
+
];
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Returns the object ID of the parent composition. An identity/membership handle
|
|
195
|
+
* (the address-level counterpart of the `CompositionShare` phantom) — not a
|
|
196
|
+
* revenue routing target: the composition is paid via its recording-share
|
|
197
|
+
* ownership.
|
|
198
|
+
*/
|
|
199
|
+
export declare function compositionId(options: CompositionIdOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
175
200
|
export interface IdArguments {
|
|
176
201
|
self: RawTransactionArgument<string>;
|
|
177
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../../src/contracts/miso/recording.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE
|
|
1
|
+
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../../src/contracts/miso/recording.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAA0B,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEzH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,sCAAsC;AACtC,eAAO,MAAM,cAAc;IACnB,qDAAqD;;IAErD,4EAA4E;;gDAE5E,CAAC;AACT,eAAO,MAAM,SAAS;IACd,4CAA4C;;IAE5C,+BAA+B;;QAR/B,qDAAqD;;QAErD,4EAA4E;;;IAQ5E;;;;;;OAMG;;6FAEH,CAAC;AACT,eAAO,MAAM,iBAAiB;IACtB,6CAA6C;;2EAE7C,CAAC;AACT,eAAO,MAAM,oBAAoB,uIAAwF,CAAC;AAC1H,eAAO,MAAM,uBAAuB;;2GAE5B,CAAC;AACT,eAAO,MAAM,6BAA6B;;;IAGlC,6DAA6D;;IAE7D,yEAAyE;;;iHAGzE,CAAC;AACT,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,gBAAgB,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;CACpD;AACD,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,YAAY,GAAG;QACtB,WAAW,EAAE,sBAAsB,CAAC,MAAM,CAAC;QAC3C,aAAa,EAAE,sBAAsB,CAAC,MAAM,CAAC;QAC7C,gBAAgB,EAAE,sBAAsB,CAAC,MAAM,CAAC;KACnD,CAAC;IACF,aAAa,EAAE;QACX,MAAM;QACN,MAAM;KACT,CAAC;CACL;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,UAAU,IAQ5B,IAAI,WAAW,0DAO1B;AACD,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;CACrC;AACD,MAAM,WAAW,cAAc;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,gBAAgB,GAAG;QAC1B,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC;QACpC,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC;KACpC,CAAC;IACF,aAAa,EAAE;QACX,MAAM;QACN,MAAM;KACT,CAAC;CACL;AACD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,IAQnC,IAAI,WAAW,0DAO1B;AACD,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;CACxC;AACD,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,sBAAsB,GAAG;QAChC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC;KACvC,CAAC;IACF,aAAa,EAAE;QACX,MAAM;QACN,MAAM;KACT,CAAC;CACL;AACD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,IAM/C,IAAI,WAAW,0DAO1B;AACD,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;CACxC;AACD,MAAM,WAAW,SAAS;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,WAAW,GAAG;QACrB,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC;KACvC,CAAC;IACF,aAAa,EAAE;QACX,MAAM;QACN,MAAM;KACT,CAAC;CACL;AACD,yCAAyC;AACzC,wBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,IAMzB,IAAI,WAAW,0DAO1B;AACD,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;CACxC;AACD,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,YAAY,GAAG;QACtB,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC;KACvC,CAAC;IACF,aAAa,EAAE;QACX,MAAM;QACN,MAAM;KACT,CAAC;CACL;AACD,6EAA6E;AAC7E,wBAAgB,GAAG,CAAC,OAAO,EAAE,UAAU,IAM3B,IAAI,WAAW,0DAO1B;AACD,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;CACrC;AACD,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,eAAe,GAAG;QACzB,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC;QACpC,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC;KACpC,CAAC;IACF,aAAa,EAAE;QACX,MAAM;QACN,MAAM;KACT,CAAC;CACL;AACD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,IAOjC,IAAI,WAAW,0DAO1B"}
|