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

Repoint to new Batcher beta Ghonest contract #414

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
c289b9a
pipelines: commit to trigger cicd
cyrilevos Apr 21, 2023
6ac33cc
Added michelson files to repo for both mainnet and ghostnet
glottologist Apr 21, 2023
eed92a7
Merge branch 'main' of github.com:marigold-dev/batcher
glottologist Apr 21, 2023
f4c6dc5
Added metadata file
glottologist Apr 21, 2023
b797f98
Fixed issue with wallet disconnecting
glottologist Apr 23, 2023
53d4cb8
Correctly assigned wallet after reload
glottologist Apr 23, 2023
61bdc02
Corrected open and closed holdings
glottologist Apr 23, 2023
55a794d
Merge branch 'release-mainnet' into main
glottologist Apr 23, 2023
e9cc614
Corrected Network type and mainnet token hash
glottologist Apr 24, 2023
b461a1f
Merge branch 'release-mainnet' into main
glottologist Apr 24, 2023
c0ff625
Clear active account on disconnect
glottologist Apr 24, 2023
aa5d41d
Merge branch 'main' of github.com:marigold-dev/batcher
glottologist Apr 24, 2023
ef72a0f
Merge branch 'release-ghostnet' into main
glottologist Apr 24, 2023
00622a3
Merge branch 'release-mainnet' into main
glottologist Apr 24, 2023
f5be65b
Added interim connecting captions for wallet loading
glottologist Apr 24, 2023
8099a86
Merge branch 'main' of github.com:marigold-dev/batcher
glottologist Apr 24, 2023
3420f74
Merge branch 'release-mainnet' into main
glottologist Apr 24, 2023
a0d1aff
Merge branch 'release-ghostnet' into main
glottologist Apr 24, 2023
f5ca683
Fixed issue with button showing connecting
glottologist Apr 24, 2023
8144a3a
Fixed NaN issue in Holdings tab
glottologist Apr 24, 2023
23dce33
Merge branch 'release-ghostnet' into main
glottologist Apr 24, 2023
cd9d079
Merge branch 'release-mainnet' into main
glottologist Apr 24, 2023
5cb41a1
Fixed issue with token balances updating
glottologist Apr 25, 2023
1abd899
Merge branch 'release-ghostnet' into main
glottologist Apr 25, 2023
9e869d3
Merge branch 'release-mainnet' into main
glottologist Apr 25, 2023
e74260f
Check for null user address on token update to reduce errors to the c…
glottologist Apr 25, 2023
d08235d
Filtered out 204 responses from tzkt for volumes
glottologist Apr 25, 2023
b8f48bb
Merge branch 'main' of github.com:marigold-dev/batcher
glottologist Apr 25, 2023
64d974c
Updated About page
glottologist Apr 25, 2023
8ab2d38
Updated About page
glottologist Apr 25, 2023
800f583
Added nix flake for project
glottologist Apr 28, 2023
0e0498f
Added skeleton ts project
glottologist Apr 28, 2023
1343a2f
Added initial skeleton for tg bot
glottologist Apr 28, 2023
5ac163f
Added html formatting to rates messages
glottologist Apr 28, 2023
d5ac749
Added raw operation socker sub
glottologist May 1, 2023
8b05402
Added deposit op to bot
glottologist May 1, 2023
64b18ba
Corrected tick filter
glottologist May 1, 2023
711dc87
Corrected deposit format for TG bot
glottologist May 1, 2023
92c0ac5
Corrected deposit amount for TG bot
glottologist May 1, 2023
872fbba
Corrected deposit amount for TG bot
glottologist May 1, 2023
ef910a4
Scaled amount for TG bot
glottologist May 1, 2023
6539f44
Added sedning of raw big map
glottologist May 1, 2023
acc8609
Corrected pair naming
glottologist May 1, 2023
ee93cac
Corrected scaling from rates message
glottologist May 1, 2023
903ad45
Use all socket messages
glottologist May 1, 2023
3ce0d77
PArse non formated big maps to json
glottologist May 1, 2023
1079617
Filtered user_batch_ordertypes from big_map updates
glottologist May 1, 2023
212cda6
Expanded log message
glottologist May 1, 2023
c82a53c
Added additional logging for bot
glottologist May 1, 2023
a9ebc4f
Changed filters on socket messages
glottologist May 1, 2023
ce4c8eb
Changed filters on socket messages
glottologist May 1, 2023
815473c
Changed filters on socket messages
glottologist May 1, 2023
55921b2
Changed filters on socket messages
glottologist May 1, 2023
e9e9aaf
Filter for transaction that are contract calls
glottologist May 1, 2023
089ccc7
Filter for transaction that are contract calls
glottologist May 1, 2023
1664f59
Log ops received from socket
glottologist May 1, 2023
73eeefe
Corrected filter
glottologist May 2, 2023
70eee41
Added skeleton for batch updates
glottologist May 2, 2023
4fd085e
Added batch update formatter showing volumes
glottologist May 2, 2023
2b75fbd
Assisting compiler
glottologist May 2, 2023
bf4f02f
Corrected json path in batch change
glottologist May 2, 2023
ecfe4ea
Corrected html encoding for batch change
glottologist May 2, 2023
305fea7
Tidy up on logging
glottologist May 2, 2023
eb66a18
Corrected object path for cleared message
glottologist May 2, 2023
07f14e3
Added rate name into batch status message
glottologist May 2, 2023
f705816
Corrected closing message detail
glottologist May 2, 2023
706dd9f
Added filter on messages
glottologist May 9, 2023
c06fd21
remove node_modules folder from repo by rewriting history (squash thi…
cyrilevos May 11, 2023
103ecd3
Merge branch 'release-ghostnet' into main
cyrilevos May 11, 2023
557f615
telegram bot for mainnet version (#333)
cyrilevos May 11, 2023
55a425a
Merge branch 'release-mainnet' into main
cyrilevos May 11, 2023
41a7a5e
Corrected mainnet variables
glottologist May 12, 2023
f3aa20b
Merge branch 'release-ghostnet' into main
glottologist May 12, 2023
9adb8cc
Corrections for batcher notifications bot (mainnet) (#335)
glottologist May 12, 2023
296abab
Removed rate notifications from ghostnet nbot
glottologist May 18, 2023
42f35ea
Merge branch 'release-ghostnet' into main
glottologist May 18, 2023
23470b1
325 bot jit liquidity (#337)
glottologist May 19, 2023
69c80b2
pipelines: use more recent versions of action blocks before deprecation
cyrilevos May 22, 2023
39716fe
Disabled swap button if the batch is closed. Additionally added a wa…
glottologist May 24, 2023
f3e101e
Disabled redeem button if there are no cleared holdings (#341)
glottologist May 24, 2023
b747054
Fix merge issues and tidy up
glottologist May 24, 2023
b080a25
Added batch number in info panel (#342)
glottologist May 24, 2023
01f758e
Added current and last to batch prefix
glottologist May 26, 2023
d9cf127
Merge branch 'release-ghostnet' into main
glottologist May 26, 2023
f81e871
Merge branch 'release-mainnet' into main
glottologist May 26, 2023
6173b67
Changed to use a reduced swap structure (name only) to reduce duplica…
glottologist Jun 8, 2023
8495a5d
344 reduce duplication in contract storage (#351)
glottologist Jun 9, 2023
d895076
Fixed merge issues
glottologist Jun 9, 2023
a71b585
346 only open batches on first trade (#371)
glottologist Jun 20, 2023
80eea91
Moved burn from deposit. Allowed redemption to calculate how much of…
glottologist Jun 20, 2023
d6ccd0a
327-move-fees style suggestion (#373)
aguillon Jun 20, 2023
9cba481
345 remove batches from bigmap imp2 (#377)
glottologist Jul 11, 2023
60cf52f
380 add documentation (#381)
glottologist Jul 13, 2023
fa6bd9a
380 add documentation (#382)
glottologist Jul 13, 2023
d1f67d4
Cancellations (#375)
glottologist Jul 17, 2023
f6cc409
Revive tests (#384)
glottologist Aug 8, 2023
fa5ab1d
w
glottologist Aug 9, 2023
612c9b8
[1
glottologist Aug 9, 2023
e24bb8b
Added market maker doc
glottologist Aug 10, 2023
e737e4b
Added market maker doc
glottologist Aug 10, 2023
31d2879
Added Add Liquidity enpoint
glottologist Aug 14, 2023
ea94b98
Added test for adding liquidity
glottologist Aug 14, 2023
ee3d7cf
Add liquidity to market maker and test
glottologist Aug 22, 2023
8e2097b
Added add/remove liquidity and claim rewards tests. Added view for g…
glottologist Aug 30, 2023
43ebce3
Started splitting market maker off into own contract
glottologist Sep 7, 2023
7528a6a
Seperated out tests
glottologist Sep 7, 2023
5a60310
Merged makefile
glottologist Sep 7, 2023
7d5f7c3
Split out mm contract from Batcher and pulled out common code into sh…
glottologist Sep 7, 2023
3480734
Amended tests to work with new split contracts
glottologist Sep 8, 2023
4a8ceda
Populated ghostnet storage for marketmaker
glottologist Sep 12, 2023
71d5b8f
Added get market holdings mechanism
glottologist Sep 12, 2023
4686b2a
Added user holdings display and buttons for MM
glottologist Sep 13, 2023
bf30e3c
Added contract calls
glottologist Sep 14, 2023
85a1330
Added Batcher modifications to handle fee payouts and makring a batch…
glottologist Sep 18, 2023
ec93d7b
Added placeholders for market vault operations against batcher
glottologist Sep 18, 2023
620fe4c
Added rebalancing up to amount exchange
glottologist Sep 21, 2023
f73d70c
Added redemption of holdings
glottologist Sep 21, 2023
248f03d
Added operator and deposit ops to utils
glottologist Sep 22, 2023
655474f
Added approve, deposit and revoke operations to the market maker
glottologist Sep 25, 2023
e7a5f3e
Added liquidity injection for market maker
glottologist Sep 26, 2023
5d7c487
Added additional tokens
glottologist Oct 5, 2023
a9666bd
Set up new pairs in ghostnet storage
glottologist Oct 5, 2023
fe06661
Added new tokens and pairs into market maker
glottologist Oct 5, 2023
e16af2b
Added new ghostnet batcher contract to mm storage
glottologist Oct 5, 2023
d48eb01
Added new ghostnet mm address to batcher ghostnet storage
glottologist Oct 5, 2023
5696905
Added new ghhostnet addresses to the config
glottologist Oct 5, 2023
d6c815f
Fix issue cmm (#407)
quentin-burg Oct 5, 2023
c77cc8a
Added redeem by batch
glottologist Oct 5, 2023
83f7a11
Fix CMM UI (#408)
quentin-burg Oct 5, 2023
9c8c05f
Merge branch 'release-ghostnet-beta' into 389-community-market-maker-1
glottologist Oct 5, 2023
ef68ee8
Fixed merge issues, rebuilt to deploy
glottologist Oct 6, 2023
2c6cd69
Added measure for mm contract
glottologist Oct 6, 2023
2284c2b
Skeleton token manager
glottologist Oct 10, 2023
ecb47a7
Added vault contract and moved michelson output to own folder
glottologist Oct 13, 2023
b1959ca
Test types
glottologist Oct 17, 2023
895f627
Adjusted Batcher to support calling the token manager
glottologist Oct 17, 2023
c04dd01
Removed unused code in Batcher
glottologist Oct 17, 2023
2f6ea0c
Added fee map insteand of single market maker address
glottologist Oct 17, 2023
97dc418
Added liquidity injection to Vault
glottologist Oct 17, 2023
33d87c2
Added reward distribution in vaults
glottologist Oct 23, 2023
5467257
Amended clean mechanism in makefule
glottologist Oct 23, 2023
213dc1b
Added liquidity injection request into market maker
glottologist Oct 24, 2023
a763aed
Fixed getting native tokens view call from vaults
glottologist Oct 24, 2023
bdedb9c
Fixed bug in upsert methods
glottologist Oct 24, 2023
4a4c782
Added a build step to build all contracts
glottologist Oct 24, 2023
08834cc
Fixed issue on makefile and tzbtc vault storage
glottologist Oct 24, 2023
55ace34
Added new vault endpoint call into Batcher for adding rewards to the …
glottologist Oct 24, 2023
06a7181
Added vault balance requests after add or remove liquidity and liquid…
glottologist Oct 25, 2023
f571a33
Removed balance assertion from deposit for testing
glottologist Oct 25, 2023
01be131
Removed foreign token assertions for testing
glottologist Oct 26, 2023
a60de19
Fixed silly token standard parsing error
glottologist Oct 26, 2023
9bd5d79
Fixed silly token standard parsing error
glottologist Oct 26, 2023
a2aa960
Fixed silly token standard parsing error
glottologist Oct 26, 2023
49de0db
Compile all for ghostnet
glottologist Oct 26, 2023
e917111
Moved assert balances into its own entry
glottologist Oct 28, 2023
6b4c980
Added clause to test batch for liquidity
glottologist Oct 28, 2023
a4103f6
Removed todo clause
glottologist Oct 28, 2023
a9c1535
Added debug view to vault to test token balance endpoints
glottologist Oct 30, 2023
fa03d3d
Adjusted callback types
glottologist Oct 30, 2023
ff06943
Adjusted vault process response
glottologist Oct 30, 2023
f1a85c8
Adjusted vault process response
glottologist Oct 30, 2023
690531f
Adjusted getBalance endpoint call opt
glottologist Oct 30, 2023
5600f79
Adjusted type of getBlanace response for callback
glottologist Oct 30, 2023
6f43ef4
:wrench: rewrite config due to new contracts architecture
Oct 17, 2023
af5b877
:recycle: redirect tokens management to token manager contract
Oct 17, 2023
1980265
:recycle: refactor components && fetch token vault informations
Oct 18, 2023
2f2042f
Updated ghostnet contracts in config
glottologist Oct 31, 2023
385eaed
Updated contract error codes
glottologist Oct 31, 2023
821cd20
Changed UI to support new contract structure
glottologist Nov 6, 2023
28fc3a5
Merge branch 'release-ghostnet-beta' into 410-further-split-out-batch…
glottologist Nov 7, 2023
7e60c32
Adjusted tick script to tick more pairs and also tick the market maker
glottologist Nov 8, 2023
3bdbdd2
Merge branch '410-further-split-out-batcher-and-mm-contracts-to-avoid…
glottologist Nov 8, 2023
e69d2fd
Amended tick operation to pull rates for all pairs
glottologist Nov 10, 2023
886cfc1
Adjusted tick script to call new unified tick endpoint and re-pointed…
glottologist Nov 10, 2023
63f315d
Repointed UI to new ghostnet contract
glottologist Nov 10, 2023
33ec6e0
Merge branch 'release-ghostnet-beta' into 410-further-split-out-batch…
glottologist Nov 10, 2023
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
16 changes: 16 additions & 0 deletions Dockerfile.tick.beta.ghostnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM oxheadalpha/flextesa:latest

RUN apk update && \
apk add bash && \
apk add curl && \
apk add jq

RUN octez-client --endpoint https://ghostnet.tezos.marigold.dev config update && \
octez-client import secret key oracle_account unencrypted:edskRzJUQ1xqCPkVXzT8EiUXjcCsXXkhpiHWE19fAV2JmqW68T6nVoXVPJyx99mjJzUa98NEeGr3kLcEh6NQGcpFKj7BoPRd88 --force

WORKDIR /etc/run

COPY ./tick.sh /etc/run/

CMD [ "/etc/run/tick.sh", "-b", "KT1GSDzo6PU8i732m8WuY9XcTyxiGRaYBsv2", "-m", "KT1T4dbnaNKpGLV89R6drrupy5HVE74bQE3r", "-f", "150" ]

2 changes: 2 additions & 0 deletions batcher-ui/src/config/contracts.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ const ghostnet = {
EURL_vault: 'KT1Gy8BPpJdAR6ZwgBaVeXrMW2pyX2NL8LSp',
};



const mainnet = {
batcher: 'KT1CoTu4CXcWoVk69Ukbgwx2iDK7ZA4FMSpJ',
market_maker: 'KT1TNX1YLCmPJN4rbwAUsUAdnqVYrZ5X5YNB',
Expand Down
53 changes: 39 additions & 14 deletions batcher/batcher.mligo
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ module Storage = struct
limit_on_tokens_or_pairs : nat;
liquidity_injection_limit_in_seconds : nat;
deposit_time_window_in_seconds : nat;
tick_errors: TickErrors.t;
}

end
Expand Down Expand Up @@ -799,12 +800,15 @@ end
type storage = Storage.t
type result = operation list * storage




[@inline]
let no_op (s : storage) : result = (([] : operation list), s)

type entrypoint =
| Deposit of external_swap_order
| Tick of string
| Tick
| Redeem
| Cancel of pair
| Change_fee of tez
Expand Down Expand Up @@ -967,8 +971,14 @@ let confirm_oracle_price_is_available_before_deposit
if Batch_Utils.is_batch_open batch then () else
let pair_name = get_rate_name_from_pair pair in
let valid_swap_reduced = get_valid_swap_reduced pair_name storage in
let (lastupdated, _price) = OracleUtils.get_oracle_price oracle_price_should_be_available_before_deposit valid_swap_reduced in
OracleUtils.oracle_price_is_not_stale storage.deposit_time_window_in_seconds lastupdated
let (lastupdated_opt, tes) = OracleUtils.get_oracle_price pair_name oracle_price_should_be_available_before_deposit valid_swap_reduced storage.tick_errors in
let ou = match lastupdated_opt with
| Some pu -> pu
| None -> failwith oracle_price_should_be_available_before_deposit
in
let lastupdated, _p = ou in
let succeeded, _tes = OracleUtils.oracle_price_is_not_stale pair_name storage.deposit_time_window_in_seconds lastupdated tes in
if succeeded then () else failwith oracle_price_is_stale

[@inline]
let confirm_swap_pair_is_disabled_prior_to_removal
Expand Down Expand Up @@ -1043,9 +1053,16 @@ let tick_price
(valid_swap : valid_swap)
(storage : storage) : storage =
let valid_swap_reduced = valid_swap_to_valid_swap_reduced valid_swap in
let (lastupdated, price) = OracleUtils.get_oracle_price unable_to_get_price_from_oracle valid_swap_reduced in
let () = OracleUtils.is_oracle_price_newer_than_current rate_name lastupdated storage.rates_current in
let () = OracleUtils.oracle_price_is_not_stale storage.deposit_time_window_in_seconds lastupdated in
let (lastupdated_opt, tes) = OracleUtils.get_oracle_price rate_name unable_to_get_price_from_oracle valid_swap_reduced storage.tick_errors in
let storage = {storage with tick_errors = tes; } in
if Option.is_none lastupdated_opt then storage else
let lastupdated, price = Option.unopt lastupdated_opt in
let succeeded,tes = OracleUtils.is_oracle_price_newer_than_current rate_name lastupdated storage.rates_current tes in
let storage = {storage with tick_errors = tes; } in
if not succeeded then storage else
let succeeded, tes = OracleUtils.oracle_price_is_not_stale rate_name storage.deposit_time_window_in_seconds lastupdated tes in
let storage = {storage with tick_errors = tes; } in
if not succeeded then storage else
let valid_tokens = TokenManagerUtils.get_valid_tokens storage.tokenmanager in
let oracle_rate = OracleUtils.convert_oracle_price valid_swap.oracle_precision valid_swap.swap lastupdated price valid_tokens in
let rates_current = update_current_rate (rate_name) (oracle_rate) (storage.rates_current) in
Expand All @@ -1062,17 +1079,25 @@ let tick_price


[@inline]
let tick
let tick_rate
(rate_name: string)
(vswpr: valid_swap_reduced)
(valid_tokens: ValidTokens.t_map)
(storage : storage) : storage =
let vswp = valid_swap_reduced_to_valid_swap vswpr 1n valid_tokens in
tick_price rate_name vswp storage


[@inline]
let tick
(storage : storage) : result =
let () = reject_if_tez_supplied () in
let valid_swaps = TokenManagerUtils.get_valid_swaps storage.tokenmanager in
match Map.find_opt rate_name valid_swaps with
| Some vswpr -> let valid_tokens = TokenManagerUtils.get_valid_tokens storage.tokenmanager in
let vswp = valid_swap_reduced_to_valid_swap vswpr 1n valid_tokens in
let storage = tick_price rate_name vswp storage in
no_op (storage)
| None -> failwith swap_does_not_exist
let valid_tokens = TokenManagerUtils.get_valid_tokens storage.tokenmanager in
let tick_all_rates (stor,(p,vsr):( storage * (string * valid_swap_reduced))) : storage = tick_rate p vsr valid_tokens stor
in
let storage = Map.fold tick_all_rates valid_swaps storage in
no_op storage

[@inline]
let change_fee
Expand Down Expand Up @@ -1219,7 +1244,7 @@ let main
| Redeem -> redeem storage
| Cancel pair -> cancel pair storage
(* Maintenance endpoint *)
| Tick r -> tick r storage
| Tick -> tick storage
(* Admin endpoints *)
| Change_fee new_fee -> change_fee new_fee storage
| Change_liquidity_injection_time_limit new_time_limit -> change_liquidity_injection_limit_in_seconds new_time_limit storage
Expand Down
34 changes: 18 additions & 16 deletions batcher/marketmaker.mligo
Original file line number Diff line number Diff line change
Expand Up @@ -102,25 +102,27 @@ let execute_liquidity_request
(opposing_volume: nat)
(vault_address:address)
(valid_tokens:ValidTokens.t_map)
(valid_swaps:ValidSwaps.t_map) : operation =
(valid_swaps:ValidSwaps.t_map): operation =
let pair_name = find_lexicographical_pair_name lt.name ot.name in
match Map.find_opt pair_name valid_swaps with
| None -> failwith swap_does_not_exist
| Some vs -> let (lastupdated, price) = OracleUtils.get_oracle_price unable_to_get_price_from_oracle vs in
let swap:swap = swap_reduced_to_swap vs.swap 1n valid_tokens in
let oracle_rate = OracleUtils.convert_oracle_price vs.oracle_precision swap lastupdated price valid_tokens in
let (side,vol_req) = if lt.name = vs.swap.to then
(Sell,get_inverse_volume oracle_rate opposing_volume)
else
(Buy,get_volume oracle_rate opposing_volume)
in
let req = {
side = side;
from_token = lt;
to_token = ot;
amount = vol_req;
} in
send_liquidity_injection_request req vault_address
| Some vs -> let (lastupdated_opt, _tes) = OracleUtils.get_oracle_price pair_name unable_to_get_price_from_oracle vs (Big_map.empty: TickErrors.t) in
(match lastupdated_opt with
| None -> failwith unable_to_get_price_from_oracle
| Some (lastupdated, price) -> let swap:swap = swap_reduced_to_swap vs.swap 1n valid_tokens in
let oracle_rate = OracleUtils.convert_oracle_price vs.oracle_precision swap lastupdated price valid_tokens in
let (side,vol_req) = if lt.name = vs.swap.to then
(Sell,get_inverse_volume oracle_rate opposing_volume)
else
(Buy,get_volume oracle_rate opposing_volume)
in
let req = {
side = side;
from_token = lt;
to_token = ot;
amount = vol_req;
} in
send_liquidity_injection_request req vault_address)


[@inline]
Expand Down
Loading