@whetstone-research/doppler-sdk 1.0.11 → 1.0.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/dist/{chunk-QGJA5CFL.js → chunk-2NFQKIOB.js} +5 -3
- package/dist/chunk-2NFQKIOB.js.map +1 -0
- package/dist/{chunk-6FRZFA5R.cjs → chunk-AT33RY6T.cjs} +6 -2
- package/dist/chunk-AT33RY6T.cjs.map +1 -0
- package/dist/{chunk-5USQGM5X.cjs → chunk-LL7TW3GU.cjs} +36 -36
- package/dist/{chunk-5USQGM5X.cjs.map → chunk-LL7TW3GU.cjs.map} +1 -1
- package/dist/{chunk-MPM2L56F.js → chunk-ZQEEGBXT.js} +3 -3
- package/dist/{chunk-MPM2L56F.js.map → chunk-ZQEEGBXT.js.map} +1 -1
- package/dist/{pda-MLEPNVY5.js → pda-FLNTBIC5.js} +3 -3
- package/dist/pda-FLNTBIC5.js.map +1 -0
- package/dist/{pda-B7RUPQNR.cjs → pda-G25AJSXG.cjs} +16 -16
- package/dist/pda-G25AJSXG.cjs.map +1 -0
- package/dist/solana/index.cjs +264 -204
- package/dist/solana/index.cjs.map +1 -1
- package/dist/solana/index.d.cts +45 -6
- package/dist/solana/index.d.ts +45 -6
- package/dist/solana/index.js +112 -52
- package/dist/solana/index.js.map +1 -1
- package/dist/solana/react/index.cjs +47 -47
- package/dist/solana/react/index.js +3 -3
- package/package.json +1 -1
- package/dist/chunk-6FRZFA5R.cjs.map +0 -1
- package/dist/chunk-QGJA5CFL.js.map +0 -1
- package/dist/pda-B7RUPQNR.cjs.map +0 -1
- package/dist/pda-MLEPNVY5.js.map +0 -1
package/dist/solana/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { transferAdminArgsCodec, swapExactInArgsCodec, sortPositionsByShares, sortPoolsByReserves, setSentinelArgsCodec, setRouteArgsCodec, setFeesArgsCodec, removeLiquidityArgsCodec, ratioToNumber, quoteToNumeraireArgsCodec, q64ToNumber, q64Mul, q64Div, positionDataCodec, poolExists, poolDataCodec, oracleStateDataCodec, oracleConsultArgsCodec, observationCodec, numberToQ64, minBigInt, maxBigInt, isqrt, isOracleStale, initializePoolArgsCodec, initializeOracleArgsCodec, initializeConfigArgsCodec, getTvl, getSwapQuoteExactOut, getSwapQuote, getSpotPrice1, getSpotPrice0, getRemoveLiquidityQuote, getPositionValue, getPositionAddressFromParams, getPoolByMints, getPoolAddressFromMints, getPendingFees, getOracleSpotPrices, getOracleForPool, getOracleDeviation, getOracleBufferStats, getOracleAge, getOracleAddressFromPool, getK, getAddLiquidityQuote, filterPoolsByMint, filterActivePositions, fetchUserPositions, fetchPositionsBatch, fetchPositionByParams, fetchPosition, fetchPoolsBatch, fetchPoolPositions, fetchPool, fetchOraclesBatch, fetchOracle, fetchAllPools, encodeTransferAdminArgs, encodeSwapExactInArgs, encodeSetSentinelArgs, encodeSetRouteArgs, encodeSetFeesArgs, encodeRemoveLiquidityArgs, encodeQuoteToNumeraireArgs, encodeOracleConsultArgs, encodeInstructionData, encodeInitializePoolArgs, encodeInitializeOracleArgs, encodeInitializeConfigArgs, encodeCreatePositionArgs, encodeCollectProtocolFeesArgs, encodeCollectFeesArgs, encodeAddLiquidityArgs, decodePosition, decodePool, decodeOracleState, decodeAmmConfig, createPositionArgsCodec, consultTwap, computePrice1Q64, computePrice0Q64, comparePoolAndOraclePrices, collectProtocolFeesArgsCodec, collectFeesArgsCodec, ceilDiv, calculateTwapNumber, calculateTwap, calculateAccruedFees, ammConfigDataCodec, addLiquidityArgsCodec } from '../chunk-
|
|
2
|
-
import { sortMints, getSwapAddresses, getProtocolPositionAddress, getPositionAddress, getPoolVault1Address, getPoolVault0Address, getPoolInitAddresses, getPoolAuthorityAddress, getPoolAddress, getOracleAddress, getLiquidityAddresses, getConfigAddress, CPMM_PROGRAM_ID, areMintsOrdered, TOKEN_METADATA_PROGRAM_ID, SF_BEFORE_SWAP, SF_BEFORE_REMOVE_LIQ, SF_BEFORE_ADD_LIQ, SF_AFTER_SWAP, SF_AFTER_REMOVE_LIQ, SF_AFTER_ADD_LIQ, SENTINEL_NO_CHANGE, SEED_PROTOCOL_POSITION, SEED_POSITION, SEED_POOL, SEED_ORACLE, SEED_CONFIG, SEED_AUTHORITY, Q64_ONE, MAX_SENTINEL_ALLOWLIST, MAX_ORACLE_OBSERVATIONS, INSTRUCTION_DISCRIMINATORS, BPS_DENOM, ACCOUNT_VERSION, ACCOUNT_DISCRIMINATORS, TOKEN_PROGRAM_ADDRESS, SYSTEM_PROGRAM_ADDRESS } from '../chunk-
|
|
1
|
+
import { transferAdminArgsCodec, swapExactInArgsCodec, sortPositionsByShares, sortPoolsByReserves, setSentinelArgsCodec, setRouteArgsCodec, setFeesArgsCodec, removeLiquidityArgsCodec, ratioToNumber, quoteToNumeraireArgsCodec, q64ToNumber, q64Mul, q64Div, positionDataCodec, poolExists, poolDataCodec, oracleStateDataCodec, oracleConsultArgsCodec, observationCodec, numberToQ64, minBigInt, maxBigInt, isqrt, isOracleStale, initializePoolArgsCodec, initializeOracleArgsCodec, initializeConfigArgsCodec, getTvl, getSwapQuoteExactOut, getSwapQuote, getSpotPrice1, getSpotPrice0, getRemoveLiquidityQuote, getPositionValue, getPositionAddressFromParams, getPoolByMints, getPoolAddressFromMints, getPendingFees, getOracleSpotPrices, getOracleForPool, getOracleDeviation, getOracleBufferStats, getOracleAge, getOracleAddressFromPool, getK, getAddLiquidityQuote, filterPoolsByMint, filterActivePositions, fetchUserPositions, fetchPositionsBatch, fetchPositionByParams, fetchPosition, fetchPoolsBatch, fetchPoolPositions, fetchPool, fetchOraclesBatch, fetchOracle, fetchAllPools, encodeTransferAdminArgs, encodeSwapExactInArgs, encodeSetSentinelArgs, encodeSetRouteArgs, encodeSetFeesArgs, encodeRemoveLiquidityArgs, encodeQuoteToNumeraireArgs, encodeOracleConsultArgs, encodeInstructionData, encodeInitializePoolArgs, encodeInitializeOracleArgs, encodeInitializeConfigArgs, encodeCreatePositionArgs, encodeCollectProtocolFeesArgs, encodeCollectFeesArgs, encodeAddLiquidityArgs, decodePosition, decodePool, decodeOracleState, decodeAmmConfig, createPositionArgsCodec, consultTwap, computePrice1Q64, computePrice0Q64, comparePoolAndOraclePrices, collectProtocolFeesArgsCodec, collectFeesArgsCodec, ceilDiv, calculateTwapNumber, calculateTwap, calculateAccruedFees, ammConfigDataCodec, addLiquidityArgsCodec } from '../chunk-ZQEEGBXT.js';
|
|
2
|
+
import { sortMints, getSwapAddresses, getProtocolPositionAddress, getPositionAddress, getPoolVault1Address, getPoolVault0Address, getPoolInitAddresses, getPoolAuthorityAddress, getPoolAddress, getOracleAddress, getLiquidityAddresses, getConfigAddress, CPMM_PROGRAM_ID, areMintsOrdered, TOKEN_METADATA_PROGRAM_ID, SF_REQUIRE_ORACLE, SF_FORWARD_READONLY_SIGNERS, SF_BEFORE_SWAP, SF_BEFORE_REMOVE_LIQ, SF_BEFORE_ADD_LIQ, SF_AFTER_SWAP, SF_AFTER_REMOVE_LIQ, SF_AFTER_ADD_LIQ, SENTINEL_NO_CHANGE, SEED_PROTOCOL_POSITION, SEED_POSITION, SEED_POOL, SEED_ORACLE, SEED_CONFIG, SEED_AUTHORITY, Q64_ONE, MAX_SENTINEL_ALLOWLIST, MAX_ORACLE_OBSERVATIONS, INSTRUCTION_DISCRIMINATORS, BPS_DENOM, ACCOUNT_VERSION, ACCOUNT_DISCRIMINATORS, TOKEN_PROGRAM_ADDRESS, SYSTEM_PROGRAM_ADDRESS } from '../chunk-2NFQKIOB.js';
|
|
3
3
|
import { __export } from '../chunk-PZ5AY32C.js';
|
|
4
|
-
import { getAddressCodec, getProgramDerivedAddress, fixEncoderSize, getBytesEncoder, transformEncoder, getStructEncoder, getU64Encoder, getU128Encoder, getBooleanEncoder, getStructDecoder, fixDecoderSize, getU64Decoder, getU128Decoder, getBooleanDecoder, getBytesDecoder, combineCodec, getAddressEncoder, SolanaError, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, getU16Encoder, getU8Encoder, getArrayEncoder, getAddressDecoder, getU16Decoder, getU8Decoder, getArrayDecoder, getU32Encoder, getU32Decoder, getOptionEncoder, getOptionDecoder, createNoopSigner,
|
|
4
|
+
import { getAddressCodec, getProgramDerivedAddress, fixEncoderSize, getBytesEncoder, transformEncoder, getStructEncoder, getU64Encoder, getU128Encoder, getBooleanEncoder, getStructDecoder, fixDecoderSize, getU64Decoder, getU128Decoder, getBooleanDecoder, getBytesDecoder, combineCodec, getAddressEncoder, SolanaError, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, getU16Encoder, getU8Encoder, getArrayEncoder, getAddressDecoder, getU16Decoder, getU8Decoder, getArrayDecoder, getU32Encoder, getU32Decoder, getOptionEncoder, getOptionDecoder, createNoopSigner, address, addEncoderSizePrefix, getUtf8Encoder, addDecoderSizePrefix, getUtf8Decoder, AccountRole, getStructCodec, getU64Codec, mergeBytes, isProgramError, decodeAccount, assertAccountExists, fetchEncodedAccount, assertAccountsExist, fetchEncodedAccounts, containsBytes, SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_ACCOUNT, SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION, SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE, assertIsInstructionWithAccounts } from '@solana/kit';
|
|
5
5
|
import { getAddressFromResolvedInstructionAccount, getAccountMetaFactory, getNonNullResolvedInstructionInput, addSelfPlanAndSendFunctions, addSelfFetchFunctions } from '@solana/program-client-core';
|
|
6
6
|
import { keccak_256 } from '@noble/hashes/sha3.js';
|
|
7
7
|
|
|
@@ -50,6 +50,8 @@ __export(cpmm_exports, {
|
|
|
50
50
|
SF_BEFORE_ADD_LIQ: () => SF_BEFORE_ADD_LIQ,
|
|
51
51
|
SF_BEFORE_REMOVE_LIQ: () => SF_BEFORE_REMOVE_LIQ,
|
|
52
52
|
SF_BEFORE_SWAP: () => SF_BEFORE_SWAP,
|
|
53
|
+
SF_FORWARD_READONLY_SIGNERS: () => SF_FORWARD_READONLY_SIGNERS,
|
|
54
|
+
SF_REQUIRE_ORACLE: () => SF_REQUIRE_ORACLE,
|
|
53
55
|
SKIM_DISCRIMINATOR: () => SKIM_DISCRIMINATOR,
|
|
54
56
|
SWAP_EXACT_IN_DISCRIMINATOR: () => SWAP_EXACT_IN_DISCRIMINATOR,
|
|
55
57
|
TOKEN_METADATA_PROGRAM_ID: () => TOKEN_METADATA_PROGRAM_ID,
|
|
@@ -3486,6 +3488,22 @@ function parseUpdateConfigInstruction(instruction) {
|
|
|
3486
3488
|
data: getUpdateConfigInstructionDataDecoder().decode(instruction.data)
|
|
3487
3489
|
};
|
|
3488
3490
|
}
|
|
3491
|
+
function isTransactionSigner(value) {
|
|
3492
|
+
return typeof value === "object" && value !== null && "address" in value && "signTransactions" in value;
|
|
3493
|
+
}
|
|
3494
|
+
function toRemainingAccountMeta(account) {
|
|
3495
|
+
if (typeof account === "string") {
|
|
3496
|
+
return { address: account, role: AccountRole.READONLY };
|
|
3497
|
+
}
|
|
3498
|
+
if (isTransactionSigner(account)) {
|
|
3499
|
+
return {
|
|
3500
|
+
address: account.address,
|
|
3501
|
+
role: AccountRole.READONLY_SIGNER,
|
|
3502
|
+
signer: account
|
|
3503
|
+
};
|
|
3504
|
+
}
|
|
3505
|
+
return account;
|
|
3506
|
+
}
|
|
3489
3507
|
function createSwapInstruction(params) {
|
|
3490
3508
|
const {
|
|
3491
3509
|
config,
|
|
@@ -3509,6 +3527,7 @@ function createSwapInstruction(params) {
|
|
|
3509
3527
|
tokenProgram,
|
|
3510
3528
|
programId = CPMM_PROGRAM_ADDRESS
|
|
3511
3529
|
} = params;
|
|
3530
|
+
const trader = typeof user === "string" ? createNoopSigner(user) : user;
|
|
3512
3531
|
const [vaultIn, vaultOut] = direction === 0 ? [vault0, vault1] : [vault1, vault0];
|
|
3513
3532
|
const [userIn, userOut] = direction === 0 ? [userToken0, userToken1] : [userToken1, userToken0];
|
|
3514
3533
|
const instruction = getSwapExactInInstruction(
|
|
@@ -3522,7 +3541,7 @@ function createSwapInstruction(params) {
|
|
|
3522
3541
|
token1Mint,
|
|
3523
3542
|
userIn,
|
|
3524
3543
|
userOut,
|
|
3525
|
-
trader
|
|
3544
|
+
trader,
|
|
3526
3545
|
token0Program: token0Program ?? tokenProgram ?? TOKEN_PROGRAM_ADDRESS,
|
|
3527
3546
|
token1Program: token1Program ?? tokenProgram ?? TOKEN_PROGRAM_ADDRESS,
|
|
3528
3547
|
oracle,
|
|
@@ -3537,10 +3556,7 @@ function createSwapInstruction(params) {
|
|
|
3537
3556
|
...instruction,
|
|
3538
3557
|
accounts: [
|
|
3539
3558
|
...instruction.accounts ?? [],
|
|
3540
|
-
...remainingAccounts.map(
|
|
3541
|
-
address: address3,
|
|
3542
|
-
role: AccountRole.READONLY
|
|
3543
|
-
}))
|
|
3559
|
+
...remainingAccounts.map(toRemainingAccountMeta)
|
|
3544
3560
|
]
|
|
3545
3561
|
};
|
|
3546
3562
|
}
|
|
@@ -3600,7 +3616,11 @@ __export(initializer_exports, {
|
|
|
3600
3616
|
SEED_LAUNCH: () => SEED_LAUNCH,
|
|
3601
3617
|
SEED_LAUNCH_AUTHORITY: () => SEED_LAUNCH_AUTHORITY,
|
|
3602
3618
|
SENTINEL_NO_CHANGE: () => SENTINEL_NO_CHANGE2,
|
|
3619
|
+
SF_AFTER_CREATE: () => SF_AFTER_CREATE,
|
|
3620
|
+
SF_AFTER_MIGRATE: () => SF_AFTER_MIGRATE,
|
|
3603
3621
|
SF_AFTER_SWAP: () => SF_AFTER_SWAP2,
|
|
3622
|
+
SF_BEFORE_CREATE: () => SF_BEFORE_CREATE,
|
|
3623
|
+
SF_BEFORE_MIGRATE: () => SF_BEFORE_MIGRATE,
|
|
3604
3624
|
SF_BEFORE_SWAP: () => SF_BEFORE_SWAP2,
|
|
3605
3625
|
computeRemainingAccountsHash: () => computeRemainingAccountsHash,
|
|
3606
3626
|
createCurveSwapExactInInstruction: () => createCurveSwapExactInInstruction,
|
|
@@ -3702,6 +3722,10 @@ var CURVE_KIND_XYK = 0;
|
|
|
3702
3722
|
var CURVE_PARAMS_FORMAT_XYK_V0 = 0;
|
|
3703
3723
|
var SF_BEFORE_SWAP2 = 1 << 0;
|
|
3704
3724
|
var SF_AFTER_SWAP2 = 1 << 1;
|
|
3725
|
+
var SF_BEFORE_CREATE = 1 << 2;
|
|
3726
|
+
var SF_AFTER_CREATE = 1 << 3;
|
|
3727
|
+
var SF_BEFORE_MIGRATE = 1 << 4;
|
|
3728
|
+
var SF_AFTER_MIGRATE = 1 << 5;
|
|
3705
3729
|
var SENTINEL_NO_CHANGE2 = 65535;
|
|
3706
3730
|
var INITIALIZER_INSTRUCTION_DISCRIMINATORS = {
|
|
3707
3731
|
// SHA256("global:initialize_config")[0:8]
|
|
@@ -3892,6 +3916,7 @@ function getInitializeLaunchArgsEncoder() {
|
|
|
3892
3916
|
"sentinelCalldata",
|
|
3893
3917
|
addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())
|
|
3894
3918
|
],
|
|
3919
|
+
["sentinelCreateRemainingAccountsLen", getU32Encoder()],
|
|
3895
3920
|
["migratorProgram", getAddressEncoder()],
|
|
3896
3921
|
[
|
|
3897
3922
|
"migratorInitCalldata",
|
|
@@ -3901,6 +3926,10 @@ function getInitializeLaunchArgsEncoder() {
|
|
|
3901
3926
|
"migratorMigrateCalldata",
|
|
3902
3927
|
addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())
|
|
3903
3928
|
],
|
|
3929
|
+
[
|
|
3930
|
+
"sentinelCreateRemainingAccountsHash",
|
|
3931
|
+
fixEncoderSize(getBytesEncoder(), 32)
|
|
3932
|
+
],
|
|
3904
3933
|
["sentinelRemainingAccountsHash", fixEncoderSize(getBytesEncoder(), 32)],
|
|
3905
3934
|
[
|
|
3906
3935
|
"migratorInitRemainingAccountsHash",
|
|
@@ -3933,6 +3962,7 @@ function getInitializeLaunchArgsDecoder() {
|
|
|
3933
3962
|
"sentinelCalldata",
|
|
3934
3963
|
addDecoderSizePrefix(getBytesDecoder(), getU32Decoder())
|
|
3935
3964
|
],
|
|
3965
|
+
["sentinelCreateRemainingAccountsLen", getU32Decoder()],
|
|
3936
3966
|
["migratorProgram", getAddressDecoder()],
|
|
3937
3967
|
[
|
|
3938
3968
|
"migratorInitCalldata",
|
|
@@ -3942,6 +3972,10 @@ function getInitializeLaunchArgsDecoder() {
|
|
|
3942
3972
|
"migratorMigrateCalldata",
|
|
3943
3973
|
addDecoderSizePrefix(getBytesDecoder(), getU32Decoder())
|
|
3944
3974
|
],
|
|
3975
|
+
[
|
|
3976
|
+
"sentinelCreateRemainingAccountsHash",
|
|
3977
|
+
fixDecoderSize(getBytesDecoder(), 32)
|
|
3978
|
+
],
|
|
3945
3979
|
["sentinelRemainingAccountsHash", fixDecoderSize(getBytesDecoder(), 32)],
|
|
3946
3980
|
[
|
|
3947
3981
|
"migratorInitRemainingAccountsHash",
|
|
@@ -4131,6 +4165,7 @@ function getInitializeLaunchInstructionDataEncoder() {
|
|
|
4131
4165
|
"sentinelCalldata",
|
|
4132
4166
|
addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())
|
|
4133
4167
|
],
|
|
4168
|
+
["sentinelCreateRemainingAccountsLen", getU32Encoder()],
|
|
4134
4169
|
["migratorProgram", getAddressEncoder()],
|
|
4135
4170
|
[
|
|
4136
4171
|
"migratorInitCalldata",
|
|
@@ -4140,6 +4175,10 @@ function getInitializeLaunchInstructionDataEncoder() {
|
|
|
4140
4175
|
"migratorMigrateCalldata",
|
|
4141
4176
|
addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())
|
|
4142
4177
|
],
|
|
4178
|
+
[
|
|
4179
|
+
"sentinelCreateRemainingAccountsHash",
|
|
4180
|
+
fixEncoderSize(getBytesEncoder(), 32)
|
|
4181
|
+
],
|
|
4143
4182
|
["sentinelRemainingAccountsHash", fixEncoderSize(getBytesEncoder(), 32)],
|
|
4144
4183
|
[
|
|
4145
4184
|
"migratorInitRemainingAccountsHash",
|
|
@@ -4271,11 +4310,11 @@ function launchIdFromU64(launchId) {
|
|
|
4271
4310
|
out.set(encodeU64LE(launchId), 0);
|
|
4272
4311
|
return out;
|
|
4273
4312
|
}
|
|
4274
|
-
function
|
|
4313
|
+
function isTransactionSigner2(value) {
|
|
4275
4314
|
return typeof value === "object" && value !== null && "address" in value && "signTransactions" in value;
|
|
4276
4315
|
}
|
|
4277
4316
|
function createSignerAccountMeta(value, role) {
|
|
4278
|
-
if (
|
|
4317
|
+
if (isTransactionSigner2(value)) {
|
|
4279
4318
|
return { address: value.address, role, signer: value };
|
|
4280
4319
|
}
|
|
4281
4320
|
return { address: value, role };
|
|
@@ -4298,11 +4337,11 @@ function createInitializeConfigInstruction(accounts, args, programId = INITIALIZ
|
|
|
4298
4337
|
);
|
|
4299
4338
|
return { programAddress: programId, accounts: keys, data };
|
|
4300
4339
|
}
|
|
4301
|
-
function
|
|
4340
|
+
function isTransactionSigner3(value) {
|
|
4302
4341
|
return typeof value === "object" && value !== null && "address" in value && "signTransactions" in value;
|
|
4303
4342
|
}
|
|
4304
4343
|
function createSignerAccountMeta2(value, role) {
|
|
4305
|
-
if (
|
|
4344
|
+
if (isTransactionSigner3(value)) {
|
|
4306
4345
|
return { address: value.address, role, signer: value };
|
|
4307
4346
|
}
|
|
4308
4347
|
return { address: value, role };
|
|
@@ -4318,11 +4357,11 @@ function createSetMigratorAllowlistInstruction(accounts, allowlist, programId =
|
|
|
4318
4357
|
);
|
|
4319
4358
|
return { programAddress: programId, accounts: keys, data };
|
|
4320
4359
|
}
|
|
4321
|
-
function
|
|
4360
|
+
function isTransactionSigner4(value) {
|
|
4322
4361
|
return typeof value === "object" && value !== null && "address" in value && "signTransactions" in value;
|
|
4323
4362
|
}
|
|
4324
4363
|
function createSignerAccountMeta3(value, role) {
|
|
4325
|
-
if (
|
|
4364
|
+
if (isTransactionSigner4(value)) {
|
|
4326
4365
|
return { address: value.address, role, signer: value };
|
|
4327
4366
|
}
|
|
4328
4367
|
return { address: value, role };
|
|
@@ -4338,6 +4377,27 @@ function createSetSentinelAllowlistInstruction(accounts, allowlist, programId =
|
|
|
4338
4377
|
);
|
|
4339
4378
|
return { programAddress: programId, accounts: keys, data };
|
|
4340
4379
|
}
|
|
4380
|
+
function computeRemainingAccountsHash(addresses) {
|
|
4381
|
+
const addressEncoder = getAddressEncoder();
|
|
4382
|
+
const buf = new Uint8Array(4 + addresses.length * 32);
|
|
4383
|
+
new DataView(buf.buffer).setUint32(0, addresses.length, true);
|
|
4384
|
+
for (let i = 0; i < addresses.length; i++) {
|
|
4385
|
+
buf.set(addressEncoder.encode(addresses[i]), 4 + i * 32);
|
|
4386
|
+
}
|
|
4387
|
+
return keccak_256(buf);
|
|
4388
|
+
}
|
|
4389
|
+
function phaseLabel(phase) {
|
|
4390
|
+
switch (phase) {
|
|
4391
|
+
case PHASE_TRADING:
|
|
4392
|
+
return "TRADING";
|
|
4393
|
+
case PHASE_MIGRATED:
|
|
4394
|
+
return "MIGRATED";
|
|
4395
|
+
case PHASE_ABORTED:
|
|
4396
|
+
return "ABORTED";
|
|
4397
|
+
default:
|
|
4398
|
+
return String(phase);
|
|
4399
|
+
}
|
|
4400
|
+
}
|
|
4341
4401
|
var CPMM_MIGRATOR_PROGRAM_ID = address(
|
|
4342
4402
|
"7WMUTNC41eMCo6eGH5Sy2xbgE3AycvLbFPo95AU9CSUd"
|
|
4343
4403
|
);
|
|
@@ -6310,11 +6370,11 @@ async function getPredictionEntryByMintAddress(market, mint, programId = PREDICT
|
|
|
6310
6370
|
}
|
|
6311
6371
|
|
|
6312
6372
|
// src/solana/initializer/instructions/initializeLaunch.ts
|
|
6313
|
-
function
|
|
6373
|
+
function isTransactionSigner5(value) {
|
|
6314
6374
|
return typeof value === "object" && value !== null && "address" in value && "signTransactions" in value;
|
|
6315
6375
|
}
|
|
6316
6376
|
function createAccountMeta(value, role) {
|
|
6317
|
-
if (
|
|
6377
|
+
if (isTransactionSigner5(value)) {
|
|
6318
6378
|
return { address: value.address, role, signer: value };
|
|
6319
6379
|
}
|
|
6320
6380
|
return { address: value, role };
|
|
@@ -6339,7 +6399,8 @@ var ALT_INDEX = {
|
|
|
6339
6399
|
[TOKEN_METADATA_PROGRAM_ID]: 4,
|
|
6340
6400
|
[CPMM_MIGRATOR_PROGRAM_ID]: 5,
|
|
6341
6401
|
So11111111111111111111111111111111111111112: 6,
|
|
6342
|
-
[PREDICTION_MIGRATOR_PROGRAM_ADDRESS]: 8
|
|
6402
|
+
[PREDICTION_MIGRATOR_PROGRAM_ADDRESS]: 8,
|
|
6403
|
+
A9DojSvj32PMTTGctEcWZu9GSKuQVEhPkBXxDxmYu34o: 10
|
|
6343
6404
|
};
|
|
6344
6405
|
function validateInitializeLaunchCurveParams(args) {
|
|
6345
6406
|
if (args.curveKind !== CURVE_KIND_XYK) {
|
|
@@ -6363,6 +6424,7 @@ async function createInitializeLaunchInstruction(accounts, args, programId = INI
|
|
|
6363
6424
|
quoteVault,
|
|
6364
6425
|
payer,
|
|
6365
6426
|
authority,
|
|
6427
|
+
sentinelProgram,
|
|
6366
6428
|
migratorProgram,
|
|
6367
6429
|
baseTokenProgram = TOKEN_PROGRAM_ADDRESS,
|
|
6368
6430
|
quoteTokenProgram = TOKEN_PROGRAM_ADDRESS,
|
|
@@ -6370,6 +6432,7 @@ async function createInitializeLaunchInstruction(accounts, args, programId = INI
|
|
|
6370
6432
|
rent,
|
|
6371
6433
|
metadataAccount,
|
|
6372
6434
|
metadataProgram = TOKEN_METADATA_PROGRAM_ID,
|
|
6435
|
+
sentinelCreateRemainingAccounts = [],
|
|
6373
6436
|
addressLookupTable: alt
|
|
6374
6437
|
} = accounts;
|
|
6375
6438
|
const withMetadata = Boolean(
|
|
@@ -6380,6 +6443,10 @@ async function createInitializeLaunchInstruction(accounts, args, programId = INI
|
|
|
6380
6443
|
"metadataName is set but metadataAccount was not provided. Derive it with await initializer.getTokenMetadataAddress(baseMintAddress)."
|
|
6381
6444
|
);
|
|
6382
6445
|
}
|
|
6446
|
+
const createHooksEnabled = (args.sentinelFlags & (SF_BEFORE_CREATE | SF_AFTER_CREATE)) !== 0;
|
|
6447
|
+
const sentinelCreateRemainingAccountAddresses = sentinelCreateRemainingAccounts.map(
|
|
6448
|
+
(account) => isTransactionSigner5(account) ? account.address : account
|
|
6449
|
+
);
|
|
6383
6450
|
const altIndexMap = alt ? ALT_INDEX : {};
|
|
6384
6451
|
function staticOrLookup(addr, role) {
|
|
6385
6452
|
if (alt && altIndexMap[addr] !== void 0) {
|
|
@@ -6402,12 +6469,15 @@ async function createInitializeLaunchInstruction(accounts, args, programId = INI
|
|
|
6402
6469
|
createAccountMeta(quoteVault, AccountRole.WRITABLE_SIGNER),
|
|
6403
6470
|
createAccountMeta(payer, AccountRole.WRITABLE_SIGNER)
|
|
6404
6471
|
];
|
|
6405
|
-
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
|
|
6409
|
-
|
|
6410
|
-
|
|
6472
|
+
keys.push(
|
|
6473
|
+
authority ? createAccountMeta(authority, AccountRole.READONLY_SIGNER) : staticOrLookup(programId, AccountRole.READONLY)
|
|
6474
|
+
);
|
|
6475
|
+
keys.push(
|
|
6476
|
+
sentinelProgram ? staticOrLookup(sentinelProgram, AccountRole.READONLY) : staticOrLookup(programId, AccountRole.READONLY)
|
|
6477
|
+
);
|
|
6478
|
+
keys.push(
|
|
6479
|
+
migratorProgram ? staticOrLookup(migratorProgram, AccountRole.READONLY) : staticOrLookup(programId, AccountRole.READONLY)
|
|
6480
|
+
);
|
|
6411
6481
|
keys.push(staticOrLookup(baseTokenProgram, AccountRole.READONLY));
|
|
6412
6482
|
keys.push(staticOrLookup(quoteTokenProgram, AccountRole.READONLY));
|
|
6413
6483
|
keys.push(staticOrLookup(systemProgram, AccountRole.READONLY));
|
|
@@ -6416,18 +6486,29 @@ async function createInitializeLaunchInstruction(accounts, args, programId = INI
|
|
|
6416
6486
|
keys.push({ address: metadataAccount, role: AccountRole.WRITABLE });
|
|
6417
6487
|
keys.push(staticOrLookup(metadataProgram, AccountRole.READONLY));
|
|
6418
6488
|
} else {
|
|
6419
|
-
keys.push(
|
|
6420
|
-
keys.push(
|
|
6489
|
+
keys.push(staticOrLookup(programId, AccountRole.READONLY));
|
|
6490
|
+
keys.push(staticOrLookup(programId, AccountRole.READONLY));
|
|
6421
6491
|
}
|
|
6422
6492
|
const encoderArgs = {
|
|
6423
6493
|
...args,
|
|
6424
6494
|
allowBuy: args.allowBuy ? 1 : 0,
|
|
6425
6495
|
allowSell: args.allowSell ? 1 : 0,
|
|
6426
|
-
|
|
6496
|
+
sentinelProgram: args.sentinelProgram ?? sentinelProgram ?? SYSTEM_PROGRAM_ADDRESS,
|
|
6497
|
+
sentinelCreateRemainingAccountsLen: args.sentinelCreateRemainingAccountsLen ?? sentinelCreateRemainingAccounts.length,
|
|
6498
|
+
migratorProgram: migratorProgram ?? SYSTEM_PROGRAM_ADDRESS,
|
|
6499
|
+
sentinelCreateRemainingAccountsHash: args.sentinelCreateRemainingAccountsHash ?? (createHooksEnabled ? computeRemainingAccountsHash(sentinelCreateRemainingAccountAddresses) : new Uint8Array(32))
|
|
6427
6500
|
};
|
|
6428
6501
|
const data = new Uint8Array(
|
|
6429
6502
|
getInitializeLaunchInstructionDataEncoder().encode(encoderArgs)
|
|
6430
6503
|
);
|
|
6504
|
+
keys.push(
|
|
6505
|
+
...sentinelCreateRemainingAccounts.map(
|
|
6506
|
+
(account) => createAccountMeta(
|
|
6507
|
+
account,
|
|
6508
|
+
isTransactionSigner5(account) ? AccountRole.READONLY_SIGNER : AccountRole.READONLY
|
|
6509
|
+
)
|
|
6510
|
+
)
|
|
6511
|
+
);
|
|
6431
6512
|
if (migratorProgram === CPMM_MIGRATOR_PROGRAM_ID) {
|
|
6432
6513
|
if (!accounts.cpmmConfig) {
|
|
6433
6514
|
throw new Error(
|
|
@@ -6441,7 +6522,7 @@ async function createInitializeLaunchInstruction(accounts, args, programId = INI
|
|
|
6441
6522
|
if (migratorProgram === PREDICTION_MIGRATOR_PROGRAM_ADDRESS) {
|
|
6442
6523
|
const oracleState = args.namespace;
|
|
6443
6524
|
const entryId = args.launchId;
|
|
6444
|
-
const baseMintAddress =
|
|
6525
|
+
const baseMintAddress = isTransactionSigner5(baseMint) ? baseMint.address : baseMint;
|
|
6445
6526
|
const [market] = await getPredictionMarketAddress(oracleState, quoteMint);
|
|
6446
6527
|
const [potVault] = await getPredictionPotVaultAddress(market);
|
|
6447
6528
|
const [marketAuthority] = await getPredictionMarketAuthorityAddress(market);
|
|
@@ -6459,11 +6540,11 @@ async function createInitializeLaunchInstruction(accounts, args, programId = INI
|
|
|
6459
6540
|
}
|
|
6460
6541
|
return { programAddress: programId, accounts: keys, data };
|
|
6461
6542
|
}
|
|
6462
|
-
function
|
|
6543
|
+
function isTransactionSigner6(value) {
|
|
6463
6544
|
return typeof value === "object" && value !== null && "address" in value && "signTransactions" in value;
|
|
6464
6545
|
}
|
|
6465
6546
|
function createAccountMeta2(value, role) {
|
|
6466
|
-
if (
|
|
6547
|
+
if (isTransactionSigner6(value)) {
|
|
6467
6548
|
return { address: value.address, role, signer: value };
|
|
6468
6549
|
}
|
|
6469
6550
|
return { address: value, role };
|
|
@@ -6507,11 +6588,11 @@ function createCurveSwapExactInInstruction(accounts, args, programId = INITIALIZ
|
|
|
6507
6588
|
);
|
|
6508
6589
|
return { programAddress: programId, accounts: keys, data };
|
|
6509
6590
|
}
|
|
6510
|
-
function
|
|
6591
|
+
function isTransactionSigner7(value) {
|
|
6511
6592
|
return typeof value === "object" && value !== null && "address" in value && "signTransactions" in value;
|
|
6512
6593
|
}
|
|
6513
6594
|
function createSignerAccountMeta4(value, role) {
|
|
6514
|
-
if (
|
|
6595
|
+
if (isTransactionSigner7(value)) {
|
|
6515
6596
|
return { address: value.address, role, signer: value };
|
|
6516
6597
|
}
|
|
6517
6598
|
return { address: value, role };
|
|
@@ -6593,27 +6674,6 @@ function createPreviewMigrationInstruction(accounts, programId = INITIALIZER_PRO
|
|
|
6593
6674
|
function decodePreviewMigrationResult(data) {
|
|
6594
6675
|
return previewMigrationResultCodec.decode(data);
|
|
6595
6676
|
}
|
|
6596
|
-
function computeRemainingAccountsHash(addresses) {
|
|
6597
|
-
const addressEncoder = getAddressEncoder();
|
|
6598
|
-
const buf = new Uint8Array(4 + addresses.length * 32);
|
|
6599
|
-
new DataView(buf.buffer).setUint32(0, addresses.length, true);
|
|
6600
|
-
for (let i = 0; i < addresses.length; i++) {
|
|
6601
|
-
buf.set(addressEncoder.encode(addresses[i]), 4 + i * 32);
|
|
6602
|
-
}
|
|
6603
|
-
return keccak_256(buf);
|
|
6604
|
-
}
|
|
6605
|
-
function phaseLabel(phase) {
|
|
6606
|
-
switch (phase) {
|
|
6607
|
-
case PHASE_TRADING:
|
|
6608
|
-
return "TRADING";
|
|
6609
|
-
case PHASE_MIGRATED:
|
|
6610
|
-
return "MIGRATED";
|
|
6611
|
-
case PHASE_ABORTED:
|
|
6612
|
-
return "ABORTED";
|
|
6613
|
-
default:
|
|
6614
|
-
return String(phase);
|
|
6615
|
-
}
|
|
6616
|
-
}
|
|
6617
6677
|
var addressCodec5 = getAddressCodec();
|
|
6618
6678
|
function bytesToBase64(bytes) {
|
|
6619
6679
|
let binary = "";
|