Skip to content

IBetYou/IBetYou-starknet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Requirements

  • Node.js v12.22.4
  • npm/npx v7.21.1
  • Docker v20.10.8
  • Cairo 0.6.0

Install Dependencies

npm install

The "crypto" folder from the following git repository has to be manually added in the lib/ folder on the project root

https://github.com/starkware-libs/starkex-resources

Use

Make sure docker is running locally

Generate the artifacts by compiling the contract using staknet-compile:

starknet-compile

npx hardhat starknet-compile 

starknet-deploy

npx hardhat starknet-deploy --starknet-network starknetLocalhost

Test

To test Starknet contracts with Mocha, use the regular Hardhat test task:

npx hardhat test

Deploying and interacting using starknet CLI

Compile

mkdir build

starknet-compile contracts/contract.cairo \
    --output build/contract_compiled.json \
    --abi build/contract_abi.json

This will generate the contract address and transaction hash Export the contract address for easy access. Copy the contract address from the output.

export CONTRACT_ADDRESS=0x0324c875882a9b93f6dc01ef6216bac5efdbf8f00c71e7f4c7e09c884cc1b97f

We can also export network name

export STARKNET_NETWORK=alpha

Add balance to user 1 and user 2

starknet invoke \
    --address $CONTRACT_ADDRESS \
    --abi build/contract_abi.json \
    --function increase_balance  --input $BETTOR_PUBLIC_KEY 1000 \
    --signature $BETTER_SIGN_PART_1 $BETTER_SIGN_PART_2
starknet invoke \
    --address $CONTRACT_ADDRESS \
    --abi build/contract_abi.json \
    --function increase_balance  --input $COUNTER_BETTOR_PUBLIC_KEY 1000 \
    --signature $COUNTER_BETTER_SIGN_PART_1 $COUNTER_BETTER_SIGN_PART_2

View balance of user 1 and user 2

starknet call --address $CONTRACT_ADDRESS \
    --abi build/contract_abi.json \
    --function get_balance --input $BETTOR_PUBLIC_KEY
starknet call --address $CONTRACT_ADDRESS \
    --abi build/contract_abi.json \
    --function get_balance --input $COUNTER_BETTOR_PUBLIC_KEY

Create a bet

starknet invoke \
    --address $CONTRACT_ADDRESS \
    --abi build/contract_abi.json \
    --function createBet \
    --inputs $BETTOR_PUBLIC_KEY $AMOUNT $BET_TEXT
    --signature $BETTER_SIGN_BETAMOUNT_PART_1 $BETTER_SIGN_BETAMOUNT_PART_2

User 2 joins the bet as counterbettor

starknet invoke \
    --address $CONTRACT_ADDRESS \
    --abi build/contract_abi.json \
    --function joinCounterBettor \
    --inputs $COUNTER_BETTOR_PUBLIC_KEY

User 3 joins the bet as judge

starknet invoke \
    --address $CONTRACT_ADDRESS \
    --abi build/contract_abi.json \
    --function joinJudge \
    --inputs $JUDGE_PUBLIC_KEY

Judge (user 3) votes user 1 as winner

starknet invoke \
    --address $CONTRACT_ADDRESS \
    --abi build/contract_abi.json \
    --function voteBettor \
    --inputs $JUDGE_PUBLIC_KEY $BETTOR_PUBLIC_KEY
    --signature $JUDGE_SIGN_PART_1 $JUDGE_SIGN_PART_2

Now, after the transaction is verified, verify the balance of user 1, it should get increased by 2x of the bet amount

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published