Skip to content

Commit

Permalink
feat: update deployment scripts to support sepolia
Browse files Browse the repository at this point in the history
  • Loading branch information
Th0rgal committed Jan 8, 2024
1 parent f05005c commit eb9648f
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 65 deletions.
25 changes: 17 additions & 8 deletions scripts/deploy.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,23 @@
logger.setLevel(logging.INFO)

load_dotenv()
NETWORK = os.getenv("STARKNET_NETWORK", "devnet")
NETWORK = os.getenv("STARKNET_NETWORK")

# https://api.starknet.id/uri?id=
MAINNET_CONST = [0x68747470733A2F2F6170692E737461726B6E65742E69642F7572693F69643D]
# https://goerli.api.starknet.id/uri?id="
GOERLI_CONST = [
0x68747470733A2F2F676F65726C692E6170692E737461726B6E65742E69642F,
0x7572693F69643D,
]
if NETWORK == "mainnet":
CONST = [0x68747470733A2F2F6170692E737461726B6E65742E69642F7572693F69643D]
# https://goerli.api.starknet.id/uri?id=
elif NETWORK == "goerli":
CONST = [
0x68747470733A2F2F676F65726C692E6170692E737461726B6E65742E69642F,
0x7572693F69643D,
]
# https://sepolia.api.starknet.id/uri?id=
elif NETWORK == "sepolia":
CONST = [
184555836509371486645449132961545395972629558923458913947591422899062204772,
3419765288418763837,
]


# %% Main
Expand All @@ -43,7 +52,7 @@ async def main():
deployments["naming_Identity"] = await deploy_v2(
"naming_Identity",
account.address,
(MAINNET_CONST if NETWORK == "mainnet" else GOERLI_CONST),
CONST,
)
identity_addr = deployments["naming_Identity"]["address"]

Expand Down
56 changes: 8 additions & 48 deletions scripts/utils/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,70 +5,30 @@
from dotenv import load_dotenv
from starknet_py.net.full_node_client import FullNodeClient
from starknet_py.net.models.chains import StarknetChainId
from starknet_py.common import int_from_bytes

logging.basicConfig()
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
load_dotenv()

NETWORKS = {
"mainnet": {
"name": "mainnet",
"explorer_url": "https://voyager.online",
"feeder_gateway_url": "https://alpha-mainnet.starknet.io/feeder_gateway",
"gateway_url": "https://alpha-mainnet.starknet.io/gateway",
},
"testnet": {
"name": "testnet",
"explorer_url": "https://goerli.voyager.online",
"feeder_gateway_url": "https://alpha4.starknet.io/feeder_gateway",
"gateway_url": "https://alpha4.starknet.io/gateway",
},
"devnet": {
"name": "devnet",
"explorer_url": "",
"rpc_url": "http://127.0.0.1:5050/rpc",
"feeder_gateway_url": "http://localhost:5050/feeder_gateway",
"gateway_url": "http://localhost:5050/gateway",
},
}

VARS = NETWORKS[os.getenv("STARKNET_NETWORK", "devnet")]
VARS["account_address"] = os.environ.get(f"{VARS['name'].upper()}_ACCOUNT_ADDRESS")
if VARS["account_address"] is None:
logger.warning(
f"⚠️ {VARS['name'].upper()}_ACCOUNT_ADDRESS not set, defaulting to ACCOUNT_ADDRESS"
)
VARS["account_address"] = os.getenv("ACCOUNT_ADDRESS")
VARS["private_key"] = os.environ.get(f"{VARS['name'].upper()}_PRIVATE_KEY")
if VARS["private_key"] is None:
logger.warning(
f"⚠️ {VARS['name'].upper()}_PRIVATE_KEY not set, defaulting to PRIVATE_KEY"
)
VARS["private_key"] = os.getenv("PRIVATE_KEY")
if VARS["name"] == "mainnet":
VARS["rpc_url"] = os.getenv("MAINNET_RPC_URL")
VARS["chain_id"] = StarknetChainId.MAINNET
elif VARS["name"] == "testnet2":
VARS["rpc_url"] = os.getenv("TESTNET2_RPC_URL")
VARS["chain_id"] = StarknetChainId.TESTNET2
elif VARS["name"] != "devnet":
VARS["rpc_url"] = os.getenv("TESTNET_RPC_URL")
VARS["chain_id"] = StarknetChainId.TESTNET

FULL_NODE_CLIENT = FullNodeClient(
node_url=VARS["rpc_url"],
net=VARS["feeder_gateway_url"],
node_url=os.getenv("RPC_URL"),
net=os.getenv("STARKNET_NETWORK"),
)

ACCOUNT_ADDRESS = os.getenv("ACCOUNT_ADDRESS")
PRIVATE_KEY = os.getenv("PRIVATE_KEY")
CHAIN_ID = int_from_bytes(os.getenv("CHAIN_ID").encode("utf-8"))

ETH_TOKEN_ADDRESS = 0x49D36570D4E46F48E99674BD3FCC84644DDD6B96F7C741B1562B82F9E004DC7
ETH_CLASS_HASH = 0x6A22BF63C7BC07EFFA39A25DFBD21523D211DB0100A0AFD054D172B81840EAF
SOURCE_DIR = Path("src")
CONTRACTS = {p.stem: p for p in list(SOURCE_DIR.glob("**/*.cairo"))}

BUILD_DIR = Path("target/release")
BUILD_DIR.mkdir(exist_ok=True, parents=True)
DEPLOYMENTS_DIR = Path("deployments") / VARS["name"]
DEPLOYMENTS_DIR = Path("deployments") / os.getenv("STARKNET_NETWORK")
DEPLOYMENTS_DIR.mkdir(exist_ok=True, parents=True)

COMPILED_CONTRACTS = [
Expand Down
15 changes: 6 additions & 9 deletions scripts/utils/starknet.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@
# CONTRACTS,
DEPLOYMENTS_DIR,
ETH_TOKEN_ADDRESS,
VARS,
FULL_NODE_CLIENT,
# SOURCE_DIR,
ACCOUNT_ADDRESS,
PRIVATE_KEY,
CHAIN_ID
)

logging.basicConfig()
Expand All @@ -44,13 +46,13 @@ async def get_starknet_account(
address=None,
private_key=None,
) -> Account:
address = address or VARS["account_address"]
address = address or ACCOUNT_ADDRESS
if address is None:
raise ValueError(
"address was not given in arg nor in env variable, see README.md#Deploy"
)
address = int(address, 16)
private_key = private_key or VARS["private_key"]
private_key = private_key or PRIVATE_KEY
if private_key is None:
raise ValueError(
"private_key was not given in arg nor in env variable, see README.md#Deploy"
Expand All @@ -60,7 +62,7 @@ async def get_starknet_account(
return Account(
address=address,
client=FULL_NODE_CLIENT,
chain=VARS["chain_id"],
chain=CHAIN_ID,
key_pair=key_pair,
)

Expand Down Expand Up @@ -124,11 +126,6 @@ def get_artifact(contract_name):
def get_alias(contract_name):
return snakecase(contract_name)


def get_tx_url(tx_hash: int) -> str:
return f"{VARS['explorer_url']}/tx/0x{tx_hash:064x}"


def get_sierra_artifact(contract_name):
return BUILD_DIR / f"{contract_name}.contract_class.json"

Expand Down

0 comments on commit eb9648f

Please sign in to comment.