Skip to content

Commit

Permalink
increases vrf allowance & improves deployment script
Browse files Browse the repository at this point in the history
  • Loading branch information
= committed May 28, 2024
1 parent f92cbbb commit a94aa84
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 15 deletions.
3 changes: 2 additions & 1 deletion contracts/game/src/lib.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -2366,7 +2366,8 @@ mod Game {
self._adventurer_entropy.write(adventurer_id, 0);

// request new entropy
let max_callback_fee = 1000000000000000;
// TODO: make this dynamic
let max_callback_fee = 10000000000000000;
let randomness_address = self._randomness_contract_address.read();
let seed = adventurer.get_vrf_seed(adventurer_id, adventurer_entropy);
request_randomness(randomness_address, seed, adventurer_id, max_callback_fee);
Expand Down
30 changes: 16 additions & 14 deletions scripts/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ player_name=0x706c6179657231
golden_token_id="0 0"
interface_camel=0
vrf_fee_limit=5000000000000000
eth_contract=0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7

# Source env vars
ENV_FILE="/workspaces/loot-survivor/.env"
Expand All @@ -32,28 +33,29 @@ lords_class_hash=$(starkli declare --watch /workspaces/loot-survivor/target/dev/
game_class_hash=$(starkli declare --watch /workspaces/loot-survivor/target/dev/game_Game.contract_class.json --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY 2>/dev/null)

# deploy lords
lords_contract=$(starkli deploy --watch $lords_class_hash $lords_cairo_string $lords_cairo_string $initial_supply 0 $ACCOUNT_ADDRESS --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee-raw 2224764349828573 2>/dev/null)
sleep 10
echo "lords contract: " $lords_contract
lords_contract=$(starkli deploy --watch $lords_class_hash $lords_cairo_string $lords_cairo_string $initial_supply 0 $ACCOUNT_ADDRESS --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee 0.01 2>/dev/null)

# deploy game
game_contract=$(starkli deploy --watch $game_class_hash $lords_contract $dao_address $collectible_address $golden_token_address $terminal_timestamp $randomness_contract $randomness_rotation_interval $oracle_address --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee-raw 12224764349828573 2>/dev/null)
echo "game contract: " $game_contract
sleep 5
game_contract=$(starkli deploy --watch $game_class_hash $lords_contract $dao_address $collectible_address $golden_token_address $terminal_timestamp $randomness_contract $randomness_rotation_interval $oracle_address --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee 0.01 2>/dev/null)

# mint lords
starkli invoke $lords_contract mint $ACCOUNT_ADDRESS 1000000000000000000000 0 --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee-raw 979281252380409 2>/dev/null
sleep 5
echo "minting lords"
starkli invoke --watch $lords_contract mint $ACCOUNT_ADDRESS 1000000000000000000000 0 --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee 0.01 2>/dev/null

# give game contract approval to spent lords
starkli invoke $lords_contract approve $game_contract 1000000000000000000000 0 --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee-raw 979281252380409 2>/dev/null
sleep 5
echo "approving game contract to spend lords"
starkli invoke --watch $lords_contract approve $game_contract 1000000000000000000000 0 --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee 0.01 2>/dev/null

# transfer eth to game contract so it can pay for VRF
eth_contract=0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7
starkli invoke $eth_contract transfer $game_contract 5000000000000000 0 --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee-raw 979281252380409
sleep 5
echo "transfering eth to game contract"
starkli invoke --watch $eth_contract transfer $game_contract 50000000000000000 0 --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee 0.01 2>/dev/null

# start new game
starkli invoke $game_contract new_game $client_reward_address $starting_weapon $player_name $golden_token_id $interface_camel $vrf_fee_limit --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee-raw 979281252380409
echo "starting new game"
starkli invoke --watch $game_contract new_game $client_reward_address $starting_weapon $player_name $golden_token_id $interface_camel $vrf_fee_limit --account $STARKNET_ACCOUNT --private-key $PRIVATE_KEY --max-fee 0.01 2>/dev/null

#output contracts and export contract vars
echo "game contract: " $game_contract
echo "lords contract: " $lords_contract
export game_contract
export lords_contract

0 comments on commit a94aa84

Please sign in to comment.