Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update_to_2.7.0 #87

Merged
merged 3 commits into from
Aug 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 12 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ on:
pull_request:

env:
DOJO_VERSION: v1.0.0-alpha.4
SCARB_VERSION: 2.7.0-rc.4
DOJO_VERSION: v1.0.0-alpha.5
SCARB_VERSION: 2.7.0

jobs:
check:
Expand All @@ -34,17 +34,16 @@ jobs:
run: sozo build
shell: bash

# TODO: uncomment once test fixed.
# algebra:
# needs: [check, build]
# runs-on: ubuntu-latest
# name: Test origami_algebra
# steps:
# - uses: actions/checkout@v4
# - uses: ./.github/actions/setup
# - name: Test
# run: sozo test --package origami_algebra
# shell: bash
algebra:
needs: [check, build]
runs-on: ubuntu-latest
name: Test origami_algebra
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- name: Test
run: sozo test --package origami_algebra
shell: bash

defi:
needs: [check, build]
Expand Down
2 changes: 1 addition & 1 deletion .tool-versions
Original file line number Diff line number Diff line change
@@ -1 +1 @@
scarb 2.7.0-rc.4
scarb 2.7.0
26 changes: 13 additions & 13 deletions Scarb.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4,61 +4,61 @@ version = 1
[[package]]
name = "cubit"
version = "1.3.0"
source = "git+https://github.com/dojoengine/cubit?branch=cairo_2.7#53020b6320a10f2ab55b661be9b8d895aca945e9"
source = "git+https://github.com/dojoengine/cubit?branch=update_to_2.7.0#075bf5a317452cd59aaf5bd1c044689220361c66"

[[package]]
name = "dojo"
version = "0.7.3"
source = "git+https://github.com/dojoengine/dojo?tag=v1.0.0-alpha.4#d08c46191fc1b4c4f90816cef4787cb8db02988f"
version = "1.0.0-alpha.4"
source = "git+https://github.com/dojoengine/dojo?tag=v1.0.0-alpha.5#6878242e120d3135d3bc1bb94135d7135693069b"
dependencies = [
"dojo_plugin",
]

[[package]]
name = "dojo_plugin"
version = "0.7.3"
source = "git+https://github.com/dojoengine/dojo?rev=71b1f1a4#71b1f1a467534cbeeb901356f41e612ed4187bd1"
version = "1.0.0-alpha.4"
source = "git+https://github.com/dojoengine/dojo?rev=f15def33#f15def330c0d099e79351d11c197f63e8cc1ff36"

[[package]]
name = "origami_algebra"
version = "1.0.0-alpha.4"
version = "1.0.0-alpha.5"
dependencies = [
"cubit",
]

[[package]]
name = "origami_defi"
version = "1.0.0-alpha.4"
version = "1.0.0-alpha.5"
dependencies = [
"cubit",
]

[[package]]
name = "origami_governance"
version = "1.0.0-alpha.4"
version = "1.0.0-alpha.5"
dependencies = [
"dojo",
]

[[package]]
name = "origami_map"
version = "1.0.0-alpha.4"
version = "1.0.0-alpha.5"

[[package]]
name = "origami_random"
version = "1.0.0-alpha.4"
version = "1.0.0-alpha.5"

[[package]]
name = "origami_rating"
version = "1.0.0-alpha.4"
version = "1.0.0-alpha.5"

[[package]]
name = "origami_security"
version = "1.0.0-alpha.4"
version = "1.0.0-alpha.5"

[[package]]
name = "origami_token"
version = "1.0.0-alpha.4"
version = "1.0.0-alpha.5"
dependencies = [
"dojo",
]
11 changes: 6 additions & 5 deletions Scarb.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@ members = [
]

[workspace.package]
version = "1.0.0-alpha.4"
version = "1.0.0-alpha.5"

[workspace.dependencies]
cubit = { git = "https://github.com/dojoengine/cubit", branch = "cairo_2.7" }
dojo = { git = "https://github.com/dojoengine/dojo", tag = "v1.0.0-alpha.4" }
starknet = "2.7.0-rc.3"

dojo = { git = "https://github.com/dojoengine/dojo", tag = "v1.0.0-alpha.5" }
# dojo = { path = "../dojo/crates/dojo-core" }
cubit = { git = "https://github.com/dojoengine/cubit", branch = "update_to_2.7.0" }
starknet = "^2.7.0"
cairo_test = "^2.7.0"
# Scripts are not supported for virtual workspaces.
34 changes: 18 additions & 16 deletions crates/algebra/src/matrix.cairo
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
use zeroable::Zeroable;
use core::ops::{AddAssign, SubAssign};


