@misofm/sdk 0.9.0 → 0.10.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 +88 -56
- package/dist/client.d.ts +126 -18
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +210 -44
- package/dist/client.js.map +1 -1
- package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts +205 -0
- package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts.map +1 -0
- package/dist/contracts/composition_routed_stake/composition_routed_stake.js +184 -0
- package/dist/contracts/composition_routed_stake/composition_routed_stake.js.map +1 -0
- package/dist/contracts/composition_routed_stake/witness.d.ts +7 -0
- package/dist/contracts/composition_routed_stake/witness.d.ts.map +1 -0
- package/dist/contracts/composition_routed_stake/witness.js +9 -0
- package/dist/contracts/composition_routed_stake/witness.js.map +1 -0
- package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts +89 -28
- package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts.map +1 -1
- package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js +84 -23
- package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js.map +1 -1
- package/dist/contracts/composition_royalty_pool/witness.d.ts +6 -0
- package/dist/contracts/composition_royalty_pool/witness.d.ts.map +1 -0
- package/dist/contracts/composition_royalty_pool/witness.js +8 -0
- package/dist/contracts/composition_royalty_pool/witness.js.map +1 -0
- package/dist/contracts/genre/genre.d.ts +96 -0
- package/dist/contracts/genre/genre.d.ts.map +1 -0
- package/dist/contracts/genre/genre.js +107 -0
- package/dist/contracts/genre/genre.js.map +1 -0
- package/dist/contracts/recording_advisory/recording_advisory.d.ts +194 -0
- package/dist/contracts/recording_advisory/recording_advisory.d.ts.map +1 -0
- package/dist/contracts/recording_advisory/recording_advisory.js +204 -0
- package/dist/contracts/recording_advisory/recording_advisory.js.map +1 -0
- package/dist/contracts/recording_language/deps/language_code/language_code.d.ts +6 -0
- package/dist/contracts/recording_language/deps/language_code/language_code.d.ts.map +1 -0
- package/dist/contracts/recording_language/deps/language_code/language_code.js +8 -0
- package/dist/contracts/recording_language/deps/language_code/language_code.js.map +1 -0
- package/dist/contracts/recording_language/recording_language.d.ts +152 -0
- package/dist/contracts/recording_language/recording_language.d.ts.map +1 -0
- package/dist/contracts/recording_language/recording_language.js +149 -0
- package/dist/contracts/recording_language/recording_language.js.map +1 -0
- package/dist/contracts/recording_master_reference/deps/ori/walrus_data.d.ts +52 -0
- package/dist/contracts/recording_master_reference/deps/ori/walrus_data.d.ts.map +1 -0
- package/dist/contracts/recording_master_reference/deps/ori/walrus_data.js +37 -0
- package/dist/contracts/recording_master_reference/deps/ori/walrus_data.js.map +1 -0
- package/dist/contracts/recording_master_reference/recording_master_reference.d.ts +131 -0
- package/dist/contracts/recording_master_reference/recording_master_reference.d.ts.map +1 -0
- package/dist/contracts/recording_master_reference/recording_master_reference.js +121 -0
- package/dist/contracts/recording_master_reference/recording_master_reference.js.map +1 -0
- package/dist/contracts/recording_preview/deps/ori/walrus_data.d.ts +52 -0
- package/dist/contracts/recording_preview/deps/ori/walrus_data.d.ts.map +1 -0
- package/dist/contracts/recording_preview/deps/ori/walrus_data.js +37 -0
- package/dist/contracts/recording_preview/deps/ori/walrus_data.js.map +1 -0
- package/dist/contracts/recording_preview/recording_preview.d.ts +104 -0
- package/dist/contracts/recording_preview/recording_preview.d.ts.map +1 -0
- package/dist/contracts/recording_preview/recording_preview.js +94 -0
- package/dist/contracts/recording_preview/recording_preview.js.map +1 -0
- package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts +90 -28
- package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts.map +1 -1
- package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js +84 -23
- package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js.map +1 -1
- package/dist/contracts/recording_royalty_pool/witness.d.ts +6 -0
- package/dist/contracts/recording_royalty_pool/witness.d.ts.map +1 -0
- package/dist/contracts/recording_royalty_pool/witness.js +8 -0
- package/dist/contracts/recording_royalty_pool/witness.js.map +1 -0
- package/dist/contracts/release_description/release_description.d.ts +112 -0
- package/dist/contracts/release_description/release_description.d.ts.map +1 -0
- package/dist/contracts/release_description/release_description.js +123 -0
- package/dist/contracts/release_description/release_description.js.map +1 -0
- package/dist/contracts/release_dsp_link/release_dsp_link.d.ts +644 -0
- package/dist/contracts/release_dsp_link/release_dsp_link.d.ts.map +1 -0
- package/dist/contracts/release_dsp_link/release_dsp_link.js +556 -0
- package/dist/contracts/release_dsp_link/release_dsp_link.js.map +1 -0
- package/dist/contracts/release_genre/deps/per_track/per_track.d.ts +33 -0
- package/dist/contracts/release_genre/deps/per_track/per_track.d.ts.map +1 -0
- package/dist/contracts/release_genre/deps/per_track/per_track.js +32 -0
- package/dist/contracts/release_genre/deps/per_track/per_track.js.map +1 -0
- package/dist/contracts/release_genre/release_genre.d.ts +193 -0
- package/dist/contracts/release_genre/release_genre.d.ts.map +1 -0
- package/dist/contracts/release_genre/release_genre.js +207 -0
- package/dist/contracts/release_genre/release_genre.js.map +1 -0
- package/dist/contracts/release_kind/release_kind.d.ts +98 -0
- package/dist/contracts/release_kind/release_kind.d.ts.map +1 -0
- package/dist/contracts/release_kind/release_kind.js +109 -0
- package/dist/contracts/release_kind/release_kind.js.map +1 -0
- package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts +106 -0
- package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts.map +1 -0
- package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js +113 -0
- package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js.map +1 -0
- package/dist/contracts/release_revenue_distributor/witness.d.ts +7 -0
- package/dist/contracts/release_revenue_distributor/witness.d.ts.map +1 -0
- package/dist/contracts/release_revenue_distributor/witness.js +9 -0
- package/dist/contracts/release_revenue_distributor/witness.js.map +1 -0
- package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.d.ts +52 -0
- package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.d.ts.map +1 -0
- package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.js +37 -0
- package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.js.map +1 -0
- package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.d.ts +91 -0
- package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.d.ts.map +1 -0
- package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.js +91 -0
- package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.js.map +1 -0
- package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts +54 -0
- package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts.map +1 -0
- package/dist/contracts/routed_stake/deps/royalty_pool/stake.js +37 -0
- package/dist/contracts/routed_stake/deps/royalty_pool/stake.js.map +1 -0
- package/dist/contracts/routed_stake/deps/std/type_name.d.ts +18 -0
- package/dist/contracts/routed_stake/deps/std/type_name.d.ts.map +1 -0
- package/dist/contracts/routed_stake/deps/std/type_name.js +20 -0
- package/dist/contracts/routed_stake/deps/std/type_name.js.map +1 -0
- package/dist/contracts/routed_stake/deps/sui/balance.d.ts +13 -0
- package/dist/contracts/routed_stake/deps/sui/balance.d.ts.map +1 -0
- package/dist/contracts/routed_stake/deps/sui/balance.js +15 -0
- package/dist/contracts/routed_stake/deps/sui/balance.js.map +1 -0
- package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts +37 -0
- package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts.map +1 -0
- package/dist/contracts/routed_stake/deps/sui/vec_map.js +28 -0
- package/dist/contracts/routed_stake/deps/sui/vec_map.js.map +1 -0
- package/dist/contracts/routed_stake/routed_stake.d.ts +356 -0
- package/dist/contracts/routed_stake/routed_stake.d.ts.map +1 -0
- package/dist/contracts/routed_stake/routed_stake.js +311 -0
- package/dist/contracts/routed_stake/routed_stake.js.map +1 -0
- package/dist/contracts/royalty_pool/pool.d.ts +27 -17
- package/dist/contracts/royalty_pool/pool.d.ts.map +1 -1
- package/dist/contracts/royalty_pool/pool.js +26 -17
- package/dist/contracts/royalty_pool/pool.js.map +1 -1
- package/dist/contracts/vault/deps/sui/bag.d.ts +35 -0
- package/dist/contracts/vault/deps/sui/bag.d.ts.map +1 -0
- package/dist/contracts/vault/deps/sui/bag.js +37 -0
- package/dist/contracts/vault/deps/sui/bag.js.map +1 -0
- package/dist/contracts/vault/deps/sui/borrow.d.ts +20 -0
- package/dist/contracts/vault/deps/sui/borrow.d.ts.map +1 -0
- package/dist/contracts/vault/deps/sui/borrow.js +21 -0
- package/dist/contracts/vault/deps/sui/borrow.js.map +1 -0
- package/dist/contracts/vault/vault.d.ts +276 -0
- package/dist/contracts/vault/vault.d.ts.map +1 -0
- package/dist/contracts/vault/vault.js +274 -0
- package/dist/contracts/vault/vault.js.map +1 -0
- package/dist/contracts.d.ts +14 -2
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +16 -7
- package/dist/contracts.js.map +1 -1
- package/dist/cover.d.ts +17 -3
- package/dist/cover.d.ts.map +1 -1
- package/dist/cover.js +43 -20
- package/dist/cover.js.map +1 -1
- package/dist/credits.d.ts +31 -12
- package/dist/credits.d.ts.map +1 -1
- package/dist/credits.js +41 -25
- package/dist/credits.js.map +1 -1
- package/dist/deployments.d.ts +31 -57
- package/dist/deployments.d.ts.map +1 -1
- package/dist/deployments.js +5 -53
- package/dist/deployments.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/pressing.d.ts +8 -7
- package/dist/pressing.d.ts.map +1 -1
- package/dist/pressing.js +91 -32
- package/dist/pressing.js.map +1 -1
- package/dist/read/artist.js +3 -3
- package/dist/read/artist.js.map +1 -1
- package/dist/read/catalog.d.ts +14 -9
- package/dist/read/catalog.d.ts.map +1 -1
- package/dist/read/catalog.js +71 -37
- package/dist/read/catalog.js.map +1 -1
- package/dist/read/client.d.ts +4 -2
- package/dist/read/client.d.ts.map +1 -1
- package/dist/read/client.js +15 -4
- package/dist/read/client.js.map +1 -1
- package/dist/read/config.d.ts +14 -11
- package/dist/read/config.d.ts.map +1 -1
- package/dist/read/config.js +10 -37
- package/dist/read/config.js.map +1 -1
- package/dist/read/index.d.ts +2 -2
- package/dist/read/index.d.ts.map +1 -1
- package/dist/read/index.js +1 -1
- package/dist/read/index.js.map +1 -1
- package/dist/read/receipts.d.ts +24 -7
- package/dist/read/receipts.d.ts.map +1 -1
- package/dist/read/receipts.js +78 -25
- package/dist/read/receipts.js.map +1 -1
- package/dist/read/types.d.ts +43 -25
- package/dist/read/types.d.ts.map +1 -1
- package/dist/read/types.js +2 -2
- package/dist/read/types.js.map +1 -1
- package/dist/recording-extensions.d.ts +37 -0
- package/dist/recording-extensions.d.ts.map +1 -0
- package/dist/recording-extensions.js +61 -0
- package/dist/recording-extensions.js.map +1 -0
- package/dist/release-extensions.d.ts +92 -0
- package/dist/release-extensions.d.ts.map +1 -0
- package/dist/release-extensions.js +175 -0
- package/dist/release-extensions.js.map +1 -0
- package/dist/release-graph.d.ts +17 -26
- package/dist/release-graph.d.ts.map +1 -1
- package/dist/release-graph.js +55 -49
- package/dist/release-graph.js.map +1 -1
- package/dist/transactions.d.ts +43 -24
- package/dist/transactions.d.ts.map +1 -1
- package/dist/transactions.js +48 -27
- package/dist/transactions.js.map +1 -1
- package/dist/vault.d.ts +268 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/vault.js +389 -0
- package/dist/vault.js.map +1 -0
- package/package.json +17 -11
- package/src/client.ts +428 -61
- package/src/contracts/composition_routed_stake/composition_routed_stake.ts +346 -0
- package/src/contracts/composition_routed_stake/witness.ts +11 -0
- package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +151 -35
- package/src/contracts/composition_royalty_pool/witness.ts +7 -0
- package/src/contracts/genre/genre.ts +151 -0
- package/src/contracts/recording_advisory/recording_advisory.ts +315 -0
- package/src/contracts/recording_language/deps/language_code/language_code.ts +7 -0
- package/src/contracts/recording_language/recording_language.ts +237 -0
- package/src/contracts/recording_master_reference/deps/ori/walrus_data.ts +36 -0
- package/src/contracts/recording_master_reference/recording_master_reference.ts +181 -0
- package/src/contracts/recording_preview/deps/ori/walrus_data.ts +36 -0
- package/src/contracts/recording_preview/recording_preview.ts +154 -0
- package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +152 -35
- package/src/contracts/recording_royalty_pool/witness.ts +7 -0
- package/src/contracts/release_description/release_description.ts +167 -0
- package/src/contracts/release_dsp_link/release_dsp_link.ts +813 -0
- package/src/contracts/release_genre/deps/per_track/per_track.ts +36 -0
- package/src/contracts/release_genre/release_genre.ts +314 -0
- package/src/contracts/release_kind/release_kind.ts +153 -0
- package/src/contracts/release_revenue_distributor/release_revenue_distributor.ts +178 -0
- package/src/contracts/release_revenue_distributor/witness.ts +11 -0
- package/src/contracts/release_snapshot_bundle/deps/ori/walrus_data.ts +36 -0
- package/src/contracts/release_snapshot_bundle/release_snapshot_bundle.ts +124 -0
- package/src/contracts/routed_stake/deps/royalty_pool/stake.ts +39 -0
- package/src/contracts/routed_stake/deps/std/type_name.ts +22 -0
- package/src/contracts/routed_stake/deps/sui/balance.ts +17 -0
- package/src/contracts/routed_stake/deps/sui/vec_map.ts +33 -0
- package/src/contracts/routed_stake/routed_stake.ts +508 -0
- package/src/contracts/royalty_pool/pool.ts +34 -24
- package/src/contracts/vault/deps/sui/bag.ts +39 -0
- package/src/contracts/vault/deps/sui/borrow.ts +25 -0
- package/src/contracts/vault/vault.ts +454 -0
- package/src/contracts.ts +17 -9
- package/src/cover.ts +62 -37
- package/src/credits.ts +64 -51
- package/src/deployments.ts +36 -97
- package/src/index.ts +11 -5
- package/src/pressing.ts +135 -39
- package/src/read/artist.ts +3 -3
- package/src/read/catalog.ts +99 -44
- package/src/read/client.ts +20 -4
- package/src/read/config.ts +23 -49
- package/src/read/index.ts +3 -1
- package/src/read/receipts.ts +103 -26
- package/src/read/types.ts +44 -27
- package/src/recording-extensions.ts +102 -0
- package/src/release-extensions.ts +286 -0
- package/src/release-graph.ts +68 -81
- package/src/transactions.ts +79 -53
- package/src/vault.ts +777 -0
- package/dist/contracts/miso_drop/drop.d.ts +0 -550
- package/dist/contracts/miso_drop/drop.d.ts.map +0 -1
- package/dist/contracts/miso_drop/drop.js +0 -523
- package/dist/contracts/miso_drop/drop.js.map +0 -1
- package/dist/contracts/release_registry/release_registry.d.ts +0 -114
- package/dist/contracts/release_registry/release_registry.d.ts.map +0 -1
- package/dist/contracts/release_registry/release_registry.js +0 -119
- package/dist/contracts/release_registry/release_registry.js.map +0 -1
- package/dist/drop.d.ts +0 -127
- package/dist/drop.d.ts.map +0 -1
- package/dist/drop.js +0 -202
- package/dist/drop.js.map +0 -1
- package/dist/extensions/royalty-pool.d.ts +0 -32
- package/dist/extensions/royalty-pool.d.ts.map +0 -1
- package/dist/extensions/royalty-pool.js +0 -33
- package/dist/extensions/royalty-pool.js.map +0 -1
- package/src/contracts/miso_drop/drop.ts +0 -798
- package/src/contracts/release_registry/release_registry.ts +0 -160
- package/src/drop.ts +0 -376
- package/src/extensions/royalty-pool.ts +0 -90
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
/**************************************************************
|
|
2
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
3
|
+
**************************************************************/
|
|
4
|
+
/**
|
|
5
|
+
* A stake whose rewards are irrevocably routed to its parent's royalty pool.
|
|
6
|
+
*
|
|
7
|
+
* A `RoutedStake<StakeShare, PoolShare>` is a derived object of any UID-bearing
|
|
8
|
+
* parent (same pattern as `RoyaltyPool`). It wraps a `Stake<StakeShare>` — shares
|
|
9
|
+
* of some other asset that the parent owns — and commits the rewards that stake
|
|
10
|
+
* earns to the parent's own `RoyaltyPool<PoolShare, Currency>`: `sweep` is the
|
|
11
|
+
* only reachable claim path, and it deposits straight into the pool derived from
|
|
12
|
+
* the same parent. The wrapper exists precisely so the raw `Stake` is never
|
|
13
|
+
* exposed — a bare shared `Stake` would let any caller claim its rewards and keep
|
|
14
|
+
* them.
|
|
15
|
+
*
|
|
16
|
+
* Because the route is fixed, the wrapper is safe to share: `sweep` is
|
|
17
|
+
* permissionless, and it does not matter who calls it, since the money can only go
|
|
18
|
+
* one place. Lifecycle operations (`register`, `unregister`, `unstake`, `restake`)
|
|
19
|
+
* instead require the parent's `&mut UID` as the credential — cap-gating happens
|
|
20
|
+
* at the parent, exactly as with `RoyaltyPool` creation. `register`/`unregister`
|
|
21
|
+
* are gated because a stake registers at most once per `Currency`: a
|
|
22
|
+
* permissionless register could grief by binding the stake to a garbage same-typed
|
|
23
|
+
* pool, permanently blocking the real one for that currency.
|
|
24
|
+
*
|
|
25
|
+
* The derivation key encodes only `StakeShare` — at most one routed stake per
|
|
26
|
+
* `(parent, StakeShare)` pair, whatever `PoolShare` it used (the same
|
|
27
|
+
* burned-by-first-claim consequence as `RoyaltyPoolKey`; the parent's cap-gated
|
|
28
|
+
* extension is expected to pin `PoolShare` to the parent's own share type). For
|
|
29
|
+
* the same reason the wrapper is never deleted: `unstake` empties it and `restake`
|
|
30
|
+
* refills it, so the one derived address per pair stays usable forever.
|
|
31
|
+
*/
|
|
32
|
+
import { MoveStruct, MoveTuple, normalizeMoveArguments } from '../utils/index.js';
|
|
33
|
+
import { bcs } from '@mysten/sui/bcs';
|
|
34
|
+
import {} from '@mysten/sui/transactions';
|
|
35
|
+
import * as stake_1 from './deps/royalty_pool/stake.js';
|
|
36
|
+
const $moduleName = '@local-pkg/routed_stake::routed_stake';
|
|
37
|
+
export const RoutedStake = new MoveStruct({ name: `${$moduleName}::RoutedStake<phantom StakeShare, phantom PoolShare>`, fields: {
|
|
38
|
+
id: bcs.Address,
|
|
39
|
+
/**
|
|
40
|
+
* The wrapped position. `None` between `unstake` and `restake`; the wrapper itself
|
|
41
|
+
* persists because its derived address can never be re-claimed.
|
|
42
|
+
*/
|
|
43
|
+
stake: bcs.option(stake_1.Stake)
|
|
44
|
+
} });
|
|
45
|
+
export const RoutedStakeKey = new MoveTuple({ name: `${$moduleName}::RoutedStakeKey<phantom StakeShare>`, fields: [bcs.bool()] });
|
|
46
|
+
export const RoutedStakeCreatedEvent = new MoveStruct({ name: `${$moduleName}::RoutedStakeCreatedEvent<phantom StakeShare, phantom PoolShare>`, fields: {
|
|
47
|
+
routed_stake_id: bcs.Address,
|
|
48
|
+
parent_id: bcs.Address,
|
|
49
|
+
staked_value: bcs.u64()
|
|
50
|
+
} });
|
|
51
|
+
export const RoutedStakeSweptEvent = new MoveStruct({ name: `${$moduleName}::RoutedStakeSweptEvent<phantom StakeShare, phantom PoolShare, phantom Currency>`, fields: {
|
|
52
|
+
routed_stake_id: bcs.Address,
|
|
53
|
+
parent_id: bcs.Address,
|
|
54
|
+
value: bcs.u64()
|
|
55
|
+
} });
|
|
56
|
+
export const RoutedStakeUnstakedEvent = new MoveStruct({ name: `${$moduleName}::RoutedStakeUnstakedEvent<phantom StakeShare, phantom PoolShare>`, fields: {
|
|
57
|
+
routed_stake_id: bcs.Address,
|
|
58
|
+
parent_id: bcs.Address,
|
|
59
|
+
unstaked_value: bcs.u64()
|
|
60
|
+
} });
|
|
61
|
+
export const RoutedStakeRestakedEvent = new MoveStruct({ name: `${$moduleName}::RoutedStakeRestakedEvent<phantom StakeShare, phantom PoolShare>`, fields: {
|
|
62
|
+
routed_stake_id: bcs.Address,
|
|
63
|
+
parent_id: bcs.Address,
|
|
64
|
+
staked_value: bcs.u64()
|
|
65
|
+
} });
|
|
66
|
+
/**
|
|
67
|
+
* Construct a routed stake as a derived object of `parent`, wrapping `balance` as
|
|
68
|
+
* its staked position. Aborts (in `stake::new`) on a zero balance, and (in
|
|
69
|
+
* `derived_object::claim`) if the `(parent, StakeShare)` address was already
|
|
70
|
+
* claimed.
|
|
71
|
+
*
|
|
72
|
+
* Cap-gating happens at the parent: callers must obtain `&mut UID` via whatever
|
|
73
|
+
* cap-gated accessor the parent exposes.
|
|
74
|
+
*/
|
|
75
|
+
export function _new(options) {
|
|
76
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
77
|
+
const argumentsTypes = [
|
|
78
|
+
'0x2::object::ID',
|
|
79
|
+
null
|
|
80
|
+
];
|
|
81
|
+
const parameterNames = ["parent", "balance"];
|
|
82
|
+
return (tx) => tx.moveCall({
|
|
83
|
+
package: packageAddress,
|
|
84
|
+
module: 'routed_stake',
|
|
85
|
+
function: 'new',
|
|
86
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
87
|
+
typeArguments: options.typeArguments
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/** Share the routed stake so anyone can `sweep` it. */
|
|
91
|
+
export function share(options) {
|
|
92
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
93
|
+
const argumentsTypes = [
|
|
94
|
+
null
|
|
95
|
+
];
|
|
96
|
+
const parameterNames = ["self"];
|
|
97
|
+
return (tx) => tx.moveCall({
|
|
98
|
+
package: packageAddress,
|
|
99
|
+
module: 'routed_stake',
|
|
100
|
+
function: 'share',
|
|
101
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
102
|
+
typeArguments: options.typeArguments
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Register the wrapped stake with the pool it earns from, so future deposits
|
|
107
|
+
* accrue to it. Which same-typed pool is the _correct_ one is the caller's concern
|
|
108
|
+
* — the parent's extension is expected to pin it (e.g. by derivation from the
|
|
109
|
+
* asset object) before delegating here.
|
|
110
|
+
*/
|
|
111
|
+
export function register(options) {
|
|
112
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
113
|
+
const argumentsTypes = [
|
|
114
|
+
null,
|
|
115
|
+
'0x2::object::ID',
|
|
116
|
+
null
|
|
117
|
+
];
|
|
118
|
+
const parameterNames = ["self", "parent", "stakePool"];
|
|
119
|
+
return (tx) => tx.moveCall({
|
|
120
|
+
package: packageAddress,
|
|
121
|
+
module: 'routed_stake',
|
|
122
|
+
function: 'register',
|
|
123
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
124
|
+
typeArguments: options.typeArguments
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Unregister the wrapped stake from a pool it earns from. The pool requires
|
|
129
|
+
* claimable rewards to be drained to zero first — i.e. a final `sweep` — so
|
|
130
|
+
* accrued rewards provably reach the parent's pool before the position can move.
|
|
131
|
+
*/
|
|
132
|
+
export function unregister(options) {
|
|
133
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
134
|
+
const argumentsTypes = [
|
|
135
|
+
null,
|
|
136
|
+
'0x2::object::ID',
|
|
137
|
+
null
|
|
138
|
+
];
|
|
139
|
+
const parameterNames = ["self", "parent", "stakePool"];
|
|
140
|
+
return (tx) => tx.moveCall({
|
|
141
|
+
package: packageAddress,
|
|
142
|
+
module: 'routed_stake',
|
|
143
|
+
function: 'unregister',
|
|
144
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
145
|
+
typeArguments: options.typeArguments
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Remove the staked position and return its principal. Aborts (in
|
|
150
|
+
* `stake::destroy`) while any pool registrations remain. The emptied wrapper
|
|
151
|
+
* persists — its derived address is burned forever, so deleting it would
|
|
152
|
+
* permanently destroy the parent's ability to route-stake this share type;
|
|
153
|
+
* `restake` refills it instead.
|
|
154
|
+
*/
|
|
155
|
+
export function unstake(options) {
|
|
156
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
157
|
+
const argumentsTypes = [
|
|
158
|
+
null,
|
|
159
|
+
'0x2::object::ID'
|
|
160
|
+
];
|
|
161
|
+
const parameterNames = ["self", "parent"];
|
|
162
|
+
return (tx) => tx.moveCall({
|
|
163
|
+
package: packageAddress,
|
|
164
|
+
module: 'routed_stake',
|
|
165
|
+
function: 'unstake',
|
|
166
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
167
|
+
typeArguments: options.typeArguments
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Refill an emptied wrapper with a new staked position. Aborts if a position is
|
|
172
|
+
* already present.
|
|
173
|
+
*/
|
|
174
|
+
export function restake(options) {
|
|
175
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
176
|
+
const argumentsTypes = [
|
|
177
|
+
null,
|
|
178
|
+
'0x2::object::ID',
|
|
179
|
+
null
|
|
180
|
+
];
|
|
181
|
+
const parameterNames = ["self", "parent", "balance"];
|
|
182
|
+
return (tx) => tx.moveCall({
|
|
183
|
+
package: packageAddress,
|
|
184
|
+
module: 'routed_stake',
|
|
185
|
+
function: 'restake',
|
|
186
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
187
|
+
typeArguments: options.typeArguments
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Claim the wrapped stake's accrued rewards from `stake_pool` and deposit them
|
|
192
|
+
* into `routed_pool` — the parent's own pool. Permissionless: the caller supplies
|
|
193
|
+
* `parent_id`, but cannot lie, because both the wrapper's own address and
|
|
194
|
+
* `routed_pool`'s address must derive from it. A zero reward is a no-op (no
|
|
195
|
+
* event), so the call composes safely into batch PTBs; a positive reward aborts
|
|
196
|
+
* (in `royalty_pool::pool`) if `routed_pool` has no registered stakes — the reward
|
|
197
|
+
* stays claimable here until it does.
|
|
198
|
+
*/
|
|
199
|
+
export function sweep(options) {
|
|
200
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
201
|
+
const argumentsTypes = [
|
|
202
|
+
null,
|
|
203
|
+
null,
|
|
204
|
+
null,
|
|
205
|
+
'0x2::object::ID'
|
|
206
|
+
];
|
|
207
|
+
const parameterNames = ["self", "stakePool", "routedPool", "parentId"];
|
|
208
|
+
return (tx) => tx.moveCall({
|
|
209
|
+
package: packageAddress,
|
|
210
|
+
module: 'routed_stake',
|
|
211
|
+
function: 'sweep',
|
|
212
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
213
|
+
typeArguments: options.typeArguments
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
export function id(options) {
|
|
217
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
218
|
+
const argumentsTypes = [
|
|
219
|
+
null
|
|
220
|
+
];
|
|
221
|
+
const parameterNames = ["self"];
|
|
222
|
+
return (tx) => tx.moveCall({
|
|
223
|
+
package: packageAddress,
|
|
224
|
+
module: 'routed_stake',
|
|
225
|
+
function: 'id',
|
|
226
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
227
|
+
typeArguments: options.typeArguments
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
export function hasStake(options) {
|
|
231
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
232
|
+
const argumentsTypes = [
|
|
233
|
+
null
|
|
234
|
+
];
|
|
235
|
+
const parameterNames = ["self"];
|
|
236
|
+
return (tx) => tx.moveCall({
|
|
237
|
+
package: packageAddress,
|
|
238
|
+
module: 'routed_stake',
|
|
239
|
+
function: 'has_stake',
|
|
240
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
241
|
+
typeArguments: options.typeArguments
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
/** Staked principal, or 0 while the wrapper is empty. */
|
|
245
|
+
export function value(options) {
|
|
246
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
247
|
+
const argumentsTypes = [
|
|
248
|
+
null
|
|
249
|
+
];
|
|
250
|
+
const parameterNames = ["self"];
|
|
251
|
+
return (tx) => tx.moveCall({
|
|
252
|
+
package: packageAddress,
|
|
253
|
+
module: 'routed_stake',
|
|
254
|
+
function: 'value',
|
|
255
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
256
|
+
typeArguments: options.typeArguments
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Read-only access to the wrapped stake, e.g. for `pool::pending_rewards`. Aborts
|
|
261
|
+
* while the wrapper is empty (`has_stake` to guard).
|
|
262
|
+
*/
|
|
263
|
+
export function stake(options) {
|
|
264
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
265
|
+
const argumentsTypes = [
|
|
266
|
+
null
|
|
267
|
+
];
|
|
268
|
+
const parameterNames = ["self"];
|
|
269
|
+
return (tx) => tx.moveCall({
|
|
270
|
+
package: packageAddress,
|
|
271
|
+
module: 'routed_stake',
|
|
272
|
+
function: 'stake',
|
|
273
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
274
|
+
typeArguments: options.typeArguments
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Compute the deterministic address of a routed stake given its parent ID and
|
|
279
|
+
* `StakeShare` type parameter.
|
|
280
|
+
*/
|
|
281
|
+
export function derivedAddress(options) {
|
|
282
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
283
|
+
const argumentsTypes = [
|
|
284
|
+
'0x2::object::ID'
|
|
285
|
+
];
|
|
286
|
+
const parameterNames = ["parentId"];
|
|
287
|
+
return (tx) => tx.moveCall({
|
|
288
|
+
package: packageAddress,
|
|
289
|
+
module: 'routed_stake',
|
|
290
|
+
function: 'derived_address',
|
|
291
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
292
|
+
typeArguments: options.typeArguments
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
/** Verify the routed stake was derived from the given parent ID. */
|
|
296
|
+
export function assertDerivedFrom(options) {
|
|
297
|
+
const packageAddress = options.package ?? '@local-pkg/routed_stake';
|
|
298
|
+
const argumentsTypes = [
|
|
299
|
+
null,
|
|
300
|
+
'0x2::object::ID'
|
|
301
|
+
];
|
|
302
|
+
const parameterNames = ["self", "parentId"];
|
|
303
|
+
return (tx) => tx.moveCall({
|
|
304
|
+
package: packageAddress,
|
|
305
|
+
module: 'routed_stake',
|
|
306
|
+
function: 'assert_derived_from',
|
|
307
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
308
|
+
typeArguments: options.typeArguments
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
//# sourceMappingURL=routed_stake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routed_stake.js","sourceRoot":"","sources":["../../../src/contracts/routed_stake/routed_stake.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,25 +5,33 @@
|
|
|
5
5
|
* Accumulator-based royalty distribution pool for the protocol's share tokens.
|
|
6
6
|
*
|
|
7
7
|
* A `RoyaltyPool<Share, Currency>` is a derived object of any UID-bearing parent.
|
|
8
|
-
* Its address is deterministically derived from `(parent_id, Currency)` —
|
|
9
|
-
* one pool per
|
|
10
|
-
*
|
|
8
|
+
* Its address is deterministically derived from `(parent_id, Share, Currency)` —
|
|
9
|
+
* at most one pool per triple, and the pool at that address is necessarily typed
|
|
10
|
+
* `RoyaltyPool<Share, Currency>` (the same type parameters produce the address and
|
|
11
|
+
* the object) and necessarily shared (the pool is key-only; `share` is its only
|
|
12
|
+
* consumer). The `Share` phantom identifies which share-token type can stake
|
|
13
|
+
* against the pool.
|
|
11
14
|
*
|
|
12
15
|
* Holders create a `Stake<Share>` (see `royalty_pool::stake`) and register it.
|
|
13
16
|
* Callers fund the pool by handing it a `Balance<Currency>` via `deposit`; the
|
|
14
17
|
* accumulator advances and claims pay out the per-stake proportional share since
|
|
15
18
|
* each stake's last claim.
|
|
16
19
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
20
|
+
* The pool is funded two ways, both committing the funds to share holders:
|
|
21
|
+
*
|
|
22
|
+
* - `deposit(balance)` from any caller holding `&mut` on the pool — e.g.
|
|
23
|
+
* `routed_stake::sweep`, which deposits a wrapped stake's claimed rewards into
|
|
24
|
+
* its parent's pool.
|
|
25
|
+
* - Delivery to the pool's derived address — pending `Coin<Currency>` transfers or
|
|
26
|
+
* address-balance credits (e.g. `release_revenue_distributor` settles each
|
|
27
|
+
* track's split there). The address is a pure function of
|
|
28
|
+
* `(parent_id, Share, Currency)`, so senders need the pool neither shared nor
|
|
29
|
+
* even created yet; a later `new` claims exactly that ID — and can only be the
|
|
30
|
+
* correctly-typed, shared pool. `receive_and_deposit` and `redeem_and_deposit`
|
|
31
|
+
* fold such funds into the accumulator, permissionlessly: anyone can complete
|
|
32
|
+
* the delivery. Both run through `deposit`, which aborts while no shares are
|
|
33
|
+
* staked — and the pool has no other withdrawal path — so funds at the pool's
|
|
34
|
+
* address wait, locked, until the pool exists and a stake registers.
|
|
27
35
|
*
|
|
28
36
|
* ### No activation delay (deliberate)
|
|
29
37
|
*
|
|
@@ -62,7 +70,7 @@ export declare const RoyaltyPool: MoveStruct<{
|
|
|
62
70
|
*/
|
|
63
71
|
cumulative_deposits: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u128">;
|
|
64
72
|
}, "@local-pkg/royalty_pool::pool::RoyaltyPool<phantom Share, phantom Currency>">;
|
|
65
|
-
export declare const RoyaltyPoolKey: MoveTuple<readonly [import("@mysten/sui/bcs").BcsType<boolean, boolean, "bool">], "@local-pkg/royalty_pool::pool::RoyaltyPoolKey<phantom Currency>">;
|
|
73
|
+
export declare const RoyaltyPoolKey: MoveTuple<readonly [import("@mysten/sui/bcs").BcsType<boolean, boolean, "bool">], "@local-pkg/royalty_pool::pool::RoyaltyPoolKey<phantom Share, phantom Currency>">;
|
|
66
74
|
export declare const RoyaltyPoolCreatedEvent: MoveStruct<{
|
|
67
75
|
pool_id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
68
76
|
parent_id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
@@ -100,9 +108,10 @@ export interface NewOptions {
|
|
|
100
108
|
];
|
|
101
109
|
}
|
|
102
110
|
/**
|
|
103
|
-
* Construct a pool as a derived object of `parent`. The derivation key
|
|
104
|
-
*
|
|
105
|
-
* `(parent_id, Currency)
|
|
111
|
+
* Construct a pool as a derived object of `parent`. The derivation key encodes
|
|
112
|
+
* both type parameters, so the pool's address is determined entirely by
|
|
113
|
+
* `(parent_id, Share, Currency)` — and therefore always names a pool of exactly
|
|
114
|
+
* this type (see `RoyaltyPoolKey`).
|
|
106
115
|
*
|
|
107
116
|
* Cap-gating happens at the parent: callers must obtain `&mut UID` via whatever
|
|
108
117
|
* cap-gated accessor the parent exposes.
|
|
@@ -355,6 +364,7 @@ export interface DerivedAddressOptions {
|
|
|
355
364
|
parentId: RawTransactionArgument<string>
|
|
356
365
|
];
|
|
357
366
|
typeArguments: [
|
|
367
|
+
string,
|
|
358
368
|
string
|
|
359
369
|
];
|
|
360
370
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/contracts/royalty_pool/pool.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/contracts/royalty_pool/pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,25 +5,33 @@
|
|
|
5
5
|
* Accumulator-based royalty distribution pool for the protocol's share tokens.
|
|
6
6
|
*
|
|
7
7
|
* A `RoyaltyPool<Share, Currency>` is a derived object of any UID-bearing parent.
|
|
8
|
-
* Its address is deterministically derived from `(parent_id, Currency)` —
|
|
9
|
-
* one pool per
|
|
10
|
-
*
|
|
8
|
+
* Its address is deterministically derived from `(parent_id, Share, Currency)` —
|
|
9
|
+
* at most one pool per triple, and the pool at that address is necessarily typed
|
|
10
|
+
* `RoyaltyPool<Share, Currency>` (the same type parameters produce the address and
|
|
11
|
+
* the object) and necessarily shared (the pool is key-only; `share` is its only
|
|
12
|
+
* consumer). The `Share` phantom identifies which share-token type can stake
|
|
13
|
+
* against the pool.
|
|
11
14
|
*
|
|
12
15
|
* Holders create a `Stake<Share>` (see `royalty_pool::stake`) and register it.
|
|
13
16
|
* Callers fund the pool by handing it a `Balance<Currency>` via `deposit`; the
|
|
14
17
|
* accumulator advances and claims pay out the per-stake proportional share since
|
|
15
18
|
* each stake's last claim.
|
|
16
19
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
20
|
+
* The pool is funded two ways, both committing the funds to share holders:
|
|
21
|
+
*
|
|
22
|
+
* - `deposit(balance)` from any caller holding `&mut` on the pool — e.g.
|
|
23
|
+
* `routed_stake::sweep`, which deposits a wrapped stake's claimed rewards into
|
|
24
|
+
* its parent's pool.
|
|
25
|
+
* - Delivery to the pool's derived address — pending `Coin<Currency>` transfers or
|
|
26
|
+
* address-balance credits (e.g. `release_revenue_distributor` settles each
|
|
27
|
+
* track's split there). The address is a pure function of
|
|
28
|
+
* `(parent_id, Share, Currency)`, so senders need the pool neither shared nor
|
|
29
|
+
* even created yet; a later `new` claims exactly that ID — and can only be the
|
|
30
|
+
* correctly-typed, shared pool. `receive_and_deposit` and `redeem_and_deposit`
|
|
31
|
+
* fold such funds into the accumulator, permissionlessly: anyone can complete
|
|
32
|
+
* the delivery. Both run through `deposit`, which aborts while no shares are
|
|
33
|
+
* staked — and the pool has no other withdrawal path — so funds at the pool's
|
|
34
|
+
* address wait, locked, until the pool exists and a stake registers.
|
|
27
35
|
*
|
|
28
36
|
* ### No activation delay (deliberate)
|
|
29
37
|
*
|
|
@@ -63,7 +71,7 @@ export const RoyaltyPool = new MoveStruct({ name: `${$moduleName}::RoyaltyPool<p
|
|
|
63
71
|
*/
|
|
64
72
|
cumulative_deposits: bcs.u128()
|
|
65
73
|
} });
|
|
66
|
-
export const RoyaltyPoolKey = new MoveTuple({ name: `${$moduleName}::RoyaltyPoolKey<phantom Currency>`, fields: [bcs.bool()] });
|
|
74
|
+
export const RoyaltyPoolKey = new MoveTuple({ name: `${$moduleName}::RoyaltyPoolKey<phantom Share, phantom Currency>`, fields: [bcs.bool()] });
|
|
67
75
|
export const RoyaltyPoolCreatedEvent = new MoveStruct({ name: `${$moduleName}::RoyaltyPoolCreatedEvent<phantom Share, phantom Currency>`, fields: {
|
|
68
76
|
pool_id: bcs.Address,
|
|
69
77
|
parent_id: bcs.Address
|
|
@@ -88,9 +96,10 @@ export const RoyaltyClaimedEvent = new MoveStruct({ name: `${$moduleName}::Royal
|
|
|
88
96
|
reward_amount: bcs.u64()
|
|
89
97
|
} });
|
|
90
98
|
/**
|
|
91
|
-
* Construct a pool as a derived object of `parent`. The derivation key
|
|
92
|
-
*
|
|
93
|
-
* `(parent_id, Currency)
|
|
99
|
+
* Construct a pool as a derived object of `parent`. The derivation key encodes
|
|
100
|
+
* both type parameters, so the pool's address is determined entirely by
|
|
101
|
+
* `(parent_id, Share, Currency)` — and therefore always names a pool of exactly
|
|
102
|
+
* this type (see `RoyaltyPoolKey`).
|
|
94
103
|
*
|
|
95
104
|
* Cap-gating happens at the parent: callers must obtain `&mut UID` via whatever
|
|
96
105
|
* cap-gated accessor the parent exposes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../src/contracts/royalty_pool/pool.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../src/contracts/royalty_pool/pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**************************************************************
|
|
2
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
3
|
+
**************************************************************/
|
|
4
|
+
/**
|
|
5
|
+
* A bag is a heterogeneous map-like collection. The collection is similar to
|
|
6
|
+
* `sui::table` in that its keys and values are not stored within the `Bag` value,
|
|
7
|
+
* but instead are stored using Sui's object system. The `Bag` struct acts only as
|
|
8
|
+
* a handle into the object system to retrieve those keys and values. Note that
|
|
9
|
+
* this means that `Bag` values with exactly the same key-value mapping will not be
|
|
10
|
+
* equal, with `==`, at runtime. For example
|
|
11
|
+
*
|
|
12
|
+
* ```
|
|
13
|
+
* let bag1 = bag::new();
|
|
14
|
+
* let bag2 = bag::new();
|
|
15
|
+
* bag::add(&mut bag1, 0, false);
|
|
16
|
+
* bag::add(&mut bag1, 1, true);
|
|
17
|
+
* bag::add(&mut bag2, 0, false);
|
|
18
|
+
* bag::add(&mut bag2, 1, true);
|
|
19
|
+
* // bag1 does not equal bag2, despite having the same entries
|
|
20
|
+
* assert!(&bag1 != &bag2);
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* At it's core, `sui::bag` is a wrapper around `UID` that allows for access to
|
|
24
|
+
* `sui::dynamic_field` while preventing accidentally stranding field values. A
|
|
25
|
+
* `UID` can be deleted, even if it has dynamic fields associated with it, but a
|
|
26
|
+
* bag, on the other hand, must be empty to be destroyed.
|
|
27
|
+
*/
|
|
28
|
+
import { MoveStruct } from '../../../utils/index.js';
|
|
29
|
+
export declare const Bag: MoveStruct<{
|
|
30
|
+
/** the ID of this bag */
|
|
31
|
+
id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
32
|
+
/** the number of key-value pairs in the bag */
|
|
33
|
+
size: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
34
|
+
}, "0x2::bag::Bag">;
|
|
35
|
+
//# sourceMappingURL=bag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bag.d.ts","sourceRoot":"","sources":["../../../../../src/contracts/vault/deps/sui/bag.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,eAAO,MAAM,GAAG;IACR,yBAAyB;;IAEzB,+CAA+C;;mBAE/C,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**************************************************************
|
|
2
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
3
|
+
**************************************************************/
|
|
4
|
+
/**
|
|
5
|
+
* A bag is a heterogeneous map-like collection. The collection is similar to
|
|
6
|
+
* `sui::table` in that its keys and values are not stored within the `Bag` value,
|
|
7
|
+
* but instead are stored using Sui's object system. The `Bag` struct acts only as
|
|
8
|
+
* a handle into the object system to retrieve those keys and values. Note that
|
|
9
|
+
* this means that `Bag` values with exactly the same key-value mapping will not be
|
|
10
|
+
* equal, with `==`, at runtime. For example
|
|
11
|
+
*
|
|
12
|
+
* ```
|
|
13
|
+
* let bag1 = bag::new();
|
|
14
|
+
* let bag2 = bag::new();
|
|
15
|
+
* bag::add(&mut bag1, 0, false);
|
|
16
|
+
* bag::add(&mut bag1, 1, true);
|
|
17
|
+
* bag::add(&mut bag2, 0, false);
|
|
18
|
+
* bag::add(&mut bag2, 1, true);
|
|
19
|
+
* // bag1 does not equal bag2, despite having the same entries
|
|
20
|
+
* assert!(&bag1 != &bag2);
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* At it's core, `sui::bag` is a wrapper around `UID` that allows for access to
|
|
24
|
+
* `sui::dynamic_field` while preventing accidentally stranding field values. A
|
|
25
|
+
* `UID` can be deleted, even if it has dynamic fields associated with it, but a
|
|
26
|
+
* bag, on the other hand, must be empty to be destroyed.
|
|
27
|
+
*/
|
|
28
|
+
import { MoveStruct } from '../../../utils/index.js';
|
|
29
|
+
import { bcs } from '@mysten/sui/bcs';
|
|
30
|
+
const $moduleName = '0x2::bag';
|
|
31
|
+
export const Bag = new MoveStruct({ name: `${$moduleName}::Bag`, fields: {
|
|
32
|
+
/** the ID of this bag */
|
|
33
|
+
id: bcs.Address,
|
|
34
|
+
/** the number of key-value pairs in the bag */
|
|
35
|
+
size: bcs.u64()
|
|
36
|
+
} });
|
|
37
|
+
//# sourceMappingURL=bag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bag.js","sourceRoot":"","sources":["../../../../../src/contracts/vault/deps/sui/bag.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,OAAO,EAAE,MAAM,EAAE;QACjE,yBAAyB;QACzB,EAAE,EAAE,GAAG,CAAC,OAAO;QACf,+CAA+C;QAC/C,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE;KAClB,EAAE,CAAC,CAAC"}
|