prepare
def prepare(
declared: DeclaredContract,
constructor_calldata: list[int] | dict | None = None,
salt: int | None = None
) -> PreparedContract:
class PreparedContract:
constructor_calldata: List[int]
contract_address: int
class_hash: int
Prepares contract for deployment given DeclaredContract
and constructor_calldata. The cheatcode is useful when you want to know contract address before deploying it to affect constructor with a targeted cheatcode. Example:
@external
func test_prank_constructor{syscall_ptr : felt*, range_check_ptr}():
%{
declared = declare("path/to/contract.cairo")
prepared = prepare(declared, [1,2,3])
start_prank(111, target_contract_address=prepared.contract_address)
# constructor will be affected by prank
deploy(prepared)
%}
return ()
end
info
You can prepare multiple contracts from one DeclaredContract
.
tip
You can provide constructor_calldata
as a dictionary to leverage data transformer.