Init cw-tee-mtcs contract
This commit is contained in:
parent
5855077d30
commit
595b0e02a8
8 changed files with 167 additions and 0 deletions
56
bisenzone-cw-mvp/contracts/cw-tee-mtcs/Cargo.toml
Normal file
56
bisenzone-cw-mvp/contracts/cw-tee-mtcs/Cargo.toml
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
[package]
|
||||||
|
name = "cw-tee-mtcs"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["hu55a1n1 <sufialhussaini@gmail.com>"]
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
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.
|
||||||
|
"contract.wasm",
|
||||||
|
"hash.txt",
|
||||||
|
]
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
crate-type = ["cdylib", "rlib"]
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
opt-level = 3
|
||||||
|
debug = false
|
||||||
|
rpath = false
|
||||||
|
lto = true
|
||||||
|
debug-assertions = false
|
||||||
|
codegen-units = 1
|
||||||
|
panic = 'abort'
|
||||||
|
incremental = false
|
||||||
|
overflow-checks = true
|
||||||
|
|
||||||
|
[features]
|
||||||
|
# for more explicit tests, cargo test --features=backtraces
|
||||||
|
backtraces = ["cosmwasm-std/backtraces"]
|
||||||
|
# use library feature to disable all instantiate/execute/query exports
|
||||||
|
library = []
|
||||||
|
|
||||||
|
[package.metadata.scripts]
|
||||||
|
optimize = """docker run --rm -v "$(pwd)":/code \
|
||||||
|
--mount type=volume,source="$(basename "$(pwd)")_cache",target=/target \
|
||||||
|
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
|
||||||
|
cosmwasm/rust-optimizer:0.14.0
|
||||||
|
"""
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
cosmwasm-schema = "1.5.0"
|
||||||
|
cosmwasm-std = { version = "1.5.0", features = [
|
||||||
|
"cosmwasm_1_3",
|
||||||
|
# Enable this if you only deploy to chains that have CosmWasm 1.4 or higher
|
||||||
|
# "cosmwasm_1_4",
|
||||||
|
] }
|
||||||
|
cw-storage-plus = "1.1.0"
|
||||||
|
cw2 = "1.1.1"
|
||||||
|
schemars = "0.8.15"
|
||||||
|
serde = { version = "1.0.189", default-features = false, features = ["derive"] }
|
||||||
|
thiserror = { version = "1.0.49" }
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
cw-multi-test = "0.17.0"
|
4
bisenzone-cw-mvp/contracts/cw-tee-mtcs/README.md
Normal file
4
bisenzone-cw-mvp/contracts/cw-tee-mtcs/README.md
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# CosmWasm smart contract to support MTCS on TEE
|
||||||
|
|
||||||
|
An implementation of the on-chain component of
|
||||||
|
the [Key managers proposal v1](https://github.com/informalsystems/tee-mtcs/issues/26).
|
11
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/bin/schema.rs
Normal file
11
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/bin/schema.rs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
use cosmwasm_schema::write_api;
|
||||||
|
|
||||||
|
use cw_tee_mtcs::msg::{ExecuteMsg, InstantiateMsg, QueryMsg};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
write_api! {
|
||||||
|
instantiate: InstantiateMsg,
|
||||||
|
execute: ExecuteMsg,
|
||||||
|
query: QueryMsg,
|
||||||
|
}
|
||||||
|
}
|
50
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/contract.rs
Normal file
50
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/contract.rs
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
use cosmwasm_std::{entry_point, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult};
|
||||||
|
use cw2::set_contract_version;
|
||||||
|
|
||||||
|
use crate::error::ContractError;
|
||||||
|
use crate::msg::{ExecuteMsg, InstantiateMsg, QueryMsg};
|
||||||
|
use crate::state::{State, STATE};
|
||||||
|
|
||||||
|
// version info for migration info
|
||||||
|
const CONTRACT_NAME: &str = "crates.io:cw-tee-mtcs";
|
||||||
|
const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||||
|
|
||||||
|
#[cfg_attr(not(feature = "library"), entry_point)]
|
||||||
|
pub fn instantiate(
|
||||||
|
deps: DepsMut,
|
||||||
|
_env: Env,
|
||||||
|
info: MessageInfo,
|
||||||
|
_msg: InstantiateMsg,
|
||||||
|
) -> Result<Response, ContractError> {
|
||||||
|
let state = State {
|
||||||
|
owner: info.sender.to_string(),
|
||||||
|
};
|
||||||
|
set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?;
|
||||||
|
STATE.save(deps.storage, &state)?;
|
||||||
|
|
||||||
|
Ok(Response::new()
|
||||||
|
.add_attribute("method", "instantiate")
|
||||||
|
.add_attribute("owner", info.sender))
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg_attr(not(feature = "library"), entry_point)]
|
||||||
|
pub fn execute(
|
||||||
|
_deps: DepsMut,
|
||||||
|
_env: Env,
|
||||||
|
_info: MessageInfo,
|
||||||
|
_msg: ExecuteMsg,
|
||||||
|
) -> Result<Response, ContractError> {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub mod execute {}
|
||||||
|
|
||||||
|
#[cfg_attr(not(feature = "library"), entry_point)]
|
||||||
|
pub fn query(_deps: Deps, _env: Env, _msg: QueryMsg) -> StdResult<Binary> {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub mod query {}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {}
|
11
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/error.rs
Normal file
11
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/error.rs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
use cosmwasm_std::StdError;
|
||||||
|
use thiserror::Error;
|
||||||
|
|
||||||
|
#[derive(Error, Debug)]
|
||||||
|
pub enum ContractError {
|
||||||
|
#[error("{0}")]
|
||||||
|
Std(#[from] StdError),
|
||||||
|
|
||||||
|
#[error("Unauthorized")]
|
||||||
|
Unauthorized,
|
||||||
|
}
|
15
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/lib.rs
Normal file
15
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/lib.rs
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#![deny(
|
||||||
|
warnings,
|
||||||
|
trivial_casts,
|
||||||
|
trivial_numeric_casts,
|
||||||
|
unused_import_braces,
|
||||||
|
unused_qualifications
|
||||||
|
)]
|
||||||
|
#![forbid(unsafe_code)]
|
||||||
|
|
||||||
|
pub mod contract;
|
||||||
|
mod error;
|
||||||
|
pub mod msg;
|
||||||
|
pub mod state;
|
||||||
|
|
||||||
|
pub use crate::error::ContractError;
|
11
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/msg.rs
Normal file
11
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/msg.rs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
use cosmwasm_schema::{cw_serde, QueryResponses};
|
||||||
|
|
||||||
|
#[cw_serde]
|
||||||
|
pub struct InstantiateMsg;
|
||||||
|
|
||||||
|
#[cw_serde]
|
||||||
|
pub enum ExecuteMsg {}
|
||||||
|
|
||||||
|
#[cw_serde]
|
||||||
|
#[derive(QueryResponses)]
|
||||||
|
pub enum QueryMsg {}
|
9
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/state.rs
Normal file
9
bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/state.rs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
use cosmwasm_schema::cw_serde;
|
||||||
|
use cw_storage_plus::Item;
|
||||||
|
|
||||||
|
#[cw_serde]
|
||||||
|
pub struct State {
|
||||||
|
pub owner: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub const STATE: Item<State> = Item::new("state");
|
Loading…
Reference in a new issue