Skip to content

Commit a8d0bc0

Browse files
authored
Patch the instruction discriminant to be 4 bytes (#5)
1 parent a7207b4 commit a8d0bc0

File tree

19 files changed

+71
-65
lines changed

19 files changed

+71
-65
lines changed

clients/js/src/generated/instructions/close.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import {
1010
combineCodec,
1111
getStructDecoder,
1212
getStructEncoder,
13-
getU8Decoder,
14-
getU8Encoder,
13+
getU32Decoder,
14+
getU32Encoder,
1515
transformEncoder,
1616
type Address,
1717
type Codec,
@@ -33,7 +33,7 @@ import { getAccountMetaFactory, type ResolvedAccount } from '../shared';
3333
export const CLOSE_DISCRIMINATOR = 5;
3434

3535
export function getCloseDiscriminatorBytes() {
36-
return getU8Encoder().encode(CLOSE_DISCRIMINATOR);
36+
return getU32Encoder().encode(CLOSE_DISCRIMINATOR);
3737
}
3838

3939
export type CloseInstruction<
@@ -72,13 +72,13 @@ export type CloseInstructionDataArgs = {};
7272

7373
export function getCloseInstructionDataEncoder(): Encoder<CloseInstructionDataArgs> {
7474
return transformEncoder(
75-
getStructEncoder([['discriminator', getU8Encoder()]]),
75+
getStructEncoder([['discriminator', getU32Encoder()]]),
7676
(value) => ({ ...value, discriminator: CLOSE_DISCRIMINATOR })
7777
);
7878
}
7979

8080
export function getCloseInstructionDataDecoder(): Decoder<CloseInstructionData> {
81-
return getStructDecoder([['discriminator', getU8Decoder()]]);
81+
return getStructDecoder([['discriminator', getU32Decoder()]]);
8282
}
8383

8484
export function getCloseInstructionDataCodec(): Codec<

clients/js/src/generated/instructions/deployWithMaxDataLen.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ import {
1010
combineCodec,
1111
getStructDecoder,
1212
getStructEncoder,
13+
getU32Decoder,
14+
getU32Encoder,
1315
getU64Decoder,
1416
getU64Encoder,
15-
getU8Decoder,
16-
getU8Encoder,
1717
transformEncoder,
1818
type Address,
1919
type Codec,
@@ -36,7 +36,7 @@ import { getAccountMetaFactory, type ResolvedAccount } from '../shared';
3636
export const DEPLOY_WITH_MAX_DATA_LEN_DISCRIMINATOR = 2;
3737

3838
export function getDeployWithMaxDataLenDiscriminatorBytes() {
39-
return getU8Encoder().encode(DEPLOY_WITH_MAX_DATA_LEN_DISCRIMINATOR);
39+
return getU32Encoder().encode(DEPLOY_WITH_MAX_DATA_LEN_DISCRIMINATOR);
4040
}
4141

4242
export type DeployWithMaxDataLenInstruction<
@@ -102,7 +102,7 @@ export type DeployWithMaxDataLenInstructionDataArgs = {
102102
export function getDeployWithMaxDataLenInstructionDataEncoder(): Encoder<DeployWithMaxDataLenInstructionDataArgs> {
103103
return transformEncoder(
104104
getStructEncoder([
105-
['discriminator', getU8Encoder()],
105+
['discriminator', getU32Encoder()],
106106
['maxDataLen', getU64Encoder()],
107107
]),
108108
(value) => ({
@@ -114,7 +114,7 @@ export function getDeployWithMaxDataLenInstructionDataEncoder(): Encoder<DeployW
114114

115115
export function getDeployWithMaxDataLenInstructionDataDecoder(): Decoder<DeployWithMaxDataLenInstructionData> {
116116
return getStructDecoder([
117-
['discriminator', getU8Decoder()],
117+
['discriminator', getU32Decoder()],
118118
['maxDataLen', getU64Decoder()],
119119
]);
120120
}

clients/js/src/generated/instructions/extendProgram.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import {
1212
getStructEncoder,
1313
getU32Decoder,
1414
getU32Encoder,
15-
getU8Decoder,
16-
getU8Encoder,
1715
transformEncoder,
1816
type Address,
1917
type Codec,
@@ -35,7 +33,7 @@ import { getAccountMetaFactory, type ResolvedAccount } from '../shared';
3533
export const EXTEND_PROGRAM_DISCRIMINATOR = 6;
3634

3735
export function getExtendProgramDiscriminatorBytes() {
38-
return getU8Encoder().encode(EXTEND_PROGRAM_DISCRIMINATOR);
36+
return getU32Encoder().encode(EXTEND_PROGRAM_DISCRIMINATOR);
3937
}
4038

4139
export type ExtendProgramInstruction<
@@ -76,7 +74,7 @@ export type ExtendProgramInstructionDataArgs = { additionalBytes: number };
7674
export function getExtendProgramInstructionDataEncoder(): Encoder<ExtendProgramInstructionDataArgs> {
7775
return transformEncoder(
7876
getStructEncoder([
79-
['discriminator', getU8Encoder()],
77+
['discriminator', getU32Encoder()],
8078
['additionalBytes', getU32Encoder()],
8179
]),
8280
(value) => ({ ...value, discriminator: EXTEND_PROGRAM_DISCRIMINATOR })
@@ -85,7 +83,7 @@ export function getExtendProgramInstructionDataEncoder(): Encoder<ExtendProgramI
8583

8684
export function getExtendProgramInstructionDataDecoder(): Decoder<ExtendProgramInstructionData> {
8785
return getStructDecoder([
88-
['discriminator', getU8Decoder()],
86+
['discriminator', getU32Decoder()],
8987
['additionalBytes', getU32Decoder()],
9088
]);
9189
}

clients/js/src/generated/instructions/initializeBuffer.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import {
1010
combineCodec,
1111
getStructDecoder,
1212
getStructEncoder,
13-
getU8Decoder,
14-
getU8Encoder,
13+
getU32Decoder,
14+
getU32Encoder,
1515
transformEncoder,
1616
type Address,
1717
type Codec,
@@ -30,7 +30,7 @@ import { getAccountMetaFactory, type ResolvedAccount } from '../shared';
3030
export const INITIALIZE_BUFFER_DISCRIMINATOR = 0;
3131

3232
export function getInitializeBufferDiscriminatorBytes() {
33-
return getU8Encoder().encode(INITIALIZE_BUFFER_DISCRIMINATOR);
33+
return getU32Encoder().encode(INITIALIZE_BUFFER_DISCRIMINATOR);
3434
}
3535

3636
export type InitializeBufferInstruction<
@@ -58,13 +58,13 @@ export type InitializeBufferInstructionDataArgs = {};
5858

5959
export function getInitializeBufferInstructionDataEncoder(): Encoder<InitializeBufferInstructionDataArgs> {
6060
return transformEncoder(
61-
getStructEncoder([['discriminator', getU8Encoder()]]),
61+
getStructEncoder([['discriminator', getU32Encoder()]]),
6262
(value) => ({ ...value, discriminator: INITIALIZE_BUFFER_DISCRIMINATOR })
6363
);
6464
}
6565

6666
export function getInitializeBufferInstructionDataDecoder(): Decoder<InitializeBufferInstructionData> {
67-
return getStructDecoder([['discriminator', getU8Decoder()]]);
67+
return getStructDecoder([['discriminator', getU32Decoder()]]);
6868
}
6969

7070
export function getInitializeBufferInstructionDataCodec(): Codec<

clients/js/src/generated/instructions/setAuthority.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import {
1010
combineCodec,
1111
getStructDecoder,
1212
getStructEncoder,
13-
getU8Decoder,
14-
getU8Encoder,
13+
getU32Decoder,
14+
getU32Encoder,
1515
transformEncoder,
1616
type Address,
1717
type Codec,
@@ -33,7 +33,7 @@ import { getAccountMetaFactory, type ResolvedAccount } from '../shared';
3333
export const SET_AUTHORITY_DISCRIMINATOR = 4;
3434

3535
export function getSetAuthorityDiscriminatorBytes() {
36-
return getU8Encoder().encode(SET_AUTHORITY_DISCRIMINATOR);
36+
return getU32Encoder().encode(SET_AUTHORITY_DISCRIMINATOR);
3737
}
3838

3939
export type SetAuthorityInstruction<
@@ -68,13 +68,13 @@ export type SetAuthorityInstructionDataArgs = {};
6868

6969
export function getSetAuthorityInstructionDataEncoder(): Encoder<SetAuthorityInstructionDataArgs> {
7070
return transformEncoder(
71-
getStructEncoder([['discriminator', getU8Encoder()]]),
71+
getStructEncoder([['discriminator', getU32Encoder()]]),
7272
(value) => ({ ...value, discriminator: SET_AUTHORITY_DISCRIMINATOR })
7373
);
7474
}
7575

7676
export function getSetAuthorityInstructionDataDecoder(): Decoder<SetAuthorityInstructionData> {
77-
return getStructDecoder([['discriminator', getU8Decoder()]]);
77+
return getStructDecoder([['discriminator', getU32Decoder()]]);
7878
}
7979

8080
export function getSetAuthorityInstructionDataCodec(): Codec<

clients/js/src/generated/instructions/setAuthorityChecked.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import {
1010
combineCodec,
1111
getStructDecoder,
1212
getStructEncoder,
13-
getU8Decoder,
14-
getU8Encoder,
13+
getU32Decoder,
14+
getU32Encoder,
1515
transformEncoder,
1616
type Address,
1717
type Codec,
@@ -32,7 +32,7 @@ import { getAccountMetaFactory, type ResolvedAccount } from '../shared';
3232
export const SET_AUTHORITY_CHECKED_DISCRIMINATOR = 7;
3333

3434
export function getSetAuthorityCheckedDiscriminatorBytes() {
35-
return getU8Encoder().encode(SET_AUTHORITY_CHECKED_DISCRIMINATOR);
35+
return getU32Encoder().encode(SET_AUTHORITY_CHECKED_DISCRIMINATOR);
3636
}
3737

3838
export type SetAuthorityCheckedInstruction<
@@ -68,7 +68,7 @@ export type SetAuthorityCheckedInstructionDataArgs = {};
6868

6969
export function getSetAuthorityCheckedInstructionDataEncoder(): Encoder<SetAuthorityCheckedInstructionDataArgs> {
7070
return transformEncoder(
71-
getStructEncoder([['discriminator', getU8Encoder()]]),
71+
getStructEncoder([['discriminator', getU32Encoder()]]),
7272
(value) => ({
7373
...value,
7474
discriminator: SET_AUTHORITY_CHECKED_DISCRIMINATOR,
@@ -77,7 +77,7 @@ export function getSetAuthorityCheckedInstructionDataEncoder(): Encoder<SetAutho
7777
}
7878

7979
export function getSetAuthorityCheckedInstructionDataDecoder(): Decoder<SetAuthorityCheckedInstructionData> {
80-
return getStructDecoder([['discriminator', getU8Decoder()]]);
80+
return getStructDecoder([['discriminator', getU32Decoder()]]);
8181
}
8282

8383
export function getSetAuthorityCheckedInstructionDataCodec(): Codec<

clients/js/src/generated/instructions/upgrade.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import {
1010
combineCodec,
1111
getStructDecoder,
1212
getStructEncoder,
13-
getU8Decoder,
14-
getU8Encoder,
13+
getU32Decoder,
14+
getU32Encoder,
1515
transformEncoder,
1616
type Address,
1717
type Codec,
@@ -33,7 +33,7 @@ import { getAccountMetaFactory, type ResolvedAccount } from '../shared';
3333
export const UPGRADE_DISCRIMINATOR = 3;
3434

3535
export function getUpgradeDiscriminatorBytes() {
36-
return getU8Encoder().encode(UPGRADE_DISCRIMINATOR);
36+
return getU32Encoder().encode(UPGRADE_DISCRIMINATOR);
3737
}
3838

3939
export type UpgradeInstruction<
@@ -86,13 +86,13 @@ export type UpgradeInstructionDataArgs = {};
8686

8787
export function getUpgradeInstructionDataEncoder(): Encoder<UpgradeInstructionDataArgs> {
8888
return transformEncoder(
89-
getStructEncoder([['discriminator', getU8Encoder()]]),
89+
getStructEncoder([['discriminator', getU32Encoder()]]),
9090
(value) => ({ ...value, discriminator: UPGRADE_DISCRIMINATOR })
9191
);
9292
}
9393

9494
export function getUpgradeInstructionDataDecoder(): Decoder<UpgradeInstructionData> {
95-
return getStructDecoder([['discriminator', getU8Decoder()]]);
95+
return getStructDecoder([['discriminator', getU32Decoder()]]);
9696
}
9797

9898
export function getUpgradeInstructionDataCodec(): Codec<

clients/js/src/generated/instructions/write.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ import {
1616
getStructEncoder,
1717
getU32Decoder,
1818
getU32Encoder,
19-
getU8Decoder,
20-
getU8Encoder,
2119
transformEncoder,
2220
type Address,
2321
type Codec,
@@ -39,7 +37,7 @@ import { getAccountMetaFactory, type ResolvedAccount } from '../shared';
3937
export const WRITE_DISCRIMINATOR = 1;
4038

4139
export function getWriteDiscriminatorBytes() {
42-
return getU8Encoder().encode(WRITE_DISCRIMINATOR);
40+
return getU32Encoder().encode(WRITE_DISCRIMINATOR);
4341
}
4442

4543
export type WriteInstruction<
@@ -76,7 +74,7 @@ export type WriteInstructionDataArgs = {
7674
export function getWriteInstructionDataEncoder(): Encoder<WriteInstructionDataArgs> {
7775
return transformEncoder(
7876
getStructEncoder([
79-
['discriminator', getU8Encoder()],
77+
['discriminator', getU32Encoder()],
8078
['offset', getU32Encoder()],
8179
['bytes', addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())],
8280
]),
@@ -86,7 +84,7 @@ export function getWriteInstructionDataEncoder(): Encoder<WriteInstructionDataAr
8684

8785
export function getWriteInstructionDataDecoder(): Decoder<WriteInstructionData> {
8886
return getStructDecoder([
89-
['discriminator', getU8Decoder()],
87+
['discriminator', getU32Decoder()],
9088
['offset', getU32Decoder()],
9189
['bytes', addDecoderSizePrefix(getBytesDecoder(), getU32Decoder())],
9290
]);

clients/js/src/generated/programs/loaderV3.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import {
1010
containsBytes,
11-
getU8Encoder,
11+
getU32Encoder,
1212
type Address,
1313
type ReadonlyUint8Array,
1414
} from '@solana/web3.js';
@@ -41,28 +41,28 @@ export function identifyLoaderV3Instruction(
4141
instruction: { data: ReadonlyUint8Array } | ReadonlyUint8Array
4242
): LoaderV3Instruction {
4343
const data = 'data' in instruction ? instruction.data : instruction;
44-
if (containsBytes(data, getU8Encoder().encode(0), 0)) {
44+
if (containsBytes(data, getU32Encoder().encode(0), 0)) {
4545
return LoaderV3Instruction.InitializeBuffer;
4646
}
47-
if (containsBytes(data, getU8Encoder().encode(1), 0)) {
47+
if (containsBytes(data, getU32Encoder().encode(1), 0)) {
4848
return LoaderV3Instruction.Write;
4949
}
50-
if (containsBytes(data, getU8Encoder().encode(2), 0)) {
50+
if (containsBytes(data, getU32Encoder().encode(2), 0)) {
5151
return LoaderV3Instruction.DeployWithMaxDataLen;
5252
}
53-
if (containsBytes(data, getU8Encoder().encode(3), 0)) {
53+
if (containsBytes(data, getU32Encoder().encode(3), 0)) {
5454
return LoaderV3Instruction.Upgrade;
5555
}
56-
if (containsBytes(data, getU8Encoder().encode(4), 0)) {
56+
if (containsBytes(data, getU32Encoder().encode(4), 0)) {
5757
return LoaderV3Instruction.SetAuthority;
5858
}
59-
if (containsBytes(data, getU8Encoder().encode(5), 0)) {
59+
if (containsBytes(data, getU32Encoder().encode(5), 0)) {
6060
return LoaderV3Instruction.Close;
6161
}
62-
if (containsBytes(data, getU8Encoder().encode(6), 0)) {
62+
if (containsBytes(data, getU32Encoder().encode(6), 0)) {
6363
return LoaderV3Instruction.ExtendProgram;
6464
}
65-
if (containsBytes(data, getU8Encoder().encode(7), 0)) {
65+
if (containsBytes(data, getU32Encoder().encode(7), 0)) {
6666
return LoaderV3Instruction.SetAuthorityChecked;
6767
}
6868
throw new Error(

clients/rust/src/generated/instructions/close.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ impl Close {
7070

7171
#[derive(BorshDeserialize, BorshSerialize)]
7272
pub struct CloseInstructionData {
73-
discriminator: u8,
73+
discriminator: u32,
7474
}
7575

7676
impl CloseInstructionData {

0 commit comments

Comments
 (0)