Skip to content

Commit c787ec8

Browse files
committed
v0.8.0
1 parent 4594188 commit c787ec8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+994
-926
lines changed

cairo_project.toml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,12 @@
11
[crate_roots]
2-
starkgate = "cairo"
2+
src = "src/cairo"
3+
openzeppelin = "src/openzeppelin"
4+
5+
[config.global]
6+
edition = "2023_01"
7+
8+
[config.global.dependencies.openzeppelin]
9+
discriminator = "openzeppelin"
10+
11+
[config.global.dependencies.src]
12+
discriminator = "src"

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ black==23.1a1
22
cairo-lang==0.11.2
33
web3==5.31.3
44
pytest==7.4.4
5+
sympy==1.12

scripts/build-cairo.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ pushd $(dirname $0)/..
33
set -e
44
mkdir -p cairo_contracts
55

6-
scripts/starknet-compile.py src --contract-path src::strk::erc20_lockable::ERC20Lockable cairo_contracts/ERC20Lockable.sierra
7-
scripts/starknet-compile.py src --contract-path src::update_712_vars_eic::Update712VarsEIC cairo_contracts/Update712VarsEIC.sierra
8-
scripts/starknet-compile.py src --contract-path src::roles_init_eic::RolesExternalInitializer cairo_contracts/RolesExternalInitializer.sierra
9-
scripts/starknet-compile.py src --contract-path src::legacy_bridge_eic::LegacyBridgeUpgradeEIC cairo_contracts/LegacyBridgeUpgradeEIC.sierra
10-
scripts/starknet-compile.py src --contract-path src::token_bridge::TokenBridge cairo_contracts/TokenBridge.sierra
11-
scripts/starknet-compile.py src --contract-path openzeppelin::token::erc20::presets::erc20_votes_lock::ERC20VotesLock cairo_contracts/ERC20VotesLock.sierra
12-
scripts/starknet-compile.py src --contract-path openzeppelin::token::erc20_v070::erc20::ERC20 cairo_contracts/ERC20.sierra
6+
scripts/starknet-compile.py src --contract-path src::strk::erc20_lockable::ERC20Lockable cairo_contracts/ERC20Lockable.sierra
7+
scripts/starknet-compile.py src --contract-path src::update_712_vars_eic::Update712VarsEIC cairo_contracts/Update712VarsEIC.sierra
8+
scripts/starknet-compile.py src --contract-path src::roles_init_eic::RolesExternalInitializer cairo_contracts/RolesExternalInitializer.sierra
9+
scripts/starknet-compile.py src --contract-path src::legacy_bridge_eic::LegacyBridgeUpgradeEIC cairo_contracts/LegacyBridgeUpgradeEIC.sierra
10+
scripts/starknet-compile.py src --contract-path src::token_bridge::TokenBridge cairo_contracts/TokenBridge.sierra
11+
scripts/starknet-compile.py src --contract-path openzeppelin::token::erc20::presets::erc20_votes_lock::ERC20VotesLock cairo_contracts/ERC20VotesLock.sierra
12+
scripts/starknet-compile.py src --contract-path openzeppelin::token::erc20_v070::erc20::ERC20 cairo_contracts/ERC20.sierra
1313
set +e
1414
popd

scripts/cairo-format.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
ROOT_DIR = os.path.dirname(os.path.dirname(__file__))
99
EXECUTABLE = os.path.join(ROOT_DIR, ".downloads", "cairo", "bin", "cairo-format")
10-
EXPECTED_EXECUTABLE_VERSION = "cairo-format 2.6.3"
10+
EXPECTED_EXECUTABLE_VERSION = "cairo-format 2.10.0-rc.0"
1111

1212

1313
def main():

scripts/cairo-test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
ROOT_DIR = os.path.dirname(os.path.dirname(__file__))
99
EXECUTABLE = os.path.join(ROOT_DIR, ".downloads", "cairo", "bin", "cairo-test")
10-
EXPECTED_EXECUTABLE_VERSION = "cairo-test 2.6.3"
10+
EXPECTED_EXECUTABLE_VERSION = "cairo-test 2.10.0-rc.0"
1111

1212

1313
def main():

scripts/setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ printf "${COLOR_OFF}"
3030
mkdir -p .downloads
3131
cd .downloads
3232

33-
wget -c https://github.com/starkware-libs/cairo/releases/download/v2.6.3/release-x86_64-unknown-linux-musl.tar.gz -O - | tar -xz
33+
wget -c https://github.com/starkware-libs/cairo/releases/download/v2.10.0-rc.0/release-x86_64-unknown-linux-musl.tar.gz -O - | tar -xz
3434
curl https://binaries.soliditylang.org/linux-amd64/solc-linux-amd64-v0.8.20+commit.a1b79de6 -o solc-0.8.20 && chmod +x solc-0.8.20
3535

