Commit Graph

98 Commits

Author SHA1 Message Date
Jon Cinque 21f8af34e7
Update all solana dependencies to 1.7.3, fix issues (#1958)
* Update all dependencies to 1.7.3, fix issues

* Remove esm from mocha

* Fix missed token test

* Also update rust version

* token-swap: update tolerance on sim test

* Run `cargo clippy --fix` for needless_borrow errors

* Rerun cargo fmt
2021-06-25 00:39:08 +02:00
Tyera Eulberg e28af24443 Bump solana version 2021-06-14 16:02:27 -06:00
Jon Cinque de8433e815
ci: Split out test-bpf into separate workflows for each program (#1893)
* ci: Split token, token-swap, and token-lending out

* Remove token lending js in main runner

* token-swap: Update proptest to trigger build

* Remove unused Cargo.lock file

* lending: Update proptest to trigger lending build

* Fix lending test

* Try re-using action

* binary-oracle-pair: Bump token version to trigger build

* Reference action differently

* Add checkout step before local action

* Move out cargo test bpf step

* Add more programs

* Update example file to trigger job

* Update library file to trigger build

* Update name-service file to trigger build

* Update record file to trigger build

* Update shared memory file to trigger build

* Add pull request runners for each probram / library

* Fix pull-request yml file referencing unknown step
2021-06-11 22:35:00 +02:00
Sebastian Bor 6b3fbb8ff5
chore: update solana to 1.6.7 and rust to 1.52.1 (#1792) 2021-05-25 13:57:45 +01:00
Pierre 6ac82f9caf
token-swap typescript: Move things around, fix typing problems (#1643)
* Move things around, fix typing problems

* oups output built in src

* fix typegen

* fix cli

* fix linting, apply review comments and add forgotten package-lock.json change

* remove typegen.sh and move simpler command to package.json

* Move things around, remove babel and rollup

* Update packages

* Add browser dist to eslintignore

Co-authored-by: Arrowana <8245419+Arrowana@users.noreply.github.com>
Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2021-05-10 22:30:13 +02:00
Michael Vines 18468b513f Update to Rust 1.51.0 2021-04-18 20:27:27 -07:00
Jon Cinque 8f325dcd2d
math: Improve sqrt using bit-wise operations (#1562)
* math: Improve sqrt guess using bit-wise operations

* Run fmt and bump up instruction for failed test

* Bump up compute cost from CI failure

* Update CI version of toolchain

* Address feedback
2021-04-05 14:48:27 +02:00
Jon Cinque 34e66c6bad
lending: Update JS tests to solana-test-validator (#1513)
* lending: Update JS tests to solana-test-validator

* Add solana tools install

* Fix oopsie on the path

* Move where deployed programs go
2021-03-27 13:42:16 +01:00
Michael Vines af5fdb3146 Bump Rust version to 1.50.0 2021-03-16 22:22:59 -07:00
Michael Vines 686444088b Bump Solana version to 1.5.15 2021-03-16 18:33:37 -07:00
Tyera Eulberg 81ad7407d0
Remove debug dir between bpf and host crates (#1461) 2021-03-16 22:51:45 +00:00
Jon Cinque d692ff1505
token-swap: Use solana-test-validator in JS tests (#1367)
* Update swap pool owner in docs

* token-swap: Use solana-test-validator for JS tests

* Revert one more change

* Revert doc change

* Add solana-test-validator to ci

* Fix CI

* Revert docs change

* Move where to deploy programs in CI
2021-03-05 10:34:29 +01:00
Ryo Onodera 68b8da2996
Support associated token for JS (Also, make the program testable) (#1364)
* Implement some js helpers for associated tokens

* Create integration test and fix hard-coding in spl-associated-token

* Run lint:fix and pretty:fix

* Run flow as well...

* More robust test fixture setup

* Revert api breaking part

* Fix tests...

* Populate ts/flow type definitions

* Improve test a bit

* More consistent arg order; docs; more tests

* lints and pretty

* type definition updates and test tweaks

* More simplification...

* More cleanup

* Address review comments and small cleanings

* Bump the version
2021-03-03 20:56:22 +09:00
Justin Starry 6cd9c768ad chore: add defs check 2021-02-13 17:03:42 +08:00
dummytester123 d1e5fcfc7e
Add types for bnjs (#1194)
* Add types for bnjs

* Vers bump

* Fix for js test token

* Update web3js lib

* Bump to 0.1.0
2021-02-11 09:34:32 +08:00
Jon Cinque d16da5b913
Update rust stable to 1.49 (and add token swap program id) (#1158)
* Update token swap program id

* Update rust stable to 1.49
2021-02-04 14:20:15 +01:00
Justin Starry f61d7a89a6
lending: Use fair obligation health factor calculation (#1119)
* lending: Use fair health factor calulation and handle dust

* ci: fix github action caching
2021-01-28 15:56:07 +08:00
Jon Cinque 40b7690a58
swap: Add rounding correction for deposit / withdraw (#1061)
* Add rounding specification for deposit / withdraw

The fuzzing test was improved to make sure that the value of pool tokens
(minus fees) never changed, which revealed a calc bug with deposits and
withdrawals.  If someone withdraws, they can take additional small
value out of the pool in the form of truncated value.

Before, deposit and withdrawal used the same calculation, rounding up the token
A and B amounts.  Remember that deposit / withdrawal specify the pool
token amount, and calculate the amount of A / B required to get to that
many pool tokens.  On withdrawal, we were giving back a little bit too
much.  The concept is that everything would even out since a deposit is
required for a withdrawal, which makes everything a wash.

Fuzzing found this issue very quickly! The change is to introduce a
rounding parameter to avoid ever giving away too much value, either
during deposit or withdrawal.

* Cleanup

* Add withdraw test

* Cleanup

* Cargo fmt

* Remove curve tests from fuzzing cfg

* Update JS test

* Cleanup test

* Update honggfuzz again

* Fix fee on JS test

* Force correct version of honggfuzz for CI (remove later)

* Improve value tests using PreciseNumber everywhere

* Fix ceiling

* Add comment for 0 tokens

* Fix ceiling div, add in constant price calc

* Revert ceiling division as template and use trait, too much boilerplate

* Run cargo fmt
2021-01-15 18:17:27 +01:00
Jon Cinque fd24042815
Pin honggfuzz to 0.5.52 (#1072) 2021-01-14 23:07:07 +01:00
Justin Starry cf20480d79
Pin rust nightly version until ICE is fixed (#1063) 2021-01-14 15:28:44 +08:00
Jon Cinque da71944406
fuzz: Dump error file as hex instead of using cat (#1054)
* Dump file as hex instead of using cat

* Give better instructions of what to do
2021-01-11 23:04:11 +01:00
Jon Cinque 95ad894c25
Print fuzz file content on failure for local repro (#964) 2020-12-21 18:55:47 +01:00
Michael Vines 829b51c9f4 Update to Rust 1.48.0 2020-12-17 21:24:30 -08:00
Michael Vines 8ae34d2137 Update to Solana 1.5.0 2020-12-17 21:24:30 -08:00
Michael Vines da98fc691f Port token js tests from solana-localnet to solana-test-validator 2020-12-17 21:24:30 -08:00
Trent Nelson 096d2ec5e2 Bump CI solana CLI version to v1.4.16
fixes criterion setup issue
2020-12-16 22:13:01 +00:00
Michael Vines e7ca84b9ee Disable client_ristretto build 2020-12-03 05:39:55 +00:00
Michael Vines 158fa1dea6 Upgrade to Solana v1.4.14 2020-12-03 05:39:55 +00:00
Jon Cinque b40e0dd3fd
token-swap: Add fuzzer for swap / withdraw / deposit (#875)
* token-swap: Add fuzzer for swap / withdraw / deposit

* Run cargo fmt

* Make end-to-end testing work

* Fix test failures

* Cleanup for review

* Remove Clone trait for Initialize

* Fix building fuzz targets

* Fix fuzz withdraw logic to avoid ZeroTradingTokens error

* Cargo fmt

* Clippy / fmt again

* Integrate fuzzer in main workspace to share clippy / fmt

* Fix clippy

* Switch to stable honggfuzz that could work with BPF

* Update to most recent honggfuzz

* Add build / run requirements

* Add fuzz CI and cleanup for honggfuzz

* Revert to using fuzz feature to integrate with workspace

* Make fuzz script executable

* Refactor and cleanup

* Add nightly run

* Fix workflow typo

* Add runtime for pull request fuzz workflow

* Fix unrelated new clippy errors
2020-11-30 13:01:31 +01:00
Michael Vines c6a4ac9a82 Bump solana version to v1.4.9 2020-11-17 20:02:17 -08:00
Michael Vines 5030a87021 Upgrade to Solana 1.4.7 2020-11-12 11:05:20 -08:00
Jack May 686c12984b
Add c examples (#823) 2020-11-11 00:54:15 -08:00
Jack May 7d4e51399a
Add Rust examples (#815) 2020-11-11 00:01:10 -08:00
Michael Vines eafa215c0d Reduce cargo-build-test.sh 2020-11-06 21:29:04 -08:00
Michael Vines 901d43f965 Use cargo-test-bpf 2020-11-06 21:29:04 -08:00
Justin Starry 38bccbfc82
Simplify github action with scripts (#769)
* Simplify github action with scripts

* fix deps

* fix path

* feedback

* feedback

* shift some things

* clean up

* Update pull-request.yml
2020-11-04 10:50:07 +08:00
Justin Starry 138ca68a87
Switch to Github Actions for CI (#768) 2020-11-01 18:42:51 +08:00
Jon Cinque 9cd1cb0900
Token-swap: Add "production mode" hard-coded fee constraints (#731)
* Add statically configured program constraints

* Allow missing host fee account

* Run cargo fmt + clippy

* Update JS for new host fee account param

* Fix merge issues

* Add host fee to curve, constrain on curves

* Cleanup static variable

* Add production test to CI

Integrate review feedback

* Run cargo fmt, clippy, prettier

* Re-run cargo fmt

* Fix test for eslint / prettier clash
2020-10-29 12:52:17 +01:00
Greg Fitzgerald 6906200174
Cleanup themis (#742)
* Cleanup themis

* Speed up seeding fee-payers
* Add utility functions

* Remove BN variant of themis
2020-10-27 16:57:09 -06:00
Michael Vines 47d31cc6f2 tmp: bpf first 2020-10-24 19:21:38 -07:00
Michael Vines 80e29ef6b9 Port SPL to solana-program and `cargo build-bpf` 2020-10-24 19:21:38 -07:00
Jack May 08d9999f99
add shared-memory program (#611)
* add shared-memory program

* add offset and reduce shared object size
2020-10-14 23:50:57 +00:00
Jack May 3dff5766f6 Fix program dump 2020-10-13 14:53:56 -07:00
Justin Starry a4f09fe05e
SPL token lending scaffolding (#582)
* Scaffolding for spl-token-lending program

* Scaffolding for TS client
2020-10-09 13:29:51 +08:00
Greg Fitzgerald b020dd29c1
Add Ristretto version of THEMIS (#566)
* Add Ristretto version of THEMIS

BN BPF instruction counts:
  CalculateAggregate:    83,511
  SubmitProofDecryption: 33,755,027

Ristretto BPF instruction counts:
  CalculateAggregate:    13,049,558
  SubmitProofDecryption: 13,149,232

* Fix CI script
2020-10-05 18:49:38 -06:00
Trent Nelson a9e5ec45ff CI: Run THEMIS tests 2020-10-01 11:47:12 -06:00
Trent Nelson 16677f9b19 CI: Make script.sh less spammy when run locally 2020-10-01 11:47:12 -06:00
Jon Cinque ba76d520eb
token-swap js: Prepare package for npm (#475)
* Run `pretty` properly
* Add `build:program` like for spl-token
* Add TypeScript to CI
* snake_case -> camelCase variables
* Combine transactions on swap initialization
* Make instruction functions static
2020-09-18 19:10:21 +02:00
Jon Cinque 4dd9754624
Re-enable token-swap ci (#442) 2020-09-14 16:56:00 +02:00
Jon Cinque f5e0d793a9
token-swap: Swap instruction fix and update libs for CI (#408)
* token-swap: Fix swap instruction

* Update SDK libs and fix outstanding issues

* Run lint in token/js

* Disable CI token-swap js tests

* Update code for web3.js 0.75.0

* Update output -> destination verbiage for clarity / consistency
2020-09-10 20:16:50 +02:00