Go to file
microwavedcola1 e623b8c276
Enforce safety limits while borrowing, while computing max swap source, and max spot order base/quote (#642)
* --wip-- [skip ci]

* enforce safety limits while borrowing

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* --wip-- [skip ci]

* --wip-- [skip ci]

* --wip-- [skip ci]

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* Fixes from review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

---------

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2023-07-13 16:29:13 +02:00
.github CI: Fix verifiable build workflow 2023-05-16 13:31:30 +02:00
3rdparty Update anchor to v0.27.0, stop using submodule (#582) 2023-05-12 13:54:53 +02:00
anchor-tests Update package.json build steps and move js scripts out of src folder (#470) 2023-02-22 08:36:59 +01:00
bin liquidator: when rebalancing allow multi-hop jupiter routes 2023-07-12 10:32:35 +02:00
cd Add prometheus metrics to crank (#517) 2023-03-29 15:51:32 +01:00
docs Add doc generation job (#450) 2023-02-13 08:29:50 +01:00
lib liquidator: when rebalancing allow multi-hop jupiter routes 2023-07-12 10:32:35 +02:00
migrations Update package.json build steps and move js scripts out of src folder (#470) 2023-02-22 08:36:59 +01:00
programs Bump version and idl to v0.17.1 2023-07-03 19:54:21 +02:00
py rename 2022-03-01 20:55:10 +01:00
ts/client Enforce safety limits while borrowing, while computing max swap source, and max spot order base/quote (#642) 2023-07-13 16:29:13 +02:00
.dockerignore Add fly deploy scripts (#490) 2023-03-20 14:59:43 +01:00
.env.sample add dotenv for client config vars 2022-12-05 14:48:06 -05:00
.eslintignore add eslint config and fix errors 2022-08-04 13:42:41 -04:00
.eslintrc.json ts client improvement (#254) 2022-09-29 15:51:09 +02:00
.gitignore cleanup 2023-06-27 12:47:01 +02:00
.gitmodules Update anchor to v0.27.0, stop using submodule (#582) 2023-05-12 13:54:53 +02:00
.mocharc.json Fix mocha runner 2023-02-22 11:19:03 +01:00
.prettierignore run prettier and add prettierignore 2022-08-04 14:13:46 -04:00
Anchor.toml Don't compile the margin-trade fixture all the time 2022-12-08 20:48:44 +01:00
Audit_OtterSec_Mango_v0.7.0.pdf Add OtterSec audit document (#560) 2023-04-25 09:38:42 +02:00
CHANGELOG.md Changelog for v0.17.1 2023-07-03 19:25:42 +02:00
Cargo.lock Bump version and idl to v0.17.1 2023-07-03 19:54:21 +02:00
Cargo.toml manage dependencies in workspace (#588) 2023-05-17 20:48:14 +02:00
DEVELOPING.md Enable self-trading protection (#533) 2023-05-15 10:40:41 +02:00
Dockerfile Use ghcr.io container registry (#549) 2023-04-17 16:57:51 +01:00
HOW-TO-RELEASE.md update 2022-07-14 10:14:23 +02:00
LICENSE License: Mark instructions GPLv3 and everything else MIT (#454) 2023-02-15 08:42:07 +01:00
Procfile Revert "try to override bad node-fetch code" 2023-06-18 09:59:49 +02:00
Program ts: Additional serum3 support (#196) 2022-08-31 11:36:44 +02:00
README.md Update anchor to v0.27.0, stop using submodule (#582) 2023-05-12 13:54:53 +02:00
RELEASING.md Update anchor to v0.27.0, stop using submodule (#582) 2023-05-12 13:54:53 +02:00
SECURITY.md add security policy and on-chain metadata (#361) 2023-01-04 18:13:29 +00:00
fix-npm-tag.sh add script to rename tag added by npm 2023-02-01 13:49:31 +01:00
fly.toml quote less 2023-03-20 19:23:47 +01:00
idl-fixup.sh idl deploy workaround, reduce size by cutting largest fields i.e. docs (#334) 2022-12-14 09:55:25 +01:00
mango_v4.json Bump version and idl to v0.17.1 2023-07-03 19:54:21 +02:00
package.json v0.17.21 2023-07-13 12:15:55 +02:00
release-to-devnet.sh Update anchor to v0.27.0, stop using submodule (#582) 2023-05-12 13:54:53 +02:00
run-anchor-tests.sh Update anchor to v0.27.0, stop using submodule (#582) 2023-05-12 13:54:53 +02:00
rust-toolchain.toml Make clippy happy (#580) 2023-05-09 21:08:55 +02:00
tsconfig.cjs.json Ts keeper (backup for rust keeper) (#546) 2023-04-19 17:42:13 +02:00
tsconfig.esm.json make consistent 2023-03-14 13:14:45 +01:00
tsconfig.json make consistent 2023-03-14 13:14:45 +01:00
tsconfig.types.json v0.9.1 2023-03-13 14:29:47 -04:00
update-local-idl.sh Update anchor to v0.27.0, stop using submodule (#582) 2023-05-12 13:54:53 +02:00
yarn.lock Merge branch 'main' into deploy 2023-07-03 09:02:25 +02:00

README.md

work in progress

License

See the LICENSE file.

The majority of this repo is MIT licensed, but some parts needed for compiling the solana program are under GPL.

All GPL code is gated behind the enable-gpl feature. If you use the mango-v4 crate as a dependency with the client or cpi features, you use only MIT parts of it.

The intention is for you to be able to depend on the mango-v4 crate for building closed-source tools and integrations, including other solana programs that call into the mango program.

But deriving a solana program with similar functionality to the mango program from this codebase would require the changes and improvements to stay publicly available under GPL.

Development

See DEVELOPING.md

Dependencies

  • rust version 1.65.0
  • solana-cli 1.14.9
  • anchor-cli 0.27.0
  • npm 8.1.2
  • node v16.13.1

Submodules

After cloning this repo you'll need to init and update its git submodules. Consider setting the git option submodule.recurse=true.

Deployments

  • devnet: 4MangoMjqJ2firMokCjjGgoK8d4MXcrgL7XJaL3w6fVg
  • mainnet-beta: 4MangoMjqJ2firMokCjjGgoK8d4MXcrgL7XJaL3w6fVg
  • primary mango group on mainnet-beta: 78b8f4cGCwmZ9ysPFMWLaLTkkaYnUjwMJYStWe5RTSSX

Release

For program deployment, see RELEASING.md.

Here are steps followed while performing a npm package release note: the UI currently uses code directly from github, pointing to the ts-client branch

  • use yarn publish to release a new package, ensure compatibility with program release to mainnet-beta
  • fix the tag auto added by yarn to match our internal convention, see script fix-npm-tag.sh, tags should look like this e.g.npm-v0.0.1, note: the npm package version/tag should not necessarily match the latest program deployment