172 lines
2.5 KiB
Plaintext
172 lines
2.5 KiB
Plaintext
# solana CLI
|
|
|
|
The [solana-cli crate](https://crates.io/crates/solana-cli) provides a command-line interface tool for Solana
|
|
|
|
## Examples
|
|
|
|
### Get Pubkey
|
|
|
|
```bash
|
|
// Command
|
|
$ solana-keygen pubkey
|
|
|
|
// Return
|
|
<PUBKEY>
|
|
```
|
|
|
|
### Airdrop SOL/Lamports
|
|
|
|
```bash
|
|
// Command
|
|
$ solana airdrop 2
|
|
|
|
// Return
|
|
"2.00000000 SOL"
|
|
```
|
|
|
|
### Get Balance
|
|
|
|
```bash
|
|
// Command
|
|
$ solana balance
|
|
|
|
// Return
|
|
"3.00050001 SOL"
|
|
```
|
|
|
|
### Confirm Transaction
|
|
|
|
```bash
|
|
// Command
|
|
$ solana confirm <TX_SIGNATURE>
|
|
|
|
// Return
|
|
"Confirmed" / "Not found" / "Transaction failed with error <ERR>"
|
|
```
|
|
|
|
### Deploy program
|
|
|
|
```bash
|
|
// Command
|
|
$ solana deploy <PATH>
|
|
|
|
// Return
|
|
<PROGRAM_ID>
|
|
```
|
|
|
|
### Unconditional Immediate Transfer
|
|
|
|
```bash
|
|
// Command
|
|
$ solana pay <PUBKEY> 123
|
|
|
|
// Return
|
|
<TX_SIGNATURE>
|
|
```
|
|
|
|
### Post-Dated Transfer
|
|
|
|
```bash
|
|
// Command
|
|
$ solana pay <PUBKEY> 123 \
|
|
--after 2018-12-24T23:59:00 --require-timestamp-from <PUBKEY>
|
|
|
|
// Return
|
|
{signature: <TX_SIGNATURE>, processId: <PROCESS_ID>}
|
|
```
|
|
|
|
_`require-timestamp-from` is optional. If not provided, the transaction will expect a timestamp signed by this wallet's private key_
|
|
|
|
### Authorized Transfer
|
|
|
|
A third party must send a signature to unlock the lamports.
|
|
|
|
```bash
|
|
// Command
|
|
$ solana pay <PUBKEY> 123 \
|
|
--require-signature-from <PUBKEY>
|
|
|
|
// Return
|
|
{signature: <TX_SIGNATURE>, processId: <PROCESS_ID>}
|
|
```
|
|
|
|
### Post-Dated and Authorized Transfer
|
|
|
|
```bash
|
|
// Command
|
|
$ solana pay <PUBKEY> 123 \
|
|
--after 2018-12-24T23:59 --require-timestamp-from <PUBKEY> \
|
|
--require-signature-from <PUBKEY>
|
|
|
|
// Return
|
|
{signature: <TX_SIGNATURE>, processId: <PROCESS_ID>}
|
|
```
|
|
|
|
### Multiple Witnesses
|
|
|
|
```bash
|
|
// Command
|
|
$ solana pay <PUBKEY> 123 \
|
|
--require-signature-from <PUBKEY> \
|
|
--require-signature-from <PUBKEY>
|
|
|
|
// Return
|
|
{signature: <TX_SIGNATURE>, processId: <PROCESS_ID>}
|
|
```
|
|
|
|
### Cancelable Transfer
|
|
|
|
```bash
|
|
// Command
|
|
$ solana pay <PUBKEY> 123 \
|
|
--require-signature-from <PUBKEY> \
|
|
--cancelable
|
|
|
|
// Return
|
|
{signature: <TX_SIGNATURE>, processId: <PROCESS_ID>}
|
|
```
|
|
|
|
### Cancel Transfer
|
|
|
|
```bash
|
|
// Command
|
|
$ solana cancel <PROCESS_ID>
|
|
|
|
// Return
|
|
<TX_SIGNATURE>
|
|
```
|
|
|
|
### Send Signature
|
|
|
|
```bash
|
|
// Command
|
|
$ solana send-signature <PUBKEY> <PROCESS_ID>
|
|
|
|
// Return
|
|
<TX_SIGNATURE>
|
|
```
|
|
|
|
### Indicate Elapsed Time
|
|
|
|
Use the current system time:
|
|
|
|
```bash
|
|
// Command
|
|
$ solana send-timestamp <PUBKEY> <PROCESS_ID>
|
|
|
|
// Return
|
|
<TX_SIGNATURE>
|
|
```
|
|
|
|
Or specify some other arbitrary timestamp:
|
|
|
|
```bash
|
|
// Command
|
|
$ solana send-timestamp <PUBKEY> <PROCESS_ID> --date 2018-12-24T23:59:00
|
|
|
|
// Return
|
|
<TX_SIGNATURE>
|
|
```
|
|
|
|
## Usage
|