#[derive(Copy, Drop)]
struct Matrix<T> {
Expand Down Expand Up @@ -32,9 +34,9 @@ impl MatrixImpl<
+Mul<T>,
+Div<T>,
+Add<T>,
+AddEq<T>,
+AddAssign<T, T>,
+Sub<T>,
+SubEq<T>,
+SubAssign<T, T>,
+Neg<T>,
+Zeroable<T>,
+Copy<T>,
Expand Down Expand Up @@ -160,9 +162,9 @@ impl MatrixAdd<
+Mul<T>,
+Div<T>,
+Add<T>,
+AddEq<T>,
+AddAssign<T, T>,
+Sub<T>,
+SubEq<T>,
+SubAssign<T, T>,
+Neg<T>,
+Zeroable<T>,
+Copy<T>,
Expand Down Expand Up @@ -192,9 +194,9 @@ impl MatrixSub<
+Mul<T>,
+Div<T>,
+Add<T>,
+AddEq<T>,
+AddAssign<T, T>,
+Sub<T>,
+SubEq<T>,
+SubAssign<T, T>,
+Neg<T>,
+Zeroable<T>,
+Copy<T>,
Expand Down Expand Up @@ -224,9 +226,9 @@ impl MatrixMul<
+Mul<T>,
+Div<T>,
+Add<T>,
+AddEq<T>,
+AddAssign<T, T>,
+Sub<T>,
+SubEq<T>,
+SubAssign<T, T>,
+Neg<T>,
+Zeroable<T>,
+Copy<T>,
Expand Down Expand Up @@ -282,14 +284,14 @@ mod tests {
}
}

impl I128Div of Div<i128> {
fn div(lhs: i128, rhs: i128) -> i128 {
let lhs_u256: u256 = Into::<felt252, u256>::into(lhs.into());
let rhs_u256: u256 = Into::<felt252, u256>::into(rhs.into());
let div: felt252 = (lhs_u256 / rhs_u256).try_into().unwrap();
div.try_into().unwrap()
}
}
// impl I128Div of Div<i128> {
// fn div(lhs: i128, rhs: i128) -> i128 {
// let lhs_u256: u256 = Into::<felt252, u256>::into(lhs.into());
// let rhs_u256: u256 = Into::<felt252, u256>::into(rhs.into());
// let div: felt252 = (lhs_u256 / rhs_u256).try_into().unwrap();
// div.try_into().unwrap()
// }
// }

