@wuwei-labs/srsly 2.0.0-beta.3 → 2.0.0-beta.5
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 +217 -83
- package/dist/cjs/codama/devnet/constants.js +32 -0
- package/dist/cjs/codama/devnet/constants.js.map +1 -0
- package/dist/cjs/codama/mainnet/accounts/contractState.js +92 -0
- package/dist/cjs/codama/mainnet/accounts/contractState.js.map +1 -0
- package/dist/cjs/codama/mainnet/accounts/fleet.js +77 -0
- package/dist/cjs/codama/mainnet/accounts/fleet.js.map +1 -0
- package/dist/cjs/codama/mainnet/accounts/index.js +28 -0
- package/dist/cjs/codama/mainnet/accounts/index.js.map +1 -0
- package/dist/cjs/codama/mainnet/accounts/rentalState.js +85 -0
- package/dist/cjs/codama/mainnet/accounts/rentalState.js.map +1 -0
- package/dist/cjs/codama/mainnet/accounts/thread.js +89 -0
- package/dist/cjs/codama/mainnet/accounts/thread.js.map +1 -0
- package/dist/cjs/codama/mainnet/constants.js +32 -0
- package/dist/cjs/codama/mainnet/constants.js.map +1 -0
- package/dist/cjs/codama/mainnet/errors/index.js +25 -0
- package/dist/cjs/codama/mainnet/errors/index.js.map +1 -0
- package/dist/cjs/codama/mainnet/errors/srsly.js +71 -0
- package/dist/cjs/codama/mainnet/errors/srsly.js.map +1 -0
- package/dist/cjs/codama/mainnet/index.js +29 -0
- package/dist/cjs/codama/mainnet/index.js.map +1 -0
- package/dist/cjs/codama/mainnet/instructions/acceptRental.js +363 -0
- package/dist/cjs/codama/mainnet/instructions/acceptRental.js.map +1 -0
- package/dist/cjs/codama/mainnet/instructions/cancelRental.js +225 -0
- package/dist/cjs/codama/mainnet/instructions/cancelRental.js.map +1 -0
- package/dist/cjs/codama/mainnet/instructions/closeContract.js +219 -0
- package/dist/cjs/codama/mainnet/instructions/closeContract.js.map +1 -0
- package/dist/cjs/codama/mainnet/instructions/closeRental.js +233 -0
- package/dist/cjs/codama/mainnet/instructions/closeRental.js.map +1 -0
- package/dist/cjs/codama/mainnet/instructions/createContract.js +261 -0
- package/dist/cjs/codama/mainnet/instructions/createContract.js.map +1 -0
- package/dist/cjs/codama/mainnet/instructions/index.js +32 -0
- package/dist/cjs/codama/mainnet/instructions/index.js.map +1 -0
- package/dist/cjs/codama/mainnet/instructions/normalizeAdmin.js +152 -0
- package/dist/cjs/codama/mainnet/instructions/normalizeAdmin.js.map +1 -0
- package/dist/cjs/codama/mainnet/instructions/payRental.js +236 -0
- package/dist/cjs/codama/mainnet/instructions/payRental.js.map +1 -0
- package/dist/cjs/codama/mainnet/instructions/resetRental.js +155 -0
- package/dist/cjs/codama/mainnet/instructions/resetRental.js.map +1 -0
- package/dist/cjs/codama/mainnet/programs/index.js +25 -0
- package/dist/cjs/codama/mainnet/programs/index.js.map +1 -0
- package/dist/cjs/codama/mainnet/programs/srsly.js +77 -0
- package/dist/cjs/codama/mainnet/programs/srsly.js.map +1 -0
- package/dist/cjs/codama/mainnet/shared/index.js +95 -0
- package/dist/cjs/codama/mainnet/shared/index.js.map +1 -0
- package/dist/cjs/codama/mainnet/types/clockData.js +31 -0
- package/dist/cjs/codama/mainnet/types/clockData.js.map +1 -0
- package/dist/cjs/codama/mainnet/types/equality.js +30 -0
- package/dist/cjs/codama/mainnet/types/equality.js.map +1 -0
- package/dist/cjs/codama/mainnet/types/execContext.js +38 -0
- package/dist/cjs/codama/mainnet/types/execContext.js.map +1 -0
- package/dist/cjs/codama/mainnet/types/index.js +33 -0
- package/dist/cjs/codama/mainnet/types/index.js.map +1 -0
- package/dist/cjs/codama/mainnet/types/paymentFrequency.js +32 -0
- package/dist/cjs/codama/mainnet/types/paymentFrequency.js.map +1 -0
- package/dist/cjs/codama/mainnet/types/serializableAccount.js +31 -0
- package/dist/cjs/codama/mainnet/types/serializableAccount.js.map +1 -0
- package/dist/cjs/codama/mainnet/types/serializableInstruction.js +32 -0
- package/dist/cjs/codama/mainnet/types/serializableInstruction.js.map +1 -0
- package/dist/cjs/codama/mainnet/types/threadResponse.js +38 -0
- package/dist/cjs/codama/mainnet/types/threadResponse.js.map +1 -0
- package/dist/cjs/codama/mainnet/types/trigger.js +90 -0
- package/dist/cjs/codama/mainnet/types/trigger.js.map +1 -0
- package/dist/cjs/codama/mainnet/types/triggerContext.js +49 -0
- package/dist/cjs/codama/mainnet/types/triggerContext.js.map +1 -0
- package/dist/cjs/contract/close.js +51 -19
- package/dist/cjs/contract/close.js.map +1 -1
- package/dist/cjs/contract/create.js +31 -19
- package/dist/cjs/contract/create.js.map +1 -1
- package/dist/cjs/index.js +0 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/rental/accept.js +46 -33
- package/dist/cjs/rental/accept.js.map +1 -1
- package/dist/cjs/rental/cancel.js +30 -24
- package/dist/cjs/rental/cancel.js.map +1 -1
- package/dist/cjs/rental/close.js +31 -25
- package/dist/cjs/rental/close.js.map +1 -1
- package/dist/cjs/rental/reset.js +40 -38
- package/dist/cjs/rental/reset.js.map +1 -1
- package/dist/cjs/utils/config.js +204 -0
- package/dist/cjs/utils/config.js.map +1 -0
- package/dist/cjs/utils/constants.js +66 -13
- package/dist/cjs/utils/constants.js.map +1 -1
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/profiles.js +38 -18
- package/dist/cjs/utils/profiles.js.map +1 -1
- package/dist/esm/codama/devnet/constants.js +29 -0
- package/dist/esm/codama/devnet/constants.js.map +1 -0
- package/dist/esm/codama/mainnet/accounts/contractState.js +79 -0
- package/dist/esm/codama/mainnet/accounts/contractState.js.map +1 -0
- package/dist/esm/codama/mainnet/accounts/fleet.js +64 -0
- package/dist/esm/codama/mainnet/accounts/fleet.js.map +1 -0
- package/dist/esm/codama/mainnet/accounts/index.js +12 -0
- package/dist/esm/codama/mainnet/accounts/index.js.map +1 -0
- package/dist/esm/codama/mainnet/accounts/rentalState.js +72 -0
- package/dist/esm/codama/mainnet/accounts/rentalState.js.map +1 -0
- package/dist/esm/codama/mainnet/accounts/thread.js +77 -0
- package/dist/esm/codama/mainnet/accounts/thread.js.map +1 -0
- package/dist/esm/codama/mainnet/constants.js +29 -0
- package/dist/esm/codama/mainnet/constants.js.map +1 -0
- package/dist/esm/codama/mainnet/errors/index.js +9 -0
- package/dist/esm/codama/mainnet/errors/index.js.map +1 -0
- package/dist/esm/codama/mainnet/errors/srsly.js +66 -0
- package/dist/esm/codama/mainnet/errors/srsly.js.map +1 -0
- package/dist/esm/codama/mainnet/index.js +13 -0
- package/dist/esm/codama/mainnet/index.js.map +1 -0
- package/dist/esm/codama/mainnet/instructions/acceptRental.js +353 -0
- package/dist/esm/codama/mainnet/instructions/acceptRental.js.map +1 -0
- package/dist/esm/codama/mainnet/instructions/cancelRental.js +215 -0
- package/dist/esm/codama/mainnet/instructions/cancelRental.js.map +1 -0
- package/dist/esm/codama/mainnet/instructions/closeContract.js +209 -0
- package/dist/esm/codama/mainnet/instructions/closeContract.js.map +1 -0
- package/dist/esm/codama/mainnet/instructions/closeRental.js +223 -0
- package/dist/esm/codama/mainnet/instructions/closeRental.js.map +1 -0
- package/dist/esm/codama/mainnet/instructions/createContract.js +251 -0
- package/dist/esm/codama/mainnet/instructions/createContract.js.map +1 -0
- package/dist/esm/codama/mainnet/instructions/index.js +16 -0
- package/dist/esm/codama/mainnet/instructions/index.js.map +1 -0
- package/dist/esm/codama/mainnet/instructions/normalizeAdmin.js +142 -0
- package/dist/esm/codama/mainnet/instructions/normalizeAdmin.js.map +1 -0
- package/dist/esm/codama/mainnet/instructions/payRental.js +226 -0
- package/dist/esm/codama/mainnet/instructions/payRental.js.map +1 -0
- package/dist/esm/codama/mainnet/instructions/resetRental.js +145 -0
- package/dist/esm/codama/mainnet/instructions/resetRental.js.map +1 -0
- package/dist/esm/codama/mainnet/programs/index.js +9 -0
- package/dist/esm/codama/mainnet/programs/index.js.map +1 -0
- package/dist/esm/codama/mainnet/programs/srsly.js +72 -0
- package/dist/esm/codama/mainnet/programs/srsly.js.map +1 -0
- package/dist/esm/codama/mainnet/shared/index.js +87 -0
- package/dist/esm/codama/mainnet/shared/index.js.map +1 -0
- package/dist/esm/codama/mainnet/types/clockData.js +26 -0
- package/dist/esm/codama/mainnet/types/clockData.js.map +1 -0
- package/dist/esm/codama/mainnet/types/equality.js +24 -0
- package/dist/esm/codama/mainnet/types/equality.js.map +1 -0
- package/dist/esm/codama/mainnet/types/execContext.js +33 -0
- package/dist/esm/codama/mainnet/types/execContext.js.map +1 -0
- package/dist/esm/codama/mainnet/types/index.js +17 -0
- package/dist/esm/codama/mainnet/types/index.js.map +1 -0
- package/dist/esm/codama/mainnet/types/paymentFrequency.js +26 -0
- package/dist/esm/codama/mainnet/types/paymentFrequency.js.map +1 -0
- package/dist/esm/codama/mainnet/types/serializableAccount.js +26 -0
- package/dist/esm/codama/mainnet/types/serializableAccount.js.map +1 -0
- package/dist/esm/codama/mainnet/types/serializableInstruction.js +27 -0
- package/dist/esm/codama/mainnet/types/serializableInstruction.js.map +1 -0
- package/dist/esm/codama/mainnet/types/threadResponse.js +33 -0
- package/dist/esm/codama/mainnet/types/threadResponse.js.map +1 -0
- package/dist/esm/codama/mainnet/types/trigger.js +83 -0
- package/dist/esm/codama/mainnet/types/trigger.js.map +1 -0
- package/dist/esm/codama/mainnet/types/triggerContext.js +42 -0
- package/dist/esm/codama/mainnet/types/triggerContext.js.map +1 -0
- package/dist/esm/contract/close.js +52 -20
- package/dist/esm/contract/close.js.map +1 -1
- package/dist/esm/contract/create.js +31 -19
- package/dist/esm/contract/create.js.map +1 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/rental/accept.js +47 -34
- package/dist/esm/rental/accept.js.map +1 -1
- package/dist/esm/rental/cancel.js +30 -24
- package/dist/esm/rental/cancel.js.map +1 -1
- package/dist/esm/rental/close.js +31 -25
- package/dist/esm/rental/close.js.map +1 -1
- package/dist/esm/rental/reset.js +41 -39
- package/dist/esm/rental/reset.js.map +1 -1
- package/dist/esm/utils/config.js +161 -0
- package/dist/esm/utils/config.js.map +1 -0
- package/dist/esm/utils/constants.js +60 -10
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/profiles.js +39 -19
- package/dist/esm/utils/profiles.js.map +1 -1
- package/dist/types/codama/devnet/constants.d.ts +33 -0
- package/dist/types/codama/devnet/constants.d.ts.map +1 -0
- package/dist/types/codama/mainnet/accounts/contractState.d.ts +53 -0
- package/dist/types/codama/mainnet/accounts/contractState.d.ts.map +1 -0
- package/dist/types/codama/mainnet/accounts/fleet.d.ts +38 -0
- package/dist/types/codama/mainnet/accounts/fleet.d.ts.map +1 -0
- package/dist/types/codama/mainnet/accounts/index.d.ts +12 -0
- package/dist/types/codama/mainnet/accounts/index.d.ts.map +1 -0
- package/dist/types/codama/mainnet/accounts/rentalState.d.ts +46 -0
- package/dist/types/codama/mainnet/accounts/rentalState.d.ts.map +1 -0
- package/dist/types/codama/mainnet/accounts/thread.d.ts +74 -0
- package/dist/types/codama/mainnet/accounts/thread.d.ts.map +1 -0
- package/dist/types/codama/mainnet/constants.d.ts +33 -0
- package/dist/types/codama/mainnet/constants.d.ts.map +1 -0
- package/dist/types/codama/mainnet/errors/index.d.ts +9 -0
- package/dist/types/codama/mainnet/errors/index.d.ts.map +1 -0
- package/dist/types/codama/mainnet/errors/srsly.d.ts +48 -0
- package/dist/types/codama/mainnet/errors/srsly.d.ts.map +1 -0
- package/dist/types/codama/mainnet/index.d.ts +13 -0
- package/dist/types/codama/mainnet/index.d.ts.map +1 -0
- package/dist/types/codama/mainnet/instructions/acceptRental.d.ts +128 -0
- package/dist/types/codama/mainnet/instructions/acceptRental.d.ts.map +1 -0
- package/dist/types/codama/mainnet/instructions/cancelRental.d.ts +71 -0
- package/dist/types/codama/mainnet/instructions/cancelRental.d.ts.map +1 -0
- package/dist/types/codama/mainnet/instructions/closeContract.d.ts +96 -0
- package/dist/types/codama/mainnet/instructions/closeContract.d.ts.map +1 -0
- package/dist/types/codama/mainnet/instructions/closeRental.d.ts +79 -0
- package/dist/types/codama/mainnet/instructions/closeRental.d.ts.map +1 -0
- package/dist/types/codama/mainnet/instructions/createContract.d.ts +108 -0
- package/dist/types/codama/mainnet/instructions/createContract.d.ts.map +1 -0
- package/dist/types/codama/mainnet/instructions/index.d.ts +16 -0
- package/dist/types/codama/mainnet/instructions/index.d.ts.map +1 -0
- package/dist/types/codama/mainnet/instructions/normalizeAdmin.d.ts +67 -0
- package/dist/types/codama/mainnet/instructions/normalizeAdmin.d.ts.map +1 -0
- package/dist/types/codama/mainnet/instructions/payRental.d.ts +99 -0
- package/dist/types/codama/mainnet/instructions/payRental.d.ts.map +1 -0
- package/dist/types/codama/mainnet/instructions/resetRental.d.ts +71 -0
- package/dist/types/codama/mainnet/instructions/resetRental.d.ts.map +1 -0
- package/dist/types/codama/mainnet/programs/index.d.ts +9 -0
- package/dist/types/codama/mainnet/programs/index.d.ts.map +1 -0
- package/dist/types/codama/mainnet/programs/srsly.d.ts +50 -0
- package/dist/types/codama/mainnet/programs/srsly.d.ts.map +1 -0
- package/dist/types/codama/mainnet/shared/index.d.ts +50 -0
- package/dist/types/codama/mainnet/shared/index.d.ts.map +1 -0
- package/dist/types/codama/mainnet/types/clockData.d.ts +29 -0
- package/dist/types/codama/mainnet/types/clockData.d.ts.map +1 -0
- package/dist/types/codama/mainnet/types/equality.d.ts +18 -0
- package/dist/types/codama/mainnet/types/equality.d.ts.map +1 -0
- package/dist/types/codama/mainnet/types/execContext.d.ts +48 -0
- package/dist/types/codama/mainnet/types/execContext.d.ts.map +1 -0
- package/dist/types/codama/mainnet/types/index.d.ts +17 -0
- package/dist/types/codama/mainnet/types/index.d.ts.map +1 -0
- package/dist/types/codama/mainnet/types/paymentFrequency.d.ts +20 -0
- package/dist/types/codama/mainnet/types/paymentFrequency.d.ts.map +1 -0
- package/dist/types/codama/mainnet/types/serializableAccount.d.ts +22 -0
- package/dist/types/codama/mainnet/types/serializableAccount.d.ts.map +1 -0
- package/dist/types/codama/mainnet/types/serializableInstruction.d.ts +30 -0
- package/dist/types/codama/mainnet/types/serializableInstruction.d.ts.map +1 -0
- package/dist/types/codama/mainnet/types/threadResponse.d.ts +42 -0
- package/dist/types/codama/mainnet/types/threadResponse.d.ts.map +1 -0
- package/dist/types/codama/mainnet/types/trigger.d.ts +98 -0
- package/dist/types/codama/mainnet/types/trigger.d.ts.map +1 -0
- package/dist/types/codama/mainnet/types/triggerContext.d.ts +75 -0
- package/dist/types/codama/mainnet/types/triggerContext.d.ts.map +1 -0
- package/dist/types/contract/close.d.ts +20 -5
- package/dist/types/contract/close.d.ts.map +1 -1
- package/dist/types/contract/create.d.ts +23 -13
- package/dist/types/contract/create.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/rental/accept.d.ts +35 -6
- package/dist/types/rental/accept.d.ts.map +1 -1
- package/dist/types/rental/cancel.d.ts +27 -3
- package/dist/types/rental/cancel.d.ts.map +1 -1
- package/dist/types/rental/close.d.ts +28 -3
- package/dist/types/rental/close.d.ts.map +1 -1
- package/dist/types/rental/reset.d.ts +32 -4
- package/dist/types/rental/reset.d.ts.map +1 -1
- package/dist/types/utils/config.d.ts +112 -0
- package/dist/types/utils/config.d.ts.map +1 -0
- package/dist/types/utils/constants.d.ts +9 -7
- package/dist/types/utils/constants.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/profiles.d.ts +14 -8
- package/dist/types/utils/profiles.d.ts.map +1 -1
- package/package.json +6 -3
- package/dist/cjs/network.js +0 -107
- package/dist/cjs/network.js.map +0 -1
- package/dist/esm/network.js +0 -67
- package/dist/esm/network.js.map +0 -1
- package/dist/types/network.d.ts +0 -58
- package/dist/types/network.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
[](https://www.typescriptlang.org/)
|
|
5
5
|
[](https://solana.com/)
|
|
6
6
|
|
|
7
|
-
A TypeScript SDK for interacting with the SRSLY (Space Rental from SLY) Solana program - a decentralized rental system for Star Atlas.
|
|
7
|
+
A TypeScript SDK for interacting with the SRSLY (Space Rental from SLY) Solana program - a decentralized rental system for Star Atlas fleets with network-specific configuration support.
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
@@ -29,132 +29,170 @@ yarn add @wuwei-labs/srsly
|
|
|
29
29
|
## Quick Start
|
|
30
30
|
|
|
31
31
|
```typescript
|
|
32
|
-
import { Connection, PublicKey } from '@solana/web3.js';
|
|
33
32
|
import {
|
|
34
33
|
createContract,
|
|
35
|
-
acceptRental,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
acceptRental,
|
|
35
|
+
setConfig,
|
|
36
|
+
setNetwork,
|
|
37
|
+
ATLAS_TO_STARDUST
|
|
39
38
|
} from '@wuwei-labs/srsly';
|
|
40
39
|
|
|
41
|
-
// Set global
|
|
42
|
-
|
|
40
|
+
// Option 1: Set global configuration (recommended for most apps)
|
|
41
|
+
setConfig({ network: 'mainnet' });
|
|
42
|
+
// or use the convenience function: setNetwork('mainnet');
|
|
43
43
|
|
|
44
|
-
//
|
|
44
|
+
// Now all operations use mainnet by default
|
|
45
45
|
const contractInstruction = await createContract({
|
|
46
46
|
owner: wallet,
|
|
47
47
|
fleet: fleetAddress,
|
|
48
48
|
ownerProfile: profileAddress,
|
|
49
|
-
rate: 1000000, // Rate in
|
|
49
|
+
rate: 1000000, // Rate in ATLAS tokens
|
|
50
50
|
durationMin: 86400, // 1 day in seconds
|
|
51
51
|
durationMax: 604800, // 1 week in seconds
|
|
52
52
|
paymentsFreq: 'daily',
|
|
53
53
|
ownerKeyIndex: 0
|
|
54
|
-
});
|
|
54
|
+
}); // Uses mainnet from global config
|
|
55
55
|
|
|
56
|
-
//
|
|
57
|
-
const
|
|
58
|
-
|
|
56
|
+
// Accept a rental with automatic ATLAS to stardust conversion
|
|
57
|
+
const acceptInstruction = await acceptRental({
|
|
58
|
+
borrower: borrowerWallet,
|
|
59
|
+
borrowerProfile: borrowerProfileAddress,
|
|
60
|
+
borrowerFaction: 'mud', // or 1, 2, 3
|
|
61
|
+
fleet: fleetAddress,
|
|
62
|
+
contract: contractAddress,
|
|
63
|
+
rate: 100, // ATLAS tokens per duration
|
|
64
|
+
duration: 86400 // 1 day in seconds
|
|
65
|
+
// amount is automatically calculated: rate * duration * ATLAS_TO_STARDUST
|
|
66
|
+
}); // Uses mainnet from global config
|
|
67
|
+
|
|
68
|
+
// Option 2: Override global config for specific instructions
|
|
69
|
+
const devnetInstruction = await createContract(params).set({ network: 'devnet' });
|
|
59
70
|
```
|
|
60
71
|
|
|
61
72
|
## Core Features
|
|
62
73
|
|
|
63
74
|
### Contract Management
|
|
64
75
|
|
|
65
|
-
Create and manage rental contracts for Star Atlas:
|
|
76
|
+
Create and manage rental contracts for Star Atlas fleets:
|
|
66
77
|
|
|
67
78
|
```typescript
|
|
68
79
|
import { createContract, closeContract } from '@wuwei-labs/srsly';
|
|
69
80
|
|
|
70
|
-
// Create a new rental contract with network
|
|
81
|
+
// Create a new rental contract with network configuration
|
|
71
82
|
const createIx = await createContract({
|
|
72
83
|
owner: wallet,
|
|
73
84
|
fleet: fleetAddress,
|
|
74
85
|
ownerProfile: profileAddress,
|
|
75
|
-
rate: 5000000, //
|
|
86
|
+
rate: 5000000, // Rate in ATLAS tokens
|
|
76
87
|
durationMin: 86400, // Minimum 1 day
|
|
77
88
|
durationMax: 2592000, // Maximum 30 days
|
|
78
89
|
paymentsFreq: 'daily',
|
|
79
90
|
ownerKeyIndex: 0
|
|
80
|
-
}).mainnet
|
|
91
|
+
}).set({ network: 'mainnet' }); // Use mainnet configuration
|
|
81
92
|
|
|
82
|
-
// Close an existing contract using
|
|
93
|
+
// Close an existing contract using devnet defaults (direct await)
|
|
83
94
|
const closeIx = await closeContract({
|
|
84
95
|
owner: wallet,
|
|
85
96
|
fleet: fleetAddress,
|
|
86
97
|
contract: contractAddress,
|
|
87
|
-
faction: 'mud',
|
|
88
|
-
ownerProfile: profileAddress
|
|
98
|
+
faction: 'mud' // or faction number: 1, 2, 3
|
|
89
99
|
});
|
|
90
100
|
```
|
|
91
101
|
|
|
92
102
|
### Rental Operations
|
|
93
103
|
|
|
94
|
-
Handle rental lifecycle operations:
|
|
104
|
+
Handle rental lifecycle operations with automatic token conversion:
|
|
95
105
|
|
|
96
106
|
```typescript
|
|
97
107
|
import {
|
|
98
108
|
acceptRental,
|
|
99
109
|
cancelRental,
|
|
100
110
|
closeRental,
|
|
101
|
-
resetRental
|
|
111
|
+
resetRental,
|
|
112
|
+
ATLAS_TO_STARDUST
|
|
102
113
|
} from '@wuwei-labs/srsly';
|
|
103
114
|
|
|
104
|
-
// Accept a rental offer on devnet
|
|
115
|
+
// Accept a rental offer on devnet (rate-based with automatic conversion)
|
|
105
116
|
const acceptIx = await acceptRental({
|
|
106
117
|
borrower: borrowerWallet,
|
|
107
118
|
borrowerProfile: borrowerProfileAddress,
|
|
119
|
+
borrowerFaction: 'oni', // or faction number: 1=mud, 2=oni, 3=ustur
|
|
120
|
+
fleet: fleetAddress,
|
|
108
121
|
contract: contractAddress,
|
|
109
|
-
|
|
110
|
-
duration: 86400
|
|
111
|
-
amount
|
|
112
|
-
}).devnet
|
|
122
|
+
rate: 100, // ATLAS tokens (not per second, just ATLAS)
|
|
123
|
+
duration: 86400 // 1 day in seconds
|
|
124
|
+
// amount = rate * duration * ATLAS_TO_STARDUST automatically calculated
|
|
125
|
+
}).set({ network: 'devnet' });
|
|
113
126
|
|
|
114
|
-
// Cancel an active rental using
|
|
127
|
+
// Cancel an active rental using devnet defaults (direct await)
|
|
115
128
|
const cancelIx = await cancelRental({
|
|
116
129
|
borrower: borrowerWallet,
|
|
117
|
-
|
|
130
|
+
contract: contractAddress,
|
|
131
|
+
rentalState: rentalStateAddress
|
|
118
132
|
});
|
|
119
133
|
|
|
120
134
|
// Close a completed rental on mainnet
|
|
121
135
|
const closeIx = await closeRental({
|
|
122
136
|
borrower: borrowerWallet,
|
|
123
|
-
|
|
124
|
-
|
|
137
|
+
contract: contractAddress,
|
|
138
|
+
rentalState: rentalStateAddress,
|
|
139
|
+
ownerTokenAccount: ownerTokenAccountAddress
|
|
140
|
+
}).set({ network: 'mainnet' });
|
|
125
141
|
|
|
126
|
-
// Reset rental state
|
|
142
|
+
// Reset rental state with custom configuration
|
|
127
143
|
const resetIx = await resetRental({
|
|
128
144
|
fleet: fleetAddress,
|
|
129
145
|
contract: contractAddress,
|
|
130
146
|
rentalState: rentalStateAddress,
|
|
131
147
|
faction: 'mud',
|
|
132
148
|
ownerProfile: ownerProfileAddress
|
|
133
|
-
}).
|
|
149
|
+
}).set({
|
|
150
|
+
network: 'mainnet',
|
|
151
|
+
sageProgramAddress: 'custom...',
|
|
152
|
+
gameId: 'custom...'
|
|
153
|
+
});
|
|
134
154
|
```
|
|
135
155
|
|
|
136
156
|
### Account State Management
|
|
137
157
|
|
|
138
|
-
Fetch and decode account states:
|
|
158
|
+
Fetch and decode account states using network-specific functions:
|
|
139
159
|
|
|
140
160
|
```typescript
|
|
141
|
-
import {
|
|
161
|
+
import { getCachedNetworkModule } from '@wuwei-labs/srsly';
|
|
142
162
|
|
|
143
|
-
//
|
|
144
|
-
const
|
|
145
|
-
const
|
|
163
|
+
// Get network-specific account functions (defaults to devnet)
|
|
164
|
+
const accountsModule = await getCachedNetworkModule('accounts');
|
|
165
|
+
const { fetchContractState, fetchRentalState } = accountsModule;
|
|
166
|
+
|
|
167
|
+
// Or specify network explicitly
|
|
168
|
+
const mainnetAccountsModule = await getCachedNetworkModule('accounts', 'mainnet');
|
|
146
169
|
|
|
170
|
+
// Fetch contract state
|
|
171
|
+
const contractState = await fetchContractState(rpc, contractPublicKey);
|
|
147
172
|
console.log('Contract rate:', contractState.rate.toString());
|
|
148
173
|
console.log('Duration range:', contractState.durationMin.toString(), '-', contractState.durationMax.toString());
|
|
149
174
|
|
|
150
175
|
// Fetch rental state
|
|
151
|
-
const
|
|
152
|
-
const rentalState = RentalState.fromAccountInfo(rentalAccount)[0];
|
|
153
|
-
|
|
176
|
+
const rentalState = await fetchRentalState(rpc, rentalPublicKey);
|
|
154
177
|
console.log('Rental status:', rentalState.status);
|
|
155
178
|
console.log('Start time:', new Date(rentalState.startTime.toNumber() * 1000));
|
|
156
179
|
```
|
|
157
180
|
|
|
181
|
+
### Token Conversion
|
|
182
|
+
|
|
183
|
+
The SDK includes automatic ATLAS to stardust conversion for rental operations:
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
import { ATLAS_TO_STARDUST } from '@wuwei-labs/srsly';
|
|
187
|
+
|
|
188
|
+
// ATLAS_TO_STARDUST = 100_000_000 (1 ATLAS = 100 million stardust)
|
|
189
|
+
console.log('Conversion rate:', ATLAS_TO_STARDUST);
|
|
190
|
+
|
|
191
|
+
// When using acceptRental with rate and duration:
|
|
192
|
+
// Final amount = rate * duration * ATLAS_TO_STARDUST
|
|
193
|
+
// Example: 100 ATLAS * 86400 seconds * 100_000_000 = 864,000,000,000,000 stardust
|
|
194
|
+
```
|
|
195
|
+
|
|
158
196
|
## Program Information
|
|
159
197
|
|
|
160
198
|
- **Program ID**: `SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT`
|
|
@@ -188,67 +226,125 @@ try {
|
|
|
188
226
|
|
|
189
227
|
## Network Configuration
|
|
190
228
|
|
|
191
|
-
The SDK supports both Solana mainnet and devnet with network-specific program configurations. You can
|
|
229
|
+
The SDK supports both Solana mainnet and devnet with network-specific program configurations. You can set global configuration for convenience or override per instruction for flexibility.
|
|
192
230
|
|
|
193
|
-
### Global
|
|
231
|
+
### Global Configuration (Recommended)
|
|
194
232
|
|
|
195
|
-
Set
|
|
233
|
+
Set default configuration once for all SDK operations:
|
|
196
234
|
|
|
197
235
|
```typescript
|
|
198
|
-
import { setNetwork,
|
|
236
|
+
import { setConfig, setNetwork, getConfig, createContract } from '@wuwei-labs/srsly';
|
|
199
237
|
|
|
200
|
-
//
|
|
238
|
+
// Option 1: Full configuration
|
|
239
|
+
setConfig({
|
|
240
|
+
network: 'mainnet',
|
|
241
|
+
gameId: 'custom-game-id...'
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
// Option 2: Network-only (convenience function)
|
|
201
245
|
setNetwork('mainnet');
|
|
202
246
|
|
|
203
|
-
// Check current
|
|
204
|
-
console.log(
|
|
247
|
+
// Check current configuration
|
|
248
|
+
console.log(getConfig()); // { network: 'mainnet' }
|
|
205
249
|
|
|
206
|
-
// All
|
|
207
|
-
const
|
|
250
|
+
// All operations now use mainnet by default
|
|
251
|
+
const ix1 = await createContract(params);
|
|
252
|
+
const ix2 = await acceptRental(params);
|
|
208
253
|
```
|
|
209
254
|
|
|
210
|
-
### Per-Instruction
|
|
255
|
+
### Per-Instruction Configuration
|
|
211
256
|
|
|
212
|
-
Override
|
|
257
|
+
Override global configuration for specific instructions using the fluent `.set()` interface:
|
|
213
258
|
|
|
214
259
|
```typescript
|
|
215
|
-
import { createContract } from '@wuwei-labs/srsly';
|
|
260
|
+
import { createContract, acceptRental } from '@wuwei-labs/srsly';
|
|
216
261
|
|
|
217
|
-
//
|
|
218
|
-
|
|
262
|
+
// Assume global config is set to mainnet
|
|
263
|
+
setConfig({ network: 'mainnet' });
|
|
219
264
|
|
|
220
|
-
// Use
|
|
221
|
-
const
|
|
265
|
+
// Use global mainnet config
|
|
266
|
+
const mainnetIx = await createContract(params);
|
|
222
267
|
|
|
223
|
-
//
|
|
224
|
-
const
|
|
268
|
+
// Override to use devnet for this specific instruction
|
|
269
|
+
const devnetIx = await createContract(params).set({ network: 'devnet' });
|
|
225
270
|
|
|
226
|
-
//
|
|
227
|
-
const
|
|
271
|
+
// Override specific constants while keeping global network
|
|
272
|
+
const customIx = await createContract(params).set({
|
|
273
|
+
sageProgramAddress: 'custom...',
|
|
274
|
+
gameId: 'custom...'
|
|
275
|
+
// network: 'mainnet' inherited from global config
|
|
276
|
+
});
|
|
228
277
|
```
|
|
229
278
|
|
|
230
|
-
###
|
|
279
|
+
### Configuration Options
|
|
231
280
|
|
|
232
281
|
All SDK functions support these usage patterns:
|
|
233
282
|
|
|
234
|
-
**Direct await (uses global
|
|
283
|
+
**Direct await (uses global config or devnet fallback):**
|
|
284
|
+
|
|
235
285
|
```typescript
|
|
286
|
+
// Uses global configuration if set, otherwise devnet
|
|
236
287
|
await createContract(params);
|
|
237
288
|
await acceptRental(params);
|
|
238
289
|
```
|
|
239
290
|
|
|
240
|
-
**
|
|
241
|
-
|
|
242
|
-
-
|
|
243
|
-
-
|
|
244
|
-
-
|
|
291
|
+
**Global configuration functions:**
|
|
292
|
+
|
|
293
|
+
- `setConfig({ network: 'mainnet', gameId: '...' })` - Set full global config
|
|
294
|
+
- `setNetwork('mainnet')` - Set global network only (convenience)
|
|
295
|
+
- `getConfig()` - Get current global configuration
|
|
296
|
+
- `clearConfig()` - Reset to devnet defaults
|
|
297
|
+
|
|
298
|
+
**Per-instruction overrides with `.set()` method:**
|
|
299
|
+
|
|
300
|
+
- `.set({ network: 'mainnet' })` - Override global network
|
|
301
|
+
- `.set({ sageProgramAddress: '...' })` - Override specific constants only
|
|
302
|
+
- `.set({ network: 'mainnet', sageProgramAddress: '...' })` - Multiple overrides
|
|
303
|
+
|
|
304
|
+
**Chainable configurations:**
|
|
305
|
+
|
|
306
|
+
```typescript
|
|
307
|
+
// Chain multiple configurations (later ones override earlier ones)
|
|
308
|
+
await createContract(params)
|
|
309
|
+
.set({ network: 'devnet' })
|
|
310
|
+
.set({ sageProgramAddress: 'override...' });
|
|
311
|
+
|
|
312
|
+
// Examples with global config
|
|
313
|
+
setConfig({ network: 'mainnet' });
|
|
314
|
+
await createContract(params); // Uses mainnet
|
|
315
|
+
await acceptRental(params).set({ network: 'devnet' }); // Override to devnet
|
|
316
|
+
await closeContract(params).set({ gameId: 'custom...' }); // Custom gameId, mainnet network
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Available Configuration Options
|
|
245
320
|
|
|
246
321
|
```typescript
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
322
|
+
interface ConfigOptions {
|
|
323
|
+
network?: 'mainnet' | 'devnet'; // Set/override network
|
|
324
|
+
sageProgramAddress?: string; // Set/override SAGE program address
|
|
325
|
+
profileFactionProgramAddress?: string; // Set/override Profile Faction program address
|
|
326
|
+
gameId?: string; // Set/override SAGE game ID
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Network-Specific Constants
|
|
331
|
+
|
|
332
|
+
The SDK automatically resolves network-specific constants:
|
|
333
|
+
|
|
334
|
+
```typescript
|
|
335
|
+
import {
|
|
336
|
+
getSageProgramAddress,
|
|
337
|
+
getProfileFactionProgramAddress,
|
|
338
|
+
getSageGameId
|
|
339
|
+
} from '@wuwei-labs/srsly';
|
|
340
|
+
|
|
341
|
+
// Get constants for devnet (default)
|
|
342
|
+
const sageProgram = await getSageProgramAddress();
|
|
343
|
+
const gameId = await getSageGameId();
|
|
344
|
+
|
|
345
|
+
// Get constants for specific network
|
|
346
|
+
const mainnetSageProgram = await getSageProgramAddress({ network: 'mainnet' });
|
|
347
|
+
const mainnetGameId = await getSageGameId({ network: 'mainnet' });
|
|
252
348
|
```
|
|
253
349
|
|
|
254
350
|
## IDL and Types
|
|
@@ -279,7 +375,8 @@ import type {
|
|
|
279
375
|
RentalState,
|
|
280
376
|
PaymentFrequency,
|
|
281
377
|
ClockData,
|
|
282
|
-
ThreadResponse
|
|
378
|
+
ThreadResponse,
|
|
379
|
+
ConfigOptions
|
|
283
380
|
} from '@wuwei-labs/srsly';
|
|
284
381
|
|
|
285
382
|
// Import network-specific Anchor types
|
|
@@ -287,16 +384,53 @@ import type { Srsly as SrslyMainnet } from '@wuwei-labs/srsly/types/mainnet';
|
|
|
287
384
|
import type { Srsly as SrslyDevnet } from '@wuwei-labs/srsly/types/devnet';
|
|
288
385
|
```
|
|
289
386
|
|
|
290
|
-
|
|
387
|
+
## Constants and Utilities
|
|
291
388
|
|
|
292
|
-
|
|
389
|
+
### Available Constants
|
|
293
390
|
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
|
|
391
|
+
```typescript
|
|
392
|
+
import {
|
|
393
|
+
ATLAS_TO_STARDUST,
|
|
394
|
+
STARBASE_SEED,
|
|
395
|
+
STARBASE_PLAYER_SEED,
|
|
396
|
+
SAGE_PLAYER_PROFILE_SEED,
|
|
397
|
+
PROFILE_FACTION_SEED,
|
|
398
|
+
FACTION_MAPPING,
|
|
399
|
+
FACTION_SPECIFIC_CSS
|
|
400
|
+
} from '@wuwei-labs/srsly';
|
|
401
|
+
|
|
402
|
+
// Token conversion
|
|
403
|
+
console.log(ATLAS_TO_STARDUST); // 100_000_000
|
|
404
|
+
|
|
405
|
+
// Faction mappings
|
|
406
|
+
console.log(FACTION_MAPPING[1]); // 'mud'
|
|
407
|
+
console.log(FACTION_MAPPING[2]); // 'oni'
|
|
408
|
+
console.log(FACTION_MAPPING[3]); // 'ustur'
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### Profile Derivation
|
|
412
|
+
|
|
413
|
+
```typescript
|
|
414
|
+
import {
|
|
415
|
+
deriveProfileFaction,
|
|
416
|
+
deriveSagePlayerProfile,
|
|
417
|
+
deriveStarbase,
|
|
418
|
+
deriveStarbasePlayer,
|
|
419
|
+
deriveGameAccounts
|
|
420
|
+
} from '@wuwei-labs/srsly';
|
|
297
421
|
|
|
298
|
-
|
|
299
|
-
|
|
422
|
+
// Derive individual accounts with network configuration
|
|
423
|
+
const profileFaction = await deriveProfileFaction(profile, { network: 'mainnet' });
|
|
424
|
+
const starbase = await deriveStarbase('mud', gameId, { network: 'mainnet' });
|
|
425
|
+
|
|
426
|
+
// Derive all game accounts at once
|
|
427
|
+
const gameAccounts = await deriveGameAccounts(
|
|
428
|
+
profile,
|
|
429
|
+
'mud',
|
|
430
|
+
gameId,
|
|
431
|
+
0, // starbaseSeqId
|
|
432
|
+
{ network: 'mainnet' }
|
|
433
|
+
);
|
|
300
434
|
```
|
|
301
435
|
|
|
302
436
|
## Documentation
|
|
@@ -307,4 +441,4 @@ pnpm run generate:devnet
|
|
|
307
441
|
|
|
308
442
|
- **Star Atlas**: The metaverse gaming ecosystem
|
|
309
443
|
- **Solana**: The blockchain platform powering SRSLY
|
|
310
|
-
- **Anchor**: The framework used to build the SRSLY program
|
|
444
|
+
- **Anchor**: The framework used to build the SRSLY program
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Network-specific constants for devnet
|
|
4
|
+
*
|
|
5
|
+
* This file is auto-generated from network-configs.mjs
|
|
6
|
+
* DO NOT EDIT MANUALLY - your changes will be overwritten
|
|
7
|
+
*
|
|
8
|
+
* To update these constants:
|
|
9
|
+
* 1. Edit network-configs.mjs
|
|
10
|
+
* 2. Run `pnpm build` to regenerate
|
|
11
|
+
*
|
|
12
|
+
* Generated on: 2025-06-21T19:10:08.579Z
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.NETWORK_CONFIG = exports.ATLAS_TOKEN_MINT = exports.SRSLY_PROGRAM_ADDRESS = exports.SAGE_GAME_ID = exports.PROFILE_FACTION_PROGRAM_ADDRESS = exports.SAGE_PROGRAM_ADDRESS = void 0;
|
|
16
|
+
exports.SAGE_PROGRAM_ADDRESS = 'sAgeDEVzwJpDb1aHvzNr3o24cKjsETmFEKghBEyJ1askDi';
|
|
17
|
+
exports.PROFILE_FACTION_PROGRAM_ADDRESS = 'pFACDEVobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq';
|
|
18
|
+
exports.SAGE_GAME_ID = 'GAMEDEVJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr';
|
|
19
|
+
exports.SRSLY_PROGRAM_ADDRESS = 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT';
|
|
20
|
+
exports.ATLAS_TOKEN_MINT = 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx';
|
|
21
|
+
/**
|
|
22
|
+
* Complete network configuration object
|
|
23
|
+
* Useful for runtime access to all constants
|
|
24
|
+
*/
|
|
25
|
+
exports.NETWORK_CONFIG = {
|
|
26
|
+
SAGE_PROGRAM_ADDRESS: 'sAgeDEVzwJpDb1aHvzNr3o24cKjsETmFEKghBEyJ1askDi',
|
|
27
|
+
PROFILE_FACTION_PROGRAM_ADDRESS: 'pFACDEVobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq',
|
|
28
|
+
SAGE_GAME_ID: 'GAMEDEVJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr',
|
|
29
|
+
SRSLY_PROGRAM_ADDRESS: 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
|
|
30
|
+
ATLAS_TOKEN_MINT: 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx',
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/codama/devnet/constants.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEU,QAAA,oBAAoB,GAAG,gDAAgD,CAAC;AACxE,QAAA,+BAA+B,GAAG,6CAA6C,CAAC;AAChF,QAAA,YAAY,GAAG,+CAA+C,CAAC;AAC/D,QAAA,qBAAqB,GAAG,6CAA6C,CAAC;AACtE,QAAA,gBAAgB,GAAG,8CAA8C,CAAC;AAE/E;;;GAGG;AACU,QAAA,cAAc,GAAG;IAC5B,oBAAoB,EAAE,gDAAgD;IACtE,+BAA+B,EAAE,6CAA6C;IAC9E,YAAY,EAAE,+CAA+C;IAC7D,qBAAqB,EAAE,6CAA6C;IACpE,gBAAgB,EAAE,8CAA8C;CACxD,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This code was AUTOGENERATED using the codama library.
|
|
4
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
5
|
+
* to add features, then rerun codama to update it.
|
|
6
|
+
*
|
|
7
|
+
* @see https://github.com/codama-idl/codama
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.CONTRACT_STATE_DISCRIMINATOR = void 0;
|
|
11
|
+
exports.getContractStateDiscriminatorBytes = getContractStateDiscriminatorBytes;
|
|
12
|
+
exports.getContractStateEncoder = getContractStateEncoder;
|
|
13
|
+
exports.getContractStateDecoder = getContractStateDecoder;
|
|
14
|
+
exports.getContractStateCodec = getContractStateCodec;
|
|
15
|
+
exports.decodeContractState = decodeContractState;
|
|
16
|
+
exports.fetchContractState = fetchContractState;
|
|
17
|
+
exports.fetchMaybeContractState = fetchMaybeContractState;
|
|
18
|
+
exports.fetchAllContractState = fetchAllContractState;
|
|
19
|
+
exports.fetchAllMaybeContractState = fetchAllMaybeContractState;
|
|
20
|
+
exports.getContractStateSize = getContractStateSize;
|
|
21
|
+
const kit_1 = require("@solana/kit");
|
|
22
|
+
const types_1 = require("../types");
|
|
23
|
+
exports.CONTRACT_STATE_DISCRIMINATOR = new Uint8Array([
|
|
24
|
+
190, 138, 10, 223, 189, 116, 222, 115,
|
|
25
|
+
]);
|
|
26
|
+
function getContractStateDiscriminatorBytes() {
|
|
27
|
+
return (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8).encode(exports.CONTRACT_STATE_DISCRIMINATOR);
|
|
28
|
+
}
|
|
29
|
+
function getContractStateEncoder() {
|
|
30
|
+
return (0, kit_1.transformEncoder)((0, kit_1.getStructEncoder)([
|
|
31
|
+
['discriminator', (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8)],
|
|
32
|
+
['version', (0, kit_1.getU8Encoder)()],
|
|
33
|
+
['toClose', (0, kit_1.getBooleanEncoder)()],
|
|
34
|
+
['rate', (0, kit_1.getU64Encoder)()],
|
|
35
|
+
['durationMin', (0, kit_1.getU64Encoder)()],
|
|
36
|
+
['durationMax', (0, kit_1.getU64Encoder)()],
|
|
37
|
+
['paymentsFeq', (0, types_1.getPaymentFrequencyEncoder)()],
|
|
38
|
+
['fleet', (0, kit_1.getAddressEncoder)()],
|
|
39
|
+
['gameId', (0, kit_1.getAddressEncoder)()],
|
|
40
|
+
['currentRentalState', (0, kit_1.getAddressEncoder)()],
|
|
41
|
+
['owner', (0, kit_1.getAddressEncoder)()],
|
|
42
|
+
['ownerTokenAccount', (0, kit_1.getAddressEncoder)()],
|
|
43
|
+
['ownerProfile', (0, kit_1.getAddressEncoder)()],
|
|
44
|
+
['bump', (0, kit_1.getU8Encoder)()],
|
|
45
|
+
]), (value) => ({ ...value, discriminator: exports.CONTRACT_STATE_DISCRIMINATOR }));
|
|
46
|
+
}
|
|
47
|
+
function getContractStateDecoder() {
|
|
48
|
+
return (0, kit_1.getStructDecoder)([
|
|
49
|
+
['discriminator', (0, kit_1.fixDecoderSize)((0, kit_1.getBytesDecoder)(), 8)],
|
|
50
|
+
['version', (0, kit_1.getU8Decoder)()],
|
|
51
|
+
['toClose', (0, kit_1.getBooleanDecoder)()],
|
|
52
|
+
['rate', (0, kit_1.getU64Decoder)()],
|
|
53
|
+
['durationMin', (0, kit_1.getU64Decoder)()],
|
|
54
|
+
['durationMax', (0, kit_1.getU64Decoder)()],
|
|
55
|
+
['paymentsFeq', (0, types_1.getPaymentFrequencyDecoder)()],
|
|
56
|
+
['fleet', (0, kit_1.getAddressDecoder)()],
|
|
57
|
+
['gameId', (0, kit_1.getAddressDecoder)()],
|
|
58
|
+
['currentRentalState', (0, kit_1.getAddressDecoder)()],
|
|
59
|
+
['owner', (0, kit_1.getAddressDecoder)()],
|
|
60
|
+
['ownerTokenAccount', (0, kit_1.getAddressDecoder)()],
|
|
61
|
+
['ownerProfile', (0, kit_1.getAddressDecoder)()],
|
|
62
|
+
['bump', (0, kit_1.getU8Decoder)()],
|
|
63
|
+
]);
|
|
64
|
+
}
|
|
65
|
+
function getContractStateCodec() {
|
|
66
|
+
return (0, kit_1.combineCodec)(getContractStateEncoder(), getContractStateDecoder());
|
|
67
|
+
}
|
|
68
|
+
function decodeContractState(encodedAccount) {
|
|
69
|
+
return (0, kit_1.decodeAccount)(encodedAccount, getContractStateDecoder());
|
|
70
|
+
}
|
|
71
|
+
async function fetchContractState(rpc, address, config) {
|
|
72
|
+
const maybeAccount = await fetchMaybeContractState(rpc, address, config);
|
|
73
|
+
(0, kit_1.assertAccountExists)(maybeAccount);
|
|
74
|
+
return maybeAccount;
|
|
75
|
+
}
|
|
76
|
+
async function fetchMaybeContractState(rpc, address, config) {
|
|
77
|
+
const maybeAccount = await (0, kit_1.fetchEncodedAccount)(rpc, address, config);
|
|
78
|
+
return decodeContractState(maybeAccount);
|
|
79
|
+
}
|
|
80
|
+
async function fetchAllContractState(rpc, addresses, config) {
|
|
81
|
+
const maybeAccounts = await fetchAllMaybeContractState(rpc, addresses, config);
|
|
82
|
+
(0, kit_1.assertAccountsExist)(maybeAccounts);
|
|
83
|
+
return maybeAccounts;
|
|
84
|
+
}
|
|
85
|
+
async function fetchAllMaybeContractState(rpc, addresses, config) {
|
|
86
|
+
const maybeAccounts = await (0, kit_1.fetchEncodedAccounts)(rpc, addresses, config);
|
|
87
|
+
return maybeAccounts.map((maybeAccount) => decodeContractState(maybeAccount));
|
|
88
|
+
}
|
|
89
|
+
function getContractStateSize() {
|
|
90
|
+
return 228;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=contractState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contractState.js","sourceRoot":"","sources":["../../../../../src/codama/mainnet/accounts/contractState.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AA+CH,gFAIC;AAmCD,0DAoBC;AAED,0DAiBC;AAED,sDAKC;AAQD,kDAOC;AAED,gDAQC;AAED,0DAOC;AAED,sDAYC;AAED,gEAOC;AAED,oDAEC;AA/LD,qCAiCqB;AACrB,oCAKkB;AAEL,QAAA,4BAA4B,GAAG,IAAI,UAAU,CAAC;IACzD,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CACtC,CAAC,CAAC;AAEH,SAAgB,kCAAkC;IAChD,OAAO,IAAA,oBAAc,EAAC,IAAA,qBAAe,GAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAChD,oCAA4B,CAC7B,CAAC;AACJ,CAAC;AAmCD,SAAgB,uBAAuB;IACrC,OAAO,IAAA,sBAAgB,EACrB,IAAA,sBAAgB,EAAC;QACf,CAAC,eAAe,EAAE,IAAA,oBAAc,EAAC,IAAA,qBAAe,GAAE,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC,SAAS,EAAE,IAAA,kBAAY,GAAE,CAAC;QAC3B,CAAC,SAAS,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAChC,CAAC,MAAM,EAAE,IAAA,mBAAa,GAAE,CAAC;QACzB,CAAC,aAAa,EAAE,IAAA,mBAAa,GAAE,CAAC;QAChC,CAAC,aAAa,EAAE,IAAA,mBAAa,GAAE,CAAC;QAChC,CAAC,aAAa,EAAE,IAAA,kCAA0B,GAAE,CAAC;QAC7C,CAAC,OAAO,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAC9B,CAAC,QAAQ,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAC/B,CAAC,oBAAoB,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAC3C,CAAC,OAAO,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAC9B,CAAC,mBAAmB,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAC1C,CAAC,cAAc,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACrC,CAAC,MAAM,EAAE,IAAA,kBAAY,GAAE,CAAC;KACzB,CAAC,EACF,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,oCAA4B,EAAE,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,SAAgB,uBAAuB;IACrC,OAAO,IAAA,sBAAgB,EAAC;QACtB,CAAC,eAAe,EAAE,IAAA,oBAAc,EAAC,IAAA,qBAAe,GAAE,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC,SAAS,EAAE,IAAA,kBAAY,GAAE,CAAC;QAC3B,CAAC,SAAS,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAChC,CAAC,MAAM,EAAE,IAAA,mBAAa,GAAE,CAAC;QACzB,CAAC,aAAa,EAAE,IAAA,mBAAa,GAAE,CAAC;QAChC,CAAC,aAAa,EAAE,IAAA,mBAAa,GAAE,CAAC;QAChC,CAAC,aAAa,EAAE,IAAA,kCAA0B,GAAE,CAAC;QAC7C,CAAC,OAAO,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAC9B,CAAC,QAAQ,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAC/B,CAAC,oBAAoB,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAC3C,CAAC,OAAO,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAC9B,CAAC,mBAAmB,EAAE,IAAA,uBAAiB,GAAE,CAAC;QAC1C,CAAC,cAAc,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACrC,CAAC,MAAM,EAAE,IAAA,kBAAY,GAAE,CAAC;KACzB,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,qBAAqB;IAInC,OAAO,IAAA,kBAAY,EAAC,uBAAuB,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAC5E,CAAC;AAQD,SAAgB,mBAAmB,CACjC,cAAwE;IAExE,OAAO,IAAA,mBAAa,EAClB,cAA+C,EAC/C,uBAAuB,EAAE,CAC1B,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,GAA8C,EAC9C,OAA0B,EAC1B,MAA2B;IAE3B,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACzE,IAAA,yBAAmB,EAAC,YAAY,CAAC,CAAC;IAClC,OAAO,YAAY,CAAC;AACtB,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,GAA8C,EAC9C,OAA0B,EAC1B,MAA2B;IAE3B,MAAM,YAAY,GAAG,MAAM,IAAA,yBAAmB,EAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;AAC3C,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,GAA+C,EAC/C,SAAyB,EACzB,MAA4B;IAE5B,MAAM,aAAa,GAAG,MAAM,0BAA0B,CACpD,GAAG,EACH,SAAS,EACT,MAAM,CACP,CAAC;IACF,IAAA,yBAAmB,EAAC,aAAa,CAAC,CAAC;IACnC,OAAO,aAAa,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,0BAA0B,CAC9C,GAA+C,EAC/C,SAAyB,EACzB,MAA4B;IAE5B,MAAM,aAAa,GAAG,MAAM,IAAA,0BAAoB,EAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This code was AUTOGENERATED using the codama library.
|
|
4
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
5
|
+
* to add features, then rerun codama to update it.
|
|
6
|
+
*
|
|
7
|
+
* @see https://github.com/codama-idl/codama
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.FLEET_DISCRIMINATOR = void 0;
|
|
11
|
+
exports.getFleetDiscriminatorBytes = getFleetDiscriminatorBytes;
|
|
12
|
+
exports.getFleetEncoder = getFleetEncoder;
|
|
13
|
+
exports.getFleetDecoder = getFleetDecoder;
|
|
14
|
+
exports.getFleetCodec = getFleetCodec;
|
|
15
|
+
exports.decodeFleet = decodeFleet;
|
|
16
|
+
exports.fetchFleet = fetchFleet;
|
|
17
|
+
exports.fetchMaybeFleet = fetchMaybeFleet;
|
|
18
|
+
exports.fetchAllFleet = fetchAllFleet;
|
|
19
|
+
exports.fetchAllMaybeFleet = fetchAllMaybeFleet;
|
|
20
|
+
exports.getFleetSize = getFleetSize;
|
|
21
|
+
const kit_1 = require("@solana/kit");
|
|
22
|
+
exports.FLEET_DISCRIMINATOR = new Uint8Array([
|
|
23
|
+
109, 207, 251, 48, 106, 2, 136, 163,
|
|
24
|
+
]);
|
|
25
|
+
function getFleetDiscriminatorBytes() {
|
|
26
|
+
return (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8).encode(exports.FLEET_DISCRIMINATOR);
|
|
27
|
+
}
|
|
28
|
+
function getFleetEncoder() {
|
|
29
|
+
return (0, kit_1.transformEncoder)((0, kit_1.getStructEncoder)([
|
|
30
|
+
['discriminator', (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8)],
|
|
31
|
+
['version', (0, kit_1.getU8Encoder)()],
|
|
32
|
+
['gameId', (0, kit_1.getAddressEncoder)()],
|
|
33
|
+
['ownerProfile', (0, kit_1.getAddressEncoder)()],
|
|
34
|
+
['fleetShips', (0, kit_1.getAddressEncoder)()],
|
|
35
|
+
['subProfile', (0, kit_1.getAddressEncoder)()],
|
|
36
|
+
['subProfileInvalidator', (0, kit_1.getAddressEncoder)()],
|
|
37
|
+
]), (value) => ({ ...value, discriminator: exports.FLEET_DISCRIMINATOR }));
|
|
38
|
+
}
|
|
39
|
+
function getFleetDecoder() {
|
|
40
|
+
return (0, kit_1.getStructDecoder)([
|
|
41
|
+
['discriminator', (0, kit_1.fixDecoderSize)((0, kit_1.getBytesDecoder)(), 8)],
|
|
42
|
+
['version', (0, kit_1.getU8Decoder)()],
|
|
43
|
+
['gameId', (0, kit_1.getAddressDecoder)()],
|
|
44
|
+
['ownerProfile', (0, kit_1.getAddressDecoder)()],
|
|
45
|
+
['fleetShips', (0, kit_1.getAddressDecoder)()],
|
|
46
|
+
['subProfile', (0, kit_1.getAddressDecoder)()],
|
|
47
|
+
['subProfileInvalidator', (0, kit_1.getAddressDecoder)()],
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
50
|
+
function getFleetCodec() {
|
|
51
|
+
return (0, kit_1.combineCodec)(getFleetEncoder(), getFleetDecoder());
|
|
52
|
+
}
|
|
53
|
+
function decodeFleet(encodedAccount) {
|
|
54
|
+
return (0, kit_1.decodeAccount)(encodedAccount, getFleetDecoder());
|
|
55
|
+
}
|
|
56
|
+
async function fetchFleet(rpc, address, config) {
|
|
57
|
+
const maybeAccount = await fetchMaybeFleet(rpc, address, config);
|
|
58
|
+
(0, kit_1.assertAccountExists)(maybeAccount);
|
|
59
|
+
return maybeAccount;
|
|
60
|
+
}
|
|
61
|
+
async function fetchMaybeFleet(rpc, address, config) {
|
|
62
|
+
const maybeAccount = await (0, kit_1.fetchEncodedAccount)(rpc, address, config);
|
|
63
|
+
return decodeFleet(maybeAccount);
|
|
64
|
+
}
|
|
65
|
+
async function fetchAllFleet(rpc, addresses, config) {
|
|
66
|
+
const maybeAccounts = await fetchAllMaybeFleet(rpc, addresses, config);
|
|
67
|
+
(0, kit_1.assertAccountsExist)(maybeAccounts);
|
|
68
|
+
return maybeAccounts;
|
|
69
|
+
}
|
|
70
|
+
async function fetchAllMaybeFleet(rpc, addresses, config) {
|
|
71
|
+
const maybeAccounts = await (0, kit_1.fetchEncodedAccounts)(rpc, addresses, config);
|
|
72
|
+
return maybeAccounts.map((maybeAccount) => decodeFleet(maybeAccount));
|
|
73
|
+
}
|
|
74
|
+
function getFleetSize() {
|
|
75
|
+
return 169;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=fleet.js.map
|