Giter Site home page Giter Site logo

quentinlcs / code-program-library Goto Github PK

View Code? Open in Web Editor NEW

This project forked from code-payments/code-program-library

0.0 0.0 0.0 2.36 MB

A collection of Code maintained on-chain Solana programs

License: MIT License

JavaScript 1.31% Go 27.94% Rust 18.52% TypeScript 52.23%

code-program-library's Introduction

Code Program Library

Code Program Library

license version

The Code Program Library is a collection of on-chain programs targeting the Solana Sealevel runtime. These programs include clients to interact with the on-chain programs. The programs are deployed to the Mainnet-Beta cluster. We will graciously accept patches to ensure the programs here are secure and reliable but ask that you submit any security concerns privately by using this Report a Vulnerability link.

Audits

Program Mainnet Audited By Audit Report Version Commit
timelock time2Z2...A1W2YnJ OtterSec Completed v0.1.0 3d78dcf
splitter spLit2e...cUjwpwW OtterSec Completed v0.1.0 3d78dcf

Quickstart

The programs in this repository are built using the Anchor framework. Anchor is a framework for building on-chain programs for the Solana blockchain. It provides convenient Rust macros for declaring program instructions and a client library for interacting with the on-chain programs.

If you have any issues building the programs, please refer to the Anchor documentation.

Program Clients

In order to interact with the on-chain programs, we provide clients for each of the programs. These clients are generated from the IDL.

The clients are available in the following languages:

  • A TypeScript client for use in the browser or Node.js
  • A Go client derived from the TypeScript client
  • The IDL for use with Anchor's client library or other clients

The TypeScript client is generated from the IDL using solita. You are able to do this as well by running npm run build in the client directory.

The Go client is derived from this by hand. There are tools to automate this process, but we chose to limit the dependencies of the Go client and therefore have a manual process at the moment.

We will be adding more clients in the future. Pull requests are welcome.

Environment Setup

  1. Install the latest Solana tools.
  2. Install the latest Rust stable. If you already have Rust, run rustup update to get the latest version.
  3. Install the anchor development environment.

The lastest tested versions used to build the programs are:

> rustup --version
rustup 1.25.2 (17db695f1 2023-02-01)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.67.1 (d5a82bbd2 2023-02-07)`

> rustc --version
rustc 1.67.1 (d5a82bbd2 2023-02-07)

> solana --version
solana-cli 1.14.17 (src:798b4b9d; feat:3488713414)

> anchor --version
anchor-cli 0.27.0

Build on-chain programs

# To build a specific on-chain program
$ cd <program_name>/
$ anchor build

Build clients

# To build a specific client
$ cd <program_name>/client/<client_name>/
$ npm run build

Testing

We use more extensive tests internally. This repository only contains limited tests that can be found in the tests directory. You're welcome to run these tests, but they are not exhaustive. We will be adding more tests in the future. Pull requests are welcome.

Legal Disclaimer

DISCLAIMER OF WARRANTY: The programs are provided on an "as is" basis without any warranties of any kind, either express or implied including without limitation warranties of merchantability, fitness for a particular purpose, or non-infringement. CODE INC. DISCLAIM ALL WARRANTIES INCLUDING WITHOUT LIMITATION ANY WARRANTIES OF ACCURACY, COMPLETENESS, RELIABILITY, OR SUITABILITY. IN NO EVENT SHALL CODE INC. BE LIABLE FOR ANY DAMAGES INCLUDING WITHOUT LIMITATION DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR SIMILAR DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING OUT OF THE USE OR INABILITY TO USE THE CODE PROGRAM LIBRARY OR FOR ANY OTHER CLAIM BY THE USER OR ANY OTHER PARTY.

LIMITATION OF LIABILITY: THE USER ASSUMES ALL RISKS AND RESPONSIBILITIES WHEN USING THE CODE PROGRAM LIBRARY. CODE INC. CANNOT BE HELD RESPONSIBLE FOR ANY DAMAGES OR LOSSES INCURRED FROM THE USE OF THE CODE PROGRAM LIBRARY. THE USER IS SOLELY RESPONSIBLE FOR ENSURING THE SECURITY OF THEIR ACCESS KEY AND FUNDS. THE CODE PROGRAM LIBRARY IS PROVIDED AS AN EXAMPLE IMPLEMENTATION ONLY AND IS NOT INTENDED FOR PRODUCTION USE. CODE INC. AND THE DEVELOPMENT TEAM SHALL HAVE NO LIABILITY FOR ANY ERRORS, OMISSIONS, OR INACCURACIES IN THE INFORMATION PROVIDED.

Please view the full Terms of Use at https://www.getcode.com/terms.

Security and Issue Disclosures

In the interest of protecting the security of our users and their funds, we ask that if you discover any security vulnerabilities in the Code Program Library, the on-chain smart contract, or the mobile app, please report them use this Report a Vulnerability link. Our security team will review your report. Your cooperation in maintaining the security of our products is appreciated.

Please view the full Security Policy.

code-program-library's People

Contributors

zfedoran avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.