From 47883c8235da881f35712d27244a7b7e967ad5e4 Mon Sep 17 00:00:00 2001 From: Eshel Date: Sun, 13 Aug 2023 23:49:30 +0300 Subject: [PATCH 1/5] added initial form of test that checks for rollback on tx failure --- .../contract-v0.10/src/contract.rs | 31 ++++++++--- integration-tests/contract-v1/src/contract.rs | 23 ++++++--- integration-tests/contract-v1/src/msg.rs | 8 ++- integration-tests/test.ts | 51 +++++++++++++++++++ 4 files changed, 98 insertions(+), 15 deletions(-) diff --git a/integration-tests/contract-v0.10/src/contract.rs b/integration-tests/contract-v0.10/src/contract.rs index 68e2cae87..feb369a4e 100644 --- a/integration-tests/contract-v0.10/src/contract.rs +++ b/integration-tests/contract-v0.10/src/contract.rs @@ -1,8 +1,4 @@ -use cosmwasm_std::{ - to_binary, Api, BalanceResponse, BankMsg, BankQuery, Binary, Coin, CosmosMsg, Empty, Env, - Extern, GovMsg, HandleResponse, HandleResult, HumanAddr, InitResponse, InitResult, - LogAttribute, Querier, QueryRequest, QueryResult, StakingMsg, Storage, VoteOption, WasmMsg, -}; +use cosmwasm_std::{to_binary, Api, BalanceResponse, BankMsg, BankQuery, Binary, Coin, CosmosMsg, Empty, Env, Extern, GovMsg, HandleResponse, HandleResult, HumanAddr, InitResponse, InitResult, LogAttribute, Querier, QueryRequest, QueryResult, StakingMsg, Storage, VoteOption, WasmMsg, Uint128, StdError}; /////////////////////////////// Messages /////////////////////////////// @@ -56,6 +52,12 @@ pub enum Msg { send: Vec, }, CustomMsg {}, + Forward { + recipient_address: HumanAddr, + recipient_hash: String, + msg: Binary, + }, + FailTx {} } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] @@ -71,6 +73,7 @@ pub fn init( _env: Env, _msg: Msg, ) -> InitResult { + deps.storage.set("forwarded".as_bytes(), "no-fail".as_bytes()); return Ok(InitResponse { messages: vec![], log: vec![], @@ -80,7 +83,7 @@ pub fn init( /////////////////////////////// Handle /////////////////////////////// pub fn handle( - _deps: &mut Extern, + deps: &mut Extern, env: Env, msg: Msg, ) -> HandleResult { @@ -192,6 +195,22 @@ pub fn handle( log: vec![], data: None, }), + Msg::Forward { recipient_address, recipient_hash, msg } => { + deps.storage.set("forwarded".as_bytes(), "forwarded".as_bytes()); + Ok(HandleResponse { + messages: vec![CosmosMsg::Wasm( + WasmMsg::Execute { + contract_addr: recipient_address, + callback_code_hash: recipient_hash, + msg, + send: vec![] + }, + )], + log: vec![], + data: None, + }) + } + Msg::FailTx {} => Err (StdError::generic_err("this should always fail")), } } diff --git a/integration-tests/contract-v1/src/contract.rs b/integration-tests/contract-v1/src/contract.rs index 78864b4d1..acf327067 100644 --- a/integration-tests/contract-v1/src/contract.rs +++ b/integration-tests/contract-v1/src/contract.rs @@ -1,12 +1,5 @@ use crate::ibc::PACKET_LIFETIME; -use cosmwasm_std::{ - entry_point, to_binary, to_vec, AllBalanceResponse, AllDelegationsResponse, - AllValidatorsResponse, BalanceResponse, BankMsg, BankQuery, Binary, BondedDenomResponse, - ChannelResponse, ContractInfoResponse, ContractResult, CosmosMsg, DelegationResponse, Deps, - DepsMut, DistributionMsg, Empty, Env, Event, GovMsg, IbcMsg, IbcQuery, IbcTimeout, - ListChannelsResponse, MessageInfo, PortIdResponse, QueryRequest, Response, StakingMsg, - StakingQuery, StdError, StdResult, ValidatorResponse, WasmMsg, WasmQuery, -}; +use cosmwasm_std::{entry_point, to_binary, to_vec, AllBalanceResponse, AllDelegationsResponse, AllValidatorsResponse, BalanceResponse, BankMsg, BankQuery, Binary, BondedDenomResponse, ChannelResponse, ContractInfoResponse, ContractResult, CosmosMsg, DelegationResponse, Deps, DepsMut, DistributionMsg, Empty, Env, Event, GovMsg, IbcMsg, IbcQuery, IbcTimeout, ListChannelsResponse, MessageInfo, PortIdResponse, QueryRequest, Response, StakingMsg, StakingQuery, StdError, StdResult, ValidatorResponse, WasmMsg, WasmQuery, SubMsg}; use crate::msg::{Msg, PacketMsg, QueryMsg}; use crate::state::{ @@ -181,6 +174,20 @@ fn handle_msg(deps: DepsMut, env: Env, info: MessageInfo, msg: Msg) -> StdResult )) } }, + Msg::Forward { recipient_address, recipient_hash, msg } => { + deps.storage.set("forwarded".as_bytes(), "forwarded".as_bytes()); + Ok(Response::new().add_submessage(SubMsg::new( + CosmosMsg::Wasm( + WasmMsg::Execute { + contract_addr: recipient_address.into_string(), + code_hash: recipient_hash, + msg: msg?, + funds: vec![], + }, + ) + ))) + } + Msg::FailTx {} => Err (StdError::generic_err("this should always fail")), // Msg::GetRandom {} => { // return Ok( // Response::new() diff --git a/integration-tests/contract-v1/src/msg.rs b/integration-tests/contract-v1/src/msg.rs index 9d172d28a..a85491558 100644 --- a/integration-tests/contract-v1/src/msg.rs +++ b/integration-tests/contract-v1/src/msg.rs @@ -1,4 +1,4 @@ -use cosmwasm_std::{Binary, Coin, IbcTimeout, VoteOption}; +use cosmwasm_std::{Addr, Binary, Coin, IbcTimeout, Uint128, VoteOption}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; @@ -72,6 +72,12 @@ pub enum Msg { funds: Vec, }, GetTxId {}, + Forward { + recipient_address: Addr, + recipient_hash: String, + msg: Option, + }, + FailTx {} //GetRandom {}, } diff --git a/integration-tests/test.ts b/integration-tests/test.ts index 94210b209..f23450c6b 100644 --- a/integration-tests/test.ts +++ b/integration-tests/test.ts @@ -957,6 +957,57 @@ describe("Wasm", () => { expect(tx.rawLog).toContain("execute contract failed"); }); + + test("error in submsg + rollback", async () => { + const tx = await accounts[0].secretjs.tx.compute.executeContract( + { + sender: accounts[0].address, + contract_address: contracts["secretdev-1"].v010.address, + code_hash: contracts["secretdev-1"].v010.codeHash, + msg: { + wasm_msg_execute: { + contract_addr: contracts["secretdev-1"].v010.address, + callback_code_hash: contracts["secretdev-1"].v010.codeHash, + msg: toBase64(toUtf8(JSON.stringify({ forward: { + msg: toBase64(toUtf8(JSON.stringify({ fail_tx: {} }))), + recipient_address: contracts["secretdev-1"].v1.address, + recipient_hash: contracts["secretdev-1"].v1.codeHash, + } }))), + send: [], + }, + }, + }, + { gasLimit: 250_000 } + ); + + if (tx.code !== 3) { + console.error(tx.rawLog); + } + expect(tx.code).toBe(3 /* WASM ErrExecuteFailed */); + expect(tx.rawLog).toContain("execute contract failed"); + + // verify the value rolled back + const b64encode = (str: string): string => + Buffer.from(str, "binary").toString("base64"); + const result: any = await readonly.query.compute.queryContract({ + contract_address: contracts["secretdev-1"].v1.address, + code_hash: contracts["secretdev-1"].v1.codeHash, + query: { + wasm_smart: { + contract_addr: contracts["secretdev-1"].v010.address, + code_hash: contracts["secretdev-1"].v010.codeHash, + msg: b64encode( + JSON.stringify({ + value_on_fail: {}, + }) + ), + }, + }, + }); + + // todo expect correctly + expect(result?.value).toBe("no-fail"); + }); }); }); }); From 25bbe10801078412035b8722fe46ba54dcfbe823 Mon Sep 17 00:00:00 2001 From: Eshel Date: Mon, 14 Aug 2023 00:28:18 +0300 Subject: [PATCH 2/5] now initial accounts in the node started from the ./scripts file have the same coins as in localsecret --- scripts/start-node.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/start-node.sh b/scripts/start-node.sh index f67142fe9..ab25a97de 100755 --- a/scripts/start-node.sh +++ b/scripts/start-node.sh @@ -9,7 +9,7 @@ CHAINID=${3:-secretdev-1} rm -rf $SECRETD_HOME # Build genesis file incl account for passed address -coins="10000000000uscrt,100000000000stake" +coins="1000000000000000000uscrt,100000000000stake" $SECRETD init --chain-id $CHAINID $CHAINID --home $SECRETD_HOME $SECRETD keys add validator --keyring-backend="test" --home $SECRETD_HOME $SECRETD add-genesis-account $($SECRETD keys show validator -a --keyring-backend="test" --home $SECRETD_HOME) $coins --home $SECRETD_HOME From 66004c035b9d2ae5438d2d85472aa2f8d1e838d0 Mon Sep 17 00:00:00 2001 From: Eshel Date: Mon, 14 Aug 2023 01:20:56 +0300 Subject: [PATCH 3/5] commenting out some debug error that seemingly prevents compilation --- .../shared/block-verifier/src/submit_block_signatures.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cosmwasm/enclaves/shared/block-verifier/src/submit_block_signatures.rs b/cosmwasm/enclaves/shared/block-verifier/src/submit_block_signatures.rs index a50f8402f..3e59f0948 100644 --- a/cosmwasm/enclaves/shared/block-verifier/src/submit_block_signatures.rs +++ b/cosmwasm/enclaves/shared/block-verifier/src/submit_block_signatures.rs @@ -153,7 +153,7 @@ pub unsafe fn submit_block_signatures_impl( if header.header.height.value() != 1 && rp.app_hash != header.header.app_hash.as_bytes() { error!("error verifying app hash!"); debug!("calculated app_hash bytes {:?}", rp.app_hash); - debug!("header app_hash bytes {:?}", header.app_hash.as_bytes()); + // debug!("header app_hash bytes {:?}", header.app_hash.as_bytes()); return sgx_status_t::SGX_ERROR_INVALID_PARAMETER; } } From eef614e6fbfc00339c5ac014807503fc95b7a5e1 Mon Sep 17 00:00:00 2001 From: Eshel Date: Mon, 14 Aug 2023 01:21:28 +0300 Subject: [PATCH 4/5] finishing test (fails now because of the block cache bug) --- Makefile | 7 + .../contract-v0.10/src/contract.rs | 7 +- integration-tests/contract-v1/src/contract.rs | 17 +-- integration-tests/contract-v1/src/msg.rs | 5 +- integration-tests/contract-v1/src/state.rs | 9 ++ integration-tests/test.ts | 130 +++++++++++------- 6 files changed, 112 insertions(+), 63 deletions(-) diff --git a/Makefile b/Makefile index 7e466e467..ae363abaa 100644 --- a/Makefile +++ b/Makefile @@ -168,6 +168,13 @@ build-linux: _build-linux build_local_no_rust build_cli _build-linux: BUILD_PROFILE=$(BUILD_PROFILE) FEATURES=$(FEATURES) FEATURES_U=$(FEATURES_U) $(MAKE) -C go-cosmwasm build-rust +.PHONY: run-dev +run-dev: docs/tendermint_enclave.signed.so + FEATURES="read-db-proofs" SGX_MODE=SW $(MAKE) build-linux + cp go-cosmwasm/librust_cosmwasm_enclave.signed.so . + cp docs/tendermint_enclave.signed.so . + SGX_MODE=SW ./scripts/start-node.sh + build-linux-with-query: _build-linux-with-query build_local_no_rust build_cli _build-linux-with-query: BUILD_PROFILE=$(BUILD_PROFILE) FEATURES=$(FEATURES) FEATURES_U=query-node,$(FEATURES_U) $(MAKE) -C go-cosmwasm build-rust diff --git a/integration-tests/contract-v0.10/src/contract.rs b/integration-tests/contract-v0.10/src/contract.rs index feb369a4e..467f62e19 100644 --- a/integration-tests/contract-v0.10/src/contract.rs +++ b/integration-tests/contract-v0.10/src/contract.rs @@ -1,4 +1,4 @@ -use cosmwasm_std::{to_binary, Api, BalanceResponse, BankMsg, BankQuery, Binary, Coin, CosmosMsg, Empty, Env, Extern, GovMsg, HandleResponse, HandleResult, HumanAddr, InitResponse, InitResult, LogAttribute, Querier, QueryRequest, QueryResult, StakingMsg, Storage, VoteOption, WasmMsg, Uint128, StdError}; +use cosmwasm_std::{to_binary, Api, BalanceResponse, BankMsg, BankQuery, Binary, Coin, CosmosMsg, Empty, Env, Extern, GovMsg, HandleResponse, HandleResult, HumanAddr, InitResponse, InitResult, LogAttribute, Querier, QueryRequest, QueryResult, StakingMsg, Storage, VoteOption, WasmMsg, StdError}; /////////////////////////////// Messages /////////////////////////////// @@ -64,12 +64,13 @@ pub enum Msg { #[serde(rename_all = "snake_case")] pub enum QueryMsg { BankBalance { address: HumanAddr, denom: String }, + Forward {}, } /////////////////////////////// Init /////////////////////////////// pub fn init( - _deps: &mut Extern, + deps: &mut Extern, _env: Env, _msg: Msg, ) -> InitResult { @@ -227,5 +228,7 @@ pub fn query(deps: &Extern, msg: QueryM }))?; return Ok(to_binary(&res)?); } + QueryMsg::Forward { } => Ok(to_binary(&deps.storage.get("forwarded".as_bytes()))?), } + } diff --git a/integration-tests/contract-v1/src/contract.rs b/integration-tests/contract-v1/src/contract.rs index acf327067..102656ee8 100644 --- a/integration-tests/contract-v1/src/contract.rs +++ b/integration-tests/contract-v1/src/contract.rs @@ -4,7 +4,7 @@ use cosmwasm_std::{entry_point, to_binary, to_vec, AllBalanceResponse, AllDelega use crate::msg::{Msg, PacketMsg, QueryMsg}; use crate::state::{ ack_store, ack_store_read, channel_store, channel_store_read, receive_store, - receive_store_read, timeout_store, timeout_store_read, + receive_store_read, timeout_store, timeout_store_read, forward_store, forward_store_read, }; #[entry_point] @@ -13,6 +13,7 @@ pub fn instantiate(deps: DepsMut, env: Env, info: MessageInfo, msg: Msg) -> StdR ack_store(deps.storage).save(&"no ack yet".to_string())?; receive_store(deps.storage).save(&"no receive yet".to_string())?; timeout_store(deps.storage).save(&"no timeout yet".to_string())?; + forward_store(deps.storage).save(&"no-fail".to_string())?; return handle_msg(deps, env, info, msg); } @@ -22,7 +23,7 @@ pub fn execute(deps: DepsMut, env: Env, info: MessageInfo, msg: Msg) -> StdResul return handle_msg(deps, env, info, msg); } -fn handle_msg(deps: DepsMut, env: Env, info: MessageInfo, msg: Msg) -> StdResult { +fn handle_msg(deps: DepsMut, env: Env, _info: MessageInfo, msg: Msg) -> StdResult { match msg { Msg::Nop {} => { return Ok(Response::new().set_data(vec![137, 137].as_slice())); @@ -175,17 +176,16 @@ fn handle_msg(deps: DepsMut, env: Env, info: MessageInfo, msg: Msg) -> StdResult } }, Msg::Forward { recipient_address, recipient_hash, msg } => { - deps.storage.set("forwarded".as_bytes(), "forwarded".as_bytes()); - Ok(Response::new().add_submessage(SubMsg::new( - CosmosMsg::Wasm( + forward_store(deps.storage).save(&"forwarded".to_string())?; + Ok(Response::new().add_submessage(SubMsg::new(CosmosMsg::Wasm( WasmMsg::Execute { contract_addr: recipient_address.into_string(), code_hash: recipient_hash, - msg: msg?, + msg, funds: vec![], }, - ) - ))) + )) + )) } Msg::FailTx {} => Err (StdError::generic_err("this should always fail")), // Msg::GetRandom {} => { @@ -302,5 +302,6 @@ pub fn query(deps: Deps, env: Env, msg: QueryMsg) -> StdResult { QueryMsg::LastIbcReceive {} => Ok(to_binary(&receive_store_read(deps.storage).load()?)?), QueryMsg::LastIbcAck {} => Ok(to_binary(&ack_store_read(deps.storage).load()?)?), QueryMsg::LastIbcTimeout {} => Ok(to_binary(&timeout_store_read(deps.storage).load()?)?), + QueryMsg::Forward {} => Ok(to_binary(&forward_store_read(deps.storage).load()?)?), } } diff --git a/integration-tests/contract-v1/src/msg.rs b/integration-tests/contract-v1/src/msg.rs index a85491558..07c96b0e1 100644 --- a/integration-tests/contract-v1/src/msg.rs +++ b/integration-tests/contract-v1/src/msg.rs @@ -1,4 +1,4 @@ -use cosmwasm_std::{Addr, Binary, Coin, IbcTimeout, Uint128, VoteOption}; +use cosmwasm_std::{Addr, Binary, Coin, IbcTimeout, VoteOption}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; @@ -75,7 +75,7 @@ pub enum Msg { Forward { recipient_address: Addr, recipient_hash: String, - msg: Option, + msg: Binary, }, FailTx {} //GetRandom {}, @@ -127,6 +127,7 @@ pub enum QueryMsg { LastIbcReceive {}, LastIbcAck {}, LastIbcTimeout {}, + Forward {}, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] diff --git a/integration-tests/contract-v1/src/state.rs b/integration-tests/contract-v1/src/state.rs index c9cc12990..980f40b36 100644 --- a/integration-tests/contract-v1/src/state.rs +++ b/integration-tests/contract-v1/src/state.rs @@ -5,6 +5,7 @@ pub const CHANNEL_KEY: &[u8] = b"channel"; pub const ACK_KEY: &[u8] = b"ack"; pub const RECEIVE_KEY: &[u8] = b"receive"; pub const TIMEOUT_KEY: &[u8] = b"timeout"; +pub const FORWARD_KEY: &[u8] = b"forward"; pub fn channel_store(storage: &mut dyn Storage) -> Singleton { singleton(storage, CHANNEL_KEY) @@ -37,3 +38,11 @@ pub fn timeout_store(storage: &mut dyn Storage) -> Singleton { pub fn timeout_store_read(storage: &dyn Storage) -> ReadonlySingleton { singleton_read(storage, TIMEOUT_KEY) } + +pub fn forward_store(storage: &mut dyn Storage) -> Singleton { + singleton(storage, FORWARD_KEY) +} + +pub fn forward_store_read(storage: &dyn Storage) -> ReadonlySingleton { + singleton_read(storage, FORWARD_KEY) +} diff --git a/integration-tests/test.ts b/integration-tests/test.ts index f23450c6b..1a225046a 100644 --- a/integration-tests/test.ts +++ b/integration-tests/test.ts @@ -134,7 +134,7 @@ beforeAll(async () => { }; } - // Send 100k SCRT from account 0 to each of accounts 1-itrations + // Send 100k SCRT from account 0 to each of accounts 1-iterations const { secretjs } = accounts[0]; @@ -520,6 +520,83 @@ describe("CustomMsg", () => { }); }); +describe.only("Rollback", () => { + test("v0.10", async () => { + const tx = await accounts[0].secretjs.tx.compute.executeContract( + { + sender: accounts[0].address, + contract_address: contracts["secretdev-1"].v010.address, + code_hash: contracts["secretdev-1"].v010.codeHash, + msg: { + forward: { + msg: toBase64(toUtf8(JSON.stringify({ fail_tx: {} }))), + recipient_address: contracts["secretdev-1"].v1.address, + recipient_hash: contracts["secretdev-1"].v1.codeHash, + } + }, + }, + { gasLimit: 250_000 } + ); + + if (tx.code !== 3) { + console.error(tx.rawLog); + } + expect(tx.code).toBe(3 /* WASM ErrExecuteFailed */); + expect(tx.rawLog).toContain("execute contract failed"); + + console.log("querying v10 contract state"); + // verify the value rolled back + const result: any = await readonly.query.compute.queryContract({ + contract_address: contracts["secretdev-1"].v010.address, + code_hash: contracts["secretdev-1"].v010.codeHash, + query: { + forward: {}, + } + }); + + let resultString = String.fromCharCode(...result) + console.log("got result:", resultString); + + expect(resultString).toBe("no-fail"); + }); + + test("v1", async () => { + const tx = await accounts[0].secretjs.tx.compute.executeContract( + { + sender: accounts[0].address, + contract_address: contracts["secretdev-1"].v1.address, + code_hash: contracts["secretdev-1"].v1.codeHash, + msg: { + forward: { + msg: toBase64(toUtf8(JSON.stringify({ fail_tx: {} }))), + recipient_address: contracts["secretdev-1"].v010.address, + recipient_hash: contracts["secretdev-1"].v010.codeHash, + } + }, + }, + { gasLimit: 250_000 } + ); + + if (tx.code !== 3) { + console.error(tx.rawLog); + } + expect(tx.code).toBe(3 /* WASM ErrExecuteFailed */); + expect(tx.rawLog).toContain("execute contract failed"); + + console.log("querying v1 contract state"); + // verify the value rolled back + const result: any = await readonly.query.compute.queryContract({ + contract_address: contracts["secretdev-1"].v1.address, + code_hash: contracts["secretdev-1"].v1.codeHash, + query: { + forward: {}, + } + }); + + expect(result).toBe("no-fail"); + }); +}); + describe("tx broadcast multi", () => { test("Send Multiple Messages Amino", async () => { const { validators } = await readonly.query.staking.validators({}); @@ -896,6 +973,7 @@ describe("Wasm", () => { expect(tx.rawLog).toContain("execute contract failed"); }); + }); describe("v0.10", () => { @@ -958,56 +1036,6 @@ describe("Wasm", () => { expect(tx.rawLog).toContain("execute contract failed"); }); - test("error in submsg + rollback", async () => { - const tx = await accounts[0].secretjs.tx.compute.executeContract( - { - sender: accounts[0].address, - contract_address: contracts["secretdev-1"].v010.address, - code_hash: contracts["secretdev-1"].v010.codeHash, - msg: { - wasm_msg_execute: { - contract_addr: contracts["secretdev-1"].v010.address, - callback_code_hash: contracts["secretdev-1"].v010.codeHash, - msg: toBase64(toUtf8(JSON.stringify({ forward: { - msg: toBase64(toUtf8(JSON.stringify({ fail_tx: {} }))), - recipient_address: contracts["secretdev-1"].v1.address, - recipient_hash: contracts["secretdev-1"].v1.codeHash, - } }))), - send: [], - }, - }, - }, - { gasLimit: 250_000 } - ); - - if (tx.code !== 3) { - console.error(tx.rawLog); - } - expect(tx.code).toBe(3 /* WASM ErrExecuteFailed */); - expect(tx.rawLog).toContain("execute contract failed"); - - // verify the value rolled back - const b64encode = (str: string): string => - Buffer.from(str, "binary").toString("base64"); - const result: any = await readonly.query.compute.queryContract({ - contract_address: contracts["secretdev-1"].v1.address, - code_hash: contracts["secretdev-1"].v1.codeHash, - query: { - wasm_smart: { - contract_addr: contracts["secretdev-1"].v010.address, - code_hash: contracts["secretdev-1"].v010.codeHash, - msg: b64encode( - JSON.stringify({ - value_on_fail: {}, - }) - ), - }, - }, - }); - - // todo expect correctly - expect(result?.value).toBe("no-fail"); - }); }); }); }); From 409ef7e447616f1fe94a173431b6060e6cbab7ff Mon Sep 17 00:00:00 2001 From: Eshel Date: Mon, 14 Aug 2023 01:27:37 +0300 Subject: [PATCH 5/5] removed makefile target that does not belong in this PR --- Makefile | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Makefile b/Makefile index ae363abaa..7e466e467 100644 --- a/Makefile +++ b/Makefile @@ -168,13 +168,6 @@ build-linux: _build-linux build_local_no_rust build_cli _build-linux: BUILD_PROFILE=$(BUILD_PROFILE) FEATURES=$(FEATURES) FEATURES_U=$(FEATURES_U) $(MAKE) -C go-cosmwasm build-rust -.PHONY: run-dev -run-dev: docs/tendermint_enclave.signed.so - FEATURES="read-db-proofs" SGX_MODE=SW $(MAKE) build-linux - cp go-cosmwasm/librust_cosmwasm_enclave.signed.so . - cp docs/tendermint_enclave.signed.so . - SGX_MODE=SW ./scripts/start-node.sh - build-linux-with-query: _build-linux-with-query build_local_no_rust build_cli _build-linux-with-query: BUILD_PROFILE=$(BUILD_PROFILE) FEATURES=$(FEATURES) FEATURES_U=query-node,$(FEATURES_U) $(MAKE) -C go-cosmwasm build-rust