From 00e88b1f6eba0c82f3c898a7279e5e00cfdaeae7 Mon Sep 17 00:00:00 2001 From: -f Date: Tue, 17 Jun 2025 16:50:12 +0100 Subject: [PATCH 1/7] add makefile, script, separate const --- cairo/Makefile | 46 +++++++++++++++++++++ cairo/crates/contracts/src/fee_token.cairo | 5 +++ cairo/crates/contracts/src/interfaces.cairo | 3 +- cairo/crates/contracts/src/lib.cairo | 1 + cairo/feeToken | 38 +++++++++++++++++ 5 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 cairo/Makefile create mode 100644 cairo/crates/contracts/src/fee_token.cairo create mode 100755 cairo/feeToken diff --git a/cairo/Makefile b/cairo/Makefile new file mode 100644 index 0000000..1a5cb85 --- /dev/null +++ b/cairo/Makefile @@ -0,0 +1,46 @@ +# Makefile for Hyperlane Starknet Cairo + +.PHONY: build clean rebuild help + +# Default target +help: + @echo "Available targets:" + @echo " build [FEE_TOKEN_ADDRESS] - Build project, optionally setting fee token first" + @echo " clean - Clean the project with scarb" + @echo " rebuild [FEE_TOKEN_ADDRESS] - Clean and build, optionally setting fee token" + @echo "" + @echo "Examples:" + @echo " make build # Build with current fee token" + @echo " make build 0x1234567890abcdef... # Set fee token and build" + @echo " make rebuild 0x1234567890abcdef... # Set fee token, clean and build" + +# Build the project (with optional fee token address as first argument) +build: +ifneq ($(word 2,$(MAKECMDGOALS)),) + @echo "Cleaning project before fee token update..." + scarb clean + @echo "Updating fee token to $(word 2,$(MAKECMDGOALS))..." + ./feeToken $(word 2,$(MAKECMDGOALS)) +endif + @echo "Building project..." + scarb build + +# Clean the project +clean: + @echo "Cleaning project..." + scarb clean + +# Clean and build (with optional fee token address) +rebuild: + @echo "Cleaning project..." + scarb clean +ifneq ($(word 2,$(MAKECMDGOALS)),) + @echo "Updating fee token to $(word 2,$(MAKECMDGOALS))..." + ./feeToken $(word 2,$(MAKECMDGOALS)) +endif + @echo "Building project..." + scarb build + +# Prevent make from treating the address argument as a target +%: + @: \ No newline at end of file diff --git a/cairo/crates/contracts/src/fee_token.cairo b/cairo/crates/contracts/src/fee_token.cairo new file mode 100644 index 0000000..d9b83aa --- /dev/null +++ b/cairo/crates/contracts/src/fee_token.cairo @@ -0,0 +1,5 @@ +use starknet::ContractAddress; + +pub fn FEE_TOKEN() -> ContractAddress { + 0x04718f5a0Fc34cC1AF16A1cdee98fFB20C31f5cD61D6Ab07201858f4287c938D.try_into().unwrap() +} \ No newline at end of file diff --git a/cairo/crates/contracts/src/interfaces.cairo b/cairo/crates/contracts/src/interfaces.cairo index 68ec5e7..458de5b 100644 --- a/cairo/crates/contracts/src/interfaces.cairo +++ b/cairo/crates/contracts/src/interfaces.cairo @@ -1,4 +1,5 @@ use alexandria_bytes::Bytes; +use contracts::fee_token::FEE_TOKEN; use contracts::hooks::merkle_tree_hook::merkle_tree_hook::Tree; use contracts::libs::message::Message; use core::array::ArrayTrait; @@ -6,7 +7,7 @@ use starknet::ContractAddress; use starknet::EthAddress; pub fn ETH_ADDRESS() -> ContractAddress { - 0x049D36570D4e46f48e99674bd3fcc84644DdD6b96F7C741B1562B82f9e004dC7.try_into().unwrap() + FEE_TOKEN() } #[derive(Serde, Drop, Debug, PartialEq)] diff --git a/cairo/crates/contracts/src/lib.cairo b/cairo/crates/contracts/src/lib.cairo index 34a56e5..907e53b 100644 --- a/cairo/crates/contracts/src/lib.cairo +++ b/cairo/crates/contracts/src/lib.cairo @@ -1,3 +1,4 @@ +pub mod fee_token; pub mod interfaces; pub mod mailbox; pub mod libs { diff --git a/cairo/feeToken b/cairo/feeToken new file mode 100755 index 0000000..4c1285f --- /dev/null +++ b/cairo/feeToken @@ -0,0 +1,38 @@ +#!/bin/bash + +# Script to update the FEE_TOKEN address dynamically +# Usage: ./feeToken 0x1234567890abcdef... + +if [ $# -eq 0 ]; then + echo "Usage: $0 " + echo "Example: $0 0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" + exit 1 +fi + +NEW_ADDRESS="$1" + +# Validate the address format (basic check for 0x prefix and length) +if [[ ! "$NEW_ADDRESS" =~ ^0x[0-9a-fA-F]{63,64}$ ]]; then + echo "Error: Invalid address format. Expected hex string starting with 0x" + exit 1 +fi + +FEE_TOKEN_FILE="crates/contracts/src/fee_token.cairo" + +if [ ! -f "$FEE_TOKEN_FILE" ]; then + echo "Error: Fee token file not found at $FEE_TOKEN_FILE" + exit 1 +fi + +echo "Updating FEE_TOKEN address to: $NEW_ADDRESS" + +# Update the fee token address in the file +sed -i.bak "s/0x[0-9a-fA-F]\\{63,64\\}/$NEW_ADDRESS/g" "$FEE_TOKEN_FILE" + +if [ $? -eq 0 ]; then + echo "Successfully updated FEE_TOKEN address in $FEE_TOKEN_FILE" + rm -f "${FEE_TOKEN_FILE}.bak" # Remove backup file +else + echo "Error: Failed to update fee token address" + exit 1 +fi \ No newline at end of file From 5b8787daa6d8da67226d7e1b199d04928a09894f Mon Sep 17 00:00:00 2001 From: Yorke Rhodes IV Date: Tue, 17 Jun 2025 15:44:34 -0400 Subject: [PATCH 2/7] Use simple shellscript --- cairo/Makefile | 46 ---------------------- cairo/crates/contracts/src/fee_token.cairo | 5 ++- cairo/feeToken | 38 ------------------ cairo/feeToken.sh | 16 ++++++++ 4 files changed, 19 insertions(+), 86 deletions(-) delete mode 100644 cairo/Makefile delete mode 100755 cairo/feeToken create mode 100755 cairo/feeToken.sh diff --git a/cairo/Makefile b/cairo/Makefile deleted file mode 100644 index 1a5cb85..0000000 --- a/cairo/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# Makefile for Hyperlane Starknet Cairo - -.PHONY: build clean rebuild help - -# Default target -help: - @echo "Available targets:" - @echo " build [FEE_TOKEN_ADDRESS] - Build project, optionally setting fee token first" - @echo " clean - Clean the project with scarb" - @echo " rebuild [FEE_TOKEN_ADDRESS] - Clean and build, optionally setting fee token" - @echo "" - @echo "Examples:" - @echo " make build # Build with current fee token" - @echo " make build 0x1234567890abcdef... # Set fee token and build" - @echo " make rebuild 0x1234567890abcdef... # Set fee token, clean and build" - -# Build the project (with optional fee token address as first argument) -build: -ifneq ($(word 2,$(MAKECMDGOALS)),) - @echo "Cleaning project before fee token update..." - scarb clean - @echo "Updating fee token to $(word 2,$(MAKECMDGOALS))..." - ./feeToken $(word 2,$(MAKECMDGOALS)) -endif - @echo "Building project..." - scarb build - -# Clean the project -clean: - @echo "Cleaning project..." - scarb clean - -# Clean and build (with optional fee token address) -rebuild: - @echo "Cleaning project..." - scarb clean -ifneq ($(word 2,$(MAKECMDGOALS)),) - @echo "Updating fee token to $(word 2,$(MAKECMDGOALS))..." - ./feeToken $(word 2,$(MAKECMDGOALS)) -endif - @echo "Building project..." - scarb build - -# Prevent make from treating the address argument as a target -%: - @: \ No newline at end of file diff --git a/cairo/crates/contracts/src/fee_token.cairo b/cairo/crates/contracts/src/fee_token.cairo index d9b83aa..497c4a9 100644 --- a/cairo/crates/contracts/src/fee_token.cairo +++ b/cairo/crates/contracts/src/fee_token.cairo @@ -1,5 +1,6 @@ use starknet::ContractAddress; pub fn FEE_TOKEN() -> ContractAddress { - 0x04718f5a0Fc34cC1AF16A1cdee98fFB20C31f5cD61D6Ab07201858f4287c938D.try_into().unwrap() -} \ No newline at end of file + // GENERATED CODE - DO NOT EDIT + 0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d.try_into().unwrap() +} diff --git a/cairo/feeToken b/cairo/feeToken deleted file mode 100755 index 4c1285f..0000000 --- a/cairo/feeToken +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -# Script to update the FEE_TOKEN address dynamically -# Usage: ./feeToken 0x1234567890abcdef... - -if [ $# -eq 0 ]; then - echo "Usage: $0 " - echo "Example: $0 0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" - exit 1 -fi - -NEW_ADDRESS="$1" - -# Validate the address format (basic check for 0x prefix and length) -if [[ ! "$NEW_ADDRESS" =~ ^0x[0-9a-fA-F]{63,64}$ ]]; then - echo "Error: Invalid address format. Expected hex string starting with 0x" - exit 1 -fi - -FEE_TOKEN_FILE="crates/contracts/src/fee_token.cairo" - -if [ ! -f "$FEE_TOKEN_FILE" ]; then - echo "Error: Fee token file not found at $FEE_TOKEN_FILE" - exit 1 -fi - -echo "Updating FEE_TOKEN address to: $NEW_ADDRESS" - -# Update the fee token address in the file -sed -i.bak "s/0x[0-9a-fA-F]\\{63,64\\}/$NEW_ADDRESS/g" "$FEE_TOKEN_FILE" - -if [ $? -eq 0 ]; then - echo "Successfully updated FEE_TOKEN address in $FEE_TOKEN_FILE" - rm -f "${FEE_TOKEN_FILE}.bak" # Remove backup file -else - echo "Error: Failed to update fee token address" - exit 1 -fi \ No newline at end of file diff --git a/cairo/feeToken.sh b/cairo/feeToken.sh new file mode 100755 index 0000000..43eee99 --- /dev/null +++ b/cairo/feeToken.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +FILEPATH="crates/contracts/src/fee_token.cairo" +TEMPFILE=$(mktemp) + +# writes all but the last 2 lines to the temp file +head -n $(($(wc -l < $FILEPATH) - 2)) $FILEPATH > $TEMPFILE + +# writes generated last 2 lines to the temp file +cat <> $TEMPFILE + $FEE_TOKEN.try_into().unwrap() +} +EOF + +# overwrite the original file with the temp file +cat $TEMPFILE > $FILEPATH From 900509b417a6a0dd8490598125d639029342afad Mon Sep 17 00:00:00 2001 From: Yorke Rhodes IV Date: Tue, 17 Jun 2025 15:55:37 -0400 Subject: [PATCH 3/7] Add scarb run commands --- cairo/crates/contracts/Scarb.toml | 4 ++++ cairo/{ => crates/contracts}/feeToken.sh | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) rename cairo/{ => crates/contracts}/feeToken.sh (87%) diff --git a/cairo/crates/contracts/Scarb.toml b/cairo/crates/contracts/Scarb.toml index f19492d..0b9c0b7 100644 --- a/cairo/crates/contracts/Scarb.toml +++ b/cairo/crates/contracts/Scarb.toml @@ -29,5 +29,9 @@ casm = true casm-add-pythonic-hints = true build-external-contracts = ["mocks::*"] +[scripts] +starknet = "FEE_TOKEN=0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d ./feeToken.sh" +paradex = "FEE_TOKEN=0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7 ./feeToken.sh" + [lib] name = "contracts" diff --git a/cairo/feeToken.sh b/cairo/crates/contracts/feeToken.sh similarity index 87% rename from cairo/feeToken.sh rename to cairo/crates/contracts/feeToken.sh index 43eee99..5338804 100755 --- a/cairo/feeToken.sh +++ b/cairo/crates/contracts/feeToken.sh @@ -1,6 +1,6 @@ #!/bin/sh -FILEPATH="crates/contracts/src/fee_token.cairo" +FILEPATH="src/fee_token.cairo" TEMPFILE=$(mktemp) # writes all but the last 2 lines to the temp file From d3a26df889465adb92e29ed24e968b4b5ad58b77 Mon Sep 17 00:00:00 2001 From: -f Date: Fri, 20 Jun 2025 10:57:08 +0100 Subject: [PATCH 4/7] change to usdc address on paradex --- cairo/crates/contracts/Scarb.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cairo/crates/contracts/Scarb.toml b/cairo/crates/contracts/Scarb.toml index 0b9c0b7..7fa73b2 100644 --- a/cairo/crates/contracts/Scarb.toml +++ b/cairo/crates/contracts/Scarb.toml @@ -31,7 +31,7 @@ build-external-contracts = ["mocks::*"] [scripts] starknet = "FEE_TOKEN=0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d ./feeToken.sh" -paradex = "FEE_TOKEN=0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7 ./feeToken.sh" +paradex = "FEE_TOKEN=0x7348407ebad690fec0cc8597e87dc16ef7b269a655ff72587dafff83d462be2 ./feeToken.sh" [lib] name = "contracts" From d26c342d39c8a00a6046fd0fa11c8ed507be3da3 Mon Sep 17 00:00:00 2001 From: Trevor Porter Date: Fri, 20 Jun 2025 15:30:46 +0100 Subject: [PATCH 5/7] add paradexsepolia --- cairo/crates/contracts/Scarb.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/cairo/crates/contracts/Scarb.toml b/cairo/crates/contracts/Scarb.toml index 7fa73b2..b22d57e 100644 --- a/cairo/crates/contracts/Scarb.toml +++ b/cairo/crates/contracts/Scarb.toml @@ -32,6 +32,7 @@ build-external-contracts = ["mocks::*"] [scripts] starknet = "FEE_TOKEN=0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d ./feeToken.sh" paradex = "FEE_TOKEN=0x7348407ebad690fec0cc8597e87dc16ef7b269a655ff72587dafff83d462be2 ./feeToken.sh" +paradexsepolia = "FEE_TOKEN=0x06f373b346561036d98ea10fb3e60d2f459c872b1933b50b21fe6ef4fda3b75e ./feeToken.sh" [lib] name = "contracts" From 8f64eeb4903824430f085efb073aca94da54c0dc Mon Sep 17 00:00:00 2001 From: Yorke Rhodes IV Date: Fri, 20 Jun 2025 12:22:01 -0400 Subject: [PATCH 6/7] scarb run paradex --- cairo/crates/contracts/src/fee_token.cairo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cairo/crates/contracts/src/fee_token.cairo b/cairo/crates/contracts/src/fee_token.cairo index 497c4a9..4464f89 100644 --- a/cairo/crates/contracts/src/fee_token.cairo +++ b/cairo/crates/contracts/src/fee_token.cairo @@ -2,5 +2,5 @@ use starknet::ContractAddress; pub fn FEE_TOKEN() -> ContractAddress { // GENERATED CODE - DO NOT EDIT - 0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d.try_into().unwrap() + 0x7348407ebad690fec0cc8597e87dc16ef7b269a655ff72587dafff83d462be2.try_into().unwrap() } From 29215eacf242cc5643bbcdcb879bc17b11bf43d3 Mon Sep 17 00:00:00 2001 From: Trevor Porter Date: Mon, 23 Jun 2025 13:19:45 +0100 Subject: [PATCH 7/7] scarb run paradexsepolia --- cairo/crates/contracts/src/fee_token.cairo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cairo/crates/contracts/src/fee_token.cairo b/cairo/crates/contracts/src/fee_token.cairo index 4464f89..d371063 100644 --- a/cairo/crates/contracts/src/fee_token.cairo +++ b/cairo/crates/contracts/src/fee_token.cairo @@ -2,5 +2,5 @@ use starknet::ContractAddress; pub fn FEE_TOKEN() -> ContractAddress { // GENERATED CODE - DO NOT EDIT - 0x7348407ebad690fec0cc8597e87dc16ef7b269a655ff72587dafff83d462be2.try_into().unwrap() + 0x06f373b346561036d98ea10fb3e60d2f459c872b1933b50b21fe6ef4fda3b75e.try_into().unwrap() }