diff --git a/src/main/resources/i18n/ApiError_de.properties b/src/main/resources/i18n/ApiError_de.properties index 8f5bffeb..f00c2b45 100644 --- a/src/main/resources/i18n/ApiError_de.properties +++ b/src/main/resources/i18n/ApiError_de.properties @@ -4,52 +4,52 @@ # "localeLang": "de", ### Common ### -JSON = JSON Nachricht konnte nicht geparst werden +JSON = JSON-Nachricht konnte nicht geparst werden -INSUFFICIENT_BALANCE = Kein Ausgleich +INSUFFICIENT_BALANCE = Guthaben reicht nicht aus UNAUTHORIZED = API-Aufruf nicht autorisiert REPOSITORY_ISSUE = Repository-Fehler -NON_PRODUCTION = Dieser APi-Aufruf ist nicht gestattet für Produtkion +NON_PRODUCTION = dieser API-Aufruf ist für Produktionssysteme nicht gestattet -BLOCKCHAIN_NEEDS_SYNC = Blockchain muss sich erst verbinden +BLOCKCHAIN_NEEDS_SYNC = Blockchain muss sich erst synchronisieren -NO_TIME_SYNC = noch keine Uhrensynchronisation +NO_TIME_SYNC = Uhrzeit noch nicht synchronisiert ### Validation ### -INVALID_SIGNATURE = ungültige Signatur +INVALID_SIGNATURE = Signatur ungültig -INVALID_ADDRESS = ungültige Adresse +INVALID_ADDRESS = Adresse ungültig -INVALID_PUBLIC_KEY = ungültiger public key +INVALID_PUBLIC_KEY = öffentlicher Schlüssel ungültig -INVALID_DATA = ungültige Daten +INVALID_DATA = Daten ungültig -INVALID_NETWORK_ADDRESS = ungültige Netzwerk Adresse +INVALID_NETWORK_ADDRESS = Netzwerk Adresse ungültig -ADDRESS_UNKNOWN = Account Adresse unbekannt +ADDRESS_UNKNOWN = Kontoadresse unbekannt -INVALID_CRITERIA = ungültige Suchkriterien +INVALID_CRITERIA = Suchkriterien ungültig -INVALID_REFERENCE = ungültige Referenz +INVALID_REFERENCE = Referenz ungültig TRANSFORMATION_ERROR = konnte JSON nicht in eine Transaktion umwandeln -INVALID_PRIVATE_KEY = ungültiger private key +INVALID_PRIVATE_KEY = öffentlicher Schlüssel ungültig -INVALID_HEIGHT = ungültige block height +INVALID_HEIGHT = Blockhöhe ungültig -CANNOT_MINT = Account kann nicht minten +CANNOT_MINT = Konto kann nicht prägen ### Blocks ### -BLOCK_UNKNOWN = block unbekannt +BLOCK_UNKNOWN = Block unbekannt ### Transactions ### TRANSACTION_UNKNOWN = Transaktion unbekannt -PUBLIC_KEY_NOT_FOUND = public key wurde nicht gefunden +PUBLIC_KEY_NOT_FOUND = öffentlicher Schlüssel wurde nicht gefunden # this one is special in that caller expected to pass two additional strings, hence the two %s TRANSACTION_INVALID = Transaktion ungültig: %s (%s) @@ -58,19 +58,19 @@ TRANSACTION_INVALID = Transaktion ungültig: %s (%s) NAME_UNKNOWN = Name unbekannt ### Asset ### -INVALID_ASSET_ID = ungültige asset ID +INVALID_ASSET_ID = Vermögenswert-Kennung ungültig -INVALID_ORDER_ID = ungültige asset order ID +INVALID_ORDER_ID = Vermögenswert-Auftragssnummer ungültig -ORDER_UNKNOWN = unbekannte asset order ID +ORDER_UNKNOWN = Vermögenswert-Auftragssnummer unbekannt ### Groups ### GROUP_UNKNOWN = Gruppe unbekannt ### Foreign Blockchain ### -FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = fremde Blockchain oder ElectrumX Netzwerk Problem +FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = fremde Blockchain oder ElectrumX Netzwerkproblem -FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = unzureichend Bilanz auf fremde blockchain +FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = unzureichendes Guthaben auf fremder blockchain FOREIGN_BLOCKCHAIN_TOO_SOON = zu früh um fremde Blockchain-Transaktionen zu übertragen (Sperrzeit/mittlere Blockzeit) @@ -80,4 +80,4 @@ ORDER_SIZE_TOO_SMALL = Bestellmenge zu niedrig ### Data ### FILE_NOT_FOUND = Datei nicht gefunden -NO_REPLY = Peer hat nicht mit Daten verbinden +NO_REPLY = Peer hat nicht in vorgegebener Zeit geantwortet diff --git a/src/main/resources/i18n/SysTray_de.properties b/src/main/resources/i18n/SysTray_de.properties index 7fa041b3..c92130f1 100644 --- a/src/main/resources/i18n/SysTray_de.properties +++ b/src/main/resources/i18n/SysTray_de.properties @@ -1,7 +1,7 @@ #Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/) # SysTray pop-up menu -APPLYING_UPDATE_AND_RESTARTING = Automatisches Update anwenden und neu starten … +APPLYING_UPDATE_AND_RESTARTING = Automatisches Update anwenden und neu starten... AUTO_UPDATE = Automatisches Update @@ -19,7 +19,7 @@ CONNECTION = Verbindung CONNECTIONS = Verbindungen -CREATING_BACKUP_OF_DB_FILES = Erstellen Backup von Datenbank Dateien … +CREATING_BACKUP_OF_DB_FILES = Erstelle Backup von Datenbank Dateien... DB_BACKUP = Datenbank Backup @@ -31,18 +31,18 @@ EXIT = Verlassen LITE_NODE = Lite node -MINTING_DISABLED = Kein minting +MINTING_DISABLED = Münzprägung inaktiv -MINTING_ENABLED = \u2714 Minting aktiviert +MINTING_ENABLED = \u2714 Münzprägung aktiv -OPEN_UI = Öffne UI +OPEN_UI = Öffne Benutzeroberfläche -PERFORMING_DB_CHECKPOINT = Speichern von unbestätigten Datenbankänderungen... +PERFORMING_DB_CHECKPOINT = Speichere unerfasste Datenbankänderungen... -PERFORMING_DB_MAINTENANCE = Planmäßige Wartung durchführen... +PERFORMING_DB_MAINTENANCE = Planmäßige Wartung wird durchgeführt... -SYNCHRONIZE_CLOCK = Synchronisiere Uhr +SYNCHRONIZE_CLOCK = Synchronisiere Uhrzeit -SYNCHRONIZING_BLOCKCHAIN = Synchronisierung der Blockchain +SYNCHRONIZING_BLOCKCHAIN = Synchronisiere -SYNCHRONIZING_CLOCK = Synchronisierung der Uhr +SYNCHRONIZING_CLOCK = Uhrzeit wird synchronisiert diff --git a/src/main/resources/i18n/TransactionValidity_de.properties b/src/main/resources/i18n/TransactionValidity_de.properties index 1827482b..eab7fb9e 100644 --- a/src/main/resources/i18n/TransactionValidity_de.properties +++ b/src/main/resources/i18n/TransactionValidity_de.properties @@ -1,60 +1,60 @@ # -ACCOUNT_ALREADY_EXISTS = Account existiert bereits +ACCOUNT_ALREADY_EXISTS = Konto existiert bereits -ACCOUNT_CANNOT_REWARD_SHARE = Account kann keine Belohnung teilen +ACCOUNT_CANNOT_REWARD_SHARE = Konto kann nicht an Belohnungsbeteiligung teilnehmen -ADDRESS_ABOVE_RATE_LIMIT = address hat das angegebene Geschwindigkeitlimit erreicht +ADDRESS_ABOVE_RATE_LIMIT = Adresse hat festgelegtes Tarif-Limit erreicht -ADDRESS_BLOCKED = Addresse ist geblockt +ADDRESS_BLOCKED = diese Adresse ist gesperrt -ALREADY_GROUP_ADMIN = bereits Gruppen Admin +ALREADY_GROUP_ADMIN = bereits Gruppenadmin -ALREADY_GROUP_MEMBER = bereits Gruppen Mitglied +ALREADY_GROUP_MEMBER = bereits Gruppenmitglied ALREADY_VOTED_FOR_THAT_OPTION = bereits für diese Option gestimmt -ASSET_ALREADY_EXISTS = asset existiert bereits +ASSET_ALREADY_EXISTS = Vermögenswert existiert bereits -ASSET_DOES_NOT_EXIST = asset nicht gefunden +ASSET_DOES_NOT_EXIST = Vermögenswert existiert nicht -ASSET_DOES_NOT_MATCH_AT = asset passt nicht mit AT's asset +ASSET_DOES_NOT_MATCH_AT = Vermögenswert stimmt nicht mit dem Vermögenswert von AT überein -ASSET_NOT_SPENDABLE = asset ist nicht ausgabefähig +ASSET_NOT_SPENDABLE = Vermögenswert ist nicht auszahlbar AT_ALREADY_EXISTS = AT existiert bereits -AT_IS_FINISHED = AT ist fertig +AT_IS_FINISHED = AT ist beendet -AT_UNKNOWN = AT unbekannt +AT_UNKNOWN = AT unbekannt -BAN_EXISTS = ban besteht bereits +BAN_EXISTS = Bann ist bereits vorhanden -BAN_UNKNOWN = ban unbekannt +BAN_UNKNOWN = Bann unbekannt -BANNED_FROM_GROUP = von der gruppe gebannt +BANNED_FROM_GROUP = aus der Gruppe verbannt -BUYER_ALREADY_OWNER = Käufer ist bereits Besitzer +BUYER_ALREADY_OWNER = Käufer ist bereits Eigentümer -CLOCK_NOT_SYNCED = Uhr nicht synchronisiert +CLOCK_NOT_SYNCED = Uhrzeit ist nicht synchronisiert -DUPLICATE_MESSAGE = Adresse sendete doppelte Nachricht +DUPLICATE_MESSAGE = Adresse hat doppelte Nachricht gesendet -DUPLICATE_OPTION = Duplizierungsmöglichkeit +DUPLICATE_OPTION = doppelte Option -GROUP_ALREADY_EXISTS = Gruppe besteht bereits +GROUP_ALREADY_EXISTS = Gruppe existiert bereits -GROUP_APPROVAL_DECIDED = Gruppenfreigabe bereits beschlossen +GROUP_APPROVAL_DECIDED = Gruppenzulassung bereits beschlossen -GROUP_APPROVAL_NOT_REQUIRED = Gruppenfreigabe nicht erforderlich +GROUP_APPROVAL_NOT_REQUIRED = Gruppenzustimmung nicht erforderlich -GROUP_DOES_NOT_EXIST = Gruppe nicht vorhanden +GROUP_DOES_NOT_EXIST = Gruppe existiert nicht GROUP_ID_MISMATCH = Gruppen-ID stimmt nicht überein -GROUP_OWNER_CANNOT_LEAVE = Gruppenbesitzer kann Gruppe nicht verlassen +GROUP_OWNER_CANNOT_LEAVE = Gruppeneigentümer kann Gruppe nicht verlassen -HAVE_EQUALS_WANT = das bessesene-asset ist das selbe wie das gesuchte-asset +HAVE_EQUALS_WANT = Haben-Vermögenswert ist derselbe wie Wollen-Vermögenswert INCORRECT_NONCE = falsche PoW-Nonce @@ -64,81 +64,81 @@ INVALID_ADDRESS = ungültige Adresse INVALID_AMOUNT = ungültiger Betrag -INVALID_ASSET_OWNER = Ungültiger Eigentümer +INVALID_ASSET_OWNER = ungültiger Vermögenswert-Eigentümer INVALID_AT_TRANSACTION = ungültige AT-Transaktion -INVALID_AT_TYPE_LENGTH = ungültige AT 'Typ' Länge +INVALID_AT_TYPE_LENGTH = ungültige AT-Typ-Länge -INVALID_BUT_OK = ungültig aber OK +INVALID_BUT_OK = ungültig, aber OK -INVALID_CREATION_BYTES = ungültige Erstellungs der bytes +INVALID_CREATION_BYTES = ungültige Erstellungsbytes -INVALID_DATA_LENGTH = ungültige Datenlänge +INVALID_DATA_LENGTH = unzulässige Datenlänge -INVALID_DESCRIPTION_LENGTH = ungültige Länge der Beschreibung +INVALID_DESCRIPTION_LENGTH = unzulässige Länge der Beschreibung INVALID_GROUP_APPROVAL_THRESHOLD = ungültiger Schwellenwert für die Gruppenzulassung -INVALID_GROUP_BLOCK_DELAY = Ungültige Blockverzögerung der Gruppenfreigabe +INVALID_GROUP_BLOCK_DELAY = ungültige Blockverzögerung bei der Gruppenfreigabe INVALID_GROUP_ID = ungültige Gruppen-ID -INVALID_GROUP_OWNER = ungültiger Gruppenbesitzer +INVALID_GROUP_OWNER = ungültiger Gruppeneigentümer -INVALID_LIFETIME = unzulässige Lebensdauer +INVALID_LIFETIME = unzulässige Gültigkeitsdauer INVALID_NAME_LENGTH = ungültige Namenslänge -INVALID_NAME_OWNER = ungültiger Besitzername +INVALID_NAME_OWNER = ungültiger Eigentümer des Namens INVALID_OPTION_LENGTH = ungültige Länge der Optionen -INVALID_OPTIONS_COUNT = Anzahl ungültiger Optionen +INVALID_OPTIONS_COUNT = ungültige Anzahl von Optionen INVALID_ORDER_CREATOR = ungültiger Auftragsersteller -INVALID_PAYMENTS_COUNT = Anzahl ungültiger Zahlungen +INVALID_PAYMENTS_COUNT = ungültige Anzahl der Zahlungen INVALID_PUBLIC_KEY = ungültiger öffentlicher Schlüssel -INVALID_QUANTITY = unzulässige Menge +INVALID_QUANTITY = ungültige Menge INVALID_REFERENCE = ungültige Referenz INVALID_RETURN = ungültige Rückgabe -INVALID_REWARD_SHARE_PERCENT = ungültig Prozent der Belohnunganteile +INVALID_REWARD_SHARE_PERCENT = ungültiger Belohnungsbeteiligungs-Anteil -INVALID_SELLER = unzulässiger Verkäufer +INVALID_SELLER = ungültiger Verkäufer INVALID_TAGS_LENGTH = ungültige 'tags'-Länge -INVALID_TIMESTAMP_SIGNATURE = Ungültige Zeitstempel-Signatur +INVALID_TIMESTAMP_SIGNATURE = ungültige Zeitstempel-Signatur -INVALID_TX_GROUP_ID = Ungültige Transaktionsgruppen-ID +INVALID_TX_GROUP_ID = ungültige Transaktionsgruppen-ID -INVALID_VALUE_LENGTH = ungültige 'Wert'-Länge +INVALID_VALUE_LENGTH = ungültige 'value'-Länge INVITE_UNKNOWN = Gruppeneinladung unbekannt -JOIN_REQUEST_EXISTS = Gruppeneinladung existiert bereits +JOIN_REQUEST_EXISTS = Gruppenverbindungsanfrage existiert bereits -MAXIMUM_REWARD_SHARES = die maximale Anzahl von Reward-Shares für dieses Konto erreicht +MAXIMUM_REWARD_SHARES = maximale Anzahl von Belohnungsbeteiligungen für dieses Konto bereits erreicht MISSING_CREATOR = fehlender Ersteller -MULTIPLE_NAMES_FORBIDDEN = mehrere registrierte Namen pro Konto sind untersagt +MULTIPLE_NAMES_FORBIDDEN = mehrere registrierte Namen pro Konto sind verboten -NAME_ALREADY_FOR_SALE = Name bereits zum Verkauf +NAME_ALREADY_FOR_SALE = Name steht bereits zum Verkauf NAME_ALREADY_REGISTERED = Name bereits registriert -NAME_BLOCKED = Name geblockt +NAME_BLOCKED = dieser Name ist gesperrt -NAME_DOES_NOT_EXIST = Name nicht vorhanden +NAME_DOES_NOT_EXIST = Name existiert nicht -NAME_NOT_FOR_SALE = Name ist unverkäuflich +NAME_NOT_FOR_SALE = Name steht nicht zum Verkauf NAME_NOT_NORMALIZED = Name nicht in Unicode-'normalisierter' Form @@ -150,46 +150,46 @@ NEGATIVE_PRICE = ungültiger/negativer Preis NO_BALANCE = unzureichendes Guthaben -NO_BLOCKCHAIN_LOCK = die Blockchain des Knotens ist beschäftigt +NO_BLOCKCHAIN_LOCK = die Blockchain des Knotens ist derzeit beschäftigt NO_FLAG_PERMISSION = Konto hat diese Berechtigung nicht -NOT_GROUP_ADMIN = Account ist kein Gruppenadmin +NOT_GROUP_ADMIN = Konto ist kein Gruppenadmin -NOT_GROUP_MEMBER = Account kein Gruppenmitglied +NOT_GROUP_MEMBER = Konto ist kein Gruppenmitglied -NOT_MINTING_ACCOUNT = Account kann nicht minten +NOT_MINTING_ACCOUNT = Konto kann nicht prägen NOT_YET_RELEASED = Funktion noch nicht freigegeben OK = OK -ORDER_ALREADY_CLOSED = Asset Trade Order ist bereits geschlossen +ORDER_ALREADY_CLOSED = Vermögenswert-Handelsauftrag ist bereits geschlossen -ORDER_DOES_NOT_EXIST = asset trade order existiert nicht +ORDER_DOES_NOT_EXIST = Vermögenswert-Handelsauftrag existiert nicht -POLL_ALREADY_EXISTS = Umfrage bereits vorhanden +POLL_ALREADY_EXISTS = Umfrage existiert bereits -POLL_DOES_NOT_EXIST = Umfrage nicht vorhanden +POLL_DOES_NOT_EXIST = Umfrage existiert nicht -POLL_OPTION_DOES_NOT_EXIST = Umfrageoption existiert nicht +POLL_OPTION_DOES_NOT_EXIST = Umfrageoption nicht vorhanden PUBLIC_KEY_UNKNOWN = öffentlicher Schlüssel unbekannt -REWARD_SHARE_UNKNOWN = Geteilte Belohnungen unbekant +REWARD_SHARE_UNKNOWN = Belohnungsbeteiligung unbekannt -SELF_SHARE_EXISTS = Selbstbeteiligung (Geteilte Belohnungen) sind breits vorhanden +SELF_SHARE_EXISTS = Selbst-Beteiligung (Belohnungsbeteiligung) existiert bereits TIMESTAMP_TOO_NEW = Zeitstempel zu neu TIMESTAMP_TOO_OLD = Zeitstempel zu alt -TOO_MANY_UNCONFIRMED = Account hat zu viele unbestätigte Transaktionen am laufen +TOO_MANY_UNCONFIRMED = Konto hat zu viele ausstehende unbestätigte Transaktionen -TRANSACTION_ALREADY_CONFIRMED = Transaktionen sind bereits bestätigt +TRANSACTION_ALREADY_CONFIRMED = Transaktion wurde bereits bestätigt -TRANSACTION_ALREADY_EXISTS = Transaktionen existiert bereits +TRANSACTION_ALREADY_EXISTS = Transaktion existiert bereits -TRANSACTION_UNKNOWN = Unbekante Transaktion +TRANSACTION_UNKNOWN = Transaktion unbekannt -TX_GROUP_ID_MISMATCH = Transaktion Gruppen ID stimmt nicht überein +TX_GROUP_ID_MISMATCH = die Gruppen-ID der Transaktion stimmt nicht überein diff --git a/tools/qdn b/tools/qdn index ea52e3c9..b8f58141 100755 --- a/tools/qdn +++ b/tools/qdn @@ -5,10 +5,10 @@ host="localhost" port=12391 if [ -z "$*" ]; then - echo "Usage:" + echo "Usage:" echo echo "Host/update data:" - echo "qdn POST [service] [name] PATH [dirpath] " + echo "qdn POST [service] [name] PATH [dirpath] <description> <tags=tag1,tag2,tag3> <category> <fee> <preview (true or false)>" echo "qdn POST [service] [name] STRING [data-string] <identifier>" echo echo "Fetch data:" @@ -22,6 +22,21 @@ if [ -z "$*" ]; then exit fi + +# Default ports for Qortal +mainnet_port=12391 +testnet_port=62391 + +# Check if the '-t' operator is passed, if so change to utilizing testnet. +if [[ "$1" == "-t" ]]; then + # Use testnet port + port=$testnet_port + shift +else + # Use mainnet port + port=$mainnet_port +fi + script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) if [ -f "apikey.txt" ]; then @@ -37,32 +52,46 @@ service=$2 name=$3 if [ -z "${method}" ]; then - echo "Error: missing method"; exit + echo "Error: missing method" + exit 1 fi if [ -z "${service}" ]; then - echo "Error: missing service"; exit + echo "Error: missing service" + exit 1 fi if [ -z "${name}" ]; then - echo "Error: missing name"; exit + echo "Error: missing name" + exit 1 fi - if [[ "${method}" == "POST" ]]; then type=$4 data=$5 identifier=$6 + title=$7 + description=$8 + tags=$9 + category=${10} + fee=${11} + preview=${12} + + if [ -z "${data}" ]; then if [[ "${type}" == "PATH" ]]; then - echo "Error: missing directory"; exit + echo "Error: missing directory - please use a path to a directory with a SINGLE file wishing to be published" + exit 1 elif [[ "${type}" == "STRING" ]]; then - echo "Error: missing data string"; exit + echo "Error: missing data string - please input the data string you wish to publish" + exit 1 else - echo "Error: unrecognized type"; exit + echo "Error: unrecognized type" + exit 1 fi fi if [ -z "${QORTAL_PRIVKEY}" ]; then - echo "Error: missing private key. Set it by running: export QORTAL_PRIVKEY=privkeyhere"; exit + echo "Error: missing private key. Set it by running: export QORTAL_PRIVKEY=privkeyhere" + exit 1 fi if [ -z "${identifier}" ]; then @@ -75,30 +104,88 @@ if [[ "${method}" == "POST" ]]; then elif [[ "${type}" == "STRING" ]]; then type_component="/string" fi + + # Create tags component in URL, comma-separated list of tags, will be added to the tags call. + tags_component="" + if [ -n "${tags}" ]; then + IFS=',' read -ra tag_array <<< "${tags}" + for tag in "${tag_array[@]}"; do + tags_component+="&tags=${tag}" + done + fi + + if [ -z ${tags_component} ]; then + tags_component="" + echo "nothing in tags, using empty tags" + fi + + #Create category component with pre-defined list of categories. Error if category is specified but not in list. + allowed_categories=("ART" "AUTOMOTIVE" "BEAUTY" "BOOKS" "BUSINESS" "COMMUNICATIONS" "CRYPTOCURRENCY" "CULTURE" "DATING" "DESIGN" "ENTERTAINMENT" "EVENTS" "FAITH" "FASHION" "FINANCE" "FOOD" "GAMING" "GEOGRAPHY" "HEALTH" "HISTORY" "HOME" "KNOWLEDGE" "LANGUAGE" "LIFESTYLE" "MANUFACTURING" "MAPS" "MUSIC" "NEWS" "OTHER" "PETS" "PHILOSOPHY" "PHOTOGRAPHY" "POLITICS" "PRODUCE" "PRODUCTIVITY" "PSYCHOLOGY" "QORTAL" "SCIENCE" "SELF_CARE" "SELF_SUFFICIENCY" "SHOPPING" "SOCIAL" "SOFTWARE" "SPIRITUALITY" "SPORTS" "STORYTELLING" "TECHNOLOGY" "TOOLS" "TRAVEL" "UNCATEGORIZED" "VIDEO" "WEATHER") + + if [[ -n "$category" && ! " ${allowed_categories[@]} " =~ " $category " ]]; then + echo "Error: Invalid category. Allowed categories are: ${allowed_categories[*]} be sure to place your overall script inputs in the correct order" + exit 1 + elif [ -z "$category" ]; then + category="" + echo "No category is being set" + fi + + if [ -n "$fee" ]; then + if [[ "$fee" == "1" || "$fee" == ".01" ]]; then + fee="1000000" + elif [ -z "$fee" ]; then + fee="" + else + echo "Error: Invalid fee value. Expected '1', '.01' or no input." + exit 1 + fi + final_fee="${fee}" + fi + + + # check that preview is true/false + if [[ -n "$preview" && ! ( "$preview" == "true" || "$preview" == "false" ) ]]; then + echo "Error: Invalid preview value. Expected 'true' or 'false'. Please retry with boolean as preview entry." + exit 1 + elif [ -z "$preview" ]; then + preview="" + fi + + # Build the API URL + api_url="http://${host}:${port}/arbitrary/${service}/${name}/${identifier}${type_component}" + api_url+="?title=${title}&description=${description}&tags=${tags_component}&category=${category}&fee=${final_fee}&preview=${preview}" + echo "Creating transaction - this can take a while..." - tx_data=$(curl --silent --insecure -X ${method} "http://${host}:${port}/arbitrary/${service}/${name}/${identifier}${type_component}" -H "X-API-KEY: ${apikey}" -d "${data}") + tx_data=$(curl --silent --insecure -X ${method} "${api_url}" -H "accept: text/plain" -H "X-API-KEY: ${apikey}" -H "Content-Type: text/plain" -d "${data}") if [[ "${tx_data}" == *"error"* || "${tx_data}" == *"ERROR"* ]]; then - echo "${tx_data}"; exit + echo "Error creating transaction: ${tx_data}" + exit 1 elif [ -z "${tx_data}" ]; then - echo "Error: no transaction data returned"; exit + echo "Error: no transaction data returned" + exit 1 fi echo "Computing nonce..." computed_tx_data=$(curl --silent --insecure -X POST "http://${host}:${port}/arbitrary/compute" -H "Content-Type: application/json" -H "X-API-KEY: ${apikey}" -d "${tx_data}") + if [[ "${computed_tx_data}" == *"error"* || "${computed_tx_data}" == *"ERROR"* ]]; then - echo "${computed_tx_data}"; exit + echo "Error computing nonce: ${computed_tx_data}" + exit 1 fi echo "Signing..." signed_tx_data=$(curl --silent --insecure -X POST "http://${host}:${port}/transactions/sign" -H "Content-Type: application/json" -d "{\"privateKey\":\"${QORTAL_PRIVKEY}\",\"transactionBytes\":\"${computed_tx_data}\"}") + if [[ "${signed_tx_data}" == *"error"* || "${signed_tx_data}" == *"ERROR"* ]]; then - echo "${signed_tx_data}"; exit + echo "Error signing transaction: ${signed_tx_data}" + exit 1 fi echo "Broadcasting..." success=$(curl --silent --insecure -X POST "http://${host}:${port}/transactions/process" -H "Content-Type: text/plain" -d "${signed_tx_data}") + if [[ "${success}" == "true" ]]; then echo "Transaction broadcast successfully" else @@ -131,9 +218,10 @@ elif [[ "${method}" == "GET" ]]; then echo "Empty response from ${host}:${port}" fi if [[ "${response}" == *"error"* || "${response}" == *"ERROR"* ]]; then - echo "${response}"; exit + echo "${response}" + exit 1 fi echo "${response}" - fi +