Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
peroxy committed Sep 12, 2024
1 parent bda33c4 commit 0a7ca38
Show file tree
Hide file tree
Showing 193 changed files with 40,541 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
dist
node_modules
src/@codegen
src/accounts
src/errors
src/instructions
src/types
28 changes: 28 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint', 'import', 'mocha'],
extends: ['eslint:recommended', 'plugin:@typescript-eslint/eslint-recommended', 'prettier'],
env: {
node: true,
es6: true,
},
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module',
},
rules: {
'@typescript-eslint/no-unused-vars': ['error', { varsIgnorePattern: '^_', argsIgnorePattern: '^_' }],
'no-case-declarations': 'off',
'no-unused-vars': ['warn', { varsIgnorePattern: '^_', argsIgnorePattern: '^_' }],
},
settings: {
'import/resolver': {
node: {
extensions: ['.js', '.jsx', '.d.ts', '.ts', '.tsx'],
moduleDirectory: ['src'],
paths: 'src',
},
},
},
};
32 changes: 32 additions & 0 deletions .github/workflows/prettier.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Prettier

on:
push:
branches:
- master
- 'release/**'
pull_request:
branches:
- master
- 'release/**'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Cache dependencies
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }}
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Run eslint
run: |-
yarn lint
90 changes: 90 additions & 0 deletions .github/workflows/release_action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Publish Release
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
inputs:
version:
description: 'Version to publish, by semver keyword.'
required: true
default: patch
type: choice
options:
- patch
- minor
- major

jobs:
release:
runs-on: ubuntu-latest
env:
# NPM automation token (skips 2FA)
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: recursive
token: ${{ secrets.HUBBLEPROTOCOLBOT_WRITE_REPO_PAT }} # use bot to avoid branch protection

- name: Master-branch check
run: |
echo "Must be on master branch to publish the package."
exit 1
if: github.ref != 'refs/heads/master'

- name: Setup .npmrc file for publish
uses: actions/setup-node@v3
with:
node-version: '19'
registry-url: 'https://registry.npmjs.org'

- name: Configure Git User
run: |
git config --global user.name "Kamino Bot"
git config --global user.username "kamino-bot"
git config --global user.email "[email protected]"
- name: Install dependencies
run: |
yarn install --frozen-lockfile
- name: Build package
run: yarn build

- name: Get latest version
id: get_latest_version
run: |
latest_version=$(npm view @kamino-finance/scope-sdk version)
echo "Latest version: $latest_version"
echo "::set-output name=latest_version::$latest_version"
- name: Bump version
uses: anothrNick/[email protected]
id: semver
env:
GITHUB_TOKEN: ${{ secrets.HUBBLEPROTOCOLBOT_WRITE_REPO_PAT }}
DEFAULT_BUMP: ${{ inputs.version }}
DEFAULT_BRANCH: master
INITIAL_VERSION: ${{ steps.get_latest_version.outputs.latest_version }}
WITH_V: false
RELEASE_BRANCHES: master
TAG_CONTEXT: repo
PRERELEASE: false
VERBOSE: false

- name: Publish to npm
run: yarn publish --new-version ${{ steps.semver.outputs.new_tag }}

- name: Create git commit
# force push to avoid branch protection
run: |
yarn config set version-git-message "@kamino-finance/scope-sdk:%s"
yarn version --new-version ${{ steps.semver.outputs.new_tag }}
git push --force origin master
- name: Create Git tag
if: steps.semver.outputs.tag_created == 'true'
run: |
git tag "v${{ steps.semver.outputs.new_tag }}"
git push origin ${{ steps.semver.outputs.new_tag }}
43 changes: 43 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Tests
on:
pull_request:
branches:
- master
push:
branches:
- master

env:
solana_version: 'v1.18.15'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: hubbleprotocol/[email protected]
id: solana-setup
with:
solana-version: ${{ env.solana_version }}
rust-shared-key: 'tests'
- name: Cache dependencies
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }}
- uses: actions/setup-node@v3
with:
node-version: 19
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build
run: yarn build
- name: Run tests
# Add solana binaries to path - todo should not be needed
run: |
echo "/home/runner/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH
yarn start-validator-and-test
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
dist/
node_modules/
test-ledger/
.idea/
keys/localnet/farms.json
keys/localnet/owner.json
.env
7 changes: 7 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
node_modules
tests
deps
test-ledger
.idea
.github

15 changes: 15 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
dist/
docs/
node_modules/
*.md
src/kamino-client
src/meteora_client
src/raydium_client
src/whirlpools-client
test-ledger/
deps/
src/@codegen
src/accounts
src/errors
src/instructions
src/types
10 changes: 10 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"proseWrap": "never",
"semi": true,
"trailingComma": "es5",
"singleQuote": true,
"jsxSingleQuote": false,
"printWidth": 120,
"tabWidth": 2,
"bracketSpacing": true
}
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Scope SDK

