RFC 006: Wallet CLI
This commit is contained in:
123
rfcs/rfc-006-budget-contract-language.md
Normal file
123
rfcs/rfc-006-budget-contract-language.md
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
|
||||||
|
### Wallet CLI
|
||||||
|
|
||||||
|
The general form is:
|
||||||
|
```
|
||||||
|
$ solana-wallet [common-options] [command] [command-specific options]
|
||||||
|
```
|
||||||
|
`common-options` include:
|
||||||
|
* `--fee xyz` - Transaction fee (0 by default)
|
||||||
|
* `--output file` - Write the raw Transaction to a file instead of sending it
|
||||||
|
|
||||||
|
`command` variants:
|
||||||
|
* `pay`
|
||||||
|
* `cancel`
|
||||||
|
* `apply`
|
||||||
|
|
||||||
|
#### Unconditional Immediate Transfer
|
||||||
|
```sh
|
||||||
|
// Command
|
||||||
|
$ solana-wallet pay <PUBKEY> 123
|
||||||
|
|
||||||
|
// Return
|
||||||
|
<TX_SIGNATURE>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Post-Dated Transfer
|
||||||
|
```sh
|
||||||
|
// Command
|
||||||
|
$ solana-wallet pay <PUBKEY> 123 \
|
||||||
|
--after 2018-12-24T23:59 --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 secret key*
|
||||||
|
|
||||||
|
#### Authorized Transfer
|
||||||
|
A third party must send a signature to unlock the tokens.
|
||||||
|
```sh
|
||||||
|
// Command
|
||||||
|
$ solana-wallet pay <PUBKEY> 123 \
|
||||||
|
--require-signature-from <PUBKEY>
|
||||||
|
|
||||||
|
// Return
|
||||||
|
{signature: <TX_SIGNATURE>, processId: <PROCESS_ID>}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Post-Dated and Authorized Transfer
|
||||||
|
```sh
|
||||||
|
// Command
|
||||||
|
$ solana-wallet 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
|
||||||
|
```sh
|
||||||
|
// Command
|
||||||
|
$ solana-wallet pay <PUBKEY> 123 \
|
||||||
|
--require-signature-from <PUBKEY> \
|
||||||
|
--require-signature-from <PUBKEY>
|
||||||
|
|
||||||
|
// Return
|
||||||
|
{signature: <TX_SIGNATURE>, processId: <PROCESS_ID>}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Cancelable Transfer
|
||||||
|
```sh
|
||||||
|
// Command
|
||||||
|
$ solana-wallet pay <PUBKEY> 123 \
|
||||||
|
--require-signature-from <PUBKEY> \
|
||||||
|
--cancelable
|
||||||
|
|
||||||
|
// Return
|
||||||
|
{signature: <TX_SIGNATURE>, processId: <PROCESS_ID>}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Cancel Transfer
|
||||||
|
```sh
|
||||||
|
// Command
|
||||||
|
$ solana-wallet cancel <PROCESS_ID>
|
||||||
|
|
||||||
|
// Return
|
||||||
|
<TX_SIGNATURE>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Send Signature
|
||||||
|
```sh
|
||||||
|
// Command
|
||||||
|
$ solana-wallet send-signature <PROCESS_ID>
|
||||||
|
|
||||||
|
// Return
|
||||||
|
<TX_SIGNATURE>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Indicate Elapsed Time
|
||||||
|
|
||||||
|
Use the current system time:
|
||||||
|
```sh
|
||||||
|
// Command
|
||||||
|
$ solana-wallet send-timestamp <PROCESS_ID>
|
||||||
|
|
||||||
|
// Return
|
||||||
|
<TX_SIGNATURE>
|
||||||
|
```
|
||||||
|
|
||||||
|
Or specify some other arbitrary timestamp:
|
||||||
|
```sh
|
||||||
|
// Command
|
||||||
|
$ solana-wallet send-timestamp <PROCESS_ID> --date 2018-12-24T23:59
|
||||||
|
|
||||||
|
// Return
|
||||||
|
<TX_SIGNATURE>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Javascript solana-web3.js Interface
|
||||||
|
|
||||||
|
*TBD, but will look similar to what the Wallet CLI offers wrapped up in a
|
||||||
|
Javacsript object*
|
Reference in New Issue
Block a user