@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 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: "set_reserved_fee_recipient",
5668
+ name: "set_reserved_fee_recipients",
5671
5669
  discriminator: [
5672
- 207,
5673
- 189,
5674
- 178,
5675
- 71,
5676
- 167,
5677
- 122,
5678
- 68,
5679
- 180
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
- // isMayhemMode: global.mayhemModeEnabled,
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: false
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
- return global.reservedFeeRecipient;
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": "setReservedFeeRecipient";
3875
+ "name": "setReservedFeeRecipients";
3878
3876
  "discriminator": [
3879
- 207,
3880
- 189,
3881
- 178,
3882
- 71,
3883
- 167,
3884
- 122,
3885
- 68,
3886
- 180
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: "set_reserved_fee_recipient",
9667
+ name: "set_reserved_fee_recipients",
9626
9668
  discriminator: [
9627
- 207,
9628
- 189,
9629
- 178,
9630
- 71,
9631
- 167,
9632
- 122,
9633
- 68,
9634
- 180
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": "setReservedFeeRecipient";
3875
+ "name": "setReservedFeeRecipients";
3878
3876
  "discriminator": [
3879
- 207,
3880
- 189,
3881
- 178,
3882
- 71,
3883
- 167,
3884
- 122,
3885
- 68,
3886
- 180
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: "set_reserved_fee_recipient",
9667
+ name: "set_reserved_fee_recipients",
9626
9668
  discriminator: [
9627
- 207,
9628
- 189,
9629
- 178,
9630
- 71,
9631
- 167,
9632
- 122,
9633
- 68,
9634
- 180
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: "set_reserved_fee_recipient",
5708
+ name: "set_reserved_fee_recipients",
5711
5709
  discriminator: [
5712
- 207,
5713
- 189,
5714
- 178,
5715
- 71,
5716
- 167,
5717
- 122,
5718
- 68,
5719
- 180
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
- // isMayhemMode: global.mayhemModeEnabled,
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: false
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
- return global.reservedFeeRecipient;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pump-fun/pump-sdk",
3
- "version": "1.20.0-devnet.4",
3
+ "version": "1.20.0-devnet.6",
4
4
  "description": "Pump Bonding Curve SDK",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/pump-fun/pump-sdk#readme",
@@ -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
- // isMayhemMode: global.mayhemModeEnabled,
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": "set_reserved_fee_recipient",
3864
+ "name": "set_reserved_fee_recipients",
3867
3865
  "discriminator": [
3868
- 207,
3869
- 189,
3870
- 178,
3871
- 71,
3872
- 167,
3873
- 122,
3874
- 68,
3875
- 180
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": "setReservedFeeRecipient",
3870
+ "name": "setReservedFeeRecipients",
3873
3871
  "discriminator": [
3874
- 207,
3875
- 189,
3876
- 178,
3877
- 71,
3878
- 167,
3879
- 122,
3880
- 68,
3881
- 180
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: false
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?: PublicKey;
375
- mayhemMode?: boolean;
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
- const feeRecipients = [global.feeRecipient, ...global.feeRecipients];
672
- return feeRecipients[Math.floor(Math.random() * feeRecipients.length)];
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
- return global.reservedFeeRecipient
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 {