Skip to content
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.

Commit

Permalink
feat(buidl): fix python tests
Browse files Browse the repository at this point in the history
  • Loading branch information
0xLucqs committed Aug 3, 2022
1 parent 6c9e1d1 commit 533a338
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 102 deletions.
149 changes: 48 additions & 101 deletions camp_4/buidl/contracts/ERC20.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -6,39 +6,16 @@
from starkware.cairo.common.cairo_builtins import HashBuiltin
from starkware.cairo.common.uint256 import Uint256

from openzeppelin.token.erc20.library import (
ERC20_name,
ERC20_symbol,
ERC20_totalSupply,
ERC20_decimals,
ERC20_balanceOf,
ERC20_allowance,

ERC20_initializer,
ERC20_approve,
ERC20_increaseAllowance,
ERC20_decreaseAllowance,
ERC20_transfer,
ERC20_transferFrom,
ERC20_mint
)

from openzeppelin.utils.constants import TRUE
from openzeppelin.token.erc20.library import ERC20

from starkware.cairo.common.bool import TRUE

@constructor
func constructor{
syscall_ptr: felt*,
pedersen_ptr: HashBuiltin*,
range_check_ptr
}(
name: felt,
symbol: felt,
decimals: felt,
initial_supply: Uint256,
recipient: felt
):
ERC20_initializer(name, symbol, decimals)
ERC20_mint(recipient, initial_supply)
func constructor{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}(
name : felt, symbol : felt, decimals : felt, initial_supply : Uint256, recipient : felt
):
ERC20.initializer(name, symbol, decimals)
ERC20._mint(recipient, initial_supply)
return ()
end

Expand All @@ -47,62 +24,46 @@ end
#

@view
func name{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}() -> (name: felt):
let (name) = ERC20_name()
func name{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}() -> (name : felt):
let (name) = ERC20.name()
return (name)
end

@view
func symbol{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}() -> (symbol: felt):
let (symbol) = ERC20_symbol()
func symbol{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}() -> (symbol : felt):
let (symbol) = ERC20.symbol()
return (symbol)
end

@view
func totalSupply{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}() -> (totalSupply: Uint256):
let (totalSupply: Uint256) = ERC20_totalSupply()
func totalSupply{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}() -> (
totalSupply : Uint256
):
let (totalSupply : Uint256) = ERC20.total_supply()
return (totalSupply)
end

@view
func decimals{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}() -> (decimals: felt):
let (decimals) = ERC20_decimals()
func decimals{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}() -> (
decimals : felt
):
let (decimals) = ERC20.decimals()
return (decimals)
end

@view
func balanceOf{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}(account: felt) -> (balance: Uint256):
let (balance: Uint256) = ERC20_balanceOf(account)
func balanceOf{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}(
account : felt
) -> (balance : Uint256):
let (balance : Uint256) = ERC20.balance_of(account)
return (balance)
end

@view
func allowance{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}(owner: felt, spender: felt) -> (remaining: Uint256):
let (remaining: Uint256) = ERC20_allowance(owner, spender)
func allowance{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}(
owner : felt, spender : felt
) -> (remaining : Uint256):
let (remaining : Uint256) = ERC20.allowance(owner, spender)
return (remaining)
end

Expand All @@ -111,55 +72,41 @@ end
#

@external
func transfer{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}(recipient: felt, amount: Uint256) -> (success: felt):
ERC20_transfer(recipient, amount)
func transfer{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}(
recipient : felt, amount : Uint256
) -> (success : felt):
ERC20.transfer(recipient, amount)
return (TRUE)
end

@external
func transferFrom{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}(
sender: felt,
recipient: felt,
amount: Uint256
) -> (success: felt):
ERC20_transferFrom(sender, recipient, amount)
func transferFrom{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}(
sender : felt, recipient : felt, amount : Uint256
) -> (success : felt):
ERC20.transfer_from(sender, recipient, amount)
return (TRUE)
end

@external
func approve{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}(spender: felt, amount: Uint256) -> (success: felt):
ERC20_approve(spender, amount)
func approve{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}(
spender : felt, amount : Uint256
) -> (success : felt):
ERC20.approve(spender, amount)
return (TRUE)
end

@external
func increaseAllowance{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}(spender: felt, added_value: Uint256) -> (success: felt):
ERC20_increaseAllowance(spender, added_value)
func increaseAllowance{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}(
spender : felt, added_value : Uint256
) -> (success : felt):
ERC20.increase_allowance(spender, added_value)
return (TRUE)
end

@external
func decreaseAllowance{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}(spender: felt, subtracted_value: Uint256) -> (success: felt):
ERC20_decreaseAllowance(spender, subtracted_value)
func decreaseAllowance{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}(
spender : felt, subtracted_value : Uint256
) -> (success : felt):
ERC20.decrease_allowance(spender, subtracted_value)
return (TRUE)
end
2 changes: 1 addition & 1 deletion camp_4/buidl/tests/test_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def __eq__(self, __o: object) -> bool:


# The path to the contract source code.
CONTRACT_FILE = os.path.join("contracts", "contract.cairo")
CONTRACT_FILE = os.path.join("contracts", "contract_final.cairo")
MOCKERC20_FILE = os.path.join("contracts", "ERC20.cairo")

signer1 = private_to_stark_key(123)
Expand Down

0 comments on commit 533a338

Please sign in to comment.