@interest-protocol/blast-core 0.1.0 → 0.2.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/dist/aborts.d.ts +13 -0
- package/dist/aborts.d.ts.map +1 -0
- package/dist/aborts.js +32 -0
- package/dist/aborts.js.map +1 -0
- package/dist/bcs.d.ts +226 -7
- package/dist/bcs.d.ts.map +1 -1
- package/dist/bcs.js +227 -1
- package/dist/bcs.js.map +1 -1
- package/dist/bps.d.ts +25 -0
- package/dist/bps.d.ts.map +1 -0
- package/dist/bps.js +64 -0
- package/dist/bps.js.map +1 -0
- package/dist/bytecode-template.d.ts +14 -3
- package/dist/bytecode-template.d.ts.map +1 -1
- package/dist/bytecode-template.js +61 -6
- package/dist/bytecode-template.js.map +1 -1
- package/dist/deployment.d.ts +59 -0
- package/dist/deployment.d.ts.map +1 -0
- package/dist/deployment.js +172 -0
- package/dist/deployment.js.map +1 -0
- package/dist/effects.d.ts +69 -0
- package/dist/effects.d.ts.map +1 -0
- package/dist/effects.js +143 -0
- package/dist/effects.js.map +1 -0
- package/dist/fee-split.d.ts +55 -0
- package/dist/fee-split.d.ts.map +1 -0
- package/dist/fee-split.js +69 -0
- package/dist/fee-split.js.map +1 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/integers.d.ts +2 -0
- package/dist/integers.d.ts.map +1 -1
- package/dist/integers.js +8 -0
- package/dist/integers.js.map +1 -1
- package/dist/merkle.d.ts +6 -1
- package/dist/merkle.d.ts.map +1 -1
- package/dist/merkle.js +8 -1
- package/dist/merkle.js.map +1 -1
- package/dist/migration-math.d.ts +13 -2
- package/dist/migration-math.d.ts.map +1 -1
- package/dist/migration-math.js +34 -6
- package/dist/migration-math.js.map +1 -1
- package/dist/migration.d.ts +25 -0
- package/dist/migration.d.ts.map +1 -0
- package/dist/migration.js +43 -0
- package/dist/migration.js.map +1 -0
- package/dist/payout.d.ts +21 -0
- package/dist/payout.d.ts.map +1 -0
- package/dist/payout.js +36 -0
- package/dist/payout.js.map +1 -0
- package/dist/protocol-fees.d.ts +63 -0
- package/dist/protocol-fees.d.ts.map +1 -0
- package/dist/protocol-fees.js +117 -0
- package/dist/protocol-fees.js.map +1 -0
- package/dist/rewards/allocations.d.ts +16 -17
- package/dist/rewards/allocations.d.ts.map +1 -1
- package/dist/rewards/allocations.js +47 -43
- package/dist/rewards/allocations.js.map +1 -1
- package/dist/roles.d.ts +17 -0
- package/dist/roles.d.ts.map +1 -0
- package/dist/roles.js +32 -0
- package/dist/roles.js.map +1 -0
- package/dist/treasury.d.ts +58 -0
- package/dist/treasury.d.ts.map +1 -0
- package/dist/treasury.js +61 -0
- package/dist/treasury.js.map +1 -0
- package/package.json +39 -11
- package/src/aborts.ts +38 -0
- package/src/bcs.ts +374 -1
- package/src/bps.ts +92 -0
- package/src/bytecode-template.ts +78 -6
- package/src/deployment.ts +230 -0
- package/src/effects.ts +247 -0
- package/src/fee-split.ts +103 -0
- package/src/index.ts +10 -1
- package/src/integers.ts +15 -0
- package/src/merkle.ts +11 -1
- package/src/migration-math.ts +38 -6
- package/src/migration.ts +69 -0
- package/src/payout.ts +57 -0
- package/src/protocol-fees.ts +174 -0
- package/src/rewards/allocations.ts +52 -67
- package/src/roles.ts +39 -0
- package/src/treasury.ts +94 -0
- package/dist/rewards/keeper.d.ts +0 -17
- package/dist/rewards/keeper.d.ts.map +0 -1
- package/dist/rewards/keeper.js +0 -21
- package/dist/rewards/keeper.js.map +0 -1
- package/dist/rewards/state.d.ts +0 -55
- package/dist/rewards/state.d.ts.map +0 -1
- package/dist/rewards/state.js +0 -80
- package/dist/rewards/state.js.map +0 -1
- package/dist/timelock.d.ts +0 -15
- package/dist/timelock.d.ts.map +0 -1
- package/dist/timelock.js +0 -30
- package/dist/timelock.js.map +0 -1
- package/src/rewards/keeper.ts +0 -45
- package/src/rewards/state.ts +0 -113
- package/src/timelock.ts +0 -47
package/dist/aborts.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `blast_core` error registry (`sui/core/sources/errors.move`): a name's
|
|
3
|
+
* index is its numeric abort code. Codes are package-wide, so check first
|
|
4
|
+
* that the abort location's package is `blast_core`; the module is only
|
|
5
|
+
* where the macro expanded.
|
|
6
|
+
*/
|
|
7
|
+
export declare const CORE_ABORTS: readonly ["EInvalidBps", "EInvalidApportionment", "EInvalidVestingTerms", "EInvalidRoute", "EInvalidFeeSplit", "EInvalidTreasury", "EInvalidPair", "EPartnerMismatch", "EWrongVenue", "EWrongOwner", "EWrongPackageWitness", "EInvalidLpFeeBps", "EInvalidRecipient", "ELedgerNotEmpty", "EVenueNotAdmitted"];
|
|
8
|
+
export type CoreAbortName = (typeof CORE_ABORTS)[number];
|
|
9
|
+
/** The error a `blast_core` abort `code` names; null for an unknown code. */
|
|
10
|
+
export declare function coreAbortName(code: number): CoreAbortName | null;
|
|
11
|
+
/** The name at `code` in a package's numeric error registry, or null. */
|
|
12
|
+
export declare function abortName<const Names extends readonly string[]>(names: Names, code: number): Names[number] | null;
|
|
13
|
+
//# sourceMappingURL=aborts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aborts.d.ts","sourceRoot":"","sources":["../src/aborts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,WAAW,YACtB,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,CACX,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAEhE;AAED,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,SAAS,MAAM,EAAE,EAC7D,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,GACX,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAEtB"}
|
package/dist/aborts.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `blast_core` error registry (`sui/core/sources/errors.move`): a name's
|
|
3
|
+
* index is its numeric abort code. Codes are package-wide, so check first
|
|
4
|
+
* that the abort location's package is `blast_core`; the module is only
|
|
5
|
+
* where the macro expanded.
|
|
6
|
+
*/
|
|
7
|
+
export const CORE_ABORTS = [
|
|
8
|
+
"EInvalidBps",
|
|
9
|
+
"EInvalidApportionment",
|
|
10
|
+
"EInvalidVestingTerms",
|
|
11
|
+
"EInvalidRoute",
|
|
12
|
+
"EInvalidFeeSplit",
|
|
13
|
+
"EInvalidTreasury",
|
|
14
|
+
"EInvalidPair",
|
|
15
|
+
"EPartnerMismatch",
|
|
16
|
+
"EWrongVenue",
|
|
17
|
+
"EWrongOwner",
|
|
18
|
+
"EWrongPackageWitness",
|
|
19
|
+
"EInvalidLpFeeBps",
|
|
20
|
+
"EInvalidRecipient",
|
|
21
|
+
"ELedgerNotEmpty",
|
|
22
|
+
"EVenueNotAdmitted",
|
|
23
|
+
];
|
|
24
|
+
/** The error a `blast_core` abort `code` names; null for an unknown code. */
|
|
25
|
+
export function coreAbortName(code) {
|
|
26
|
+
return abortName(CORE_ABORTS, code);
|
|
27
|
+
}
|
|
28
|
+
/** The name at `code` in a package's numeric error registry, or null. */
|
|
29
|
+
export function abortName(names, code) {
|
|
30
|
+
return Number.isInteger(code) && code >= 0 ? (names[code] ?? null) : null;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=aborts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aborts.js","sourceRoot":"","sources":["../src/aborts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa;IACb,uBAAuB;IACvB,sBAAsB;IACtB,eAAe;IACf,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,sBAAsB;IACtB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;CACX,CAAC;AAIX,6EAA6E;AAC7E,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,SAAS,CACvB,KAAY,EACZ,IAAY;IAEZ,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC"}
|
package/dist/bcs.d.ts
CHANGED
|
@@ -1,16 +1,235 @@
|
|
|
1
|
+
import type { BcsType } from "@mysten/sui/bcs";
|
|
1
2
|
export declare const suiIdBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
2
|
-
bytes:
|
|
3
|
+
bytes: BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
3
4
|
}, string>;
|
|
4
5
|
export declare const suiUidBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
5
6
|
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
6
|
-
bytes:
|
|
7
|
+
bytes: BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
7
8
|
}, string>;
|
|
8
9
|
}, string>;
|
|
9
10
|
export declare const suiBalanceBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
10
|
-
value:
|
|
11
|
+
value: BcsType<string, string | number | bigint, "u64">;
|
|
11
12
|
}, string>;
|
|
12
|
-
export declare const suiObjectIdBcs:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
export declare const suiObjectIdBcs: BcsType<string, string, string>;
|
|
14
|
+
/**
|
|
15
|
+
* `std::type_name::TypeName`. Move stores the type with every address as 64
|
|
16
|
+
* hex digits and no `0x`; the SDK reads and writes normalized struct tags, so
|
|
17
|
+
* `serialize(parse(bytes))` returns the Move bytes.
|
|
18
|
+
*/
|
|
19
|
+
export declare const moveTypeNameBcs: BcsType<string, string, string>;
|
|
20
|
+
export declare const u64Bcs: BcsType<bigint, bigint, "u64">;
|
|
21
|
+
/** A `Balance<T>` decoded as its atomic amount. */
|
|
22
|
+
export declare const balanceBcs: BcsType<bigint, bigint, string>;
|
|
23
|
+
export declare const addressBcs: BcsType<string, string, "bytes[32]">;
|
|
24
|
+
/**
|
|
25
|
+
* A zero-field Move key such as `TradeFeesKey()`: Move gives it one
|
|
26
|
+
* `dummy_field: bool`, so it encodes as one byte.
|
|
27
|
+
*/
|
|
28
|
+
export declare const unitKeyBcs: BcsType<null, null, string>;
|
|
29
|
+
/** `0x2::vec_set::VecSet<E>`: its `contents` vector, decoded as the members. */
|
|
30
|
+
export declare function vecSetBcs<E, Input>(element: BcsType<E, Input>): BcsType<E[], Input[], string>;
|
|
31
|
+
/** `0x2::table::Table<K, V>`: its UID and size; entries are dynamic fields of `id`. */
|
|
32
|
+
export declare const tableBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
33
|
+
id: BcsType<string, string, string>;
|
|
34
|
+
size: BcsType<bigint, bigint, "u64">;
|
|
35
|
+
}, string>;
|
|
36
|
+
/** `blast_admin::delayed::Proposal<T>`: the value and the delay in force once it applies. */
|
|
37
|
+
export type Proposal<T> = {
|
|
38
|
+
value: T;
|
|
39
|
+
delay_ms: bigint;
|
|
40
|
+
ready_at_ms: bigint;
|
|
41
|
+
};
|
|
42
|
+
export declare function proposalBcs<T, Input>(value: BcsType<T, Input>): import("@mysten/sui/bcs").BcsStruct<{
|
|
43
|
+
value: BcsType<T, Input, string>;
|
|
44
|
+
delay_ms: BcsType<bigint, bigint, "u64">;
|
|
45
|
+
ready_at_ms: BcsType<bigint, bigint, "u64">;
|
|
46
|
+
}, string>;
|
|
47
|
+
/** `blast_admin::delayed::Delayed<K, T>`: readiness never applies a value implicitly. */
|
|
48
|
+
export type Delayed<K, T> = {
|
|
49
|
+
parent: string;
|
|
50
|
+
key: K;
|
|
51
|
+
value: T;
|
|
52
|
+
delay_ms: bigint;
|
|
53
|
+
pending: Proposal<T> | null;
|
|
54
|
+
};
|
|
55
|
+
/** Exact `blast_admin::delayed::Delayed<K, T>` field order. */
|
|
56
|
+
export declare function delayedBcs<K, KeyInput, T, Input>(key: BcsType<K, KeyInput>, value: BcsType<T, Input>): import("@mysten/sui/bcs").BcsStruct<{
|
|
57
|
+
parent: BcsType<string, string, string>;
|
|
58
|
+
key: BcsType<K, KeyInput, string>;
|
|
59
|
+
value: BcsType<T, Input, string>;
|
|
60
|
+
delay_ms: BcsType<bigint, bigint, "u64">;
|
|
61
|
+
pending: BcsType<{
|
|
62
|
+
value: T;
|
|
63
|
+
delay_ms: bigint;
|
|
64
|
+
ready_at_ms: bigint;
|
|
65
|
+
} | null, {
|
|
66
|
+
value: Input;
|
|
67
|
+
delay_ms: bigint;
|
|
68
|
+
ready_at_ms: bigint;
|
|
69
|
+
} | null | undefined, `Option<${string}>`>;
|
|
70
|
+
}, string>;
|
|
71
|
+
/** `blast_admin::delayed_action::Change<A>`: an action, or a change of delay only. */
|
|
72
|
+
export type DelayedChange<A> = {
|
|
73
|
+
kind: "Action";
|
|
74
|
+
action: A;
|
|
75
|
+
} | {
|
|
76
|
+
kind: "Delay";
|
|
77
|
+
};
|
|
78
|
+
export declare function delayedChangeBcs<A, Input>(action: BcsType<A, Input>): BcsType<DelayedChange<A>, DelayedChange<Input>, "Change">;
|
|
79
|
+
/** `blast_admin::delayed_action::DelayedAction<K, A>`: a one-shot action slot. */
|
|
80
|
+
export type DelayedAction<K, A> = {
|
|
81
|
+
parent: string;
|
|
82
|
+
key: K;
|
|
83
|
+
delay_ms: bigint;
|
|
84
|
+
pending: Proposal<DelayedChange<A>> | null;
|
|
85
|
+
};
|
|
86
|
+
export declare function delayedActionBcs<K, KeyInput, A, Input>(key: BcsType<K, KeyInput>, action: BcsType<A, Input>): import("@mysten/sui/bcs").BcsStruct<{
|
|
87
|
+
parent: BcsType<string, string, string>;
|
|
88
|
+
key: BcsType<K, KeyInput, string>;
|
|
89
|
+
delay_ms: BcsType<bigint, bigint, "u64">;
|
|
90
|
+
pending: BcsType<{
|
|
91
|
+
value: DelayedChange<A>;
|
|
92
|
+
delay_ms: bigint;
|
|
93
|
+
ready_at_ms: bigint;
|
|
94
|
+
} | null, {
|
|
95
|
+
value: DelayedChange<Input>;
|
|
96
|
+
delay_ms: bigint;
|
|
97
|
+
ready_at_ms: bigint;
|
|
98
|
+
} | null | undefined, `Option<${string}>`>;
|
|
99
|
+
}, string>;
|
|
100
|
+
/** `blast_admin::delayed::PendingDelay`: a proposed next delay, ready from `ready_at_ms`. */
|
|
101
|
+
export type PendingDelay = {
|
|
102
|
+
delay_ms: bigint;
|
|
103
|
+
ready_at_ms: bigint;
|
|
104
|
+
};
|
|
105
|
+
export declare const pendingDelayBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
106
|
+
delay_ms: BcsType<bigint, bigint, "u64">;
|
|
107
|
+
ready_at_ms: BcsType<bigint, bigint, "u64">;
|
|
108
|
+
}, string>;
|
|
109
|
+
/**
|
|
110
|
+
* `blast_admin::delayed::Deadline`: a pending admission's or entry change's
|
|
111
|
+
* fixed deadline and the applied delay it was scheduled under; a later delay
|
|
112
|
+
* change never moves it.
|
|
113
|
+
*/
|
|
114
|
+
export type Deadline = {
|
|
115
|
+
delay_ms: bigint;
|
|
116
|
+
ready_at_ms: bigint;
|
|
117
|
+
};
|
|
118
|
+
export declare const deadlineBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
119
|
+
delay_ms: BcsType<bigint, bigint, "u64">;
|
|
120
|
+
ready_at_ms: BcsType<bigint, bigint, "u64">;
|
|
121
|
+
}, string>;
|
|
122
|
+
/** `blast_admin::delayed_set::DelayedSet<K, E>`: admissions wait; removals are immediate. */
|
|
123
|
+
export type DelayedSet<K, E> = {
|
|
124
|
+
parent: string;
|
|
125
|
+
key: K;
|
|
126
|
+
members: E[];
|
|
127
|
+
delay_ms: bigint;
|
|
128
|
+
admissions: {
|
|
129
|
+
member: E;
|
|
130
|
+
deadline: Deadline;
|
|
131
|
+
}[];
|
|
132
|
+
pending_delay: PendingDelay | null;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* `blast_admin::delayed::max_delay_ms`: no delayed value, action, set or map
|
|
136
|
+
* accepts a longer delay, in milliseconds (30 days); one aborts with
|
|
137
|
+
* `blast_admin` error 15 (`EInvalidDelay`).
|
|
138
|
+
*/
|
|
139
|
+
export declare const MAX_DELAY_MS = 2592000000n;
|
|
140
|
+
/**
|
|
141
|
+
* `delayed::is_guarded`: the applied delay is nonzero and no proposal would
|
|
142
|
+
* set it to zero. `package_admin::unpause` requires every policy guarded.
|
|
143
|
+
*/
|
|
144
|
+
export declare function isDelayedGuarded(self: Delayed<unknown, unknown>): boolean;
|
|
145
|
+
/** `delayed_action::is_guarded`, as `isDelayedGuarded`. */
|
|
146
|
+
export declare function isDelayedActionGuarded(self: DelayedAction<unknown, unknown>): boolean;
|
|
147
|
+
/** `delayed_set::is_guarded`: also no admission scheduled earlier is pending. */
|
|
148
|
+
export declare function isDelayedSetGuarded(self: DelayedSet<unknown, unknown>): boolean;
|
|
149
|
+
export declare function delayedSetBcs<K, KeyInput, E, Input>(key: BcsType<K, KeyInput>, member: BcsType<E, Input>): BcsType<DelayedSet<K, E>, {
|
|
150
|
+
parent: string;
|
|
151
|
+
key: KeyInput;
|
|
152
|
+
members: Input[];
|
|
153
|
+
delay_ms: bigint;
|
|
154
|
+
admissions: {
|
|
155
|
+
member: Input;
|
|
156
|
+
deadline: Deadline;
|
|
157
|
+
}[];
|
|
158
|
+
pending_delay: PendingDelay | null;
|
|
159
|
+
}, string>;
|
|
160
|
+
/** `blast_admin::delayed_set::SetChange<E>`: an admission, or a delay change. */
|
|
161
|
+
export type DelayedSetChange<E> = {
|
|
162
|
+
kind: "Admission";
|
|
163
|
+
member: E;
|
|
164
|
+
} | {
|
|
165
|
+
kind: "Delay";
|
|
166
|
+
};
|
|
167
|
+
export declare function delayedSetChangeBcs<E, Input>(member: BcsType<E, Input>): BcsType<DelayedSetChange<E>, DelayedSetChange<Input>, "SetChange">;
|
|
168
|
+
/** `blast_admin::delayed_map::EntryProposal<V>`: a value, or null to clear, and its fixed deadline. */
|
|
169
|
+
export type EntryProposal<V> = {
|
|
170
|
+
value: V | null;
|
|
171
|
+
deadline: Deadline;
|
|
172
|
+
};
|
|
173
|
+
export declare function entryProposalBcs<V, Input>(value: BcsType<V, Input>): import("@mysten/sui/bcs").BcsStruct<{
|
|
174
|
+
value: BcsType<V | null, Input | null | undefined, `Option<${string}>`>;
|
|
175
|
+
deadline: import("@mysten/sui/bcs").BcsStruct<{
|
|
176
|
+
delay_ms: BcsType<bigint, bigint, "u64">;
|
|
177
|
+
ready_at_ms: BcsType<bigint, bigint, "u64">;
|
|
178
|
+
}, string>;
|
|
179
|
+
}, string>;
|
|
180
|
+
/** `blast_admin::delayed_map::MapChange<E, V>`: an entry change, or a delay change. */
|
|
181
|
+
export type DelayedMapChange<E, V> = {
|
|
182
|
+
kind: "Entry";
|
|
183
|
+
entry: E;
|
|
184
|
+
value: V | null;
|
|
185
|
+
} | {
|
|
186
|
+
kind: "Delay";
|
|
187
|
+
};
|
|
188
|
+
export declare function delayedMapChangeBcs<E, EntryInput, V, Input>(entry: BcsType<E, EntryInput>, value: BcsType<V, Input>): BcsType<DelayedMapChange<E, V>, DelayedMapChange<EntryInput, Input>, "MapChange">;
|
|
189
|
+
/**
|
|
190
|
+
* `blast_admin::delayed_map::DelayedMap<K, E, V>`: applied entries in a
|
|
191
|
+
* `Table` (read by dynamic field), one delay, and inline pending changes.
|
|
192
|
+
*/
|
|
193
|
+
export type DelayedMap<K, E, V> = {
|
|
194
|
+
parent: string;
|
|
195
|
+
key: K;
|
|
196
|
+
entries: {
|
|
197
|
+
id: string;
|
|
198
|
+
size: bigint;
|
|
199
|
+
};
|
|
200
|
+
delay_ms: bigint;
|
|
201
|
+
pending: {
|
|
202
|
+
entry: E;
|
|
203
|
+
proposal: EntryProposal<V>;
|
|
204
|
+
}[];
|
|
205
|
+
pending_delay: PendingDelay | null;
|
|
206
|
+
};
|
|
207
|
+
export declare function delayedMapBcs<K, KeyInput, E, EntryInput, V, Input>(key: BcsType<K, KeyInput>, entry: BcsType<E, EntryInput>, value: BcsType<V, Input>): BcsType<DelayedMap<K, E, V>, {
|
|
208
|
+
parent: string;
|
|
209
|
+
key: KeyInput;
|
|
210
|
+
entries: {
|
|
211
|
+
id: string;
|
|
212
|
+
size: bigint;
|
|
213
|
+
};
|
|
214
|
+
delay_ms: bigint;
|
|
215
|
+
pending: {
|
|
216
|
+
entry: EntryInput;
|
|
217
|
+
proposal: {
|
|
218
|
+
value: Input | null;
|
|
219
|
+
deadline: Deadline;
|
|
220
|
+
};
|
|
221
|
+
}[];
|
|
222
|
+
pending_delay: PendingDelay | null;
|
|
223
|
+
}, string>;
|
|
224
|
+
/**
|
|
225
|
+
* A `DelayedSet` admission view: the admitted members, the applied delay, the
|
|
226
|
+
* proposed next delay, and each scheduled admission's deadline by member. Used
|
|
227
|
+
* for venue, witness and claim-signer allowlists alike.
|
|
228
|
+
*/
|
|
229
|
+
export declare function admission<E extends string>(set: DelayedSet<unknown, E>): {
|
|
230
|
+
members: E[];
|
|
231
|
+
delayMs: bigint;
|
|
232
|
+
pendingDelay: PendingDelay | null;
|
|
233
|
+
pendingMembers: Readonly<Record<E, Deadline>>;
|
|
234
|
+
};
|
|
16
235
|
//# sourceMappingURL=bcs.d.ts.map
|
package/dist/bcs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bcs.d.ts","sourceRoot":"","sources":["../src/bcs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bcs.d.ts","sourceRoot":"","sources":["../src/bcs.ts"],"names":[],"mappings":"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"}
|
package/dist/bcs.js
CHANGED
|
@@ -10,11 +10,18 @@ export const suiObjectIdBcs = suiIdBcs.transform({
|
|
|
10
10
|
const asciiStringBcs = bcs.struct("AsciiString", {
|
|
11
11
|
bytes: bcs.vector(bcs.u8()),
|
|
12
12
|
});
|
|
13
|
+
/**
|
|
14
|
+
* `std::type_name::TypeName`. Move stores the type with every address as 64
|
|
15
|
+
* hex digits and no `0x`; the SDK reads and writes normalized struct tags, so
|
|
16
|
+
* `serialize(parse(bytes))` returns the Move bytes.
|
|
17
|
+
*/
|
|
13
18
|
export const moveTypeNameBcs = bcs
|
|
14
19
|
.struct("TypeName", { name: asciiStringBcs })
|
|
15
20
|
.transform({
|
|
16
21
|
input: (value) => ({
|
|
17
|
-
name: {
|
|
22
|
+
name: {
|
|
23
|
+
bytes: Array.from(new TextEncoder().encode(normalizeStructTag(value).replace(/0x([0-9a-f]{64})/g, "$1"))),
|
|
24
|
+
},
|
|
18
25
|
}),
|
|
19
26
|
output: (value) => normalizeStructTag(new TextDecoder().decode(Uint8Array.from(value.name.bytes))),
|
|
20
27
|
});
|
|
@@ -22,8 +29,227 @@ export const u64Bcs = bcs.u64().transform({
|
|
|
22
29
|
input: (value) => value,
|
|
23
30
|
output: (value) => BigInt(value),
|
|
24
31
|
});
|
|
32
|
+
/** A `Balance<T>` decoded as its atomic amount. */
|
|
33
|
+
export const balanceBcs = bcs.struct("Balance", { value: u64Bcs }).transform({
|
|
34
|
+
input: (value) => ({ value }),
|
|
35
|
+
output: (balance) => balance.value,
|
|
36
|
+
});
|
|
25
37
|
export const addressBcs = bcs.Address.transform({
|
|
26
38
|
input: (value) => normalizeSuiAddress(value),
|
|
27
39
|
output: (value) => normalizeSuiAddress(value),
|
|
28
40
|
});
|
|
41
|
+
/**
|
|
42
|
+
* A zero-field Move key such as `TradeFeesKey()`: Move gives it one
|
|
43
|
+
* `dummy_field: bool`, so it encodes as one byte.
|
|
44
|
+
*/
|
|
45
|
+
export const unitKeyBcs = bcs
|
|
46
|
+
.struct("Key", { dummy_field: bcs.bool() })
|
|
47
|
+
.transform({
|
|
48
|
+
input: (_) => ({ dummy_field: false }),
|
|
49
|
+
output: () => null,
|
|
50
|
+
});
|
|
51
|
+
/** `0x2::vec_set::VecSet<E>`: its `contents` vector, decoded as the members. */
|
|
52
|
+
export function vecSetBcs(element) {
|
|
53
|
+
return bcs.struct("VecSet", { contents: bcs.vector(element) }).transform({
|
|
54
|
+
input: (members) => ({ contents: members }),
|
|
55
|
+
output: (set) => set.contents,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/** `0x2::table::Table<K, V>`: its UID and size; entries are dynamic fields of `id`. */
|
|
59
|
+
export const tableBcs = bcs.struct("Table", {
|
|
60
|
+
id: suiObjectIdBcs,
|
|
61
|
+
size: u64Bcs,
|
|
62
|
+
});
|
|
63
|
+
export function proposalBcs(value) {
|
|
64
|
+
return bcs.struct("Proposal", {
|
|
65
|
+
value,
|
|
66
|
+
delay_ms: u64Bcs,
|
|
67
|
+
ready_at_ms: u64Bcs,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/** Exact `blast_admin::delayed::Delayed<K, T>` field order. */
|
|
71
|
+
export function delayedBcs(key, value) {
|
|
72
|
+
return bcs.struct("Delayed", {
|
|
73
|
+
parent: suiObjectIdBcs,
|
|
74
|
+
key,
|
|
75
|
+
value,
|
|
76
|
+
delay_ms: u64Bcs,
|
|
77
|
+
pending: bcs.option(proposalBcs(value)),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
export function delayedChangeBcs(action) {
|
|
81
|
+
return bcs.enum("Change", { Action: action, Delay: null }).transform({
|
|
82
|
+
input: (change) => change.kind === "Action"
|
|
83
|
+
? { Action: change.action }
|
|
84
|
+
: { Delay: true },
|
|
85
|
+
output: (change) => change.$kind === "Action"
|
|
86
|
+
? { kind: "Action", action: change.Action }
|
|
87
|
+
: { kind: "Delay" },
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
export function delayedActionBcs(key, action) {
|
|
91
|
+
return bcs.struct("DelayedAction", {
|
|
92
|
+
parent: suiObjectIdBcs,
|
|
93
|
+
key,
|
|
94
|
+
delay_ms: u64Bcs,
|
|
95
|
+
pending: bcs.option(proposalBcs(delayedChangeBcs(action))),
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
export const pendingDelayBcs = bcs.struct("PendingDelay", {
|
|
99
|
+
delay_ms: u64Bcs,
|
|
100
|
+
ready_at_ms: u64Bcs,
|
|
101
|
+
});
|
|
102
|
+
export const deadlineBcs = bcs.struct("Deadline", {
|
|
103
|
+
delay_ms: u64Bcs,
|
|
104
|
+
ready_at_ms: u64Bcs,
|
|
105
|
+
});
|
|
106
|
+
/**
|
|
107
|
+
* `blast_admin::delayed::max_delay_ms`: no delayed value, action, set or map
|
|
108
|
+
* accepts a longer delay, in milliseconds (30 days); one aborts with
|
|
109
|
+
* `blast_admin` error 15 (`EInvalidDelay`).
|
|
110
|
+
*/
|
|
111
|
+
export const MAX_DELAY_MS = 2592000000n;
|
|
112
|
+
/**
|
|
113
|
+
* `delayed::is_guarded`: the applied delay is nonzero and no proposal would
|
|
114
|
+
* set it to zero. `package_admin::unpause` requires every policy guarded.
|
|
115
|
+
*/
|
|
116
|
+
export function isDelayedGuarded(self) {
|
|
117
|
+
return self.delay_ms > 0n && (self.pending?.delay_ms ?? 1n) > 0n;
|
|
118
|
+
}
|
|
119
|
+
/** `delayed_action::is_guarded`, as `isDelayedGuarded`. */
|
|
120
|
+
export function isDelayedActionGuarded(self) {
|
|
121
|
+
return self.delay_ms > 0n && (self.pending?.delay_ms ?? 1n) > 0n;
|
|
122
|
+
}
|
|
123
|
+
/** `delayed_set::is_guarded`: also no admission scheduled earlier is pending. */
|
|
124
|
+
export function isDelayedSetGuarded(self) {
|
|
125
|
+
return (self.delay_ms > 0n &&
|
|
126
|
+
self.admissions.length === 0 &&
|
|
127
|
+
(self.pending_delay?.delay_ms ?? 1n) > 0n);
|
|
128
|
+
}
|
|
129
|
+
export function delayedSetBcs(key, member) {
|
|
130
|
+
return bcs
|
|
131
|
+
.struct("DelayedSet", {
|
|
132
|
+
parent: suiObjectIdBcs,
|
|
133
|
+
key,
|
|
134
|
+
members: bcs.struct("VecSet", { contents: bcs.vector(member) }),
|
|
135
|
+
delay_ms: u64Bcs,
|
|
136
|
+
admissions: bcs.struct("VecMap", {
|
|
137
|
+
contents: bcs.vector(bcs.struct("Entry", { key: member, value: deadlineBcs })),
|
|
138
|
+
}),
|
|
139
|
+
pending_delay: bcs.option(pendingDelayBcs),
|
|
140
|
+
})
|
|
141
|
+
.transform({
|
|
142
|
+
input: (set) => ({
|
|
143
|
+
parent: set.parent,
|
|
144
|
+
key: set.key,
|
|
145
|
+
members: { contents: set.members },
|
|
146
|
+
delay_ms: set.delay_ms,
|
|
147
|
+
admissions: {
|
|
148
|
+
contents: set.admissions.map(({ member, deadline }) => ({
|
|
149
|
+
key: member,
|
|
150
|
+
value: deadline,
|
|
151
|
+
})),
|
|
152
|
+
},
|
|
153
|
+
pending_delay: set.pending_delay,
|
|
154
|
+
}),
|
|
155
|
+
output: (set) => ({
|
|
156
|
+
parent: set.parent,
|
|
157
|
+
key: set.key,
|
|
158
|
+
members: set.members.contents,
|
|
159
|
+
delay_ms: set.delay_ms,
|
|
160
|
+
admissions: set.admissions.contents.map(({ key, value }) => ({
|
|
161
|
+
member: key,
|
|
162
|
+
deadline: value,
|
|
163
|
+
})),
|
|
164
|
+
pending_delay: set.pending_delay,
|
|
165
|
+
}),
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
export function delayedSetChangeBcs(member) {
|
|
169
|
+
return bcs.enum("SetChange", { Admission: member, Delay: null }).transform({
|
|
170
|
+
input: (change) => change.kind === "Admission"
|
|
171
|
+
? { Admission: change.member }
|
|
172
|
+
: { Delay: true },
|
|
173
|
+
output: (change) => change.$kind === "Admission"
|
|
174
|
+
? { kind: "Admission", member: change.Admission }
|
|
175
|
+
: { kind: "Delay" },
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
export function entryProposalBcs(value) {
|
|
179
|
+
return bcs.struct("EntryProposal", {
|
|
180
|
+
value: bcs.option(value),
|
|
181
|
+
deadline: deadlineBcs,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
export function delayedMapChangeBcs(entry, value) {
|
|
185
|
+
return bcs
|
|
186
|
+
.enum("MapChange", {
|
|
187
|
+
Entry: bcs.struct("Entry", { entry, value: bcs.option(value) }),
|
|
188
|
+
Delay: null,
|
|
189
|
+
})
|
|
190
|
+
.transform({
|
|
191
|
+
input: (change) => change.kind === "Entry"
|
|
192
|
+
? { Entry: { entry: change.entry, value: change.value } }
|
|
193
|
+
: { Delay: true },
|
|
194
|
+
output: (change) => change.$kind === "Entry"
|
|
195
|
+
? {
|
|
196
|
+
kind: "Entry",
|
|
197
|
+
entry: change.Entry.entry,
|
|
198
|
+
value: change.Entry.value,
|
|
199
|
+
}
|
|
200
|
+
: { kind: "Delay" },
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
export function delayedMapBcs(key, entry, value) {
|
|
204
|
+
return bcs
|
|
205
|
+
.struct("DelayedMap", {
|
|
206
|
+
parent: suiObjectIdBcs,
|
|
207
|
+
key,
|
|
208
|
+
entries: tableBcs,
|
|
209
|
+
delay_ms: u64Bcs,
|
|
210
|
+
pending: bcs.struct("VecMap", {
|
|
211
|
+
contents: bcs.vector(bcs.struct("Entry", { key: entry, value: entryProposalBcs(value) })),
|
|
212
|
+
}),
|
|
213
|
+
pending_delay: bcs.option(pendingDelayBcs),
|
|
214
|
+
})
|
|
215
|
+
.transform({
|
|
216
|
+
input: (map) => ({
|
|
217
|
+
parent: map.parent,
|
|
218
|
+
key: map.key,
|
|
219
|
+
entries: map.entries,
|
|
220
|
+
delay_ms: map.delay_ms,
|
|
221
|
+
pending: {
|
|
222
|
+
contents: map.pending.map(({ entry, proposal }) => ({
|
|
223
|
+
key: entry,
|
|
224
|
+
value: proposal,
|
|
225
|
+
})),
|
|
226
|
+
},
|
|
227
|
+
pending_delay: map.pending_delay,
|
|
228
|
+
}),
|
|
229
|
+
output: (map) => ({
|
|
230
|
+
parent: map.parent,
|
|
231
|
+
key: map.key,
|
|
232
|
+
entries: map.entries,
|
|
233
|
+
delay_ms: map.delay_ms,
|
|
234
|
+
pending: map.pending.contents.map(({ key, value }) => ({
|
|
235
|
+
entry: key,
|
|
236
|
+
proposal: value,
|
|
237
|
+
})),
|
|
238
|
+
pending_delay: map.pending_delay,
|
|
239
|
+
}),
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* A `DelayedSet` admission view: the admitted members, the applied delay, the
|
|
244
|
+
* proposed next delay, and each scheduled admission's deadline by member. Used
|
|
245
|
+
* for venue, witness and claim-signer allowlists alike.
|
|
246
|
+
*/
|
|
247
|
+
export function admission(set) {
|
|
248
|
+
return {
|
|
249
|
+
members: [...set.members],
|
|
250
|
+
delayMs: set.delay_ms,
|
|
251
|
+
pendingDelay: set.pending_delay,
|
|
252
|
+
pendingMembers: Object.fromEntries(set.admissions.map(({ member, deadline }) => [member, deadline])),
|
|
253
|
+
};
|
|
254
|
+
}
|
|
29
255
|
//# sourceMappingURL=bcs.js.map
|
package/dist/bcs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bcs.js","sourceRoot":"","sources":["../src/bcs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bcs.js","sourceRoot":"","sources":["../src/bcs.ts"],"names":[],"mappings":"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"}
|
package/dist/bps.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BasisPoints } from "./integers.ts";
|
|
2
|
+
/** `blast_core::constants::max_lp_fee_bps`: Blast's largest LP-fee share of each asset. */
|
|
3
|
+
export declare const MAX_LP_FEE_BPS = 3000n;
|
|
4
|
+
/** `blast_core::constants::max_routes`: the most routes one fee split holds. */
|
|
5
|
+
export declare const MAX_ROUTES = 20;
|
|
6
|
+
/** `blast_core::constants::max_vesting_duration_ms`: the technical bound on a schedule. */
|
|
7
|
+
export declare const MAX_VESTING_DURATION_MS: bigint;
|
|
8
|
+
/** BCS layout of the positional `blast_core::bps::Bps(u64)`. */
|
|
9
|
+
export declare const bpsBcs: import("@mysten/sui/bcs").BcsType<bigint, bigint, string>;
|
|
10
|
+
/** Mirrors `bps::new`: a rate from zero through 10,000 basis points. */
|
|
11
|
+
export declare function requireBps(value: bigint): BasisPoints;
|
|
12
|
+
/**
|
|
13
|
+
* Mirrors `bps::apply_up`: `ceil(amount * bps / 10,000)` over atomic units,
|
|
14
|
+
* at most `amount`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function applyBpsUp(amount: bigint, bps: bigint): bigint;
|
|
17
|
+
/**
|
|
18
|
+
* Mirrors `bps::apportion`: largest-remainder apportionment of `total` atoms
|
|
19
|
+
* over `rates`, which must sum to exactly 10,000. The `roundedUp` part takes
|
|
20
|
+
* its ceiling and every other part its floor; the leftover atoms go one each
|
|
21
|
+
* to the largest remaining remainders, earlier parts first. The amounts sum
|
|
22
|
+
* to `total`. Throws where the contract aborts (`EInvalidApportionment`).
|
|
23
|
+
*/
|
|
24
|
+
export declare function apportionBps(rates: readonly bigint[], total: bigint, roundedUp: number | null): bigint[];
|
|
25
|
+
//# sourceMappingURL=bps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bps.d.ts","sourceRoot":"","sources":["../src/bps.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQjD,2FAA2F;AAC3F,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,gFAAgF;AAChF,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,2FAA2F;AAC3F,eAAO,MAAM,uBAAuB,QAAY,CAAC;AAEjD,gEAAgE;AAChE,eAAO,MAAM,MAAM,2DAGjB,CAAC;AAEH,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAErD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,EAAE,CAwCV"}
|