@send-fun/sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +32 -0
- package/dist/index.cjs +12808 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +4406 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +4405 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +12749 -0
- package/dist/index.mjs.map +1 -0
- package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
- package/package.json +72 -0
- package/src/constants.ts +38 -0
- package/src/dex/generated/accounts/globalConfig.ts +189 -0
- package/src/dex/generated/accounts/index.ts +12 -0
- package/src/dex/generated/accounts/pool.ts +244 -0
- package/src/dex/generated/accounts/rewardAccrual.ts +191 -0
- package/src/dex/generated/accounts/sendDex.accounts.ts +47 -0
- package/src/dex/generated/errors/index.ts +9 -0
- package/src/dex/generated/errors/sendDex.ts +161 -0
- package/src/dex/generated/events/anchorEventCpiDiscriminator.framing.ts +28 -0
- package/src/dex/generated/events/creatorClaimEvent.ts +119 -0
- package/src/dex/generated/events/depositQuoteEvent.ts +115 -0
- package/src/dex/generated/events/index.ts +16 -0
- package/src/dex/generated/events/poolCreateEvent.ts +128 -0
- package/src/dex/generated/events/protocolClaimEvent.ts +111 -0
- package/src/dex/generated/events/sendDex.events.ts +184 -0
- package/src/dex/generated/events/tokenCreateEvent.ts +143 -0
- package/src/dex/generated/events/tradeEvent.ts +143 -0
- package/src/dex/generated/index.ts +16 -0
- package/src/dex/generated/instructions/buyExactIn.ts +815 -0
- package/src/dex/generated/instructions/buyExactOut.ts +815 -0
- package/src/dex/generated/instructions/claimCreatorFees.ts +648 -0
- package/src/dex/generated/instructions/claimProtocolFees.ts +640 -0
- package/src/dex/generated/instructions/index.ts +15 -0
- package/src/dex/generated/instructions/sellExactIn.ts +815 -0
- package/src/dex/generated/instructions/sellExactOut.ts +815 -0
- package/src/dex/generated/instructions/sendDex.instructions.ts +173 -0
- package/src/dex/generated/pdas/eventAuthority.ts +20 -0
- package/src/dex/generated/pdas/globalConfig.ts +20 -0
- package/src/dex/generated/pdas/index.ts +14 -0
- package/src/dex/generated/pdas/lpMint.ts +36 -0
- package/src/dex/generated/pdas/pool.ts +34 -0
- package/src/dex/generated/pdas/rewardAccrual.ts +37 -0
- package/src/dex/generated/pdas/wsolRewardAccrual.ts +20 -0
- package/src/dex/generated/plugins/index.ts +9 -0
- package/src/dex/generated/plugins/sendDex.ts +282 -0
- package/src/dex/generated/programs/index.ts +9 -0
- package/src/dex/generated/programs/sendDex.ts +12 -0
- package/src/dex/generated/types/index.ts +10 -0
- package/src/dex/generated/types/poolStatus.ts +38 -0
- package/src/dex/generated/types/tradeDirection.ts +38 -0
- package/src/dex/index.ts +8 -0
- package/src/dex/trade.ts +215 -0
- package/src/index.ts +8 -0
- package/src/launchpad/create.ts +116 -0
- package/src/launchpad/generated/accounts/bondingCurve.ts +273 -0
- package/src/launchpad/generated/accounts/globalConfig.ts +211 -0
- package/src/launchpad/generated/accounts/index.ts +12 -0
- package/src/launchpad/generated/accounts/rewardAccrual.ts +191 -0
- package/src/launchpad/generated/accounts/sendLaunchpad.accounts.ts +50 -0
- package/src/launchpad/generated/errors/index.ts +9 -0
- package/src/launchpad/generated/errors/sendLaunchpad.ts +175 -0
- package/src/launchpad/generated/events/anchorEventCpiDiscriminator.framing.ts +28 -0
- package/src/launchpad/generated/events/completeEvent.ts +120 -0
- package/src/launchpad/generated/events/creatorClaimEvent.ts +122 -0
- package/src/launchpad/generated/events/index.ts +17 -0
- package/src/launchpad/generated/events/migrateEvent.ts +121 -0
- package/src/launchpad/generated/events/protocolClaimEvent.ts +114 -0
- package/src/launchpad/generated/events/recycleEvent.ts +113 -0
- package/src/launchpad/generated/events/sendLaunchpad.events.ts +207 -0
- package/src/launchpad/generated/events/tokenCreateEvent.ts +156 -0
- package/src/launchpad/generated/events/tradeEvent.ts +148 -0
- package/src/launchpad/generated/index.ts +16 -0
- package/src/launchpad/generated/instructions/buyExactIn.ts +818 -0
- package/src/launchpad/generated/instructions/buyExactOut.ts +818 -0
- package/src/launchpad/generated/instructions/claimCreatorFees.ts +651 -0
- package/src/launchpad/generated/instructions/claimProtocolFees.ts +640 -0
- package/src/launchpad/generated/instructions/createToken.ts +1150 -0
- package/src/launchpad/generated/instructions/index.ts +17 -0
- package/src/launchpad/generated/instructions/migrate.ts +840 -0
- package/src/launchpad/generated/instructions/sellExactIn.ts +818 -0
- package/src/launchpad/generated/instructions/sellExactOut.ts +818 -0
- package/src/launchpad/generated/instructions/sendLaunchpad.instructions.ts +210 -0
- package/src/launchpad/generated/pdas/bondingCurve.ts +39 -0
- package/src/launchpad/generated/pdas/eventAuthority.ts +20 -0
- package/src/launchpad/generated/pdas/globalConfig.ts +20 -0
- package/src/launchpad/generated/pdas/index.ts +14 -0
- package/src/launchpad/generated/pdas/migrationAuthority.ts +20 -0
- package/src/launchpad/generated/pdas/rewardAccrual.ts +37 -0
- package/src/launchpad/generated/pdas/wsolRewardAccrual.ts +20 -0
- package/src/launchpad/generated/plugins/index.ts +9 -0
- package/src/launchpad/generated/plugins/sendLaunchpad.ts +315 -0
- package/src/launchpad/generated/programs/index.ts +9 -0
- package/src/launchpad/generated/programs/sendLaunchpad.ts +12 -0
- package/src/launchpad/generated/types/bondingCurveStatus.ts +43 -0
- package/src/launchpad/generated/types/index.ts +10 -0
- package/src/launchpad/generated/types/tradeDirection.ts +38 -0
- package/src/launchpad/index.ts +10 -0
- package/src/launchpad/migrate.ts +54 -0
- package/src/launchpad/trade.ts +247 -0
- package/src/math/amm.ts +511 -0
- package/src/math/fee-decay.ts +49 -0
- package/src/math/fees.ts +75 -0
- package/src/math/index.ts +3 -0
- package/src/math/internal.ts +16 -0
- package/src/nexus/fee-helpers.ts +49 -0
- package/src/nexus/generated/accounts/altRegistry.ts +177 -0
- package/src/nexus/generated/accounts/creatorFeeConfig.ts +200 -0
- package/src/nexus/generated/accounts/feePreset.ts +196 -0
- package/src/nexus/generated/accounts/globalConfig.ts +188 -0
- package/src/nexus/generated/accounts/index.ts +19 -0
- package/src/nexus/generated/accounts/partnerConfig.ts +209 -0
- package/src/nexus/generated/accounts/partnerMetadata.ts +216 -0
- package/src/nexus/generated/accounts/rewardState.ts +209 -0
- package/src/nexus/generated/accounts/sendNexus.accounts.ts +85 -0
- package/src/nexus/generated/accounts/stakingConfig.ts +197 -0
- package/src/nexus/generated/accounts/userRewardDebt.ts +221 -0
- package/src/nexus/generated/accounts/userStakePosition.ts +218 -0
- package/src/nexus/generated/constants/index.ts +9 -0
- package/src/nexus/generated/constants/sendNexus.ts +13 -0
- package/src/nexus/generated/errors/index.ts +9 -0
- package/src/nexus/generated/errors/sendNexus.ts +229 -0
- package/src/nexus/generated/events/anchorEventCpiDiscriminator.framing.ts +28 -0
- package/src/nexus/generated/events/claimEvent.ts +106 -0
- package/src/nexus/generated/events/index.ts +13 -0
- package/src/nexus/generated/events/sendNexus.events.ts +121 -0
- package/src/nexus/generated/events/stakeEvent.ts +106 -0
- package/src/nexus/generated/events/unstakeEvent.ts +106 -0
- package/src/nexus/generated/index.ts +17 -0
- package/src/nexus/generated/instructions/claim.ts +740 -0
- package/src/nexus/generated/instructions/createUserRewardDebt.ts +498 -0
- package/src/nexus/generated/instructions/index.ts +14 -0
- package/src/nexus/generated/instructions/sendNexus.instructions.ts +146 -0
- package/src/nexus/generated/instructions/settle.ts +517 -0
- package/src/nexus/generated/instructions/stake.ts +615 -0
- package/src/nexus/generated/instructions/unstake.ts +593 -0
- package/src/nexus/generated/pdas/altRegistry.ts +20 -0
- package/src/nexus/generated/pdas/creatorFeeConfig.ts +39 -0
- package/src/nexus/generated/pdas/defaultFeePreset.ts +37 -0
- package/src/nexus/generated/pdas/defaultPartner.ts +40 -0
- package/src/nexus/generated/pdas/defaultPartnerMetadata.ts +42 -0
- package/src/nexus/generated/pdas/eventAuthority.ts +20 -0
- package/src/nexus/generated/pdas/feePreset.ts +39 -0
- package/src/nexus/generated/pdas/globalConfig.ts +20 -0
- package/src/nexus/generated/pdas/index.ts +22 -0
- package/src/nexus/generated/pdas/partnerConfig.ts +36 -0
- package/src/nexus/generated/pdas/partnerMetadata.ts +38 -0
- package/src/nexus/generated/pdas/rewardState.ts +36 -0
- package/src/nexus/generated/pdas/stakingConfig.ts +20 -0
- package/src/nexus/generated/pdas/userRewardDebt.ts +41 -0
- package/src/nexus/generated/pdas/userStakePosition.ts +39 -0
- package/src/nexus/generated/plugins/index.ts +9 -0
- package/src/nexus/generated/plugins/sendNexus.ts +494 -0
- package/src/nexus/generated/programs/index.ts +9 -0
- package/src/nexus/generated/programs/sendNexus.ts +12 -0
- package/src/nexus/generated/types/authPlatformEntry.ts +52 -0
- package/src/nexus/generated/types/callerType.ts +38 -0
- package/src/nexus/generated/types/dexFees.ts +64 -0
- package/src/nexus/generated/types/feeConfig.ts +73 -0
- package/src/nexus/generated/types/index.ts +13 -0
- package/src/nexus/generated/types/launchpadFees.ts +63 -0
- package/src/nexus/index.ts +9 -0
- package/src/nexus/staking.ts +581 -0
- package/src/platform.ts +19 -0
- package/src/transfer-fee.ts +216 -0
- package/src/utils/chunk.ts +21 -0
- package/src/utils/creator-hash.ts +57 -0
- package/src/utils/index.ts +9 -0
- package/src/utils/mint-info.ts +102 -0
- package/src/utils/partner.ts +5 -0
- package/src/utils/pda.ts +24 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
assertAccountExists,
|
|
11
|
+
assertAccountsExist,
|
|
12
|
+
combineCodec,
|
|
13
|
+
containsBytes,
|
|
14
|
+
decodeAccount,
|
|
15
|
+
fetchEncodedAccount,
|
|
16
|
+
fetchEncodedAccounts,
|
|
17
|
+
fixDecoderSize,
|
|
18
|
+
fixEncoderSize,
|
|
19
|
+
getAddressDecoder,
|
|
20
|
+
getAddressEncoder,
|
|
21
|
+
getBytesDecoder,
|
|
22
|
+
getBytesEncoder,
|
|
23
|
+
getStructDecoder,
|
|
24
|
+
getStructEncoder,
|
|
25
|
+
getU8Decoder,
|
|
26
|
+
getU8Encoder,
|
|
27
|
+
transformEncoder,
|
|
28
|
+
type Account,
|
|
29
|
+
type Address,
|
|
30
|
+
type EncodedAccount,
|
|
31
|
+
type FetchAccountConfig,
|
|
32
|
+
type FetchAccountsConfig,
|
|
33
|
+
type FixedSizeCodec,
|
|
34
|
+
type FixedSizeDecoder,
|
|
35
|
+
type FixedSizeEncoder,
|
|
36
|
+
type MaybeAccount,
|
|
37
|
+
type MaybeEncodedAccount,
|
|
38
|
+
type ReadonlyUint8Array,
|
|
39
|
+
} from '@solana/kit';
|
|
40
|
+
import { SEND_NEXUS_PROGRAM_ADDRESS } from '../programs/index.js';
|
|
41
|
+
|
|
42
|
+
export const ALT_REGISTRY_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([
|
|
43
|
+
184, 237, 52, 250, 77, 8, 59, 74,
|
|
44
|
+
]);
|
|
45
|
+
|
|
46
|
+
export function getAltRegistryDiscriminatorBytes(): ReadonlyUint8Array {
|
|
47
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(
|
|
48
|
+
ALT_REGISTRY_DISCRIMINATOR,
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export type AltRegistry = {
|
|
53
|
+
discriminator: ReadonlyUint8Array;
|
|
54
|
+
version: number;
|
|
55
|
+
bump: number;
|
|
56
|
+
altAddress: Address;
|
|
57
|
+
reserved: ReadonlyUint8Array;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export type AltRegistryArgs = {
|
|
61
|
+
version: number;
|
|
62
|
+
bump: number;
|
|
63
|
+
altAddress: Address;
|
|
64
|
+
reserved: ReadonlyUint8Array;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/** Gets the encoder for {@link AltRegistryArgs} account data. */
|
|
68
|
+
export function getAltRegistryEncoder(): FixedSizeEncoder<AltRegistryArgs> {
|
|
69
|
+
return transformEncoder(
|
|
70
|
+
getStructEncoder([
|
|
71
|
+
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
|
|
72
|
+
['version', getU8Encoder()],
|
|
73
|
+
['bump', getU8Encoder()],
|
|
74
|
+
['altAddress', getAddressEncoder()],
|
|
75
|
+
['reserved', fixEncoderSize(getBytesEncoder(), 32)],
|
|
76
|
+
]),
|
|
77
|
+
(value) => ({ ...value, discriminator: ALT_REGISTRY_DISCRIMINATOR }),
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** Gets the decoder for {@link AltRegistry} account data. */
|
|
82
|
+
export function getAltRegistryDecoder(): FixedSizeDecoder<AltRegistry> {
|
|
83
|
+
return getStructDecoder([
|
|
84
|
+
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
|
|
85
|
+
['version', getU8Decoder()],
|
|
86
|
+
['bump', getU8Decoder()],
|
|
87
|
+
['altAddress', getAddressDecoder()],
|
|
88
|
+
['reserved', fixDecoderSize(getBytesDecoder(), 32)],
|
|
89
|
+
]);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** Gets the codec for {@link AltRegistry} account data. */
|
|
93
|
+
export function getAltRegistryCodec(): FixedSizeCodec<
|
|
94
|
+
AltRegistryArgs,
|
|
95
|
+
AltRegistry
|
|
96
|
+
> {
|
|
97
|
+
return combineCodec(getAltRegistryEncoder(), getAltRegistryDecoder());
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export function decodeAltRegistry<TAddress extends string = string>(
|
|
101
|
+
encodedAccount: EncodedAccount<TAddress>,
|
|
102
|
+
): Account<AltRegistry, TAddress>;
|
|
103
|
+
export function decodeAltRegistry<TAddress extends string = string>(
|
|
104
|
+
encodedAccount: MaybeEncodedAccount<TAddress>,
|
|
105
|
+
): MaybeAccount<AltRegistry, TAddress>;
|
|
106
|
+
export function decodeAltRegistry<TAddress extends string = string>(
|
|
107
|
+
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,
|
|
108
|
+
): Account<AltRegistry, TAddress> | MaybeAccount<AltRegistry, TAddress> {
|
|
109
|
+
if (!('exists' in encodedAccount) || encodedAccount.exists) {
|
|
110
|
+
if (encodedAccount.programAddress !== SEND_NEXUS_PROGRAM_ADDRESS) {
|
|
111
|
+
const error = new Error(
|
|
112
|
+
`decodeAltRegistry: account ${encodedAccount.address} is owned by ${encodedAccount.programAddress}, expected ${SEND_NEXUS_PROGRAM_ADDRESS}`,
|
|
113
|
+
);
|
|
114
|
+
error.name = 'AccountOwnerMismatchError';
|
|
115
|
+
throw error;
|
|
116
|
+
}
|
|
117
|
+
if (
|
|
118
|
+
!containsBytes(encodedAccount.data, ALT_REGISTRY_DISCRIMINATOR, 0)
|
|
119
|
+
) {
|
|
120
|
+
const error = new Error(
|
|
121
|
+
`decodeAltRegistry: account ${encodedAccount.address} does not match the AltRegistry discriminator`,
|
|
122
|
+
);
|
|
123
|
+
error.name = 'AccountDiscriminatorMismatchError';
|
|
124
|
+
throw error;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return decodeAccount(
|
|
128
|
+
encodedAccount as MaybeEncodedAccount<TAddress>,
|
|
129
|
+
getAltRegistryDecoder(),
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export async function fetchAltRegistry<TAddress extends string = string>(
|
|
134
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
135
|
+
address: Address<TAddress>,
|
|
136
|
+
config?: FetchAccountConfig,
|
|
137
|
+
): Promise<Account<AltRegistry, TAddress>> {
|
|
138
|
+
const maybeAccount = await fetchMaybeAltRegistry(rpc, address, config);
|
|
139
|
+
assertAccountExists(maybeAccount);
|
|
140
|
+
return maybeAccount;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export async function fetchMaybeAltRegistry<TAddress extends string = string>(
|
|
144
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
145
|
+
address: Address<TAddress>,
|
|
146
|
+
config?: FetchAccountConfig,
|
|
147
|
+
): Promise<MaybeAccount<AltRegistry, TAddress>> {
|
|
148
|
+
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
149
|
+
return decodeAltRegistry(maybeAccount);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export async function fetchAllAltRegistry(
|
|
153
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
154
|
+
addresses: Array<Address>,
|
|
155
|
+
config?: FetchAccountsConfig,
|
|
156
|
+
): Promise<Account<AltRegistry>[]> {
|
|
157
|
+
const maybeAccounts = await fetchAllMaybeAltRegistry(
|
|
158
|
+
rpc,
|
|
159
|
+
addresses,
|
|
160
|
+
config,
|
|
161
|
+
);
|
|
162
|
+
assertAccountsExist(maybeAccounts);
|
|
163
|
+
return maybeAccounts;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export async function fetchAllMaybeAltRegistry(
|
|
167
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
168
|
+
addresses: Array<Address>,
|
|
169
|
+
config?: FetchAccountsConfig,
|
|
170
|
+
): Promise<MaybeAccount<AltRegistry>[]> {
|
|
171
|
+
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
172
|
+
return maybeAccounts.map((maybeAccount) => decodeAltRegistry(maybeAccount));
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export function getAltRegistrySize(): number {
|
|
176
|
+
return 74;
|
|
177
|
+
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
assertAccountExists,
|
|
11
|
+
assertAccountsExist,
|
|
12
|
+
combineCodec,
|
|
13
|
+
containsBytes,
|
|
14
|
+
decodeAccount,
|
|
15
|
+
fetchEncodedAccount,
|
|
16
|
+
fetchEncodedAccounts,
|
|
17
|
+
fixDecoderSize,
|
|
18
|
+
fixEncoderSize,
|
|
19
|
+
getAddressDecoder,
|
|
20
|
+
getAddressEncoder,
|
|
21
|
+
getBytesDecoder,
|
|
22
|
+
getBytesEncoder,
|
|
23
|
+
getStructDecoder,
|
|
24
|
+
getStructEncoder,
|
|
25
|
+
getU8Decoder,
|
|
26
|
+
getU8Encoder,
|
|
27
|
+
transformEncoder,
|
|
28
|
+
type Account,
|
|
29
|
+
type Address,
|
|
30
|
+
type EncodedAccount,
|
|
31
|
+
type FetchAccountConfig,
|
|
32
|
+
type FetchAccountsConfig,
|
|
33
|
+
type FixedSizeCodec,
|
|
34
|
+
type FixedSizeDecoder,
|
|
35
|
+
type FixedSizeEncoder,
|
|
36
|
+
type MaybeAccount,
|
|
37
|
+
type MaybeEncodedAccount,
|
|
38
|
+
type ReadonlyUint8Array,
|
|
39
|
+
} from '@solana/kit';
|
|
40
|
+
import { SEND_NEXUS_PROGRAM_ADDRESS } from '../programs/index.js';
|
|
41
|
+
|
|
42
|
+
export const CREATOR_FEE_CONFIG_DISCRIMINATOR: ReadonlyUint8Array =
|
|
43
|
+
new Uint8Array([160, 88, 34, 74, 215, 196, 130, 32]);
|
|
44
|
+
|
|
45
|
+
export function getCreatorFeeConfigDiscriminatorBytes(): ReadonlyUint8Array {
|
|
46
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(
|
|
47
|
+
CREATOR_FEE_CONFIG_DISCRIMINATOR,
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export type CreatorFeeConfig = {
|
|
52
|
+
discriminator: ReadonlyUint8Array;
|
|
53
|
+
version: number;
|
|
54
|
+
bump: number;
|
|
55
|
+
platformIndex: number;
|
|
56
|
+
platformId: ReadonlyUint8Array;
|
|
57
|
+
quoteMint: Address;
|
|
58
|
+
reserved: ReadonlyUint8Array;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export type CreatorFeeConfigArgs = {
|
|
62
|
+
version: number;
|
|
63
|
+
bump: number;
|
|
64
|
+
platformIndex: number;
|
|
65
|
+
platformId: ReadonlyUint8Array;
|
|
66
|
+
quoteMint: Address;
|
|
67
|
+
reserved: ReadonlyUint8Array;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/** Gets the encoder for {@link CreatorFeeConfigArgs} account data. */
|
|
71
|
+
export function getCreatorFeeConfigEncoder(): FixedSizeEncoder<CreatorFeeConfigArgs> {
|
|
72
|
+
return transformEncoder(
|
|
73
|
+
getStructEncoder([
|
|
74
|
+
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
|
|
75
|
+
['version', getU8Encoder()],
|
|
76
|
+
['bump', getU8Encoder()],
|
|
77
|
+
['platformIndex', getU8Encoder()],
|
|
78
|
+
['platformId', fixEncoderSize(getBytesEncoder(), 44)],
|
|
79
|
+
['quoteMint', getAddressEncoder()],
|
|
80
|
+
['reserved', fixEncoderSize(getBytesEncoder(), 64)],
|
|
81
|
+
]),
|
|
82
|
+
(value) => ({
|
|
83
|
+
...value,
|
|
84
|
+
discriminator: CREATOR_FEE_CONFIG_DISCRIMINATOR,
|
|
85
|
+
}),
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** Gets the decoder for {@link CreatorFeeConfig} account data. */
|
|
90
|
+
export function getCreatorFeeConfigDecoder(): FixedSizeDecoder<CreatorFeeConfig> {
|
|
91
|
+
return getStructDecoder([
|
|
92
|
+
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
|
|
93
|
+
['version', getU8Decoder()],
|
|
94
|
+
['bump', getU8Decoder()],
|
|
95
|
+
['platformIndex', getU8Decoder()],
|
|
96
|
+
['platformId', fixDecoderSize(getBytesDecoder(), 44)],
|
|
97
|
+
['quoteMint', getAddressDecoder()],
|
|
98
|
+
['reserved', fixDecoderSize(getBytesDecoder(), 64)],
|
|
99
|
+
]);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** Gets the codec for {@link CreatorFeeConfig} account data. */
|
|
103
|
+
export function getCreatorFeeConfigCodec(): FixedSizeCodec<
|
|
104
|
+
CreatorFeeConfigArgs,
|
|
105
|
+
CreatorFeeConfig
|
|
106
|
+
> {
|
|
107
|
+
return combineCodec(
|
|
108
|
+
getCreatorFeeConfigEncoder(),
|
|
109
|
+
getCreatorFeeConfigDecoder(),
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export function decodeCreatorFeeConfig<TAddress extends string = string>(
|
|
114
|
+
encodedAccount: EncodedAccount<TAddress>,
|
|
115
|
+
): Account<CreatorFeeConfig, TAddress>;
|
|
116
|
+
export function decodeCreatorFeeConfig<TAddress extends string = string>(
|
|
117
|
+
encodedAccount: MaybeEncodedAccount<TAddress>,
|
|
118
|
+
): MaybeAccount<CreatorFeeConfig, TAddress>;
|
|
119
|
+
export function decodeCreatorFeeConfig<TAddress extends string = string>(
|
|
120
|
+
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,
|
|
121
|
+
):
|
|
122
|
+
| Account<CreatorFeeConfig, TAddress>
|
|
123
|
+
| MaybeAccount<CreatorFeeConfig, TAddress> {
|
|
124
|
+
if (!('exists' in encodedAccount) || encodedAccount.exists) {
|
|
125
|
+
if (encodedAccount.programAddress !== SEND_NEXUS_PROGRAM_ADDRESS) {
|
|
126
|
+
const error = new Error(
|
|
127
|
+
`decodeCreatorFeeConfig: account ${encodedAccount.address} is owned by ${encodedAccount.programAddress}, expected ${SEND_NEXUS_PROGRAM_ADDRESS}`,
|
|
128
|
+
);
|
|
129
|
+
error.name = 'AccountOwnerMismatchError';
|
|
130
|
+
throw error;
|
|
131
|
+
}
|
|
132
|
+
if (
|
|
133
|
+
!containsBytes(
|
|
134
|
+
encodedAccount.data,
|
|
135
|
+
CREATOR_FEE_CONFIG_DISCRIMINATOR,
|
|
136
|
+
0,
|
|
137
|
+
)
|
|
138
|
+
) {
|
|
139
|
+
const error = new Error(
|
|
140
|
+
`decodeCreatorFeeConfig: account ${encodedAccount.address} does not match the CreatorFeeConfig discriminator`,
|
|
141
|
+
);
|
|
142
|
+
error.name = 'AccountDiscriminatorMismatchError';
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return decodeAccount(
|
|
147
|
+
encodedAccount as MaybeEncodedAccount<TAddress>,
|
|
148
|
+
getCreatorFeeConfigDecoder(),
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export async function fetchCreatorFeeConfig<TAddress extends string = string>(
|
|
153
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
154
|
+
address: Address<TAddress>,
|
|
155
|
+
config?: FetchAccountConfig,
|
|
156
|
+
): Promise<Account<CreatorFeeConfig, TAddress>> {
|
|
157
|
+
const maybeAccount = await fetchMaybeCreatorFeeConfig(rpc, address, config);
|
|
158
|
+
assertAccountExists(maybeAccount);
|
|
159
|
+
return maybeAccount;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export async function fetchMaybeCreatorFeeConfig<
|
|
163
|
+
TAddress extends string = string,
|
|
164
|
+
>(
|
|
165
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
166
|
+
address: Address<TAddress>,
|
|
167
|
+
config?: FetchAccountConfig,
|
|
168
|
+
): Promise<MaybeAccount<CreatorFeeConfig, TAddress>> {
|
|
169
|
+
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
170
|
+
return decodeCreatorFeeConfig(maybeAccount);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export async function fetchAllCreatorFeeConfig(
|
|
174
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
175
|
+
addresses: Array<Address>,
|
|
176
|
+
config?: FetchAccountsConfig,
|
|
177
|
+
): Promise<Account<CreatorFeeConfig>[]> {
|
|
178
|
+
const maybeAccounts = await fetchAllMaybeCreatorFeeConfig(
|
|
179
|
+
rpc,
|
|
180
|
+
addresses,
|
|
181
|
+
config,
|
|
182
|
+
);
|
|
183
|
+
assertAccountsExist(maybeAccounts);
|
|
184
|
+
return maybeAccounts;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export async function fetchAllMaybeCreatorFeeConfig(
|
|
188
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
189
|
+
addresses: Array<Address>,
|
|
190
|
+
config?: FetchAccountsConfig,
|
|
191
|
+
): Promise<MaybeAccount<CreatorFeeConfig>[]> {
|
|
192
|
+
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
193
|
+
return maybeAccounts.map((maybeAccount) =>
|
|
194
|
+
decodeCreatorFeeConfig(maybeAccount),
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
export function getCreatorFeeConfigSize(): number {
|
|
199
|
+
return 151;
|
|
200
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
addDecoderSizePrefix,
|
|
11
|
+
addEncoderSizePrefix,
|
|
12
|
+
assertAccountExists,
|
|
13
|
+
assertAccountsExist,
|
|
14
|
+
combineCodec,
|
|
15
|
+
containsBytes,
|
|
16
|
+
decodeAccount,
|
|
17
|
+
fetchEncodedAccount,
|
|
18
|
+
fetchEncodedAccounts,
|
|
19
|
+
fixDecoderSize,
|
|
20
|
+
fixEncoderSize,
|
|
21
|
+
getAddressDecoder,
|
|
22
|
+
getAddressEncoder,
|
|
23
|
+
getBytesDecoder,
|
|
24
|
+
getBytesEncoder,
|
|
25
|
+
getStructDecoder,
|
|
26
|
+
getStructEncoder,
|
|
27
|
+
getU32Decoder,
|
|
28
|
+
getU32Encoder,
|
|
29
|
+
getU8Decoder,
|
|
30
|
+
getU8Encoder,
|
|
31
|
+
getUtf8Decoder,
|
|
32
|
+
getUtf8Encoder,
|
|
33
|
+
transformEncoder,
|
|
34
|
+
type Account,
|
|
35
|
+
type Address,
|
|
36
|
+
type Codec,
|
|
37
|
+
type Decoder,
|
|
38
|
+
type EncodedAccount,
|
|
39
|
+
type Encoder,
|
|
40
|
+
type FetchAccountConfig,
|
|
41
|
+
type FetchAccountsConfig,
|
|
42
|
+
type MaybeAccount,
|
|
43
|
+
type MaybeEncodedAccount,
|
|
44
|
+
type ReadonlyUint8Array,
|
|
45
|
+
} from '@solana/kit';
|
|
46
|
+
import { SEND_NEXUS_PROGRAM_ADDRESS } from '../programs/index.js';
|
|
47
|
+
import {
|
|
48
|
+
getDexFeesDecoder,
|
|
49
|
+
getDexFeesEncoder,
|
|
50
|
+
getLaunchpadFeesDecoder,
|
|
51
|
+
getLaunchpadFeesEncoder,
|
|
52
|
+
type DexFees,
|
|
53
|
+
type DexFeesArgs,
|
|
54
|
+
type LaunchpadFees,
|
|
55
|
+
type LaunchpadFeesArgs,
|
|
56
|
+
} from '../types/index.js';
|
|
57
|
+
|
|
58
|
+
export const FEE_PRESET_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([
|
|
59
|
+
191, 132, 6, 83, 67, 74, 36, 212,
|
|
60
|
+
]);
|
|
61
|
+
|
|
62
|
+
export function getFeePresetDiscriminatorBytes(): ReadonlyUint8Array {
|
|
63
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(
|
|
64
|
+
FEE_PRESET_DISCRIMINATOR,
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export type FeePreset = {
|
|
69
|
+
discriminator: ReadonlyUint8Array;
|
|
70
|
+
version: number;
|
|
71
|
+
bump: number;
|
|
72
|
+
index: number;
|
|
73
|
+
name: string;
|
|
74
|
+
launchpad: LaunchpadFees;
|
|
75
|
+
dex: DexFees;
|
|
76
|
+
platformConfig: Address;
|
|
77
|
+
reserved: ReadonlyUint8Array;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export type FeePresetArgs = {
|
|
81
|
+
version: number;
|
|
82
|
+
bump: number;
|
|
83
|
+
index: number;
|
|
84
|
+
name: string;
|
|
85
|
+
launchpad: LaunchpadFeesArgs;
|
|
86
|
+
dex: DexFeesArgs;
|
|
87
|
+
platformConfig: Address;
|
|
88
|
+
reserved: ReadonlyUint8Array;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
/** Gets the encoder for {@link FeePresetArgs} account data. */
|
|
92
|
+
export function getFeePresetEncoder(): Encoder<FeePresetArgs> {
|
|
93
|
+
return transformEncoder(
|
|
94
|
+
getStructEncoder([
|
|
95
|
+
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
|
|
96
|
+
['version', getU8Encoder()],
|
|
97
|
+
['bump', getU8Encoder()],
|
|
98
|
+
['index', getU8Encoder()],
|
|
99
|
+
['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],
|
|
100
|
+
['launchpad', getLaunchpadFeesEncoder()],
|
|
101
|
+
['dex', getDexFeesEncoder()],
|
|
102
|
+
['platformConfig', getAddressEncoder()],
|
|
103
|
+
['reserved', fixEncoderSize(getBytesEncoder(), 32)],
|
|
104
|
+
]),
|
|
105
|
+
(value) => ({ ...value, discriminator: FEE_PRESET_DISCRIMINATOR }),
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** Gets the decoder for {@link FeePreset} account data. */
|
|
110
|
+
export function getFeePresetDecoder(): Decoder<FeePreset> {
|
|
111
|
+
return getStructDecoder([
|
|
112
|
+
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
|
|
113
|
+
['version', getU8Decoder()],
|
|
114
|
+
['bump', getU8Decoder()],
|
|
115
|
+
['index', getU8Decoder()],
|
|
116
|
+
['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],
|
|
117
|
+
['launchpad', getLaunchpadFeesDecoder()],
|
|
118
|
+
['dex', getDexFeesDecoder()],
|
|
119
|
+
['platformConfig', getAddressDecoder()],
|
|
120
|
+
['reserved', fixDecoderSize(getBytesDecoder(), 32)],
|
|
121
|
+
]);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/** Gets the codec for {@link FeePreset} account data. */
|
|
125
|
+
export function getFeePresetCodec(): Codec<FeePresetArgs, FeePreset> {
|
|
126
|
+
return combineCodec(getFeePresetEncoder(), getFeePresetDecoder());
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export function decodeFeePreset<TAddress extends string = string>(
|
|
130
|
+
encodedAccount: EncodedAccount<TAddress>,
|
|
131
|
+
): Account<FeePreset, TAddress>;
|
|
132
|
+
export function decodeFeePreset<TAddress extends string = string>(
|
|
133
|
+
encodedAccount: MaybeEncodedAccount<TAddress>,
|
|
134
|
+
): MaybeAccount<FeePreset, TAddress>;
|
|
135
|
+
export function decodeFeePreset<TAddress extends string = string>(
|
|
136
|
+
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,
|
|
137
|
+
): Account<FeePreset, TAddress> | MaybeAccount<FeePreset, TAddress> {
|
|
138
|
+
if (!('exists' in encodedAccount) || encodedAccount.exists) {
|
|
139
|
+
if (encodedAccount.programAddress !== SEND_NEXUS_PROGRAM_ADDRESS) {
|
|
140
|
+
const error = new Error(
|
|
141
|
+
`decodeFeePreset: account ${encodedAccount.address} is owned by ${encodedAccount.programAddress}, expected ${SEND_NEXUS_PROGRAM_ADDRESS}`,
|
|
142
|
+
);
|
|
143
|
+
error.name = 'AccountOwnerMismatchError';
|
|
144
|
+
throw error;
|
|
145
|
+
}
|
|
146
|
+
if (!containsBytes(encodedAccount.data, FEE_PRESET_DISCRIMINATOR, 0)) {
|
|
147
|
+
const error = new Error(
|
|
148
|
+
`decodeFeePreset: account ${encodedAccount.address} does not match the FeePreset discriminator`,
|
|
149
|
+
);
|
|
150
|
+
error.name = 'AccountDiscriminatorMismatchError';
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return decodeAccount(
|
|
155
|
+
encodedAccount as MaybeEncodedAccount<TAddress>,
|
|
156
|
+
getFeePresetDecoder(),
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export async function fetchFeePreset<TAddress extends string = string>(
|
|
161
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
162
|
+
address: Address<TAddress>,
|
|
163
|
+
config?: FetchAccountConfig,
|
|
164
|
+
): Promise<Account<FeePreset, TAddress>> {
|
|
165
|
+
const maybeAccount = await fetchMaybeFeePreset(rpc, address, config);
|
|
166
|
+
assertAccountExists(maybeAccount);
|
|
167
|
+
return maybeAccount;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export async function fetchMaybeFeePreset<TAddress extends string = string>(
|
|
171
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
172
|
+
address: Address<TAddress>,
|
|
173
|
+
config?: FetchAccountConfig,
|
|
174
|
+
): Promise<MaybeAccount<FeePreset, TAddress>> {
|
|
175
|
+
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
176
|
+
return decodeFeePreset(maybeAccount);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export async function fetchAllFeePreset(
|
|
180
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
181
|
+
addresses: Array<Address>,
|
|
182
|
+
config?: FetchAccountsConfig,
|
|
183
|
+
): Promise<Account<FeePreset>[]> {
|
|
184
|
+
const maybeAccounts = await fetchAllMaybeFeePreset(rpc, addresses, config);
|
|
185
|
+
assertAccountsExist(maybeAccounts);
|
|
186
|
+
return maybeAccounts;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export async function fetchAllMaybeFeePreset(
|
|
190
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
191
|
+
addresses: Array<Address>,
|
|
192
|
+
config?: FetchAccountsConfig,
|
|
193
|
+
): Promise<MaybeAccount<FeePreset>[]> {
|
|
194
|
+
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
195
|
+
return maybeAccounts.map((maybeAccount) => decodeFeePreset(maybeAccount));
|
|
196
|
+
}
|