Skip to content

Instantly share code, notes, and snippets.

@okwme
Created December 18, 2018 18:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save okwme/446b334a4f0259f786f2c08e635e63d9 to your computer and use it in GitHub Desktop.
Save okwme/446b334a4f0259f786f2c08e635e63d9 to your computer and use it in GitHub Desktop.
JS Bin // source https://jsbin.com/lageziw
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<script id="jsbin-javascript">
var s = {
balance: 100,
totalSupply: 1000,
weight: .5,
weight_: 500000,
ppm: 1000000
}
console.log('original state s precise price is ' + pp(s))
var purchase_a = 5
var purchase_b = 2
var buy_1 = 200
var buy_2 = 20
var sell_z = 100
var sa = makeBuy_deposit(purchase_a, s)
console.log('state sa precise price is ' + pp(sa))
var s1 = makeBuy_tokens(buy_1, s)
console.log('state s1 precise price is ' + pp(s1))
var sb = makeBuy_deposit(purchase_b, s)
console.log('state sb precise price is ' + pp(sb))
var s2 = makeBuy_tokens(buy_2, s)
console.log('state s2 precise price is ' + pp(s2))
var sz = makeSell_tokens(sell_z, s)
console.log("state sz precise price is " + pp(sz))
console.log('---')
var sab = makeBuy_deposit(purchase_b, sa)
console.log("state sab precise price is " + pp(sab))
var saz = makeSell_tokens(sell_z, sa)
console.log("state saz precise price is " + pp(saz))
var sba = makeBuy_deposit(purchase_a, sb)
console.log("state sba precise price is " + pp(sba))
var sbz = makeSell_tokens(sell_z, sb)
console.log("state sbz precise price is " + pp(sbz))
var sza = makeBuy_deposit(purchase_a, sz)
console.log("state sza precise price is " + pp(sza))
var szb = makeBuy_deposit(purchase_b, sz)
console.log("state szb precise price is " + pp(szb))
console.log('---')
var sabz = makeSell_tokens(sell_z, sab)
console.log("state sabz precise price is " + pp(sabz))
var sazb = makeBuy_deposit(purchase_b, saz)
console.log("state sazb precise price is " + pp(sazb))
var sbaz = makeSell_tokens(sell_z, sba)
console.log("state sbaz precise price is " + pp(sbaz))
var sbza = makeBuy_deposit(purchase_a, sbz)
console.log("state sbza precise price is " + pp(sbza))
var szab = makeBuy_deposit(purchase_b, sza)
console.log("state szab precise price is " + pp(szab))
var szba = makeBuy_deposit(purchase_a, szb)
console.log("state szba precise price is " + pp(szba))
var s12z = makeSell_tokens(sell_z, makeBuy_tokens(buy_2, makeBuy_tokens(buy_1, s)))
console.log("s12z precise price is " + pp(s12z))
var sz12 = makeBuy_tokens(buy_2, makeBuy_tokens(buy_1, makeSell_tokens(sell_z, s)))
console.log("sz12 precise price is " + pp(sz12))
console.log("state average pp is " + (pp(sabz) + pp(szab)) / 2)
var delta_balance_sabz = Math.abs(s.balance - sabz.balance)
console.log("sabz delta balance = " + delta_balance_sabz)
console.log("szab delta balance = " + (s.balance - szab.balance))
console.log("sabz delta supply = " + (s.totalSupply - sabz.totalSupply))
console.log("szab delta supply = " + (s.totalSupply - szab.totalSupply))
console.log("sabz delta price = " + (s.balance - sabz.balance) / (s.totalSupply - sabz.totalSupply))
console.log("szab delta price = " + (s.balance - szab.balance) / (s.totalSupply - szab.totalSupply))
function purchaseReturn(deposit, s) {
return s.totalSupply * ((1 + deposit / s.balance) ** (s.weight_ / s.ppm) - 1)
}
function saleReturn(tokens, s) {
return s.balance * (1 - (1 - (tokens / s.totalSupply)) ** (1 / (s.weight_ / s.ppm)))
}
function buyPrice(tokens, s) {
return s.balance * ((1 + (tokens / s.totalSupply)) ** (1 / (s.weight_ / s.ppm)) - 1);
}
function makeBuy_deposit(deposit, s) {
var s_ = JSON.parse(JSON.stringify(s))
var tokens = purchaseReturn(deposit, s_)
s_.balance = s_.balance + deposit
s_.totalSupply = s_.totalSupply + tokens
return s_
}
function makeBuy_tokens(tokens, s) {
var s_ = JSON.parse(JSON.stringify(s))
var amount = buyPrice(tokens, s_)
s_.balance = s_.balance + amount
s_.totalSupply = s_.totalSupply + tokens
return s_
}
function makeSell_tokens(tokens, s) {
var s_ = JSON.parse(JSON.stringify(s))
var amount = saleReturn(tokens, s_)
s_.balance = s_.balance - amount
s_.totalSupply = s_.totalSupply - tokens
return s_
}
function pp(s) {
return (s.balance / (s.totalSupply * s.weight_)) * s.ppm
}
</script>
<script id="jsbin-source-javascript" type="text/javascript">var s = {
balance: 100,
totalSupply: 1000,
weight: .5,
weight_: 500000,
ppm: 1000000
}
console.log('original state s precise price is ' + pp(s))
var purchase_a = 5
var purchase_b = 2
var buy_1 = 200
var buy_2 = 20
var sell_z = 100
var sa = makeBuy_deposit(purchase_a, s)
console.log('state sa precise price is ' + pp(sa))
var s1 = makeBuy_tokens(buy_1, s)
console.log('state s1 precise price is ' + pp(s1))
var sb = makeBuy_deposit(purchase_b, s)
console.log('state sb precise price is ' + pp(sb))
var s2 = makeBuy_tokens(buy_2, s)
console.log('state s2 precise price is ' + pp(s2))
var sz = makeSell_tokens(sell_z, s)
console.log("state sz precise price is " + pp(sz))
console.log('---')
var sab = makeBuy_deposit(purchase_b, sa)
console.log("state sab precise price is " + pp(sab))
var saz = makeSell_tokens(sell_z, sa)
console.log("state saz precise price is " + pp(saz))
var sba = makeBuy_deposit(purchase_a, sb)
console.log("state sba precise price is " + pp(sba))
var sbz = makeSell_tokens(sell_z, sb)
console.log("state sbz precise price is " + pp(sbz))
var sza = makeBuy_deposit(purchase_a, sz)
console.log("state sza precise price is " + pp(sza))
var szb = makeBuy_deposit(purchase_b, sz)
console.log("state szb precise price is " + pp(szb))
console.log('---')
var sabz = makeSell_tokens(sell_z, sab)
console.log("state sabz precise price is " + pp(sabz))
var sazb = makeBuy_deposit(purchase_b, saz)
console.log("state sazb precise price is " + pp(sazb))
var sbaz = makeSell_tokens(sell_z, sba)
console.log("state sbaz precise price is " + pp(sbaz))
var sbza = makeBuy_deposit(purchase_a, sbz)
console.log("state sbza precise price is " + pp(sbza))
var szab = makeBuy_deposit(purchase_b, sza)
console.log("state szab precise price is " + pp(szab))
var szba = makeBuy_deposit(purchase_a, szb)
console.log("state szba precise price is " + pp(szba))
var s12z = makeSell_tokens(sell_z, makeBuy_tokens(buy_2, makeBuy_tokens(buy_1, s)))
console.log("s12z precise price is " + pp(s12z))
var sz12 = makeBuy_tokens(buy_2, makeBuy_tokens(buy_1, makeSell_tokens(sell_z, s)))
console.log("sz12 precise price is " + pp(sz12))
console.log("state average pp is " + (pp(sabz) + pp(szab)) / 2)
var delta_balance_sabz = Math.abs(s.balance - sabz.balance)
console.log("sabz delta balance = " + delta_balance_sabz)
console.log("szab delta balance = " + (s.balance - szab.balance))
console.log("sabz delta supply = " + (s.totalSupply - sabz.totalSupply))
console.log("szab delta supply = " + (s.totalSupply - szab.totalSupply))
console.log("sabz delta price = " + (s.balance - sabz.balance) / (s.totalSupply - sabz.totalSupply))
console.log("szab delta price = " + (s.balance - szab.balance) / (s.totalSupply - szab.totalSupply))
function purchaseReturn(deposit, s) {
return s.totalSupply * ((1 + deposit / s.balance) ** (s.weight_ / s.ppm) - 1)
}
function saleReturn(tokens, s) {
return s.balance * (1 - (1 - (tokens / s.totalSupply)) ** (1 / (s.weight_ / s.ppm)))
}
function buyPrice(tokens, s) {
return s.balance * ((1 + (tokens / s.totalSupply)) ** (1 / (s.weight_ / s.ppm)) - 1);
}
function makeBuy_deposit(deposit, s) {
var s_ = JSON.parse(JSON.stringify(s))
var tokens = purchaseReturn(deposit, s_)
s_.balance = s_.balance + deposit
s_.totalSupply = s_.totalSupply + tokens
return s_
}
function makeBuy_tokens(tokens, s) {
var s_ = JSON.parse(JSON.stringify(s))
var amount = buyPrice(tokens, s_)
s_.balance = s_.balance + amount
s_.totalSupply = s_.totalSupply + tokens
return s_
}
function makeSell_tokens(tokens, s) {
var s_ = JSON.parse(JSON.stringify(s))
var amount = saleReturn(tokens, s_)
s_.balance = s_.balance - amount
s_.totalSupply = s_.totalSupply - tokens
return s_
}
function pp(s) {
return (s.balance / (s.totalSupply * s.weight_)) * s.ppm
}</script></body>
</html>
var s = {
balance: 100,
totalSupply: 1000,
weight: .5,
weight_: 500000,
ppm: 1000000
}
console.log('original state s precise price is ' + pp(s))
var purchase_a = 5
var purchase_b = 2
var buy_1 = 200
var buy_2 = 20
var sell_z = 100
var sa = makeBuy_deposit(purchase_a, s)
console.log('state sa precise price is ' + pp(sa))
var s1 = makeBuy_tokens(buy_1, s)
console.log('state s1 precise price is ' + pp(s1))
var sb = makeBuy_deposit(purchase_b, s)
console.log('state sb precise price is ' + pp(sb))
var s2 = makeBuy_tokens(buy_2, s)
console.log('state s2 precise price is ' + pp(s2))
var sz = makeSell_tokens(sell_z, s)
console.log("state sz precise price is " + pp(sz))
console.log('---')
var sab = makeBuy_deposit(purchase_b, sa)
console.log("state sab precise price is " + pp(sab))
var saz = makeSell_tokens(sell_z, sa)
console.log("state saz precise price is " + pp(saz))
var sba = makeBuy_deposit(purchase_a, sb)
console.log("state sba precise price is " + pp(sba))
var sbz = makeSell_tokens(sell_z, sb)
console.log("state sbz precise price is " + pp(sbz))
var sza = makeBuy_deposit(purchase_a, sz)
console.log("state sza precise price is " + pp(sza))
var szb = makeBuy_deposit(purchase_b, sz)
console.log("state szb precise price is " + pp(szb))
console.log('---')
var sabz = makeSell_tokens(sell_z, sab)
console.log("state sabz precise price is " + pp(sabz))
var sazb = makeBuy_deposit(purchase_b, saz)
console.log("state sazb precise price is " + pp(sazb))
var sbaz = makeSell_tokens(sell_z, sba)
console.log("state sbaz precise price is " + pp(sbaz))
var sbza = makeBuy_deposit(purchase_a, sbz)
console.log("state sbza precise price is " + pp(sbza))
var szab = makeBuy_deposit(purchase_b, sza)
console.log("state szab precise price is " + pp(szab))
var szba = makeBuy_deposit(purchase_a, szb)
console.log("state szba precise price is " + pp(szba))
var s12z = makeSell_tokens(sell_z, makeBuy_tokens(buy_2, makeBuy_tokens(buy_1, s)))
console.log("s12z precise price is " + pp(s12z))
var sz12 = makeBuy_tokens(buy_2, makeBuy_tokens(buy_1, makeSell_tokens(sell_z, s)))
console.log("sz12 precise price is " + pp(sz12))
console.log("state average pp is " + (pp(sabz) + pp(szab)) / 2)
var delta_balance_sabz = Math.abs(s.balance - sabz.balance)
console.log("sabz delta balance = " + delta_balance_sabz)
console.log("szab delta balance = " + (s.balance - szab.balance))
console.log("sabz delta supply = " + (s.totalSupply - sabz.totalSupply))
console.log("szab delta supply = " + (s.totalSupply - szab.totalSupply))
console.log("sabz delta price = " + (s.balance - sabz.balance) / (s.totalSupply - sabz.totalSupply))
console.log("szab delta price = " + (s.balance - szab.balance) / (s.totalSupply - szab.totalSupply))
function purchaseReturn(deposit, s) {
return s.totalSupply * ((1 + deposit / s.balance) ** (s.weight_ / s.ppm) - 1)
}
function saleReturn(tokens, s) {
return s.balance * (1 - (1 - (tokens / s.totalSupply)) ** (1 / (s.weight_ / s.ppm)))
}
function buyPrice(tokens, s) {
return s.balance * ((1 + (tokens / s.totalSupply)) ** (1 / (s.weight_ / s.ppm)) - 1);
}
function makeBuy_deposit(deposit, s) {
var s_ = JSON.parse(JSON.stringify(s))
var tokens = purchaseReturn(deposit, s_)
s_.balance = s_.balance + deposit
s_.totalSupply = s_.totalSupply + tokens
return s_
}
function makeBuy_tokens(tokens, s) {
var s_ = JSON.parse(JSON.stringify(s))
var amount = buyPrice(tokens, s_)
s_.balance = s_.balance + amount
s_.totalSupply = s_.totalSupply + tokens
return s_
}
function makeSell_tokens(tokens, s) {
var s_ = JSON.parse(JSON.stringify(s))
var amount = saleReturn(tokens, s_)
s_.balance = s_.balance - amount
s_.totalSupply = s_.totalSupply - tokens
return s_
}
function pp(s) {
return (s.balance / (s.totalSupply * s.weight_)) * s.ppm
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment