diff --git a/deploy_rln_contract.sh b/deploy_rln_contract.sh index d199af7..6fb0a8e 100644 --- a/deploy_rln_contract.sh +++ b/deploy_rln_contract.sh @@ -13,16 +13,16 @@ if [ ! -d "waku-rlnv2-contract" ]; then git clone https://github.com/waku-org/waku-rlnv2-contract.git fi -if [ -z "$RLN_CONTRACT_REPO_COMMIT" ]; then - echo "RLN_CONTRACT_REPO_COMMIT is not set" - exit 1 -fi +# if [ -z "$RLN_CONTRACT_REPO_COMMIT" ]; then +# echo "RLN_CONTRACT_REPO_COMMIT is not set" +# exit 1 +# fi cd /waku-rlnv2-contract -git checkout $RLN_CONTRACT_REPO_COMMIT +# git checkout $RLN_CONTRACT_REPO_COMMIT -#3. Replace the hardcoded MAX_MESSAGE_LIMIT -sed -i "s/\b100\b/${MAX_MESSAGE_LIMIT}/g" script/Deploy.s.sol +# #3. Replace the hardcoded MAX_MESSAGE_LIMIT +# sed -i "s/\b100\b/${MAX_MESSAGE_LIMIT}/g" script/Deploy.s.sol # 4. Compile echo "forge install..." @@ -41,5 +41,66 @@ export API_KEY_ETHERSCAN=123 export API_KEY_CARDONA=123 export API_KEY_LINEASCAN=123 -# 6. Deploy the contract -forge script script/Deploy.s.sol:Deploy --rpc-url $RPC_URL --broadcast -vv --private-key $PRIVATE_KEY --sender $ETH_FROM \ No newline at end of file +# 6. Deploy the TestToken +echo "Deploying TestToken..." +forge script test/TestToken.sol --broadcast -vvvv --rpc-url http://foundry:8545 --tc TestTokenFactory --private-key $PRIVATE_KEY +export TOKEN_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3 +echo "Deploying PriceCalculator" +forge script script/Deploy.s.sol --broadcast --rpc-url http://foundry:8545 --tc DeployPriceCalculator -vvvv --private-key $PRIVATE_KEY +echo "Deploying RLN contract..." +forge script script/Deploy.s.sol --broadcast --rpc-url http://foundry:8545 --tc DeployWakuRlnV2 -vvvv --private-key $PRIVATE_KEY +echo "Deploying Proxy contract..." +forge script script/Deploy.s.sol --broadcast --rpc-url http://foundry:8545 --tc DeployProxy -vvvv --private-key $PRIVATE_KEY +CONTRACT_ADDRESS=0x5FC8d32690cc91D4c39d9d3abcBD16989F875707 + +# echo "Deploying TestToken...2" +# forge script test/TestToken.sol --broadcast -vvvv --rpc-url http://foundry:8545 --tc TestTokenFactory --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d +# export TOKEN2=0x0165878A594ca255338adfa4d48449f69242Eb8F +echo "Minting...1" + cast send $TOKEN_ADDRESS "mint(address,uint256)" $ETH_FROM 90000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL + cast send $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL + +echo "Transfer tokens from account1 to others..." +# account1 transfers tokens to account2 + # cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL + # cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL + # cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x90F79bf6EB2c4f870365E785982E1f101E93b906 1100000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL + # cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 1000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL +echo "Minting..2" +# account2 approves the smart contract + # cast send --from 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 3000000000000000000 --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --rpc-url $RPC_URL +# echo "Allowance:" +# cast call $TOKEN_ADDRESS "allowance(address,address)" 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 $CONTRACT_ADDRESS --rpc-url $RPC_URL --private-key $PRIVATE_KEY + + export ID_COMMITMENT=1234 + export RATE_LIMIT=20 + export PATH=$PATH:$HOME/.foundry/bin + echo "REGISTERING" + # TX_HASH=$(cast send $CONTRACT_ADDRESS "register(uint256,uint32,uint256[])" $ID_COMMITMENT $RATE_LIMIT "[]" --rpc-url $RPC_URL --private-key $private_key) + # echo "Transaction hash: $TX_HASH" + +# echo "Minting..3" +# cast send --from 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 2000000000000000000 --private-key 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a --rpc-url $RPC_URL +# cast call $TOKEN_ADDRESS "allowance(address,address)" 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC $CONTRACT_ADDRESS --rpc-url $RPC_URL --private-key 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a +# # echo "Minting..4" + # cast send --from 0x90F79bf6EB2c4f870365E785982E1f101E93b906 $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 1100000000000000000 --private-key 0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6 --rpc-url $RPC_URL + # cast send --from 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 1000000000000000000 --private-key 0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a --rpc-url $RPC_URL + # cast send $TOKEN_ADDRESS "mint(address,uint256)" 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL + # cast send $TOKEN_ADDRESS "approve(address,uint256)" 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL +# cast send $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 3000000000000000000 --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --rpc-url $RPC_URL + +# echo "Minting...3" +# cast send $TOKEN_ADDRESS "mint(address,uint256)" 0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL +# cast send $TOKEN_ADDRESS "approve(address,uint256)" 0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL +# echo "Minting...4" +# cast send $TOKEN_ADDRESS "mint(address,uint256)" 0x90f79bf6eb2c4f870365e785982e1f101e93b906 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL +# cast send $TOKEN_ADDRESS "approve(address,uint256)" 0x90f79bf6eb2c4f870365e785982e1f101e93b906 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL +# echo "Minting...5" + + +# cast call 0x5FC8d32690cc91D4c39d9d3abcBD16989F875707 "getMembershipInfo(uint256)(uint32,uint32,uint256)" 21204544607239115553923357468848196222422962366969722479087435796807960273791 --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --rpc-url http://10.2.0.2:8545 +# cast call 0x5FC8d32690cc91D4c39d9d3abcBD16989F875707 "getMembershipInfo(uint256)(uint32,uint32,uint256)" 5494780760687378186440165448823694579544849163701100293317352188071056809499 --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --rpc-url http://10.2.0.2:8545 +# cast call 0x5FC8d32690cc91D4c39d9d3abcBD16989F875707 "getMerkleProof(uint40)(uint256[20])" 1 --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --rpc-url http://10.2.0.2:8545 + +# DBG 2025-04-03 08:58:32.855+00:00 credentials topics="rln_keystore_generator" tid=46 file=rln_keystore_generator.nim:41 idTrapdoor=02a739626fff4f7881f38184191af32619992ce80e9d4a2278fa56db06addc90 idNullifier=0dcf56c07a1198fec0961dd263a85712e68bff55c427c7b52e93111b67cd08e5 idSecretHash=07fc9279feae269da1c6578ce820b18b6ddf7c21877b8d54e76fa7f6a2098fab idCommitment=2ee158d0cc064ddcd579a23585c4996180b1e3245388321a6127e3c27714a37f +# DBG 2025-04-03 08:58:32.877+00:00 registering the member topics="waku rln_relay onchain_group_manager" tid=46 file=group_manager.nim:266 idCommitment=21204544607239115553923357468848196222422962366969722479087435796807960273791 userMessageLimit=20 idCommitmentsToErase=@[] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 6592794..a6ac15a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -44,8 +44,7 @@ services: - ETH_FROM=${ETH_FROM} - MAX_MESSAGE_LIMIT=${MAX_MESSAGE_LIMIT:-20} entrypoint: sh - command: - - '/opt/deploy_rln_contract.sh' + tty: true volumes: - ./deploy_rln_contract.sh:/opt/deploy_rln_contract.sh depends_on: @@ -72,42 +71,42 @@ services: networks: - simulation - nwaku: - image: ${NWAKU_IMAGE:-wakuorg/nwaku:latest} - restart: on-failure - labels: - com.centurylinklabs.watchtower.enable: '${WATCHTOWER_ENABLED:-false}' - deploy: - replicas: ${NUM_NWAKU_NODES:-5} - entrypoint: sh - environment: - - RPC_URL=${RPC_URL:-http://foundry:8545} - - RLN_CONTRACT_ADDRESS=0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 - - RLN_CREDENTIAL_PATH=/keystore.json - - RLN_CREDENTIAL_PASSWORD=passw123 - - RLN_RELAY_MSG_LIMIT=${RLN_RELAY_MSG_LIMIT:-10} - - RLN_RELAY_EPOCH_SEC=${RLN_RELAY_EPOCH_SEC:-60} - command: - - '/opt/run_nwaku.sh' - volumes: - - ./run_nwaku.sh:/opt/run_nwaku.sh:Z - - privatekeys-volume:/shared - depends_on: - contract-repo-deployer: - condition: service_completed_successfully - networks: - - simulation + # nwaku: + # image: ${NWAKU_IMAGE:-wakuorg/nwaku:latest} + # restart: on-failure + # labels: + # com.centurylinklabs.watchtower.enable: '${WATCHTOWER_ENABLED:-false}' + # deploy: + # replicas: ${NUM_NWAKU_NODES:-5} + # entrypoint: sh + # environment: + # - RPC_URL=${RPC_URL:-http://foundry:8545} + # - RLN_CONTRACT_ADDRESS=0x5FC8d32690cc91D4c39d9d3abcBD16989F875707 + # - RLN_CREDENTIAL_PATH=/keystore.json + # - RLN_CREDENTIAL_PASSWORD=passw123 + # - RLN_RELAY_MSG_LIMIT=${RLN_RELAY_MSG_LIMIT:-10} + # - RLN_RELAY_EPOCH_SEC=${RLN_RELAY_EPOCH_SEC:-60} + # command: + # - '/opt/run_nwaku.sh' + # volumes: + # - ./run_nwaku.sh:/opt/run_nwaku.sh:Z + # - privatekeys-volume:/shared + # depends_on: + # contract-repo-deployer: + # condition: service_completed_successfully + # networks: + # - simulation - rest-traffic: - image: alrevuelta/rest-traffic:28430f8 - command: - --multiple-nodes=http://waku-simulator-nwaku-[1..${NUM_NWAKU_NODES:-5}]:8645 - --msg-size-kbytes=${MSG_SIZE_KBYTES:-10} - --delay-seconds=${TRAFFIC_DELAY_SECONDS:-15} - networks: - - simulation - depends_on: - - nwaku + # rest-traffic: + # image: alrevuelta/rest-traffic:28430f8 + # command: + # --multiple-nodes=http://waku-simulator-nwaku-[1..${NUM_NWAKU_NODES:-5}]:8645 + # --msg-size-kbytes=${MSG_SIZE_KBYTES:-10} + # --delay-seconds=${TRAFFIC_DELAY_SECONDS:-15} + # networks: + # - simulation + # depends_on: + # - nwaku prometheus: image: prom/prometheus:latest diff --git a/run_bootstrap.sh b/run_bootstrap.sh index cab3d90..2bd970c 100755 --- a/run_bootstrap.sh +++ b/run_bootstrap.sh @@ -17,5 +17,4 @@ exec /usr/bin/wakunode\ --metrics-server-address=0.0.0.0\ --nodekey=30348dd51465150e04a5d9d932c72864c8967f806cce60b5d26afeca1e77eb68\ --nat=extip:${IP}\ - --pubsub-topic=/waku/2/rs/66/0\ --cluster-id=66 \ No newline at end of file diff --git a/run_nwaku.sh b/run_nwaku.sh index f1563ca..ac4b626 100755 --- a/run_nwaku.sh +++ b/run_nwaku.sh @@ -9,6 +9,8 @@ if echo $OS | grep -q "Debian"; then apt install -y jq elif echo $OS | grep -q "Alpine"; then echo "The operating system is Alpine." + castOut1=$(which cast) + echo "cast1 which is $castOut1" apk add bind-tools apk add jq fi @@ -91,22 +93,26 @@ get_private_key(){ if test -f .$RLN_CREDENTIAL_PATH; then echo "$RLN_CREDENTIAL_PATH already exists. Use it instead of creating a new one." else - private_key="$(get_private_key)" - echo "Private key: $private_key" - echo "Generating RLN keystore" - /usr/bin/wakunode generateRlnKeystore \ - --rln-relay-eth-client-address="$RPC_URL" \ - --rln-relay-eth-private-key=$private_key \ - --rln-relay-eth-contract-address=$RLN_CONTRACT_ADDRESS \ - --rln-relay-cred-path=$RLN_CREDENTIAL_PATH \ - --rln-relay-cred-password=$RLN_CREDENTIAL_PASSWORD \ - --rln-relay-user-message-limit=$RLN_RELAY_MSG_LIMIT \ - --rln-relay-epoch-sec=$RLN_RELAY_EPOCH_SEC \ - --log-level=DEBUG \ - --execute + # private_key="$(get_private_key)" + # echo "Private key: $private_key" + + # echo "Generating RLN keystore" + # /usr/bin/wakunode generateRlnKeystore \ + # --rln-relay-eth-client-address="$RPC_URL" \ + # --rln-relay-eth-private-key=$private_key \ + # --rln-relay-eth-contract-address=$RLN_CONTRACT_ADDRESS \ + # --rln-relay-cred-path=$RLN_CREDENTIAL_PATH \ + # --rln-relay-cred-password=$RLN_CREDENTIAL_PASSWORD \ + # --rln-relay-user-message-limit=$RLN_RELAY_MSG_LIMIT \ + # --rln-relay-epoch-sec=$RLN_RELAY_EPOCH_SEC \ + # --log-level=DEBUG \ + # --execute fi +echo "File list:" +ls -al + echo "I am a nwaku node" RETRIES=${RETRIES:=10} @@ -143,10 +149,9 @@ exec /usr/bin/wakunode\ --dns-discovery=true\ --discv5-discovery=true\ --discv5-enr-auto-update=True\ - --log-level=DEBUG\ + --log-level=TRACE\ --metrics-server=True\ --metrics-server-address=0.0.0.0\ --discv5-bootstrap-node=${BOOTSTRAP_ENR}\ --nat=extip:${IP}\ - --pubsub-topic=/waku/2/rs/66/0\ --cluster-id=66 \ No newline at end of file diff --git a/wakusim.env b/wakusim.env index 36c1782..44464d5 100644 --- a/wakusim.env +++ b/wakusim.env @@ -16,4 +16,4 @@ MAX_MESSAGE_LIMIT=100 # RLNv2 limits RLN_RELAY_MSG_LIMIT=100 RLN_RELAY_EPOCH_SEC=600 -RLN_CONTRACT_REPO_COMMIT=64df4593c6a14e43b8b0e9b396d2f4772bb08b34 +RLN_CONTRACT_REPO_COMMIT=latest