@aephia/atlas-kit 0.6.0-next.80 → 0.6.0-next.82
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/internal/c4/identity.d.ts +2 -1
- package/dist/internal/c4/identity.d.ts.map +1 -1
- package/dist/internal/c4/identity.js +1 -1
- package/dist/internal/c4/identity.js.map +1 -1
- package/dist/internal/c4/local-market-order.d.ts +31 -0
- package/dist/internal/c4/local-market-order.d.ts.map +1 -0
- package/dist/internal/c4/local-market-order.js +47 -0
- package/dist/internal/c4/local-market-order.js.map +1 -0
- package/dist/internal/planning/fleet-respawn.d.ts +1 -1
- package/dist/internal/planning/local-market-order-funding.d.ts +8 -0
- package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -0
- package/dist/internal/planning/local-market-order-funding.js +126 -0
- package/dist/internal/planning/local-market-order-funding.js.map +1 -0
- package/dist/internal/planning/local-market-order.d.ts +40 -0
- package/dist/internal/planning/local-market-order.d.ts.map +1 -0
- package/dist/internal/planning/local-market-order.js +166 -0
- package/dist/internal/planning/local-market-order.js.map +1 -0
- package/dist/markets/actions/index.d.ts +57 -0
- package/dist/markets/actions/index.d.ts.map +1 -1
- package/dist/markets/actions/index.js +91 -3
- package/dist/markets/actions/index.js.map +1 -1
- package/dist/planning/assembly.d.ts.map +1 -1
- package/dist/planning/assembly.js +2 -0
- package/dist/planning/assembly.js.map +1 -1
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +23 -0
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +6 -5
- package/dist/planning/index.d.ts.map +1 -1
- package/dist/planning/index.js +12 -3
- package/dist/planning/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ProfilePermission } from './profile-permissions.js';
|
|
2
2
|
export type { ProfilePermission } from './profile-permissions.js';
|
|
3
|
-
import type { Address } from '../../client/contracts.js';
|
|
3
|
+
import type { Address, RawAccount } from '../../client/contracts.js';
|
|
4
4
|
import type { C4AccountAdapter } from './adapter.js';
|
|
5
5
|
/** SDK-owned representation of one Player Profile key.
|
|
6
6
|
* @example
|
|
@@ -179,6 +179,7 @@ export interface CharacterAccountData {
|
|
|
179
179
|
};
|
|
180
180
|
readonly modifiers: CharacterModifiersData;
|
|
181
181
|
}
|
|
182
|
+
export declare function validateProfileAccountShape(account: RawAccount): void;
|
|
182
183
|
/** Stable Player Profile account definition for the pinned C4 bindings. */
|
|
183
184
|
export declare const profileAccountDefinition: C4AccountAdapter<ProfileAccountData>;
|
|
184
185
|
/** Stable Character account definition for the pinned C4 bindings. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAmBlE,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,7 +113,7 @@ function validateProfileAccount(account) {
|
|
|
113
113
|
function validateCharacterAccount(account) {
|
|
114
114
|
validateAccount(account, 'character', SAGE_PROGRAM_ADDRESS, CHARACTER_ACCOUNT_DISCRIMINATOR, CHARACTER_MINIMUM_DATA_LENGTH);
|
|
115
115
|
}
|
|
116
|
-
function validateProfileAccountShape(account) {
|
|
116
|
+
export function validateProfileAccountShape(account) {
|
|
117
117
|
validateProfileAccount(account);
|
|
118
118
|
validateProfileShape(account);
|
|
119
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/internal/c4/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,iBAAiB,GAElB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,gBAAgB,GAAG,WAAW,CAAC;AACrC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C,SAAS,cAAc,CAAC,KAAiB;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,6BAA6B,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;AAC5E,MAAM,+BAA+B,GAAG,cAAc,CAAC,uBAAuB,CAAC,CAAC;AAqMhF,SAAS,yBAAyB,CAAC,KAAwB;IACzD,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CACtB,OAAmB,EACnB,IAA6B,EAC7B,KAAc,EACd,aAAgC,EAChC,iBAAyB;IAEzB,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,wBAAwB,CAChC,IAAI,EACJ,OAAO,CAAC,OAAO,EACf,KAAK,EACL,OAAO,CAAC,KAAK,CACd,CAAC;IACJ,CAAC;IACD,IACE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;QAC1C,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EACjE,CAAC;QACD,MAAM,IAAI,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,IAAI,kBAAkB,CAC1B,IAAI,EACJ,OAAO,CAAC,OAAO,EACf,IAAI,UAAU,CACZ,qBAAqB,iBAAiB,4BAA4B,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CACzF,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,OAAmB,EACnB,IAA6B,EAC7B,OAA0E;IAE1E,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,UAAU,CAClB,WAAW,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,kDAAkD,CAC9F,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAmB;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAE,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,cAAc,GAClB,2BAA2B,GAAG,QAAQ,GAAG,uBAAuB,CAAC;IACnE,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAC3C,MAAM,IAAI,kBAAkB,CAC1B,SAAS,EACT,OAAO,CAAC,OAAO,EACf,IAAI,UAAU,CACZ,oBAAoB,QAAQ,sBAAsB,cAAc,oBAAoB,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAC3G,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,MAAM,cAAc,GAAG,yBAAyB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAClE,OAAO;gBACL,OAAO,EAAE,GAAG,CAAC,GAAG;gBAChB,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;gBAC7D,YAAY,EAAE,GAAG,CAAC,UAAU;gBAC5B,WAAW,EAAE,oBAAoB,CAAC,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC;gBAC5D,cAAc;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK;aACjB,CAAC;QACJ,CAAC,CAAC;QACF,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAoB;IAC9C,MAAM,QAAQ,GAAG,yBAAyB,CACxC,SAAS,CAAC,aAAa,CAAC,eAAe,CACxC,CAAC;IACF,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,gBAAgB;QACjD,QAAQ,EAAE,SAAS,CAAC,KAAK;QACzB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,OAAO,EAAE;YACP,eAAe,EAAE,SAAS,CAAC,WAAW,CAAC,eAAe;YACtD,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,aAAa;SAC5C;QACD,MAAM,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE;QAC/B,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,SAAS,EAAE;YACT,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,GAAG,CAC1D,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACzC;YACD,KAAK,EAAE,SAAS,CAAC,kBAAkB,CAAC,KAAK;YACzC,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC,aAAa,CAAC;YAC9D,cAAc,EAAE,SAAS,CAAC,kBAAkB,CAAC,cAAc;YAC3D,MAAM,EAAE,0BAA0B,CAChC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CACvC;SACF;QACD,aAAa,EAAE;YACb,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS;YAC5C,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;YAC3C,kBAAkB,EAAE,QAAQ;YAC5B,eAAe,EAAE,SAAS,CAAC,aAAa,CAAC,eAAe;SACzD;QACD,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,EAAE,EAAE;YACF,GAAG,SAAS,CAAC,MAAM;YACnB,QAAQ,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC1C,MAAM,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;YACtC,WAAW,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE;YAChD,QAAQ,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC1C,OAAO,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE;YACxC,UAAU,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE;YAC9C,MAAM,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;YACtC,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE;SACrC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAmB;IACjD,eAAe,CACb,OAAO,EACP,SAAS,EACT,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,CAC5B,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAmB;IACnD,eAAe,CACb,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,+BAA+B,EAC/B,6BAA6B,CAC9B,CAAC;AACJ,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/internal/c4/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type Address, type Instruction } from '@solana/kit';
|
|
2
|
+
import { SAGE_PROGRAM_ADDRESS, PLACE_LOCAL_MARKET_ORDER_DISCRIMINATOR } from '@staratlas/dev-sage';
|
|
3
|
+
export { SAGE_PROGRAM_ADDRESS, PLACE_LOCAL_MARKET_ORDER_DISCRIMINATOR };
|
|
4
|
+
export { CURRENCY_CONFIG_CACHE_DISCRIMINATOR, getCurrencyConfigCacheDecoder, } from '@staratlas/dev-sage';
|
|
5
|
+
/** Pinned maker map key (32), MakerInfo (26), and OrderInfo (56); codec contract-tested. */
|
|
6
|
+
export declare const LOCAL_MARKET_MAXIMUM_GROWTH_BYTES = 114;
|
|
7
|
+
interface LocalMarketPlacementIntent {
|
|
8
|
+
readonly authority: Address;
|
|
9
|
+
readonly profile: Address;
|
|
10
|
+
readonly certificate?: Address;
|
|
11
|
+
readonly game: Address;
|
|
12
|
+
readonly character: Address;
|
|
13
|
+
readonly system: Address;
|
|
14
|
+
readonly starbasePlayer: Address;
|
|
15
|
+
readonly address: Address;
|
|
16
|
+
readonly keyIndex: number;
|
|
17
|
+
readonly side: 'bid' | 'ask';
|
|
18
|
+
readonly priceRaw: bigint;
|
|
19
|
+
readonly quantity: bigint;
|
|
20
|
+
readonly starbaseGovernance: Address;
|
|
21
|
+
readonly currencyCache: Address;
|
|
22
|
+
readonly starbaseTreasury?: Address;
|
|
23
|
+
readonly democracyHistoryHistory: Address;
|
|
24
|
+
readonly democracyHistoryPolicy?: Address;
|
|
25
|
+
readonly democracyHistoryGeneration?: Address;
|
|
26
|
+
}
|
|
27
|
+
/** Exact pinned C4 placement layout, contract-tested against the generated builder.
|
|
28
|
+
* The shared Plan validator must not import that builder and its codec graph.
|
|
29
|
+
*/
|
|
30
|
+
export declare function matchesLocalMarketPlacement(instruction: Instruction, intent: LocalMarketPlacementIntent): boolean;
|
|
31
|
+
//# sourceMappingURL=local-market-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-market-order.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/local-market-order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,sCAAsC,EACvC,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,oBAAoB,EAAE,sCAAsC,EAAE,CAAC;AACxE,OAAO,EACL,mCAAmC,EACnC,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAE7B,4FAA4F;AAC5F,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,UAAU,0BAA0B;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CAC/C;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CA8CT"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { AccountRole } from '@solana/kit';
|
|
2
|
+
import { SAGE_PROGRAM_ADDRESS, PLACE_LOCAL_MARKET_ORDER_DISCRIMINATOR, } from '@staratlas/dev-sage';
|
|
3
|
+
import { PLAYER_PROFILE_PROGRAM_ADDRESS } from '@staratlas/dev-player-profile';
|
|
4
|
+
export { SAGE_PROGRAM_ADDRESS, PLACE_LOCAL_MARKET_ORDER_DISCRIMINATOR };
|
|
5
|
+
export { CURRENCY_CONFIG_CACHE_DISCRIMINATOR, getCurrencyConfigCacheDecoder, } from '@staratlas/dev-sage';
|
|
6
|
+
/** Pinned maker map key (32), MakerInfo (26), and OrderInfo (56); codec contract-tested. */
|
|
7
|
+
export const LOCAL_MARKET_MAXIMUM_GROWTH_BYTES = 114;
|
|
8
|
+
/** Exact pinned C4 placement layout, contract-tested against the generated builder.
|
|
9
|
+
* The shared Plan validator must not import that builder and its codec graph.
|
|
10
|
+
*/
|
|
11
|
+
export function matchesLocalMarketPlacement(instruction, intent) {
|
|
12
|
+
const data = instruction.data;
|
|
13
|
+
if (instruction.programAddress !== SAGE_PROGRAM_ADDRESS ||
|
|
14
|
+
data?.length !== 28)
|
|
15
|
+
return false;
|
|
16
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
17
|
+
if (!PLACE_LOCAL_MARKET_ORDER_DISCRIMINATOR.every((byte, index) => data[index] === byte) ||
|
|
18
|
+
view.getUint16(8, true) !== intent.keyIndex ||
|
|
19
|
+
data[10] !== (intent.side === 'bid' ? 0 : 1) ||
|
|
20
|
+
view.getBigUint64(11, true) !== intent.priceRaw ||
|
|
21
|
+
view.getBigUint64(19, true) !== intent.quantity ||
|
|
22
|
+
data[27] !== 0)
|
|
23
|
+
return false;
|
|
24
|
+
const expected = [
|
|
25
|
+
[intent.authority, AccountRole.READONLY_SIGNER],
|
|
26
|
+
[intent.profile, AccountRole.WRITABLE],
|
|
27
|
+
[intent.certificate, AccountRole.READONLY],
|
|
28
|
+
[PLAYER_PROFILE_PROGRAM_ADDRESS, AccountRole.READONLY],
|
|
29
|
+
[intent.game, AccountRole.READONLY],
|
|
30
|
+
[intent.character, AccountRole.WRITABLE],
|
|
31
|
+
[intent.system, AccountRole.READONLY],
|
|
32
|
+
[intent.starbasePlayer, AccountRole.WRITABLE],
|
|
33
|
+
[intent.address, AccountRole.WRITABLE],
|
|
34
|
+
[intent.starbaseGovernance, AccountRole.READONLY],
|
|
35
|
+
[intent.currencyCache, AccountRole.WRITABLE],
|
|
36
|
+
[intent.starbaseTreasury, AccountRole.WRITABLE],
|
|
37
|
+
[intent.democracyHistoryHistory, AccountRole.WRITABLE],
|
|
38
|
+
[intent.democracyHistoryPolicy, AccountRole.READONLY],
|
|
39
|
+
[intent.democracyHistoryGeneration, AccountRole.WRITABLE],
|
|
40
|
+
];
|
|
41
|
+
return (instruction.accounts?.length === expected.length &&
|
|
42
|
+
expected.every(([address, role], index) => instruction.accounts[index].address ===
|
|
43
|
+
(address ?? SAGE_PROGRAM_ADDRESS) &&
|
|
44
|
+
instruction.accounts[index].role ===
|
|
45
|
+
(address === undefined ? AccountRole.READONLY : role)));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=local-market-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-market-order.js","sourceRoot":"","sources":["../../../src/internal/c4/local-market-order.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export declare function resolveFleetRespawn(ctx: SageContext, input: FleetRespaw
|
|
|
15
15
|
readonly maximumRecoveryFee: bigint;
|
|
16
16
|
readonly maximumProfileDebit: bigint;
|
|
17
17
|
}, commitment?: Commitment): Promise<{
|
|
18
|
-
instruction: import("@solana/kit").Instruction<string, readonly (import("@solana/kit").
|
|
18
|
+
instruction: import("@solana/kit").Instruction<string, readonly (import("@solana/kit").AccountLookupMeta<string, string> | import("@solana/kit").AccountMeta<string>)[]>;
|
|
19
19
|
recoveryFee: bigint;
|
|
20
20
|
profileDebit: bigint;
|
|
21
21
|
fleetHash: string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Address } from '@solana/kit';
|
|
2
|
+
import type { RawAccount, SageContext } from '../../client/contracts.js';
|
|
3
|
+
import type { PlanPrecondition } from '../../planning/index.js';
|
|
4
|
+
import { type MarketOrderAmounts, type MarketOrderIntent, type LocalMarketOrderGuard } from './local-market-order.js';
|
|
5
|
+
export declare function marketOrderFundingAddresses(profile: Address, guards: readonly PlanPrecondition[]): readonly Address[];
|
|
6
|
+
export declare function resolveMarketOrderAmounts(ctx: SageContext, intent: MarketOrderIntent, marketRaw: RawAccount, playerRaw: RawAccount, characterRaw: RawAccount, guards: readonly PlanPrecondition[]): Promise<MarketOrderAmounts>;
|
|
7
|
+
export declare function revalidateMarketOrder(guard: LocalMarketOrderGuard, accounts: ReadonlyMap<Address, RawAccount | undefined>, guards: readonly PlanPrecondition[]): void;
|
|
8
|
+
//# sourceMappingURL=local-market-order-funding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-market-order-funding.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/local-market-order-funding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAO3C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQhE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AAUjC,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,SAAS,OAAO,EAAE,CAIpB;AA0GD,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,UAAU,EACxB,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,OAAO,CAAC,kBAAkB,CAAC,CAgB7B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,IAAI,CAmBN"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { SAGE_PROGRAM_ADDRESS, LOCAL_MARKET_MAXIMUM_GROWTH_BYTES, CURRENCY_CONFIG_CACHE_DISCRIMINATOR, getCurrencyConfigCacheDecoder, } from '../c4/local-market-order.js';
|
|
2
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
3
|
+
import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
4
|
+
import { validateProfileAccountShape, characterAccountDefinition, } from '../c4/identity.js';
|
|
5
|
+
import { localMarketAccountDefinition } from '../c4/market.js';
|
|
6
|
+
import { starbasePlayerAccountDefinition } from '../c4/starbase.js';
|
|
7
|
+
import { RENT_ADDRESS, readRent } from './faction-enrollment.js';
|
|
8
|
+
import { hasQualifiedMarketFees, } from './local-market-order.js';
|
|
9
|
+
function fail(address, message) {
|
|
10
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, { address });
|
|
11
|
+
}
|
|
12
|
+
function unavailable(reason) {
|
|
13
|
+
return { status: 'unavailable', reason };
|
|
14
|
+
}
|
|
15
|
+
export function marketOrderFundingAddresses(profile, guards) {
|
|
16
|
+
// The normalized market fee guard requires this canonical cache.
|
|
17
|
+
const fees = guards.find((g) => g.kind === 'governance-fees');
|
|
18
|
+
return [profile, RENT_ADDRESS, fees.intent.currencyCache.address];
|
|
19
|
+
}
|
|
20
|
+
function calculateMarketOrderAmounts(intent, accounts, guards, approvedProfileCeiling) {
|
|
21
|
+
const marketRaw = accounts.get(intent.address);
|
|
22
|
+
const playerRaw = accounts.get(intent.starbasePlayer);
|
|
23
|
+
const characterRaw = accounts.get(intent.character);
|
|
24
|
+
if (!marketRaw || !playerRaw || !characterRaw)
|
|
25
|
+
fail(intent.address, 'A Local Market order prerequisite is missing. Refresh the Market, Character and Starbase Player before recreating the Plan.');
|
|
26
|
+
const market = localMarketAccountDefinition.decode(marketRaw);
|
|
27
|
+
const player = starbasePlayerAccountDefinition.decode(playerRaw);
|
|
28
|
+
const character = characterAccountDefinition.decode(characterRaw);
|
|
29
|
+
if (characterRaw.address !== intent.character ||
|
|
30
|
+
character.playerProfile !== intent.profile ||
|
|
31
|
+
character.game !== intent.game ||
|
|
32
|
+
marketRaw.address !== intent.address ||
|
|
33
|
+
playerRaw.address !== intent.starbasePlayer ||
|
|
34
|
+
market.cargo.cargoId !== intent.cargoId ||
|
|
35
|
+
market.system !== intent.system ||
|
|
36
|
+
market.starbaseSequenceId !== intent.starbaseSequenceId ||
|
|
37
|
+
player.playerProfile !== intent.profile ||
|
|
38
|
+
player.character !== intent.character ||
|
|
39
|
+
player.system !== intent.system)
|
|
40
|
+
fail(intent.address, 'The Local Market debit intent no longer matches its Profile, cargo or Starbase Player. Refresh the accounts and recreate the order Plan.');
|
|
41
|
+
if (market.version !== 0)
|
|
42
|
+
return unavailable('unsupported-market-layout');
|
|
43
|
+
if (character.version !== 0 || player.version !== 0)
|
|
44
|
+
return unavailable('unsupported-account-layout');
|
|
45
|
+
if (!hasQualifiedMarketFees(guards))
|
|
46
|
+
return unavailable('unsupported-fee-policy');
|
|
47
|
+
const fees = guards.find((g) => g.kind === 'governance-fees');
|
|
48
|
+
const cache = fees.intent.currencyCache;
|
|
49
|
+
if (cache.version !== 0)
|
|
50
|
+
return unavailable('unsupported-account-layout');
|
|
51
|
+
if (!player.cargo.amounts.some((row) => row.cargoId === intent.cargoId))
|
|
52
|
+
return unavailable('missing-cargo-row');
|
|
53
|
+
const cacheRaw = accounts.get(cache.address);
|
|
54
|
+
const profileRaw = accounts.get(intent.profile);
|
|
55
|
+
const rentRaw = accounts.get(RENT_ADDRESS);
|
|
56
|
+
if (!profileRaw ||
|
|
57
|
+
!rentRaw ||
|
|
58
|
+
!cacheRaw ||
|
|
59
|
+
cacheRaw.address !== cache.address ||
|
|
60
|
+
cacheRaw.executable ||
|
|
61
|
+
profileRaw.address !== intent.profile ||
|
|
62
|
+
rentRaw.address !== RENT_ADDRESS ||
|
|
63
|
+
profileRaw.executable ||
|
|
64
|
+
characterRaw.executable ||
|
|
65
|
+
marketRaw.executable ||
|
|
66
|
+
playerRaw.executable)
|
|
67
|
+
return unavailable('funding-state-unavailable');
|
|
68
|
+
validateProfileAccountShape(profileRaw);
|
|
69
|
+
if (cacheRaw.data.length !== getCurrencyConfigCacheDecoder().fixedSize ||
|
|
70
|
+
cacheRaw.owner !== SAGE_PROGRAM_ADDRESS ||
|
|
71
|
+
!CURRENCY_CONFIG_CACHE_DISCRIMINATOR.every((v, n) => cacheRaw.data[n] === v))
|
|
72
|
+
return unavailable('funding-state-unavailable');
|
|
73
|
+
const cacheData = getCurrencyConfigCacheDecoder().decode(cacheRaw.data);
|
|
74
|
+
if (cacheData.version !== 0 || cacheData.gameId !== intent.game)
|
|
75
|
+
return unavailable('unsupported-account-layout');
|
|
76
|
+
const rent = readRent(rentRaw);
|
|
77
|
+
if (cacheRaw.lamports < rent(cacheRaw.data.length) ||
|
|
78
|
+
characterRaw.lamports < rent(characterRaw.data.length) ||
|
|
79
|
+
marketRaw.lamports < rent(marketRaw.data.length) ||
|
|
80
|
+
playerRaw.lamports < rent(playerRaw.data.length))
|
|
81
|
+
return unavailable('accounts-below-rent-reserve');
|
|
82
|
+
// Existing surplus may be another maker's refundable rent. Never credit it.
|
|
83
|
+
const maximumProfileDebit = rent(marketRaw.data.length + LOCAL_MARKET_MAXIMUM_GROWTH_BYTES) -
|
|
84
|
+
rent(marketRaw.data.length);
|
|
85
|
+
if (profileRaw.lamports <
|
|
86
|
+
rent(profileRaw.data.length) +
|
|
87
|
+
(approvedProfileCeiling ?? maximumProfileDebit)) {
|
|
88
|
+
if (approvedProfileCeiling === undefined)
|
|
89
|
+
return unavailable('profile-below-storage-ceiling');
|
|
90
|
+
fail(intent.profile, 'The Profile cannot fund the conservative Local Market storage ceiling while preserving its own rent reserve. Fund the Profile explicitly and recreate the Plan; transaction fees are separate.');
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
status: 'available',
|
|
94
|
+
maximumCargoDebitRaw: intent.side === 'ask' ? intent.quantity : 0n,
|
|
95
|
+
maximumAtlasDebitRaw: intent.side === 'bid' ? intent.priceRaw * intent.quantity : 0n,
|
|
96
|
+
maximumGovernanceFeeRaw: 0n,
|
|
97
|
+
maximumProfileDebit,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export async function resolveMarketOrderAmounts(ctx, intent, marketRaw, playerRaw, characterRaw, guards) {
|
|
101
|
+
const accounts = new Map([
|
|
102
|
+
[marketRaw.address, marketRaw],
|
|
103
|
+
[playerRaw.address, playerRaw],
|
|
104
|
+
[characterRaw.address, characterRaw],
|
|
105
|
+
]);
|
|
106
|
+
const initial = calculateMarketOrderAmounts(intent, accounts, guards);
|
|
107
|
+
if (initial.status !== 'unavailable' ||
|
|
108
|
+
initial.reason !== 'funding-state-unavailable')
|
|
109
|
+
return initial;
|
|
110
|
+
const addresses = marketOrderFundingAddresses(intent.profile, guards);
|
|
111
|
+
const rows = await readContextRawAccounts(ctx, addresses);
|
|
112
|
+
addresses.forEach((address, index) => accounts.set(address, rows[index]));
|
|
113
|
+
return calculateMarketOrderAmounts(intent, accounts, guards);
|
|
114
|
+
}
|
|
115
|
+
export function revalidateMarketOrder(guard, accounts, guards) {
|
|
116
|
+
if (guard.status === 'unavailable')
|
|
117
|
+
return;
|
|
118
|
+
const current = calculateMarketOrderAmounts(guard, accounts, guards, guard.maximumProfileDebit);
|
|
119
|
+
if (current.status !== 'available' ||
|
|
120
|
+
current.maximumProfileDebit > guard.maximumProfileDebit ||
|
|
121
|
+
current.maximumAtlasDebitRaw > guard.maximumAtlasDebitRaw ||
|
|
122
|
+
current.maximumCargoDebitRaw > guard.maximumCargoDebitRaw ||
|
|
123
|
+
current.maximumGovernanceFeeRaw > guard.maximumGovernanceFeeRaw)
|
|
124
|
+
fail(guard.profile, 'The Local Market order no longer has qualified debits within its approved ceilings. Refresh the Market, fee policy and Rent, then recreate and inspect the Plan before signing.');
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=local-market-order-funding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-market-order-funding.js","sourceRoot":"","sources":["../../../src/internal/planning/local-market-order-funding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type Address } from '@solana/kit';
|
|
2
|
+
import type { PlanPrecondition, PlanStep } from '../../planning/index.js';
|
|
3
|
+
import type { RuntimeWire } from './runtime-guards.js';
|
|
4
|
+
export type MarketBoundsUnavailableReason = 'unsupported-market-layout' | 'unsupported-account-layout' | 'unsupported-fee-policy' | 'missing-cargo-row' | 'funding-state-unavailable' | 'accounts-below-rent-reserve' | 'profile-below-storage-ceiling';
|
|
5
|
+
export type MarketOrderAmounts = {
|
|
6
|
+
readonly status: 'unavailable';
|
|
7
|
+
readonly reason: MarketBoundsUnavailableReason;
|
|
8
|
+
} | {
|
|
9
|
+
readonly status: 'available';
|
|
10
|
+
readonly maximumCargoDebitRaw: bigint;
|
|
11
|
+
readonly maximumAtlasDebitRaw: bigint;
|
|
12
|
+
readonly maximumGovernanceFeeRaw: bigint;
|
|
13
|
+
readonly maximumProfileDebit: bigint;
|
|
14
|
+
};
|
|
15
|
+
export interface MarketOrderIntent {
|
|
16
|
+
readonly address: Address;
|
|
17
|
+
readonly game: Address;
|
|
18
|
+
readonly system: Address;
|
|
19
|
+
readonly profile: Address;
|
|
20
|
+
readonly authority: Address;
|
|
21
|
+
readonly certificate?: Address;
|
|
22
|
+
readonly keyIndex: number;
|
|
23
|
+
readonly character: Address;
|
|
24
|
+
readonly starbasePlayer: Address;
|
|
25
|
+
readonly starbaseSequenceId: bigint;
|
|
26
|
+
readonly cargoId: number;
|
|
27
|
+
readonly side: 'bid' | 'ask';
|
|
28
|
+
readonly priceRaw: bigint;
|
|
29
|
+
readonly quantity: bigint;
|
|
30
|
+
}
|
|
31
|
+
export type LocalMarketOrderGuard = MarketOrderIntent & MarketOrderAmounts & {
|
|
32
|
+
readonly kind: 'local-market-order';
|
|
33
|
+
readonly describes: string;
|
|
34
|
+
readonly dataHash?: never;
|
|
35
|
+
};
|
|
36
|
+
export declare function hasQualifiedMarketFees(guards: readonly PlanPrecondition[]): boolean;
|
|
37
|
+
export declare function validateLocalMarketOrderInstructions(steps: readonly PlanStep[], guards: readonly PlanPrecondition[]): void;
|
|
38
|
+
export declare function normalizeLocalMarketOrderGuard(value: Record<string, unknown>, wire?: boolean): LocalMarketOrderGuard;
|
|
39
|
+
export declare function localMarketOrderGuardToJSON(guard: LocalMarketOrderGuard): RuntimeWire<LocalMarketOrderGuard>;
|
|
40
|
+
//# sourceMappingURL=local-market-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-market-order.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/local-market-order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,MAAM,MAAM,6BAA6B,GACrC,2BAA2B,GAC3B,4BAA4B,GAC5B,wBAAwB,GACxB,mBAAmB,GACnB,2BAA2B,GAC3B,6BAA6B,GAC7B,+BAA+B,CAAC;AACpC,MAAM,MAAM,kBAAkB,GAC1B;IACE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;CAChD,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,CAAC;AACN,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AACD,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GACnD,kBAAkB,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEJ,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,OAAO,CAWT;AACD,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,IAAI,CA6DN;AAcD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,UAAQ,GACX,qBAAqB,CAqGvB;AACD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,qBAAqB,GAC3B,WAAW,CAAC,qBAAqB,CAAC,CAOpC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { isAddress } from '@solana/kit';
|
|
2
|
+
import { SAGE_PROGRAM_ADDRESS, PLACE_LOCAL_MARKET_ORDER_DISCRIMINATOR, matchesLocalMarketPlacement, } from '../c4/local-market-order.js';
|
|
3
|
+
import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
|
|
4
|
+
const MAX_U64 = (1n << 64n) - 1n;
|
|
5
|
+
export function hasQualifiedMarketFees(guards) {
|
|
6
|
+
// Callers have resolved or normalized the mandatory market runtime guards.
|
|
7
|
+
const fees = guards.find((g) => g.kind === 'governance-fees');
|
|
8
|
+
const history = guards.find((g) => g.kind === 'democracy-history');
|
|
9
|
+
return (fees.intent.quote.source === 'default' &&
|
|
10
|
+
fees.intent.quote.params?.localMarketFeeBps === 0 &&
|
|
11
|
+
fees.intent.governance?.state === 'absent' &&
|
|
12
|
+
fees.intent.treasury?.state === 'absent' &&
|
|
13
|
+
history.intent.state === 'absent');
|
|
14
|
+
}
|
|
15
|
+
export function validateLocalMarketOrderInstructions(steps, guards) {
|
|
16
|
+
const selected = guards.filter((g) => g.kind === 'local-market-order');
|
|
17
|
+
const placements = steps.filter(({ instruction: i }) => i.programAddress === SAGE_PROGRAM_ADDRESS &&
|
|
18
|
+
PLACE_LOCAL_MARKET_ORDER_DISCRIMINATOR.every((v, n) => i.data?.[n] === v));
|
|
19
|
+
if (!selected.length && !placements.length)
|
|
20
|
+
return;
|
|
21
|
+
const bad = () => {
|
|
22
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'A Local Market order requires one standalone placement with its exact debit safeguard and unchanged account-state guards. Recreate the Plan with planPlaceLocalMarketOrder; do not combine it with other actions or edit its saved intent.');
|
|
23
|
+
};
|
|
24
|
+
if (steps.length !== 1 || placements.length !== 1 || selected.length !== 1)
|
|
25
|
+
bad();
|
|
26
|
+
const guard = selected[0];
|
|
27
|
+
const step = placements[0];
|
|
28
|
+
const fees = guards.find((g) => g.kind === 'governance-fees');
|
|
29
|
+
const history = guards.find((g) => g.kind === 'democracy-history');
|
|
30
|
+
if (!fees ||
|
|
31
|
+
fees.kind !== 'governance-fees' ||
|
|
32
|
+
!history ||
|
|
33
|
+
history.kind !== 'democracy-history')
|
|
34
|
+
return bad();
|
|
35
|
+
if (history.intent.game !== guard.game ||
|
|
36
|
+
history.intent.system !== guard.system ||
|
|
37
|
+
fees.intent.request.mode !== 'market' ||
|
|
38
|
+
fees.intent.request.game !== guard.game ||
|
|
39
|
+
fees.intent.request.system !== guard.system ||
|
|
40
|
+
fees.intent.request.starbaseSeqId !== guard.starbaseSequenceId)
|
|
41
|
+
bad();
|
|
42
|
+
if (guard.status === 'available' &&
|
|
43
|
+
(!hasQualifiedMarketFees(guards) ||
|
|
44
|
+
fees.intent.currencyCache?.version !== 0))
|
|
45
|
+
bad();
|
|
46
|
+
if (step.signers.length !== 1 ||
|
|
47
|
+
step.signers[0] !== guard.authority ||
|
|
48
|
+
!matchesLocalMarketPlacement(step.instruction, {
|
|
49
|
+
...guard,
|
|
50
|
+
...history.accounts,
|
|
51
|
+
...fees.accounts,
|
|
52
|
+
starbaseGovernance: fees.accounts.starbaseGovernance,
|
|
53
|
+
currencyCache: fees.accounts.currencyCache,
|
|
54
|
+
}))
|
|
55
|
+
bad();
|
|
56
|
+
for (const address of [guard.character, guard.starbasePlayer, guard.address])
|
|
57
|
+
if (!guards.some((g) => g.kind === 'account-state' && g.address === address))
|
|
58
|
+
bad();
|
|
59
|
+
}
|
|
60
|
+
const AMOUNT_KEYS = [
|
|
61
|
+
'maximumCargoDebitRaw',
|
|
62
|
+
'maximumAtlasDebitRaw',
|
|
63
|
+
'maximumGovernanceFeeRaw',
|
|
64
|
+
'maximumProfileDebit',
|
|
65
|
+
];
|
|
66
|
+
const BIGINT_KEYS = [
|
|
67
|
+
'starbaseSequenceId',
|
|
68
|
+
'priceRaw',
|
|
69
|
+
'quantity',
|
|
70
|
+
...AMOUNT_KEYS,
|
|
71
|
+
];
|
|
72
|
+
export function normalizeLocalMarketOrderGuard(value, wire = false) {
|
|
73
|
+
const bad = () => {
|
|
74
|
+
throw new InvalidActionInputError('local-market-order', value, 'the exact current Local Market intent and debit safeguard', 'Recreate the order Plan; do not alter its saved intent, qualification or debit fields.');
|
|
75
|
+
};
|
|
76
|
+
const row = { ...value };
|
|
77
|
+
const required = [
|
|
78
|
+
'kind',
|
|
79
|
+
'address',
|
|
80
|
+
'game',
|
|
81
|
+
'system',
|
|
82
|
+
'profile',
|
|
83
|
+
'authority',
|
|
84
|
+
'keyIndex',
|
|
85
|
+
'character',
|
|
86
|
+
'starbasePlayer',
|
|
87
|
+
'starbaseSequenceId',
|
|
88
|
+
'cargoId',
|
|
89
|
+
'side',
|
|
90
|
+
'priceRaw',
|
|
91
|
+
'quantity',
|
|
92
|
+
'status',
|
|
93
|
+
'describes',
|
|
94
|
+
...(row.status === 'available' ? AMOUNT_KEYS : ['reason']),
|
|
95
|
+
];
|
|
96
|
+
if (required.some((k) => !Object.hasOwn(row, k)) ||
|
|
97
|
+
Object.keys(row).some((k) => !required.includes(k) && k !== 'certificate'))
|
|
98
|
+
bad();
|
|
99
|
+
for (const key of [
|
|
100
|
+
'address',
|
|
101
|
+
'game',
|
|
102
|
+
'system',
|
|
103
|
+
'profile',
|
|
104
|
+
'authority',
|
|
105
|
+
'character',
|
|
106
|
+
'starbasePlayer',
|
|
107
|
+
...(row.certificate === undefined ? [] : ['certificate']),
|
|
108
|
+
])
|
|
109
|
+
if (typeof row[key] !== 'string' || !isAddress(row[key]))
|
|
110
|
+
bad();
|
|
111
|
+
for (const key of BIGINT_KEYS) {
|
|
112
|
+
if (!(key in row))
|
|
113
|
+
continue;
|
|
114
|
+
if (wire) {
|
|
115
|
+
if (typeof row[key] !== 'string' || !/^(0|[1-9][0-9]*)$/.test(row[key]))
|
|
116
|
+
bad();
|
|
117
|
+
row[key] = BigInt(row[key]);
|
|
118
|
+
}
|
|
119
|
+
if (typeof row[key] !== 'bigint' || row[key] < 0n || row[key] > MAX_U64)
|
|
120
|
+
bad();
|
|
121
|
+
}
|
|
122
|
+
for (const key of ['keyIndex', 'cargoId'])
|
|
123
|
+
if (typeof row[key] !== 'number' ||
|
|
124
|
+
!Number.isInteger(row[key]) ||
|
|
125
|
+
row[key] < 0 ||
|
|
126
|
+
row[key] > 65535)
|
|
127
|
+
bad();
|
|
128
|
+
if (row.kind !== 'local-market-order' ||
|
|
129
|
+
(row.side !== 'bid' && row.side !== 'ask') ||
|
|
130
|
+
row.priceRaw === 0n ||
|
|
131
|
+
row.quantity === 0n ||
|
|
132
|
+
typeof row.describes !== 'string' ||
|
|
133
|
+
!row.describes.trim())
|
|
134
|
+
bad();
|
|
135
|
+
if (row.side === 'bid' &&
|
|
136
|
+
row.priceRaw * row.quantity > MAX_U64)
|
|
137
|
+
bad();
|
|
138
|
+
if (row.status === 'available') {
|
|
139
|
+
if (row.maximumGovernanceFeeRaw !== 0n ||
|
|
140
|
+
row.maximumCargoDebitRaw !== (row.side === 'ask' ? row.quantity : 0n) ||
|
|
141
|
+
row.maximumAtlasDebitRaw !==
|
|
142
|
+
(row.side === 'bid'
|
|
143
|
+
? row.priceRaw * row.quantity
|
|
144
|
+
: 0n))
|
|
145
|
+
bad();
|
|
146
|
+
}
|
|
147
|
+
else if (row.status !== 'unavailable' ||
|
|
148
|
+
![
|
|
149
|
+
'unsupported-market-layout',
|
|
150
|
+
'unsupported-account-layout',
|
|
151
|
+
'unsupported-fee-policy',
|
|
152
|
+
'missing-cargo-row',
|
|
153
|
+
'funding-state-unavailable',
|
|
154
|
+
'accounts-below-rent-reserve',
|
|
155
|
+
'profile-below-storage-ceiling',
|
|
156
|
+
].includes(row.reason))
|
|
157
|
+
bad();
|
|
158
|
+
return Object.freeze(row);
|
|
159
|
+
}
|
|
160
|
+
export function localMarketOrderGuardToJSON(guard) {
|
|
161
|
+
return Object.fromEntries(Object.entries(guard).map(([key, value]) => [
|
|
162
|
+
key,
|
|
163
|
+
typeof value === 'bigint' ? String(value) : value,
|
|
164
|
+
]));
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=local-market-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-market-order.js","sourceRoot":"","sources":["../../../src/internal/planning/local-market-order.ts"],"names":[],"mappings":"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"}
|