Skip to content

Commit

Permalink
Merge branch 'next' into feat/nakamoto-block-download-api
Browse files Browse the repository at this point in the history
  • Loading branch information
jcnelson committed Mar 15, 2024
2 parents 410dc30 + 6278946 commit 77f91d2
Show file tree
Hide file tree
Showing 35 changed files with 2,645 additions and 1,264 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/stacks-core-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ jobs:
uses: stacks-network/actions/stacks-core/testenv@main
with:
btc-version: "25.0"

## Run test matrix using restored cache of archive file
## - Test will timeout after env.TEST_TIMEOUT minutes
- name: Run Tests
Expand Down Expand Up @@ -153,7 +153,7 @@ jobs:
node-version: 18.x
cache: "npm"
cache-dependency-path: "./contrib/core-contract-tests/package-lock.json"
- run: npm ci
- run: npm ci -f # need to force the update as long as we are using a beta version of the clarinet-sdk
- run: npm test
## Upload code coverage file
- name: Code Coverage
Expand Down
2 changes: 1 addition & 1 deletion clarity/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,4 @@ default = []
developer-mode = []
slog_json = ["stacks_common/slog_json"]
testing = []

devtools = []
4 changes: 2 additions & 2 deletions clarity/src/vm/callables.rs
Original file line number Diff line number Diff line change
Expand Up @@ -340,8 +340,8 @@ impl DefinedFunction {
pub fn apply(&self, args: &[Value], env: &mut Environment) -> Result<Value> {
match self.define_type {
DefineType::Private => self.execute_apply(args, env),
DefineType::Public => env.execute_function_as_transaction(self, args, None),
DefineType::ReadOnly => env.execute_function_as_transaction(self, args, None),
DefineType::Public => env.execute_function_as_transaction(self, args, None, false),
DefineType::ReadOnly => env.execute_function_as_transaction(self, args, None, false),
}
}

Expand Down
18 changes: 14 additions & 4 deletions clarity/src/vm/contexts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1139,8 +1139,7 @@ impl<'a, 'b, 'hooks> Environment<'a, 'b, 'hooks> {
return Err(CheckErrors::CircularReference(vec![func_identifier.to_string()]).into())
}
self.call_stack.insert(&func_identifier, true);

let res = self.execute_function_as_transaction(&func, &args, Some(&contract.contract_context));
let res = self.execute_function_as_transaction(&func, &args, Some(&contract.contract_context), allow_private);
self.call_stack.remove(&func_identifier, true)?;

match res {
Expand Down Expand Up @@ -1168,6 +1167,7 @@ impl<'a, 'b, 'hooks> Environment<'a, 'b, 'hooks> {
function: &DefinedFunction,
args: &[Value],
next_contract_context: Option<&ContractContext>,
allow_private: bool,
) -> Result<Value> {
let make_read_only = function.is_read_only();

Expand Down Expand Up @@ -1196,7 +1196,7 @@ impl<'a, 'b, 'hooks> Environment<'a, 'b, 'hooks> {
self.global_context.roll_back()?;
result
} else {
self.global_context.handle_tx_result(result)
self.global_context.handle_tx_result(result, allow_private)
}
}

Expand Down Expand Up @@ -1726,7 +1726,14 @@ impl<'a, 'hooks> GlobalContext<'a, 'hooks> {
self.database.roll_back()
}

pub fn handle_tx_result(&mut self, result: Result<Value>) -> Result<Value> {
// the allow_private parameter allows private functions calls to return any Clarity type
// and not just Response. It only has effect is the devtools feature is enabled. eg:
// clarity = { version = "*", features = ["devtools"] }
pub fn handle_tx_result(
&mut self,
result: Result<Value>,
allow_private: bool,
) -> Result<Value> {
if let Ok(result) = result {
if let Value::Response(data) = result {
if data.committed {
Expand All @@ -1735,6 +1742,9 @@ impl<'a, 'hooks> GlobalContext<'a, 'hooks> {
self.roll_back()?;
}
Ok(Value::Response(data))
} else if allow_private && cfg!(feature = "devtools") {
self.commit()?;
Ok(result)
} else {
Err(
CheckErrors::PublicFunctionMustReturnResponse(TypeSignature::type_of(&result)?)
Expand Down
87 changes: 87 additions & 0 deletions contrib/core-contract-tests/deployments/default.simnet-plan.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
id: 0
name: "Simulated deployment, used as a default for `clarinet console`, `clarinet test` and `clarinet check`"
network: simnet
genesis:
wallets:
- name: deployer
address: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
balance: "100000000000000"
- name: wallet_1
address: ST1SJ3DTE5DN7X54YDH5D64R3BCB6A2AG2ZQ8YPD5
balance: "100000000000000"
- name: wallet_2
address: ST2CY5V39NHDPWSXMW9QDT3HC3GD6Q6XX4CFRK9AG
balance: "100000000000000"
- name: wallet_3
address: ST2JHG361ZXG51QTKY2NQCVBPPRRE2KZB1HR05NNC
balance: "100000000000000"
- name: wallet_4
address: ST2NEB84ASENDXKYGJPQW86YXQCEFEX2ZQPG87ND
balance: "100000000000000"
- name: wallet_5
address: ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB
balance: "100000000000000"
- name: wallet_6
address: ST3AM1A56AK2C1XAFJ4115ZSV26EB49BVQ10MGCS0
balance: "100000000000000"
- name: wallet_7
address: ST3PF13W7Z0RRM42A8VZRVFQ75SV1K26RXEP8YGKJ
balance: "100000000000000"
- name: wallet_8
address: ST3NBRSFKX28FQ2ZJ1MAKX58HKHSDGNV5N7R21XCP
balance: "100000000000000"
- name: wallet_9
address: STNHKEPYEPJ8ET55ZZ0M5A34J0R3N5FM2CMMMAZ6
balance: "100000000000000"
contracts:
- costs
- pox
- pox-2
- pox-3
- pox-4
- lockup
- costs-2
- costs-3
- cost-voting
- bns
plan:
batches:
- id: 0
transactions:
- emulated-contract-publish:
contract-name: bns
emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
path: "../../stackslib/src/chainstate/stacks/boot/bns.clar"
clarity-version: 2
- emulated-contract-publish:
contract-name: bns_test
emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
path: "./tests/bns_test.clar"
clarity-version: 2
- emulated-contract-publish:
contract-name: pox-4
emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
path: "../../stackslib/src/chainstate/stacks/boot/pox-4.clar"
clarity-version: 2
- emulated-contract-publish:
contract-name: pox-mainnet
emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
path: "../../stackslib/src/chainstate/stacks/boot/pox-mainnet.clar"
clarity-version: 2
- emulated-contract-publish:
contract-name: pox_4_test
emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
path: "./tests/pox_4_test.clar"
clarity-version: 2
- emulated-contract-publish:
contract-name: signers
emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
path: "../../stackslib/src/chainstate/stacks/boot/signers.clar"
clarity-version: 2
- emulated-contract-publish:
contract-name: signers-voting
emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
path: "../../stackslib/src/chainstate/stacks/boot/signers-voting.clar"
clarity-version: 2
epoch: "2.4"
Loading

0 comments on commit 77f91d2

Please sign in to comment.