The Scope SDK is a TypeScript client SDK for easy access to the [Scope price oracle aggregator](https://github.com/kamino-finance/scope/) for Solana.

## Install

[![npm](https://img.shields.io/npm/v/@kamino-finance/scope-sdk)](https://www.npmjs.com/package/@kamino-finance/scope-sdk)

```shell
npm install @solana/web3.js @kamino-finance/scope-sdk
```

## Usage

```javascript
import { Scope, ScopeToken } from '@kamino-finance/scope-sdk';
import { clusterApiUrl, Connection } from '@solana/web3.js';

const connection = new Connection(clusterApiUrl('mainnet-beta'));
const scope = new Scope('mainnet-beta', web3Client.connection);

// get all prices supported by Scope Oracle
const oraclePrices = await scope.getOraclePrices();
```
14 changes: 14 additions & 0 deletions deps/idl-mainnet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"pubkey": "AWUuZ6o4ZJX2fDqjUqDaA1pfHenZ6XEbmuTamMgM911E",
"account": {
"lamports": 46618080,
"data": [
"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"base64"
],
"owner": "HFn8GnPADiny6XqUoWE8uRPPxb29ikn4yTuPa9MF2fWJ",
"executable": false,
"rentEpoch": 18446744073709551615,
"space": 6570
}
}
Binary file added deps/scope.so
Binary file not shown.
74 changes: 74 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"name": "@kamino-finance/scope-sdk",
"description": "Scope Oracle SDK",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"version": "7.0.0",
"scripts": {
"prepublish": "yarn build",
"build": "rm -rf dist/; tsc",
"test": "npx ts-mocha tests/**/*.test.ts --exit --timeout 60000",
"watch": "tsc --watch",
"lint": "yarn prettier --check .; yarn eslint .",
"lint:fix": "yarn prettier --write .; yarn eslint . --fix",
"start-validator": "solana-test-validator --bpf-program HFn8GnPADiny6XqUoWE8uRPPxb29ikn4yTuPa9MF2fWJ ./deps/scope.so --clone 3NJYftD5sjVfxSnUdZ1wVML8f3aC6mp1CXCL6L7TnU8C --quiet --reset -u m",
"start-validator-and-test": "yarn start-server-and-test 'yarn start-validator' http://127.0.0.1:8899/health test",
"codegen": "anchor-client-gen ./src/scope.json ./src/ --program-id HFn8GnPADiny6XqUoWE8uRPPxb29ikn4yTuPa9MF2fWJ && anchor-client-gen ./src/kamino.json ./src/@codegen/kamino --program-id 6LtLpnUFNByNXLyCoK9wA2MykKAmQNZKBdY8s47dehDc"
},
"repository": {
"type": "git",
"url": "git+https://github.com/kamino-finance/scope-sdk.git"
},
"keywords": [
"kamino-finance",
"common",
"sdk",
"client",
"scope"
],
"author": "Kamino Finance",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/kamino-finance/scope-sdk/issues"
},
"homepage": "https://github.com/kamino-finance/scope-sdk",
"dependencies": {
"@coral-xyz/anchor": "^0.29.0",
"@solana/buffer-layout": "^4.0.1",
"@solana/web3.js": "^1.78.4",
"bn.js": "^5.2.1",
"decimal.js": "^10.3.1"
},
"devDependencies": {
"@types/bn.js": "^5.1.5",
"@types/bs58": "^4.0.4",
"@types/chai": "^4.3.5",
"@types/chai-as-promised": "^7.1.8",
"@types/mocha": "^10.0.7",
"@types/node-fetch": "^2.6.7",
"@typescript-eslint/eslint-plugin": "^5.5.0",
"@typescript-eslint/parser": "^5.5.0",
"anchor-client-gen": "^0.28.1",
"chai": "^4.3.7",
"chai-as-promised": "^7.1.1",
"chai-bignumber": "^3.1.0",
"chai-decimaljs": "^0.0.1",
"eslint": "^8.4.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-airbnb-typescript": "^16.1.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-mocha": "^10.1.0",
"eslint-plugin-react": "^7.27.1",
"mocha": "^10.2.0",
"prettier": "^3.3.2",
"start-server-and-test": "^2.0.0",
"ts-mocha": "^10.0.0",
"tweetnacl-ts": "^1.0.3",
"typescript": "^5.5.4",
"typescript-eslint": "^0.0.1-alpha.0"
},
"publishConfig": {
"access": "public"
}
}
Loading

0 comments on commit 0a7ca38

Please sign in to comment.