diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9884b15f..12ae78d6 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -201,3 +201,14 @@ jobs: cp processor/ethereum/erc20/contracts/IERC20.sol processor/ethereum/router/contracts/ cd processor/ethereum/router/contracts slither Router.sol + + shellcheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # 6.0.0 + - name: shellcheck + run: | + sudo apt install shellcheck + find . -iname "*.sh" | while read -r script; do + shellcheck --enable=all --shell=sh --severity=info $script + done diff --git a/orchestration/dev/networks/bitcoin/run.sh b/orchestration/dev/networks/bitcoin/run.sh index bec89fa9..4f4cc24b 100755 --- a/orchestration/dev/networks/bitcoin/run.sh +++ b/orchestration/dev/networks/bitcoin/run.sh @@ -1,9 +1,10 @@ #!/bin/sh +set -e RPC_USER="${RPC_USER:=serai}" RPC_PASS="${RPC_PASS:=seraidex}" bitcoind -regtest --port=8333 \ - -rpcuser=$RPC_USER -rpcpassword=$RPC_PASS \ + -rpcuser="$RPC_USER" -rpcpassword="$RPC_PASS" \ -rpcbind=0.0.0.0 -rpcallowip=0.0.0.0/0 -rpcport=8332 \ - $@ + "$@" diff --git a/orchestration/dev/networks/ethereum/run.sh b/orchestration/dev/networks/ethereum/run.sh index 464f4c6e..10a7f7a6 100755 --- a/orchestration/dev/networks/ethereum/run.sh +++ b/orchestration/dev/networks/ethereum/run.sh @@ -1,3 +1,4 @@ #!/bin/sh +set -e ~/.foundry/bin/anvil --host 0.0.0.0 --no-cors --no-mining --slots-in-an-epoch 32 --silent diff --git a/orchestration/dev/networks/monero-wallet-rpc/run.sh b/orchestration/dev/networks/monero-wallet-rpc/run.sh index 5c7aeb70..ec93c52a 100755 --- a/orchestration/dev/networks/monero-wallet-rpc/run.sh +++ b/orchestration/dev/networks/monero-wallet-rpc/run.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e monero-wallet-rpc \ --allow-mismatched-daemon-version \ diff --git a/orchestration/dev/networks/monero/run.sh b/orchestration/dev/networks/monero/run.sh index 1186c4d1..162efb30 100755 --- a/orchestration/dev/networks/monero/run.sh +++ b/orchestration/dev/networks/monero/run.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e RPC_USER="${RPC_USER:=serai}" RPC_PASS="${RPC_PASS:=seraidex}" @@ -7,5 +8,5 @@ RPC_PASS="${RPC_PASS:=seraidex}" monerod --non-interactive --regtest --offline --fixed-difficulty=1 \ --no-zmq --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18081 --confirm-external-bind \ --rpc-access-control-origins "*" --disable-rpc-ban \ - --rpc-login=$RPC_USER:$RPC_PASS --log-level 2 \ - $@ + --rpc-login="$RPC_USER":"$RPC_PASS" --log-level 2 \ + "$@" diff --git a/orchestration/dev/serai/run.sh b/orchestration/dev/serai/run.sh index 44e9969f..b2c12dbd 100755 --- a/orchestration/dev/serai/run.sh +++ b/orchestration/dev/serai/run.sh @@ -1,3 +1,5 @@ #!/bin/sh +set -e -serai-node --unsafe-rpc-external --rpc-cors all --chain local --$SERAI_NAME +${SERAI_NAME:?} # Ensure this is present in the environment +serai-node --unsafe-rpc-external --rpc-cors all --chain local --"$SERAI_NAME" diff --git a/orchestration/increase_default_stack_size.sh b/orchestration/increase_default_stack_size.sh index accbdb1c..9cc2b2a7 100755 --- a/orchestration/increase_default_stack_size.sh +++ b/orchestration/increase_default_stack_size.sh @@ -1,3 +1,5 @@ +#!/bin/sh + # Raises `PT_GNU_STACK`'s memory to be at least 8 MB. # # This causes `musl` to use a 8 MB default for new threads, resolving the primary @@ -7,8 +9,7 @@ # for reference. This differs that instead of setting at time of link, it # patches the binary as an already-linked ELF executable. -#!/bin/bash -set -eo pipefail +set -e ELF="$1" if [ ! -f "$ELF" ]; then @@ -19,26 +20,30 @@ if [ ! -f "$ELF" ]; then exit 1 fi -function hex { - hexdump -e '1 1 "%.2x"' -v +hex() { + od -tx1 -v -A none | tr -d "[:space:]" } -function read_bytes { - dd status=none bs=1 skip=$1 count=$2 if="$ELF" | hex +read_bytes() { + dd bs=1 skip="$1" count="$2" if="$ELF" 2> /dev/null | hex } -function write_bytes { +write_bytes() { POS=$1 BYTES=$2 - while [ ! $BYTES = "" ]; do - printf "\x$(printf $BYTES | head -c2)" | dd status=none conv=notrunc bs=1 seek=$POS of="$ELF" - # Start with the third byte, as in, after the first two bytes - BYTES=$(printf $BYTES | tail -c+3) - POS=$(($POS + 1)) + while [ ! "$BYTES" = "" ]; do + NEXT=$(printf "%s" "$BYTES" | head -c2) + # Advance to the third byte, as in, after the first two bytes + BYTES=$(printf "%s" "$BYTES" | tail -c+3) + + # shellcheck disable=SC2059 + printf "\x$NEXT" | dd conv=notrunc bs=1 seek="$POS" of="$ELF" 2> /dev/null + POS=$((POS + 1)) done } # Magic MAGIC=$(read_bytes 0 4) -if [ ! $MAGIC = $(printf "\x7fELF" | hex) ]; then +EXPECTED_MAGIC=$(printf "\x7ELF" | hex) +if [ ! "$MAGIC" = "$EXPECTED_MAGIC" ]; then echo "Not ELF" exit 2 fi @@ -55,18 +60,20 @@ case $BITS in esac # For `value_per_bits a b`, `a` if 32-bit and `b` if 64-bit -function value_per_bits { +value_per_bits() { RESULT=$(($1)) if [ $BITS = 64 ]; then RESULT=$(($2)) fi - printf $RESULT + printf "%s" "$RESULT" } # Read an integer by its offset, differing depending on if 32- or 64-bit -function read_integer_by_offset { - OFFSET=$(value_per_bits $1 $2) - printf $(( 0x$(swap_native_endian $(read_bytes $OFFSET $3)) )) +read_integer_by_offset() { + OFFSET=$(value_per_bits "$1" "$2") + BYTES=$(read_bytes "$OFFSET" "$3") + BYTES=$(swap_native_endian "$BYTES") + printf "%i" $(( 0x$BYTES )) } # 1 if little-endian, 2 if big-endian @@ -83,81 +90,84 @@ esac # While this script is written in big-endian, we need to work with the file in # its declared endian. This function swaps from big to native, or vice versa, # as necessary. -function swap_native_endian { +swap_native_endian() { BYTES="$1" if [ "$BYTES" = "" ]; then - read BYTES + read -r BYTES fi - if [ $LITTLE_ENDIAN -eq 0 ]; then - printf $BYTES + if [ "$LITTLE_ENDIAN" -eq 0 ]; then + printf "%s" "$BYTES" return fi - while [ ! $BYTES = "" ]; do - printf $(printf $BYTES | tail -c2) - BYTES=$(printf $BYTES | head -c-2) + while [ ! "$BYTES" = "" ]; do + printf "%s" "$BYTES" | tail -c2 + BYTES=$(printf "%s" "$BYTES" | head -c-2) done } ELF_VERSION=$(read_bytes 6 1) -if [ ! $ELF_VERSION = "01" ]; then +if [ ! "$ELF_VERSION" = "01" ]; then echo "Unknown ELF Version ($ELF_VERSION)" exit 5 fi ELF_VERSION_2=$(read_bytes $((0x14)) 4) -if [ ! $ELF_VERSION_2 = $(swap_native_endian 00000001) ]; then +if [ ! "$ELF_VERSION_2" = "$(swap_native_endian 00000001)" ]; then echo "Unknown secondary ELF Version ($ELF_VERSION_2)" exit 6 fi # Find where the program headers are -PROGRAM_HEADERS_OFFSET=$(read_integer_by_offset 0x1c 0x20 $(value_per_bits 4 8)) +PROGRAM_HEADERS_OFFSET=$(read_integer_by_offset 0x1c 0x20 "$(value_per_bits 4 8)") PROGRAM_HEADER_SIZE=$(value_per_bits 0x20 0x38) DECLARED_PROGRAM_HEADER_SIZE=$(read_integer_by_offset 0x2a 0x36 2) -if [ ! $PROGRAM_HEADER_SIZE -eq $DECLARED_PROGRAM_HEADER_SIZE ]; then +if [ ! "$PROGRAM_HEADER_SIZE" -eq "$DECLARED_PROGRAM_HEADER_SIZE" ]; then echo "Unexpected size of a program header ($DECLARED_PROGRAM_HEADER_SIZE)" exit 7 fi -function program_header_start { - printf $(($PROGRAM_HEADERS_OFFSET + ($1 * $PROGRAM_HEADER_SIZE))) +program_header_start() { + printf "%i" $((PROGRAM_HEADERS_OFFSET + ($1 * PROGRAM_HEADER_SIZE))) } -function read_program_header { - read_bytes $(program_header_start $1) $PROGRAM_HEADER_SIZE +read_program_header() { + START=$(program_header_start "$1") + read_bytes "$START" "$PROGRAM_HEADER_SIZE" } # Iterate over each program header PROGRAM_HEADERS=$(read_integer_by_offset 0x2c 0x38 2) -NEXT_PROGRAM_HEADER=$(( $PROGRAM_HEADERS - 1 )) +NEXT_PROGRAM_HEADER=$(( PROGRAM_HEADERS - 1 )) FOUND=0 -while [ $NEXT_PROGRAM_HEADER -ne -1 ]; do +while [ "$NEXT_PROGRAM_HEADER" -ne -1 ]; do THIS_PROGRAM_HEADER=$NEXT_PROGRAM_HEADER - NEXT_PROGRAM_HEADER=$(( $NEXT_PROGRAM_HEADER - 1 )) - PROGRAM_HEADER=$(read_program_header $THIS_PROGRAM_HEADER) + NEXT_PROGRAM_HEADER=$(( NEXT_PROGRAM_HEADER - 1 )) + PROGRAM_HEADER=$(read_program_header "$THIS_PROGRAM_HEADER") - HEADER_TYPE=$(printf $PROGRAM_HEADER | head -c8) + HEADER_TYPE=$(printf "%s" "$PROGRAM_HEADER" | head -c8) + HEADER_TYPE=$(swap_native_endian "$HEADER_TYPE") # `PT_GNU_STACK` # https://github.com/torvalds/linux/blob/c2f2b01b74be8b40a2173372bcd770723f87e7b2/include/uapi/linux/elf.h#L41 - if [ ! "$(swap_native_endian $HEADER_TYPE)" = "6474e551" ]; then + if [ ! "$HEADER_TYPE" = "6474e551" ]; then continue fi FOUND=1 - MEMSZ_OFFSET=$(( $(program_header_start $THIS_PROGRAM_HEADER) + $(value_per_bits 0x14 0x28) )) + MEMSZ_OFFSET=$(( $(program_header_start "$THIS_PROGRAM_HEADER") + $(value_per_bits 0x14 0x28) )) MEMSZ_LEN=$(value_per_bits 4 8) # `MEMSZ_OFFSET MEMSZ_OFFSET` as we've already derived it depending on the amount of bits - MEMSZ=$(read_integer_by_offset $MEMSZ_OFFSET $MEMSZ_OFFSET $MEMSZ_LEN) + MEMSZ=$(read_integer_by_offset "$MEMSZ_OFFSET" "$MEMSZ_OFFSET" "$MEMSZ_LEN") DESIRED_STACK_SIZE=$((8 * 1024 * 1024)) # Only run if the inherent value is _smaller_ - if [ $MEMSZ -lt $DESIRED_STACK_SIZE ]; then + if [ "$MEMSZ" -lt "$DESIRED_STACK_SIZE" ]; then # `2 *`, as this is its length in hexadecimal - HEX_MEMSZ=$(printf %."$((2 * $MEMSZ_LEN))"x $DESIRED_STACK_SIZE) - write_bytes $MEMSZ_OFFSET $(swap_native_endian $HEX_MEMSZ) + HEX_MEMSZ=$(printf %."$((2 * MEMSZ_LEN))"x "$DESIRED_STACK_SIZE") + HEX_MEMSZ=$(swap_native_endian "$HEX_MEMSZ") + write_bytes "$MEMSZ_OFFSET" "$HEX_MEMSZ" fi done -if [ $FOUND -eq 0 ]; then +if [ "$FOUND" -eq 0 ]; then echo "\`PT_GNU_STACK\` program header not found" exit 8 fi diff --git a/orchestration/testnet/networks/bitcoin/run.sh b/orchestration/testnet/networks/bitcoin/run.sh index 6544243b..b5bd4735 100755 --- a/orchestration/testnet/networks/bitcoin/run.sh +++ b/orchestration/testnet/networks/bitcoin/run.sh @@ -1,9 +1,10 @@ #!/bin/sh +set -e RPC_USER="${RPC_USER:=serai}" RPC_PASS="${RPC_PASS:=seraidex}" bitcoind -testnet -port=8333 \ - -rpcuser=$RPC_USER -rpcpassword=$RPC_PASS \ + -rpcuser="$RPC_USER" -rpcpassword="$RPC_PASS" \ -rpcbind=0.0.0.0 -rpcallowip=0.0.0.0/0 -rpcport=8332 \ --datadir=/volume diff --git a/orchestration/testnet/networks/ethereum/consensus/lighthouse/run.sh b/orchestration/testnet/networks/ethereum/consensus/lighthouse/run.sh index 1b3857bf..2751080e 100755 --- a/orchestration/testnet/networks/ethereum/consensus/lighthouse/run.sh +++ b/orchestration/testnet/networks/ethereum/consensus/lighthouse/run.sh @@ -1,3 +1,4 @@ #!/bin/sh +set -e RUST_LOG=info lighthouse bn --execution-endpoint http://localhost:8551 --execution-jwt /home/ethereum/.jwt diff --git a/orchestration/testnet/networks/ethereum/consensus/nimbus/run.sh b/orchestration/testnet/networks/ethereum/consensus/nimbus/run.sh index 2bb8d868..7e5c3625 100755 --- a/orchestration/testnet/networks/ethereum/consensus/nimbus/run.sh +++ b/orchestration/testnet/networks/ethereum/consensus/nimbus/run.sh @@ -1,3 +1,4 @@ #!/bin/sh +set -e exit 1 diff --git a/orchestration/testnet/networks/ethereum/execution/geth/run.sh b/orchestration/testnet/networks/ethereum/execution/geth/run.sh index fee4a57c..1a2d1d1e 100755 --- a/orchestration/testnet/networks/ethereum/execution/geth/run.sh +++ b/orchestration/testnet/networks/ethereum/execution/geth/run.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e #geth --dev --networkid 5208 \ # --http --http.api "web3,net,eth,miner" \ diff --git a/orchestration/testnet/networks/ethereum/execution/reth/run.sh b/orchestration/testnet/networks/ethereum/execution/reth/run.sh index 5be8924a..de2b2d50 100755 --- a/orchestration/testnet/networks/ethereum/execution/reth/run.sh +++ b/orchestration/testnet/networks/ethereum/execution/reth/run.sh @@ -1,3 +1,4 @@ #!/bin/sh +set -e RUST_LOG=info reth node --authrpc.jwtsecret /home/ethereum/.jwt diff --git a/orchestration/testnet/networks/monero/hashes-v0.18.4.2.txt b/orchestration/testnet/networks/monero/hashes-v0.18.4.2.txt deleted file mode 100644 index 3188ceca..00000000 --- a/orchestration/testnet/networks/monero/hashes-v0.18.4.2.txt +++ /dev/null @@ -1,50 +0,0 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 - -# This GPG-signed message exists to confirm the SHA256 sums of Monero binaries. -# -# Please verify the signature against the key for binaryFate in the -# source code repository (/utils/gpg_keys). -# -# -## CLI -6122f0bcaca12d5badd92002338847d16032f6d52d86155c203bcb67d4fe1518 monero-android-armv7-v0.18.4.2.tar.bz2 -3b248c3201f028205915403b4b2f173df0dd8bf47eeb268fd67a4661251469d3 monero-android-armv8-v0.18.4.2.tar.bz2 -b4e2b7de80107a1b4613b878d8e2114244b3fb16397821d69baa72d9b0f8c8d5 monero-freebsd-x64-v0.18.4.2.tar.bz2 -ecb2577499a3b0901d731e11d462d3fadcd70095f3ab0def0c27ee64dc56b061 monero-linux-armv7-v0.18.4.2.tar.bz2 -a39530054dac348b219f1048a24ca629da26990f72cf9c1f6b6853e3d8c39a79 monero-linux-armv8-v0.18.4.2.tar.bz2 -18492ace80bf8ef2f44aa9a99b4f20adf00fd59c675a6a496211a720088d5d1a monero-linux-riscv64-v0.18.4.2.tar.bz2 -41d023f2357244ea43ee0a74796f5705ce75ce7373a5865d4959fefa13ecab06 monero-linux-x64-v0.18.4.2.tar.bz2 -03e77a4836861a47430664fa703dd149a355b3b214bc400b04ed38eb064a3ef0 monero-linux-x86-v0.18.4.2.tar.bz2 -9b98da6911b4769abef229c20e21f29d919b11db156965d6f139d2e1ad6625c2 monero-mac-armv8-v0.18.4.2.tar.bz2 -b1b1b580320118d3b6eaa5575fdbd73cf4db90fcc025b7abf875c5e5b4e335c1 monero-mac-x64-v0.18.4.2.tar.bz2 -14dd5aa11308f106183dd7834aa200e74ce6f3497103973696b556e893a4fef2 monero-win-x64-v0.18.4.2.zip -934d9dbeb06ff5610d2c96ebe34fa480e74f78eaeb3fa3e47d89b7961c9bc5e0 monero-win-x86-v0.18.4.2.zip -e9ec2062b3547db58f00102e6905621116ab7f56a331e0bc9b9e892607b87d24 monero-source-v0.18.4.2.tar.bz2 -# -## GUI -9d6e87add7e3ac006ee34c13c4f629252595395f54421db768f72dc233e94ea8 monero-gui-install-win-x64-v0.18.4.2.exe -e4fcdea3f0ff27c3616a8a75545f42a4e4866ea374fa2eeaa9c87027573358ea monero-gui-linux-x64-v0.18.4.2.tar.bz2 -3dfee5c5d8e000c72eb3755bf0eb03ca7c5928b69c3a241e147ad22d144e00a7 monero-gui-mac-armv8-v0.18.4.2.dmg -16abadcbd608d4f7ba20d17a297f2aa2c9066d33f6f22bf3fcdca679ab603990 monero-gui-mac-x64-v0.18.4.2.dmg -4daff8850280173d46464ba9a9de7f712228ad1ef76a1c4954531e4fd2b86d86 monero-gui-win-x64-v0.18.4.2.zip -691085e61ece6c56738431f3cfd395536ca0675214e5991e0dbfab85025e82d7 monero-gui-source-v0.18.4.2.tar.bz2 -# -# -# ~binaryFate ------BEGIN PGP SIGNATURE----- - -iQIzBAEBCAAdFiEEgaxZH+nEtlxYBq/D8K9NRioL35IFAmitx+kACgkQ8K9NRioL -35J6cQ/7ByvGstg/a5lIYbB+Lz5bNiPozCILD9/offvC7GgOvna9rkHuofuLS+pX -qhYEMrjFjmp03XMY+i68M83qkBEZ+yU5iNDbwRuHUNMMWaaGlhnhm3nyUVtDpjjr -4xwVsee+dzi0JZhVQG7HJFURiP2Ub5Ua6bSaATDoT/aUYdhmrOnQiH2+VxogiCv3 -JStDqXq6LpFjzw7UkAfxxu1PW+AQFNBzi3L0qWfzb5WWL7xuK63wXGmEkYBlvult -qt3LUhDUzMrfZ5GiiOYDEw44Y2atD4ibOYtBnllCX9CKNb0o2KKU6Qkj+CYqqtnE -uGNOt1oT09VPOtE7OUkBLVkALjef7ZXRibE7tN4wSnsrG39DP795/52L6CGJbl4n -UDnHzLCUbuvhnoAu5U+rUP5nUEDYS9ANNyj610ogNCo7YjfzLH641WSQ/UnuXKkA -RmK8xIiKoOnUeOanX99zqeXqV7gQdQMlfwLUr3pQzCI2YjdvxdRoedSEi5nX5KvO -Snf3BcCYMBemGYqVMdo95tc0Gmsw12/O8WwrBbTea+PeAXJuLaBxrLNn+RNZLfF/ -UJYq2VcEwxG6vXb3cJ5lDKmRDDRI8Fxu6Amdab+6ponhM8Zy3eAynVIO952pLA7N -dtl72RsimM+sgHXP4ERYL4c6WARSHE5sAiog43dr56l3PPmM8pE= -=SoHG ------END PGP SIGNATURE----- diff --git a/orchestration/testnet/networks/monero/hashes-v0.18.4.4.txt b/orchestration/testnet/networks/monero/hashes-v0.18.4.4.txt new file mode 100644 index 00000000..0e62e2e7 --- /dev/null +++ b/orchestration/testnet/networks/monero/hashes-v0.18.4.4.txt @@ -0,0 +1,50 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +# This GPG-signed message exists to confirm the SHA256 sums of Monero binaries. +# +# Please verify the signature against the key for binaryFate in the +# source code repository (/utils/gpg_keys). +# +# +## CLI +7c2ad18ca3a1ad5bc603630ca935a753537a38a803e98d645edd6a3b94a5f036 monero-android-armv7-v0.18.4.4.tar.bz2 +eb81b71f029884ab5fec76597be583982c95fd7dc3fc5f5083a422669cee311e monero-android-armv8-v0.18.4.4.tar.bz2 +bc539178df23d1ae8b69569d9c328b5438ae585c0aacbebe12d8e7d387a745b0 monero-freebsd-x64-v0.18.4.4.tar.bz2 +2040dc22748ef39ed8a755324d2515261b65315c67b91f449fa1617c5978910b monero-linux-armv7-v0.18.4.4.tar.bz2 +b9daede195a24bdd05bba68cb5cb21e42c2e18b82d4d134850408078a44231c5 monero-linux-armv8-v0.18.4.4.tar.bz2 +c939ea6e8002798f24a56ac03cbfc4ff586f70d7d9c3321b7794b3bcd1fa4c45 monero-linux-riscv64-v0.18.4.4.tar.bz2 +7fe45ee9aade429ccdcfcad93b905ba45da5d3b46d2dc8c6d5afc48bd9e7f108 monero-linux-x64-v0.18.4.4.tar.bz2 +8c174b756e104534f3d3a69fe68af66d6dc4d66afa97dfe31735f8d069d20570 monero-linux-x86-v0.18.4.4.tar.bz2 +645e9bbae0275f555b2d72a9aa30d5f382df787ca9528d531521750ce2da9768 monero-mac-armv8-v0.18.4.4.tar.bz2 +af3d98f09da94632db3e2f53c62cc612e70bf94aa5942d2a5200b4393cd9c842 monero-mac-x64-v0.18.4.4.tar.bz2 +7eb3b87a105b3711361dd2b3e492ad14219d21ed8fd3dd726573a6cbd96e83a6 monero-win-x64-v0.18.4.4.zip +a148a2bd2b14183fb36e2cf917fce6f33fb687564db2ed53193b8432097ab398 monero-win-x86-v0.18.4.4.zip +84570eee26238d8f686605b5e31d59569488a3406f32e7045852de91f35508a2 monero-source-v0.18.4.4.tar.bz2 +# +## GUI +4c81c8e97bd542daa453776d888557db1ceb2a718d43f6135ad68b12c8119948 monero-gui-install-win-x64-v0.18.4.4.exe +e45cb3fa9d972d67628cfed6463fb7604ae1414a11ba449f5e2f901c769ac788 monero-gui-linux-x64-v0.18.4.4.tar.bz2 +a6f071719c401df339dba2d43ec6fffe103fda3e1df46f354b2496f34bb61cc4 monero-gui-mac-armv8-v0.18.4.4.dmg +811df70811a25f31289f24ebc0edc8f7648670384698d4c768bac5c2acbf2026 monero-gui-mac-x64-v0.18.4.4.dmg +b96faa56aa77cabed1f31f3fc9496e756a8da8c1124da2b9cb0b3730a8b6fbd9 monero-gui-win-x64-v0.18.4.4.zip +a7f6b91bc9efaa83173a397614626bf7612123e0017a48f66137ac397f7d19f8 monero-gui-source-v0.18.4.4.tar.bz2 +# +# +# ~binaryFate +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCAAdFiEEgaxZH+nEtlxYBq/D8K9NRioL35IFAmkbGLgACgkQ8K9NRioL +35LWYRAAnPeUu7TADV9Nly2gBlwu7bMK6l7pcUzs3hHhCMpg/Zb7wF8lx4D/r/hT +3wf3gNVK6tYl5GMPpF7GSKvK35SSzNN+8khRd7vhRByG75LGLnrNlcBsQU2wOzUv +Rmm2R8L8GP0B/+zXO92uJDMZ7Q7x72O+3fVX05217HBwz2kvzE1NpXe+EJPnUukA +Tr5CRnxKhxPbilvIhoEHdwkScMZqHMfsbdrefrB3KpO3xEaUz+gO9wESp7nzr4vp +Du6gJYBPK25Z2heZHCRsGN4WQP4QQv4MC0IFczc9fkVDBjywsJeNRRUbGtxR/BNt +vNJGI/kS+7KV140j6GkqAh/leZcaVJ5LRyCaHAwEQNA2T5okhrM0WZpoOAsZMi5K +bW4lNOXfWSw6/tokEPeuoi49yw0f9z0C8a4VLNOZGWKqmHcsA8WE6oVfmvVk6xWu +BqTU1Z9LJqL17GWRAReSX1ZuNA0Q0Pb/klUwP4X2afJcCVZ2YeBNr4jr21u3dYXY +QiLj0Gv7gg7a/GiMpVglNn5GzCu6mT0D94sbMNK+U5Tbve7aOtijJZ8JR62eO/mR +h+oNEys/xEcP9PQ5p74cNL71hNSfWSOcNi+GLSgXC75vsOGr7i96uaamilsHnsYB +p8PZMHzOf1pi6i/L5oOEuRgaujd9IjyCbxoYh3bbxxjBOhNEMqU= +=CVLA +-----END PGP SIGNATURE----- diff --git a/orchestration/testnet/networks/monero/run.sh b/orchestration/testnet/networks/monero/run.sh index baf28785..3a64999f 100755 --- a/orchestration/testnet/networks/monero/run.sh +++ b/orchestration/testnet/networks/monero/run.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e RPC_USER="${RPC_USER:=serai}" RPC_PASS="${RPC_PASS:=seraidex}" @@ -7,5 +8,5 @@ RPC_PASS="${RPC_PASS:=seraidex}" monerod --non-interactive --stagenet \ --no-zmq --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18081 --confirm-external-bind \ --rpc-access-control-origins "*" --disable-rpc-ban \ - --rpc-login=$RPC_USER:$RPC_PASS \ + --rpc-login="$RPC_USER":"$RPC_PASS" \ --data-dir=/volume diff --git a/orchestration/testnet/serai/run.sh b/orchestration/testnet/serai/run.sh index ab3b59df..a5ddfaac 100755 --- a/orchestration/testnet/serai/run.sh +++ b/orchestration/testnet/serai/run.sh @@ -1,3 +1,4 @@ #!/bin/sh +set -e serai-node --base-path /volume --unsafe-rpc-external --rpc-cors all --chain testnet --validator