feat: remove commitment option from requestAirdrop
This commit is contained in:
committed by
Michael Vines
parent
a9a19e2363
commit
24bb060292
1
web3.js/module.d.ts
vendored
1
web3.js/module.d.ts
vendored
@ -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,
|
||||||
|
@ -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,
|
||||||
|
@ -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(
|
||||||
|
@ -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,
|
||||||
|
@ -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,
|
||||||
|
@ -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,
|
||||||
|
Reference in New Issue
Block a user