diff --git a/package/base/vrfdkgp/Cargo.toml b/package/base/vrfdkgp/Cargo.toml new file mode 100644 index 00000000..c09e2168 --- /dev/null +++ b/package/base/vrfdkgp/Cargo.toml @@ -0,0 +1,31 @@ +[package] +authors = ["Oraichain Labs"] +edition = "2021" +license = "AGPL-3.0" +name = "vrfdkgp" +version = "0.1.0" + +exclude = [ + # Those files are rust-optimizer artifacts. You might want to commit them for convenience but they should not be part of the source code publication. + "artifacts/", +] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +crate-type = ["cdylib", "rlib"] + +[features] +# use library feature to disable all instantiate/execute/query exports +library = [] +# for quicker tests, cargo test --lib +# for more explicit tests, cargo test --features=backtraces +backtraces = ["cosmwasm-std/backtraces"] + +[dependencies] +cosmwasm-std = { version = "1.5" } +cosmwasm-schema = { version = "1.5" } +schemars = "0.8" +serde = { version = "1.0.204", default-features = false, features = ["derive"] } +thiserror = "1.0" +cw-utils = { workspace = true } \ No newline at end of file diff --git a/package/base/vrfdkgp/Xargo.toml b/package/base/vrfdkgp/Xargo.toml new file mode 100644 index 00000000..6ee1c000 --- /dev/null +++ b/package/base/vrfdkgp/Xargo.toml @@ -0,0 +1,2 @@ +[dependencies] +std = { default-features = false } diff --git a/package/plus/vrfdkg/src/errors.rs b/package/base/vrfdkgp/src/errors.rs similarity index 100% rename from package/plus/vrfdkg/src/errors.rs rename to package/base/vrfdkgp/src/errors.rs diff --git a/package/base/vrfdkgp/src/lib.rs b/package/base/vrfdkgp/src/lib.rs new file mode 100644 index 00000000..d42165ac --- /dev/null +++ b/package/base/vrfdkgp/src/lib.rs @@ -0,0 +1,3 @@ +pub mod errors; +pub mod msg; +pub mod state; diff --git a/package/plus/vrfdkg/src/msg.rs b/package/base/vrfdkgp/src/msg.rs similarity index 100% rename from package/plus/vrfdkg/src/msg.rs rename to package/base/vrfdkgp/src/msg.rs diff --git a/package/base/vrfdkgp/src/state.rs b/package/base/vrfdkgp/src/state.rs new file mode 100644 index 00000000..b7b34685 --- /dev/null +++ b/package/base/vrfdkgp/src/state.rs @@ -0,0 +1,22 @@ +use cosmwasm_schema::cw_serde; +use cosmwasm_std::Coin; + +use crate::msg::SharedStatus; + +#[cw_serde] +pub struct Config { + /// The denom in which bounties are paid. This is typically the fee token of the chain. + pub total: u16, + pub threshold: u16, + pub dealer: u16, + // total dealers and rows have been shared + pub shared_dealer: u16, + pub shared_row: u16, + pub fee: Option, + pub status: SharedStatus, +} + +#[cw_serde] +pub struct Owner { + pub owner: String, +} diff --git a/package/plus/vrfdkg/Cargo.toml b/package/plus/vrfdkg/Cargo.toml index 3556f4a0..40d529fb 100644 --- a/package/plus/vrfdkg/Cargo.toml +++ b/package/plus/vrfdkg/Cargo.toml @@ -27,6 +27,7 @@ cosmwasm-std = { version = "1.5" } cosmwasm-storage = { version = "1.5", features = ["iterator"] } cosmwasm-schema = { version = "1.5" } blsdkg = { path = "../../base/blsdkg" } +vrfdkgp = { path = "../../base/vrfdkgp" } schemars = "0.8" serde = { version = "1.0.204", default-features = false, features = ["derive"] } thiserror = "1.0" diff --git a/package/plus/vrfdkg/src/bin/schema.rs b/package/plus/vrfdkg/src/bin/schema.rs index 9a38c54e..1099326d 100644 --- a/package/plus/vrfdkg/src/bin/schema.rs +++ b/package/plus/vrfdkg/src/bin/schema.rs @@ -1,6 +1,6 @@ use cosmwasm_schema::write_api; -use vrfdkg::msg::{ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg}; +use vrfdkgp::msg::{ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg}; fn main() { write_api! { diff --git a/package/plus/vrfdkg/src/contract.rs b/package/plus/vrfdkg/src/contract.rs index 2404d863..2f2bf4d0 100644 --- a/package/plus/vrfdkg/src/contract.rs +++ b/package/plus/vrfdkg/src/contract.rs @@ -12,13 +12,14 @@ use blsdkg::{ }; use cw_storage_plus::Bound; use cw_utils::one_coin; +use vrfdkgp::state::{Config, Owner}; -use crate::errors::ContractError; -use crate::msg::{ +use crate::state::{BEACONS, CONFIG, MEMBERS, OWNER, ROUND_COUNT}; +use vrfdkgp::errors::ContractError; +use vrfdkgp::msg::{ DistributedShareData, ExecuteMsg, InstantiateMsg, Member, MemberMsg, MigrateMsg, QueryMsg, ShareSig, ShareSigMsg, SharedDealerMsg, SharedRowMsg, SharedStatus, }; -use crate::state::{Config, Owner, BEACONS, CONFIG, MEMBERS, OWNER, ROUND_COUNT}; use cosmwasm_crypto::secp256k1_verify; diff --git a/package/plus/vrfdkg/src/lib.rs b/package/plus/vrfdkg/src/lib.rs index 6ce06bf9..da3bbc25 100644 --- a/package/plus/vrfdkg/src/lib.rs +++ b/package/plus/vrfdkg/src/lib.rs @@ -1,6 +1,4 @@ pub mod contract; -pub mod errors; -pub mod msg; pub mod state; #[cfg(test)] diff --git a/package/plus/vrfdkg/src/state.rs b/package/plus/vrfdkg/src/state.rs index cdc328fb..48954668 100644 --- a/package/plus/vrfdkg/src/state.rs +++ b/package/plus/vrfdkg/src/state.rs @@ -1,30 +1,11 @@ -use cosmwasm_schema::cw_serde; use cw_storage_plus::{Item, Map}; - -use cosmwasm_std::Coin; +use vrfdkgp::{ + msg::{DistributedShareData, Member}, + state::{Config, Owner}, +}; pub const CONFIG: Item = Item::new("config"); pub const ROUND_COUNT: Item = Item::new("round_count"); pub const OWNER: Item = Item::new("owner"); pub const MEMBERS: Map<&[u8], Member> = Map::new("members"); pub const BEACONS: Map<&[u8], DistributedShareData> = Map::new("beacons"); - -use crate::msg::{DistributedShareData, Member, SharedStatus}; - -#[cw_serde] -pub struct Config { - /// The denom in which bounties are paid. This is typically the fee token of the chain. - pub total: u16, - pub threshold: u16, - pub dealer: u16, - // total dealers and rows have been shared - pub shared_dealer: u16, - pub shared_row: u16, - pub fee: Option, - pub status: SharedStatus, -} - -#[cw_serde] -pub struct Owner { - pub owner: String, -} diff --git a/package/plus/vrfdkg/src/tests.rs b/package/plus/vrfdkg/src/tests.rs index cbb6acba..61510a13 100644 --- a/package/plus/vrfdkg/src/tests.rs +++ b/package/plus/vrfdkg/src/tests.rs @@ -2,12 +2,12 @@ use crate::{ contract::{ execute, get_all_members, get_final_signed_message, instantiate, query, query_current, }, - msg::{ - DistributedShareData, ExecuteMsg, InstantiateMsg, Member, MemberMsg, QueryMsg, ShareSigMsg, - SharedDealerMsg, SharedRowMsg, SharedStatus, - }, - state::{Config, ROUND_COUNT}, + state::ROUND_COUNT, }; +use vrfdkgp::{msg::{ + DistributedShareData, ExecuteMsg, InstantiateMsg, Member, MemberMsg, QueryMsg, ShareSigMsg, + SharedDealerMsg, SharedRowMsg, SharedStatus, +}, state::Config}; use blsdkg::{ ff::Field,