Skip to content

Commit

Permalink
Update and rename strategies/limit-order-single.rain to strategies/wl…
Browse files Browse the repository at this point in the history
…th/limit-order-single.rain

Hopefully @Siddharth2207 ive got the buys and sells right, updated for BASE/WLTH
  • Loading branch information
dcatki authored Jul 7, 2024
1 parent f755f2b commit 72ffcdf
Show file tree
Hide file tree
Showing 2 changed files with 183 additions and 137 deletions.
137 changes: 0 additions & 137 deletions strategies/limit-order-single.rain

This file was deleted.

183 changes: 183 additions & 0 deletions strategies/wlth/limit-order-single.rain
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
# Limit Order Strategy
# 1 buy and sell target
# Set buy price and amount and sell price and amount
# Target Network: Base
# Quote (Input / Incoming): USDC or WLTH
# Base (Output / Outgoing): WLTH or USDC
# Token contract: https://basescan.org/address/0x99b2B1A2aDB02B38222ADcD057783D7e5D1FCC7D
# Token github: NA
# Liquidity protocol: Uniswap V3
# Liquidity pool address: https://www.dextools.io/app/en/base/pair-explorer/0x1536ee1506e24e5a36be99c73136cd82907a902e?t=1717921711270
# Liquidity pool fee: 0.3%

networks:
base:
rpc: https://mainnet.base.org
chain-id: 8453
network-id: 8453
currency: ETH

subgraphs:
base: https://api.thegraph.com/subgraphs/name/h20liquidity/base-0x2aee87

orderbooks:
base:
address: 0x2AeE87D75CD000583DAEC7A28db103B1c0c18b76
network: base
subgraph: base

deployers:
base:
address: 0xfca89cD12Ba1346b1ac570ed988AB43b812733fe
network: base

tokens:
base-wlth:
network: base
address: 0x99b2B1A2aDB02B38222ADcD057783D7e5D1FCC7D
base-usdc:
network: base
address: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

orders:
base-wlth-sell:
orderbook: base
inputs:
- token: base-usdc
vault-id:
outputs:
- token: base-wlth
vault-id:
base-wlth-buy:
orderbook: base
inputs:
- token: base-wlth
vault-id:
outputs:
- token: base-usdc
vault-id:

scenarios:
limit-order:
network: base
deployer: base
orderbook: base
bindings:
# Ask for now, registry in future.
uniswap-words: 0xbc609623F5020f6Fc7481024862cD5EE3FFf52D7
orderbook-subparser: 0x8f037f2a3fF2dee510486D9C63A47A245991a4C1

scenarios:
buy:
bindings:
# io-ratio is calculated as 1 divided by the token price
# So 1/(WLTH priced in USDC)
io-ratio-1: 100

# amount is the trade size
ouptut-amount-1: 100

scenarios:
prod:
bindings:
plottables: '''plottables-prod'
chart:
runs: 1
bindings:
plottables: '''plottables-plot'
sell:
bindings:
# io-ratio is calculated as 1 divided by the token price
# So USDC priced in WLTH
io-ratio-1: 100

# amount is the trade size
ouptut-amount-1: 100

scenarios:
prod:
bindings:
plottables: '''plottables-prod'
chart:
runs: 1
bindings:
plottables: '''plottables-plot'

charts:
base-wlth-buy-metrics:
scenario: limit-order.buy.metric
metrics:
- label: io-ratio-1
value: 0.3.0
- label: amount-1
value: 0.3.1

base-wlth-sell-metrics:
scenario: limit-order.sell.metric
metrics:
- label: io-ratio-1
value: 0.3.0
- label: amount-1
value: 0.3.1

deployments:
base-wlth-buy:
scenario: limit-order.buy.prod
order: base-wlth-buy
base-wlth-sell:
scenario: limit-order.sell.prod
order: base-wlth-sell

---
#uniswap-words !The subparser for the Uniswap words
#orderbook-subparser !The subparser for the Orderbook words

#io-ratio-1 !IO ratio for first order.
#ouptut-amount-1 !Output amount for first order.

#count-key "count-key"
#plottables !Binding to plot values.

#plottables-prod
:;

#plottables-plot
_: io-ratio-1,
_: ouptut-amount-1,

#calculate-io
using-words-from uniswap-words orderbook-subparser

trade-count-key: hash(order-hash() count-key),
trade-count: get(trade-count-key),
_ _:call<'get-ratio-amount>(trade-count),
:call<'plottables>();

#handle-io
trade-count-key: hash(order-hash() count-key),
trade-count: get(trade-count-key),
:set(trade-count-key add(trade-count 1));

#get-ratio-amount
trade-count: ,
output-amount: if(equal-to(trade-count 0)
ouptut-amount-1
if(equal-to(trade-count 1)
ouptut-amount-2
if(equal-to(trade-count 2)
ouptut-amount-3
1
)
)
),
io-ratio: if(equal-to(trade-count 0)
io-ratio-1
if(equal-to(trade-count 1)
io-ratio-2
if(equal-to(trade-count 2)
io-ratio-3
max-value()
)
)
);

0 comments on commit 72ffcdf

Please sign in to comment.