From f7b7b8d584d82c0bdb5968ab29726715064e144c Mon Sep 17 00:00:00 2001 From: rbajollari Date: Tue, 12 Dec 2023 11:35:18 -0500 Subject: [PATCH 1/3] refactor: Use uint64 instead of uint256 in GetReferenceData --- cosmwasm/README.md | 2 +- .../price-feed/schema/execute_msg.json | 201 ++++++++++++++++++ .../price-feed/schema/query_msg.json | 103 +++++++++ .../price-feed/schema/ref_deviation_data.json | 31 +++ .../price-feed/schema/ref_median_data.json | 31 +++ .../price-feed/schema/reference_data.json | 6 +- cosmwasm/contracts/price-feed/src/contract.rs | 47 ++-- cosmwasm/contracts/price-feed/src/state.rs | 6 +- .../tests/e2e/config/std_reference.wasm | Bin 0 -> 229866 bytes 9 files changed, 394 insertions(+), 33 deletions(-) create mode 100644 cosmwasm/contracts/price-feed/schema/ref_deviation_data.json create mode 100644 cosmwasm/contracts/price-feed/schema/ref_median_data.json create mode 100644 cw-relayer/tests/e2e/config/std_reference.wasm diff --git a/cosmwasm/README.md b/cosmwasm/README.md index 27297a2..38f645a 100644 --- a/cosmwasm/README.md +++ b/cosmwasm/README.md @@ -88,7 +88,7 @@ bulk variant returns `Vec` ```rust pub struct ReferenceData { // Pair rate e.g. rate of BTC/USD - pub rate: Uint256, + pub rate: Uint64, // Unix time of when the base asset was last updated. e.g. Last update time of BTC in Unix time pub last_updated_base: Uint64, // Unix time of when the quote asset was last updated. e.g. Last update time of USD in Unix time diff --git a/cosmwasm/contracts/price-feed/schema/execute_msg.json b/cosmwasm/contracts/price-feed/schema/execute_msg.json index 330cfed..8285d98 100644 --- a/cosmwasm/contracts/price-feed/schema/execute_msg.json +++ b/cosmwasm/contracts/price-feed/schema/execute_msg.json @@ -23,6 +23,27 @@ }, "additionalProperties": false }, + { + "type": "object", + "required": [ + "median_status" + ], + "properties": { + "median_status": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, { "type": "object", "required": [ @@ -113,6 +134,96 @@ }, "additionalProperties": false }, + { + "type": "object", + "required": [ + "relay_historical_median" + ], + "properties": { + "relay_historical_median": { + "type": "object", + "required": [ + "request_id", + "resolve_time", + "symbol_rates" + ], + "properties": { + "request_id": { + "$ref": "#/definitions/Uint64" + }, + "resolve_time": { + "$ref": "#/definitions/Uint64" + }, + "symbol_rates": { + "type": "array", + "items": { + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/Uint64" + } + } + ], + "maxItems": 2, + "minItems": 2 + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "relay_historical_deviation" + ], + "properties": { + "relay_historical_deviation": { + "type": "object", + "required": [ + "request_id", + "resolve_time", + "symbol_rates" + ], + "properties": { + "request_id": { + "$ref": "#/definitions/Uint64" + }, + "resolve_time": { + "$ref": "#/definitions/Uint64" + }, + "symbol_rates": { + "type": "array", + "items": { + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/Uint64" + } + } + ], + "maxItems": 2, + "minItems": 2 + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, { "type": "object", "required": [ @@ -154,6 +265,96 @@ } }, "additionalProperties": false + }, + { + "type": "object", + "required": [ + "force_relay_historical_median" + ], + "properties": { + "force_relay_historical_median": { + "type": "object", + "required": [ + "request_id", + "resolve_time", + "symbol_rates" + ], + "properties": { + "request_id": { + "$ref": "#/definitions/Uint64" + }, + "resolve_time": { + "$ref": "#/definitions/Uint64" + }, + "symbol_rates": { + "type": "array", + "items": { + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/Uint64" + } + } + ], + "maxItems": 2, + "minItems": 2 + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "force_relay_historical_deviation" + ], + "properties": { + "force_relay_historical_deviation": { + "type": "object", + "required": [ + "request_id", + "resolve_time", + "symbol_rates" + ], + "properties": { + "request_id": { + "$ref": "#/definitions/Uint64" + }, + "resolve_time": { + "$ref": "#/definitions/Uint64" + }, + "symbol_rates": { + "type": "array", + "items": { + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/Uint64" + } + } + ], + "maxItems": 2, + "minItems": 2 + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false } ], "definitions": { diff --git a/cosmwasm/contracts/price-feed/schema/query_msg.json b/cosmwasm/contracts/price-feed/schema/query_msg.json index 91d44e1..885ee1a 100644 --- a/cosmwasm/contracts/price-feed/schema/query_msg.json +++ b/cosmwasm/contracts/price-feed/schema/query_msg.json @@ -15,6 +15,19 @@ }, "additionalProperties": false }, + { + "type": "object", + "required": [ + "median_status" + ], + "properties": { + "median_status": { + "type": "object", + "additionalProperties": false + } + }, + "additionalProperties": false + }, { "type": "object", "required": [ @@ -121,6 +134,96 @@ } }, "additionalProperties": false + }, + { + "type": "object", + "required": [ + "get_median_ref" + ], + "properties": { + "get_median_ref": { + "type": "object", + "required": [ + "symbol" + ], + "properties": { + "symbol": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "get_median_ref_data_bulk" + ], + "properties": { + "get_median_ref_data_bulk": { + "type": "object", + "required": [ + "symbols" + ], + "properties": { + "symbols": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "get_deviation_ref" + ], + "properties": { + "get_deviation_ref": { + "type": "object", + "required": [ + "symbol" + ], + "properties": { + "symbol": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "get_deviation_ref_bulk" + ], + "properties": { + "get_deviation_ref_bulk": { + "type": "object", + "required": [ + "symbols" + ], + "properties": { + "symbols": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false } ] } diff --git a/cosmwasm/contracts/price-feed/schema/ref_deviation_data.json b/cosmwasm/contracts/price-feed/schema/ref_deviation_data.json new file mode 100644 index 0000000..c8e3ca0 --- /dev/null +++ b/cosmwasm/contracts/price-feed/schema/ref_deviation_data.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "RefDeviationData", + "type": "object", + "required": [ + "rates", + "request_id", + "resolve_time" + ], + "properties": { + "rates": { + "type": "array", + "items": { + "$ref": "#/definitions/Uint64" + } + }, + "request_id": { + "$ref": "#/definitions/Uint64" + }, + "resolve_time": { + "$ref": "#/definitions/Uint64" + } + }, + "additionalProperties": false, + "definitions": { + "Uint64": { + "description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```", + "type": "string" + } + } +} diff --git a/cosmwasm/contracts/price-feed/schema/ref_median_data.json b/cosmwasm/contracts/price-feed/schema/ref_median_data.json new file mode 100644 index 0000000..5177a38 --- /dev/null +++ b/cosmwasm/contracts/price-feed/schema/ref_median_data.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "RefMedianData", + "type": "object", + "required": [ + "rates", + "request_id", + "resolve_time" + ], + "properties": { + "rates": { + "type": "array", + "items": { + "$ref": "#/definitions/Uint64" + } + }, + "request_id": { + "$ref": "#/definitions/Uint64" + }, + "resolve_time": { + "$ref": "#/definitions/Uint64" + } + }, + "additionalProperties": false, + "definitions": { + "Uint64": { + "description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```", + "type": "string" + } + } +} diff --git a/cosmwasm/contracts/price-feed/schema/reference_data.json b/cosmwasm/contracts/price-feed/schema/reference_data.json index 685adf5..2ba9bb0 100644 --- a/cosmwasm/contracts/price-feed/schema/reference_data.json +++ b/cosmwasm/contracts/price-feed/schema/reference_data.json @@ -15,15 +15,11 @@ "$ref": "#/definitions/Uint64" }, "rate": { - "$ref": "#/definitions/Uint256" + "$ref": "#/definitions/Uint64" } }, "additionalProperties": false, "definitions": { - "Uint256": { - "description": "An implementation of u256 that is using strings for JSON encoding/decoding, such that the full u256 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances out of primitive uint types or `new` to provide big endian bytes:\n\n``` # use cosmwasm_std::Uint256; let a = Uint256::from(258u128); let b = Uint256::new([ 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 2u8, ]); assert_eq!(a, b); ```", - "type": "string" - }, "Uint64": { "description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```", "type": "string" diff --git a/cosmwasm/contracts/price-feed/src/contract.rs b/cosmwasm/contracts/price-feed/src/contract.rs index a35dd56..6c33767 100644 --- a/cosmwasm/contracts/price-feed/src/contract.rs +++ b/cosmwasm/contracts/price-feed/src/contract.rs @@ -1,6 +1,6 @@ use cosmwasm_std::{ entry_point, to_binary, Addr, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdError, - StdResult, Uint256, Uint64, + StdResult, Uint64, }; use cw2::{get_contract_version, set_contract_version}; use semver::Version; @@ -14,7 +14,6 @@ use crate::state::{ const E0: Uint64 = Uint64::zero(); const E9: Uint64 = Uint64::new(1_000_000_000u64); -const E18: Uint256 = Uint256::from_u128(1_000_000_000_000_000_000u128); // Version Info const CONTRACT_NAME: &str = "ojo-price-feeds"; @@ -388,9 +387,9 @@ fn query_reference_data(deps: Deps, symbol_pair: &(String, String)) -> StdResult let quote = query_ref(deps, &symbol_pair.1)?; Ok(ReferenceData::new( - Uint256::from(base.rate) - .checked_mul(E18)? - .checked_div(Uint256::from(quote.rate))?, + Uint64::from(base.rate) + .checked_mul(E9)? + .checked_div(Uint64::from(quote.rate))?, base.resolve_time, quote.resolve_time, )) @@ -444,7 +443,7 @@ fn query_deviation_ref_bulk(deps: Deps, symbols: &[String]) -> StdResult>(); + .map(|rd| rd.rate) + .collect::>(); assert_eq!( retrieved_rates, rates .iter() - .map(|r| Uint256::from(*r)) - .collect::>() + .map(|r| Uint64::from(*r)) + .collect::>() ); } @@ -776,14 +775,14 @@ mod tests { let retrieved_rates = reference_datas .clone() .into_iter() - .map(|rd| rd.rate / Uint256::from(E9)) - .collect::>(); + .map(|rd| rd.rate) + .collect::>(); assert_eq!( retrieved_rates, rates .iter() - .map(|r| Uint256::from(*r)) - .collect::>() + .map(|r| Uint64::from(*r)) + .collect::>() ); } @@ -849,12 +848,12 @@ mod tests { let retrieved_rates = reference_datas .clone() .into_iter() - .map(|rd| rd.rate / Uint256::from(E9)) - .collect::>(); + .map(|rd| rd.rate) + .collect::>(); let expected_rates = vec![99999, 2, 3] .iter() - .map(|r| Uint256::from(*r as u128)) - .collect::>(); + .map(|r| Uint64::from(*r as u64)) + .collect::>(); assert_eq!(retrieved_rates, expected_rates); } @@ -1181,14 +1180,14 @@ mod tests { .unwrap(); let retrieved_rates = reference_datas .into_iter() - .map(|rd| rd.rate / Uint256::from(E9)) - .collect::>(); + .map(|rd| rd.rate) + .collect::>(); assert_eq!( retrieved_rates, forced_rates .iter() - .map(|r| Uint256::from(*r)) - .collect::>() + .map(|r| Uint64::from(*r)) + .collect::>() ); } @@ -1328,7 +1327,7 @@ mod tests { assert_eq!( from_binary::(&binary_res).unwrap(), ReferenceData::new( - Uint256::from(rate[0]).mul(Uint256::from(E9)), + Uint64::from(rate[0]), Uint64::from(100u64), Uint64::MAX, ) @@ -1386,7 +1385,7 @@ mod tests { .iter() .map(|r| { ReferenceData::new( - Uint256::from(*r).mul(Uint256::from(E9)), + Uint64::from(*r), Uint64::from(100u64), Uint64::MAX, ) diff --git a/cosmwasm/contracts/price-feed/src/state.rs b/cosmwasm/contracts/price-feed/src/state.rs index b479799..92db5a8 100644 --- a/cosmwasm/contracts/price-feed/src/state.rs +++ b/cosmwasm/contracts/price-feed/src/state.rs @@ -1,5 +1,5 @@ use cosmwasm_schema::cw_serde; -use cosmwasm_std::{Addr, Uint256, Uint64}; +use cosmwasm_std::{Addr, Uint64}; use cw_controllers::Admin; use cw_storage_plus::{Item, Map}; @@ -84,7 +84,7 @@ impl RefDeviationData { #[cw_serde] pub struct ReferenceData { // Pair rate e.g. rate of BTC/USD - pub rate: Uint256, + pub rate: Uint64, // Unix time of when the base asset was last updated. e.g. Last update time of BTC in Unix time pub last_updated_base: Uint64, // Unix time of when the quote asset was last updated. e.g. Last update time of USD in Unix time @@ -92,7 +92,7 @@ pub struct ReferenceData { } impl ReferenceData { - pub fn new(rate: Uint256, last_updated_base: Uint64, last_updated_quote: Uint64) -> Self { + pub fn new(rate: Uint64, last_updated_base: Uint64, last_updated_quote: Uint64) -> Self { ReferenceData { rate, last_updated_base, diff --git a/cw-relayer/tests/e2e/config/std_reference.wasm b/cw-relayer/tests/e2e/config/std_reference.wasm new file mode 100644 index 0000000000000000000000000000000000000000..610801df5e8a3dd3efe0da319f4d57b8c7d31426 GIT binary patch literal 229866 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 literal 0 HcmV?d00001 From 77e89757f0b01f0497940850ac9d0f076e280e41 Mon Sep 17 00:00:00 2001 From: rbajollari Date: Tue, 12 Dec 2023 11:37:09 -0500 Subject: [PATCH 2/3] leftover artifact --- cw-relayer/tests/e2e/config/std_reference.wasm | Bin 229866 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 cw-relayer/tests/e2e/config/std_reference.wasm diff --git a/cw-relayer/tests/e2e/config/std_reference.wasm b/cw-relayer/tests/e2e/config/std_reference.wasm deleted file mode 100644 index 610801df5e8a3dd3efe0da319f4d57b8c7d31426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229866 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 From cdab4a6e439031bf5f4dee7994981c73859e5a2a Mon Sep 17 00:00:00 2001 From: rbajollari Date: Fri, 5 Jan 2024 11:00:34 -0500 Subject: [PATCH 3/3] 64 -> 256 --- cosmwasm/README.md | 12 +- .../price-feed/schema/execute_msg.json | 16 +- .../contracts/price-feed/schema/ref_data.json | 6 +- .../price-feed/schema/ref_deviation_data.json | 6 +- .../price-feed/schema/ref_median_data.json | 6 +- .../price-feed/schema/reference_data.json | 6 +- cosmwasm/contracts/price-feed/src/contract.rs | 162 +++++++++--------- cosmwasm/contracts/price-feed/src/msg.rs | 14 +- cosmwasm/contracts/price-feed/src/state.rs | 18 +- cw-relayer/relayer/relayer.go | 2 +- 10 files changed, 134 insertions(+), 114 deletions(-) diff --git a/cosmwasm/README.md b/cosmwasm/README.md index 38f645a..40d525f 100644 --- a/cosmwasm/README.md +++ b/cosmwasm/README.md @@ -88,11 +88,11 @@ bulk variant returns `Vec` ```rust pub struct ReferenceData { // Pair rate e.g. rate of BTC/USD - pub rate: Uint64, + pub rate: Uint256, // Unix time of when the base asset was last updated. e.g. Last update time of BTC in Unix time - pub last_updated_base: Uint64, + pub last_updated_base: Uint256, // Unix time of when the quote asset was last updated. e.g. Last update time of USD in Unix time - pub last_updated_quote: Uint64, + pub last_updated_quote: Uint256, } ``` @@ -194,11 +194,11 @@ bulk variant returns `Vec` ```rust pub struct RefDeviationData { // Deviation Rates of an asset relative to USD - pub rates: Vec, + pub rates: Vec, // The resolve time of the request ID - pub resolve_time: Uint64, + pub resolve_time: Uint256, // The request ID where the rate was derived from - pub request_id: Uint64, + pub request_id: Uint256, } ``` diff --git a/cosmwasm/contracts/price-feed/schema/execute_msg.json b/cosmwasm/contracts/price-feed/schema/execute_msg.json index 8285d98..e7b0722 100644 --- a/cosmwasm/contracts/price-feed/schema/execute_msg.json +++ b/cosmwasm/contracts/price-feed/schema/execute_msg.json @@ -121,7 +121,7 @@ "type": "string" }, { - "$ref": "#/definitions/Uint64" + "$ref": "#/definitions/Uint256" } ], "maxItems": 2, @@ -165,7 +165,7 @@ { "type": "array", "items": { - "$ref": "#/definitions/Uint64" + "$ref": "#/definitions/Uint256" } } ], @@ -210,7 +210,7 @@ { "type": "array", "items": { - "$ref": "#/definitions/Uint64" + "$ref": "#/definitions/Uint256" } } ], @@ -253,7 +253,7 @@ "type": "string" }, { - "$ref": "#/definitions/Uint64" + "$ref": "#/definitions/Uint256" } ], "maxItems": 2, @@ -297,7 +297,7 @@ { "type": "array", "items": { - "$ref": "#/definitions/Uint64" + "$ref": "#/definitions/Uint256" } } ], @@ -342,7 +342,7 @@ { "type": "array", "items": { - "$ref": "#/definitions/Uint64" + "$ref": "#/definitions/Uint256" } } ], @@ -358,6 +358,10 @@ } ], "definitions": { + "Uint256": { + "description": "An implementation of u256 that is using strings for JSON encoding/decoding, such that the full u256 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances out of primitive uint types or `new` to provide big endian bytes:\n\n``` # use cosmwasm_std::Uint256; let a = Uint256::from(258u128); let b = Uint256::new([ 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 2u8, ]); assert_eq!(a, b); ```", + "type": "string" + }, "Uint64": { "description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```", "type": "string" diff --git a/cosmwasm/contracts/price-feed/schema/ref_data.json b/cosmwasm/contracts/price-feed/schema/ref_data.json index f69ff09..3e8ec23 100644 --- a/cosmwasm/contracts/price-feed/schema/ref_data.json +++ b/cosmwasm/contracts/price-feed/schema/ref_data.json @@ -9,7 +9,7 @@ ], "properties": { "rate": { - "$ref": "#/definitions/Uint64" + "$ref": "#/definitions/Uint256" }, "request_id": { "$ref": "#/definitions/Uint64" @@ -20,6 +20,10 @@ }, "additionalProperties": false, "definitions": { + "Uint256": { + "description": "An implementation of u256 that is using strings for JSON encoding/decoding, such that the full u256 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances out of primitive uint types or `new` to provide big endian bytes:\n\n``` # use cosmwasm_std::Uint256; let a = Uint256::from(258u128); let b = Uint256::new([ 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 2u8, ]); assert_eq!(a, b); ```", + "type": "string" + }, "Uint64": { "description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```", "type": "string" diff --git a/cosmwasm/contracts/price-feed/schema/ref_deviation_data.json b/cosmwasm/contracts/price-feed/schema/ref_deviation_data.json index c8e3ca0..97dcfea 100644 --- a/cosmwasm/contracts/price-feed/schema/ref_deviation_data.json +++ b/cosmwasm/contracts/price-feed/schema/ref_deviation_data.json @@ -11,7 +11,7 @@ "rates": { "type": "array", "items": { - "$ref": "#/definitions/Uint64" + "$ref": "#/definitions/Uint256" } }, "request_id": { @@ -23,6 +23,10 @@ }, "additionalProperties": false, "definitions": { + "Uint256": { + "description": "An implementation of u256 that is using strings for JSON encoding/decoding, such that the full u256 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances out of primitive uint types or `new` to provide big endian bytes:\n\n``` # use cosmwasm_std::Uint256; let a = Uint256::from(258u128); let b = Uint256::new([ 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 2u8, ]); assert_eq!(a, b); ```", + "type": "string" + }, "Uint64": { "description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```", "type": "string" diff --git a/cosmwasm/contracts/price-feed/schema/ref_median_data.json b/cosmwasm/contracts/price-feed/schema/ref_median_data.json index 5177a38..7a6518e 100644 --- a/cosmwasm/contracts/price-feed/schema/ref_median_data.json +++ b/cosmwasm/contracts/price-feed/schema/ref_median_data.json @@ -11,7 +11,7 @@ "rates": { "type": "array", "items": { - "$ref": "#/definitions/Uint64" + "$ref": "#/definitions/Uint256" } }, "request_id": { @@ -23,6 +23,10 @@ }, "additionalProperties": false, "definitions": { + "Uint256": { + "description": "An implementation of u256 that is using strings for JSON encoding/decoding, such that the full u256 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances out of primitive uint types or `new` to provide big endian bytes:\n\n``` # use cosmwasm_std::Uint256; let a = Uint256::from(258u128); let b = Uint256::new([ 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 2u8, ]); assert_eq!(a, b); ```", + "type": "string" + }, "Uint64": { "description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```", "type": "string" diff --git a/cosmwasm/contracts/price-feed/schema/reference_data.json b/cosmwasm/contracts/price-feed/schema/reference_data.json index 2ba9bb0..685adf5 100644 --- a/cosmwasm/contracts/price-feed/schema/reference_data.json +++ b/cosmwasm/contracts/price-feed/schema/reference_data.json @@ -15,11 +15,15 @@ "$ref": "#/definitions/Uint64" }, "rate": { - "$ref": "#/definitions/Uint64" + "$ref": "#/definitions/Uint256" } }, "additionalProperties": false, "definitions": { + "Uint256": { + "description": "An implementation of u256 that is using strings for JSON encoding/decoding, such that the full u256 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances out of primitive uint types or `new` to provide big endian bytes:\n\n``` # use cosmwasm_std::Uint256; let a = Uint256::from(258u128); let b = Uint256::new([ 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 2u8, ]); assert_eq!(a, b); ```", + "type": "string" + }, "Uint64": { "description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```", "type": "string" diff --git a/cosmwasm/contracts/price-feed/src/contract.rs b/cosmwasm/contracts/price-feed/src/contract.rs index 6c33767..99ae043 100644 --- a/cosmwasm/contracts/price-feed/src/contract.rs +++ b/cosmwasm/contracts/price-feed/src/contract.rs @@ -1,6 +1,6 @@ use cosmwasm_std::{ entry_point, to_binary, Addr, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdError, - StdResult, Uint64, + StdResult, Uint256, Uint64, }; use cw2::{get_contract_version, set_contract_version}; use semver::Version; @@ -12,8 +12,8 @@ use crate::state::{ MEDIANSTATUS, REFDATA, RELAYERS, }; -const E0: Uint64 = Uint64::zero(); -const E9: Uint64 = Uint64::new(1_000_000_000u64); +const E0: Uint256 = Uint256::zero(); +const E18: Uint256 = Uint256::from_u128(1_000_000_000_000_000_000u128); // Version Info const CONTRACT_NAME: &str = "ojo-price-feeds"; @@ -166,7 +166,7 @@ fn execute_remove_relayers( fn execute_relay( deps: DepsMut, info: MessageInfo, - symbol_rates: Vec<(String, Uint64)>, + symbol_rates: Vec<(String, Uint256)>, resolve_time: Uint64, request_id: Uint64, ) -> Result { @@ -198,7 +198,7 @@ fn execute_relay( fn execute_relay_historical_median( deps: DepsMut, info: MessageInfo, - symbol_rates: Vec<(String, Vec)>, + symbol_rates: Vec<(String, Vec)>, resolve_time: Uint64, request_id: Uint64, ) -> Result { @@ -235,7 +235,7 @@ fn execute_relay_historical_median( fn execute_force_relay( deps: DepsMut, info: MessageInfo, - symbol_rates: Vec<(String, Uint64)>, + symbol_rates: Vec<(String, Uint256)>, resolve_time: Uint64, request_id: Uint64, ) -> Result { @@ -261,7 +261,7 @@ fn execute_force_relay( fn execute_force_relay_historical_median( deps: DepsMut, info: MessageInfo, - symbol_rates: Vec<(String, Vec)>, + symbol_rates: Vec<(String, Vec)>, resolve_time: Uint64, request_id: Uint64, ) -> Result { @@ -287,7 +287,7 @@ fn execute_force_relay_historical_median( fn execute_relay_historical_deviation( deps: DepsMut, info: MessageInfo, - symbol_rates: Vec<(String, Vec)>, + symbol_rates: Vec<(String, Vec)>, resolve_time: Uint64, request_id: Uint64, ) -> Result { @@ -320,7 +320,7 @@ fn execute_relay_historical_deviation( fn execute_force_relay_historical_deviation( deps: DepsMut, info: MessageInfo, - symbol_rates: Vec<(String, Vec)>, + symbol_rates: Vec<(String, Vec)>, resolve_time: Uint64, request_id: Uint64, ) -> Result { @@ -376,7 +376,7 @@ fn query_is_relayer(deps: Deps, relayer: &Addr) -> StdResult { fn query_ref(deps: Deps, symbol: &str) -> StdResult { if symbol == "USD" { - Ok(RefData::new(E9, Uint64::MAX, Uint64::zero())) + Ok(RefData::new(E18, Uint64::MAX, Uint64::zero())) } else { REFDATA.load(deps.storage, symbol) } @@ -387,9 +387,9 @@ fn query_reference_data(deps: Deps, symbol_pair: &(String, String)) -> StdResult let quote = query_ref(deps, &symbol_pair.1)?; Ok(ReferenceData::new( - Uint64::from(base.rate) - .checked_mul(E9)? - .checked_div(Uint64::from(quote.rate))?, + Uint256::from(base.rate) + .checked_mul(E18)? + .checked_div(Uint256::from(quote.rate))?, base.resolve_time, quote.resolve_time, )) @@ -412,7 +412,7 @@ fn query_median_ref(deps: Deps, symbol: &str) -> StdResult { } if symbol == "USD" { - Ok(RefMedianData::new(vec![E9], Uint64::MAX, Uint64::zero())) + Ok(RefMedianData::new(vec![E18], Uint64::MAX, Uint64::zero())) } else { MEDIANREFDATA.load(deps.storage, symbol) } @@ -443,7 +443,7 @@ fn query_deviation_ref_bulk(deps: Deps, symbols: &[String]) -> StdResult, - symbol_rates: Vec<(String, Uint64)>, + symbol_rates: Vec<(String, Uint256)>, resolve_time: Uint64, request_id: Uint64, ) { @@ -687,12 +687,12 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); let msg = Relay { symbol_rates: zip(symbols.clone(), rates.clone()) - .collect::>(), + .collect::>(), resolve_time: Uint64::from(100u64), request_id: Uint64::one(), }; @@ -712,13 +712,13 @@ mod tests { .clone() .into_iter() .map(|rd| rd.rate) - .collect::>(); + .collect::>(); assert_eq!( retrieved_rates, rates .iter() - .map(|r| Uint64::from(*r)) - .collect::>() + .map(|r| Uint256::from(*r)) + .collect::>() ); } @@ -738,11 +738,11 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); let msg = Relay { symbol_rates: zip(symbols.clone(), rates.clone()) - .collect::>(), + .collect::>(), resolve_time: Uint64::from(100u64), request_id: Uint64::one(), }; @@ -753,10 +753,10 @@ mod tests { let env = mock_env(); let old_rates = [1, 2, 3] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); let msg = Relay { - symbol_rates: zip(symbols.clone(), old_rates).collect::>(), + symbol_rates: zip(symbols.clone(), old_rates).collect::>(), resolve_time: Uint64::from(90u64), request_id: Uint64::one(), }; @@ -776,13 +776,13 @@ mod tests { .clone() .into_iter() .map(|rd| rd.rate) - .collect::>(); + .collect::>(); assert_eq!( retrieved_rates, rates .iter() - .map(|r| Uint64::from(*r)) - .collect::>() + .map(|r| Uint256::from(*r)) + .collect::>() ); } @@ -802,10 +802,10 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); let msg = Relay { - symbol_rates: zip(symbols.clone(), rates).collect::>(), + symbol_rates: zip(symbols.clone(), rates).collect::>(), resolve_time: Uint64::from(10u64), request_id: Uint64::one(), }; @@ -815,7 +815,7 @@ mod tests { let info = mock_info(relayer.as_str(), &[]); let env = mock_env(); let msg = Relay { - symbol_rates: vec![(String::from("AAA"), Uint64::new(99999))], + symbol_rates: vec![(String::from("AAA"), Uint256::from(99999u128))], resolve_time: Uint64::from(20u64), request_id: Uint64::from(3u64), }; @@ -826,10 +826,10 @@ mod tests { let env = mock_env(); let update_rates = [1, 2, 3] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); let msg = Relay { - symbol_rates: zip(symbols.clone(), update_rates).collect::>(), + symbol_rates: zip(symbols.clone(), update_rates).collect::>(), resolve_time: Uint64::from(15u64), request_id: Uint64::from(2u64), }; @@ -849,11 +849,11 @@ mod tests { .clone() .into_iter() .map(|rd| rd.rate) - .collect::>(); + .collect::>(); let expected_rates = vec![99999, 2, 3] .iter() - .map(|r| Uint64::from(*r as u64)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); assert_eq!(retrieved_rates, expected_rates); } @@ -873,10 +873,10 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); - let symbol_rates: Vec<(String, Vec)> = symbols + let symbol_rates: Vec<(String, Vec)> = symbols .iter() .zip(std::iter::repeat(rates.clone())) .map(|(s, r)| (s.to_owned(), r)) @@ -905,7 +905,7 @@ mod tests { execute(deps.as_mut(), env.clone(), info, msg).unwrap(); // try executing relay msg - let symbol_rates: Vec<(String, Vec)> = symbols + let symbol_rates: Vec<(String, Vec)> = symbols .iter() .zip(std::iter::repeat(rates.clone())) .map(|(s, r)| (s.to_owned(), r)) @@ -943,10 +943,10 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); - let symbol_rates: Vec<(String, Vec)> = symbols + let symbol_rates: Vec<(String, Vec)> = symbols .iter() .zip(std::iter::repeat(rates.clone())) .map(|(s, r)| (s.to_owned(), r)) @@ -966,10 +966,10 @@ mod tests { let forced_rates = [1001, 2001, 3001] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); - let forced_symbol_rates: Vec<(String, Vec)> = symbols + let forced_symbol_rates: Vec<(String, Vec)> = symbols .iter() .zip(std::iter::repeat(forced_rates.clone())) .map(|(s, r)| (s.to_owned(), r)) @@ -1008,10 +1008,10 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); - let symbol_rates: Vec<(String, Vec)> = symbols + let symbol_rates: Vec<(String, Vec)> = symbols .iter() .zip(std::iter::repeat(rates.clone())) .map(|(s, r)| (s.to_owned(), r)) @@ -1049,10 +1049,10 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); - let symbol_rates: Vec<(String, Vec)> = symbols + let symbol_rates: Vec<(String, Vec)> = symbols .iter() .zip(std::iter::repeat(rates.clone())) .map(|(s, r)| (s.to_owned(), r)) @@ -1070,10 +1070,10 @@ mod tests { let env = mock_env(); let forced_deviations = [1001, 2001, 3001] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); - let symbol_rates: Vec<(String, Vec)> = symbols + let symbol_rates: Vec<(String, Vec)> = symbols .iter() .zip(std::iter::repeat(forced_deviations.clone())) .map(|(s, r)| (s.to_owned(), r)) @@ -1110,11 +1110,11 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); let msg = Relay { symbol_rates: zip(symbols.clone(), rates.clone()) - .collect::>(), + .collect::>(), resolve_time: Uint64::zero(), request_id: Uint64::zero(), }; @@ -1143,11 +1143,11 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); let msg = ForceRelay { symbol_rates: zip(symbols.clone(), rates.clone()) - .collect::>(), + .collect::>(), resolve_time: Uint64::from(100u64), request_id: Uint64::from(2u64), }; @@ -1158,11 +1158,11 @@ mod tests { let env = mock_env(); let forced_rates = [1, 2, 3] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); let msg = ForceRelay { symbol_rates: zip(symbols.clone(), forced_rates.clone()) - .collect::>(), + .collect::>(), resolve_time: Uint64::from(90u64), request_id: Uint64::one(), }; @@ -1181,13 +1181,13 @@ mod tests { let retrieved_rates = reference_datas .into_iter() .map(|rd| rd.rate) - .collect::>(); + .collect::>(); assert_eq!( retrieved_rates, forced_rates .iter() - .map(|r| Uint64::from(*r)) - .collect::>() + .map(|r| Uint256::from(*r)) + .collect::>() ); } @@ -1206,11 +1206,11 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); let msg = ForceRelay { symbol_rates: zip(symbols.clone(), rates.clone()) - .collect::>(), + .collect::>(), resolve_time: Uint64::zero(), request_id: Uint64::zero(), }; @@ -1272,7 +1272,7 @@ mod tests { let mut deps = mock_dependencies(); let relayer = String::from("relayer"); let symbol = vec![String::from("AAA")]; - let rate = vec![Uint64::new(1000)]; + let rate = vec![Uint256::from(1000u128)]; setup_relays( deps.as_mut(), "owner", @@ -1308,7 +1308,7 @@ mod tests { let mut deps = mock_dependencies(); let relayer = String::from("relayer"); let symbol = vec![String::from("AAA")]; - let rate = vec![Uint64::new(1000)]; + let rate = vec![Uint256::from(1000u128)]; setup_relays( deps.as_mut(), "owner", @@ -1327,7 +1327,7 @@ mod tests { assert_eq!( from_binary::(&binary_res).unwrap(), ReferenceData::new( - Uint64::from(rate[0]), + Uint256::from(rate[0]), Uint64::from(100u64), Uint64::MAX, ) @@ -1360,8 +1360,8 @@ mod tests { .collect::>(); let rates = [1000, 2000, 3000] .iter() - .map(|r| Uint64::new(*r)) - .collect::>(); + .map(|r| Uint256::from(*r as u128)) + .collect::>(); setup_relays( deps.as_mut(), "owner", @@ -1385,7 +1385,7 @@ mod tests { .iter() .map(|r| { ReferenceData::new( - Uint64::from(*r), + Uint256::from(*r), Uint64::from(100u64), Uint64::MAX, ) diff --git a/cosmwasm/contracts/price-feed/src/msg.rs b/cosmwasm/contracts/price-feed/src/msg.rs index 643a155..90f358d 100644 --- a/cosmwasm/contracts/price-feed/src/msg.rs +++ b/cosmwasm/contracts/price-feed/src/msg.rs @@ -1,5 +1,5 @@ use cosmwasm_schema::{cw_serde, QueryResponses}; -use cosmwasm_std::Uint64; +use cosmwasm_std::{Uint256, Uint64}; use crate::state::{RefData,RefDeviationData,RefMedianData,ReferenceData}; #[cw_serde] @@ -37,7 +37,7 @@ pub enum ExecuteMsg { // e.g. // BTC = 19,343.34, ETH = 1,348.57 // symbol_rates ≡ <("BTC", 19343340000000), ("ETH", 1348570000000)> - symbol_rates: Vec<(String, Uint64)>, + symbol_rates: Vec<(String, Uint256)>, // Resolve time of request on Ojo in Unix timestamp resolve_time: Uint64, // Request ID of the results on Ojo @@ -50,7 +50,7 @@ pub enum ExecuteMsg { // e.g. // BTC = 19,343.34, ETH = 1,348.57 // symbol_rates ≡ <("BTC", 19343340000000), ("ETH", 1348570000000)> - symbol_rates: Vec<(String, Vec)>, + symbol_rates: Vec<(String, Vec)>, // Resolve time of request on Ojo in Unix timestamp resolve_time: Uint64, // Request ID of the results on Ojo @@ -58,26 +58,26 @@ pub enum ExecuteMsg { }, // Relays a vector of symbols and their corresponding deviation rates RelayHistoricalDeviation { - symbol_rates: Vec<(String, Vec)>, + symbol_rates: Vec<(String, Vec)>, resolve_time: Uint64, // Request ID of the results on Ojo request_id: Uint64, }, // Same as Relay but without the resolve_time guard ForceRelay { - symbol_rates: Vec<(String, Uint64)>, + symbol_rates: Vec<(String, Uint256)>, resolve_time: Uint64, request_id: Uint64, }, // Same as RelayHistoricalMedian but without the resolve_time guard ForceRelayHistoricalMedian { - symbol_rates: Vec<(String, Vec)>, + symbol_rates: Vec<(String, Vec)>, resolve_time: Uint64, request_id: Uint64, }, // Same as RelayHistoricalDeviation but without the resolve_time guard ForceRelayHistoricalDeviation { - symbol_rates: Vec<(String, Vec)>, + symbol_rates: Vec<(String, Vec)>, resolve_time: Uint64, // Request ID of the results on Ojo request_id: Uint64, diff --git a/cosmwasm/contracts/price-feed/src/state.rs b/cosmwasm/contracts/price-feed/src/state.rs index 92db5a8..2b00cde 100644 --- a/cosmwasm/contracts/price-feed/src/state.rs +++ b/cosmwasm/contracts/price-feed/src/state.rs @@ -1,5 +1,5 @@ use cosmwasm_schema::cw_serde; -use cosmwasm_std::{Addr, Uint64}; +use cosmwasm_std::{Addr, Uint256, Uint64}; use cw_controllers::Admin; use cw_storage_plus::{Item, Map}; @@ -24,7 +24,7 @@ pub const DEVIATIONDATA: Map<&str, RefDeviationData> = Map::new("deviationdata") #[cw_serde] pub struct RefData { // Rate of an asset relative to USD (deviation of assets when used with deviation queries) - pub rate: Uint64, + pub rate: Uint256, // The resolve time of the request ID pub resolve_time: Uint64, // The request ID where the rate was derived from @@ -32,7 +32,7 @@ pub struct RefData { } impl RefData { - pub fn new(rate: Uint64, resolve_time: Uint64, request_id: Uint64) -> Self { + pub fn new(rate: Uint256, resolve_time: Uint64, request_id: Uint64) -> Self { RefData { rate, resolve_time, @@ -44,7 +44,7 @@ impl RefData { #[cw_serde] pub struct RefMedianData { // Median Rates of an asset relative to USD - pub rates: Vec, + pub rates: Vec, // The resolve time of the request ID pub resolve_time: Uint64, // The request ID where the rate was derived from @@ -52,7 +52,7 @@ pub struct RefMedianData { } impl RefMedianData { - pub fn new(rates: Vec, resolve_time: Uint64, request_id: Uint64) -> Self { + pub fn new(rates: Vec, resolve_time: Uint64, request_id: Uint64) -> Self { RefMedianData { rates, resolve_time, @@ -64,7 +64,7 @@ impl RefMedianData { #[cw_serde] pub struct RefDeviationData { // Deviation Rates of an asset relative to USD - pub rates: Vec, + pub rates: Vec, // The resolve time of the request ID pub resolve_time: Uint64, // The request ID where the rate was derived from @@ -72,7 +72,7 @@ pub struct RefDeviationData { } impl RefDeviationData { - pub fn new(rates: Vec, resolve_time: Uint64, request_id: Uint64) -> Self { + pub fn new(rates: Vec, resolve_time: Uint64, request_id: Uint64) -> Self { RefDeviationData { rates, resolve_time, @@ -84,7 +84,7 @@ impl RefDeviationData { #[cw_serde] pub struct ReferenceData { // Pair rate e.g. rate of BTC/USD - pub rate: Uint64, + pub rate: Uint256, // Unix time of when the base asset was last updated. e.g. Last update time of BTC in Unix time pub last_updated_base: Uint64, // Unix time of when the quote asset was last updated. e.g. Last update time of USD in Unix time @@ -92,7 +92,7 @@ pub struct ReferenceData { } impl ReferenceData { - pub fn new(rate: Uint64, last_updated_base: Uint64, last_updated_quote: Uint64) -> Self { + pub fn new(rate: Uint256, last_updated_base: Uint64, last_updated_quote: Uint64) -> Self { ReferenceData { rate, last_updated_base, diff --git a/cw-relayer/relayer/relayer.go b/cw-relayer/relayer/relayer.go index 7220905..a604aa2 100644 --- a/cw-relayer/relayer/relayer.go +++ b/cw-relayer/relayer/relayer.go @@ -23,7 +23,7 @@ import ( var ( // RateFactor is used to convert ojo prices to contract-compatible values. - RateFactor = types.NewDec(10).Power(9) + RateFactor = types.NewDec(10).Power(18) noRates = fmt.Errorf("no rates found") noMedians = fmt.Errorf("median deviations empty") noDeviations = fmt.Errorf("deviation deviations empty")