From 9bc590bbcbd0daea0578f00afab15ebfd66d74be Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Thu, 12 Dec 2024 12:45:53 +1100 Subject: [PATCH] feat: Add AUD prices and API route --- cache/154903f1c716802fd57eec282afe3cb8.json | 1 + cache/1981e30de11cf0845e8b5affb4dc75e0.json | 2 +- cache/1ccff5c6f117409fea0c861aa44b8e62.json | 2 +- cache/29409a8a40dd2d547a7a44b8f6758f54.json | 2 +- cache/32fbffa989a7d6c0472092fc8982713b.json | 2 +- cache/4104ed0427efe63d4ca0dead970a4391.json | 2 +- cache/46c1ec7f5edb30c070003dc54e072f41.json | 2 +- cache/598f5dbf97fb0d45cbc6e1a5b0a3b575.json | 2 +- cache/6cc6c6a0b2d0654f551d33209c1fd824.json | 2 +- cache/6eec370e2713cfc84c84e1080b8a191a.json | 2 +- cache/790b28a9a21cf694ad9577ef1072ac9e.json | 2 +- cache/a071d7bdda25c22e42ad7840f17c4b0e.json | 2 +- cache/a099e7e540e16a185b0279b9494e5099.json | 2 +- cache/a0ee60913ba556f39d128e7d7249e788.json | 2 +- cache/c652e896f57f598d23e3dbebdb815ef6.json | 2 +- cache/ccf2a009e56f1b05d471a55d9c9ea8ea.json | 2 +- cache/d4e81748ee91683b2c48adaa5cf95187.json | 2 +- server.py | 32 +++++++++++++++++++- stWDBRN.bsdesign | Bin 502893 -> 502910 bytes templates/index.html | 2 +- 20 files changed, 49 insertions(+), 18 deletions(-) create mode 100644 cache/154903f1c716802fd57eec282afe3cb8.json diff --git a/cache/154903f1c716802fd57eec282afe3cb8.json b/cache/154903f1c716802fd57eec282afe3cb8.json new file mode 100644 index 0000000..934abbc --- /dev/null +++ b/cache/154903f1c716802fd57eec282afe3cb8.json @@ -0,0 +1 @@ +{"timestamp": 1733967634.1158152, "result": 1.559551} \ No newline at end of file diff --git a/cache/1981e30de11cf0845e8b5affb4dc75e0.json b/cache/1981e30de11cf0845e8b5affb4dc75e0.json index cac9703..1a00624 100644 --- a/cache/1981e30de11cf0845e8b5affb4dc75e0.json +++ b/cache/1981e30de11cf0845e8b5affb4dc75e0.json @@ -1 +1 @@ -{"timestamp": 1733884155.1054926, "result": 3598.9} \ No newline at end of file +{"timestamp": 1733966924.830747, "result": 3825.57} \ No newline at end of file diff --git a/cache/1ccff5c6f117409fea0c861aa44b8e62.json b/cache/1ccff5c6f117409fea0c861aa44b8e62.json index cbea09e..45307ec 100644 --- a/cache/1ccff5c6f117409fea0c861aa44b8e62.json +++ b/cache/1ccff5c6f117409fea0c861aa44b8e62.json @@ -1 +1 @@ -{"timestamp": 1733884280.7491436, "result": 0.991137} \ No newline at end of file +{"timestamp": 1733967053.8096626, "result": 1.086} \ No newline at end of file diff --git a/cache/29409a8a40dd2d547a7a44b8f6758f54.json b/cache/29409a8a40dd2d547a7a44b8f6758f54.json index 683814d..0df66f1 100644 --- a/cache/29409a8a40dd2d547a7a44b8f6758f54.json +++ b/cache/29409a8a40dd2d547a7a44b8f6758f54.json @@ -1 +1 @@ -{"timestamp": 1733884156.764032, "result": 4.19} \ No newline at end of file +{"timestamp": 1733966925.7328749, "result": 4.25} \ No newline at end of file diff --git a/cache/32fbffa989a7d6c0472092fc8982713b.json b/cache/32fbffa989a7d6c0472092fc8982713b.json index 8fe0f88..b799a81 100644 --- a/cache/32fbffa989a7d6c0472092fc8982713b.json +++ b/cache/32fbffa989a7d6c0472092fc8982713b.json @@ -1 +1 @@ -{"timestamp": 1733884155.9249303, "result": 669.29} \ No newline at end of file +{"timestamp": 1733966991.4253252, "result": 714.56} \ No newline at end of file diff --git a/cache/4104ed0427efe63d4ca0dead970a4391.json b/cache/4104ed0427efe63d4ca0dead970a4391.json index 79be34a..06d8c3f 100644 --- a/cache/4104ed0427efe63d4ca0dead970a4391.json +++ b/cache/4104ed0427efe63d4ca0dead970a4391.json @@ -1 +1 @@ -{"timestamp": 1733884154.2864244, "result": 228.27} \ No newline at end of file +{"timestamp": 1733966989.5834355, "result": 241.8} \ No newline at end of file diff --git a/cache/46c1ec7f5edb30c070003dc54e072f41.json b/cache/46c1ec7f5edb30c070003dc54e072f41.json index ad8fead..b4c48f1 100644 --- a/cache/46c1ec7f5edb30c070003dc54e072f41.json +++ b/cache/46c1ec7f5edb30c070003dc54e072f41.json @@ -1 +1 @@ -{"timestamp": 1733884278.9056113, "result": 3.66} \ No newline at end of file +{"timestamp": 1733967052.4412723, "result": 4.71} \ No newline at end of file diff --git a/cache/598f5dbf97fb0d45cbc6e1a5b0a3b575.json b/cache/598f5dbf97fb0d45cbc6e1a5b0a3b575.json index 0c69f50..5b895dc 100644 --- a/cache/598f5dbf97fb0d45cbc6e1a5b0a3b575.json +++ b/cache/598f5dbf97fb0d45cbc6e1a5b0a3b575.json @@ -1 +1 @@ -{"timestamp": 1733884279.7248404, "result": 214.52} \ No newline at end of file +{"timestamp": 1733966922.5820625, "result": 227.18} \ No newline at end of file diff --git a/cache/6cc6c6a0b2d0654f551d33209c1fd824.json b/cache/6cc6c6a0b2d0654f551d33209c1fd824.json index d8aee18..a4d1c2b 100644 --- a/cache/6cc6c6a0b2d0654f551d33209c1fd824.json +++ b/cache/6cc6c6a0b2d0654f551d33209c1fd824.json @@ -1 +1 @@ -{"timestamp": 1733884218.3883016, "result": 3.79} \ No newline at end of file +{"timestamp": 1733966992.060965, "result": 4.88} \ No newline at end of file diff --git a/cache/6eec370e2713cfc84c84e1080b8a191a.json b/cache/6eec370e2713cfc84c84e1080b8a191a.json index 94a20e4..b71ff60 100644 --- a/cache/6eec370e2713cfc84c84e1080b8a191a.json +++ b/cache/6eec370e2713cfc84c84e1080b8a191a.json @@ -1 +1 @@ -{"timestamp": 1733888344.0835865, "result": 524.345950296} \ No newline at end of file +{"timestamp": 1733967743.2804618, "result": 555.700092455} \ No newline at end of file diff --git a/cache/790b28a9a21cf694ad9577ef1072ac9e.json b/cache/790b28a9a21cf694ad9577ef1072ac9e.json index 2a94f85..f738906 100644 --- a/cache/790b28a9a21cf694ad9577ef1072ac9e.json +++ b/cache/790b28a9a21cf694ad9577ef1072ac9e.json @@ -1 +1 @@ -{"timestamp": 1733884279.315854, "result": 0.055517624} \ No newline at end of file +{"timestamp": 1733966922.1927235, "result": 0.055517624} \ No newline at end of file diff --git a/cache/a071d7bdda25c22e42ad7840f17c4b0e.json b/cache/a071d7bdda25c22e42ad7840f17c4b0e.json index b38e0f3..0f945c9 100644 --- a/cache/a071d7bdda25c22e42ad7840f17c4b0e.json +++ b/cache/a071d7bdda25c22e42ad7840f17c4b0e.json @@ -1 +1 @@ -{"timestamp": 1733884217.6712437, "result": 1.001} \ No newline at end of file +{"timestamp": 1733966987.4329624, "result": 1.0} \ No newline at end of file diff --git a/cache/a099e7e540e16a185b0279b9494e5099.json b/cache/a099e7e540e16a185b0279b9494e5099.json index 58caaab..1452744 100644 --- a/cache/a099e7e540e16a185b0279b9494e5099.json +++ b/cache/a099e7e540e16a185b0279b9494e5099.json @@ -1 +1 @@ -{"timestamp": 1733884153.469039, "result": 96162} \ No newline at end of file +{"timestamp": 1733966990.7103124, "result": 100661} \ No newline at end of file diff --git a/cache/a0ee60913ba556f39d128e7d7249e788.json b/cache/a0ee60913ba556f39d128e7d7249e788.json index da57af3..c5b3f66 100644 --- a/cache/a0ee60913ba556f39d128e7d7249e788.json +++ b/cache/a0ee60913ba556f39d128e7d7249e788.json @@ -1 +1 @@ -{"timestamp": 1733888235.6425185, "result": [{"mint": "3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh", "balance": 0.00056828, "price": 96162, "value": 54.64694136, "name": "Wrapped BTC (Wormhole)", "symbol": "wbtc"}, {"mint": "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs", "balance": 0.00255735, "price": 3598.9, "value": 9.203646915, "name": "Ethereum (Wormhole)", "symbol": "eth"}, {"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "balance": 1.0, "price": 1.001, "value": 1.001, "name": "USDC", "symbol": "usdc"}, {"mint": "27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4", "balance": 19.88979, "price": 4.19, "value": 83.33822010000002, "name": "Jupiter Perpetuals Liquidity Provider Token", "symbol": "jlp"}, {"mint": "jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v", "balance": 0.239815492, "price": 228.27, "value": 54.74268235884, "name": "Jupiter Staked SOL", "symbol": "jupsol"}, {"mint": "9gP2kCy3wA1ctvYWQk75guqXuHfrEomqydHLtcTCqiLa", "balance": 0.03683279, "price": 669.29, "value": 24.6518180191, "name": "Binance Coin (Wormhole)", "symbol": "bnb"}, {"mint": "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55::cert::CERT", "balance": 22.852920128, "price": 3.79, "value": 86.61256728512001, "name": "Volo Staked SUI", "symbol": "vsui"}, {"mint": "0x2::sui::SUI", "balance": 0.902850107, "price": 3.66, "value": 3.30443139162, "name": "Sui", "symbol": "sui"}]} \ No newline at end of file +{"timestamp": 1733967746.2846203, "result": [{"mint": "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs", "balance": 0.00255735, "price": 3825.57, "value": 9.7833214395, "name": "Ethereum (Wormhole)", "symbol": "eth"}, {"mint": "27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4", "balance": 23.664735, "price": 4.25, "value": 100.57512375, "name": "Jupiter Perpetuals Liquidity Provider Token", "symbol": "jlp"}, {"mint": "9gP2kCy3wA1ctvYWQk75guqXuHfrEomqydHLtcTCqiLa", "balance": 0.03683279, "price": 714.56, "value": 26.319238422399994, "name": "Binance Coin (Wormhole)", "symbol": "bnb"}, {"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "balance": 1.0, "price": 1.0, "value": 1.0, "name": "USDC", "symbol": "usdc"}, {"mint": "3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh", "balance": 0.00056828, "price": 100661, "value": 57.20363308, "name": "Wrapped BTC (Wormhole)", "symbol": "wbtc"}, {"mint": "jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v", "balance": 0.239815492, "price": 241.8, "value": 57.9873859656, "name": "Jupiter Staked SOL", "symbol": "jupsol"}, {"mint": "0x2::sui::SUI", "balance": 0.902850107, "price": 4.71, "value": 4.25242400397, "name": "Sui", "symbol": "sui"}, {"mint": "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55::cert::CERT", "balance": 22.852920128, "price": 4.88, "value": 111.52225022464, "name": "Volo Staked SUI", "symbol": "vsui"}]} \ No newline at end of file diff --git a/cache/c652e896f57f598d23e3dbebdb815ef6.json b/cache/c652e896f57f598d23e3dbebdb815ef6.json index 882a048..19192d3 100644 --- a/cache/c652e896f57f598d23e3dbebdb815ef6.json +++ b/cache/c652e896f57f598d23e3dbebdb815ef6.json @@ -1 +1 @@ -{"timestamp": 1733888230.0162873, "result": [{"mint": "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55::cert::CERT", "balance": 22.852920128, "price": 3.79, "value": 86.61256728512001, "name": "Volo Staked SUI", "symbol": "vsui"}, {"mint": "0x2::sui::SUI", "balance": 0.902850107, "price": 3.66, "value": 3.30443139162, "name": "Sui", "symbol": "sui"}]} \ No newline at end of file +{"timestamp": 1733967567.9433823, "result": [{"mint": "0x2::sui::SUI", "balance": 0.902850107, "price": 4.71, "value": 4.25242400397, "name": "Sui", "symbol": "sui"}, {"mint": "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55::cert::CERT", "balance": 22.852920128, "price": 4.88, "value": 111.52225022464, "name": "Volo Staked SUI", "symbol": "vsui"}]} \ No newline at end of file diff --git a/cache/ccf2a009e56f1b05d471a55d9c9ea8ea.json b/cache/ccf2a009e56f1b05d471a55d9c9ea8ea.json index eeb020d..ed7e100 100644 --- a/cache/ccf2a009e56f1b05d471a55d9c9ea8ea.json +++ b/cache/ccf2a009e56f1b05d471a55d9c9ea8ea.json @@ -1 +1 @@ -{"timestamp": 1733888110.2009592, "result": 82.815227} \ No newline at end of file +{"timestamp": 1733967353.9372976, "result": 82.815227} \ No newline at end of file diff --git a/cache/d4e81748ee91683b2c48adaa5cf95187.json b/cache/d4e81748ee91683b2c48adaa5cf95187.json index 4f199a4..a29ba0c 100644 --- a/cache/d4e81748ee91683b2c48adaa5cf95187.json +++ b/cache/d4e81748ee91683b2c48adaa5cf95187.json @@ -1 +1 @@ -{"timestamp": 1733888294.8290596, "result": [{"name": "Kamino USDC Lending", "description": "Kamino USDC Lending", "apy": 26.85, "url": "https://app.kamino.finance/lending/reserve/DxXdAyU3kCjnyggvHmY5nAwg5cRbbmdyX3npfDMjjMek/Ga4rZytCpq1unD4DbEJ5bkHeUz9g3oh9AAFEi6vSauXp", "value": 50.03, "updated": "1733877495", "initial": 50, "bought": "1733717057", "type": "Lending"}, {"name": "dYdX MegaVault", "description": "dYdX MegaVault", "apy": 55, "url": "https://dydx.trade/vault", "value": 44.58, "updated": "1733877495", "initial": 44, "bought": "1733300000", "type": "Lending"}]} \ No newline at end of file +{"timestamp": 1733967918.3903854, "result": [{"name": "Kamino USDC Lending", "description": "Kamino USDC Lending", "apy": 16.49, "url": "https://app.kamino.finance/lending/reserve/DxXdAyU3kCjnyggvHmY5nAwg5cRbbmdyX3npfDMjjMek/Ga4rZytCpq1unD4DbEJ5bkHeUz9g3oh9AAFEi6vSauXp", "value": 50.04, "updated": "1733877495", "initial": 50, "bought": "1733717057", "type": "Lending"}, {"name": "dYdX MegaVault", "description": "dYdX MegaVault", "apy": 55, "url": "https://dydx.trade/vault", "value": 60.44, "updated": "1733966269", "initial": 60, "bought": "1733300000", "type": "Lending"}]} \ No newline at end of file diff --git a/server.py b/server.py index 3b7a38d..49abc30 100644 --- a/server.py +++ b/server.py @@ -122,7 +122,7 @@ def index(): vaultBalance = getVaultBalance() vaultBalance = "{:.2f}".format(vaultBalance) - return render_template("index.html", value=tokenValue, supply=tokenSupply, vault=vaultBalance) + return render_template("index.html", value=tokenValue, supply=tokenSupply, vault=vaultBalance, vault_aud=usd_to_aud(vaultBalance), value_aud=usd_to_aud(tokenValue)) @app.route("/") @@ -611,6 +611,36 @@ def api_vault(): return jsonify(vault) + +@app.route("/api/v1/aud/") +def api_aud(aud): + aud = float(aud) + usd = aud / aud_to_usd_rate() + # Calculate the number of stWDBRN tokens + price = float(getTokenPrice()) + return jsonify({ + "aud": aud, + "usd": round(usd, 2), + "stWDBRN": round(usd / price,2) + }) + +def usd_to_aud(usd): + usd = float(usd) + value = usd * aud_to_usd_rate() + # Round value to 2 decimal places and ensure it shows 2 decimal places + value = "{:.2f}".format(value) + return value + +@cache.file_cache(120) +def aud_to_usd_rate(): + api_key = os.getenv("API_LAYER") + resp = requests.get(f"https://apilayer.net/api/live?access_key={api_key}¤cies=AUD&source=USD&format=1") + if resp.status_code != 200: + print("Error getting AUD price") + return -1 + data = resp.json() + return data["quotes"]["USDAUD"] + @app.route("/api/v1/other") @app.route("/api/v1/defi") def api_other_investments(): diff --git a/stWDBRN.bsdesign b/stWDBRN.bsdesign index 3077cf19f6c0402d10f05e42292192e4bd7a0296..9f541acadc0c1a6e46f823699af14df0fe6f2df6 100644 GIT binary patch delta 6067 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 delta 6087 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 N|35twZ$Dd43jnT#H>>~v diff --git a/templates/index.html b/templates/index.html index dee6437..6115ad4 100644 --- a/templates/index.html +++ b/templates/index.html @@ -40,7 +40,7 @@

Woodburn Vault

An easy way to buy into a diverse crypto portfolio.

-

Woodburn Vault Balance: {{vault}} USD
stWDBRN Token Supply: {{supply}}
Current Token Value: {{value}} USD

+

Woodburn Vault Balance: {{vault}} USD ({{vault_aud}} AUD)
stWDBRN Token Supply: {{supply}}
Current Token Value: {{value}} USD ({{value_aud}} AUD)