@wuwei-labs/srsly 2.0.0-beta.10 → 2.0.0-beta.12
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 +219 -81
- package/dist/cjs/codama/atlasnet/accounts/contractState.js +87 -0
- package/dist/cjs/codama/atlasnet/accounts/contractState.js.map +1 -0
- package/dist/cjs/codama/atlasnet/accounts/fleet.js +77 -0
- package/dist/cjs/codama/atlasnet/accounts/fleet.js.map +1 -0
- package/dist/cjs/codama/atlasnet/accounts/index.js +28 -0
- package/dist/cjs/codama/atlasnet/accounts/index.js.map +1 -0
- package/dist/cjs/codama/atlasnet/accounts/rentalState.js +87 -0
- package/dist/cjs/codama/atlasnet/accounts/rentalState.js.map +1 -0
- package/dist/cjs/codama/atlasnet/accounts/thread.js +89 -0
- package/dist/cjs/codama/atlasnet/accounts/thread.js.map +1 -0
- package/dist/cjs/codama/atlasnet/errors/index.js +25 -0
- package/dist/cjs/codama/atlasnet/errors/index.js.map +1 -0
- package/dist/cjs/codama/atlasnet/errors/srsly.js +74 -0
- package/dist/cjs/codama/atlasnet/errors/srsly.js.map +1 -0
- package/dist/cjs/codama/atlasnet/index.js +29 -0
- package/dist/cjs/codama/atlasnet/index.js.map +1 -0
- package/dist/cjs/codama/atlasnet/instructions/acceptRental.js +357 -0
- package/dist/cjs/codama/atlasnet/instructions/acceptRental.js.map +1 -0
- package/dist/cjs/codama/atlasnet/instructions/cancelRental.js +225 -0
- package/dist/cjs/codama/atlasnet/instructions/cancelRental.js.map +1 -0
- package/dist/cjs/codama/atlasnet/instructions/closeContract.js +246 -0
- package/dist/cjs/codama/atlasnet/instructions/closeContract.js.map +1 -0
- package/dist/cjs/codama/atlasnet/instructions/closeRental.js +260 -0
- package/dist/cjs/codama/atlasnet/instructions/closeRental.js.map +1 -0
- package/dist/cjs/codama/atlasnet/instructions/createContract.js +261 -0
- package/dist/cjs/codama/atlasnet/instructions/createContract.js.map +1 -0
- package/dist/cjs/codama/atlasnet/instructions/index.js +31 -0
- package/dist/cjs/codama/atlasnet/instructions/index.js.map +1 -0
- package/dist/cjs/codama/atlasnet/instructions/payRental.js +280 -0
- package/dist/cjs/codama/atlasnet/instructions/payRental.js.map +1 -0
- package/dist/cjs/codama/atlasnet/instructions/resetRental.js +155 -0
- package/dist/cjs/codama/atlasnet/instructions/resetRental.js.map +1 -0
- package/dist/cjs/codama/atlasnet/programs/index.js +25 -0
- package/dist/cjs/codama/atlasnet/programs/index.js.map +1 -0
- package/dist/cjs/codama/atlasnet/programs/srsly.js +73 -0
- package/dist/cjs/codama/atlasnet/programs/srsly.js.map +1 -0
- package/dist/cjs/codama/atlasnet/shared/index.js +95 -0
- package/dist/cjs/codama/atlasnet/shared/index.js.map +1 -0
- package/dist/cjs/codama/atlasnet/types/clockData.js +31 -0
- package/dist/cjs/codama/atlasnet/types/clockData.js.map +1 -0
- package/dist/cjs/codama/atlasnet/types/equality.js +30 -0
- package/dist/cjs/codama/atlasnet/types/equality.js.map +1 -0
- package/dist/cjs/codama/atlasnet/types/execContext.js +38 -0
- package/dist/cjs/codama/atlasnet/types/execContext.js.map +1 -0
- package/dist/cjs/codama/atlasnet/types/index.js +32 -0
- package/dist/cjs/codama/atlasnet/types/index.js.map +1 -0
- package/dist/cjs/codama/atlasnet/types/serializableAccount.js +31 -0
- package/dist/cjs/codama/atlasnet/types/serializableAccount.js.map +1 -0
- package/dist/cjs/codama/atlasnet/types/serializableInstruction.js +32 -0
- package/dist/cjs/codama/atlasnet/types/serializableInstruction.js.map +1 -0
- package/dist/cjs/codama/atlasnet/types/threadResponse.js +38 -0
- package/dist/cjs/codama/atlasnet/types/threadResponse.js.map +1 -0
- package/dist/cjs/codama/atlasnet/types/trigger.js +90 -0
- package/dist/cjs/codama/atlasnet/types/trigger.js.map +1 -0
- package/dist/cjs/codama/atlasnet/types/triggerContext.js +49 -0
- package/dist/cjs/codama/atlasnet/types/triggerContext.js.map +1 -0
- package/dist/cjs/codama/devnet/constants.js +1 -1
- package/dist/cjs/contract/close.js +7 -5
- package/dist/cjs/contract/close.js.map +1 -1
- package/dist/cjs/contract/create.js +7 -5
- package/dist/cjs/contract/create.js.map +1 -1
- package/dist/cjs/package.json +6 -5
- package/dist/cjs/rental/accept.js +7 -5
- package/dist/cjs/rental/accept.js.map +1 -1
- package/dist/cjs/rental/cancel.js +7 -5
- package/dist/cjs/rental/cancel.js.map +1 -1
- package/dist/cjs/rental/close.js +7 -5
- package/dist/cjs/rental/close.js.map +1 -1
- package/dist/cjs/rental/reset.js +7 -5
- package/dist/cjs/rental/reset.js.map +1 -1
- package/dist/cjs/utils/config.js +89 -61
- package/dist/cjs/utils/config.js.map +1 -1
- package/dist/cjs/utils/constants.js +9 -58
- package/dist/cjs/utils/constants.js.map +1 -1
- package/dist/esm/codama/atlasnet/accounts/contractState.js +75 -0
- package/dist/esm/codama/atlasnet/accounts/contractState.js.map +1 -0
- package/dist/esm/codama/atlasnet/accounts/fleet.js +64 -0
- package/dist/esm/codama/atlasnet/accounts/fleet.js.map +1 -0
- package/dist/esm/codama/atlasnet/accounts/index.js +12 -0
- package/dist/esm/codama/atlasnet/accounts/index.js.map +1 -0
- package/dist/esm/codama/atlasnet/accounts/rentalState.js +74 -0
- package/dist/esm/codama/atlasnet/accounts/rentalState.js.map +1 -0
- package/dist/esm/codama/atlasnet/accounts/thread.js +77 -0
- package/dist/esm/codama/atlasnet/accounts/thread.js.map +1 -0
- package/dist/esm/codama/atlasnet/errors/index.js +9 -0
- package/dist/esm/codama/atlasnet/errors/index.js.map +1 -0
- package/dist/esm/codama/atlasnet/errors/srsly.js +69 -0
- package/dist/esm/codama/atlasnet/errors/srsly.js.map +1 -0
- package/dist/esm/codama/atlasnet/index.js +13 -0
- package/dist/esm/codama/atlasnet/index.js.map +1 -0
- package/dist/esm/codama/atlasnet/instructions/acceptRental.js +347 -0
- package/dist/esm/codama/atlasnet/instructions/acceptRental.js.map +1 -0
- package/dist/esm/codama/atlasnet/instructions/cancelRental.js +215 -0
- package/dist/esm/codama/atlasnet/instructions/cancelRental.js.map +1 -0
- package/dist/esm/codama/atlasnet/instructions/closeContract.js +236 -0
- package/dist/esm/codama/atlasnet/instructions/closeContract.js.map +1 -0
- package/dist/esm/codama/atlasnet/instructions/closeRental.js +250 -0
- package/dist/esm/codama/atlasnet/instructions/closeRental.js.map +1 -0
- package/dist/esm/codama/atlasnet/instructions/createContract.js +251 -0
- package/dist/esm/codama/atlasnet/instructions/createContract.js.map +1 -0
- package/dist/esm/codama/atlasnet/instructions/index.js +15 -0
- package/dist/esm/codama/atlasnet/instructions/index.js.map +1 -0
- package/dist/esm/codama/atlasnet/instructions/payRental.js +270 -0
- package/dist/esm/codama/atlasnet/instructions/payRental.js.map +1 -0
- package/dist/esm/codama/atlasnet/instructions/resetRental.js +145 -0
- package/dist/esm/codama/atlasnet/instructions/resetRental.js.map +1 -0
- package/dist/esm/codama/atlasnet/programs/index.js +9 -0
- package/dist/esm/codama/atlasnet/programs/index.js.map +1 -0
- package/dist/esm/codama/atlasnet/programs/srsly.js +68 -0
- package/dist/esm/codama/atlasnet/programs/srsly.js.map +1 -0
- package/dist/esm/codama/atlasnet/shared/index.js +87 -0
- package/dist/esm/codama/atlasnet/shared/index.js.map +1 -0
- package/dist/esm/codama/atlasnet/types/clockData.js +26 -0
- package/dist/esm/codama/atlasnet/types/clockData.js.map +1 -0
- package/dist/esm/codama/atlasnet/types/equality.js +24 -0
- package/dist/esm/codama/atlasnet/types/equality.js.map +1 -0
- package/dist/esm/codama/atlasnet/types/execContext.js +33 -0
- package/dist/esm/codama/atlasnet/types/execContext.js.map +1 -0
- package/dist/esm/codama/atlasnet/types/index.js +16 -0
- package/dist/esm/codama/atlasnet/types/index.js.map +1 -0
- package/dist/esm/codama/atlasnet/types/serializableAccount.js +26 -0
- package/dist/esm/codama/atlasnet/types/serializableAccount.js.map +1 -0
- package/dist/esm/codama/atlasnet/types/serializableInstruction.js +27 -0
- package/dist/esm/codama/atlasnet/types/serializableInstruction.js.map +1 -0
- package/dist/esm/codama/atlasnet/types/threadResponse.js +33 -0
- package/dist/esm/codama/atlasnet/types/threadResponse.js.map +1 -0
- package/dist/esm/codama/atlasnet/types/trigger.js +83 -0
- package/dist/esm/codama/atlasnet/types/trigger.js.map +1 -0
- package/dist/esm/codama/atlasnet/types/triggerContext.js +42 -0
- package/dist/esm/codama/atlasnet/types/triggerContext.js.map +1 -0
- package/dist/esm/codama/devnet/constants.js +1 -1
- package/dist/esm/contract/close.js +8 -6
- package/dist/esm/contract/close.js.map +1 -1
- package/dist/esm/contract/create.js +8 -6
- package/dist/esm/contract/create.js.map +1 -1
- package/dist/esm/package.json +6 -5
- package/dist/esm/rental/accept.js +8 -6
- package/dist/esm/rental/accept.js.map +1 -1
- package/dist/esm/rental/cancel.js +8 -6
- package/dist/esm/rental/cancel.js.map +1 -1
- package/dist/esm/rental/close.js +8 -6
- package/dist/esm/rental/close.js.map +1 -1
- package/dist/esm/rental/reset.js +8 -6
- package/dist/esm/rental/reset.js.map +1 -1
- package/dist/esm/utils/config.js +87 -58
- package/dist/esm/utils/config.js.map +1 -1
- package/dist/esm/utils/constants.js +10 -26
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/types/codama/atlasnet/accounts/contractState.d.ts +51 -0
- package/dist/types/codama/atlasnet/accounts/contractState.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/accounts/fleet.d.ts +38 -0
- package/dist/types/codama/atlasnet/accounts/fleet.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/accounts/index.d.ts +12 -0
- package/dist/types/codama/atlasnet/accounts/index.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/accounts/rentalState.d.ts +48 -0
- package/dist/types/codama/atlasnet/accounts/rentalState.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/accounts/thread.d.ts +74 -0
- package/dist/types/codama/atlasnet/accounts/thread.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/errors/index.d.ts +9 -0
- package/dist/types/codama/atlasnet/errors/index.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/errors/srsly.d.ts +50 -0
- package/dist/types/codama/atlasnet/errors/srsly.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/index.d.ts +13 -0
- package/dist/types/codama/atlasnet/index.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/instructions/acceptRental.d.ts +131 -0
- package/dist/types/codama/atlasnet/instructions/acceptRental.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/instructions/cancelRental.d.ts +71 -0
- package/dist/types/codama/atlasnet/instructions/cancelRental.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/instructions/closeContract.d.ts +100 -0
- package/dist/types/codama/atlasnet/instructions/closeContract.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/instructions/closeRental.d.ts +83 -0
- package/dist/types/codama/atlasnet/instructions/closeRental.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/instructions/createContract.d.ts +108 -0
- package/dist/types/codama/atlasnet/instructions/createContract.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/instructions/index.d.ts +15 -0
- package/dist/types/codama/atlasnet/instructions/index.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/instructions/payRental.d.ts +110 -0
- package/dist/types/codama/atlasnet/instructions/payRental.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/instructions/resetRental.d.ts +71 -0
- package/dist/types/codama/atlasnet/instructions/resetRental.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/programs/index.d.ts +9 -0
- package/dist/types/codama/atlasnet/programs/index.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/programs/srsly.d.ts +47 -0
- package/dist/types/codama/atlasnet/programs/srsly.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/shared/index.d.ts +50 -0
- package/dist/types/codama/atlasnet/shared/index.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/types/clockData.d.ts +29 -0
- package/dist/types/codama/atlasnet/types/clockData.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/types/equality.d.ts +18 -0
- package/dist/types/codama/atlasnet/types/equality.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/types/execContext.d.ts +48 -0
- package/dist/types/codama/atlasnet/types/execContext.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/types/index.d.ts +16 -0
- package/dist/types/codama/atlasnet/types/index.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/types/serializableAccount.d.ts +22 -0
- package/dist/types/codama/atlasnet/types/serializableAccount.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/types/serializableInstruction.d.ts +30 -0
- package/dist/types/codama/atlasnet/types/serializableInstruction.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/types/threadResponse.d.ts +42 -0
- package/dist/types/codama/atlasnet/types/threadResponse.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/types/trigger.d.ts +98 -0
- package/dist/types/codama/atlasnet/types/trigger.d.ts.map +1 -0
- package/dist/types/codama/atlasnet/types/triggerContext.d.ts +75 -0
- package/dist/types/codama/atlasnet/types/triggerContext.d.ts.map +1 -0
- package/dist/types/codama/devnet/constants.d.ts +1 -1
- package/dist/types/contract/close.d.ts.map +1 -1
- package/dist/types/contract/create.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/rental/accept.d.ts.map +1 -1
- package/dist/types/rental/cancel.d.ts.map +1 -1
- package/dist/types/rental/close.d.ts.map +1 -1
- package/dist/types/rental/reset.d.ts.map +1 -1
- package/dist/types/utils/config.d.ts +43 -38
- package/dist/types/utils/config.d.ts.map +1 -1
- package/dist/types/utils/constants.d.ts.map +1 -1
- package/package.json +8 -7
- package/dist/cjs/codama/mainnet/constants.js +0 -32
- package/dist/cjs/codama/mainnet/constants.js.map +0 -1
- package/dist/esm/codama/mainnet/constants.js +0 -29
- package/dist/esm/codama/mainnet/constants.js.map +0 -1
- package/dist/types/codama/mainnet/constants.d.ts +0 -34
- package/dist/types/codama/mainnet/constants.d.ts.map +0 -1
- /package/target/idl/{srsly-devnet.json → srsly-atlasnet.json} +0 -0
- /package/target/types/{srsly-devnet.ts → srsly-atlasnet.ts} +0 -0
package/README.md
CHANGED
|
@@ -4,7 +4,25 @@
|
|
|
4
4
|
[](https://www.typescriptlang.org/)
|
|
5
5
|
[](https://solana.com/)
|
|
6
6
|
|
|
7
|
-
A TypeScript SDK for
|
|
7
|
+
A TypeScript SDK for building Solana instructions to interact with the SRSLY (Space Rental from SLY) program - a decentralized rental system for Star Atlas fleets.
|
|
8
|
+
|
|
9
|
+
## What This SDK Does
|
|
10
|
+
|
|
11
|
+
The SRSLY SDK is an **instruction builder** that helps you create properly formatted Solana instructions for the SRSLY rental program. It handles:
|
|
12
|
+
|
|
13
|
+
- ✅ Network-specific program addresses and configurations
|
|
14
|
+
- ✅ Account derivation and validation
|
|
15
|
+
- ✅ Instruction data encoding
|
|
16
|
+
- ✅ Type-safe parameter handling
|
|
17
|
+
|
|
18
|
+
## What You Need to Provide
|
|
19
|
+
|
|
20
|
+
The SDK **does not** handle transaction creation, signing, or submission. You'll need to:
|
|
21
|
+
|
|
22
|
+
- 🔧 Choose a transaction library (`@solana/web3.js` or `@solana/kit`)
|
|
23
|
+
- 🔧 Connect to a Solana RPC endpoint
|
|
24
|
+
- 🔧 Handle wallet integration (Phantom, Solflare, etc.)
|
|
25
|
+
- 🔧 Build, sign, and send transactions
|
|
8
26
|
|
|
9
27
|
## Installation
|
|
10
28
|
|
|
@@ -31,44 +49,73 @@ yarn add @wuwei-labs/srsly
|
|
|
31
49
|
```typescript
|
|
32
50
|
import {
|
|
33
51
|
createContract,
|
|
34
|
-
|
|
35
|
-
setConfig,
|
|
36
|
-
setNetwork,
|
|
37
|
-
ATLAS_TO_STARDUST
|
|
52
|
+
setConfig
|
|
38
53
|
} from '@wuwei-labs/srsly';
|
|
39
54
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
55
|
+
import {
|
|
56
|
+
createDefaultSolanaRpc,
|
|
57
|
+
createTransaction,
|
|
58
|
+
appendInstructions,
|
|
59
|
+
signAndSendTransaction,
|
|
60
|
+
pipe
|
|
61
|
+
} from '@solana/kit';
|
|
62
|
+
|
|
63
|
+
// Step 1: Set up RPC connection
|
|
64
|
+
const rpc = createDefaultSolanaRpc('https://api.atlasnet.solana.com');
|
|
65
|
+
|
|
66
|
+
// Step 2: Get wallet from browser extension (Phantom, Solflare, etc.)
|
|
67
|
+
// Assumes you've already connected to the user's wallet
|
|
68
|
+
const wallet = window.solana; // or your wallet adapter
|
|
69
|
+
|
|
70
|
+
// Step 3: Configure SDK to use atlasnet program addresses
|
|
71
|
+
setConfig({ network: 'atlasnet' });
|
|
43
72
|
|
|
44
|
-
//
|
|
73
|
+
// Step 4: Build the instruction using SRSLY SDK
|
|
45
74
|
const contractInstruction = await createContract({
|
|
46
|
-
owner: wallet,
|
|
75
|
+
owner: wallet.publicKey, // Wallet's public key
|
|
47
76
|
fleet: fleetAddress,
|
|
48
77
|
ownerProfile: profileAddress,
|
|
49
78
|
rate: 1000000, // Rate in ATLAS tokens
|
|
50
79
|
durationMin: 86400, // 1 day in seconds
|
|
51
80
|
durationMax: 604800, // 1 week in seconds
|
|
52
|
-
paymentsFreq: 'daily'
|
|
53
|
-
|
|
81
|
+
paymentsFreq: 'daily',
|
|
82
|
+
ownerKeyIndex: 0
|
|
83
|
+
});
|
|
54
84
|
|
|
55
|
-
//
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
fleet: fleetAddress,
|
|
61
|
-
contract: contractAddress,
|
|
62
|
-
rate: 100, // ATLAS tokens per duration
|
|
63
|
-
duration: 86400 // 1 day in seconds
|
|
64
|
-
// amount is automatically calculated: rate * duration * ATLAS_TO_STARDUST
|
|
65
|
-
}); // Uses mainnet from global config
|
|
85
|
+
// Step 5: Build transaction and send (using your preferred method)
|
|
86
|
+
const transaction = pipe(
|
|
87
|
+
createTransaction({ version: 0 }),
|
|
88
|
+
tx => appendInstructions([contractInstruction], tx)
|
|
89
|
+
);
|
|
66
90
|
|
|
67
|
-
//
|
|
68
|
-
const
|
|
91
|
+
// Sign and send using wallet extension
|
|
92
|
+
const signature = await signAndSendTransaction(rpc, transaction, wallet);
|
|
93
|
+
console.log('Transaction signature:', signature);
|
|
69
94
|
```
|
|
70
95
|
|
|
71
|
-
|
|
96
|
+
**Alternative with @solana/web3.js:**
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
import { Connection, Transaction } from '@solana/web3.js';
|
|
100
|
+
|
|
101
|
+
const connection = new Connection('https://api.atlasnet.solana.com');
|
|
102
|
+
const transaction = new Transaction().add(contractInstruction);
|
|
103
|
+
|
|
104
|
+
// Sign and send with wallet extension
|
|
105
|
+
const signature = await window.solana.signAndSendTransaction(transaction);
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
> **Note**: The SRSLY SDK only creates instructions. You're responsible for:
|
|
109
|
+
> - Setting up RPC connections
|
|
110
|
+
> - Managing wallet connections (Phantom, Solflare, etc.)
|
|
111
|
+
> - Building, signing, and sending transactions
|
|
112
|
+
> - Handling transaction confirmation and errors
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## SDK Features
|
|
117
|
+
|
|
118
|
+
The following examples show how to use the SRSLY SDK to build instructions. Add these instructions to transactions using your preferred Solana library (`@solana/web3.js` or `@solana/kit`).
|
|
72
119
|
|
|
73
120
|
### Contract Management
|
|
74
121
|
|
|
@@ -89,7 +136,7 @@ const createIx = await createContract({
|
|
|
89
136
|
ownerKeyIndex: 0
|
|
90
137
|
}).set({ network: 'mainnet' }); // Use mainnet configuration
|
|
91
138
|
|
|
92
|
-
// Close an existing contract using
|
|
139
|
+
// Close an existing contract using atlasnet defaults (direct await)
|
|
93
140
|
const closeIx = await closeContract({
|
|
94
141
|
owner: wallet,
|
|
95
142
|
fleet: fleetAddress,
|
|
@@ -111,7 +158,7 @@ import {
|
|
|
111
158
|
ATLAS_TO_STARDUST
|
|
112
159
|
} from '@wuwei-labs/srsly';
|
|
113
160
|
|
|
114
|
-
// Accept a rental offer on
|
|
161
|
+
// Accept a rental offer on atlasnet (rate-based with automatic conversion)
|
|
115
162
|
const acceptIx = await acceptRental({
|
|
116
163
|
borrower: borrowerWallet,
|
|
117
164
|
borrowerProfile: borrowerProfileAddress,
|
|
@@ -121,9 +168,9 @@ const acceptIx = await acceptRental({
|
|
|
121
168
|
rate: 100, // ATLAS tokens (not per second, just ATLAS)
|
|
122
169
|
duration: 86400 // 1 day in seconds
|
|
123
170
|
// amount = rate * duration * ATLAS_TO_STARDUST automatically calculated
|
|
124
|
-
}).set({ network: '
|
|
171
|
+
}).set({ network: 'atlasnet' });
|
|
125
172
|
|
|
126
|
-
// Cancel an active rental using
|
|
173
|
+
// Cancel an active rental using atlasnet defaults (direct await)
|
|
127
174
|
const cancelIx = await cancelRental({
|
|
128
175
|
borrower: borrowerWallet,
|
|
129
176
|
contract: contractAddress,
|
|
@@ -159,7 +206,7 @@ Fetch and decode account states using network-specific functions:
|
|
|
159
206
|
```typescript
|
|
160
207
|
import { getCachedNetworkModule } from '@wuwei-labs/srsly';
|
|
161
208
|
|
|
162
|
-
// Get network-specific account functions (defaults to
|
|
209
|
+
// Get network-specific account functions (defaults to atlasnet)
|
|
163
210
|
const accountsModule = await getCachedNetworkModule('accounts');
|
|
164
211
|
const { fetchContractState, fetchRentalState } = accountsModule;
|
|
165
212
|
|
|
@@ -177,6 +224,25 @@ console.log('Rental status:', rentalState.status);
|
|
|
177
224
|
console.log('Start time:', new Date(rentalState.startTime.toNumber() * 1000));
|
|
178
225
|
```
|
|
179
226
|
|
|
227
|
+
### Error Handling
|
|
228
|
+
|
|
229
|
+
The SDK provides custom error types for better debugging:
|
|
230
|
+
|
|
231
|
+
```typescript
|
|
232
|
+
import { SrslyError } from '@wuwei-labs/srsly';
|
|
233
|
+
|
|
234
|
+
try {
|
|
235
|
+
const instruction = await createContract(params);
|
|
236
|
+
// Add to transaction and send...
|
|
237
|
+
} catch (error) {
|
|
238
|
+
if (error instanceof SrslyError) {
|
|
239
|
+
console.error('SRSLY SDK Error:', error.message, error.code);
|
|
240
|
+
} else {
|
|
241
|
+
console.error('Other Error:', error);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
180
246
|
### Token Conversion
|
|
181
247
|
|
|
182
248
|
The SDK includes automatic ATLAS to stardust conversion for rental operations:
|
|
@@ -431,71 +497,101 @@ The SDK supports multiple payment frequencies:
|
|
|
431
497
|
- `weekly` - Weekly payments at specific day/time
|
|
432
498
|
- `monthly` - Monthly payments at specific day/time
|
|
433
499
|
|
|
434
|
-
## Error Handling
|
|
435
500
|
|
|
436
|
-
|
|
501
|
+
## Network Configuration
|
|
437
502
|
|
|
438
|
-
|
|
439
|
-
import { SrslyError } from '@wuwei-labs/srsly';
|
|
503
|
+
The SDK supports both Solana mainnet and atlasnet with different IDL artifacts and default program addresses for each network. The configuration system has two main purposes:
|
|
440
504
|
|
|
441
|
-
|
|
442
|
-
const instruction = await createContract({...});
|
|
443
|
-
} catch (error) {
|
|
444
|
-
if (error instanceof SrslyError) {
|
|
445
|
-
console.error('SRSLY Error:', error.message);
|
|
446
|
-
console.error('Error code:', error.code);
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
```
|
|
505
|
+
### What `setConfig` Does:
|
|
450
506
|
|
|
451
|
-
|
|
507
|
+
**1. Network Selection (IDL/Module Loading):**
|
|
508
|
+
- ✅ Selects which IDL artifacts to use (`mainnet` vs `atlasnet`)
|
|
509
|
+
- ✅ Loads appropriate codama-generated instruction builders
|
|
510
|
+
- ✅ Determines default program addresses for the network
|
|
511
|
+
|
|
512
|
+
**2. Program Address Selection:**
|
|
513
|
+
- ✅ Select predefined program address sets (mainnet, atlasnet, holosim)
|
|
514
|
+
- ✅ Override specific program addresses (SRSLY, SAGE, Profile Faction)
|
|
515
|
+
- ✅ Override game IDs and other network constants
|
|
516
|
+
- ✅ Mix and match programs across networks if needed
|
|
452
517
|
|
|
453
|
-
|
|
518
|
+
**What it does NOT do:**
|
|
519
|
+
- ❌ Configure RPC endpoints
|
|
520
|
+
- ❌ Handle wallet connections
|
|
521
|
+
- ❌ Manage transactions
|
|
454
522
|
|
|
455
523
|
### Global Configuration (Recommended)
|
|
456
524
|
|
|
457
525
|
Set default configuration once for all SDK operations:
|
|
458
526
|
|
|
459
527
|
```typescript
|
|
460
|
-
import { setConfig,
|
|
528
|
+
import { setConfig, getConfig, createContract } from '@wuwei-labs/srsly';
|
|
529
|
+
|
|
530
|
+
// Example 1: Use mainnet IDL with default mainnet program addresses
|
|
531
|
+
setConfig({
|
|
532
|
+
network: 'mainnet'
|
|
533
|
+
});
|
|
534
|
+
|
|
535
|
+
// Example 2: Use atlasnet IDL with default atlasnet program addresses
|
|
536
|
+
setConfig({
|
|
537
|
+
network: 'atlasnet'
|
|
538
|
+
});
|
|
539
|
+
|
|
540
|
+
// Example 3: Use atlasnet IDL with holosim program addresses
|
|
541
|
+
setConfig({
|
|
542
|
+
network: 'atlasnet',
|
|
543
|
+
setPrograms: 'holosim'
|
|
544
|
+
});
|
|
461
545
|
|
|
462
|
-
//
|
|
546
|
+
// Example 4: Use atlasnet IDL with holosim programs but custom SAGE
|
|
547
|
+
setConfig({
|
|
548
|
+
network: 'atlasnet',
|
|
549
|
+
setPrograms: 'holosim',
|
|
550
|
+
sageProgramAddress: 'custom-sage-program-id...'
|
|
551
|
+
});
|
|
552
|
+
|
|
553
|
+
// Example 5: Use mainnet IDL with atlasnet program addresses
|
|
463
554
|
setConfig({
|
|
464
555
|
network: 'mainnet',
|
|
465
|
-
|
|
556
|
+
setPrograms: 'atlasnet'
|
|
466
557
|
});
|
|
467
558
|
|
|
468
|
-
//
|
|
469
|
-
|
|
559
|
+
// Example 6: Custom overrides only
|
|
560
|
+
setConfig({
|
|
561
|
+
network: 'atlasnet',
|
|
562
|
+
srslyProgramAddress: 'custom-srsly-program-id...',
|
|
563
|
+
sageProgramAddress: 'custom-sage-program-id...',
|
|
564
|
+
gameId: 'custom-game-id...'
|
|
565
|
+
});
|
|
470
566
|
|
|
471
567
|
// Check current configuration
|
|
472
|
-
console.log(getConfig());
|
|
568
|
+
console.log(getConfig());
|
|
473
569
|
|
|
474
|
-
// All operations now use
|
|
475
|
-
const ix1 = await createContract(params);
|
|
476
|
-
const ix2 = await acceptRental(params);
|
|
570
|
+
// All operations now use configured settings
|
|
571
|
+
const ix1 = await createContract(params); // Uses configured SRSLY program
|
|
572
|
+
const ix2 = await acceptRental(params); // Uses configured SAGE program
|
|
477
573
|
```
|
|
478
574
|
|
|
479
575
|
### Per-Instruction Configuration
|
|
480
576
|
|
|
481
|
-
Override global configuration for specific instructions using the fluent `.set()` interface:
|
|
577
|
+
Override global program address configuration for specific instructions using the fluent `.set()` interface:
|
|
482
578
|
|
|
483
579
|
```typescript
|
|
484
580
|
import { createContract, acceptRental } from '@wuwei-labs/srsly';
|
|
485
581
|
|
|
486
|
-
// Assume global config is set to mainnet
|
|
582
|
+
// Assume global config is set to mainnet program addresses
|
|
487
583
|
setConfig({ network: 'mainnet' });
|
|
488
584
|
|
|
489
|
-
// Use global mainnet
|
|
585
|
+
// Use global mainnet program addresses
|
|
490
586
|
const mainnetIx = await createContract(params);
|
|
491
587
|
|
|
492
|
-
// Override to use
|
|
493
|
-
const
|
|
588
|
+
// Override to use atlasnet program addresses for this specific instruction
|
|
589
|
+
const atlasnetIx = await createContract(params).set({ network: 'atlasnet' });
|
|
494
590
|
|
|
495
|
-
// Override specific
|
|
591
|
+
// Override specific program addresses while keeping global network
|
|
496
592
|
const customIx = await createContract(params).set({
|
|
497
|
-
sageProgramAddress: 'custom...',
|
|
498
|
-
gameId: 'custom...'
|
|
593
|
+
sageProgramAddress: 'custom-sage-program-id...',
|
|
594
|
+
gameId: 'custom-game-id...'
|
|
499
595
|
// network: 'mainnet' inherited from global config
|
|
500
596
|
});
|
|
501
597
|
```
|
|
@@ -504,25 +600,24 @@ const customIx = await createContract(params).set({
|
|
|
504
600
|
|
|
505
601
|
All SDK functions support these usage patterns:
|
|
506
602
|
|
|
507
|
-
**Direct await (uses global config or
|
|
603
|
+
**Direct await (uses global config or atlasnet fallback):**
|
|
508
604
|
|
|
509
605
|
```typescript
|
|
510
|
-
// Uses global
|
|
606
|
+
// Uses global program addresses if set, otherwise atlasnet defaults
|
|
511
607
|
await createContract(params);
|
|
512
608
|
await acceptRental(params);
|
|
513
609
|
```
|
|
514
610
|
|
|
515
611
|
**Global configuration functions:**
|
|
516
612
|
|
|
517
|
-
- `setConfig({ network: 'mainnet', gameId: '...' })` - Set
|
|
518
|
-
- `setNetwork('mainnet')` - Set global network only (convenience)
|
|
613
|
+
- `setConfig({ network: 'mainnet', gameId: '...' })` - Set global program addresses
|
|
519
614
|
- `getConfig()` - Get current global configuration
|
|
520
|
-
- `clearConfig()` - Reset to
|
|
615
|
+
- `clearConfig()` - Reset to atlasnet defaults
|
|
521
616
|
|
|
522
617
|
**Per-instruction overrides with `.set()` method:**
|
|
523
618
|
|
|
524
|
-
- `.set({ network: 'mainnet' })` - Override
|
|
525
|
-
- `.set({ sageProgramAddress: '...' })` - Override specific
|
|
619
|
+
- `.set({ network: 'mainnet' })` - Override to mainnet program addresses
|
|
620
|
+
- `.set({ sageProgramAddress: '...' })` - Override specific program address only
|
|
526
621
|
- `.set({ network: 'mainnet', sageProgramAddress: '...' })` - Multiple overrides
|
|
527
622
|
|
|
528
623
|
**Chainable configurations:**
|
|
@@ -530,27 +625,70 @@ await acceptRental(params);
|
|
|
530
625
|
```typescript
|
|
531
626
|
// Chain multiple configurations (later ones override earlier ones)
|
|
532
627
|
await createContract(params)
|
|
533
|
-
.set({ network: '
|
|
628
|
+
.set({ network: 'atlasnet' })
|
|
534
629
|
.set({ sageProgramAddress: 'override...' });
|
|
535
630
|
|
|
536
631
|
// Examples with global config
|
|
537
632
|
setConfig({ network: 'mainnet' });
|
|
538
|
-
await createContract(params); // Uses mainnet
|
|
539
|
-
await acceptRental(params).set({ network: '
|
|
540
|
-
await closeContract(params).set({ gameId: 'custom...' }); // Custom gameId, mainnet
|
|
633
|
+
await createContract(params); // Uses mainnet program addresses
|
|
634
|
+
await acceptRental(params).set({ network: 'atlasnet' }); // Override to atlasnet programs
|
|
635
|
+
await closeContract(params).set({ gameId: 'custom...' }); // Custom gameId, mainnet programs
|
|
541
636
|
```
|
|
542
637
|
|
|
543
638
|
### Available Configuration Options
|
|
544
639
|
|
|
545
640
|
```typescript
|
|
546
641
|
interface ConfigOptions {
|
|
547
|
-
network?: 'mainnet' | '
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
642
|
+
network?: 'mainnet' | 'atlasnet'; // Which IDL artifacts to use
|
|
643
|
+
setPrograms?: 'mainnet' | 'atlasnet' | 'holosim'; // Which program address set to use
|
|
644
|
+
srslyProgramAddress?: string; // Override SRSLY program address
|
|
645
|
+
sageProgramAddress?: string; // Override SAGE program address
|
|
646
|
+
profileFactionProgramAddress?: string; // Override Profile Faction program address
|
|
647
|
+
gameId?: string; // Override SAGE game ID
|
|
648
|
+
}
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
**Available Program Address Sets:**
|
|
652
|
+
|
|
653
|
+
```typescript
|
|
654
|
+
// mainnet
|
|
655
|
+
{
|
|
656
|
+
srslyProgram: 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
|
|
657
|
+
sageProgram: 'SAGE2HAwep459SNq61LHvjxPk4pLPEJLoMETef7f7EE',
|
|
658
|
+
profileFactionProgram: 'pFACSRuobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq',
|
|
659
|
+
gameId: 'GAMEzqJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr'
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
// atlasnet (default) - values currently empty, to be filled
|
|
663
|
+
{
|
|
664
|
+
srslyProgram: 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
|
|
665
|
+
sageProgram: '',
|
|
666
|
+
profileFactionProgram: '',
|
|
667
|
+
gameId: ''
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
// holosim
|
|
671
|
+
{
|
|
672
|
+
srslyProgram: 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
|
|
673
|
+
sageProgram: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
|
|
674
|
+
profileFactionProgram: 'PprofUW1pURCnMW2si88GWPXEEK3Bvh9Tksy8WtnoYJ',
|
|
675
|
+
gameId: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k'
|
|
551
676
|
}
|
|
552
677
|
```
|
|
553
678
|
|
|
679
|
+
**Priority Order:**
|
|
680
|
+
1. Individual overrides (highest priority)
|
|
681
|
+
2. setPrograms configuration
|
|
682
|
+
3. Network default (if setPrograms not specified)
|
|
683
|
+
|
|
684
|
+
**Key Concepts:**
|
|
685
|
+
|
|
686
|
+
- **Network** = Which IDL/codama artifacts to load (affects instruction structure)
|
|
687
|
+
- **setPrograms** = Which predefined program address set to use (mainnet, atlasnet, holosim)
|
|
688
|
+
- **Program Overrides** = Override individual program addresses (highest priority)
|
|
689
|
+
- **Default Behavior** = If setPrograms not specified, uses network's program addresses
|
|
690
|
+
- **Flexibility** = Mix any IDL with any program set, plus individual overrides
|
|
691
|
+
|
|
554
692
|
### Network-Specific Constants
|
|
555
693
|
|
|
556
694
|
The SDK automatically resolves network-specific constants:
|
|
@@ -562,7 +700,7 @@ import {
|
|
|
562
700
|
getSageGameId
|
|
563
701
|
} from '@wuwei-labs/srsly';
|
|
564
702
|
|
|
565
|
-
// Get constants for
|
|
703
|
+
// Get constants for atlasnet (default)
|
|
566
704
|
const sageProgram = await getSageProgramAddress();
|
|
567
705
|
const gameId = await getSageGameId();
|
|
568
706
|
|
|
@@ -582,7 +720,7 @@ The SDK provides network-specific IDLs since program configurations differ betwe
|
|
|
582
720
|
import mainnetIdl from '@wuwei-labs/srsly/idl/mainnet';
|
|
583
721
|
|
|
584
722
|
// Devnet IDL
|
|
585
|
-
import
|
|
723
|
+
import atlasnetIdl from '@wuwei-labs/srsly/idl/atlasnet';
|
|
586
724
|
|
|
587
725
|
// Use with Anchor
|
|
588
726
|
import { Program } from '@coral-xyz/anchor';
|
|
@@ -605,7 +743,7 @@ import type {
|
|
|
605
743
|
|
|
606
744
|
// Import network-specific Anchor types
|
|
607
745
|
import type { Srsly as SrslyMainnet } from '@wuwei-labs/srsly/types/mainnet';
|
|
608
|
-
import type { Srsly as SrslyDevnet } from '@wuwei-labs/srsly/types/
|
|
746
|
+
import type { Srsly as SrslyDevnet } from '@wuwei-labs/srsly/types/atlasnet';
|
|
609
747
|
```
|
|
610
748
|
|
|
611
749
|
## Constants and Utilities
|
|
@@ -0,0 +1,87 @@
|
|
|
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
|
+
const kit_1 = require("@solana/kit");
|
|
21
|
+
exports.CONTRACT_STATE_DISCRIMINATOR = new Uint8Array([
|
|
22
|
+
190, 138, 10, 223, 189, 116, 222, 115,
|
|
23
|
+
]);
|
|
24
|
+
function getContractStateDiscriminatorBytes() {
|
|
25
|
+
return (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8).encode(exports.CONTRACT_STATE_DISCRIMINATOR);
|
|
26
|
+
}
|
|
27
|
+
function getContractStateEncoder() {
|
|
28
|
+
return (0, kit_1.transformEncoder)((0, kit_1.getStructEncoder)([
|
|
29
|
+
['discriminator', (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8)],
|
|
30
|
+
['version', (0, kit_1.getU8Encoder)()],
|
|
31
|
+
['toClose', (0, kit_1.getBooleanEncoder)()],
|
|
32
|
+
['rate', (0, kit_1.getU64Encoder)()],
|
|
33
|
+
['durationMin', (0, kit_1.getU64Encoder)()],
|
|
34
|
+
['durationMax', (0, kit_1.getU64Encoder)()],
|
|
35
|
+
['paymentsFeq', (0, kit_1.addEncoderSizePrefix)((0, kit_1.getUtf8Encoder)(), (0, kit_1.getU32Encoder)())],
|
|
36
|
+
['fleet', (0, kit_1.getAddressEncoder)()],
|
|
37
|
+
['gameId', (0, kit_1.getAddressEncoder)()],
|
|
38
|
+
['currentRentalState', (0, kit_1.getAddressEncoder)()],
|
|
39
|
+
['owner', (0, kit_1.getAddressEncoder)()],
|
|
40
|
+
['ownerTokenAccount', (0, kit_1.getAddressEncoder)()],
|
|
41
|
+
['ownerProfile', (0, kit_1.getAddressEncoder)()],
|
|
42
|
+
['bump', (0, kit_1.getU8Encoder)()],
|
|
43
|
+
]), (value) => ({ ...value, discriminator: exports.CONTRACT_STATE_DISCRIMINATOR }));
|
|
44
|
+
}
|
|
45
|
+
function getContractStateDecoder() {
|
|
46
|
+
return (0, kit_1.getStructDecoder)([
|
|
47
|
+
['discriminator', (0, kit_1.fixDecoderSize)((0, kit_1.getBytesDecoder)(), 8)],
|
|
48
|
+
['version', (0, kit_1.getU8Decoder)()],
|
|
49
|
+
['toClose', (0, kit_1.getBooleanDecoder)()],
|
|
50
|
+
['rate', (0, kit_1.getU64Decoder)()],
|
|
51
|
+
['durationMin', (0, kit_1.getU64Decoder)()],
|
|
52
|
+
['durationMax', (0, kit_1.getU64Decoder)()],
|
|
53
|
+
['paymentsFeq', (0, kit_1.addDecoderSizePrefix)((0, kit_1.getUtf8Decoder)(), (0, kit_1.getU32Decoder)())],
|
|
54
|
+
['fleet', (0, kit_1.getAddressDecoder)()],
|
|
55
|
+
['gameId', (0, kit_1.getAddressDecoder)()],
|
|
56
|
+
['currentRentalState', (0, kit_1.getAddressDecoder)()],
|
|
57
|
+
['owner', (0, kit_1.getAddressDecoder)()],
|
|
58
|
+
['ownerTokenAccount', (0, kit_1.getAddressDecoder)()],
|
|
59
|
+
['ownerProfile', (0, kit_1.getAddressDecoder)()],
|
|
60
|
+
['bump', (0, kit_1.getU8Decoder)()],
|
|
61
|
+
]);
|
|
62
|
+
}
|
|
63
|
+
function getContractStateCodec() {
|
|
64
|
+
return (0, kit_1.combineCodec)(getContractStateEncoder(), getContractStateDecoder());
|
|
65
|
+
}
|
|
66
|
+
function decodeContractState(encodedAccount) {
|
|
67
|
+
return (0, kit_1.decodeAccount)(encodedAccount, getContractStateDecoder());
|
|
68
|
+
}
|
|
69
|
+
async function fetchContractState(rpc, address, config) {
|
|
70
|
+
const maybeAccount = await fetchMaybeContractState(rpc, address, config);
|
|
71
|
+
(0, kit_1.assertAccountExists)(maybeAccount);
|
|
72
|
+
return maybeAccount;
|
|
73
|
+
}
|
|
74
|
+
async function fetchMaybeContractState(rpc, address, config) {
|
|
75
|
+
const maybeAccount = await (0, kit_1.fetchEncodedAccount)(rpc, address, config);
|
|
76
|
+
return decodeContractState(maybeAccount);
|
|
77
|
+
}
|
|
78
|
+
async function fetchAllContractState(rpc, addresses, config) {
|
|
79
|
+
const maybeAccounts = await fetchAllMaybeContractState(rpc, addresses, config);
|
|
80
|
+
(0, kit_1.assertAccountsExist)(maybeAccounts);
|
|
81
|
+
return maybeAccounts;
|
|
82
|
+
}
|
|
83
|
+
async function fetchAllMaybeContractState(rpc, addresses, config) {
|
|
84
|
+
const maybeAccounts = await (0, kit_1.fetchEncodedAccounts)(rpc, addresses, config);
|
|
85
|
+
return maybeAccounts.map((maybeAccount) => decodeContractState(maybeAccount));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=contractState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contractState.js","sourceRoot":"","sources":["../../../../../src/codama/atlasnet/accounts/contractState.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../../../../src/codama/atlasnet/accounts/fleet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
21
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
__exportStar(require("./contractState"), exports);
|
|
25
|
+
__exportStar(require("./fleet"), exports);
|
|
26
|
+
__exportStar(require("./rentalState"), exports);
|
|
27
|
+
__exportStar(require("./thread"), exports);
|
|
28
|
+
//# sourceMappingURL=index.js.map
|