3636
cd ..

scripts/starknet-compile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
ROOT_DIR = os.path.dirname(os.path.dirname(__file__))
99
EXECUTABLE = os.path.join(ROOT_DIR, ".downloads", "cairo", "bin", "starknet-compile")
10-
EXPECTED_EXECUTABLE_VERSION = "starknet-compile 2.6.3"
10+
EXPECTED_EXECUTABLE_VERSION = "starknet-compile 2.10.0-rc.0"
1111

1212

1313
def main():

src/cairo/erc20_interface.cairo

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ trait IERC20<TContractState> {
1010
fn allowance(self: @TContractState, owner: ContractAddress, spender: ContractAddress) -> u256;
1111
fn transfer(ref self: TContractState, recipient: ContractAddress, amount: u256) -> bool;
1212
fn transfer_from(
13-
ref self: TContractState, sender: ContractAddress, recipient: ContractAddress, amount: u256
13+
ref self: TContractState, sender: ContractAddress, recipient: ContractAddress, amount: u256,
1414
) -> bool;
1515
fn approve(ref self: TContractState, spender: ContractAddress, amount: u256) -> bool;
1616
fn increase_allowance(
17-
ref self: TContractState, spender: ContractAddress, added_value: u256
17+
ref self: TContractState, spender: ContractAddress, added_value: u256,
1818
) -> bool;
1919
fn decrease_allowance(
20-
ref self: TContractState, spender: ContractAddress, subtracted_value: u256
20+
ref self: TContractState, spender: ContractAddress, subtracted_value: u256,
2121
) -> bool;
2222
}
2323

@@ -26,7 +26,7 @@ trait IERC20CamelOnly<TState> {
2626
fn totalSupply(self: @TState) -> u256;
2727
fn balanceOf(self: @TState, account: ContractAddress) -> u256;
2828
fn transferFrom(
29-
ref self: TState, sender: ContractAddress, recipient: ContractAddress, amount: u256
29+
ref self: TState, sender: ContractAddress, recipient: ContractAddress, amount: u256,
3030
) -> bool;
3131
}
3232