#[test]
fn test_matrix_get() {
Expand Down
8 changes: 5 additions & 3 deletions crates/algebra/src/vector.cairo
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use core::ops::AddAssign;

#[derive(Copy, Drop)]
struct Vector<T> {
data: Span<T>,
Expand All @@ -18,7 +20,7 @@ trait VectorTrait<T> {
fn dot(self: Vector<T>, vector: Vector<T>) -> T;
}

impl VectorImpl<T, +Mul<T>, +AddEq<T>, +Zeroable<T>, +Copy<T>, +Drop<T>,> of VectorTrait<T> {
impl VectorImpl<T, +Mul<T>, +AddAssign<T, T>, +Zeroable<T>, +Copy<T>, +Drop<T>,> of VectorTrait<T> {
fn new(data: Span<T>) -> Vector<T> {
Vector { data }
}
Expand Down Expand Up @@ -49,7 +51,7 @@ impl VectorImpl<T, +Mul<T>, +AddEq<T>, +Zeroable<T>, +Copy<T>, +Drop<T>,> of Vec
}

impl VectorAdd<
T, +Mul<T>, +AddEq<T>, +Add<T>, +Zeroable<T>, +Copy<T>, +Drop<T>,
T, +Mul<T>, +AddAssign<T, T>, +Add<T>, +Zeroable<T>, +Copy<T>, +Drop<T>,
> of Add<Vector<T>> {
fn add(mut lhs: Vector<T>, mut rhs: Vector<T>) -> Vector<T> {
// [Check] Dimesions are compatible
Expand All @@ -69,7 +71,7 @@ impl VectorAdd<
}

impl VectorSub<
T, +Mul<T>, +AddEq<T>, +Sub<T>, +Zeroable<T>, +Copy<T>, +Drop<T>,
T, +Mul<T>, +AddAssign<T, T>, +Sub<T>, +Zeroable<T>, +Copy<T>, +Drop<T>,
> of Sub<Vector<T>> {
fn sub(mut lhs: Vector<T>, mut rhs: Vector<T>) -> Vector<T> {
// [Check] Dimesions are compatible
Expand Down
3 changes: 0 additions & 3 deletions crates/governance/Scarb.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,3 @@ dojo.workspace = true
sort-module-level-items = true

[lib]

[tool.dojo.world]
namespace = { default = "origami_governance" }
7 changes: 7 additions & 0 deletions crates/governance/dojo_dev.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[world]
name = "origami_governance"
seed = "seed"


[namespace]
default = "origami_governance"
1 change: 1 addition & 0 deletions crates/governance/src/lib.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,6 @@ mod utils {
mod mock_contract_upgraded;
#[cfg(test)]
mod testing;
mod world_utils;
}

34 changes: 21 additions & 13 deletions crates/governance/src/systems/governor/contract.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ mod governor {
timelock::{contract::timelock, interface::{ITimelockDispatcher, ITimelockDispatcherTrait}},
token::interface::{IGovernanceTokenDispatcher, IGovernanceTokenDispatcherTrait}
};
use origami_governance::utils::world_utils;
use starknet::{
ContractAddress, ClassHash, get_contract_address, get_caller_address,
info::get_block_timestamp
Expand Down Expand Up @@ -45,7 +46,8 @@ mod governor {
"Governor::set_proposal_params: only guardian can set proposal params"
);

let (_, timelock_addr) = world.contract(params.timelock);
let (_, timelock_addr) = world_utils::get_contract_infos(world, params.timelock);

ITimelockDispatcher { contract_address: timelock_addr }
.initialize(get_contract_address(), voting_delay);

Expand All @@ -63,8 +65,9 @@ mod governor {
let contract_selector = self.selector();
let params = get!(world, contract_selector, ProposalParams);
let time_now = get_block_timestamp();
let (_, gov_token_addr) = world
.contract(get!(world, contract_selector, GovernorParams).gov_token);
let (_, gov_token_addr) = world_utils::get_contract_infos(
world, get!(world, contract_selector, GovernorParams).gov_token
);
let gov_token = IGovernanceTokenDispatcher { contract_address: gov_token_addr };
let prior_votes = gov_token.get_prior_votes(caller, time_now - 1);
assert!(
Expand Down Expand Up @@ -148,8 +151,9 @@ mod governor {
let mut proposal = get!(world, proposal_id, Proposals).proposal;
proposal.executed = true;

let (_, timelock_addr) = world
.contract(get!(world, self.selector(), GovernorParams).timelock);
let (_, timelock_addr) = world_utils::get_contract_infos(
world, get!(world, self.selector(), GovernorParams).timelock
);
let timelock = ITimelockDispatcher { contract_address: timelock_addr };
timelock
.execute_transaction(proposal.target_selector, proposal.class_hash, proposal.eta);
Expand All @@ -174,8 +178,9 @@ mod governor {
let guardian = get!(world, contract_selector, GovernorParams).guardian;
let threshold = get!(world, contract_selector, ProposalParams).threshold;

let (_, gov_token_addr) = world
.contract(get!(world, contract_selector, GovernorParams).gov_token);
let (_, gov_token_addr) = world_utils::get_contract_infos(
world, get!(world, contract_selector, GovernorParams).gov_token
);
let gov_token = IGovernanceTokenDispatcher { contract_address: gov_token_addr };

let prior_votes = gov_token
Expand All @@ -187,8 +192,9 @@ mod governor {

proposal.canceled = true;

let (_, timelock_addr) = world
.contract(get!(world, contract_selector, GovernorParams).timelock);
let (_, timelock_addr) = world_utils::get_contract_infos(
world, get!(world, contract_selector, GovernorParams).timelock
);
let timelock = ITimelockDispatcher { contract_address: timelock_addr };
timelock
.cancel_transaction(proposal.target_selector, proposal.class_hash, proposal.eta);
Expand Down Expand Up @@ -248,8 +254,9 @@ mod governor {
let mut receipt = get!(world, (proposal_id, caller), Receipts).receipt;
assert!(!receipt.has_voted, "Governor::cast_vote: voter already voted");

let (_, gov_token_addr) = world
.contract(get!(world, self.selector(), GovernorParams).gov_token);
let (_, gov_token_addr) = world_utils::get_contract_infos(
world, get!(world, self.selector(), GovernorParams).gov_token
);
let gov_token = IGovernanceTokenDispatcher { contract_address: gov_token_addr };

let votes = gov_token.get_prior_votes(caller, proposal.start_block);
Expand Down Expand Up @@ -279,8 +286,9 @@ mod governor {
let queued_tx = get!(world, (target_selector, class_hash), QueuedTransactions).queued;
assert!(!queued_tx, "Governor::queue_or_revert: proposal action already queued at eta");

let (_, timelock_addr) = world
.contract(get!(world, self.selector(), GovernorParams).timelock);
let (_, timelock_addr) = world_utils::get_contract_infos(
world, get!(world, self.selector(), GovernorParams).timelock
);
let timelock = ITimelockDispatcher { contract_address: timelock_addr };
timelock.que_transaction(target_selector, class_hash, eta);
}
Expand Down
Loading
Loading