@pump-fun/pump-sdk 1.20.0-devnet.4 → 1.20.0-devnet.6
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/esm/index.js +75 -26
- package/dist/index.d.mts +122 -32
- package/dist/index.d.ts +122 -32
- package/dist/index.js +75 -26
- package/package.json +1 -1
- package/src/bondingCurve.ts +1 -1
- package/src/fees.ts +4 -2
- package/src/idl/pump.json +60 -16
- package/src/idl/pump.ts +60 -16
- package/src/sdk.ts +12 -8
- package/src/state.ts +2 -0
package/dist/esm/index.js
CHANGED
|
@@ -2431,7 +2431,6 @@ var pump_default = {
|
|
|
2431
2431
|
},
|
|
2432
2432
|
{
|
|
2433
2433
|
name: "global_volume_accumulator",
|
|
2434
|
-
writable: true,
|
|
2435
2434
|
pda: {
|
|
2436
2435
|
seeds: [
|
|
2437
2436
|
{
|
|
@@ -2813,7 +2812,6 @@ var pump_default = {
|
|
|
2813
2812
|
},
|
|
2814
2813
|
{
|
|
2815
2814
|
name: "global_volume_accumulator",
|
|
2816
|
-
writable: true,
|
|
2817
2815
|
pda: {
|
|
2818
2816
|
seeds: [
|
|
2819
2817
|
{
|
|
@@ -5667,16 +5665,16 @@ var pump_default = {
|
|
|
5667
5665
|
]
|
|
5668
5666
|
},
|
|
5669
5667
|
{
|
|
5670
|
-
name: "
|
|
5668
|
+
name: "set_reserved_fee_recipients",
|
|
5671
5669
|
discriminator: [
|
|
5672
|
-
|
|
5673
|
-
|
|
5674
|
-
|
|
5675
|
-
|
|
5676
|
-
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
|
|
5670
|
+
111,
|
|
5671
|
+
172,
|
|
5672
|
+
162,
|
|
5673
|
+
232,
|
|
5674
|
+
114,
|
|
5675
|
+
89,
|
|
5676
|
+
213,
|
|
5677
|
+
142
|
|
5680
5678
|
],
|
|
5681
5679
|
accounts: [
|
|
5682
5680
|
{
|
|
@@ -5700,7 +5698,6 @@ var pump_default = {
|
|
|
5700
5698
|
},
|
|
5701
5699
|
{
|
|
5702
5700
|
name: "authority",
|
|
5703
|
-
writable: true,
|
|
5704
5701
|
signer: true,
|
|
5705
5702
|
relations: [
|
|
5706
5703
|
"global"
|
|
@@ -5740,10 +5737,6 @@ var pump_default = {
|
|
|
5740
5737
|
}
|
|
5741
5738
|
],
|
|
5742
5739
|
args: [
|
|
5743
|
-
{
|
|
5744
|
-
name: "reserved_fee_recipient",
|
|
5745
|
-
type: "pubkey"
|
|
5746
|
-
},
|
|
5747
5740
|
{
|
|
5748
5741
|
name: "whitelist_pda",
|
|
5749
5742
|
type: "pubkey"
|
|
@@ -6327,6 +6320,19 @@ var pump_default = {
|
|
|
6327
6320
|
216
|
|
6328
6321
|
]
|
|
6329
6322
|
},
|
|
6323
|
+
{
|
|
6324
|
+
name: "ReservedFeeRecipientsEvent",
|
|
6325
|
+
discriminator: [
|
|
6326
|
+
43,
|
|
6327
|
+
188,
|
|
6328
|
+
250,
|
|
6329
|
+
18,
|
|
6330
|
+
221,
|
|
6331
|
+
75,
|
|
6332
|
+
187,
|
|
6333
|
+
95
|
|
6334
|
+
]
|
|
6335
|
+
},
|
|
6330
6336
|
{
|
|
6331
6337
|
name: "SetCreatorEvent",
|
|
6332
6338
|
discriminator: [
|
|
@@ -6751,6 +6757,10 @@ var pump_default = {
|
|
|
6751
6757
|
{
|
|
6752
6758
|
name: "creator",
|
|
6753
6759
|
type: "pubkey"
|
|
6760
|
+
},
|
|
6761
|
+
{
|
|
6762
|
+
name: "is_mayhem_mode",
|
|
6763
|
+
type: "bool"
|
|
6754
6764
|
}
|
|
6755
6765
|
]
|
|
6756
6766
|
}
|
|
@@ -7160,6 +7170,15 @@ var pump_default = {
|
|
|
7160
7170
|
{
|
|
7161
7171
|
name: "mayhem_mode_enabled",
|
|
7162
7172
|
type: "bool"
|
|
7173
|
+
},
|
|
7174
|
+
{
|
|
7175
|
+
name: "reserved_fee_recipients",
|
|
7176
|
+
type: {
|
|
7177
|
+
array: [
|
|
7178
|
+
"pubkey",
|
|
7179
|
+
7
|
|
7180
|
+
]
|
|
7181
|
+
}
|
|
7163
7182
|
}
|
|
7164
7183
|
]
|
|
7165
7184
|
}
|
|
@@ -7235,6 +7254,31 @@ var pump_default = {
|
|
|
7235
7254
|
]
|
|
7236
7255
|
}
|
|
7237
7256
|
},
|
|
7257
|
+
{
|
|
7258
|
+
name: "ReservedFeeRecipientsEvent",
|
|
7259
|
+
type: {
|
|
7260
|
+
kind: "struct",
|
|
7261
|
+
fields: [
|
|
7262
|
+
{
|
|
7263
|
+
name: "timestamp",
|
|
7264
|
+
type: "i64"
|
|
7265
|
+
},
|
|
7266
|
+
{
|
|
7267
|
+
name: "reserved_fee_recipient",
|
|
7268
|
+
type: "pubkey"
|
|
7269
|
+
},
|
|
7270
|
+
{
|
|
7271
|
+
name: "reserved_fee_recipients",
|
|
7272
|
+
type: {
|
|
7273
|
+
array: [
|
|
7274
|
+
"pubkey",
|
|
7275
|
+
7
|
|
7276
|
+
]
|
|
7277
|
+
}
|
|
7278
|
+
}
|
|
7279
|
+
]
|
|
7280
|
+
}
|
|
7281
|
+
},
|
|
7238
7282
|
{
|
|
7239
7283
|
name: "SetCreatorEvent",
|
|
7240
7284
|
type: {
|
|
@@ -7549,6 +7593,7 @@ import { PublicKey as PublicKey2 } from "@solana/web3.js";
|
|
|
7549
7593
|
// src/fees.ts
|
|
7550
7594
|
import BN from "bn.js";
|
|
7551
7595
|
import { PublicKey } from "@solana/web3.js";
|
|
7596
|
+
var ONE_BILLION_SUPPLY = new BN(1e15);
|
|
7552
7597
|
function getFee({
|
|
7553
7598
|
global,
|
|
7554
7599
|
feeConfig,
|
|
@@ -7557,11 +7602,11 @@ function getFee({
|
|
|
7557
7602
|
amount,
|
|
7558
7603
|
isNewBondingCurve
|
|
7559
7604
|
}) {
|
|
7560
|
-
const { virtualSolReserves, virtualTokenReserves } = bondingCurve;
|
|
7605
|
+
const { virtualSolReserves, virtualTokenReserves, isMayhemMode } = bondingCurve;
|
|
7561
7606
|
const { protocolFeeBps, creatorFeeBps } = computeFeesBps({
|
|
7562
7607
|
global,
|
|
7563
7608
|
feeConfig,
|
|
7564
|
-
mintSupply,
|
|
7609
|
+
mintSupply: isMayhemMode ? mintSupply : ONE_BILLION_SUPPLY,
|
|
7565
7610
|
virtualSolReserves,
|
|
7566
7611
|
virtualTokenReserves
|
|
7567
7612
|
});
|
|
@@ -7623,8 +7668,8 @@ function newBondingCurve(global) {
|
|
|
7623
7668
|
realSolReserves: new BN2(0),
|
|
7624
7669
|
tokenTotalSupply: global.tokenTotalSupply,
|
|
7625
7670
|
complete: false,
|
|
7626
|
-
creator: PublicKey2.default
|
|
7627
|
-
|
|
7671
|
+
creator: PublicKey2.default,
|
|
7672
|
+
isMayhemMode: global.mayhemModeEnabled
|
|
7628
7673
|
};
|
|
7629
7674
|
}
|
|
7630
7675
|
function getBuySolAmountFromTokenAmountQuote({
|
|
@@ -8304,7 +8349,7 @@ var PumpSdk = class {
|
|
|
8304
8349
|
solAmount,
|
|
8305
8350
|
slippage,
|
|
8306
8351
|
tokenProgram,
|
|
8307
|
-
mayhemMode:
|
|
8352
|
+
mayhemMode: bondingCurve.isMayhemMode
|
|
8308
8353
|
})
|
|
8309
8354
|
);
|
|
8310
8355
|
return instructions;
|
|
@@ -8344,7 +8389,8 @@ var PumpSdk = class {
|
|
|
8344
8389
|
amount,
|
|
8345
8390
|
solAmount,
|
|
8346
8391
|
slippage: 1,
|
|
8347
|
-
tokenProgram: TOKEN_2022_PROGRAM_ID2
|
|
8392
|
+
tokenProgram: TOKEN_2022_PROGRAM_ID2,
|
|
8393
|
+
mayhemMode
|
|
8348
8394
|
})
|
|
8349
8395
|
];
|
|
8350
8396
|
}
|
|
@@ -8383,7 +8429,9 @@ var PumpSdk = class {
|
|
|
8383
8429
|
associatedUser,
|
|
8384
8430
|
amount,
|
|
8385
8431
|
solAmount,
|
|
8386
|
-
slippage: 1
|
|
8432
|
+
slippage: 1,
|
|
8433
|
+
tokenProgram: TOKEN_PROGRAM_ID2,
|
|
8434
|
+
mayhemMode: false
|
|
8387
8435
|
})
|
|
8388
8436
|
];
|
|
8389
8437
|
}
|
|
@@ -8396,7 +8444,7 @@ var PumpSdk = class {
|
|
|
8396
8444
|
amount,
|
|
8397
8445
|
solAmount,
|
|
8398
8446
|
slippage,
|
|
8399
|
-
tokenProgram,
|
|
8447
|
+
tokenProgram = TOKEN_PROGRAM_ID2,
|
|
8400
8448
|
mayhemMode = false
|
|
8401
8449
|
}) {
|
|
8402
8450
|
return await this.getBuyInstructionInternal({
|
|
@@ -8585,10 +8633,11 @@ var PumpSdk = class {
|
|
|
8585
8633
|
var PUMP_SDK = new PumpSdk();
|
|
8586
8634
|
function getFeeRecipient(global, mayhemMode) {
|
|
8587
8635
|
if (!mayhemMode) {
|
|
8588
|
-
const feeRecipients = [global.feeRecipient, ...global.feeRecipients];
|
|
8636
|
+
const feeRecipients = [global.feeRecipient, ...global.feeRecipients, ...global.reservedFeeRecipients];
|
|
8589
8637
|
return feeRecipients[Math.floor(Math.random() * feeRecipients.length)];
|
|
8590
8638
|
} else {
|
|
8591
|
-
|
|
8639
|
+
const feeRecipients = [global.reservedFeeRecipient, ...global.reservedFeeRecipients];
|
|
8640
|
+
return feeRecipients[Math.floor(Math.random() * feeRecipients.length)];
|
|
8592
8641
|
}
|
|
8593
8642
|
}
|
|
8594
8643
|
|
package/dist/index.d.mts
CHANGED
|
@@ -638,7 +638,6 @@ type Pump = {
|
|
|
638
638
|
},
|
|
639
639
|
{
|
|
640
640
|
"name": "globalVolumeAccumulator";
|
|
641
|
-
"writable": true;
|
|
642
641
|
"pda": {
|
|
643
642
|
"seeds": [
|
|
644
643
|
{
|
|
@@ -1020,7 +1019,6 @@ type Pump = {
|
|
|
1020
1019
|
},
|
|
1021
1020
|
{
|
|
1022
1021
|
"name": "globalVolumeAccumulator";
|
|
1023
|
-
"writable": true;
|
|
1024
1022
|
"pda": {
|
|
1025
1023
|
"seeds": [
|
|
1026
1024
|
{
|
|
@@ -3874,16 +3872,16 @@ type Pump = {
|
|
|
3874
3872
|
];
|
|
3875
3873
|
},
|
|
3876
3874
|
{
|
|
3877
|
-
"name": "
|
|
3875
|
+
"name": "setReservedFeeRecipients";
|
|
3878
3876
|
"discriminator": [
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3877
|
+
111,
|
|
3878
|
+
172,
|
|
3879
|
+
162,
|
|
3880
|
+
232,
|
|
3881
|
+
114,
|
|
3882
|
+
89,
|
|
3883
|
+
213,
|
|
3884
|
+
142
|
|
3887
3885
|
];
|
|
3888
3886
|
"accounts": [
|
|
3889
3887
|
{
|
|
@@ -3907,7 +3905,6 @@ type Pump = {
|
|
|
3907
3905
|
},
|
|
3908
3906
|
{
|
|
3909
3907
|
"name": "authority";
|
|
3910
|
-
"writable": true;
|
|
3911
3908
|
"signer": true;
|
|
3912
3909
|
"relations": [
|
|
3913
3910
|
"global"
|
|
@@ -3947,10 +3944,6 @@ type Pump = {
|
|
|
3947
3944
|
}
|
|
3948
3945
|
];
|
|
3949
3946
|
"args": [
|
|
3950
|
-
{
|
|
3951
|
-
"name": "reservedFeeRecipient";
|
|
3952
|
-
"type": "pubkey";
|
|
3953
|
-
},
|
|
3954
3947
|
{
|
|
3955
3948
|
"name": "whitelistPda";
|
|
3956
3949
|
"type": "pubkey";
|
|
@@ -4534,6 +4527,19 @@ type Pump = {
|
|
|
4534
4527
|
216
|
|
4535
4528
|
];
|
|
4536
4529
|
},
|
|
4530
|
+
{
|
|
4531
|
+
"name": "reservedFeeRecipientsEvent";
|
|
4532
|
+
"discriminator": [
|
|
4533
|
+
43,
|
|
4534
|
+
188,
|
|
4535
|
+
250,
|
|
4536
|
+
18,
|
|
4537
|
+
221,
|
|
4538
|
+
75,
|
|
4539
|
+
187,
|
|
4540
|
+
95
|
|
4541
|
+
];
|
|
4542
|
+
},
|
|
4537
4543
|
{
|
|
4538
4544
|
"name": "setCreatorEvent";
|
|
4539
4545
|
"discriminator": [
|
|
@@ -4958,6 +4964,10 @@ type Pump = {
|
|
|
4958
4964
|
{
|
|
4959
4965
|
"name": "creator";
|
|
4960
4966
|
"type": "pubkey";
|
|
4967
|
+
},
|
|
4968
|
+
{
|
|
4969
|
+
"name": "isMayhemMode";
|
|
4970
|
+
"type": "bool";
|
|
4961
4971
|
}
|
|
4962
4972
|
];
|
|
4963
4973
|
};
|
|
@@ -5367,6 +5377,15 @@ type Pump = {
|
|
|
5367
5377
|
{
|
|
5368
5378
|
"name": "mayhemModeEnabled";
|
|
5369
5379
|
"type": "bool";
|
|
5380
|
+
},
|
|
5381
|
+
{
|
|
5382
|
+
"name": "reservedFeeRecipients";
|
|
5383
|
+
"type": {
|
|
5384
|
+
"array": [
|
|
5385
|
+
"pubkey",
|
|
5386
|
+
7
|
|
5387
|
+
];
|
|
5388
|
+
};
|
|
5370
5389
|
}
|
|
5371
5390
|
];
|
|
5372
5391
|
};
|
|
@@ -5442,6 +5461,31 @@ type Pump = {
|
|
|
5442
5461
|
];
|
|
5443
5462
|
};
|
|
5444
5463
|
},
|
|
5464
|
+
{
|
|
5465
|
+
"name": "reservedFeeRecipientsEvent";
|
|
5466
|
+
"type": {
|
|
5467
|
+
"kind": "struct";
|
|
5468
|
+
"fields": [
|
|
5469
|
+
{
|
|
5470
|
+
"name": "timestamp";
|
|
5471
|
+
"type": "i64";
|
|
5472
|
+
},
|
|
5473
|
+
{
|
|
5474
|
+
"name": "reservedFeeRecipient";
|
|
5475
|
+
"type": "pubkey";
|
|
5476
|
+
},
|
|
5477
|
+
{
|
|
5478
|
+
"name": "reservedFeeRecipients";
|
|
5479
|
+
"type": {
|
|
5480
|
+
"array": [
|
|
5481
|
+
"pubkey",
|
|
5482
|
+
7
|
|
5483
|
+
];
|
|
5484
|
+
};
|
|
5485
|
+
}
|
|
5486
|
+
];
|
|
5487
|
+
};
|
|
5488
|
+
},
|
|
5445
5489
|
{
|
|
5446
5490
|
"name": "setCreatorEvent";
|
|
5447
5491
|
"type": {
|
|
@@ -6378,7 +6422,6 @@ var instructions = [
|
|
|
6378
6422
|
},
|
|
6379
6423
|
{
|
|
6380
6424
|
name: "global_volume_accumulator",
|
|
6381
|
-
writable: true,
|
|
6382
6425
|
pda: {
|
|
6383
6426
|
seeds: [
|
|
6384
6427
|
{
|
|
@@ -6760,7 +6803,6 @@ var instructions = [
|
|
|
6760
6803
|
},
|
|
6761
6804
|
{
|
|
6762
6805
|
name: "global_volume_accumulator",
|
|
6763
|
-
writable: true,
|
|
6764
6806
|
pda: {
|
|
6765
6807
|
seeds: [
|
|
6766
6808
|
{
|
|
@@ -9622,16 +9664,16 @@ var instructions = [
|
|
|
9622
9664
|
]
|
|
9623
9665
|
},
|
|
9624
9666
|
{
|
|
9625
|
-
name: "
|
|
9667
|
+
name: "set_reserved_fee_recipients",
|
|
9626
9668
|
discriminator: [
|
|
9627
|
-
|
|
9628
|
-
|
|
9629
|
-
|
|
9630
|
-
|
|
9631
|
-
|
|
9632
|
-
|
|
9633
|
-
|
|
9634
|
-
|
|
9669
|
+
111,
|
|
9670
|
+
172,
|
|
9671
|
+
162,
|
|
9672
|
+
232,
|
|
9673
|
+
114,
|
|
9674
|
+
89,
|
|
9675
|
+
213,
|
|
9676
|
+
142
|
|
9635
9677
|
],
|
|
9636
9678
|
accounts: [
|
|
9637
9679
|
{
|
|
@@ -9655,7 +9697,6 @@ var instructions = [
|
|
|
9655
9697
|
},
|
|
9656
9698
|
{
|
|
9657
9699
|
name: "authority",
|
|
9658
|
-
writable: true,
|
|
9659
9700
|
signer: true,
|
|
9660
9701
|
relations: [
|
|
9661
9702
|
"global"
|
|
@@ -9695,10 +9736,6 @@ var instructions = [
|
|
|
9695
9736
|
}
|
|
9696
9737
|
],
|
|
9697
9738
|
args: [
|
|
9698
|
-
{
|
|
9699
|
-
name: "reserved_fee_recipient",
|
|
9700
|
-
type: "pubkey"
|
|
9701
|
-
},
|
|
9702
9739
|
{
|
|
9703
9740
|
name: "whitelist_pda",
|
|
9704
9741
|
type: "pubkey"
|
|
@@ -10284,6 +10321,19 @@ var events = [
|
|
|
10284
10321
|
216
|
|
10285
10322
|
]
|
|
10286
10323
|
},
|
|
10324
|
+
{
|
|
10325
|
+
name: "ReservedFeeRecipientsEvent",
|
|
10326
|
+
discriminator: [
|
|
10327
|
+
43,
|
|
10328
|
+
188,
|
|
10329
|
+
250,
|
|
10330
|
+
18,
|
|
10331
|
+
221,
|
|
10332
|
+
75,
|
|
10333
|
+
187,
|
|
10334
|
+
95
|
|
10335
|
+
]
|
|
10336
|
+
},
|
|
10287
10337
|
{
|
|
10288
10338
|
name: "SetCreatorEvent",
|
|
10289
10339
|
discriminator: [
|
|
@@ -10708,6 +10758,10 @@ var types = [
|
|
|
10708
10758
|
{
|
|
10709
10759
|
name: "creator",
|
|
10710
10760
|
type: "pubkey"
|
|
10761
|
+
},
|
|
10762
|
+
{
|
|
10763
|
+
name: "is_mayhem_mode",
|
|
10764
|
+
type: "bool"
|
|
10711
10765
|
}
|
|
10712
10766
|
]
|
|
10713
10767
|
}
|
|
@@ -11117,6 +11171,15 @@ var types = [
|
|
|
11117
11171
|
{
|
|
11118
11172
|
name: "mayhem_mode_enabled",
|
|
11119
11173
|
type: "bool"
|
|
11174
|
+
},
|
|
11175
|
+
{
|
|
11176
|
+
name: "reserved_fee_recipients",
|
|
11177
|
+
type: {
|
|
11178
|
+
array: [
|
|
11179
|
+
"pubkey",
|
|
11180
|
+
7
|
|
11181
|
+
]
|
|
11182
|
+
}
|
|
11120
11183
|
}
|
|
11121
11184
|
]
|
|
11122
11185
|
}
|
|
@@ -11192,6 +11255,31 @@ var types = [
|
|
|
11192
11255
|
]
|
|
11193
11256
|
}
|
|
11194
11257
|
},
|
|
11258
|
+
{
|
|
11259
|
+
name: "ReservedFeeRecipientsEvent",
|
|
11260
|
+
type: {
|
|
11261
|
+
kind: "struct",
|
|
11262
|
+
fields: [
|
|
11263
|
+
{
|
|
11264
|
+
name: "timestamp",
|
|
11265
|
+
type: "i64"
|
|
11266
|
+
},
|
|
11267
|
+
{
|
|
11268
|
+
name: "reserved_fee_recipient",
|
|
11269
|
+
type: "pubkey"
|
|
11270
|
+
},
|
|
11271
|
+
{
|
|
11272
|
+
name: "reserved_fee_recipients",
|
|
11273
|
+
type: {
|
|
11274
|
+
array: [
|
|
11275
|
+
"pubkey",
|
|
11276
|
+
7
|
|
11277
|
+
]
|
|
11278
|
+
}
|
|
11279
|
+
}
|
|
11280
|
+
]
|
|
11281
|
+
}
|
|
11282
|
+
},
|
|
11195
11283
|
{
|
|
11196
11284
|
name: "SetCreatorEvent",
|
|
11197
11285
|
type: {
|
|
@@ -11527,6 +11615,7 @@ interface Global {
|
|
|
11527
11615
|
whitelistPda: PublicKey;
|
|
11528
11616
|
reservedFeeRecipient: PublicKey;
|
|
11529
11617
|
mayhemModeEnabled: boolean;
|
|
11618
|
+
reservedFeeRecipients: PublicKey[];
|
|
11530
11619
|
}
|
|
11531
11620
|
interface BondingCurve {
|
|
11532
11621
|
virtualTokenReserves: BN;
|
|
@@ -11536,6 +11625,7 @@ interface BondingCurve {
|
|
|
11536
11625
|
tokenTotalSupply: BN;
|
|
11537
11626
|
complete: boolean;
|
|
11538
11627
|
creator: PublicKey;
|
|
11628
|
+
isMayhemMode: boolean;
|
|
11539
11629
|
}
|
|
11540
11630
|
interface GlobalVolumeAccumulator {
|
|
11541
11631
|
startTime: BN;
|
package/dist/index.d.ts
CHANGED
|
@@ -638,7 +638,6 @@ type Pump = {
|
|
|
638
638
|
},
|
|
639
639
|
{
|
|
640
640
|
"name": "globalVolumeAccumulator";
|
|
641
|
-
"writable": true;
|
|
642
641
|
"pda": {
|
|
643
642
|
"seeds": [
|
|
644
643
|
{
|
|
@@ -1020,7 +1019,6 @@ type Pump = {
|
|
|
1020
1019
|
},
|
|
1021
1020
|
{
|
|
1022
1021
|
"name": "globalVolumeAccumulator";
|
|
1023
|
-
"writable": true;
|
|
1024
1022
|
"pda": {
|
|
1025
1023
|
"seeds": [
|
|
1026
1024
|
{
|
|
@@ -3874,16 +3872,16 @@ type Pump = {
|
|
|
3874
3872
|
];
|
|
3875
3873
|
},
|
|
3876
3874
|
{
|
|
3877
|
-
"name": "
|
|
3875
|
+
"name": "setReservedFeeRecipients";
|
|
3878
3876
|
"discriminator": [
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3877
|
+
111,
|
|
3878
|
+
172,
|
|
3879
|
+
162,
|
|
3880
|
+
232,
|
|
3881
|
+
114,
|
|
3882
|
+
89,
|
|
3883
|
+
213,
|
|
3884
|
+
142
|
|
3887
3885
|
];
|
|
3888
3886
|
"accounts": [
|
|
3889
3887
|
{
|
|
@@ -3907,7 +3905,6 @@ type Pump = {
|
|
|
3907
3905
|
},
|
|
3908
3906
|
{
|
|
3909
3907
|
"name": "authority";
|
|
3910
|
-
"writable": true;
|
|
3911
3908
|
"signer": true;
|
|
3912
3909
|
"relations": [
|
|
3913
3910
|
"global"
|
|
@@ -3947,10 +3944,6 @@ type Pump = {
|
|
|
3947
3944
|
}
|
|
3948
3945
|
];
|
|
3949
3946
|
"args": [
|
|
3950
|
-
{
|
|
3951
|
-
"name": "reservedFeeRecipient";
|
|
3952
|
-
"type": "pubkey";
|
|
3953
|
-
},
|
|
3954
3947
|
{
|
|
3955
3948
|
"name": "whitelistPda";
|
|
3956
3949
|
"type": "pubkey";
|
|
@@ -4534,6 +4527,19 @@ type Pump = {
|
|
|
4534
4527
|
216
|
|
4535
4528
|
];
|
|
4536
4529
|
},
|
|
4530
|
+
{
|
|
4531
|
+
"name": "reservedFeeRecipientsEvent";
|
|
4532
|
+
"discriminator": [
|
|
4533
|
+
43,
|
|
4534
|
+
188,
|
|
4535
|
+
250,
|
|
4536
|
+
18,
|
|
4537
|
+
221,
|
|
4538
|
+
75,
|
|
4539
|
+
187,
|
|
4540
|
+
95
|
|
4541
|
+
];
|
|
4542
|
+
},
|
|
4537
4543
|
{
|
|
4538
4544
|
"name": "setCreatorEvent";
|
|
4539
4545
|
"discriminator": [
|
|
@@ -4958,6 +4964,10 @@ type Pump = {
|
|
|
4958
4964
|
{
|
|
4959
4965
|
"name": "creator";
|
|
4960
4966
|
"type": "pubkey";
|
|
4967
|
+
},
|
|
4968
|
+
{
|
|
4969
|
+
"name": "isMayhemMode";
|
|
4970
|
+
"type": "bool";
|
|
4961
4971
|
}
|
|
4962
4972
|
];
|
|
4963
4973
|
};
|
|
@@ -5367,6 +5377,15 @@ type Pump = {
|
|
|
5367
5377
|
{
|
|
5368
5378
|
"name": "mayhemModeEnabled";
|
|
5369
5379
|
"type": "bool";
|
|
5380
|
+
},
|
|
5381
|
+
{
|
|
5382
|
+
"name": "reservedFeeRecipients";
|
|
5383
|
+
"type": {
|
|
5384
|
+
"array": [
|
|
5385
|
+
"pubkey",
|
|
5386
|
+
7
|
|
5387
|
+
];
|
|
5388
|
+
};
|
|
5370
5389
|
}
|
|
5371
5390
|
];
|
|
5372
5391
|
};
|
|
@@ -5442,6 +5461,31 @@ type Pump = {
|
|
|
5442
5461
|
];
|
|
5443
5462
|
};
|
|
5444
5463
|
},
|
|
5464
|
+
{
|
|
5465
|
+
"name": "reservedFeeRecipientsEvent";
|
|
5466
|
+
"type": {
|
|
5467
|
+
"kind": "struct";
|
|
5468
|
+
"fields": [
|
|
5469
|
+
{
|
|
5470
|
+
"name": "timestamp";
|
|
5471
|
+
"type": "i64";
|
|
5472
|
+
},
|
|
5473
|
+
{
|
|
5474
|
+
"name": "reservedFeeRecipient";
|
|
5475
|
+
"type": "pubkey";
|
|
5476
|
+
},
|
|
5477
|
+
{
|
|
5478
|
+
"name": "reservedFeeRecipients";
|
|
5479
|
+
"type": {
|
|
5480
|
+
"array": [
|
|
5481
|
+
"pubkey",
|
|
5482
|
+
7
|
|
5483
|
+
];
|
|
5484
|
+
};
|
|
5485
|
+
}
|
|
5486
|
+
];
|
|
5487
|
+
};
|
|
5488
|
+
},
|
|
5445
5489
|
{
|
|
5446
5490
|
"name": "setCreatorEvent";
|
|
5447
5491
|
"type": {
|
|
@@ -6378,7 +6422,6 @@ var instructions = [
|
|
|
6378
6422
|
},
|
|
6379
6423
|
{
|
|
6380
6424
|
name: "global_volume_accumulator",
|
|
6381
|
-
writable: true,
|
|
6382
6425
|
pda: {
|
|
6383
6426
|
seeds: [
|
|
6384
6427
|
{
|
|
@@ -6760,7 +6803,6 @@ var instructions = [
|
|
|
6760
6803
|
},
|
|
6761
6804
|
{
|
|
6762
6805
|
name: "global_volume_accumulator",
|
|
6763
|
-
writable: true,
|
|
6764
6806
|
pda: {
|
|
6765
6807
|
seeds: [
|
|
6766
6808
|
{
|
|
@@ -9622,16 +9664,16 @@ var instructions = [
|
|
|
9622
9664
|
]
|
|
9623
9665
|
},
|
|
9624
9666
|
{
|
|
9625
|
-
name: "
|
|
9667
|
+
name: "set_reserved_fee_recipients",
|
|
9626
9668
|
discriminator: [
|
|
9627
|
-
|
|
9628
|
-
|
|
9629
|
-
|
|
9630
|
-
|
|
9631
|
-
|
|
9632
|
-
|
|
9633
|
-
|
|
9634
|
-
|
|
9669
|
+
111,
|
|
9670
|
+
172,
|
|
9671
|
+
162,
|
|
9672
|
+
232,
|
|
9673
|
+
114,
|
|
9674
|
+
89,
|
|
9675
|
+
213,
|
|
9676
|
+
142
|
|
9635
9677
|
],
|
|
9636
9678
|
accounts: [
|
|
9637
9679
|
{
|
|
@@ -9655,7 +9697,6 @@ var instructions = [
|
|
|
9655
9697
|
},
|
|
9656
9698
|
{
|
|
9657
9699
|
name: "authority",
|
|
9658
|
-
writable: true,
|
|
9659
9700
|
signer: true,
|
|
9660
9701
|
relations: [
|
|
9661
9702
|
"global"
|
|
@@ -9695,10 +9736,6 @@ var instructions = [
|
|
|
9695
9736
|
}
|
|
9696
9737
|
],
|
|
9697
9738
|
args: [
|
|
9698
|
-
{
|
|
9699
|
-
name: "reserved_fee_recipient",
|
|
9700
|
-
type: "pubkey"
|
|
9701
|
-
},
|
|
9702
9739
|
{
|
|
9703
9740
|
name: "whitelist_pda",
|
|
9704
9741
|
type: "pubkey"
|
|
@@ -10284,6 +10321,19 @@ var events = [
|
|
|
10284
10321
|
216
|
|
10285
10322
|
]
|
|
10286
10323
|
},
|
|
10324
|
+
{
|
|
10325
|
+
name: "ReservedFeeRecipientsEvent",
|
|
10326
|
+
discriminator: [
|
|
10327
|
+
43,
|
|
10328
|
+
188,
|
|
10329
|
+
250,
|
|
10330
|
+
18,
|
|
10331
|
+
221,
|
|
10332
|
+
75,
|
|
10333
|
+
187,
|
|
10334
|
+
95
|
|
10335
|
+
]
|
|
10336
|
+
},
|
|
10287
10337
|
{
|
|
10288
10338
|
name: "SetCreatorEvent",
|
|
10289
10339
|
discriminator: [
|
|
@@ -10708,6 +10758,10 @@ var types = [
|
|
|
10708
10758
|
{
|
|
10709
10759
|
name: "creator",
|
|
10710
10760
|
type: "pubkey"
|
|
10761
|
+
},
|
|
10762
|
+
{
|
|
10763
|
+
name: "is_mayhem_mode",
|
|
10764
|
+
type: "bool"
|
|
10711
10765
|
}
|
|
10712
10766
|
]
|
|
10713
10767
|
}
|
|
@@ -11117,6 +11171,15 @@ var types = [
|
|
|
11117
11171
|
{
|
|
11118
11172
|
name: "mayhem_mode_enabled",
|
|
11119
11173
|
type: "bool"
|
|
11174
|
+
},
|
|
11175
|
+
{
|
|
11176
|
+
name: "reserved_fee_recipients",
|
|
11177
|
+
type: {
|
|
11178
|
+
array: [
|
|
11179
|
+
"pubkey",
|
|
11180
|
+
7
|
|
11181
|
+
]
|
|
11182
|
+
}
|
|
11120
11183
|
}
|
|
11121
11184
|
]
|
|
11122
11185
|
}
|
|
@@ -11192,6 +11255,31 @@ var types = [
|
|
|
11192
11255
|
]
|
|
11193
11256
|
}
|
|
11194
11257
|
},
|
|
11258
|
+
{
|
|
11259
|
+
name: "ReservedFeeRecipientsEvent",
|
|
11260
|
+
type: {
|
|
11261
|
+
kind: "struct",
|
|
11262
|
+
fields: [
|
|
11263
|
+
{
|
|
11264
|
+
name: "timestamp",
|
|
11265
|
+
type: "i64"
|
|
11266
|
+
},
|
|
11267
|
+
{
|
|
11268
|
+
name: "reserved_fee_recipient",
|
|
11269
|
+
type: "pubkey"
|
|
11270
|
+
},
|
|
11271
|
+
{
|
|
11272
|
+
name: "reserved_fee_recipients",
|
|
11273
|
+
type: {
|
|
11274
|
+
array: [
|
|
11275
|
+
"pubkey",
|
|
11276
|
+
7
|
|
11277
|
+
]
|
|
11278
|
+
}
|
|
11279
|
+
}
|
|
11280
|
+
]
|
|
11281
|
+
}
|
|
11282
|
+
},
|
|
11195
11283
|
{
|
|
11196
11284
|
name: "SetCreatorEvent",
|
|
11197
11285
|
type: {
|
|
@@ -11527,6 +11615,7 @@ interface Global {
|
|
|
11527
11615
|
whitelistPda: PublicKey;
|
|
11528
11616
|
reservedFeeRecipient: PublicKey;
|
|
11529
11617
|
mayhemModeEnabled: boolean;
|
|
11618
|
+
reservedFeeRecipients: PublicKey[];
|
|
11530
11619
|
}
|
|
11531
11620
|
interface BondingCurve {
|
|
11532
11621
|
virtualTokenReserves: BN;
|
|
@@ -11536,6 +11625,7 @@ interface BondingCurve {
|
|
|
11536
11625
|
tokenTotalSupply: BN;
|
|
11537
11626
|
complete: boolean;
|
|
11538
11627
|
creator: PublicKey;
|
|
11628
|
+
isMayhemMode: boolean;
|
|
11539
11629
|
}
|
|
11540
11630
|
interface GlobalVolumeAccumulator {
|
|
11541
11631
|
startTime: BN;
|
package/dist/index.js
CHANGED
|
@@ -2471,7 +2471,6 @@ var pump_default = {
|
|
|
2471
2471
|
},
|
|
2472
2472
|
{
|
|
2473
2473
|
name: "global_volume_accumulator",
|
|
2474
|
-
writable: true,
|
|
2475
2474
|
pda: {
|
|
2476
2475
|
seeds: [
|
|
2477
2476
|
{
|
|
@@ -2853,7 +2852,6 @@ var pump_default = {
|
|
|
2853
2852
|
},
|
|
2854
2853
|
{
|
|
2855
2854
|
name: "global_volume_accumulator",
|
|
2856
|
-
writable: true,
|
|
2857
2855
|
pda: {
|
|
2858
2856
|
seeds: [
|
|
2859
2857
|
{
|
|
@@ -5707,16 +5705,16 @@ var pump_default = {
|
|
|
5707
5705
|
]
|
|
5708
5706
|
},
|
|
5709
5707
|
{
|
|
5710
|
-
name: "
|
|
5708
|
+
name: "set_reserved_fee_recipients",
|
|
5711
5709
|
discriminator: [
|
|
5712
|
-
|
|
5713
|
-
|
|
5714
|
-
|
|
5715
|
-
|
|
5716
|
-
|
|
5717
|
-
|
|
5718
|
-
|
|
5719
|
-
|
|
5710
|
+
111,
|
|
5711
|
+
172,
|
|
5712
|
+
162,
|
|
5713
|
+
232,
|
|
5714
|
+
114,
|
|
5715
|
+
89,
|
|
5716
|
+
213,
|
|
5717
|
+
142
|
|
5720
5718
|
],
|
|
5721
5719
|
accounts: [
|
|
5722
5720
|
{
|
|
@@ -5740,7 +5738,6 @@ var pump_default = {
|
|
|
5740
5738
|
},
|
|
5741
5739
|
{
|
|
5742
5740
|
name: "authority",
|
|
5743
|
-
writable: true,
|
|
5744
5741
|
signer: true,
|
|
5745
5742
|
relations: [
|
|
5746
5743
|
"global"
|
|
@@ -5780,10 +5777,6 @@ var pump_default = {
|
|
|
5780
5777
|
}
|
|
5781
5778
|
],
|
|
5782
5779
|
args: [
|
|
5783
|
-
{
|
|
5784
|
-
name: "reserved_fee_recipient",
|
|
5785
|
-
type: "pubkey"
|
|
5786
|
-
},
|
|
5787
5780
|
{
|
|
5788
5781
|
name: "whitelist_pda",
|
|
5789
5782
|
type: "pubkey"
|
|
@@ -6367,6 +6360,19 @@ var pump_default = {
|
|
|
6367
6360
|
216
|
|
6368
6361
|
]
|
|
6369
6362
|
},
|
|
6363
|
+
{
|
|
6364
|
+
name: "ReservedFeeRecipientsEvent",
|
|
6365
|
+
discriminator: [
|
|
6366
|
+
43,
|
|
6367
|
+
188,
|
|
6368
|
+
250,
|
|
6369
|
+
18,
|
|
6370
|
+
221,
|
|
6371
|
+
75,
|
|
6372
|
+
187,
|
|
6373
|
+
95
|
|
6374
|
+
]
|
|
6375
|
+
},
|
|
6370
6376
|
{
|
|
6371
6377
|
name: "SetCreatorEvent",
|
|
6372
6378
|
discriminator: [
|
|
@@ -6791,6 +6797,10 @@ var pump_default = {
|
|
|
6791
6797
|
{
|
|
6792
6798
|
name: "creator",
|
|
6793
6799
|
type: "pubkey"
|
|
6800
|
+
},
|
|
6801
|
+
{
|
|
6802
|
+
name: "is_mayhem_mode",
|
|
6803
|
+
type: "bool"
|
|
6794
6804
|
}
|
|
6795
6805
|
]
|
|
6796
6806
|
}
|
|
@@ -7200,6 +7210,15 @@ var pump_default = {
|
|
|
7200
7210
|
{
|
|
7201
7211
|
name: "mayhem_mode_enabled",
|
|
7202
7212
|
type: "bool"
|
|
7213
|
+
},
|
|
7214
|
+
{
|
|
7215
|
+
name: "reserved_fee_recipients",
|
|
7216
|
+
type: {
|
|
7217
|
+
array: [
|
|
7218
|
+
"pubkey",
|
|
7219
|
+
7
|
|
7220
|
+
]
|
|
7221
|
+
}
|
|
7203
7222
|
}
|
|
7204
7223
|
]
|
|
7205
7224
|
}
|
|
@@ -7275,6 +7294,31 @@ var pump_default = {
|
|
|
7275
7294
|
]
|
|
7276
7295
|
}
|
|
7277
7296
|
},
|
|
7297
|
+
{
|
|
7298
|
+
name: "ReservedFeeRecipientsEvent",
|
|
7299
|
+
type: {
|
|
7300
|
+
kind: "struct",
|
|
7301
|
+
fields: [
|
|
7302
|
+
{
|
|
7303
|
+
name: "timestamp",
|
|
7304
|
+
type: "i64"
|
|
7305
|
+
},
|
|
7306
|
+
{
|
|
7307
|
+
name: "reserved_fee_recipient",
|
|
7308
|
+
type: "pubkey"
|
|
7309
|
+
},
|
|
7310
|
+
{
|
|
7311
|
+
name: "reserved_fee_recipients",
|
|
7312
|
+
type: {
|
|
7313
|
+
array: [
|
|
7314
|
+
"pubkey",
|
|
7315
|
+
7
|
|
7316
|
+
]
|
|
7317
|
+
}
|
|
7318
|
+
}
|
|
7319
|
+
]
|
|
7320
|
+
}
|
|
7321
|
+
},
|
|
7278
7322
|
{
|
|
7279
7323
|
name: "SetCreatorEvent",
|
|
7280
7324
|
type: {
|
|
@@ -7589,6 +7633,7 @@ var import_web32 = require("@solana/web3.js");
|
|
|
7589
7633
|
// src/fees.ts
|
|
7590
7634
|
var import_bn = __toESM(require("bn.js"));
|
|
7591
7635
|
var import_web3 = require("@solana/web3.js");
|
|
7636
|
+
var ONE_BILLION_SUPPLY = new import_bn.default(1e15);
|
|
7592
7637
|
function getFee({
|
|
7593
7638
|
global,
|
|
7594
7639
|
feeConfig,
|
|
@@ -7597,11 +7642,11 @@ function getFee({
|
|
|
7597
7642
|
amount,
|
|
7598
7643
|
isNewBondingCurve
|
|
7599
7644
|
}) {
|
|
7600
|
-
const { virtualSolReserves, virtualTokenReserves } = bondingCurve;
|
|
7645
|
+
const { virtualSolReserves, virtualTokenReserves, isMayhemMode } = bondingCurve;
|
|
7601
7646
|
const { protocolFeeBps, creatorFeeBps } = computeFeesBps({
|
|
7602
7647
|
global,
|
|
7603
7648
|
feeConfig,
|
|
7604
|
-
mintSupply,
|
|
7649
|
+
mintSupply: isMayhemMode ? mintSupply : ONE_BILLION_SUPPLY,
|
|
7605
7650
|
virtualSolReserves,
|
|
7606
7651
|
virtualTokenReserves
|
|
7607
7652
|
});
|
|
@@ -7663,8 +7708,8 @@ function newBondingCurve(global) {
|
|
|
7663
7708
|
realSolReserves: new import_bn2.default(0),
|
|
7664
7709
|
tokenTotalSupply: global.tokenTotalSupply,
|
|
7665
7710
|
complete: false,
|
|
7666
|
-
creator: import_web32.PublicKey.default
|
|
7667
|
-
|
|
7711
|
+
creator: import_web32.PublicKey.default,
|
|
7712
|
+
isMayhemMode: global.mayhemModeEnabled
|
|
7668
7713
|
};
|
|
7669
7714
|
}
|
|
7670
7715
|
function getBuySolAmountFromTokenAmountQuote({
|
|
@@ -8324,7 +8369,7 @@ var PumpSdk = class {
|
|
|
8324
8369
|
solAmount,
|
|
8325
8370
|
slippage,
|
|
8326
8371
|
tokenProgram,
|
|
8327
|
-
mayhemMode:
|
|
8372
|
+
mayhemMode: bondingCurve.isMayhemMode
|
|
8328
8373
|
})
|
|
8329
8374
|
);
|
|
8330
8375
|
return instructions;
|
|
@@ -8364,7 +8409,8 @@ var PumpSdk = class {
|
|
|
8364
8409
|
amount,
|
|
8365
8410
|
solAmount,
|
|
8366
8411
|
slippage: 1,
|
|
8367
|
-
tokenProgram: import_spl_token2.TOKEN_2022_PROGRAM_ID
|
|
8412
|
+
tokenProgram: import_spl_token2.TOKEN_2022_PROGRAM_ID,
|
|
8413
|
+
mayhemMode
|
|
8368
8414
|
})
|
|
8369
8415
|
];
|
|
8370
8416
|
}
|
|
@@ -8403,7 +8449,9 @@ var PumpSdk = class {
|
|
|
8403
8449
|
associatedUser,
|
|
8404
8450
|
amount,
|
|
8405
8451
|
solAmount,
|
|
8406
|
-
slippage: 1
|
|
8452
|
+
slippage: 1,
|
|
8453
|
+
tokenProgram: import_spl_token2.TOKEN_PROGRAM_ID,
|
|
8454
|
+
mayhemMode: false
|
|
8407
8455
|
})
|
|
8408
8456
|
];
|
|
8409
8457
|
}
|
|
@@ -8416,7 +8464,7 @@ var PumpSdk = class {
|
|
|
8416
8464
|
amount,
|
|
8417
8465
|
solAmount,
|
|
8418
8466
|
slippage,
|
|
8419
|
-
tokenProgram,
|
|
8467
|
+
tokenProgram = import_spl_token2.TOKEN_PROGRAM_ID,
|
|
8420
8468
|
mayhemMode = false
|
|
8421
8469
|
}) {
|
|
8422
8470
|
return await this.getBuyInstructionInternal({
|
|
@@ -8605,10 +8653,11 @@ var PumpSdk = class {
|
|
|
8605
8653
|
var PUMP_SDK = new PumpSdk();
|
|
8606
8654
|
function getFeeRecipient(global, mayhemMode) {
|
|
8607
8655
|
if (!mayhemMode) {
|
|
8608
|
-
const feeRecipients = [global.feeRecipient, ...global.feeRecipients];
|
|
8656
|
+
const feeRecipients = [global.feeRecipient, ...global.feeRecipients, ...global.reservedFeeRecipients];
|
|
8609
8657
|
return feeRecipients[Math.floor(Math.random() * feeRecipients.length)];
|
|
8610
8658
|
} else {
|
|
8611
|
-
|
|
8659
|
+
const feeRecipients = [global.reservedFeeRecipient, ...global.reservedFeeRecipients];
|
|
8660
|
+
return feeRecipients[Math.floor(Math.random() * feeRecipients.length)];
|
|
8612
8661
|
}
|
|
8613
8662
|
}
|
|
8614
8663
|
|
package/package.json
CHANGED
package/src/bondingCurve.ts
CHANGED
|
@@ -12,7 +12,7 @@ export function newBondingCurve(global: Global): BondingCurve {
|
|
|
12
12
|
tokenTotalSupply: global.tokenTotalSupply,
|
|
13
13
|
complete: false,
|
|
14
14
|
creator: PublicKey.default,
|
|
15
|
-
|
|
15
|
+
isMayhemMode: global.mayhemModeEnabled,
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
|
package/src/fees.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { PublicKey } from "@solana/web3.js";
|
|
|
3
3
|
import { FeeConfig, Global, Fees, BondingCurve, FeeTier } from "./state";
|
|
4
4
|
import { bondingCurveMarketCap } from "./bondingCurve";
|
|
5
5
|
|
|
6
|
+
export const ONE_BILLION_SUPPLY = new BN(1_000_000_000_000000);
|
|
7
|
+
|
|
6
8
|
export interface CalculatedFeesBps {
|
|
7
9
|
protocolFeeBps: BN;
|
|
8
10
|
creatorFeeBps: BN;
|
|
@@ -23,11 +25,11 @@ export function getFee({
|
|
|
23
25
|
amount: BN;
|
|
24
26
|
isNewBondingCurve: boolean;
|
|
25
27
|
}) {
|
|
26
|
-
const { virtualSolReserves, virtualTokenReserves } = bondingCurve;
|
|
28
|
+
const { virtualSolReserves, virtualTokenReserves, isMayhemMode } = bondingCurve;
|
|
27
29
|
const { protocolFeeBps, creatorFeeBps } = computeFeesBps({
|
|
28
30
|
global,
|
|
29
31
|
feeConfig,
|
|
30
|
-
mintSupply,
|
|
32
|
+
mintSupply: isMayhemMode ? mintSupply : ONE_BILLION_SUPPLY,
|
|
31
33
|
virtualSolReserves,
|
|
32
34
|
virtualTokenReserves,
|
|
33
35
|
});
|
package/src/idl/pump.json
CHANGED
|
@@ -627,7 +627,6 @@
|
|
|
627
627
|
},
|
|
628
628
|
{
|
|
629
629
|
"name": "global_volume_accumulator",
|
|
630
|
-
"writable": true,
|
|
631
630
|
"pda": {
|
|
632
631
|
"seeds": [
|
|
633
632
|
{
|
|
@@ -1009,7 +1008,6 @@
|
|
|
1009
1008
|
},
|
|
1010
1009
|
{
|
|
1011
1010
|
"name": "global_volume_accumulator",
|
|
1012
|
-
"writable": true,
|
|
1013
1011
|
"pda": {
|
|
1014
1012
|
"seeds": [
|
|
1015
1013
|
{
|
|
@@ -3863,16 +3861,16 @@
|
|
|
3863
3861
|
]
|
|
3864
3862
|
},
|
|
3865
3863
|
{
|
|
3866
|
-
"name": "
|
|
3864
|
+
"name": "set_reserved_fee_recipients",
|
|
3867
3865
|
"discriminator": [
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3866
|
+
111,
|
|
3867
|
+
172,
|
|
3868
|
+
162,
|
|
3869
|
+
232,
|
|
3870
|
+
114,
|
|
3871
|
+
89,
|
|
3872
|
+
213,
|
|
3873
|
+
142
|
|
3876
3874
|
],
|
|
3877
3875
|
"accounts": [
|
|
3878
3876
|
{
|
|
@@ -3896,7 +3894,6 @@
|
|
|
3896
3894
|
},
|
|
3897
3895
|
{
|
|
3898
3896
|
"name": "authority",
|
|
3899
|
-
"writable": true,
|
|
3900
3897
|
"signer": true,
|
|
3901
3898
|
"relations": [
|
|
3902
3899
|
"global"
|
|
@@ -3936,10 +3933,6 @@
|
|
|
3936
3933
|
}
|
|
3937
3934
|
],
|
|
3938
3935
|
"args": [
|
|
3939
|
-
{
|
|
3940
|
-
"name": "reserved_fee_recipient",
|
|
3941
|
-
"type": "pubkey"
|
|
3942
|
-
},
|
|
3943
3936
|
{
|
|
3944
3937
|
"name": "whitelist_pda",
|
|
3945
3938
|
"type": "pubkey"
|
|
@@ -4523,6 +4516,19 @@
|
|
|
4523
4516
|
216
|
|
4524
4517
|
]
|
|
4525
4518
|
},
|
|
4519
|
+
{
|
|
4520
|
+
"name": "ReservedFeeRecipientsEvent",
|
|
4521
|
+
"discriminator": [
|
|
4522
|
+
43,
|
|
4523
|
+
188,
|
|
4524
|
+
250,
|
|
4525
|
+
18,
|
|
4526
|
+
221,
|
|
4527
|
+
75,
|
|
4528
|
+
187,
|
|
4529
|
+
95
|
|
4530
|
+
]
|
|
4531
|
+
},
|
|
4526
4532
|
{
|
|
4527
4533
|
"name": "SetCreatorEvent",
|
|
4528
4534
|
"discriminator": [
|
|
@@ -4947,6 +4953,10 @@
|
|
|
4947
4953
|
{
|
|
4948
4954
|
"name": "creator",
|
|
4949
4955
|
"type": "pubkey"
|
|
4956
|
+
},
|
|
4957
|
+
{
|
|
4958
|
+
"name": "is_mayhem_mode",
|
|
4959
|
+
"type": "bool"
|
|
4950
4960
|
}
|
|
4951
4961
|
]
|
|
4952
4962
|
}
|
|
@@ -5356,6 +5366,15 @@
|
|
|
5356
5366
|
{
|
|
5357
5367
|
"name": "mayhem_mode_enabled",
|
|
5358
5368
|
"type": "bool"
|
|
5369
|
+
},
|
|
5370
|
+
{
|
|
5371
|
+
"name": "reserved_fee_recipients",
|
|
5372
|
+
"type": {
|
|
5373
|
+
"array": [
|
|
5374
|
+
"pubkey",
|
|
5375
|
+
7
|
|
5376
|
+
]
|
|
5377
|
+
}
|
|
5359
5378
|
}
|
|
5360
5379
|
]
|
|
5361
5380
|
}
|
|
@@ -5431,6 +5450,31 @@
|
|
|
5431
5450
|
]
|
|
5432
5451
|
}
|
|
5433
5452
|
},
|
|
5453
|
+
{
|
|
5454
|
+
"name": "ReservedFeeRecipientsEvent",
|
|
5455
|
+
"type": {
|
|
5456
|
+
"kind": "struct",
|
|
5457
|
+
"fields": [
|
|
5458
|
+
{
|
|
5459
|
+
"name": "timestamp",
|
|
5460
|
+
"type": "i64"
|
|
5461
|
+
},
|
|
5462
|
+
{
|
|
5463
|
+
"name": "reserved_fee_recipient",
|
|
5464
|
+
"type": "pubkey"
|
|
5465
|
+
},
|
|
5466
|
+
{
|
|
5467
|
+
"name": "reserved_fee_recipients",
|
|
5468
|
+
"type": {
|
|
5469
|
+
"array": [
|
|
5470
|
+
"pubkey",
|
|
5471
|
+
7
|
|
5472
|
+
]
|
|
5473
|
+
}
|
|
5474
|
+
}
|
|
5475
|
+
]
|
|
5476
|
+
}
|
|
5477
|
+
},
|
|
5434
5478
|
{
|
|
5435
5479
|
"name": "SetCreatorEvent",
|
|
5436
5480
|
"type": {
|
package/src/idl/pump.ts
CHANGED
|
@@ -633,7 +633,6 @@ export type Pump = {
|
|
|
633
633
|
},
|
|
634
634
|
{
|
|
635
635
|
"name": "globalVolumeAccumulator",
|
|
636
|
-
"writable": true,
|
|
637
636
|
"pda": {
|
|
638
637
|
"seeds": [
|
|
639
638
|
{
|
|
@@ -1015,7 +1014,6 @@ export type Pump = {
|
|
|
1015
1014
|
},
|
|
1016
1015
|
{
|
|
1017
1016
|
"name": "globalVolumeAccumulator",
|
|
1018
|
-
"writable": true,
|
|
1019
1017
|
"pda": {
|
|
1020
1018
|
"seeds": [
|
|
1021
1019
|
{
|
|
@@ -3869,16 +3867,16 @@ export type Pump = {
|
|
|
3869
3867
|
]
|
|
3870
3868
|
},
|
|
3871
3869
|
{
|
|
3872
|
-
"name": "
|
|
3870
|
+
"name": "setReservedFeeRecipients",
|
|
3873
3871
|
"discriminator": [
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3872
|
+
111,
|
|
3873
|
+
172,
|
|
3874
|
+
162,
|
|
3875
|
+
232,
|
|
3876
|
+
114,
|
|
3877
|
+
89,
|
|
3878
|
+
213,
|
|
3879
|
+
142
|
|
3882
3880
|
],
|
|
3883
3881
|
"accounts": [
|
|
3884
3882
|
{
|
|
@@ -3902,7 +3900,6 @@ export type Pump = {
|
|
|
3902
3900
|
},
|
|
3903
3901
|
{
|
|
3904
3902
|
"name": "authority",
|
|
3905
|
-
"writable": true,
|
|
3906
3903
|
"signer": true,
|
|
3907
3904
|
"relations": [
|
|
3908
3905
|
"global"
|
|
@@ -3942,10 +3939,6 @@ export type Pump = {
|
|
|
3942
3939
|
}
|
|
3943
3940
|
],
|
|
3944
3941
|
"args": [
|
|
3945
|
-
{
|
|
3946
|
-
"name": "reservedFeeRecipient",
|
|
3947
|
-
"type": "pubkey"
|
|
3948
|
-
},
|
|
3949
3942
|
{
|
|
3950
3943
|
"name": "whitelistPda",
|
|
3951
3944
|
"type": "pubkey"
|
|
@@ -4529,6 +4522,19 @@ export type Pump = {
|
|
|
4529
4522
|
216
|
|
4530
4523
|
]
|
|
4531
4524
|
},
|
|
4525
|
+
{
|
|
4526
|
+
"name": "reservedFeeRecipientsEvent",
|
|
4527
|
+
"discriminator": [
|
|
4528
|
+
43,
|
|
4529
|
+
188,
|
|
4530
|
+
250,
|
|
4531
|
+
18,
|
|
4532
|
+
221,
|
|
4533
|
+
75,
|
|
4534
|
+
187,
|
|
4535
|
+
95
|
|
4536
|
+
]
|
|
4537
|
+
},
|
|
4532
4538
|
{
|
|
4533
4539
|
"name": "setCreatorEvent",
|
|
4534
4540
|
"discriminator": [
|
|
@@ -4953,6 +4959,10 @@ export type Pump = {
|
|
|
4953
4959
|
{
|
|
4954
4960
|
"name": "creator",
|
|
4955
4961
|
"type": "pubkey"
|
|
4962
|
+
},
|
|
4963
|
+
{
|
|
4964
|
+
"name": "isMayhemMode",
|
|
4965
|
+
"type": "bool"
|
|
4956
4966
|
}
|
|
4957
4967
|
]
|
|
4958
4968
|
}
|
|
@@ -5362,6 +5372,15 @@ export type Pump = {
|
|
|
5362
5372
|
{
|
|
5363
5373
|
"name": "mayhemModeEnabled",
|
|
5364
5374
|
"type": "bool"
|
|
5375
|
+
},
|
|
5376
|
+
{
|
|
5377
|
+
"name": "reservedFeeRecipients",
|
|
5378
|
+
"type": {
|
|
5379
|
+
"array": [
|
|
5380
|
+
"pubkey",
|
|
5381
|
+
7
|
|
5382
|
+
]
|
|
5383
|
+
}
|
|
5365
5384
|
}
|
|
5366
5385
|
]
|
|
5367
5386
|
}
|
|
@@ -5437,6 +5456,31 @@ export type Pump = {
|
|
|
5437
5456
|
]
|
|
5438
5457
|
}
|
|
5439
5458
|
},
|
|
5459
|
+
{
|
|
5460
|
+
"name": "reservedFeeRecipientsEvent",
|
|
5461
|
+
"type": {
|
|
5462
|
+
"kind": "struct",
|
|
5463
|
+
"fields": [
|
|
5464
|
+
{
|
|
5465
|
+
"name": "timestamp",
|
|
5466
|
+
"type": "i64"
|
|
5467
|
+
},
|
|
5468
|
+
{
|
|
5469
|
+
"name": "reservedFeeRecipient",
|
|
5470
|
+
"type": "pubkey"
|
|
5471
|
+
},
|
|
5472
|
+
{
|
|
5473
|
+
"name": "reservedFeeRecipients",
|
|
5474
|
+
"type": {
|
|
5475
|
+
"array": [
|
|
5476
|
+
"pubkey",
|
|
5477
|
+
7
|
|
5478
|
+
]
|
|
5479
|
+
}
|
|
5480
|
+
}
|
|
5481
|
+
]
|
|
5482
|
+
}
|
|
5483
|
+
},
|
|
5440
5484
|
{
|
|
5441
5485
|
"name": "setCreatorEvent",
|
|
5442
5486
|
"type": {
|
package/src/sdk.ts
CHANGED
|
@@ -243,7 +243,7 @@ export class PumpSdk {
|
|
|
243
243
|
solAmount,
|
|
244
244
|
slippage,
|
|
245
245
|
tokenProgram,
|
|
246
|
-
mayhemMode:
|
|
246
|
+
mayhemMode: bondingCurve.isMayhemMode,
|
|
247
247
|
}),
|
|
248
248
|
);
|
|
249
249
|
|
|
@@ -297,6 +297,7 @@ export class PumpSdk {
|
|
|
297
297
|
solAmount,
|
|
298
298
|
slippage: 1,
|
|
299
299
|
tokenProgram: TOKEN_2022_PROGRAM_ID,
|
|
300
|
+
mayhemMode,
|
|
300
301
|
}),
|
|
301
302
|
];
|
|
302
303
|
}
|
|
@@ -347,6 +348,8 @@ export class PumpSdk {
|
|
|
347
348
|
amount,
|
|
348
349
|
solAmount,
|
|
349
350
|
slippage: 1,
|
|
351
|
+
tokenProgram: TOKEN_PROGRAM_ID,
|
|
352
|
+
mayhemMode: false,
|
|
350
353
|
}),
|
|
351
354
|
];
|
|
352
355
|
}
|
|
@@ -360,7 +363,7 @@ export class PumpSdk {
|
|
|
360
363
|
amount,
|
|
361
364
|
solAmount,
|
|
362
365
|
slippage,
|
|
363
|
-
tokenProgram,
|
|
366
|
+
tokenProgram = TOKEN_PROGRAM_ID,
|
|
364
367
|
mayhemMode = false,
|
|
365
368
|
}: {
|
|
366
369
|
global: Global;
|
|
@@ -371,8 +374,8 @@ export class PumpSdk {
|
|
|
371
374
|
amount: BN;
|
|
372
375
|
solAmount: BN;
|
|
373
376
|
slippage: number;
|
|
374
|
-
tokenProgram
|
|
375
|
-
mayhemMode
|
|
377
|
+
tokenProgram: PublicKey;
|
|
378
|
+
mayhemMode: boolean;
|
|
376
379
|
}) {
|
|
377
380
|
return await this.getBuyInstructionInternal({
|
|
378
381
|
user,
|
|
@@ -667,11 +670,12 @@ export class PumpSdk {
|
|
|
667
670
|
export const PUMP_SDK = new PumpSdk();
|
|
668
671
|
|
|
669
672
|
export function getFeeRecipient(global: Global, mayhemMode: boolean): PublicKey {
|
|
670
|
-
if (!mayhemMode){
|
|
671
|
-
|
|
672
|
-
|
|
673
|
+
if (!mayhemMode) {
|
|
674
|
+
const feeRecipients = [global.feeRecipient, ...global.feeRecipients, ...global.reservedFeeRecipients];
|
|
675
|
+
return feeRecipients[Math.floor(Math.random() * feeRecipients.length)];
|
|
673
676
|
}
|
|
674
677
|
else {
|
|
675
|
-
|
|
678
|
+
const feeRecipients = [global.reservedFeeRecipient, ...global.reservedFeeRecipients];
|
|
679
|
+
return feeRecipients[Math.floor(Math.random() * feeRecipients.length)];
|
|
676
680
|
}
|
|
677
681
|
}
|
package/src/state.ts
CHANGED
|
@@ -23,6 +23,7 @@ export interface Global {
|
|
|
23
23
|
whitelistPda: PublicKey;
|
|
24
24
|
reservedFeeRecipient: PublicKey;
|
|
25
25
|
mayhemModeEnabled: boolean;
|
|
26
|
+
reservedFeeRecipients: PublicKey[];
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
export interface BondingCurve {
|
|
@@ -33,6 +34,7 @@ export interface BondingCurve {
|
|
|
33
34
|
tokenTotalSupply: BN;
|
|
34
35
|
complete: boolean;
|
|
35
36
|
creator: PublicKey;
|
|
37
|
+
isMayhemMode: boolean;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
export interface GlobalVolumeAccumulator {
|