fix: use bpf-loader-deprecated explicitly (#11818)
This commit is contained in:
parent
4593c3a172
commit
2395e57f45
|
@ -938,18 +938,21 @@ declare module '@solana/web3.js' {
|
|||
}
|
||||
|
||||
// === src/bpf-loader.js ===
|
||||
export const BPF_LOADER_PROGRAM_ID: PublicKey;
|
||||
export class BpfLoader {
|
||||
static programId(version?: number): PublicKey;
|
||||
static getMinNumSignatures(dataLength: number): number;
|
||||
static load(
|
||||
connection: Connection,
|
||||
payer: Account,
|
||||
program: Account,
|
||||
elfBytes: Buffer | Uint8Array | Array<number>,
|
||||
version?: number,
|
||||
loaderProgramId: PublicKey,
|
||||
): Promise<PublicKey>;
|
||||
}
|
||||
|
||||
// === src/bpf-loader-deprecated.js ===
|
||||
export const BPF_LOADER_DEPRECATED_PROGRAM_ID: PublicKey;
|
||||
|
||||
// === src/util/send-and-confirm-transaction.js ===
|
||||
export function sendAndConfirmTransaction(
|
||||
connection: Connection,
|
||||
|
|
|
@ -708,7 +708,7 @@ declare module '@solana/web3.js' {
|
|||
stakePubkey: PublicKey,
|
||||
authorityBase: PublicKey,
|
||||
authoritySeed: string,
|
||||
authorityOwner: PublicKey;
|
||||
authorityOwner: PublicKey,
|
||||
newAuthorizedPubkey: PublicKey,
|
||||
stakeAuthorizationType: StakeAuthorizationType,
|
||||
|};
|
||||
|
@ -953,18 +953,21 @@ declare module '@solana/web3.js' {
|
|||
}
|
||||
|
||||
// === src/bpf-loader.js ===
|
||||
declare export var BPF_LOADER_PROGRAM_ID;
|
||||
declare export class BpfLoader {
|
||||
static programId(version: ?number): PublicKey;
|
||||
static getMinNumSignatures(dataLength: number): number;
|
||||
static load(
|
||||
connection: Connection,
|
||||
payer: Account,
|
||||
program: Account,
|
||||
elfBytes: Buffer | Uint8Array | Array<number>,
|
||||
version: ?number,
|
||||
loaderProgramId: PublicKey,
|
||||
): Promise<PublicKey>;
|
||||
}
|
||||
|
||||
// === src/bpf-loader-deprecated.js ===
|
||||
declare export var BPF_LOADER_DEPRECATED_PROGRAM_ID;
|
||||
|
||||
// === src/util/send-and-confirm-transaction.js ===
|
||||
declare export function sendAndConfirmTransaction(
|
||||
connection: Connection,
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import {PublicKey} from './publickey';
|
||||
|
||||
export const BPF_LOADER_DEPRECATED_PROGRAM_ID = new PublicKey(
|
||||
'BPFLoader1111111111111111111111111111111111',
|
||||
);
|
|
@ -5,21 +5,14 @@ import {PublicKey} from './publickey';
|
|||
import {Loader} from './loader';
|
||||
import type {Connection} from './connection';
|
||||
|
||||
export const BPF_LOADER_PROGRAM_ID = new PublicKey(
|
||||
'BPFLoader2111111111111111111111111111111111',
|
||||
);
|
||||
|
||||
/**
|
||||
* Factory class for transactions to interact with a program loader
|
||||
*/
|
||||
export class BpfLoader {
|
||||
/**
|
||||
* Public key that identifies the BpfLoader
|
||||
*/
|
||||
static programId(version: number = 2): PublicKey {
|
||||
if (version === 1) {
|
||||
return new PublicKey('BPFLoader1111111111111111111111111111111111');
|
||||
} else {
|
||||
return new PublicKey('BPFLoader2111111111111111111111111111111111');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Minimum number of signatures required to load a program not including
|
||||
* retries
|
||||
|
@ -37,21 +30,15 @@ export class BpfLoader {
|
|||
* @param payer Account that will pay program loading fees
|
||||
* @param program Account to load the program into
|
||||
* @param elf The entire ELF containing the BPF program
|
||||
* @param version The version of the BPF loader to use
|
||||
* @param loaderProgramId The program id of the BPF loader to use
|
||||
*/
|
||||
static load(
|
||||
connection: Connection,
|
||||
payer: Account,
|
||||
program: Account,
|
||||
elf: Buffer | Uint8Array | Array<number>,
|
||||
version: number = 2,
|
||||
loaderProgramId: PublicKey,
|
||||
): Promise<void> {
|
||||
return Loader.load(
|
||||
connection,
|
||||
payer,
|
||||
program,
|
||||
BpfLoader.programId(version),
|
||||
elf,
|
||||
);
|
||||
return Loader.load(connection, payer, program, loaderProgramId, elf);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1754,11 +1754,7 @@ export class Connection {
|
|||
publicKey: PublicKey,
|
||||
commitment: ?Commitment,
|
||||
): Promise<RpcResponseAndContext<AccountInfo<Buffer> | null>> {
|
||||
const args = this._buildArgs(
|
||||
[publicKey.toBase58()],
|
||||
commitment,
|
||||
'base64',
|
||||
);
|
||||
const args = this._buildArgs([publicKey.toBase58()], commitment, 'base64');
|
||||
const unsafeRes = await this._rpcRequest('getAccountInfo', args);
|
||||
const res = GetAccountInfoAndContextRpcResult(unsafeRes);
|
||||
if (res.error) {
|
||||
|
@ -1868,11 +1864,7 @@ export class Connection {
|
|||
programId: PublicKey,
|
||||
commitment: ?Commitment,
|
||||
): Promise<Array<{pubkey: PublicKey, account: AccountInfo<Buffer>}>> {
|
||||
const args = this._buildArgs(
|
||||
[programId.toBase58()],
|
||||
commitment,
|
||||
'base64',
|
||||
);
|
||||
const args = this._buildArgs([programId.toBase58()], commitment, 'base64');
|
||||
const unsafeRes = await this._rpcRequest('getProgramAccounts', args);
|
||||
const res = GetProgramAccountsRpcResult(unsafeRes);
|
||||
if (res.error) {
|
||||
|
|
|
@ -13,6 +13,7 @@ import {
|
|||
import {mockRpcEnabled} from './__mocks__/node-fetch';
|
||||
import {url} from './url';
|
||||
import {newAccountWithLamports} from './new-account-with-lamports';
|
||||
import {BPF_LOADER_PROGRAM_ID} from '../src/bpf-loader';
|
||||
|
||||
if (!mockRpcEnabled) {
|
||||
// The default of 5 seconds is too slow for live testing sometimes
|
||||
|
@ -40,7 +41,7 @@ test('load BPF C program', async () => {
|
|||
const from = await newAccountWithLamports(connection, fees + balanceNeeded);
|
||||
|
||||
const program = new Account();
|
||||
await BpfLoader.load(connection, from, program, data);
|
||||
await BpfLoader.load(connection, from, program, data, BPF_LOADER_PROGRAM_ID);
|
||||
const transaction = new Transaction().add({
|
||||
keys: [{pubkey: from.publicKey, isSigner: true, isWritable: true}],
|
||||
programId: program.publicKey,
|
||||
|
@ -82,7 +83,13 @@ describe('load BPF Rust program', () => {
|
|||
);
|
||||
|
||||
program = new Account();
|
||||
await BpfLoader.load(connection, payerAccount, program, data);
|
||||
await BpfLoader.load(
|
||||
connection,
|
||||
payerAccount,
|
||||
program,
|
||||
data,
|
||||
BPF_LOADER_PROGRAM_ID,
|
||||
);
|
||||
const transaction = new Transaction().add({
|
||||
keys: [
|
||||
{pubkey: payerAccount.publicKey, isSigner: true, isWritable: true},
|
||||
|
|
Loading…
Reference in New Issue