Crate venko

source · []
Expand description

Venko: Rails for realtime finance on Solana.

About

Venko is a protocol for issuing streams of tokens. It is designed for a variety of usecases, including:

  • Token lockups. Issue team tokens over a schedule, irrevocably.
  • Grants. Issue revocable grants with a cliff and release schedule.
  • Escrow. Send tokens to someone with a cancellation period, allowing you to cancel the payment if it was sent to the wrong address.

We’re in active development. For the latest updates, please join our community:

Note

  • Venko is in active development, so all APIs are subject to change.
  • This code is unaudited. Use at your own risk.

Addresses

Program addresses are the same on devnet, testnet, and mainnet-beta.

Contribution

Thank you for your interest in contributing to Venko Protocol! All contributions are welcome no matter how big or small. This includes (but is not limited to) filing issues, adding documentation, fixing bugs, creating examples, and implementing features.

When contributing, please make sure your code adheres to some basic coding guidlines:

  • Code must be formatted with the configured formatters (e.g. rustfmt and prettier).
  • Comment lines should be no longer than 80 characters and written with proper grammar and punctuation.
  • Commit messages should be prefixed with the package(s) they modify. Changes affecting multiple packages should list all packages. In rare cases, changes may omit the package name prefix.

License

Venko Protocol is licensed under the GNU Affero General Public License v3.0.

Modules

An Anchor generated module, providing a set of structs mirroring the structs deriving Accounts, where each field is a Pubkey. This is useful for specifying accounts for a client.

An Anchor generated module containing the program’s set of instructions, where each method handler in the #[program] mod is associated with a struct defining the input arguments to the method. These should be used directly, when one wants to serialize Anchor instruction data, for example, when speciying instructions on a client.

Instruction handler for crate::venko::redeem.

Instruction handler for crate::venko::revoke.

The venko program.

Macros

Generates the signer seeds for a crate::Stream.

Structs

Accounts for venko::redeem.

Accounts for venko::revoke.

A stream of tokens being sent, with a cliff and an optional Self::revoker.

Enums

Errors.

Statics

The static program ID

Functions

Confirms that a given pubkey is equivalent to the program ID

The Anchor codegen exposes a programming model where a user defines a set of methods inside of a #[program] module in a way similar to writing RPC request handlers. The macro then generates a bunch of code wrapping these user defined methods into something that can be executed on Solana.

Returns the program ID

Type Definitions

Anchor generated Result to be used as the return type for the program.