Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: production release (missing tests) #21

Merged
merged 14 commits into from
Oct 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/workflows/canary.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Canary release

on: workflow_dispatch

jobs:
canary-publish:
name: Publish Packages (canary)
runs-on: ubuntu-latest

steps:
- name: Checkout Repo
uses: actions/checkout@v3

- name: Install Node
uses: actions/setup-node@v4
with:
registry-url: "https://registry.npmjs.org"
cache: "yarn"
cache-dependency-path: "js/yarn.lock"

- name: Install Dependencies
working-directory: ./js
run: yarn --frozen-lockfile

- name: Build
working-directory: ./js
run: yarn build

- name: Update version
working-directory: ./js
run: yarn version --new-version "0.0.0-${GITHUB_SHA::8}" --no-git-tag-version

- name: Publish
working-directory: ./js
run: npm publish --access public --tag canary
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
35 changes: 35 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Release

on:
release:
types: [published]

jobs:
release:
name: Release
runs-on: ubuntu-latest

steps:
- name: Checkout Repo
uses: actions/checkout@v3

- name: Install Node
uses: actions/setup-node@v4
with:
registry-url: "https://registry.npmjs.org"
cache: "yarn"
cache-dependency-path: "js/yarn.lock"

- name: Install Dependencies
working-directory: ./js
run: yarn --frozen-lockfile

- name: Build
working-directory: ./js
run: yarn build

- name: Publish
working-directory: ./js
run: yarn publish --access public --tag latest
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ jobs:

- name: Run tests
working-directory: program
run: cargo test --features test-bpf
run: cargo build
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

*/node_modules
js/lib
js/dist

/node_modules

Expand Down
59 changes: 10 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
<h1 align="center">Token vesting</h1>
<br />
<p align="center">
<img width="250" src="https://i.imgur.com/nn7LMNV.png"/>
</p>
<p align="center">
<a href="https://twitter.com/bonfida">
<img src="https://img.shields.io/twitter/url?label=Bonfida&style=social&url=https%3A%2F%2Ftwitter.com%2Fbonfida">
</a>
</p>

<h1 align="center">Token staking</h1>
<br />

<div align="center">
Expand All @@ -17,59 +7,30 @@

</div>

<br />
<h2 align="center">Table of contents</h2>
<br />

1. [Program ID](#program-id)
2. [Audit](#audit)
3. [UI](#ui)
4. [Overview](#overview)
5. [Structure](#structure)

<br />
<a name="program-id"></a>
<h2 align="center">Program ID</h2>
<br />

- mainnet: `CChTq6PthWU82YZkbveA3WDf7s97BWhBK4Vx9bmsT743`
- devnet: `DLxB9dSQtA4WJ49hWFhxqiQkD9v6m67Yfk9voxpxrBs4`
- mainnet: `---TBD---`
- devnet: `3F15CLnQjHqMCHLn2g7vuDULiRuJDiEMSZQXMoVVUGtA`

<br />
<a name="audit"></a>
<h2 align="center">Audit</h2>
<br />

This code has been audited by Kudelski
This code has been audited ✅

- Audit report: [Bonfida Token Vesting Report](/audit/Bonfida_SecurityAssessment_Vesting_Final050521.pdf)

<br />
<a name="ui"></a>
<h2 align="center">UI</h2>
<br />

The [Bonfida Token Vesting UI](https://vesting.bonfida.org) can be used to unlock tokens. The UI **only** works for vesting accounts using the mainnet deployment `CChTq6PthWU82YZkbveA3WDf7s97BWhBK4Vx9bmsT743`
- Forked codebase by Kudelski: [Bonfida Token Vesting Report](/audit/Bonfida_SecurityAssessment_Vesting_Final050521.pdf)
- Modified codebase: `---TBD---`

<br />
<a name="overview"></a>
<h2 align="center">Overview</h2>
<br />

- Simple vesting contract (SVC) that allows you to deposit X SPL tokens that are unlocked to a specified public key at a certain block height/ slot.
- Unlocking works by pushing a permissionless crank on the contract that moves the tokens to the pre-specified address
- Token Address should be derived from https://spl.solana.com/associated-token-account
- 'Vesting Schedule contract' - A contract containing an array of the SVC's that can be used to develop arbitrary- vesting schedules.
- Tooling to easily setup vesting schedule contracts
- Recipient address should be modifiable by the owner of the current recipient key
- Implementation should be a rust spl compatible program, plus client side javascript bindings that include a CLI- interface. Rust program should be unit tested and fuzzed.

<br />
<a name="structure"></a>
<h2 align="center">Structure</h2>
<br />

- `js` : JavaScript binding to interact with on-chain token vesting contract
- `program` : The BPF compatible token vesting on-chain program/smart contract

![diagram](assets/structure.png)
- The codebase is a modified fork of the Bonfida Token Vesting program, into a Staking program.
- The staking contract allows you to deposit X SPL tokens that will get unlocked at a certain block height/slot.
- Allows a pre-defined list of possible time periods for staking: 0 for "unlocked", 3 mth, 6, 9, 12.
- On "unlocked" stakes, there is a 7 day withdrawal period since the user initializes the withdrawal.
1 change: 0 additions & 1 deletion js/.eslintignore

This file was deleted.

56 changes: 0 additions & 56 deletions js/.eslintrc.js

This file was deleted.

1 change: 0 additions & 1 deletion js/.prettierrc.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
arrowParens: 'avoid'
bracketSpacing: true
jsxBracketSameLine: false
semi: true
singleQuote: true
tabWidth: 2
Expand Down
4 changes: 0 additions & 4 deletions js/dist/index.d.ts

This file was deleted.

1 change: 0 additions & 1 deletion js/dist/index.js

This file was deleted.

11 changes: 0 additions & 11 deletions js/dist/instructions.d.ts

This file was deleted.

46 changes: 0 additions & 46 deletions js/dist/main.d.ts

This file was deleted.

24 changes: 0 additions & 24 deletions js/dist/state.d.ts

This file was deleted.

23 changes: 0 additions & 23 deletions js/dist/utils.d.ts

This file was deleted.

Loading
Loading