fix: default transaction fee is now 1 (was 0)

This commit is contained in:
Michael Vines 2018-11-27 08:31:06 -08:00
parent 916a5eb3d2
commit b175a53f4b
9 changed files with 20 additions and 9 deletions

View File

@ -37,7 +37,7 @@ export class BpfLoader {
const transaction = SystemProgram.createAccount(
owner.publicKey,
programAccount.publicKey,
1,
1 + Math.ceil(elf.length / Loader.chunkSize) + 1,
elf.length,
BpfLoader.programId,
);

View File

@ -23,6 +23,14 @@ export class Loader {
*/
programId: PublicKey;
/**
* Amount of program data placed in each load Transaction
*/
static get chunkSize(): number {
return 256;
}
/**
* @param connection The connection to use
* @param programId Public key that identifies the loader
@ -50,7 +58,7 @@ export class Loader {
),
]);
const chunkSize = 256;
const chunkSize = Loader.chunkSize;
let offset = 0;
let array = data;
let transactions = [];

View File

@ -40,7 +40,7 @@ export class NativeLoader {
const transaction = SystemProgram.createAccount(
owner.publicKey,
programAccount.publicKey,
1,
1 + 1 + 1,
bytes.length + 1,
NativeLoader.programId,
);

View File

@ -240,6 +240,7 @@ export class Token {
programId,
userdata,
});
transaction.fee = 0; // TODO: Batch with the `SystemProgram.createAccount` and remove this line
await sendAndConfirmTransaction(connection, transaction, tokenAccount);
return [token, initialAccountPublicKey];
@ -294,7 +295,7 @@ export class Token {
programId: this.programId,
userdata,
});
transaction.fee = 0; // TODO: Batch with the `SystemProgram.createAccount` and remove this line
await sendAndConfirmTransaction(this.connection, transaction, tokenAccount);
return tokenAccount.publicKey;

View File

@ -108,7 +108,7 @@ export class Transaction {
/**
* Fee for this transaction
*/
fee: number = 0;
fee: number = 1;
/**
* Construct an empty Transaction

View File

@ -24,7 +24,7 @@ test('load BPF program', async () => {
}
const connection = new Connection(url);
const from = await newAccountWithTokens(connection);
const from = await newAccountWithTokens(connection, 1024);
const data = await fs.readFile('test/fixtures/noop/noop.o');
const programId = await BpfLoader.load(connection, from, data);
const transaction = new Transaction().add({

View File

@ -353,6 +353,7 @@ test('transaction', async () => {
accountTo.publicKey,
10,
);
transaction.fee = 0;
const signature = await connection.sendTransaction(transaction, accountFrom);
mockRpc.push([
@ -447,7 +448,7 @@ test('multi-instruction transaction', async () => {
accountTo.publicKey,
10,
).add(SystemProgram.move(accountTo.publicKey, accountFrom.publicKey, 10));
transaction.fee = 0;
const signature = await connection.sendTransaction(
transaction,
accountFrom,
@ -496,6 +497,7 @@ test('account change notification', async () => {
3,
BpfLoader.programId,
);
transaction.fee = 0;
await sendAndConfirmTransaction(connection, transaction, owner);
const loader = new Loader(connection, BpfLoader.programId);

View File

@ -22,7 +22,7 @@ test('load native program', async () => {
}
const connection = new Connection(url);
const from = await newAccountWithTokens(connection);
const from = await newAccountWithTokens(connection, 1024);
const programId = await NativeLoader.load(connection, from, 'noop');
const transaction = new Transaction().add({
keys: [from.publicKey],

View File

@ -50,7 +50,7 @@ test('create new token', async () => {
const connection = new Connection(url);
connection._disableLastIdCaching = mockRpcEnabled;
initialOwner = await newAccountWithTokens(connection);
initialOwner = await newAccountWithTokens(connection, 1024);
{
// mock SystemProgram.createAccount transaction for Token.createNewToken()