src/cairo/legacy_bridge_eic.cairo

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,34 @@
33
mod LegacyBridgeUpgradeEIC {
44
const WITHDRAWAL_LIMIT_PCT: u8 = 5;
55
use starknet::{
6-
ContractAddress, get_caller_address, EthAddress, EthAddressIntoFelt252, EthAddressSerde
6+
ContractAddress, get_caller_address, EthAddress, EthAddressIntoFelt252, EthAddressSerde,
77
};
88
use super::super::erc20_interface::{IERC20Dispatcher, IERC20DispatcherTrait};
99
use super::super::access_control_interface::{
10-
IAccessControl, RoleId, RoleAdminChanged, RoleGranted
10+
IAccessControl, RoleId, RoleAdminChanged, RoleGranted,
1111
};
1212
use super::super::replaceability_interface::IEICInitializable;
1313
use super::super::roles_interface::{
1414
APP_GOVERNOR, APP_ROLE_ADMIN, GOVERNANCE_ADMIN, OPERATOR, SECURITY_ADMIN, SECURITY_AGENT,
15-
TOKEN_ADMIN, UPGRADE_GOVERNOR
15+
TOKEN_ADMIN, UPGRADE_GOVERNOR,
1616
};
1717

1818
#[storage]
1919
struct Storage {
2020
// --- Token Bridge ---
2121
// Mapping from between l1<->l2 token addresses.
22-
l1_l2_token_map: LegacyMap<EthAddress, ContractAddress>,
23-
l2_l1_token_map: LegacyMap<ContractAddress, EthAddress>,
22+
l1_l2_token_map: starknet::storage::Map<EthAddress, ContractAddress>,
23+
l2_l1_token_map: starknet::storage::Map<ContractAddress, EthAddress>,
2424
daily_withdrawal_limit_pct: u8,
2525
// `l2_token` is a legacy storage variable from older versions.
2626
// It's expected to be non-empty only in a case of an upgrade from such a version.
2727
// This case also implies that this is the only token that is served by the bridge.
2828
l2_token: ContractAddress,
2929
// --- Access Control ---
3030
// For each role id store its role admin id.
31-
role_admin: LegacyMap<RoleId, RoleId>,
31+
role_admin: starknet::storage::Map<RoleId, RoleId>,
3232
// For each role and address, stores true if the address has this role; otherwise, false.
33-
role_members: LegacyMap<(RoleId, ContractAddress), bool>,
33+
role_members: starknet::storage::Map<(RoleId, ContractAddress), bool>,
3434
}
3535

3636
#[derive(Copy, Drop, PartialEq, starknet::Event)]
@@ -99,7 +99,7 @@ mod LegacyBridgeUpgradeEIC {
9999
}
100100

101101
fn setup_l1_l2_mappings(
102-
ref self: ContractState, l1_token: EthAddress, l2_token: ContractAddress
102+
ref self: ContractState, l1_token: EthAddress, l2_token: ContractAddress,
103103
) {
104104
// Check that running on legacy bridge context.
105105
let legacy_l2_token = self.l2_token.read();

src/cairo/legacy_bridge_tester.cairo

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ mod LegacyBridgeTester {
99
use starknet::{ContractAddress, syscalls::library_call_syscall, get_block_timestamp};
1010
use super::super::replaceability_interface::{
1111
ImplementationData, IReplaceable, IReplaceableDispatcher, IReplaceableDispatcherTrait,
12-
IEICInitializable, EIC_INITIALIZE_SELECTOR, IMPLEMENTATION_EXPIRATION
12+
IEICInitializable, EIC_INITIALIZE_SELECTOR, IMPLEMENTATION_EXPIRATION,
1313
};
1414

1515
#[storage]
@@ -19,9 +19,9 @@ mod LegacyBridgeTester {
1919
// Delay in seconds before performing an upgrade.
2020
upgrade_delay: u64,
2121
// Timestamp by which implementation can be activated.
22-
impl_activation_time: LegacyMap<felt252, u64>,
22+
impl_activation_time: starknet::storage::Map<felt252, u64>,
2323
// Timestamp until which implementation can be activated.
24-
impl_expiration_time: LegacyMap<felt252, u64>,
24+
impl_expiration_time: starknet::storage::Map<felt252, u64>,
2525
// Is the implementation finalized.
2626
finalized: bool,
2727
}
@@ -49,15 +49,15 @@ mod LegacyBridgeTester {
4949

5050
// Returns the implementation activation time.
5151
fn get_impl_activation_time(
52-
self: @ContractState, implementation_data: ImplementationData
52+
self: @ContractState, implementation_data: ImplementationData,
5353
) -> u64 {
5454
let impl_key = calc_impl_key(:implementation_data);
5555
self.impl_activation_time.read(impl_key)
5656
}
5757

5858
// Adds a new implementation.
5959
fn add_new_implementation(
60-
ref self: ContractState, implementation_data: ImplementationData
60+
ref self: ContractState, implementation_data: ImplementationData,
6161
) {
6262
// The call is restricted to the upgrade governor.
6363
self.only_upgrade_governor();
@@ -119,7 +119,7 @@ mod LegacyBridgeTester {
119119
let mut res = library_call_syscall(
120120
class_hash: eic_data.eic_hash,
121121
function_selector: EIC_INITIALIZE_SELECTOR,
122-
calldata: calldata_wrapper.span()
122+
calldata: calldata_wrapper.span(),
123123
);
124124
if (!res.is_ok()) {
125125
let mut err = res.unwrap_err();
@@ -128,7 +128,7 @@ mod LegacyBridgeTester {
128128
assert(false, err_msg);
129129
}
130130
},
131-
Option::None(()) => {}
131+
Option::None(()) => {},
132132
};
133133

134134
// Replace the class hash.
@@ -155,21 +155,21 @@ mod LegacyBridgeTester {
155155

156156

157157
fn set_impl_activation_time(
158-
ref self: ContractState, implementation_data: ImplementationData, activation_time: u64
158+
ref self: ContractState, implementation_data: ImplementationData, activation_time: u64,
159159
) {
160160
let impl_key = calc_impl_key(:implementation_data);
161161
self.impl_activation_time.write(impl_key, activation_time);
162162
}
163163

164164
fn get_impl_expiration_time(
165-
self: @ContractState, implementation_data: ImplementationData
165+
self: @ContractState, implementation_data: ImplementationData,
166166
) -> u64 {
167167
let impl_key = calc_impl_key(:implementation_data);
168168
self.impl_expiration_time.read(impl_key)
169169
}
170170

171171
fn set_impl_expiration_time(
172-
ref self: ContractState, implementation_data: ImplementationData, expiration_time: u64
172+
ref self: ContractState, implementation_data: ImplementationData, expiration_time: u64,
173173
) {
174174
let impl_key = calc_impl_key(:implementation_data);
175175
self.impl_expiration_time.write(impl_key, expiration_time);

0 commit comments

Comments
 (0)