My contract:
# SPDX-License-Identifier: MIT
%lang starknet
from starkware.cairo.common.cairo_builtins import HashBuiltin
from starkware.cairo.common.uint256 import Uint256
from starkware.cairo.common.bool import TRUE
from openzeppelin.token.erc20.library import ERC20
@constructor
func constructor{
syscall_ptr: felt*,
pedersen_ptr: HashBuiltin*,
range_check_ptr
}(recipient: felt):
ERC20.initializer('Yeah', 'YEAH', 18)
ERC20._mint(recipient, Uint256(1000000000000000000000000, 0))
return ()
end
#
# Getters
#
@view
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()
return (symbol)
end
@view
func totalSupply{
syscall_ptr: felt*,
pedersen_ptr: HashBuiltin*,
range_check_ptr
}() -> (totalSupply: Uint256):
let (totalSupply) = ERC20.total_supply()
return (totalSupply)
end
@view
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) = 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) = ERC20.allowance(owner, spender)
return (remaining)
end
#
# Externals
#
@external
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.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)
return (TRUE)
end
@external
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.decrease_allowance(spender, subtracted_value)
return (TRUE)
end
And my terminal:
$ nile deploy yeah --alias yeah --network goerli
🚀 Deploying yeah
Error: AssertionError: Expected at least 1 inputs, got 0.
Traceback (most recent call last):
File "/Users/andrejrabcenko/Blockchain/project-02/env/bin/nile", line 8, in <module>
sys.exit(cli())
File "/Users/andrejrabcenko/Blockchain/project-02/env/lib/python3.8/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/Users/andrejrabcenko/Blockchain/project-02/env/lib/python3.8/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/Users/andrejrabcenko/Blockchain/project-02/env/lib/python3.8/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/andrejrabcenko/Blockchain/project-02/env/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/andrejrabcenko/Blockchain/project-02/env/lib/python3.8/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/Users/andrejrabcenko/Blockchain/project-02/env/lib/python3.8/site-packages/nile/cli.py", line 87, in deploy
deploy_command(artifact, arguments, network, alias)
File "/Users/andrejrabcenko/Blockchain/project-02/env/lib/python3.8/site-packages/nile/core/deploy.py", line 16, in deploy
output = run_command(contract_name, network, overriding_path, arguments=arguments)
File "/Users/andrejrabcenko/Blockchain/project-02/env/lib/python3.8/site-packages/nile/common.py", line 72, in run_command
return subprocess.check_output(command)
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/subprocess.py", line 415, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['starknet', 'deploy', '--contract', 'artifacts/yeah.json', '--no_wallet']' returned non-zero exit status 1.