feat(flow): add initial flow library definition

This commit is contained in:
Michael Vines 2018-09-28 20:18:57 -07:00
parent fae9624eb0
commit 721ce794e8
2 changed files with 101 additions and 0 deletions

View File

@ -65,6 +65,18 @@ console.log(solanaWeb3);
console.log(solanaWeb3);
```
## Flow
A Flow library definition file is provided at
[module.flow.js](https://github.com/solana-labs/solana-web3.js/tree/master/module.flow.js).
Add the following line under the [libs] section of your project's .flowconfig to
activate it:
```ini
[libs]
node_modules/@solana/web3.js/module.flow.js
```
## Examples
See the [examples/](https://github.com/solana-labs/solana-web3.js/tree/master/examples) directory for small snippets.

89
web3.js/module.flow.js Normal file
View File

@ -0,0 +1,89 @@
/**
* Flow Library definition for @solana/web3.js
*
* This file is manually generated from the contents of src/
*
* Usage: add the following line under the [libs] section of your project's
* .flowconfig:
* [libs]
* node_modules/@solana/web3.js/module.flow.js
*
*/
declare module '@solana/web3.js' {
declare type PublicKey = string;
// === src/account.js ===
declare export class Account {
constructor(secretKey: ?Buffer): Account;
publicKey: PublicKey;
secretKey: PublicKey;
}
// === src/budget-program.js ===
/* TODO */
// === src/connection.js ===
declare type AccountInfo = {
tokens: number,
programId: PublicKey,
userdata: Buffer | null,
}
declare type SignatureStatus = 'Confirmed' | 'SignatureNotFound' | 'ProgramRuntimeError' | 'GenericFailure';
declare export class Connection {
constructor(endpoint: string): Connection;
getBalance(publicKey: PublicKey): Promise<number>;
getAccountInfo(publicKey: PublicKey): Promise<AccountInfo>;
confirmTransaction(signature: TransactionSignature): Promise<boolean>;
getSignatureStatus(signature: TransactionSignature): Promise<SignatureStatus>;
getTransactionCount(): Promise<number>;
getLastId(): Promise<TransactionId>;
getFinality(): Promise<number>;
requestAirdrop(to: PublicKey, amount: number): Promise<TransactionSignature>;
sendTransaction(from: Account, transaction: Transaction): Promise<TransactionSignature>;
}
// === src/system-program.js ===
declare export class SystemProgram {
static programId: PublicKey;
static createAccount(
from: PublicKey,
newAccount: PublicKey,
tokens: number,
space: number,
programId: PublicKey
): Transaction;
static move(from: PublicKey, to: PublicKey, amount: number): Transaction;
static assign(from: PublicKey, programId: PublicKey): Transaction;
}
// === src/transaction.js ===
declare type TransactionSignature = string;
declare type TransactionId = string;
declare type TransactionCtorFields = {|
signature?: Buffer;
keys?: Array<PublicKey>;
programId?: PublicKey;
fee?: number;
userdata?: Buffer;
|};
declare export class Transaction {
signature: ?Buffer;
keys: Array<PublicKey>;
programId: ?PublicKey;
lastId: ?TransactionId;
fee: number;
userdata: Buffer;
constructor(opts?: TransactionCtorFields): Transaction;
sign(from: Account): void;
serialize(): Buffer;
static serializePublicKey(key: PublicKey): Buffer;
}
}