Skip to content

Commit

Permalink
feat: remove commitment option from requestAirdrop
Browse files Browse the repository at this point in the history
  • Loading branch information
jstarry committed Jun 11, 2020
1 parent 0240f7a commit 5396666
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 176 deletions.
1 change: 0 additions & 1 deletion module.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,6 @@ declare module '@solana/web3.js' {
requestAirdrop(
to: PublicKey,
amount: number,
commitment?: Commitment,
): Promise<TransactionSignature>;
sendTransaction(
transaction: Transaction,
Expand Down
1 change: 0 additions & 1 deletion module.flow.js
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,6 @@ declare module '@solana/web3.js' {
requestAirdrop(
to: PublicKey,
amount: number,
commitment: ?Commitment,
): Promise<TransactionSignature>;
sendTransaction(
transaction: Transaction,
Expand Down
7 changes: 4 additions & 3 deletions src/connection.js
Original file line number Diff line number Diff line change
Expand Up @@ -1703,10 +1703,11 @@ export class Connection {
async requestAirdrop(
to: PublicKey,
amount: number,
commitment: ?Commitment,
): Promise<TransactionSignature> {
const args = this._argsWithCommitment([to.toBase58(), amount], commitment);
const unsafeRes = await this._rpcRequest('requestAirdrop', args);
const unsafeRes = await this._rpcRequest('requestAirdrop', [
to.toBase58(),
amount,
]);
const res = RequestAirdropRpcResult(unsafeRes);
if (res.error) {
throw new Error(
Expand Down
182 changes: 36 additions & 146 deletions test/connection.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,7 @@ test('get program accounts', async () => {
url,
{
method: 'requestAirdrop',
params: [
account0.publicKey.toBase58(),
LAMPORTS_PER_SOL,
{commitment: 'recent'},
],
params: [account0.publicKey.toBase58(), LAMPORTS_PER_SOL],
},
{
error: null,
Expand All @@ -102,11 +98,7 @@ test('get program accounts', async () => {
url,
{
method: 'requestAirdrop',
params: [
account1.publicKey.toBase58(),
0.5 * LAMPORTS_PER_SOL,
{commitment: 'recent'},
],
params: [account1.publicKey.toBase58(), 0.5 * LAMPORTS_PER_SOL],
},
{
error: null,
Expand Down Expand Up @@ -929,7 +921,7 @@ test('get confirmed transaction', async () => {
url,
{
method: 'requestAirdrop',
params: [newAddress.toBase58(), 1, {commitment: 'recent'}],
params: [newAddress.toBase58(), 1],
},
{
error: null,
Expand All @@ -938,11 +930,7 @@ test('get confirmed transaction', async () => {
},
]);

const recentSignature = await connection.requestAirdrop(
newAddress,
1,
'recent',
);
const recentSignature = await connection.requestAirdrop(newAddress, 1);
mockRpc.push([
url,
{
Expand Down Expand Up @@ -1311,30 +1299,50 @@ test('request airdrop', async () => {
url,
{
method: 'requestAirdrop',
params: [
account.publicKey.toBase58(),
minimumAmount + 40,
{commitment: 'recent'},
],
params: [account.publicKey.toBase58(), minimumAmount + 42],
},
{
error: null,
result:
'1WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
},
]);

const signature = await connection.requestAirdrop(
account.publicKey,
minimumAmount + 42,
);

mockRpc.push([
url,
{
method: 'requestAirdrop',
params: [account.publicKey.toBase58(), 2, {commitment: 'recent'}],
method: 'getSignatureStatuses',
params: [
[
'1WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
],
],
},
{
error: null,
result:
'2WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
result: {
context: {
slot: 11,
},
value: [
{
slot: 0,
confirmations: null,
status: {Ok: null},
err: null,
},
],
},
},
]);

await connection.confirmTransaction(signature, 0);

mockRpc.push([
url,
{
Expand All @@ -1352,9 +1360,6 @@ test('request airdrop', async () => {
},
]);

await connection.requestAirdrop(account.publicKey, minimumAmount + 40);
await connection.requestAirdrop(account.publicKey, 2);

const balance = await connection.getBalance(account.publicKey);
expect(balance).toBe(minimumAmount + 42);

Expand Down Expand Up @@ -1390,109 +1395,6 @@ test('request airdrop', async () => {
expect(accountInfo.owner).toEqual(SystemProgram.programId);
});

// expected to take around 20s
test('request airdrop - max commitment', async () => {
const account = new Account();
const connection = new Connection(url, 'max');

mockRpc.push([
url,
{
method: 'getMinimumBalanceForRentExemption',
params: [0, {commitment: 'recent'}],
},
{
error: null,
result: 50,
},
]);

const minimumAmount = await connection.getMinimumBalanceForRentExemption(
0,
'recent',
);

mockRpc.push([
url,
{
method: 'requestAirdrop',
params: [
account.publicKey.toBase58(),
minimumAmount + 40,
{commitment: 'max'},
],
},
{
error: null,
result:
'1WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
},
]);
mockRpc.push([
url,
{
method: 'getBalance',
params: [account.publicKey.toBase58(), {commitment: 'max'}],
},
{
error: null,
result: {
context: {
slot: 11,
},
value: minimumAmount + 40,
},
},
]);

const signature = await connection.requestAirdrop(
account.publicKey,
minimumAmount + 40,
);
const balance = await connection.getBalance(account.publicKey);
expect(balance).toBe(minimumAmount + 40);

mockRpc.push([
url,
{
method: 'getSignatureStatuses',
params: [
[
'1WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
],
],
},
{
error: null,
result: {
context: {
slot: 11,
},
value: [
{
slot: 0,
confirmations: null,
status: {Ok: null},
err: null,
},
],
},
},
]);

const {value} = await connection.getSignatureStatus(signature);
if (value === null) {
expect(value).not.toBeNull();
return;
}

// Signature should be finalized and therefore confirmations should be null
if (value.confirmations !== null) {
expect(value.confirmations).toBeNull();
return;
}
});

test('transaction failure', async () => {
const account = new Account();
const connection = new Connection(url, 'recent');
Expand All @@ -1518,11 +1420,7 @@ test('transaction failure', async () => {
url,
{
method: 'requestAirdrop',
params: [
account.publicKey.toBase58(),
minimumAmount + 100010,
{commitment: 'recent'},
],
params: [account.publicKey.toBase58(), minimumAmount + 100010],
},
{
error: null,
Expand Down Expand Up @@ -1724,11 +1622,7 @@ test('transaction', async () => {
url,
{
method: 'requestAirdrop',
params: [
accountFrom.publicKey.toBase58(),
minimumAmount + 100010,
{commitment: 'recent'},
],
params: [accountFrom.publicKey.toBase58(), minimumAmount + 100010],
},
{
error: null,
Expand Down Expand Up @@ -1764,11 +1658,7 @@ test('transaction', async () => {
url,
{
method: 'requestAirdrop',
params: [
accountTo.publicKey.toBase58(),
minimumAmount + 21,
{commitment: 'recent'},
],
params: [accountTo.publicKey.toBase58(), minimumAmount + 21],
},
{
error: null,
Expand Down
12 changes: 2 additions & 10 deletions test/nonce.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,7 @@ test('create and query nonce account', async () => {
url,
{
method: 'requestAirdrop',
params: [
from.publicKey.toBase58(),
minimumAmount * 2,
{commitment: 'recent'},
],
params: [from.publicKey.toBase58(), minimumAmount * 2],
},
{
error: null,
Expand Down Expand Up @@ -168,11 +164,7 @@ test('create and query nonce account with seed', async () => {
url,
{
method: 'requestAirdrop',
params: [
from.publicKey.toBase58(),
minimumAmount * 2,
{commitment: 'recent'},
],
params: [from.publicKey.toBase58(), minimumAmount * 2],
},
{
error: null,
Expand Down
18 changes: 3 additions & 15 deletions test/transaction-payer.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,7 @@ test('transaction-payer', async () => {
url,
{
method: 'requestAirdrop',
params: [
accountPayer.publicKey.toBase58(),
LAMPORTS_PER_SOL,
{commitment: 'recent'},
],
params: [accountPayer.publicKey.toBase58(), LAMPORTS_PER_SOL],
},
{
error: null,
Expand All @@ -54,11 +50,7 @@ test('transaction-payer', async () => {
url,
{
method: 'requestAirdrop',
params: [
accountFrom.publicKey.toBase58(),
minimumAmount + 12,
{commitment: 'recent'},
],
params: [accountFrom.publicKey.toBase58(), minimumAmount + 12],
},
{
error: null,
Expand All @@ -72,11 +64,7 @@ test('transaction-payer', async () => {
url,
{
method: 'requestAirdrop',
params: [
accountTo.publicKey.toBase58(),
minimumAmount + 21,
{commitment: 'recent'},
],
params: [accountTo.publicKey.toBase58(), minimumAmount + 21],
},
{
error: null,
Expand Down

0 comments on commit 5396666

Please sign in to comment.