feat: remove commitment option from requestAirdrop

This commit is contained in:
Justin Starry
2020-06-11 00:10:25 +08:00
committed by Michael Vines
parent a9a19e2363
commit 24bb060292
6 changed files with 45 additions and 176 deletions

1
web3.js/module.d.ts vendored
View File

@ -281,7 +281,6 @@ declare module '@solana/web3.js' {
requestAirdrop( requestAirdrop(
to: PublicKey, to: PublicKey,
amount: number, amount: number,
commitment?: Commitment,
): Promise<TransactionSignature>; ): Promise<TransactionSignature>;
sendTransaction( sendTransaction(
transaction: Transaction, transaction: Transaction,

View File

@ -294,7 +294,6 @@ declare module '@solana/web3.js' {
requestAirdrop( requestAirdrop(
to: PublicKey, to: PublicKey,
amount: number, amount: number,
commitment: ?Commitment,
): Promise<TransactionSignature>; ): Promise<TransactionSignature>;
sendTransaction( sendTransaction(
transaction: Transaction, transaction: Transaction,

View File

@ -1703,10 +1703,11 @@ export class Connection {
async requestAirdrop( async requestAirdrop(
to: PublicKey, to: PublicKey,
amount: number, amount: number,
commitment: ?Commitment,
): Promise<TransactionSignature> { ): Promise<TransactionSignature> {
const args = this._argsWithCommitment([to.toBase58(), amount], commitment); const unsafeRes = await this._rpcRequest('requestAirdrop', [
const unsafeRes = await this._rpcRequest('requestAirdrop', args); to.toBase58(),
amount,
]);
const res = RequestAirdropRpcResult(unsafeRes); const res = RequestAirdropRpcResult(unsafeRes);
if (res.error) { if (res.error) {
throw new Error( throw new Error(

View File

@ -86,11 +86,7 @@ test('get program accounts', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [account0.publicKey.toBase58(), LAMPORTS_PER_SOL],
account0.publicKey.toBase58(),
LAMPORTS_PER_SOL,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,
@ -102,11 +98,7 @@ test('get program accounts', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [account1.publicKey.toBase58(), 0.5 * LAMPORTS_PER_SOL],
account1.publicKey.toBase58(),
0.5 * LAMPORTS_PER_SOL,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,
@ -929,7 +921,7 @@ test('get confirmed transaction', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [newAddress.toBase58(), 1, {commitment: 'recent'}], params: [newAddress.toBase58(), 1],
}, },
{ {
error: null, error: null,
@ -938,11 +930,7 @@ test('get confirmed transaction', async () => {
}, },
]); ]);
const recentSignature = await connection.requestAirdrop( const recentSignature = await connection.requestAirdrop(newAddress, 1);
newAddress,
1,
'recent',
);
mockRpc.push([ mockRpc.push([
url, url,
{ {
@ -1311,11 +1299,7 @@ test('request airdrop', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [account.publicKey.toBase58(), minimumAmount + 42],
account.publicKey.toBase58(),
minimumAmount + 40,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,
@ -1323,18 +1307,42 @@ test('request airdrop', async () => {
'1WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk', '1WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
}, },
]); ]);
const signature = await connection.requestAirdrop(
account.publicKey,
minimumAmount + 42,
);
mockRpc.push([ mockRpc.push([
url, url,
{ {
method: 'requestAirdrop', method: 'getSignatureStatuses',
params: [account.publicKey.toBase58(), 2, {commitment: 'recent'}], params: [
[
'1WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
],
],
}, },
{ {
error: null, error: null,
result: result: {
'2WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk', context: {
slot: 11,
},
value: [
{
slot: 0,
confirmations: null,
status: {Ok: null},
err: null,
},
],
},
}, },
]); ]);
await connection.confirmTransaction(signature, 0);
mockRpc.push([ mockRpc.push([
url, url,
{ {
@ -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); const balance = await connection.getBalance(account.publicKey);
expect(balance).toBe(minimumAmount + 42); expect(balance).toBe(minimumAmount + 42);
@ -1390,109 +1395,6 @@ test('request airdrop', async () => {
expect(accountInfo.owner).toEqual(SystemProgram.programId); 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 () => { test('transaction failure', async () => {
const account = new Account(); const account = new Account();
const connection = new Connection(url, 'recent'); const connection = new Connection(url, 'recent');
@ -1518,11 +1420,7 @@ test('transaction failure', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [account.publicKey.toBase58(), minimumAmount + 100010],
account.publicKey.toBase58(),
minimumAmount + 100010,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,
@ -1724,11 +1622,7 @@ test('transaction', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [accountFrom.publicKey.toBase58(), minimumAmount + 100010],
accountFrom.publicKey.toBase58(),
minimumAmount + 100010,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,
@ -1764,11 +1658,7 @@ test('transaction', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [accountTo.publicKey.toBase58(), minimumAmount + 21],
accountTo.publicKey.toBase58(),
minimumAmount + 21,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,

View File

@ -49,11 +49,7 @@ test('create and query nonce account', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [from.publicKey.toBase58(), minimumAmount * 2],
from.publicKey.toBase58(),
minimumAmount * 2,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,
@ -168,11 +164,7 @@ test('create and query nonce account with seed', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [from.publicKey.toBase58(), minimumAmount * 2],
from.publicKey.toBase58(),
minimumAmount * 2,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,

View File

@ -36,11 +36,7 @@ test('transaction-payer', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [accountPayer.publicKey.toBase58(), LAMPORTS_PER_SOL],
accountPayer.publicKey.toBase58(),
LAMPORTS_PER_SOL,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,
@ -54,11 +50,7 @@ test('transaction-payer', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [accountFrom.publicKey.toBase58(), minimumAmount + 12],
accountFrom.publicKey.toBase58(),
minimumAmount + 12,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,
@ -72,11 +64,7 @@ test('transaction-payer', async () => {
url, url,
{ {
method: 'requestAirdrop', method: 'requestAirdrop',
params: [ params: [accountTo.publicKey.toBase58(), minimumAmount + 21],
accountTo.publicKey.toBase58(),
minimumAmount + 21,
{commitment: 'recent'},
],
}, },
{ {
error: null, error: null,