From 053bcaf90ad20fad37c06f17d15d2c3e0a82544d Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Tue, 25 Jun 2024 18:14:19 -0600 Subject: [PATCH 01/16] Fix one of the marker tx proto links that had a double slash. --- x/marker/spec/03_messages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/marker/spec/03_messages.md b/x/marker/spec/03_messages.md index 2377c1efd2..6c3ec2be72 100644 --- a/x/marker/spec/03_messages.md +++ b/x/marker/spec/03_messages.md @@ -334,7 +334,7 @@ SupplyIncreaseProposal is a governance-only message for increasing the supply of +++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L229-L239 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1//tx.proto#L241-L242 ++++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L241-L242 This service message is expected to fail if: From 7c111f0e42f76a8f86fe8d297fc7092f360eb3ac Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Thu, 27 Jun 2024 14:23:37 -0600 Subject: [PATCH 02/16] Create the beginnings of a script that will update links. It currently just has argument parsing and file identification. --- scripts/update-spec-links.sh | 163 +++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100755 scripts/update-spec-links.sh diff --git a/scripts/update-spec-links.sh b/scripts/update-spec-links.sh new file mode 100755 index 0000000000..250d7bfe50 --- /dev/null +++ b/scripts/update-spec-links.sh @@ -0,0 +1,163 @@ +#!/usr/bin/env bash +# This script will update all the proto reference links in our spec docs. + +show_usage () { + cat << EOF +This script will update all the proto reference links in our spec docs. + +Usage: ./update-spec-links.sh [--source ] [ ...] + +This script will identify the desired content of the links and update both the ref and line numbers in each link. + +The can be a branch, tag, or commit. It is used for the update links and is the single part of the url after '/blob/...' + +By default the currently checked-out proto files are used to identify the line numbers. +To use a different version for the source, provide the --source option. + can be a branch, tag, or commit. + +By default, this will update all files under the current directory (recusively). +To limit this update to specific files or directories (recursively), provide them as extra arguments. + +Example proto reference link line: ++++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/marker.proto#L14-L25 + +In this example, the is '22740319ba4b3ba268b3720d4bee36d6c6b06b40'. + +TODO: document how this identifies the desired content of a link. + +EOF + +} + +declare files_in=() +declare dirs_in=() + +while [[ "$#" -gt '0' ]]; do + case "$1" in + -h|--help|help) + show_usage + exit 0 + ;; + -s|--source|--source-ref) + if [[ -z "$2" ]]; then + printf 'No argument provided after %s.\n' "$1" + exit 1 + fi + source_ref="$2" + shift + ;; + -r|--ref) + if [[ -z "$2" ]]; then + printf 'No argument provided after %s.\n' "$1" + exit 1 + fi + ref="$1" + ;; + -q|--quiet) + quiet='YES' + verbose='' + ;; + --not-quiet) + quiet='' + ;; + -v|--verbose) + verbose='YES' + quiet='' + ;; + --not-verbose) + verbose='' + ;; + *) + if [[ -z "$ref" ]]; then + ref="$1" + elif [[ -d "$1" ]]; then + dirs_in+=( "$1" ) + elif [[ -f "$1" ]]; then + files_in+=( "$1" ) + else + printf 'File or directory not found: %s\n' "$1" + stop_early='YES' + fi + ;; + esac + shift +done + +if [[ -z "$ref" ]]; then + printf 'No ref provided.\n' + exit 1 +fi + +if [[ -n "$stop_early" ]]; then + exit 1 +fi + +if [[ -n "$verbose" ]]; then + if [[ "${#files_in[@]}" -eq '0' ]]; then + printf 'No files provided.\n' + else + printf 'Files provided (%d):\n' "${#files_in[@]}" + printf ' %s\n' "${files_in[@]}" + fi + if [[ "${#dirs_in[@]}" -eq '0' ]]; then + printf 'No directories provided.\n' + else + printf 'Directories provided (%d):\n' "${#dirs_in[@]}" + printf ' %s\n' "${dirs_in[@]}" + fi +fi + +declare files=() + +if [[ "${#files_in[@]}" -eq '0' && "${#dirs_in[@]}" -eq '0' ]]; then + dirs_in+=( '.' ) +fi + +for file in "${files_in[@]}"; do + [[ -n "$verbose" ]] && printf 'Checking file: %s ... ' "$file" + if grep -E --no-messages --binary-file=without-match --silent '^\+\+\+ ' "$file" > /dev/null 2>&1; then + files+=( "$file" ) + [[ -n "$verbose" ]] && printf 'File has links.\n' + else + if [[ -n "$verbose" ]]; then + printf 'No links found.\n' + elif [[ -z "$quiet" ]]; then + printf 'File does not have any links: %s\n' "$file" + fi + fi +done + +for folder in "${dirs_in[@]}"; do + [[ -n "$verbose" ]] && printf 'Checking directory for files with links: %s ... ' "$folder" + set -o noglob + declare new_files=() + IFS=$'\n' new_files+=( $( grep -E --files-with-matches --recursive --no-messages --binary-file=without-match '^\+\+\+ ' "$folder" | sort ) ) + set +o noglob + if [[ "${#new_files[@]}" -ne '0' ]]; then + [[ -n "$verbose" ]] && printf 'Found %d file(s) with links:\n' "${#new_files[@]}" + for file in "${new_files[@]}"; do + [[ -n "$verbose" ]] && printf ' %s' "$file" + if [[ "$file" =~ \.md$ ]]; then + files+=( "$file" ) + [[ -n "$verbose" ]] && printf '\n' + else + [[ -n "$verbose" ]] && printf ' (ignored, not a markdown file)\n' + fi + done + else + if [[ -n "$verbose" ]]; then + printf 'None found.\n' + elif [[ -z "$quiet" ]]; then + printf 'Directory does not have any files with links: %s\n' "$folder" + fi + fi +done + +file_count="${#files[@]}" + +if [[ "$file_count" -eq '0' ]]; then + printf 'No files found to update.\n' + exit 0 +fi + +[[ -z "$quiet" ]] && printf 'Updating links in %d file(s).\n' "$file_count" From 2a7fb0f76102ef920bd76c95fffefdb3b2b90276 Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Thu, 27 Jun 2024 16:31:42 -0600 Subject: [PATCH 03/16] Add stuff that identifies all the needed proto files and copies/downloads them into a temp dir. --- scripts/update-spec-links.sh | 129 ++++++++++++++++++++++++++++++++--- 1 file changed, 119 insertions(+), 10 deletions(-) diff --git a/scripts/update-spec-links.sh b/scripts/update-spec-links.sh index 250d7bfe50..a9a21d9842 100755 --- a/scripts/update-spec-links.sh +++ b/scripts/update-spec-links.sh @@ -67,6 +67,9 @@ while [[ "$#" -gt '0' ]]; do --not-verbose) verbose='' ;; + --no-clean|--no-cleanup) + no_clean='YES' + ;; *) if [[ -z "$ref" ]]; then ref="$1" @@ -107,15 +110,22 @@ if [[ -n "$verbose" ]]; then fi fi +######################################################################################################################## +######################################## Identify files that will be updated. ######################################## +######################################################################################################################## + +link_rx='^\+\+\+ https://github\.com/provenance-io/provenance' declare files=() if [[ "${#files_in[@]}" -eq '0' && "${#dirs_in[@]}" -eq '0' ]]; then dirs_in+=( '.' ) fi +i=0 for file in "${files_in[@]}"; do - [[ -n "$verbose" ]] && printf 'Checking file: %s ... ' "$file" - if grep -E --no-messages --binary-file=without-match --silent '^\+\+\+ ' "$file" > /dev/null 2>&1; then + i=$(( i + 1 )) + [[ -n "$verbose" ]] && printf '[%d/%d]: Checking file: %s ... ' "$i" "${#files_in[@]}" "$file" + if grep -E --no-messages --binary-file=without-match --silent "$link_rx" "$file" > /dev/null 2>&1; then files+=( "$file" ) [[ -n "$verbose" ]] && printf 'File has links.\n' else @@ -127,16 +137,20 @@ for file in "${files_in[@]}"; do fi done +i=0 for folder in "${dirs_in[@]}"; do - [[ -n "$verbose" ]] && printf 'Checking directory for files with links: %s ... ' "$folder" - set -o noglob + i=$(( i + 1 )) + [[ -n "$verbose" ]] && printf '[%d/%d]: Checking directory for files with links: %s ... ' "$i" "${#dirs_in[@]}" "$folder" declare new_files=() - IFS=$'\n' new_files+=( $( grep -E --files-with-matches --recursive --no-messages --binary-file=without-match '^\+\+\+ ' "$folder" | sort ) ) + set -o noglob + IFS=$'\n' new_files+=( $( grep -E --files-with-matches --recursive --no-messages --binary-file=without-match "$link_rx" "$folder" | sort ) ) set +o noglob if [[ "${#new_files[@]}" -ne '0' ]]; then [[ -n "$verbose" ]] && printf 'Found %d file(s) with links:\n' "${#new_files[@]}" + j=0 for file in "${new_files[@]}"; do - [[ -n "$verbose" ]] && printf ' %s' "$file" + j=$(( j + 1 )) + [[ -n "$verbose" ]] && printf '[%d/%d|%d/%d]: %s' "$i" "${#dirs_in[@]}" "$j" "${#new_files[@]}" "$file" if [[ "$file" =~ \.md$ ]]; then files+=( "$file" ) [[ -n "$verbose" ]] && printf '\n' @@ -153,11 +167,106 @@ for folder in "${dirs_in[@]}"; do fi done -file_count="${#files[@]}" - -if [[ "$file_count" -eq '0' ]]; then +if [[ "${#files[@]}" -eq '0' ]]; then printf 'No files found to update.\n' exit 0 fi -[[ -z "$quiet" ]] && printf 'Updating links in %d file(s).\n' "$file_count" +[[ -z "$quiet" ]] && printf 'Updating links in %d file(s).\n' "${#files[@]}" +[[ -n "$verbose" ]] && printf ' %s\n' "${files[@]}" + +######################################################################################################################## +########################################### Identify proto files involved. ########################################### +######################################################################################################################## + +[[ -n "$verbose" ]] && printf 'Identifying proto files linked to from %d files.\n' "${#files[@]}" + +declare protos_linked=() +i=0 +for file in "${files[@]}"; do + i=$(( i + 1 )) + [[ -n "$verbose" ]] && printf '[%d/%d]: Checking %s ... ' "$i" "${#files[@]}" "$file" + declare new_proto_files=() + set -o noglob + IFS=$'\n' new_proto_files+=( $( grep -E "$link_rx" "$file" | sed 's|^.*/proto/|proto/|; s/#.*$//;' | sort -u ) ) + set +o noglob + if [[ "${#new_proto_files[@]}" -ne '0' ]]; then + [[ -n "$verbose" ]] && printf 'Found %d:\n' "${#new_proto_files[@]}" && printf '[%d/%d]: %s\n' "$i" "${#files[@]}" "${new_proto_files[@]}" + protos_linked+=( "${new_proto_files[@]}" ) + else + [[ -n "$verbose" ]] && printf 'None found.\n' + fi +done + +[[ -n "$verbose" ]] && printf 'All linked protos (with dups) (%d):\n' "${#protos_linked[@]}" +[[ -n "$verbose" ]] && printf ' %s\n' "${protos_linked[@]}" + +# Deduplicate entries linked from multiple files. +declare protos=() +set -o noglob +IFS=$'\n' protos+=( $( printf '%s\n' "${protos_linked[@]}" | sort -u ) ) +set +o noglob + +[[ -n "$verbose" ]] && printf 'All linked protos (no dups) (%d):\n' "${#protos[@]}" +[[ -n "$verbose" ]] && printf ' %s\n' "${protos[@]}" + +######################################################################################################################## +##################################### Put all needed proto files in a temp dir. ###################################### +######################################################################################################################## + +temp_dir="$( mktemp -d -t link-updates )" +[[ -n "$verbose" ]] && printf 'Created temp dir for protos: %s\n' "$temp_dir" + +# Usage: safe_exit [code] +safe_exit () { + local ec + ec="${1:-0}" + + if [[ -n "$temp_dir" && -d "$temp_dir" ]]; then + if [[ -n "$no_clean" ]]; then + [[ -z "$quiet" ]] && printf 'NOT deleting temporary directory: %s\n' "$temp_dir" + else + [[ -n "$verbose" ]] && printf 'Deleting temporary directory: %s\n' "$temp_dir" + rm -rf "$temp_dir" + temp_dir='' + fi + fi + + exit "$ec" +} + +[[ -n "$verbose" ]] && printf 'Getting %d proto files.\n' "${#protos[@]}" + +repo_root="$( git rev-parse --show-toplevel )" + +i=0 +for file in "${protos[@]}"; do + i=$(( i + 1 )) + [[ -n "$verbose" ]] && printf '[%d/%d] Getting: %s ... ' "$i" "${#protos[@]}" "$file" + file_dir="$( dirname "$file" )" + dest_dir="${temp_dir}/${file_dir}" + mkdir -p "$dest_dir" + + if [[ -n "$source_ref" ]]; then + dest_file="${temp_dir}/${file}" + header_file="$dest_file.header" + url="https://raw.githubusercontent.com/provenance-io/provenance/${source_ref}/$file" + [[ -n "$verbose" ]] && printf 'From: %s\n' "$url" + curl --silent -o "$dest_file" --dump-header "$header_file" "$url" + if ! head -n 1 "$header_file" | grep -q '200[[:space:]]*$' > /dev/null 2>&1; then + printf 'Source file not found: %s\n' "$url" + stop_early='YES' + fi + else + [[ -n "$verbose" ]] && printf 'From: %s\n' "$source_file" + source_file="${repo_root}/${file}" + cp "$source_file" "$dest_dir" || stop_early='YES' + fi +done + +if [[ -n "$stop_early" ]]; then + safe_exit 1 +fi + + +safe_exit 0 \ No newline at end of file From 3ae4e90b881790868dc7bd66bd075b4bea774a5b Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Wed, 3 Jul 2024 18:14:28 -0600 Subject: [PATCH 04/16] Identify the messages and their line numbers from the protos, the endpoints and their messages also from the protos, and identify all the links and their messages from the markdown files. --- scripts/identify-endpoints.awk | 85 ++++++++++++++++++ scripts/identify-links.awk | 138 +++++++++++++++++++++++++++++ scripts/identify-messages.awk | 67 +++++++++++++++ scripts/update-spec-links.sh | 153 +++++++++++++++++++++++++++++++-- 4 files changed, 437 insertions(+), 6 deletions(-) create mode 100644 scripts/identify-endpoints.awk create mode 100644 scripts/identify-links.awk create mode 100644 scripts/identify-messages.awk diff --git a/scripts/identify-endpoints.awk b/scripts/identify-endpoints.awk new file mode 100644 index 0000000000..9687e3c578 --- /dev/null +++ b/scripts/identify-endpoints.awk @@ -0,0 +1,85 @@ +# This awk script will process a proto file and output information about endpoint request and response message names. +# Example usage: awk -f identify-endpoints.awk +# To include debugging information in the output, provide these arguments to the awk command: -v debug='1' +# +# Ouptut will have the format: +# rpc::Request:;= +# rpc::Response:;= +# The value will be relative to the repo root directory (e.g. it will start with "proto/"). +# Note that the output has the twice. That makes it so we can find the entry by the start of the line +# and we have exactly what we need to replace it with after the double colons, without any extra special parsing needed. +{ + if (InService!="") { + if (/^}/) { + if (debug!="") { print "DEBUG " FNR ": End of service section."; }; + InService=""; + next; + }; + if (RpcLine!="") { + if (debug!="") { print "DEBUG " FNR ": rpc line continued: " $0; }; + RpcLine=RpcLine " " $0; + } else if (/^[[:space:]]*rpc/) { + if (debug!="") { print "DEBUG " FNR ": rpc line Start: " $0; }; + RpcLine=$0; + } + if (match(RpcLine,/rpc[[:space:]]+[^(]+\([^)]+\)[[:space:]]+returns[[:space:]]+\([^)]+\)/)) { + # Clean up the RpcLine so that it has the format "() returns () ..." + if (debug!="") { print "DEBUG " FNR ": [1/4]: RpcLine: " RpcLine; }; + sub(/^[[:space:]]+rpc[[:space:]]+/,"",RpcLine); + if (debug!="") { print "DEBUG " FNR ": [2/4]: RpcLine: " RpcLine; }; + sub(/[[:space:]]+/," ",RpcLine); + if (debug!="") { print "DEBUG " FNR ": [3/4]: RpcLine: " RpcLine; }; + sub(/[[:space:]]+$/,"",RpcLine); + if (debug!="") { print "DEBUG " FNR ": [4/4]: RpcLine: " RpcLine; }; + + # Extract the endpoint name by deleting everything in the RpcLine after (and including) the first opening paren. + Endpoint=RpcLine; + if (debug!="") { print "DEBUG " FNR ": [1/2] Endpoint: " Endpoint; }; + sub(/\(.*$/,"",Endpoint); + if (debug!="") { print "DEBUG " FNR ": [2/2] Endpoint: " Endpoint; }; + + # Extract the request name by deleting everything before (and including) the first open paren. + # Then delete evertying after (and including) the first closing paren). + Req=RpcLine; + if (debug!="") { print "DEBUG " FNR ": [1/3] Req: " Req; }; + sub(/^[^(]+\(/,"",Req); + if (debug!="") { print "DEBUG " FNR ": [2/3] Req: " Req; }; + sub(/\).*$/,"",Req); + if (debug!="") { print "DEBUG " FNR ": [3/3] Req: " Req; }; + + # Extract the response name by deleting everything before (and including) the open paran after the word "returns". + # Then delete everything after (and including) the first closing paren in what's left. + Resp=RpcLine; + if (debug!="") { print "DEBUG " FNR ": [1/3] Resp: " Resp; }; + sub(/^.*returns[[:space:]]+\(/,"",Resp); + if (debug!="") { print "DEBUG " FNR ": [2/3] Resp: " Resp; }; + sub(/\).*$/,"",Resp); + if (debug!="") { print "DEBUG " FNR ": [3/3] Resp: " Resp; }; + + if (FILENAME=="") { + Source=""; + if (debug!="") { print "DEBUG " FNR ": No FILENAME found. Source: " Source; }; + } else { + Source=FILENAME; + if (debug!="") { print "DEBUG " FNR ": [1/2] Source: " Source; }; + sub(/^.*\/proto\//,"proto/",Source); + if (debug!="") { print "DEBUG " FNR ": [2/2] Source: " Source; }; + } + + # Output a line for the request and response. + # The format of these lines should be ":" where + # matches the format from identify-links.awk output for rpc-lookup lines. + print "rpc:" Endpoint ":Request:" Source ";" Req "=" Source; + print "rpc:" Endpoint ":Response:" Source ";" Resp "=" Source; + RpcLine=""; + } + } else if (/^service /) { + if (debug!="") { print "DEBUG " FNR ": Start of service section."; }; + InService=$0; + if (debug!="") { print "DEBUG " FNR ": [1/3] InService: " InService; }; + sub(/^service[[:space:]]+/,"",InService); + if (debug!="") { print "DEBUG " FNR ": [2/3] InService: " InService; }; + sub(/[[:space:]].*$/,"",InService); + if (debug!="") { print "DEBUG " FNR ": [3/3] InService: " InService; }; + } +} \ No newline at end of file diff --git a/scripts/identify-links.awk b/scripts/identify-links.awk new file mode 100644 index 0000000000..a5fed7e951 --- /dev/null +++ b/scripts/identify-links.awk @@ -0,0 +1,138 @@ +# This awk script will process a markdown file and identify the desired content for each proto link. +# You MUST provide a value for LinkRx when invoking this script. +# Example usage: awk -v LinkRx='^\\+\\+\\+' -f identify-links.awk +# To include debugging information in the output, provide these arguments to the awk command: -v debug='1' +# +# There are several possible formats for output lines: +# * If the message type can be detected: +# :;= +# * If the endpoint is detected, and the link is for the request: +# :;rpc::Request: +# * If the endpoint is detected, and the link is for the response: +# :;rpc::Response: +# * If there is a problem: +# :;ERROR: : +{ + if (FNR==1) { + if (LinkRx=="") { + print FILENAME ":0;ERROR: You must provide a LinkRx value (with -v LinkRx=...) to invoke this script"; + exit 1; + }; + if (debug!="") { print "DEBUG 0: LinkRx='" LinkRx "'"; }; + } + + IsLineOfInterest = (match($0, LinkRx) || /^#/ || /^.*$/,"",Name); + LinkMessage=""; + } else if (LastHeader!="") { + D="="; + Name=LastHeader; + sub(/^#+ /,"",Name); + gsub(/[[:space:]]+/,"",Name); + + if (Name ~ /^(Msg|Query)\//) { + if (debug!="") { print Lead "DEBUG: Identified endpoint entry."; }; + sub(/^(Msg|Query)\//,"",Name); + if (InReq=="" && InResp=="") { + TempReqResp="1"; + if (HaveReq=="") { + if (debug!="") { print Lead "DEBUG: First unlabeled link. Treating it as a request link."; }; + InReq="1"; + InResp=""; + } else if (HaveResp=="") { + if (debug!="") { print Lead "DEBUG: Second unlabeled link. Treating it as a request link."; }; + InReq=""; + InResp="1"; + } else { + if (debug!="") { print Lead "DEBUG: Third+ unlabeled link. Error."; }; + Err="endpoint " Name " already has a request and response"; + }; + }; + }; + + if (InReq!="") { + if (debug!="") { print Lead "DEBUG: In request section."; }; + if (HaveReq=="") { + Name="rpc:" Name ":Request"; + D=":"; + HaveReq="1"; + if (TempReqResp!="") { + InReq=""; + }; + } else { + Err="multiple links found in endpoint " Name " request section"; + }; + } else if (InResp!="") { + if (debug!="") { print Lead "DEBUG: In response section."; }; + if (HaveResp=="") { + Name="rpc:" Name ":Response"; + D=":"; + HaveResp="1"; + LastHeader=""; + if (TempReqResp!="") { + InResp=""; + }; + } else { + Err="multiple links found in endpoint " Name " response section"; + } + } else { + if (debug!="") { print Lead "DEBUG: In normal section."; }; + LastHeader=""; + }; + } else { + Err="could not identify desired content of link"; + }; + + if (Err=="") { + print Lead Name D ProtoFile; + } else { + print Lead "ERROR: " Err ": " $0; + }; + + if (LastHeader=="") { + InReq=""; + HaveReq=""; + InResp=""; + HaveResp=""; + }; + }; +} \ No newline at end of file diff --git a/scripts/identify-messages.awk b/scripts/identify-messages.awk new file mode 100644 index 0000000000..384c8d5b44 --- /dev/null +++ b/scripts/identify-messages.awk @@ -0,0 +1,67 @@ +# This awk script will process a proto file and output all the messages and their starting and ending lines. +# Example usage: awk -f identify-messages.awk +# To include debugging information in the output, provide these arguments to the awk command: -v debug='1' +# +# Each line of output will have the format: +# =#L-L +# The value will be relative to the repo root directory (e.g. it will start with "proto/"). +# +# This file must be in the scripts/ directory so that the update-spec-links.sh script can find it. +{ + if (MsgName!="") { + if (/^}[[:space:]]*$/) { + if (debug!="") { print "DEBUG " FNR ": End of message: " $0; }; + MsgEnd=FNR; + } else { + if (debug!="") { print "DEBUG " FNR ": Still in message: " $0;}; + }; + } else if (/^[[:space:]]*$/) { + if (debug!="") { print "DEBUG " FNR ": Blank line, reset: " $0; }; + MsgName=""; + MsgStart=""; + } else { + if (MsgStart=="") { + MsgStart=FNR; + if (debug!="") { print "DEBUG " FNR ": Setting MsgStart=[" MsgStart "]: " $0; }; + }; + if (/^(message|enum) /) { + # First, remove any line-ending comments, then any internal comments. + if (debug!="") { print "DEBUG " FNR ": [1/3] Line: " $0; }; + sub(/\/\/.*$/,""); + if (debug!="") { print "DEBUG " FNR ": [2/3] Line: " $0; }; + gsub(/\/\*.*(\*\/|$)/,""); + if (debug!="") { print "DEBUG " FNR ": [3/3] Line: " $0; }; + + # Extract the message/enum name from whats left by removing the "message" or "enum" prefix + # and everything after the first space. + MsgName=$0; + if (debug!="") { print "DEBUG " FNR ": [1/3] MsgName: " MsgName; }; + sub(/^(message|enum)[[:space:]]+/,"",MsgName); + if (debug!="") { print "DEBUG " FNR ": [2/3] MsgName: " MsgName; }; + sub(/[[:space:]].*$/,"",MsgName); + if (debug!="") { print "DEBUG " FNR ": [3/3] MsgName: " MsgName; }; + + # If the uncommented line has a closing curly brace, the message/enum is empty, but we still need it. + # Otherwise, switch to being inside a message. + if (/}/) { + if (debug!="") { print "DEBUG " FNR ": Also is end of message."; }; + MsgEnd=FNR; + } else { + if (debug!="") { print "DEBUG " FNR ": Now at start of message content."; }; + }; + }; + }; + + if (debug!="") { print "DEBUG " FNR ": MsgName=[" MsgName "], MsgStart=[" MsgStart "], MsgEnd=[" MsgEnd "]"; }; + # If we have everything, output a line about it and reset for the next one. + if (MsgName!="" && MsgStart!="" && MsgEnd!="") { + Fn=FILENAME; + if (debug!="") { print "DEBUG " FNR ": [1/2] Fn: " Fn; }; + sub(/^.*\/proto\//,"proto/",Fn); + if (debug!="") { print "DEBUG " FNR ": [2/2] Fn: " Fn; }; + print MsgName "=" Fn "#L" MsgStart "-L" MsgEnd; + MsgName=""; + MsgStart=""; + MsgEnd=""; + }; +} \ No newline at end of file diff --git a/scripts/update-spec-links.sh b/scripts/update-spec-links.sh index a9a21d9842..8257a2162b 100755 --- a/scripts/update-spec-links.sh +++ b/scripts/update-spec-links.sh @@ -29,6 +29,9 @@ EOF } +repo_root="$( git rev-parse --show-toplevel )" || exit $? +where_i_am="$( cd "$( dirname "${BASH_SOURCE:-$0}" )"; pwd -P )" + declare files_in=() declare dirs_in=() @@ -114,7 +117,8 @@ fi ######################################## Identify files that will be updated. ######################################## ######################################################################################################################## -link_rx='^\+\+\+ https://github\.com/provenance-io/provenance' +link_rx='^\+\+\+ https://github\.com/provenance-io/provenance.*/proto/.*\.proto' +link_rx_esc="$( sed 's|\\|\\\\|g;' <<< "$link_rx" )" declare files=() if [[ "${#files_in[@]}" -eq '0' && "${#dirs_in[@]}" -eq '0' ]]; then @@ -191,7 +195,14 @@ for file in "${files[@]}"; do IFS=$'\n' new_proto_files+=( $( grep -E "$link_rx" "$file" | sed 's|^.*/proto/|proto/|; s/#.*$//;' | sort -u ) ) set +o noglob if [[ "${#new_proto_files[@]}" -ne '0' ]]; then - [[ -n "$verbose" ]] && printf 'Found %d:\n' "${#new_proto_files[@]}" && printf '[%d/%d]: %s\n' "$i" "${#files[@]}" "${new_proto_files[@]}" + if [[ -n "$verbose" ]]; then + printf 'Found %d:\n' "${#new_proto_files[@]}" + j=0 + for new_file in "${new_proto_files[@]}"; do + j=$(( j + 1 )) + printf '[%d/%d|%d/%d]: %s\n' "$i" "${#files[@]}" "$j" "${#new_proto_files[@]}" "$new_file" + done + fi protos_linked+=( "${new_proto_files[@]}" ) else [[ -n "$verbose" ]] && printf 'None found.\n' @@ -207,8 +218,7 @@ set -o noglob IFS=$'\n' protos+=( $( printf '%s\n' "${protos_linked[@]}" | sort -u ) ) set +o noglob -[[ -n "$verbose" ]] && printf 'All linked protos (no dups) (%d):\n' "${#protos[@]}" -[[ -n "$verbose" ]] && printf ' %s\n' "${protos[@]}" +[[ -n "$verbose" ]] && printf 'All linked protos (no dups) (%d):\n' "${#protos[@]}" && printf ' %s\n' "${protos[@]}" ######################################################################################################################## ##################################### Put all needed proto files in a temp dir. ###################################### @@ -217,6 +227,7 @@ set +o noglob temp_dir="$( mktemp -d -t link-updates )" [[ -n "$verbose" ]] && printf 'Created temp dir for protos: %s\n' "$temp_dir" +# safe_exit handles any needed cleanup before exiting with the provided code. # Usage: safe_exit [code] safe_exit () { local ec @@ -237,8 +248,6 @@ safe_exit () { [[ -n "$verbose" ]] && printf 'Getting %d proto files.\n' "${#protos[@]}" -repo_root="$( git rev-parse --show-toplevel )" - i=0 for file in "${protos[@]}"; do i=$(( i + 1 )) @@ -268,5 +277,137 @@ if [[ -n "$stop_early" ]]; then safe_exit 1 fi +######################################################################################################################## +##################################### Identify Line Numbers in the Proto Files. ###################################### +######################################################################################################################## + +# Get a count of all the lines in a file. +# Usage: get_line_count +# or | get_line_count +# Note: A newline is added automatically when using a heredoc. +# So get_line_count <<< '' will return 1 instead of the expected 0. +get_line_count () { + # Not using wc because it won't count a line if there's no ending newline. + awk 'END { print FNR; }' "$@" +} + +# Each line of the message summary file is expected to have this format: +# =#L-L +message_summary_file="${temp_dir}/message_summary.txt" +[[ -n "$verbose" ]] && printf 'Creating summary of all message and enums: %s\n' "$message_summary_file" +find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am}/identify-messages.awk" >> "$message_summary_file" || safe_exit $? +[[ -n "$verbose" ]] && printf 'Found %d messages/enums in the proto files.\n' "$( get_line_count "$message_summary_file" )" + +######################################################################################################################## +################################################# Identify Endpoints ################################################# +######################################################################################################################## + +# Each line of the endpoint summary file is expected to have this format: +# rpc::(Request|Response):;= +endpoint_summary_file="${temp_dir}/endpoint_summary.txt" +[[ -n "$verbose" ]] && printf 'Creating summary of all endpoint messages: %s\n' "$endpoint_summary_file" +find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am}/identify-endpoints.awk" >> "$endpoint_summary_file" || safe_exit $? +[[ -n "$verbose" ]] && printf 'Found %d endpoint messages in the proto files.\n' "$( get_line_count "$endpoint_summary_file" )" + + + +######################################################################################################################## +############################################ Identify Links and Content. ############################################# +######################################################################################################################## + + +# First pass, identify all the links and their content. +# The lines in the initial link info file are expected to each have one of the following formats: +# :;= +# :;rpc::(Request|Response): +# :;ERROR: : + +initial_link_info_file="${temp_dir}/initial_link_info.txt" +[[ -n "$verbose" ]] && printf 'Identifying link content, initial pass of %d files: %s\n' "${#files[@]}" "$initial_link_info_file" +i=0 +for file in "${files[@]}"; do + i=$(( i + 1 )) + printf '[%d/%d] Processing: %s\n' "$i" "${#files[@]}" "$file" + awk -v LinkRx="$link_rx_esc" -f "${where_i_am}/identify-links.awk" "$file" >> "$initial_link_info_file" || safe_exit $? +done +rpc_count="$( grep ';rpc:' "$initial_link_info_file" | get_line_count )" +if [[ -n "$verbose" ]]; then + printf 'Found %d links in %d files.\n' "$( get_line_count "$initial_link_info_file" )" "${#files[@]}" + printf 'Identified the message name for %d links.\n' "$( grep -F '=' "$initial_link_info_file" | get_line_count )" + printf 'Identified the endpoint and type for %d links.\n' "$rpc_count" + printf 'Found %d problems.\n' "$( grep -F ';ERROR' "$initial_link_info_file" | get_line_count )" +fi +# We'll move onto the second pass even if there were errors because new errors might be found; +# this will provide us with a more complete picture of problems. + +# Second pass, change all of the rpc lines with the format: +# :;rpc::(Request|Response): +# To a message line with the format: +# :;= + +link_info_file="${temp_dir}/link_info.txt" +[[ -n "$verbose" ]] && printf 'Identifying message name for %d links: %s\n' "$rpc_count" "$link_info_file" + +i=0 +while IFS="" read -r line || [[ -n "$line" ]]; do + if [[ ! "$line" =~ ';rpc:' ]]; then + # Not an rpc-lookup line, just pass it on. + printf '%s\n' "$line" >> "$link_info_file" + else + i=$(( i + 1 )) + [[ -n "$verbose" ]] && printf '[%d\%d]: Processing: %s\n' "$i" "$rpc_count" "$line" + # The line has this format: + # :;rpc::(Request|Response): + # Split the line into the line number and the rest. + lead="$( sed 's/;.*$//' <<< "$line" )" + [[ -n "$verbose" ]] && printf '[%d\%d]: lead: %s\n' "$i" "$rpc_count" "$lead" + to_find="$( sed 's/^[^;]*;//' <<< "$line" )" + [[ -n "$verbose" ]] && printf '[%d\%d]: to_find: %s\n' "$i" "$rpc_count" "$to_find" + + # Look for a line in the endpoint_summary_file that starts with to_find followed by a semi-colon. + # The endpoint_summary_file lines have this format: + # rpc::(Request|Response):;= + found_lines="$( grep -F "${to_find};" "$endpoint_summary_file" )" + found_lines_count="$( get_line_count <<< "$found_lines" )" + [[ -n "$verbose" ]] && printf '[%d\%d]: found_lines (%d): %s\n' "$i" "$rpc_count" "$found_lines_count" "$found_lines" + + if [[ -z "$found_lines" || "$found_lines" =~ ^[[:space:]]*$ ]]; then + [[ -n "$verbose" ]] && printf '[%d\%d]: Result: Error: not found.\n' "$i" "$rpc_count" + printf '%s;ERROR: could not find endpoint message: %s\n' "$lead" "$to_find" >> "$link_info_file" + elif [[ "$found_lines_count" -eq '1' ]]; then + [[ -n "$verbose" ]] && printf '[%d\%d]: Result: Message identified.\n' "$i" "$rpc_count" + message="$( sed 's/^[^;]*;//' <<< "$found_lines" )" + printf '%s;%s\n' "$lead" "$message" >> "$link_info_file" + else + [[ -n "$verbose" ]] && printf '[%d\%d]: Result: Multiple messages identified.\n' "$i" "$rpc_count" + printf '%s;ERROR: found %d endpoint messages: %s\n' "$lead" "$found_lines_count" "$to_find" >> "$link_info_file" + fi + fi +done < "$initial_link_info_file" + +problem_count="$( grep -F ';ERROR' "$link_info_file" | get_line_count )" +if [[ -n "$verbose" ]]; then + printf 'Found %d links in %d files.\n' "$( get_line_count "$link_info_file" )" "${#files[@]}" + printf 'Know the message name for %d links.\n' "$( grep '=' "$link_info_file" | get_line_count )" + printf 'Know the endpoint and type for %d links.\n' "$( grep ';rpc:' "$link_info_file" | get_line_count )" + printf 'Found %d problems.\n' "$problem_count" +fi + +# Now, we'll check for errors and stop if any are found. +[[ -n "$verbose" ]] && printf 'Checking for link identification errors: %s\n' "$link_info_file" +if [[ "$problem_count" -ne '0' ]]; then + printf 'Found %d problematic links in the markdown files.\n' "$problem_count" + grep -F ';ERROR' "$link_info_file" + safe_exit 1 +fi + +######################################################################################################################## +############################################# Update the markdown files. ############################################# +######################################################################################################################## + +# TODO: Look through each line of the link_info_file and update each link. +# Will use something like sed "$( printf '%d c\\\n%s' "$line_number" "$new_entry" )"$'\n' > +# Then copy the temp file over the original. + safe_exit 0 \ No newline at end of file From 61d8c1d548e261112f486cfcabdd46a324cef2ca Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Wed, 3 Jul 2024 18:45:01 -0600 Subject: [PATCH 05/16] Output a message at each step of the way. --- scripts/update-spec-links.sh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/scripts/update-spec-links.sh b/scripts/update-spec-links.sh index 8257a2162b..23ee30a49d 100755 --- a/scripts/update-spec-links.sh +++ b/scripts/update-spec-links.sh @@ -183,7 +183,7 @@ fi ########################################### Identify proto files involved. ########################################### ######################################################################################################################## -[[ -n "$verbose" ]] && printf 'Identifying proto files linked to from %d files.\n' "${#files[@]}" +[[ -z "$quiet" ]] && printf 'Identifying proto files linked to from %d files.\n' "${#files[@]}" declare protos_linked=() i=0 @@ -224,6 +224,8 @@ set +o noglob ##################################### Put all needed proto files in a temp dir. ###################################### ######################################################################################################################## +[[ -z "$quiet" ]] && printf 'Getting %d proto files.\n' "${#protos[@]}" + temp_dir="$( mktemp -d -t link-updates )" [[ -n "$verbose" ]] && printf 'Created temp dir for protos: %s\n' "$temp_dir" @@ -246,8 +248,6 @@ safe_exit () { exit "$ec" } -[[ -n "$verbose" ]] && printf 'Getting %d proto files.\n' "${#protos[@]}" - i=0 for file in "${protos[@]}"; do i=$(( i + 1 )) @@ -281,6 +281,8 @@ fi ##################################### Identify Line Numbers in the Proto Files. ###################################### ######################################################################################################################## +[[ -z "$quiet" ]] && printf 'Identifying line numbers for messages in the proto files.\n' + # Get a count of all the lines in a file. # Usage: get_line_count # or | get_line_count @@ -302,6 +304,8 @@ find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am ################################################# Identify Endpoints ################################################# ######################################################################################################################## +[[ -z "$quiet" ]] && printf 'Identifying endpoint messages in the proto files.\n' + # Each line of the endpoint summary file is expected to have this format: # rpc::(Request|Response):;= endpoint_summary_file="${temp_dir}/endpoint_summary.txt" @@ -315,6 +319,7 @@ find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am ############################################ Identify Links and Content. ############################################# ######################################################################################################################## +[[ -z "$quiet" ]] && printf 'Identifying proto links and their content in %d markdown files.\n' "${#files[@]}" # First pass, identify all the links and their content. # The lines in the initial link info file are expected to each have one of the following formats: @@ -327,7 +332,7 @@ initial_link_info_file="${temp_dir}/initial_link_info.txt" i=0 for file in "${files[@]}"; do i=$(( i + 1 )) - printf '[%d/%d] Processing: %s\n' "$i" "${#files[@]}" "$file" + [[ -n "$verbose" ]] && printf '[%d/%d] Processing: %s\n' "$i" "${#files[@]}" "$file" awk -v LinkRx="$link_rx_esc" -f "${where_i_am}/identify-links.awk" "$file" >> "$initial_link_info_file" || safe_exit $? done rpc_count="$( grep ';rpc:' "$initial_link_info_file" | get_line_count )" @@ -385,9 +390,10 @@ while IFS="" read -r line || [[ -n "$line" ]]; do fi done < "$initial_link_info_file" +link_count="$( get_line_count "$link_info_file" )" problem_count="$( grep -F ';ERROR' "$link_info_file" | get_line_count )" if [[ -n "$verbose" ]]; then - printf 'Found %d links in %d files.\n' "$( get_line_count "$link_info_file" )" "${#files[@]}" + printf 'Found %d links in %d files.\n' "$link_count" "${#files[@]}" printf 'Know the message name for %d links.\n' "$( grep '=' "$link_info_file" | get_line_count )" printf 'Know the endpoint and type for %d links.\n' "$( grep ';rpc:' "$link_info_file" | get_line_count )" printf 'Found %d problems.\n' "$problem_count" @@ -405,6 +411,8 @@ fi ############################################# Update the markdown files. ############################################# ######################################################################################################################## +[[ -z "$quiet" ]] && printf 'Updating %d links in %d files.\n' "$link_count" "${#files[@]}" + # TODO: Look through each line of the link_info_file and update each link. # Will use something like sed "$( printf '%d c\\\n%s' "$line_number" "$new_entry" )"$'\n' > # Then copy the temp file over the original. From dc445c85f6b8f43e2b1f9aff499e1f845f4a242e Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Wed, 3 Jul 2024 19:14:37 -0600 Subject: [PATCH 06/16] Fix bug in the identify-links awk script that always caused link messages to generate an error. --- scripts/identify-links.awk | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/identify-links.awk b/scripts/identify-links.awk index a5fed7e951..029f9a9bf8 100644 --- a/scripts/identify-links.awk +++ b/scripts/identify-links.awk @@ -21,13 +21,14 @@ if (debug!="") { print "DEBUG 0: LinkRx='" LinkRx "'"; }; } - IsLineOfInterest = (match($0, LinkRx) || /^#/ || /^ + +++ https://github.com/provenance-io/provenance/blob/dwedul/1607-in-place-escrow/proto/provenance/hold/v1/hold.proto#L12-L19 It is expected to fail if the pagination parameters are invalid. diff --git a/x/marker/spec/03_messages.md b/x/marker/spec/03_messages.md index 6c3ec2be72..a03f33a8a1 100644 --- a/x/marker/spec/03_messages.md +++ b/x/marker/spec/03_messages.md @@ -5,30 +5,30 @@ All created/modified state objects specified by each message are defined within [state](./02_state_transitions.md) section. - - [Msg/AddMarkerRequest](#msgaddmarkerrequest) - - [Msg/AddAccessRequest](#msgaddaccessrequest) - - [Msg/DeleteAccessRequest](#msgdeleteaccessrequest) - - [Msg/FinalizeRequest](#msgfinalizerequest) - - [Msg/ActivateRequest](#msgactivaterequest) - - [Msg/CancelRequest](#msgcancelrequest) - - [Msg/DeleteRequest](#msgdeleterequest) - - [Msg/MintRequest](#msgmintrequest) - - [Msg/BurnRequest](#msgburnrequest) - - [Msg/WithdrawRequest](#msgwithdrawrequest) - - [Msg/TransferRequest](#msgtransferrequest) - - [Msg/IbcTransferRequest](#msgibctransferrequest) - - [Msg/SetDenomMetadataRequest](#msgsetdenommetadatarequest) - - [Msg/AddFinalizeActivateMarkerRequest](#msgaddfinalizeactivatemarkerrequest) - - [Msg/GrantAllowanceRequest](#msggrantallowancerequest) - - [Msg/SupplyIncreaseProposalRequest](#msgsupplyincreaseproposalrequest) - - [Msg/UpdateRequiredAttributesRequest](#msgupdaterequiredattributesrequest) - - [Msg/UpdateSendDenyListRequest](#msgupdatesenddenylistrequest) - - [Msg/UpdateForcedTransferRequest](#msgupdateforcedtransferrequest) - - [Msg/SetAccountDataRequest](#msgsetaccountdatarequest) - - [Msg/AddNetAssetValuesRequest](#msgaddnetassetvaluesrequest) - - -## Msg/AddMarkerRequest + - [Msg/AddMarker](#msgaddmarker) + - [Msg/AddAccess](#msgaddaccess) + - [Msg/DeleteAccess](#msgdeleteaccess) + - [Msg/Finalize](#msgfinalize) + - [Msg/Activate](#msgactivate) + - [Msg/Cancel](#msgcancel) + - [Msg/Delete](#msgdelete) + - [Msg/Mint](#msgmint) + - [Msg/Burn](#msgburn) + - [Msg/Withdraw](#msgwithdraw) + - [Msg/Transfer](#msgtransfer) + - [Msg/IbcTransfer](#msgibctransfer) + - [Msg/SetDenomMetadata](#msgsetdenommetadata) + - [Msg/AddFinalizeActivateMarker](#msgaddfinalizeactivatemarker) + - [Msg/GrantAllowance](#msggrantallowance) + - [Msg/SupplyIncreaseProposal](#msgsupplyincreaseproposal) + - [Msg/UpdateRequiredAttributes](#msgupdaterequiredattributes) + - [Msg/UpdateSendDenyList](#msgupdatesenddenylist) + - [Msg/UpdateForcedTransfer](#msgupdateforcedtransfer) + - [Msg/SetAccountData](#msgsetaccountdata) + - [Msg/AddNetAssetValues](#msgaddnetassetvalues) + + +## Msg/AddMarker A marker is created using the Add Marker service message. The created marker can not be directly added in an Active (or Cancelled/Destroyed) status. Markers @@ -62,7 +62,7 @@ If issued via governance proposal, and has a `from_address` of the governance mo - The marker's `allow_governance_control` flag ignores the `enable_governance` param value, and is set to the provided value. - If the marker status is Active, and no `manager` is provided, it is left blank (instead of being populated with the `from_address`). -## Msg/AddAccessRequest +## Msg/AddAccess Add Access Request is used to add permissions to a marker that allow the specified accounts to perform the specified actions. @@ -85,7 +85,7 @@ The Add Access request can be called many times on a marker with some or all of only be used against markers in the `Pending` status when called by the current marker manager address or against `Finalized` and `Active` markers when the caller is currently assigned the `Admin` access type. -## Msg/DeleteAccessRequest +## Msg/DeleteAccess DeleteAccess Request defines the Msg/DeleteAccess request type @@ -104,7 +104,7 @@ The Delete Access request will remove all access granted to the given address on only be used against markers in the `Pending` status when called by the current marker manager address or against `Finalized` and `Active` markers when the caller is currently assigned the `Admin` access type. -## Msg/FinalizeRequest +## Msg/Finalize Finalize Request defines the Msg/Finalize request type @@ -122,7 +122,7 @@ This service message is expected to fail if: The `Finalize` marker status performs a set of checks to ensure the marker is ready to be activated. It is designed to serve as an intermediate step prior to activation that indicates marker configuration is complete. -## Msg/ActivateRequest +## Msg/Activate Activate Request defines the Msg/Activate request type @@ -145,7 +145,7 @@ rights assigned as access grants for any modification. If a marker has a fixed supply the begin block/invariant supply checks are also performed. If the supply is expected to float then the `total_supply` value will be set to zero upon activation. -## Msg/CancelRequest +## Msg/Cancel Cancel Request defines the Msg/Cancel request type @@ -165,7 +165,7 @@ This service message is expected to fail if: - The amount in circulation is greater than zero or any remaining amount is not currently held in escrow within the marker account. -## Msg/DeleteRequest +## Msg/Delete Delete Request defines the Msg/Delete request type @@ -183,7 +183,7 @@ This service message is expected to fail if: marker account. - There are any other coins remaining in escrow after supply has been fully burned. -## Msg/MintRequest +## Msg/Mint Mint Request defines the Msg/Mint request type @@ -200,7 +200,7 @@ This service message is expected to fail if: - The requested amount of mint would increase the total supply in circulation above the configured supply limit set in the marker module params -## Msg/BurnRequest +## Msg/Burn Burn Request defines the Msg/Burn request type that is used to remove supply of the marker coin from circulation. In order to successfully burn supply the amount to burn must be held by the marker account itself (in escrow). @@ -217,7 +217,7 @@ This service message is expected to fail if: - The given administrator address does not currently have the "burn" access granted on the marker - The amount of coin to burn is not currently held in escrow within the marker account. -## Msg/WithdrawRequest +## Msg/Withdraw Withdraw Request defines the Msg/Withdraw request type and is used to withdraw coin from escrow within the marker. @@ -238,7 +238,7 @@ This service message is expected to fail if: - The given administrator address does not currently have the "withdraw" access granted on the marker - The amount of coin requested for withdraw is not currently held by the marker account -## Msg/TransferRequest +## Msg/Transfer Transfer Request defines the Msg/Transfer request type. A transfer request is used to transfer coin between two accounts for `RESTRICTED_COIN` type markers. Such markers have `send_enabled=false` configured with the `x/bank` module, @@ -258,7 +258,7 @@ This service message is expected to fail if: - The given administrator address does not currently have the "transfer" access granted on the marker - The marker types is not `RESTRICTED_COIN` -## Msg/IbcTransferRequest +## Msg/IbcTransfer Ibc transfer Request defines the Msg/IbcTransfer request type. The `IbcTransferRequest` is used to transfer `RESTRICTED_COIN` type markers to another chain via ibc. These coins have their `send_enabled` flag disabled by the bank module and thus cannot be sent using a normal `send_coin` operation. @@ -268,7 +268,7 @@ NOTE: A transfer request also requires a signature from an account with the tran +++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L199-L200 -## Msg/SetDenomMetadataRequest +## Msg/SetDenomMetadata SetDenomMetadata Request defines the Msg/SetDenomMetadata request type. This request is used to set the informational denom metadata held within the bank module. Denom metadata can be used to provide a more streamlined user experience @@ -293,7 +293,7 @@ This service message is expected to fail if: - DenomUnit Denom fields are modified. - Any aliases are removed from a DenomUnit. -## Msg/AddFinalizeActivateMarkerRequest +## Msg/AddFinalizeActivateMarker AddFinalizeActivate requested is used for adding, finalizing, and activating a marker in a single request. @@ -312,7 +312,7 @@ This service message is expected to fail if: - Contains a grant with an invalid address - Contains a grant with an invalid access enum value (Unspecified/0) -## Msg/GrantAllowanceRequest +## Msg/GrantAllowance GrantAllowance grants a fee allowance to the grantee on the granter's account. @@ -328,7 +328,7 @@ This service message is expected to fail if: - The administrator or grantee are invalid addresses - The administrator does not have `ADMIN` access on the marker. -## Msg/SupplyIncreaseProposalRequest +## Msg/SupplyIncreaseProposal SupplyIncreaseProposal is a governance-only message for increasing the supply of a marker. @@ -344,7 +344,7 @@ This service message is expected to fail if: See also: [Governance: Supply Increase Proposal](./10_governance.md#supply-increase-proposal) -## Msg/UpdateRequiredAttributesRequest +## Msg/UpdateRequiredAttributes UpdateRequiredAttributes allows signers that have transfer authority or via gov proposal to add and remove required attributes from a restricted marker. @@ -359,7 +359,7 @@ This service message is expected to fail if: - Attributes cannot be normalized - Marker denom cannot be found or is not a restricted marker -## Msg/UpdateSendDenyListRequest +## Msg/UpdateSendDenyList UpdateSendDenyList allows signers that have transfer authority or via gov proposal to add and remove addresses to the deny send list for a restricted marker. @@ -376,7 +376,7 @@ This service message is expected to fail if: - Marker denom cannot be found or is not a restricted marker - Signer does not have transfer authority or is not from gov proposal -## Msg/UpdateForcedTransferRequest +## Msg/UpdateForcedTransfer UpdateForcedTransfer allows for the activation or deactivation of forced transfers for a marker. This message must be submitted via governance proposal. @@ -392,7 +392,7 @@ This service message is expected to fail if: - The marker is not a restricted coin. - The marker does not allow governance control. -## Msg/SetAccountDataRequest +## Msg/SetAccountData SetAccountData allows the association of some data (a string) with a marker. @@ -409,7 +409,7 @@ This service message is expected to fail if: - The signer is not the governance module account and does not have deposit access on the marker. - The provided value is too long (as defined by the attribute module params). -## Msg/AddNetAssetValuesRequest +## Msg/AddNetAssetValues AddNetAssetValuesRequest allows for the adding/updating of net asset values for a marker. diff --git a/x/marker/spec/07_events.md b/x/marker/spec/07_events.md index a9ccf958b7..546ecbdfe3 100644 --- a/x/marker/spec/07_events.md +++ b/x/marker/spec/07_events.md @@ -229,4 +229,4 @@ Type: `provenance.marker.v1.EventMarkerParamsUpdated` |-------------------------|-----------------------------------------------------| | EnableGovernance | \{value for if governance control is enabled\} | | UnrestrictedDenomRegex | \{regex for unrestricted denom validation\} | -| MaxSupply | \{value for the max allowed supply\} | \ No newline at end of file +| MaxSupply | \{value for the max allowed supply\} | diff --git a/x/oracle/spec/03_messages.md b/x/oracle/spec/03_messages.md index 8eb34eaa0b..e8fc53aeec 100644 --- a/x/oracle/spec/03_messages.md +++ b/x/oracle/spec/03_messages.md @@ -7,12 +7,12 @@ order: 3 In this section we describe the processing of the oracle messages and their corresponding updates to the state. - - [Msg/UpdateOracleRequest](#msgupdateoraclerequest) - - [Msg/SendQueryOracleRequest](#msgsendqueryoraclerequest) + - [Msg/UpdateOracle](#msgupdateoracle) + - [Msg/SendQueryOracle](#msgsendqueryoracle) --- -## Msg/UpdateOracleRequest +## Msg/UpdateOracle The oracle's address is modified by proposing the `MsgUpdateOracleRequest` message. @@ -28,7 +28,7 @@ The message will fail under the following conditions: * The authority does not match the gov module. * The new address does not pass basic integrity and format checks. -## Msg/SendQueryOracleRequest +## Msg/SendQueryOracle Sends a query to another chain's `Oracle` using `ICQ`. diff --git a/x/oracle/spec/04_queries.md b/x/oracle/spec/04_queries.md index c41647b124..b97bac5230 100644 --- a/x/oracle/spec/04_queries.md +++ b/x/oracle/spec/04_queries.md @@ -7,11 +7,11 @@ order: 4 In this section we describe the queries available for looking up oracle information. - - [Query Oracle Address](#query-oracle-address) - - [Query Oracle](#query-oracle) + - [Query/OracleAddress](#queryoracleaddress) + - [Query/Oracle](#queryoracle) --- -## Query Oracle Address +## Query/OracleAddress The `QueryOracleAddress` query is used to obtain the address of the module's oracle. ### Request @@ -24,7 +24,7 @@ The `QueryOracleAddress` query is used to obtain the address of the module's ora --- -## Query Oracle +## Query/Oracle The `QueryOracle` query forwards a query to the module's oracle. ### Request diff --git a/x/oracle/spec/06_genesis.md b/x/oracle/spec/06_genesis.md index 7d5e744a0f..e5fa3dba61 100644 --- a/x/oracle/spec/06_genesis.md +++ b/x/oracle/spec/06_genesis.md @@ -7,11 +7,11 @@ order: 6 In this section we describe the processing of the oracle messages and the corresponding updates to the state. - - [Msg/GenesisState](#msggenesisstate) + - [GenesisState](#genesisstate) --- -## Msg/GenesisState +## GenesisState The GenesisState encompasses the upcoming sequence ID for an ICQ packet, the associated parameters, the designated port ID for the module, and the oracle address. These values are both extracted for export and imported for storage within the store. diff --git a/x/quarantine/spec/05_queries.md b/x/quarantine/spec/05_queries.md index 2c8ccad300..433102cdc4 100644 --- a/x/quarantine/spec/05_queries.md +++ b/x/quarantine/spec/05_queries.md @@ -34,6 +34,7 @@ Response: +++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L67-L74 QuarantinedFunds: + +++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/quarantine.proto#L10-L21 @@ -62,6 +63,7 @@ Response: +++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L87-L94 AutoResponseEntry: + +++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/quarantine.proto#L23-L31 diff --git a/x/sanction/spec/05_queries.md b/x/sanction/spec/05_queries.md index 413de6ce54..0bde56f43a 100644 --- a/x/sanction/spec/05_queries.md +++ b/x/sanction/spec/05_queries.md @@ -60,10 +60,12 @@ Response: +++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L69-L75 TemporaryEntry: + +++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/sanction.proto#L27-L35 TempStatus: + +++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/sanction.proto#L37-L47 diff --git a/x/trigger/spec/03_messages.md b/x/trigger/spec/03_messages.md index 3f5f4feb80..40edd4fb2f 100644 --- a/x/trigger/spec/03_messages.md +++ b/x/trigger/spec/03_messages.md @@ -7,11 +7,11 @@ order: 3 In this section we describe the processing of the trigger messages and the corresponding updates to the state. - - [Msg/CreateTriggerRequest](#msgcreatetriggerrequest) - - [Msg/DestroyTriggerRequest](#msgdestroytriggerrequest) + - [Msg/CreateTrigger](#msgcreatetrigger) + - [Msg/DestroyTrigger](#msgdestroytrigger) -## Msg/CreateTriggerRequest +## Msg/CreateTrigger Creates a `Trigger` that will fire when its event has been detected. If the message has more than one signer, then the newly created `Trigger` will designate the first signer as the owner. @@ -30,7 +30,7 @@ The message will fail under the following conditions: * At least one action is not a valid `sdk.Msg` * The signers on one or more actions aren't in the set of the request's signers. -## Msg/DestroyTriggerRequest +## Msg/DestroyTrigger Destroys a `Trigger` that has been created and is still registered. diff --git a/x/trigger/spec/04_queries.md b/x/trigger/spec/04_queries.md index c552fb5e79..a7c2d5397e 100644 --- a/x/trigger/spec/04_queries.md +++ b/x/trigger/spec/04_queries.md @@ -7,12 +7,12 @@ order: 4 In this section we describe the queries available for looking up trigger information. - - [Query Trigger By ID](#query-trigger-by-id) - - [Query Triggers](#query-triggers) + - [Query/TriggerByID](#querytriggerbyid) + - [Query/Triggers](#querytriggers) --- -## Query Trigger By ID +## Query/TriggerByID The `QueryTriggerByID` query is used to obtain the content of a specific Trigger. @@ -28,7 +28,7 @@ The `id` is the unique identifier for the Trigger. --- -## Query Triggers +## Query/Triggers The `QueryTriggers` query is used to obtain all Triggers. diff --git a/x/trigger/spec/07_genesis.md b/x/trigger/spec/07_genesis.md index 474396146b..5ff64d34d8 100644 --- a/x/trigger/spec/07_genesis.md +++ b/x/trigger/spec/07_genesis.md @@ -7,7 +7,7 @@ order: 7 In this section we describe the processing of the trigger messages and the corresponding updates to the state. -## Msg/GenesisState +## GenesisState GenesisState contains a list of triggers, queued triggers, and gas limits. It also tracks the triggerID and the queue start. These are exported and later imported from/to the store. From 2b3dd346a39b456bb0ede7a7d24cd4e9420559ac Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Wed, 3 Jul 2024 21:11:58 -0600 Subject: [PATCH 08/16] Finish the script. --- scripts/identify-links.awk | 2 +- scripts/identify-messages.awk | 18 ++- scripts/update-spec-links.sh | 233 ++++++++++++++++++++++++++-------- 3 files changed, 195 insertions(+), 58 deletions(-) diff --git a/scripts/identify-links.awk b/scripts/identify-links.awk index 029f9a9bf8..b5abee58bb 100644 --- a/scripts/identify-links.awk +++ b/scripts/identify-links.awk @@ -58,6 +58,7 @@ Name=""; Err=""; TempReqResp=""; + D="="; if (LinkMessage!="") { if (debug!="") { print Lead "DEBUG: Using previous link message comment."; }; Name=LinkMessage; @@ -65,7 +66,6 @@ sub(/ -->.*$/,"",Name); LinkMessage=""; } else if (LastHeader!="") { - D="="; Name=LastHeader; sub(/^#+ /,"",Name); gsub(/[[:space:]]+/,"",Name); diff --git a/scripts/identify-messages.awk b/scripts/identify-messages.awk index 384c8d5b44..dab6d8a531 100644 --- a/scripts/identify-messages.awk +++ b/scripts/identify-messages.awk @@ -3,7 +3,7 @@ # To include debugging information in the output, provide these arguments to the awk command: -v debug='1' # # Each line of output will have the format: -# =#L-L +# ;=#L-L # The value will be relative to the repo root directory (e.g. it will start with "proto/"). # # This file must be in the scripts/ directory so that the update-spec-links.sh script can find it. @@ -55,11 +55,17 @@ if (debug!="") { print "DEBUG " FNR ": MsgName=[" MsgName "], MsgStart=[" MsgStart "], MsgEnd=[" MsgEnd "]"; }; # If we have everything, output a line about it and reset for the next one. if (MsgName!="" && MsgStart!="" && MsgEnd!="") { - Fn=FILENAME; - if (debug!="") { print "DEBUG " FNR ": [1/2] Fn: " Fn; }; - sub(/^.*\/proto\//,"proto/",Fn); - if (debug!="") { print "DEBUG " FNR ": [2/2] Fn: " Fn; }; - print MsgName "=" Fn "#L" MsgStart "-L" MsgEnd; + if (FILENAME=="") { + Source=""; + if (debug!="") { print "DEBUG " FNR ": No FILENAME found. Source: " Source; }; + } else { + Source=FILENAME; + if (debug!="") { print "DEBUG " FNR ": [1/2] Source: " Source; }; + sub(/^.*\/proto\//,"proto/",Source); + if (debug!="") { print "DEBUG " FNR ": [2/2] Source: " Source; }; + } + + print ";" MsgName "=" Source "#L" MsgStart "-L" MsgEnd; MsgName=""; MsgStart=""; MsgEnd=""; diff --git a/scripts/update-spec-links.sh b/scripts/update-spec-links.sh index 23ee30a49d..7fd989928d 100755 --- a/scripts/update-spec-links.sh +++ b/scripts/update-spec-links.sh @@ -117,6 +117,7 @@ fi ######################################## Identify files that will be updated. ######################################## ######################################################################################################################## +link_prefix='+++ https://github\.com/provenance-io/provenance.*/' link_rx='^\+\+\+ https://github\.com/provenance-io/provenance.*/proto/.*\.proto' link_rx_esc="$( sed 's|\\|\\\\|g;' <<< "$link_rx" )" declare files=() @@ -229,9 +230,9 @@ set +o noglob temp_dir="$( mktemp -d -t link-updates )" [[ -n "$verbose" ]] && printf 'Created temp dir for protos: %s\n' "$temp_dir" -# safe_exit handles any needed cleanup before exiting with the provided code. -# Usage: safe_exit [code] -safe_exit () { +# clean_exit handles any needed cleanup before exiting with the provided code. +# Usage: clean_exit [code] +clean_exit () { local ec ec="${1:-0}" @@ -251,7 +252,7 @@ safe_exit () { i=0 for file in "${protos[@]}"; do i=$(( i + 1 )) - [[ -n "$verbose" ]] && printf '[%d/%d] Getting: %s ... ' "$i" "${#protos[@]}" "$file" + [[ -n "$verbose" ]] && printf '[%d/%d]: Getting: %s ... ' "$i" "${#protos[@]}" "$file" file_dir="$( dirname "$file" )" dest_dir="${temp_dir}/${file_dir}" mkdir -p "$dest_dir" @@ -267,14 +268,14 @@ for file in "${protos[@]}"; do stop_early='YES' fi else - [[ -n "$verbose" ]] && printf 'From: %s\n' "$source_file" source_file="${repo_root}/${file}" + [[ -n "$verbose" ]] && printf 'From: %s\n' "$source_file" cp "$source_file" "$dest_dir" || stop_early='YES' fi done if [[ -n "$stop_early" ]]; then - safe_exit 1 + clean_exit 1 fi ######################################################################################################################## @@ -294,10 +295,10 @@ get_line_count () { } # Each line of the message summary file is expected to have this format: -# =#L-L +# ;=#L-L message_summary_file="${temp_dir}/message_summary.txt" [[ -n "$verbose" ]] && printf 'Creating summary of all message and enums: %s\n' "$message_summary_file" -find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am}/identify-messages.awk" >> "$message_summary_file" || safe_exit $? +find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am}/identify-messages.awk" >> "$message_summary_file" || clean_exit $? [[ -n "$verbose" ]] && printf 'Found %d messages/enums in the proto files.\n' "$( get_line_count "$message_summary_file" )" ######################################################################################################################## @@ -310,7 +311,7 @@ find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am # rpc::(Request|Response):;= endpoint_summary_file="${temp_dir}/endpoint_summary.txt" [[ -n "$verbose" ]] && printf 'Creating summary of all endpoint messages: %s\n' "$endpoint_summary_file" -find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am}/identify-endpoints.awk" >> "$endpoint_summary_file" || safe_exit $? +find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am}/identify-endpoints.awk" >> "$endpoint_summary_file" || clean_exit $? [[ -n "$verbose" ]] && printf 'Found %d endpoint messages in the proto files.\n' "$( get_line_count "$endpoint_summary_file" )" @@ -332,9 +333,10 @@ initial_link_info_file="${temp_dir}/initial_link_info.txt" i=0 for file in "${files[@]}"; do i=$(( i + 1 )) - [[ -n "$verbose" ]] && printf '[%d/%d] Processing: %s\n' "$i" "${#files[@]}" "$file" - awk -v LinkRx="$link_rx_esc" -f "${where_i_am}/identify-links.awk" "$file" >> "$initial_link_info_file" || safe_exit $? + [[ -n "$verbose" ]] && printf '[1:%d/%d]: Processing: %s\n' "$i" "${#files[@]}" "$file" + awk -v LinkRx="$link_rx_esc" -f "${where_i_am}/identify-links.awk" "$file" >> "$initial_link_info_file" || clean_exit $? done + rpc_count="$( grep ';rpc:' "$initial_link_info_file" | get_line_count )" if [[ -n "$verbose" ]]; then printf 'Found %d links in %d files.\n' "$( get_line_count "$initial_link_info_file" )" "${#files[@]}" @@ -342,6 +344,7 @@ if [[ -n "$verbose" ]]; then printf 'Identified the endpoint and type for %d links.\n' "$rpc_count" printf 'Found %d problems.\n' "$( grep -F ';ERROR' "$initial_link_info_file" | get_line_count )" fi + # We'll move onto the second pass even if there were errors because new errors might be found; # this will provide us with a more complete picture of problems. @@ -355,39 +358,52 @@ link_info_file="${temp_dir}/link_info.txt" i=0 while IFS="" read -r line || [[ -n "$line" ]]; do - if [[ ! "$line" =~ ';rpc:' ]]; then - # Not an rpc-lookup line, just pass it on. - printf '%s\n' "$line" >> "$link_info_file" + if [[ ! "$line" =~ ';rpc:' ]]; then + # Not an rpc-lookup line, just pass it on. + printf '%s\n' "$line" >> "$link_info_file" + continue + fi + + i=$(( i + 1 )) + [[ -n "$verbose" ]] && printf '[2:%d/%d]: Processing: %s\n' "$i" "$rpc_count" "$line" + # The line has this format: + # :;rpc::(Request|Response): + # Split the line into the line number and the rest. + lead="$( sed 's/;.*$//' <<< "$line" )" + [[ -n "$verbose" ]] && printf '[2:%d/%d]: lead: %s\n' "$i" "$rpc_count" "$lead" + to_find="$( sed 's/^[^;]*;//' <<< "$line" )" + [[ -n "$verbose" ]] && printf '[2:%d/%d]: to_find: %s\n' "$i" "$rpc_count" "$to_find" + if [[ -z "$lead" || -z "$to_find" || "$lead" == "$to_find" ]]; then + [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Error: Could not split lead and to_find.\n' "$i" "$ok_count" + printf '%s;ERROR: could not parse as endpoint lookup line\n' "$line" >> "$link_info_file" + continue + fi + + # Look for a line in the endpoint_summary_file that starts with to_find followed by a semi-colon. + # The endpoint_summary_file lines have this format: + # rpc::(Request|Response):;= + found_lines="$( grep -F "${to_find};" "$endpoint_summary_file" )" + found_lines_count="$( get_line_count <<< "$found_lines" )" + [[ -z "$found_lines" || "$found_lines" =~ ^[[:space:]]*$ ]] && found_lines_count='0' + [[ -n "$verbose" ]] && printf '[2:%d/%d]: found_lines (%d): %q\n' "$i" "$rpc_count" "$found_lines_count" "$found_lines" + + if [[ "$found_lines_count" -eq '1' ]]; then + message="$( sed 's/^[^;]*;//' <<< "$found_lines" )" + [[ -n "$verbose" ]] && printf '[2:%d/%d]: message: %s\n' "$i" "$rpc_count" "$message" + if [[ -z "$message" || "$message" == "$found_lines" ]]; then + [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Error: Could not parse [%s].\n' "$i" "$rpc_count" "$found_lines" + printf '%s;ERROR: could not parse message from %s for %s\n' "$lead" "$found_lines" "$to_find" >> "$link_info_file" else - i=$(( i + 1 )) - [[ -n "$verbose" ]] && printf '[%d\%d]: Processing: %s\n' "$i" "$rpc_count" "$line" - # The line has this format: - # :;rpc::(Request|Response): - # Split the line into the line number and the rest. - lead="$( sed 's/;.*$//' <<< "$line" )" - [[ -n "$verbose" ]] && printf '[%d\%d]: lead: %s\n' "$i" "$rpc_count" "$lead" - to_find="$( sed 's/^[^;]*;//' <<< "$line" )" - [[ -n "$verbose" ]] && printf '[%d\%d]: to_find: %s\n' "$i" "$rpc_count" "$to_find" - - # Look for a line in the endpoint_summary_file that starts with to_find followed by a semi-colon. - # The endpoint_summary_file lines have this format: - # rpc::(Request|Response):;= - found_lines="$( grep -F "${to_find};" "$endpoint_summary_file" )" - found_lines_count="$( get_line_count <<< "$found_lines" )" - [[ -n "$verbose" ]] && printf '[%d\%d]: found_lines (%d): %s\n' "$i" "$rpc_count" "$found_lines_count" "$found_lines" - - if [[ -z "$found_lines" || "$found_lines" =~ ^[[:space:]]*$ ]]; then - [[ -n "$verbose" ]] && printf '[%d\%d]: Result: Error: not found.\n' "$i" "$rpc_count" - printf '%s;ERROR: could not find endpoint message: %s\n' "$lead" "$to_find" >> "$link_info_file" - elif [[ "$found_lines_count" -eq '1' ]]; then - [[ -n "$verbose" ]] && printf '[%d\%d]: Result: Message identified.\n' "$i" "$rpc_count" - message="$( sed 's/^[^;]*;//' <<< "$found_lines" )" - printf '%s;%s\n' "$lead" "$message" >> "$link_info_file" - else - [[ -n "$verbose" ]] && printf '[%d\%d]: Result: Multiple messages identified.\n' "$i" "$rpc_count" - printf '%s;ERROR: found %d endpoint messages: %s\n' "$lead" "$found_lines_count" "$to_find" >> "$link_info_file" - fi + [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Success: Message identified.\n' "$i" "$rpc_count" + printf '%s;%s\n' "$lead" "$message" >> "$link_info_file" fi + elif [[ "$found_lines_count" -eq '0' ]]; then + [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Error: Not found.\n' "$i" "$rpc_count" + printf '%s;ERROR: could not find endpoint message: %s\n' "$lead" "$to_find" >> "$link_info_file" + else + [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Error: Multiple messages identified.\n' "$i" "$rpc_count" + printf '%s;ERROR: found %d endpoint messages: %s\n' "$lead" "$found_lines_count" "$to_find" >> "$link_info_file" + fi done < "$initial_link_info_file" link_count="$( get_line_count "$link_info_file" )" @@ -395,27 +411,142 @@ problem_count="$( grep -F ';ERROR' "$link_info_file" | get_line_count )" if [[ -n "$verbose" ]]; then printf 'Found %d links in %d files.\n' "$link_count" "${#files[@]}" printf 'Know the message name for %d links.\n' "$( grep '=' "$link_info_file" | get_line_count )" - printf 'Know the endpoint and type for %d links.\n' "$( grep ';rpc:' "$link_info_file" | get_line_count )" + printf 'Still need to get the endpoint messages for %d links.\n' "$( grep ';rpc:' "$link_info_file" | get_line_count )" + printf 'Found %d problems.\n' "$problem_count" +fi + +# Again, we'll move onto the third pass even if there were errors because new errors might be found; +# this will provide us with a more complete picture of problems. + +# Third pass, generate the new links +ok_count=$(( link_count - problem_count )) +new_links_file="${temp_dir}/new_links.txt" +[[ -n "$verbose" ]] && printf 'Creating %d new links: %s\n' "$ok_count" "$new_links_file" + +i=0 +while IFS="" read -r line || [[ -n "$line" ]]; do + if [[ "$line" =~ ';ERROR' ]]; then + # Pass on previous errors. + printf '%s\n' "$line" >> "$new_links_file" + continue + fi + + i=$(( i + 1 )) + [[ -n "$verbose" ]] && printf '[3:%d/%d]: Processing: %s\n' "$i" "$ok_count" "$line" + + # All lines here should have this format: + # :;= + lead="$( sed 's/;.*$//' <<< "$line" )" + [[ -n "$verbose" ]] && printf '[3:%d/%d]: lead: %s\n' "$i" "$ok_count" "$lead" + to_find="$( sed 's/^[^;]*;//' <<< "$line" )" + [[ -n "$verbose" ]] && printf '[3:%d/%d]: to_find: %s\n' "$i" "$ok_count" "$to_find" + if [[ -z "$lead" || -z "$to_find" || "$lead" == "$to_find" ]]; then + [[ -n "$verbose" ]] && printf '[3:%d/%d]: Result: Error: Could not split lead and to_find.\n' "$i" "$ok_count" + printf '%s;ERROR: could not parse as link info line\n' "$line" >> "$new_links_file" + continue + fi + + # We just need to find a matching entry in the message_summary_file, which has lines with this format: + # ;=#L-L + found_lines="$( grep -F ";${to_find}#" "$message_summary_file" )" + found_lines_count="$( get_line_count <<< "$found_lines" )" + [[ -z "$found_lines" || "$found_lines" =~ ^[[:space:]]*$ ]] && found_lines_count='0' + [[ -n "$verbose" ]] && printf '[3:%d/%d]: found_lines (%d): %q\n' "$i" "$ok_count" "$found_lines_count" "$found_lines" + + if [[ "$found_lines_count" -eq '1' ]]; then + relative_link="$( sed -E 's/^[^=]+=//' <<< "$found_lines" )" + [[ -n "$verbose" ]] && printf '[3:%d/%d]: relative_link: %s\n' "$i" "$ok_count" "$relative_link" + if [[ -z "$relative_link" || "$found_lines" == "$relative_link" ]]; then + printf '%s;ERROR: could not parse relative link for %s from %s\n' "$lead" "$to_find" "$found_lines" >> "$new_links_file" + else + [[ -n "$verbose" ]] && printf '[3:%d/%d]: Result: Success: New link created.\n' "$i" "$ok_count" + link="${link_prefix}${relative_link}" + printf '%s;%s\n' "$lead" "$link" >> "$new_links_file" + fi + elif [[ "$found_lines_count" -eq '0' ]]; then + [[ -n "$verbose" ]] && printf '[3:%d/%d]: Result: Error: Not found.\n' "$i" "$ok_count" + printf '%s;ERROR: could not find message line numbers: %s\n' "$lead" "$to_find" >> "$new_links_file" + else + [[ -n "$verbose" ]] && printf '[3:%d/%d]: Result: Error: Multiple message line number entries identified.\n' "$i" "$ok_count" + printf '%s;ERROR: found %d message line number entries: %s\n' "$lead" "$found_lines_count" "$to_find" >> "$new_links_file" + fi +done < "$link_info_file" + +link_count="$( get_line_count "$new_links_file" )" +ok_count="$( grep -E ';\+\+\+ ' "$new_links_file" | get_line_count )" +problem_count="$( grep -F ';ERROR' "$new_links_file" | get_line_count )" +if [[ -n "$verbose" ]]; then + printf 'Found %d links in %d files.\n' "$link_count" "${#files[@]}" + printf 'Created %d updated links.\n' "$ok_count" printf 'Found %d problems.\n' "$problem_count" fi # Now, we'll check for errors and stop if any are found. -[[ -n "$verbose" ]] && printf 'Checking for link identification errors: %s\n' "$link_info_file" +problem_count="$( grep ';ERROR' "$new_links_file" | get_line_count )" +[[ -n "$verbose" ]] && printf 'Checking for link identification errors: %s\n' "$new_links_file" if [[ "$problem_count" -ne '0' ]]; then - printf 'Found %d problematic links in the markdown files.\n' "$problem_count" - grep -F ';ERROR' "$link_info_file" - safe_exit 1 + printf 'Found %d problematic links in the markdown files.\n' "$problem_count" + grep -F ';ERROR' "$new_links_file" + clean_exit 1 +fi + +if [[ "$link_count" -ne "$ok_count" ]]; then + printf 'Could not create new links (%d) for every current link (%d).\n' "$ok_count" "$link_count" + grep -Ev ';\+\+\+ ' "$new_links_file" + clean_exit 1 fi + ######################################################################################################################## ############################################# Update the markdown files. ############################################# ######################################################################################################################## [[ -z "$quiet" ]] && printf 'Updating %d links in %d files.\n' "$link_count" "${#files[@]}" -# TODO: Look through each line of the link_info_file and update each link. -# Will use something like sed "$( printf '%d c\\\n%s' "$line_number" "$new_entry" )"$'\n' > -# Then copy the temp file over the original. +tfile="$temp_dir/temp.md" +ec=0 +i=0 +while IFS="" read -r line || [[ -n "$line" ]]; do + i=$(( i + 1 )) + [[ -n "$verbose" ]] && printf '[%d/%d]: Applying update: %s\n' "$i" "$link_count" "$line" + + # Each line should have this format: + # :; + md_file="$( sed 's/:.*$//' <<< "$line" )" + [[ -n "$verbose" ]] && printf '[%d/%d]: md_file: %s\n' "$i" "$link_count" "$md_file" + line_number="$( sed -E 's/^.*:([[:digit:]]+);.*$/\1/' <<< "$line" )" + [[ -n "$verbose" ]] && printf '[%d/%d]: line_number: %s\n' "$i" "$link_count" "$line_number" + new_link="$( sed 's/^.*:[[:digit:]];//' <<< "$line" )" + [[ -n "$verbose" ]] && printf '[%d/%d]: new_link: %s\n' "$i" "$link_count" "$new_link" + + if [[ -z "$md_file" || -z "$line_number" || -z "$new_link" || "$md_file" == "$line" || "$line_number" == "$line" || "$new_link" == "$line" || "${md_file}:${line_number};${new_link}" != "$line" ]]; then + printf '[%d/%d]: ERROR: Could not parse new link line: %s\n' "$i" "$link_count" "$line" + ec=1 + continue + fi + # This sed command uses the a line number to identify which line to update, and the c directive to + # replace the entire line with new content. It's a little clunky because it insists that the c + # is followed by a \ and then the new content must all be on its own line. And it has to end in a + # newline because sed doesn't automatically include that. Without that newline, the line below gets + # appended to the new content and the file ultimately has one less line. + if ! sed "$( printf '%d c\\\n%s' "$line_number" "$new_link" )"$'\n' "$md_file" > "$tfile"; then + printf '[%d/%d]: ERROR: Command failed: sed to update line %d in %s with new link: %s\n' "$i" "$link_count" "$line_number" "$md_file" "$new_link" + ec=1 + continue + fi + + if ! mv "$tfile" "$md_file"; then + printf '[%d/%d]: ERROR: Command failed: mv %s %s\n' "$i" "$link_count" "$tfile" "$md_file" + ec=1 + continue + fi + + [[ -n "$verbose" ]] && printf '[%d/%d]: Success.\n' "$i" "$link_count" +done < "$new_links_file" + +if [[ "$ec" -eq '0' ]]; then + [[ -z "$quiet" ]] && printf 'Done.\n' +fi -safe_exit 0 \ No newline at end of file +clean_exit "$ec" \ No newline at end of file From 9be46a762003d8bf96f874e21cb584cab2ab41ef Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Wed, 3 Jul 2024 23:03:46 -0600 Subject: [PATCH 09/16] Fix some entries that were looking for the wrong message name. --- x/marker/spec/01_state.md | 3 +++ x/metadata/spec/02_state.md | 7 +++++++ x/trigger/spec/02_state.md | 1 + 3 files changed, 11 insertions(+) diff --git a/x/marker/spec/01_state.md b/x/marker/spec/01_state.md index ec9febb8ae..f33c4e44aa 100644 --- a/x/marker/spec/01_state.md +++ b/x/marker/spec/01_state.md @@ -18,8 +18,10 @@ Markers are represented as a type that extends the `base_account` type of the `auth` SDK module. As a valid account a marker is able to perform normal functions such as receiving and holding coins, and having a defined address that can be queried against for balance information from the `bank` module. + +++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/marker.proto#L28-L63 + ```go type MarkerAccount struct { // cosmos base_account including address and account number @@ -181,6 +183,7 @@ iterator from the auth module. ### Marker Net Asset Value A marker can support multiple distinct net asset values assigned to track settlement pricing information on-chain. The `price` attribute denotes the value assigned to the marker for a specific asset's associated `volume`. For instance, when considering a scenario where 10 billion `nhash` holds a value of 15¢, the corresponding `volume` should reflect the quantity of 10,000,000,000. The `update_block_height` attribute captures the block height when the update occurred. + +++ https://github.com/provenance-io/provenance/blob/25070572cc898c476f5bb1a816c6c1c4d07e3d38/proto/provenance/marker/v1/marker.proto#L96-L104 diff --git a/x/metadata/spec/02_state.md b/x/metadata/spec/02_state.md index 09161c7fcc..fadae76b45 100644 --- a/x/metadata/spec/02_state.md +++ b/x/metadata/spec/02_state.md @@ -41,6 +41,7 @@ Byte Array Length: `17` * Bech32 Example: `"scope1qzge0zaztu65tx5x5llv5xc9ztsqxlkwel"` #### Scope Values + +++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/scope.proto#L69-L96 @@ -110,6 +111,7 @@ Byte Array Length: `33` * Bech32 Example: `"session1qxge0zaztu65tx5x5llv5xc9zts9sqlch3sxwn44j50jzgt8rshvqyfrjcr"` #### Session Values + +++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/scope.proto#L98-L124 @@ -166,6 +168,7 @@ Byte Array Length: `33` * Bech32 Example: `"record1q2ge0zaztu65tx5x5llv5xc9ztsw42dq2jdvmdazuwzcaddhh8gmu3mcze3"` #### Record Values + +++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/scope.proto#L126-L150 @@ -221,6 +224,7 @@ Byte Array Length: `17` * Bech32 Example: `"scopespec1qnwg86nsatx5pl56muw0v9ytlz3qu3jx6m"` #### Scope Specification Values + +++ https://github.com/provenance-io/provenance/blob/4192fd46ea56574bb4ffcacb632d8bb54a720b28/proto/provenance/metadata/v1/specification.proto#L36-L58 @@ -285,6 +289,7 @@ Byte Array Length: `17` * Bech32 Example: `"contractspec1q000d0q2e8w5say53afqdesxp2zqzkr4fn"` #### Contract Specification Values + +++ https://github.com/provenance-io/provenance/blob/4192fd46ea56574bb4ffcacb632d8bb54a720b28/proto/provenance/metadata/v1/specification.proto#L60-L86 @@ -351,6 +356,7 @@ Byte Array Length: `33` * Bech32 Example: `"recspec1qh00d0q2e8w5say53afqdesxp2zw42dq2jdvmdazuwzcaddhh8gmuqhez44"` #### Record Specification Values + +++ https://github.com/provenance-io/provenance/blob/4192fd46ea56574bb4ffcacb632d8bb54a720b28/proto/provenance/metadata/v1/specification.proto#L88-L108 @@ -396,6 +402,7 @@ Byte Array Length: `21` | 2-(21 or 33) | The bytes of the owner address. | #### Object Store Locator Values + +++ https://github.com/provenance-io/provenance/blob/main/proto/provenance/metadata/v1/objectstore.proto#L9-L16 diff --git a/x/trigger/spec/02_state.md b/x/trigger/spec/02_state.md index f5164d3892..718ad5bc54 100644 --- a/x/trigger/spec/02_state.md +++ b/x/trigger/spec/02_state.md @@ -60,6 +60,7 @@ The `Attribute` is used by the `TransactionEvent` to allow the user to configure --- ## Queue + The `Queue` is an internal structure that we use to store and throttle the execution of `Triggers` on the `BeginBlock`. We store each `Trigger` as a `QueuedTrigger`, and then manipulate the `Queue Start Index` and `Queue Length` whenever we add or remove from the `Queue`. When we add to the `Queue`, the new element is added to the `QueueStartIndex` + `Length`. The `QueueLength` is then incremented by one. When we dequeue from the Queue, the `QueueStartIndex` will be incremented by 1 and the `QueueLength` is decremented by 1. We also ensure the key of the dequeued element is removed. From 4f1da00d89351a609bd06a2d84544c54a25ac22a Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Wed, 3 Jul 2024 23:08:56 -0600 Subject: [PATCH 10/16] Final script fixes. --- scripts/update-spec-links.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/update-spec-links.sh b/scripts/update-spec-links.sh index 7fd989928d..32b78c1f1e 100755 --- a/scripts/update-spec-links.sh +++ b/scripts/update-spec-links.sh @@ -117,7 +117,7 @@ fi ######################################## Identify files that will be updated. ######################################## ######################################################################################################################## -link_prefix='+++ https://github\.com/provenance-io/provenance.*/' +link_prefix="+++ https://github.com/provenance-io/provenance/blob/$ref/" link_rx='^\+\+\+ https://github\.com/provenance-io/provenance.*/proto/.*\.proto' link_rx_esc="$( sed 's|\\|\\\\|g;' <<< "$link_rx" )" declare files=() @@ -514,9 +514,9 @@ while IFS="" read -r line || [[ -n "$line" ]]; do # :; md_file="$( sed 's/:.*$//' <<< "$line" )" [[ -n "$verbose" ]] && printf '[%d/%d]: md_file: %s\n' "$i" "$link_count" "$md_file" - line_number="$( sed -E 's/^.*:([[:digit:]]+);.*$/\1/' <<< "$line" )" + line_number="$( sed -E 's/^[^:]*:([[:digit:]]+);.*$/\1/' <<< "$line" )" [[ -n "$verbose" ]] && printf '[%d/%d]: line_number: %s\n' "$i" "$link_count" "$line_number" - new_link="$( sed 's/^.*:[[:digit:]];//' <<< "$line" )" + new_link="$( sed -E 's/^[^:]*:[[:digit:]]+;//' <<< "$line" )" [[ -n "$verbose" ]] && printf '[%d/%d]: new_link: %s\n' "$i" "$link_count" "$new_link" if [[ -z "$md_file" || -z "$line_number" || -z "$new_link" || "$md_file" == "$line" || "$line_number" == "$line" || "$new_link" == "$line" || "${md_file}:${line_number};${new_link}" != "$line" ]]; then From f63a110248f6b611e009023b43ca93e0d02b5c22 Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Fri, 5 Jul 2024 22:33:35 -0600 Subject: [PATCH 11/16] Update some documentation in the new script stuff. Add better control over output. Make it possible to have the script only do cleanup on success. --- scripts/identify-endpoints.awk | 71 ++++--- scripts/identify-links.awk | 133 ++++++++++++ scripts/identify-messages.awk | 47 ++++- scripts/update-spec-links.sh | 365 ++++++++++++++++++++++++--------- 4 files changed, 481 insertions(+), 135 deletions(-) diff --git a/scripts/identify-endpoints.awk b/scripts/identify-endpoints.awk index 9687e3c578..97cf448161 100644 --- a/scripts/identify-endpoints.awk +++ b/scripts/identify-endpoints.awk @@ -2,44 +2,74 @@ # Example usage: awk -f identify-endpoints.awk # To include debugging information in the output, provide these arguments to the awk command: -v debug='1' # -# Ouptut will have the format: +# This file must be in the scripts/ directory so that the update-spec-links.sh script can find it. +# This script was designed only with update-spec-links.sh in mind, but exists +# as its own awk script file to help facilitate troubleshooting and maintenence. +# +# Each line of ouptut will have one of these formats: # rpc::Request:;= # rpc::Response:;= # The value will be relative to the repo root directory (e.g. it will start with "proto/"). # Note that the output has the twice. That makes it so we can find the entry by the start of the line # and we have exactly what we need to replace it with after the double colons, without any extra special parsing needed. +# +# You can basically think of each line having this format: +# ; +# Where has the format: +# rpc::(Request|Response): +# And has the format: +# = +# +# The lines are generated in identify-links.awk. +# That script can also output lines. +# The update-spec-links.sh script will use the output of this script +# to convert entries into entries. +# +# This script is not a complete solution for identifying services and endpoints in proto +# files as it almost certainly does not account for all syntax options. For example, +# this will not handle cases when there are internal comments in rpc lines. It also +# assumes the service's closing brace is on a line of its own all the way to the left. +# I'm sure there are other ways that this does not accurately parse protobuf syntax. +# At the very least, it does allow for the endpoint to be defined with multiple lines. +# { if (InService!="") { + # By assuming the proto file passes the linter, we can assume that, if a + # line starts with a closing curly brace, it's the end of the service section. if (/^}/) { if (debug!="") { print "DEBUG " FNR ": End of service section."; }; InService=""; next; }; + if (RpcLine!="") { + # If a previous line started an rpc definition, but didn't yet have all of it, + # append this line to what we previously had (effectively changing the newline into a space). if (debug!="") { print "DEBUG " FNR ": rpc line continued: " $0; }; RpcLine=RpcLine " " $0; } else if (/^[[:space:]]*rpc/) { + # It's an endpoint definition line (or at least the start of it. if (debug!="") { print "DEBUG " FNR ": rpc line Start: " $0; }; RpcLine=$0; } - if (match(RpcLine,/rpc[[:space:]]+[^(]+\([^)]+\)[[:space:]]+returns[[:space:]]+\([^)]+\)/)) { - # Clean up the RpcLine so that it has the format "() returns () ..." - if (debug!="") { print "DEBUG " FNR ": [1/4]: RpcLine: " RpcLine; }; - sub(/^[[:space:]]+rpc[[:space:]]+/,"",RpcLine); - if (debug!="") { print "DEBUG " FNR ": [2/4]: RpcLine: " RpcLine; }; - sub(/[[:space:]]+/," ",RpcLine); - if (debug!="") { print "DEBUG " FNR ": [3/4]: RpcLine: " RpcLine; }; - sub(/[[:space:]]+$/,"",RpcLine); - if (debug!="") { print "DEBUG " FNR ": [4/4]: RpcLine: " RpcLine; }; - # Extract the endpoint name by deleting everything in the RpcLine after (and including) the first opening paren. + if (RpcLine ~ /rpc[[:space:]]+[^(]+\([^)]+\)[[:space:]]+returns[[:space:]]+\([^)]+\)/) { + # The rpc line should now have evertything we need in here. It'll have a format like this: + # rpc () returns ()[] + # It's possible that the whitespace in that format is actually multipe spaces. + if (debug!="") { print "DEBUG " FNR ": RpcLine: " RpcLine; }; + + # Extract the endpoint name by deleting the "rpc" part and leading spacing. + # Then delete everything after (and including) the first opening paren. Endpoint=RpcLine; - if (debug!="") { print "DEBUG " FNR ": [1/2] Endpoint: " Endpoint; }; + if (debug!="") { print "DEBUG " FNR ": [1/3] Endpoint: " Endpoint; }; + sub(/^[[:space:]]*rpc[[:space:]]+/,"",Endpoint); + if (debug!="") { print "DEBUG " FNR ": [2/3] Endpoint: " Endpoint; }; sub(/\(.*$/,"",Endpoint); - if (debug!="") { print "DEBUG " FNR ": [2/2] Endpoint: " Endpoint; }; + if (debug!="") { print "DEBUG " FNR ": [3/3] Endpoint: " Endpoint; }; # Extract the request name by deleting everything before (and including) the first open paren. - # Then delete evertying after (and including) the first closing paren). + # Then delete evertying after (and including) the first closing paren. Req=RpcLine; if (debug!="") { print "DEBUG " FNR ": [1/3] Req: " Req; }; sub(/^[^(]+\(/,"",Req); @@ -51,7 +81,7 @@ # Then delete everything after (and including) the first closing paren in what's left. Resp=RpcLine; if (debug!="") { print "DEBUG " FNR ": [1/3] Resp: " Resp; }; - sub(/^.*returns[[:space:]]+\(/,"",Resp); + sub(/^.*[[:space:]]returns[[:space:]]+\(/,"",Resp); if (debug!="") { print "DEBUG " FNR ": [2/3] Resp: " Resp; }; sub(/\).*$/,"",Resp); if (debug!="") { print "DEBUG " FNR ": [3/3] Resp: " Resp; }; @@ -60,26 +90,21 @@ Source=""; if (debug!="") { print "DEBUG " FNR ": No FILENAME found. Source: " Source; }; } else { + # We need the source to be relative to the repo root, so strip out the stuff before that. Source=FILENAME; if (debug!="") { print "DEBUG " FNR ": [1/2] Source: " Source; }; sub(/^.*\/proto\//,"proto/",Source); if (debug!="") { print "DEBUG " FNR ": [2/2] Source: " Source; }; } - # Output a line for the request and response. - # The format of these lines should be ":" where - # matches the format from identify-links.awk output for rpc-lookup lines. + # Output a line each for the request and response. print "rpc:" Endpoint ":Request:" Source ";" Req "=" Source; print "rpc:" Endpoint ":Response:" Source ";" Resp "=" Source; + # We're done with the current RpcLine, go back to waiting for the next one. RpcLine=""; } } else if (/^service /) { if (debug!="") { print "DEBUG " FNR ": Start of service section."; }; InService=$0; - if (debug!="") { print "DEBUG " FNR ": [1/3] InService: " InService; }; - sub(/^service[[:space:]]+/,"",InService); - if (debug!="") { print "DEBUG " FNR ": [2/3] InService: " InService; }; - sub(/[[:space:]].*$/,"",InService); - if (debug!="") { print "DEBUG " FNR ": [3/3] InService: " InService; }; } } \ No newline at end of file diff --git a/scripts/identify-links.awk b/scripts/identify-links.awk index b5abee58bb..43a1da1c9e 100644 --- a/scripts/identify-links.awk +++ b/scripts/identify-links.awk @@ -3,6 +3,12 @@ # Example usage: awk -v LinkRx='^\\+\\+\\+' -f identify-links.awk # To include debugging information in the output, provide these arguments to the awk command: -v debug='1' # +# This file must be in the scripts/ directory so that the update-spec-links.sh script can find it. +# This script was designed only with update-spec-links.sh in mind, but exists +# as its own awk script file to help facilitate troubleshooting and maintenence. +# The LinkRx must be provided as an arg because that script also needs that regex, +# and I didn't want to have to maintain it in multiple places. +# # There are several possible formats for output lines: # * If the message type can be detected: # :;= @@ -12,6 +18,133 @@ # :;rpc::Response: # * If there is a problem: # :;ERROR: : +# +# After invoking this script, you should check the output for any lines with ";ERROR: " in them. +# The output from the identify-endpoints.awk script can be used to convert the ;rpc::(RequestResponse): +# lines to the ;= format. +# The output from the identify-messages.awk script can then be used to add the line numbers to the ;= lines. +# +# The is the one that this awk script is parsing. +# The is the number of the line that the link is on. +# The is extracted from the link and will be relative to the repo's root. +# The is identified by a markdown header or a link comment. +# The is also identified by a markdown header. +# See below for more information on the and values. +# +# When a link is found, context is used to identify the desired content of that link so that the correct line numbers can be identified. +# The desired content can either be a message/enum, or else it can be an endpoint request or response message. +# If it's a message or enum, the output will have this format (for the link): +# :;= +# The +# If we are in a request or response section, the endpoint request/response output format is used: +# :;rpc::(Request|Response): +# +# A line of interest is one that is a header line, link line, link comment line, or is "Request:" or "Response:". +# Only lines of interest are considered by this script. +# The rest of the markdown file's content is simply ignored. +# +# A link message html comment applies only to the next link. +# These are also often refert to as a "link comment" or "link message comment". +# Their use does not interrupt the other patterns described in here. +# This allows you to use them on any link without interfering with the other patterns. +# An error is generated if the next line of interest after a link comment is NOT a link. +# +# An "endpoint section" is identified in one of two ways: +# 1. A header of either "Msg/" or "Query/" (aka a "clearly defined endpoint header"). +# 2. A header that has a request and/or response section. +# +# A Request section is started by either a "Request" header (e.g. "### Request") or the line "Request:". +# It is ended at either the next header or the line "Response:" +# A Response section is started by either a "Response" header (e.g. "### Response") or the line "Response:". +# It is ended at the next header. +# +# In a request or response section, the endpoint is identied by the previous non-request/response header. +# +# Here are the patterns this script looks for. +# Note that the links should have an empty line before and after them, but +# they're not included in these examples to make them easier to read in here. +# +# Use the header that the link is under: +# ### MessageName +# +# Spaces are removed from the header strings, so this is treated the same way: +# ### Message Name +# +# A header like this can only be used for a single link. +# An endpoint header followed by request and/or response headers: +# ### EndpointName +# #### Request +# +# #### Response +# +# An endpoint header followed by "Request:" and/or "Response:" lines: +# ### EndpointName +# Request: +# +# Response: +# +# A clearly defined endpoint header followed by one or two links: +# ### Msg/EndpointName +# +# +# If there's only one link after such a header, it's assumed to be the request. +# Only "Msg/" and "Query/" are recognized prefixes for a clearly defined endpoint header. +# Without the "Msg/" or "Query/" prefix in the header, the this script would think that the +# first link should refer to a message or enum with the same name as the "EndpointName", and +# an error would be generated for the second line. +# A link message html comment followed by a link: +# +# +# There cannot be header lines, another link comment or "Request:" or "Response:" lines between the link comment and link. +# +# Here are some more complex examples. Again, there should be empty lines +# before and after each link, but they aren't included in these examples. +# A link comment under another message's header +# ### Message Name +# +# +# +# or even +# ### Message Name +# +# +# +# A link comment under a clearly defined endpoint header. +# ### Msg/EndpointName +# +# +# +# +# +# +# +# Troubleshooting: +# Here are some example error lines, and what they might mean: +# "You must provide a LinkRx value (with -v LinkRx=...) to invoke this script" +# Cause: The LinkRx value was not provided when this awk script was invoked. +# Fix: Include these args in your awk command: -v LinkRx='...' +# "link message comment not above a link: " +# Cause: The first line of interest after a link comment line, is not a link. +# Fix: Either delete the link comment line or else move it closer to the link. +# Note: The included in this error is the line number of the (non-link) +# line of interest, and NOT the line number of the link comment. +# "endpoint already has a request and response" +# Cause: There are three or more links under a "Msg/Endpoint" or "Query/Endpoint" header. +# Fix: Add a link comment above one or more links in the section. +# Note: The first link (without a link comment) is assumed to the the request, +# and the second is the response. So you don't need to put a link comment +# above those two, just the ones that are neither the request nor response. +# "multiple links found in endpoint (request|response) section" +# Cause: There is a request or response section in the markdown that has two or more links. +# Fix: Add a link comment above the non-request/response links. +# You might also consider adding headers above each of those links so that those messages +# can be easily linked to by other documentation. +# Note: The first link (without a link comment) is taken to be either the request +# or response (depending on the section). All other links must have a link comment. +# "could not identify desired content of link" +# Cause: There is probably two links in a non-endpoint section, but there might be other things that cause this. +# Fix: Either add a link comment or a new header above the problematic link. +# { if (FNR==1) { if (LinkRx=="") { diff --git a/scripts/identify-messages.awk b/scripts/identify-messages.awk index dab6d8a531..bcb08f7980 100644 --- a/scripts/identify-messages.awk +++ b/scripts/identify-messages.awk @@ -2,13 +2,29 @@ # Example usage: awk -f identify-messages.awk # To include debugging information in the output, provide these arguments to the awk command: -v debug='1' # +# This file must be in the scripts/ directory so that the update-spec-links.sh script can find it. +# This script was designed only with update-spec-links.sh in mind, but exists +# as its own awk script file to help facilitate troubleshooting and maintenence. +# # Each line of output will have the format: # ;=#L-L # The value will be relative to the repo root directory (e.g. it will start with "proto/"). +# The will be the line number of the first line of the message comment if there is such a comment. +# If there's no leading message comment, is the "message " line. +# The will be the line number of the closing brace of the message. +# +# The output of this script is used by update-spec-links.sh to convert entries like +# "=" into "#L-L". +# The leading semicolon is included at the start of each line so that, when grepping the output of this script, +# we can use -F but still match against the start of a line. Without the semicolon, +# grepping for something like Order=proto/... would also match entries for AskOrder and BidOrder. +# +# This script is not a complete solution for identifying the line numbers of protobuf messages and enums. +# It will fail to find nested types, and assumes the proto file passes the linter. # -# This file must be in the scripts/ directory so that the update-spec-links.sh script can find it. { if (MsgName!="") { + # If we have a message name, all we're really looking for is the closing curly brace. if (/^}[[:space:]]*$/) { if (debug!="") { print "DEBUG " FNR ": End of message: " $0; }; MsgEnd=FNR; @@ -16,33 +32,43 @@ if (debug!="") { print "DEBUG " FNR ": Still in message: " $0;}; }; } else if (/^[[:space:]]*$/) { + # Not in a message, and its an empty line. Reset the MsgStart. + # This ensures that the comment included above a message is just the comment for that message. if (debug!="") { print "DEBUG " FNR ": Blank line, reset: " $0; }; - MsgName=""; MsgStart=""; } else { + # Non-empty line outside of a message. + # If we don't yet have a MsgStart, assume this is it (for now). + # This allows us to include message comments in the line number range. if (MsgStart=="") { MsgStart=FNR; if (debug!="") { print "DEBUG " FNR ": Setting MsgStart=[" MsgStart "]: " $0; }; }; + + # Finally, if this actually is the start of a message or enum, extract the name + # and check to see if this line is also the end of that message or enum. if (/^(message|enum) /) { - # First, remove any line-ending comments, then any internal comments. + # The line is a message or enum declaration. if (debug!="") { print "DEBUG " FNR ": [1/3] Line: " $0; }; + # First remove any line-ending comments from the line. sub(/\/\/.*$/,""); if (debug!="") { print "DEBUG " FNR ": [2/3] Line: " $0; }; + # Then remove any internal comments and allow for the + # end of the comment to be on another line. gsub(/\/\*.*(\*\/|$)/,""); if (debug!="") { print "DEBUG " FNR ": [3/3] Line: " $0; }; - # Extract the message/enum name from whats left by removing the "message" or "enum" prefix - # and everything after the first space. + # Now, Extract the message/enum name from whats. MsgName=$0; - if (debug!="") { print "DEBUG " FNR ": [1/3] MsgName: " MsgName; }; + # Remove the leading "message" or "enum" text and whitespace. sub(/^(message|enum)[[:space:]]+/,"",MsgName); if (debug!="") { print "DEBUG " FNR ": [2/3] MsgName: " MsgName; }; - sub(/[[:space:]].*$/,"",MsgName); + # Lastly, remove everything after (and including) the first space or opening curly brace. + sub(/[[:space:]{].*$/,"",MsgName); if (debug!="") { print "DEBUG " FNR ": [3/3] MsgName: " MsgName; }; - # If the uncommented line has a closing curly brace, the message/enum is empty, but we still need it. - # Otherwise, switch to being inside a message. + # If the (uncommented) line has a closing curly brace, assume it closes the message (e.g. an empty message). + # Otherwise, we now have a MsgName, so we're inside a message. if (/}/) { if (debug!="") { print "DEBUG " FNR ": Also is end of message."; }; MsgEnd=FNR; @@ -52,13 +78,14 @@ }; }; - if (debug!="") { print "DEBUG " FNR ": MsgName=[" MsgName "], MsgStart=[" MsgStart "], MsgEnd=[" MsgEnd "]"; }; # If we have everything, output a line about it and reset for the next one. + if (debug!="") { print "DEBUG " FNR ": MsgName=[" MsgName "], MsgStart=[" MsgStart "], MsgEnd=[" MsgEnd "]"; }; if (MsgName!="" && MsgStart!="" && MsgEnd!="") { if (FILENAME=="") { Source=""; if (debug!="") { print "DEBUG " FNR ": No FILENAME found. Source: " Source; }; } else { + # We need the source to be relative to the repo root, so strip out the stuff before that. Source=FILENAME; if (debug!="") { print "DEBUG " FNR ": [1/2] Source: " Source; }; sub(/^.*\/proto\//,"proto/",Source); diff --git a/scripts/update-spec-links.sh b/scripts/update-spec-links.sh index 32b78c1f1e..5f24df4554 100755 --- a/scripts/update-spec-links.sh +++ b/scripts/update-spec-links.sh @@ -1,37 +1,76 @@ #!/usr/bin/env bash -# This script will update all the proto reference links in our spec docs. +# This script will update all the proto reference links in our spec docs to have a new and correct line numbers. +# The following scripts must be in the same directory as this one: +# identify-links.awk +# identify-endpoints.awk +# identify-messages.awk + +simple_usage='Usage: ./update-spec-links.sh [] [ ...]' show_usage () { cat << EOF This script will update all the proto reference links in our spec docs. -Usage: ./update-spec-links.sh [--source ] [ ...] +$simple_usage +[]: [--help] [--source (|--ref)|--source-is-ref] [--no-clean] [--quiet|--verbose] This script will identify the desired content of the links and update both the ref and line numbers in each link. -The can be a branch, tag, or commit. It is used for the update links and is the single part of the url after '/blob/...' +The is the branch, tag, or commit that the updated links should have. +It is the part of the url after '/blob/' but before the file's path. +Example values and the a link they might produce: + Tag: 'v1.19.0' -> https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/marker.proto#L14-L26 + Branch: 'release/v1.19.x' -> https://github.com/provenance-io/provenance/blob/release/v1.19.x/proto/provenance/marker/v1/marker.proto#L14-L26 + Commit: '17b9b8c3e655b6a56840841b83252b241d01ff14' -> https://github.com/provenance-io/provenance/blob/17b9b8c3e655b6a56840841b83252b241d01ff14/proto/provenance/marker/v1/marker.proto#L14-L26 +The first non-flag argument is taken to be the , but it can also be preceded by the --ref flag if desired. + +By default the currently checked-out proto files are used to identify message line numbers and endpoint messages. +To use a different version as the source for this identification, provide the --source option. +The can be a branch, tag, or commit. +If you want to use the same as the , you can either provide the as "--ref" +(e.g. with the args: --source --ref) or with just the --source-is-ref flag. +Keep in mind that using the same source and ref means that the ref must already be available for download. + +By default, this will update all files under the current directory (recursively). +To limit this update to specific files or directories (recursively), provide them as extra arguments. -By default the currently checked-out proto files are used to identify the line numbers. -To use a different version for the source, provide the --source option. - can be a branch, tag, or commit. +To reduce output, you can provide the --quiet or -q flag. +For extra processing output, you can provide the --verbose or -v flag. +If multiple of --quiet -q --verbose and/or -v are given, the one last provided is used. -By default, this will update all files under the current directory (recusively). -To limit this update to specific files or directories (recursively), provide them as extra arguments. +A temporary directory is used for the source proto files and some helper/processing files. +By default, the source proto files will be copies of what's currently in your repo locally. +If a is identified, curl will be used to download those proto files from github. + +By default, the temp directory is deleted when the script ends (either successfully or with an error). +To keep the directory around regardless of outcome, supply the --no-clean flag. +To keep the directory around only in the case of errors, supply the --no-clean-on-error flag. +To always delete the directory (same as default behavior), supply the --always-clean flag. +These can also be provided as --clean never --clean ok or --clean always respectively. +If multiple --no-clean --no-clean-on-error --always-clean and/or --clean flags are provided, the last one is used. Example proto reference link line: +++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/marker.proto#L14-L25 In this example, the is '22740319ba4b3ba268b3720d4bee36d6c6b06b40'. -TODO: document how this identifies the desired content of a link. +For documentation on how the desired content of a link is determined, see identify-links.awk. EOF } -repo_root="$( git rev-parse --show-toplevel )" || exit $? +# This script requires a few other scripts that must be in the same directory. +# To consistently find them, we'll need to know the absolute path to the dir with this script. where_i_am="$( cd "$( dirname "${BASH_SOURCE:-$0}" )"; pwd -P )" +# Define paths to each of the required scripts. +# Note that each of these can alternatively be defined as environment variables +# primarily so that it's easier to test/develop alternative versions of each one. +identify_messages_awk="${IDENTIFY_MESSAGES_AWK:-${where_i_am}/identify-messages.awk}" +identify_endpoints_awk="${IDENTIFY_ENDPOINTS_AWK:-${where_i_am}/identify-endpoints.awk}" +identify_links_awk="${IDENTIFY_LINKS_AWK:-${where_i_am}/identify-links.awk}" + declare files_in=() declare dirs_in=() @@ -49,29 +88,73 @@ while [[ "$#" -gt '0' ]]; do source_ref="$2" shift ;; + --source-is-ref|--source--ref) + source_ref='--ref' + ;; -r|--ref) if [[ -z "$2" ]]; then printf 'No argument provided after %s.\n' "$1" exit 1 fi - ref="$1" + if [[ -n "$ref" ]]; then + printf 'two s provided: %s and %s\n' "$ref" "$2" + exit 1 + fi + ref="$2" + shift ;; -q|--quiet) quiet='YES' verbose='' ;; - --not-quiet) - quiet='' - ;; -v|--verbose) verbose='YES' quiet='' ;; - --not-verbose) - verbose='' + --output) + if [[ -z "$2" ]]; then + printf 'No argument provided after %s.\n' "$1" + exit 1 + fi + case "$2" in + q|quiet) + quiet='YES' + verbose='' + ;; + v|verbose) + quiet='' + verbose='YES' + ;; + n|normal|d|default) + quiet='' + verbose='' + ;; + *) + printf 'Unknown %s value: "%s". Must be one of: "quiet", "verbose", or "normal".\n' "$1" "$2" + exit 1 + ;; + esac + shift ;; --no-clean|--no-cleanup) - no_clean='YES' + clean='never' + ;; + --no-clean-on-error|--no-cleanup-on-error) + clean='ok' + ;; + --always-clean|--always-cleanup) + clean='always' + ;; + --clean|--cleanup) + if [[ -z "$2" ]]; then + printf 'No argument provided after %s.\n' "$1" + exit 1 + elif [[ "$2" != 'never' && "$2" != 'ok' && "$2" != 'always' ]]; then + printf 'Unknown %s value: "%s". Must be one of: "never", "ok", or "always".\n' "$1" "$2" + exit 1 + fi + clean="$2" + shift ;; *) if [[ -z "$ref" ]]; then @@ -82,7 +165,7 @@ while [[ "$#" -gt '0' ]]; do files_in+=( "$1" ) else printf 'File or directory not found: %s\n' "$1" - stop_early='YES' + exit 1 fi ;; esac @@ -90,14 +173,11 @@ while [[ "$#" -gt '0' ]]; do done if [[ -z "$ref" ]]; then + printf '%s\n' "$simple_usage" printf 'No ref provided.\n' exit 1 fi -if [[ -n "$stop_early" ]]; then - exit 1 -fi - if [[ -n "$verbose" ]]; then if [[ "${#files_in[@]}" -eq '0' ]]; then printf 'No files provided.\n' @@ -113,6 +193,28 @@ if [[ -n "$verbose" ]]; then fi fi +if [[ "$source_ref" == '--ref' ]]; then + source_ref="$ref" +fi + +if [[ ! -f "$identify_messages_awk" ]]; then + printf 'Could not find the identify-messages awk script: %s\n' "$identify_messages_awk" + stop_early='1' +fi +if [[ ! -f "$identify_endpoints_awk" ]]; then + printf 'Could not find the identify-endpoints awk script: %s\n' "$identify_endpoints_awk" + stop_early='1' +fi +if [[ ! -f "$identify_links_awk" ]]; then + printf 'Could not find the identify-links awk script: %s\n' "$identify_links_awk" + stop_early='1' +fi + +if [[ -n "$stop_early" ]]; then + exit 1 +fi + + ######################################################################################################################## ######################################## Identify files that will be updated. ######################################## ######################################################################################################################## @@ -155,7 +257,7 @@ for folder in "${dirs_in[@]}"; do j=0 for file in "${new_files[@]}"; do j=$(( j + 1 )) - [[ -n "$verbose" ]] && printf '[%d/%d|%d/%d]: %s' "$i" "${#dirs_in[@]}" "$j" "${#new_files[@]}" "$file" + [[ -n "$verbose" ]] && printf '[%d/%d|%d/%d]: %s' "$i" "${#dirs_in[@]}" "$j" "${#new_files[@]}" "$file" if [[ "$file" =~ \.md$ ]]; then files+=( "$file" ) [[ -n "$verbose" ]] && printf '\n' @@ -184,7 +286,7 @@ fi ########################################### Identify proto files involved. ########################################### ######################################################################################################################## -[[ -z "$quiet" ]] && printf 'Identifying proto files linked to from %d files.\n' "${#files[@]}" +[[ -z "$quiet" ]] && printf 'Identifying proto files linked to from %d markdown files.\n' "${#files[@]}" declare protos_linked=() i=0 @@ -201,7 +303,7 @@ for file in "${files[@]}"; do j=0 for new_file in "${new_proto_files[@]}"; do j=$(( j + 1 )) - printf '[%d/%d|%d/%d]: %s\n' "$i" "${#files[@]}" "$j" "${#new_proto_files[@]}" "$new_file" + printf '[%d/%d|%d/%d]: %s\n' "$i" "${#files[@]}" "$j" "${#new_proto_files[@]}" "$new_file" done fi protos_linked+=( "${new_proto_files[@]}" ) @@ -210,8 +312,7 @@ for file in "${files[@]}"; do fi done -[[ -n "$verbose" ]] && printf 'All linked protos (with dups) (%d):\n' "${#protos_linked[@]}" -[[ -n "$verbose" ]] && printf ' %s\n' "${protos_linked[@]}" +[[ -n "$verbose" ]] && printf 'All linked protos (with dups) (%d):\n' "${#protos_linked[@]}" && printf ' %s\n' "${protos_linked[@]}" # Deduplicate entries linked from multiple files. declare protos=() @@ -227,6 +328,15 @@ set +o noglob [[ -z "$quiet" ]] && printf 'Getting %d proto files.\n' "${#protos[@]}" +if [[ -z "$source_ref" ]]; then + # If there isn't a source ref, then we're copying the proto files from the local version. + # But all we'll know is the path relative to the repo root. So, below, we'll convert that + # relative path to an absolute path for the cp command so that this script from any directory + # in this repo. We're doing this before trying to create the temp directory so that we don't + # have to worry about the extra cleanup if this fails. + repo_root="$( git rev-parse --show-toplevel )" || exit $? +fi + temp_dir="$( mktemp -d -t link-updates )" [[ -n "$verbose" ]] && printf 'Created temp dir for protos: %s\n' "$temp_dir" @@ -237,12 +347,12 @@ clean_exit () { ec="${1:-0}" if [[ -n "$temp_dir" && -d "$temp_dir" ]]; then - if [[ -n "$no_clean" ]]; then - [[ -z "$quiet" ]] && printf 'NOT deleting temporary directory: %s\n' "$temp_dir" - else + if [[ "$clean" == 'always' || ( "$clean" == 'ok' && "$ec" -eq '0' ) ]]; then [[ -n "$verbose" ]] && printf 'Deleting temporary directory: %s\n' "$temp_dir" rm -rf "$temp_dir" temp_dir='' + else + [[ -z "$quiet" ]] && printf 'NOT deleting temporary directory: %s\n' "$temp_dir" fi fi @@ -255,22 +365,30 @@ for file in "${protos[@]}"; do [[ -n "$verbose" ]] && printf '[%d/%d]: Getting: %s ... ' "$i" "${#protos[@]}" "$file" file_dir="$( dirname "$file" )" dest_dir="${temp_dir}/${file_dir}" - mkdir -p "$dest_dir" + if ! mkdir -p "$dest_dir"; then + printf 'ERROR: Command failed: mkdir -p "%s"\n' "$dest_dir" + clean_exit 1 + fi if [[ -n "$source_ref" ]]; then dest_file="${temp_dir}/${file}" header_file="$dest_file.header" url="https://raw.githubusercontent.com/provenance-io/provenance/${source_ref}/$file" - [[ -n "$verbose" ]] && printf 'From: %s\n' "$url" + [[ -n "$verbose" ]] && printf 'From url: %s\n' "$url" curl --silent -o "$dest_file" --dump-header "$header_file" "$url" if ! head -n 1 "$header_file" | grep -q '200[[:space:]]*$' > /dev/null 2>&1; then - printf 'Source file not found: %s\n' "$url" + printf 'ERROR: Source file not found: %s\n' "$url" stop_early='YES' fi else + # We know the path relative to the repo's root, convert it to an absolute path. + # Otherwise, this script would only work if run from the repo's root. source_file="${repo_root}/${file}" - [[ -n "$verbose" ]] && printf 'From: %s\n' "$source_file" - cp "$source_file" "$dest_dir" || stop_early='YES' + [[ -n "$verbose" ]] && printf 'From file: %s\n' "$source_file" + if ! cp "$source_file" "$dest_dir"; then + printf 'ERROR: Command failed: cp "%s" "%s"\n' "$source_file" "$dest_dir" + stop_early='YES' + fi fi done @@ -296,71 +414,78 @@ get_line_count () { # Each line of the message summary file is expected to have this format: # ;=#L-L -message_summary_file="${temp_dir}/message_summary.txt" +message_summary_file="${temp_dir}/message-summary.txt" [[ -n "$verbose" ]] && printf 'Creating summary of all message and enums: %s\n' "$message_summary_file" -find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am}/identify-messages.awk" >> "$message_summary_file" || clean_exit $? +find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "$identify_messages_awk" >> "$message_summary_file" || clean_exit $? [[ -n "$verbose" ]] && printf 'Found %d messages/enums in the proto files.\n' "$( get_line_count "$message_summary_file" )" ######################################################################################################################## -################################################# Identify Endpoints ################################################# +####################################### Identify Endpoints in the Proto Files. ####################################### ######################################################################################################################## [[ -z "$quiet" ]] && printf 'Identifying endpoint messages in the proto files.\n' # Each line of the endpoint summary file is expected to have this format: # rpc::(Request|Response):;= -endpoint_summary_file="${temp_dir}/endpoint_summary.txt" +endpoint_summary_file="${temp_dir}/endpoint-summary.txt" [[ -n "$verbose" ]] && printf 'Creating summary of all endpoint messages: %s\n' "$endpoint_summary_file" -find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "${where_i_am}/identify-endpoints.awk" >> "$endpoint_summary_file" || clean_exit $? +find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "$identify_endpoints_awk" >> "$endpoint_summary_file" || clean_exit $? [[ -n "$verbose" ]] && printf 'Found %d endpoint messages in the proto files.\n' "$( get_line_count "$endpoint_summary_file" )" - - ######################################################################################################################## -############################################ Identify Links and Content. ############################################# +################################# Identify Links and Content in the Markdown Files. ################################## ######################################################################################################################## [[ -z "$quiet" ]] && printf 'Identifying proto links and their content in %d markdown files.\n' "${#files[@]}" -# First pass, identify all the links and their content. +# This is done in three steps: +# 1. Process the markdown files and identify all links and their content. +# 2. Convert all endpoint entries into message entries. +# 3. Identify the correct line numbers, and create the updated links. +# +# At each step, it's possible for new errors to be introduced. +# However, each step will pass previous errors along, and errors will only be looked for after the third step. +# This way, if there are errors, we get more of them all at once instead of having to fix a bunch before finding +# out if there are more. The fix for these errors will usually involve updating the proto files. + +# First step: Process the markdown files and identify all links and their content. # The lines in the initial link info file are expected to each have one of the following formats: # :;= # :;rpc::(Request|Response): # :;ERROR: : -initial_link_info_file="${temp_dir}/initial_link_info.txt" -[[ -n "$verbose" ]] && printf 'Identifying link content, initial pass of %d files: %s\n' "${#files[@]}" "$initial_link_info_file" +link_info_file="${temp_dir}/1-link-info.txt" +[[ -n "$verbose" ]] && printf 'Identifying link content in %d files: %s\n' "${#files[@]}" "$link_info_file" i=0 for file in "${files[@]}"; do i=$(( i + 1 )) [[ -n "$verbose" ]] && printf '[1:%d/%d]: Processing: %s\n' "$i" "${#files[@]}" "$file" - awk -v LinkRx="$link_rx_esc" -f "${where_i_am}/identify-links.awk" "$file" >> "$initial_link_info_file" || clean_exit $? + awk -v LinkRx="$link_rx_esc" -f "$identify_links_awk" "$file" >> "$link_info_file" || clean_exit $? done -rpc_count="$( grep ';rpc:' "$initial_link_info_file" | get_line_count )" +rpc_count="$( grep ';rpc:' "$link_info_file" | get_line_count )" if [[ -n "$verbose" ]]; then - printf 'Found %d links in %d files.\n' "$( get_line_count "$initial_link_info_file" )" "${#files[@]}" - printf 'Identified the message name for %d links.\n' "$( grep -F '=' "$initial_link_info_file" | get_line_count )" + printf 'Found %d links in %d files.\n' "$( get_line_count "$link_info_file" )" "${#files[@]}" + printf 'Identified the message name for %d links.\n' "$( grep -F '=' "$link_info_file" | get_line_count )" printf 'Identified the endpoint and type for %d links.\n' "$rpc_count" - printf 'Found %d problems.\n' "$( grep -F ';ERROR' "$initial_link_info_file" | get_line_count )" + printf 'Found %d problems.\n' "$( grep -F ';ERROR' "$link_info_file" | get_line_count )" fi -# We'll move onto the second pass even if there were errors because new errors might be found; -# this will provide us with a more complete picture of problems. - -# Second pass, change all of the rpc lines with the format: +# Second step: Convert all endpoint entries into message entries. +# Basically, change all of the rpc lines with the format: # :;rpc::(Request|Response): # To a message line with the format: # :;= +# Lines with other formats are passed forward untouched. -link_info_file="${temp_dir}/link_info.txt" -[[ -n "$verbose" ]] && printf 'Identifying message name for %d links: %s\n' "$rpc_count" "$link_info_file" +link_message_info_file="${temp_dir}/2-link-message-info.txt" +[[ -n "$verbose" ]] && printf 'Identifying message name for %d links: %s\n' "$rpc_count" "$link_message_info_file" i=0 while IFS="" read -r line || [[ -n "$line" ]]; do if [[ ! "$line" =~ ';rpc:' ]]; then # Not an rpc-lookup line, just pass it on. - printf '%s\n' "$line" >> "$link_info_file" + printf '%s\n' "$line" >> "$link_message_info_file" continue fi @@ -368,14 +493,16 @@ while IFS="" read -r line || [[ -n "$line" ]]; do [[ -n "$verbose" ]] && printf '[2:%d/%d]: Processing: %s\n' "$i" "$rpc_count" "$line" # The line has this format: # :;rpc::(Request|Response): - # Split the line into the line number and the rest. + # Split the line into: + # The lead: : + # And the endpoint lookup string: rpc::(Request|Response): lead="$( sed 's/;.*$//' <<< "$line" )" [[ -n "$verbose" ]] && printf '[2:%d/%d]: lead: %s\n' "$i" "$rpc_count" "$lead" to_find="$( sed 's/^[^;]*;//' <<< "$line" )" [[ -n "$verbose" ]] && printf '[2:%d/%d]: to_find: %s\n' "$i" "$rpc_count" "$to_find" if [[ -z "$lead" || -z "$to_find" || "$lead" == "$to_find" ]]; then [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Error: Could not split lead and to_find.\n' "$i" "$ok_count" - printf '%s;ERROR: could not parse as endpoint lookup line\n' "$line" >> "$link_info_file" + printf '%s;ERROR: could not parse as endpoint lookup line\n' "$line" >> "$link_message_info_file" continue fi @@ -388,39 +515,45 @@ while IFS="" read -r line || [[ -n "$line" ]]; do [[ -n "$verbose" ]] && printf '[2:%d/%d]: found_lines (%d): %q\n' "$i" "$rpc_count" "$found_lines_count" "$found_lines" if [[ "$found_lines_count" -eq '1' ]]; then - message="$( sed 's/^[^;]*;//' <<< "$found_lines" )" + # Extract the combined message and file from what we found: = + message="$( sed -E 's/^[^;]+;//' <<< "$found_lines" )" [[ -n "$verbose" ]] && printf '[2:%d/%d]: message: %s\n' "$i" "$rpc_count" "$message" - if [[ -z "$message" || "$message" == "$found_lines" ]]; then - [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Error: Could not parse [%s].\n' "$i" "$rpc_count" "$found_lines" - printf '%s;ERROR: could not parse message from %s for %s\n' "$lead" "$found_lines" "$to_find" >> "$link_info_file" - else + if [[ -n "$message" && "$message" != "$found_lines" ]]; then [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Success: Message identified.\n' "$i" "$rpc_count" - printf '%s;%s\n' "$lead" "$message" >> "$link_info_file" + printf '%s;%s\n' "$lead" "$message" >> "$link_message_info_file" + else + [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Error: Could not parse [%s].\n' "$i" "$rpc_count" "$found_lines" + printf '%s;ERROR: could not parse message from %s for %s\n' "$lead" "$found_lines" "$to_find" >> "$link_message_info_file" fi elif [[ "$found_lines_count" -eq '0' ]]; then [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Error: Not found.\n' "$i" "$rpc_count" - printf '%s;ERROR: could not find endpoint message: %s\n' "$lead" "$to_find" >> "$link_info_file" + # If you get this error, check that the section has the correct endpoint name and not the name of a message. + printf '%s;ERROR: could not find endpoint message: %s\n' "$lead" "$to_find" >> "$link_message_info_file" else [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Error: Multiple messages identified.\n' "$i" "$rpc_count" - printf '%s;ERROR: found %d endpoint messages: %s\n' "$lead" "$found_lines_count" "$to_find" >> "$link_info_file" + printf '%s;ERROR: found %d endpoint messages: %s\n' "$lead" "$found_lines_count" "$to_find" >> "$link_message_info_file" fi -done < "$initial_link_info_file" +done < "$link_info_file" -link_count="$( get_line_count "$link_info_file" )" -problem_count="$( grep -F ';ERROR' "$link_info_file" | get_line_count )" +link_count="$( get_line_count "$link_message_info_file" )" +problem_count="$( grep -F ';ERROR' "$link_message_info_file" | get_line_count )" if [[ -n "$verbose" ]]; then printf 'Found %d links in %d files.\n' "$link_count" "${#files[@]}" - printf 'Know the message name for %d links.\n' "$( grep '=' "$link_info_file" | get_line_count )" - printf 'Still need to get the endpoint messages for %d links.\n' "$( grep ';rpc:' "$link_info_file" | get_line_count )" + printf 'Found the message name for %d links.\n' "$( grep '=' "$link_message_info_file" | get_line_count )" printf 'Found %d problems.\n' "$problem_count" fi -# Again, we'll move onto the third pass even if there were errors because new errors might be found; -# this will provide us with a more complete picture of problems. +# Third step: Identify the correct line numbers, and create the updated links. +# Basically convert all of these lines: +# :;= +# into this format: +# :; +# where has this format: +# +++ #L-L +# Lines with other formats are passed forward untouched. -# Third pass, generate the new links ok_count=$(( link_count - problem_count )) -new_links_file="${temp_dir}/new_links.txt" +new_links_file="${temp_dir}/3-new-links.txt" [[ -n "$verbose" ]] && printf 'Creating %d new links: %s\n' "$ok_count" "$new_links_file" i=0 @@ -435,10 +568,13 @@ while IFS="" read -r line || [[ -n "$line" ]]; do [[ -n "$verbose" ]] && printf '[3:%d/%d]: Processing: %s\n' "$i" "$ok_count" "$line" # All lines here should have this format: - # :;= - lead="$( sed 's/;.*$//' <<< "$line" )" + # :;= + # Split the line into: + # The lead: : + # The message and file to find: = + lead="$( sed -E 's/;.*$//' <<< "$line" )" [[ -n "$verbose" ]] && printf '[3:%d/%d]: lead: %s\n' "$i" "$ok_count" "$lead" - to_find="$( sed 's/^[^;]*;//' <<< "$line" )" + to_find="$( sed -E 's/^[^;]+;//' <<< "$line" )" [[ -n "$verbose" ]] && printf '[3:%d/%d]: to_find: %s\n' "$i" "$ok_count" "$to_find" if [[ -z "$lead" || -z "$to_find" || "$lead" == "$to_find" ]]; then [[ -n "$verbose" ]] && printf '[3:%d/%d]: Result: Error: Could not split lead and to_find.\n' "$i" "$ok_count" @@ -446,31 +582,49 @@ while IFS="" read -r line || [[ -n "$line" ]]; do continue fi - # We just need to find a matching entry in the message_summary_file, which has lines with this format: + # Lines in the message_summary_file have this format: # ;=#L-L + # And in the "$to_find" variable, we have this format: + # = + # The ; is used so that I have specific characters bounding the . + # This lets me provide "$to_find" to grep with the -F flag while only matching on + # the exact , without also matching other message names that have this one as a prefix. + # E.g. "Order=proto/..." needs to not also match "AskOrder=proto/...". + # Without the ;, I'd have to omit the -F flag, escape stuff in "$to_find" and add a ^ to the front of the regex. + # But I like to avoid such escaping if possible, so I went with the ; route in here. + # The # is needed in the link anyway, but also provides a handy ending bound on "$to_find". + found_lines="$( grep -F ";${to_find}#" "$message_summary_file" )" found_lines_count="$( get_line_count <<< "$found_lines" )" [[ -z "$found_lines" || "$found_lines" =~ ^[[:space:]]*$ ]] && found_lines_count='0' [[ -n "$verbose" ]] && printf '[3:%d/%d]: found_lines (%d): %q\n' "$i" "$ok_count" "$found_lines_count" "$found_lines" if [[ "$found_lines_count" -eq '1' ]]; then + # A found line will have this format: ;=#L-L + # Extract the relative link: #L-L relative_link="$( sed -E 's/^[^=]+=//' <<< "$found_lines" )" [[ -n "$verbose" ]] && printf '[3:%d/%d]: relative_link: %s\n' "$i" "$ok_count" "$relative_link" - if [[ -z "$relative_link" || "$found_lines" == "$relative_link" ]]; then - printf '%s;ERROR: could not parse relative link for %s from %s\n' "$lead" "$to_find" "$found_lines" >> "$new_links_file" - else + if [[ -n "$relative_link" && "$found_lines" != "$relative_link" ]]; then [[ -n "$verbose" ]] && printf '[3:%d/%d]: Result: Success: New link created.\n' "$i" "$ok_count" - link="${link_prefix}${relative_link}" - printf '%s;%s\n' "$lead" "$link" >> "$new_links_file" + printf '%s;%s\n' "$lead" "${link_prefix}${relative_link}" >> "$new_links_file" + else + [[ -n "$verbose" ]] && printf '[3:%d/%d]: Result: Error: Could not parse [%s].\n' "$i" "$ok_count" "$found_lines" + printf '%s;ERROR: could not parse relative link for %s from %s\n' "$lead" "$to_find" "$found_lines" >> "$new_links_file" fi elif [[ "$found_lines_count" -eq '0' ]]; then [[ -n "$verbose" ]] && printf '[3:%d/%d]: Result: Error: Not found.\n' "$i" "$ok_count" + # If you get this error, the here probably does not exist. You'll either want to update the + # section header that the link is in, or else add a link comment. printf '%s;ERROR: could not find message line numbers: %s\n' "$lead" "$to_find" >> "$new_links_file" else [[ -n "$verbose" ]] && printf '[3:%d/%d]: Result: Error: Multiple message line number entries identified.\n' "$i" "$ok_count" printf '%s;ERROR: found %d message line number entries: %s\n' "$lead" "$found_lines_count" "$to_find" >> "$new_links_file" fi -done < "$link_info_file" +done < "$link_message_info_file" + +# At this point, all of the lines should have one of these formats: +# :; +# :;ERROR link_count="$( get_line_count "$new_links_file" )" ok_count="$( grep -E ';\+\+\+ ' "$new_links_file" | get_line_count )" @@ -481,7 +635,7 @@ if [[ -n "$verbose" ]]; then printf 'Found %d problems.\n' "$problem_count" fi -# Now, we'll check for errors and stop if any are found. +# Finally, if there are any errors, stop and output them. problem_count="$( grep ';ERROR' "$new_links_file" | get_line_count )" [[ -n "$verbose" ]] && printf 'Checking for link identification errors: %s\n' "$new_links_file" if [[ "$problem_count" -ne '0' ]]; then @@ -490,12 +644,15 @@ if [[ "$problem_count" -ne '0' ]]; then clean_exit 1 fi +# Also make sure that every line in new_links_file is an updated link line. if [[ "$link_count" -ne "$ok_count" ]]; then printf 'Could not create new links (%d) for every current link (%d).\n' "$ok_count" "$link_count" grep -Ev ';\+\+\+ ' "$new_links_file" clean_exit 1 fi +# Finally, all lines should now have this format: +# :; ######################################################################################################################## ############################################# Update the markdown files. ############################################# @@ -504,6 +661,7 @@ fi [[ -z "$quiet" ]] && printf 'Updating %d links in %d files.\n' "$link_count" "${#files[@]}" tfile="$temp_dir/temp.md" +problems=0 ec=0 i=0 while IFS="" read -r line || [[ -n "$line" ]]; do @@ -511,42 +669,45 @@ while IFS="" read -r line || [[ -n "$line" ]]; do [[ -n "$verbose" ]] && printf '[%d/%d]: Applying update: %s\n' "$i" "$link_count" "$line" # Each line should have this format: - # :; - md_file="$( sed 's/:.*$//' <<< "$line" )" + # :; + md_file="$( sed -E 's/^([^:]+):.+$/\1/' <<< "$line" )" [[ -n "$verbose" ]] && printf '[%d/%d]: md_file: %s\n' "$i" "$link_count" "$md_file" - line_number="$( sed -E 's/^[^:]*:([[:digit:]]+);.*$/\1/' <<< "$line" )" + line_number="$( sed -E 's/^[^:]+:([[:digit:]]+);.+$/\1/' <<< "$line" )" [[ -n "$verbose" ]] && printf '[%d/%d]: line_number: %s\n' "$i" "$link_count" "$line_number" - new_link="$( sed -E 's/^[^:]*:[[:digit:]]+;//' <<< "$line" )" + new_link="$( sed -E 's/^[^:]+:[[:digit:]]+;//' <<< "$line" )" [[ -n "$verbose" ]] && printf '[%d/%d]: new_link: %s\n' "$i" "$link_count" "$new_link" if [[ -z "$md_file" || -z "$line_number" || -z "$new_link" || "$md_file" == "$line" || "$line_number" == "$line" || "$new_link" == "$line" || "${md_file}:${line_number};${new_link}" != "$line" ]]; then printf '[%d/%d]: ERROR: Could not parse new link line: %s\n' "$i" "$link_count" "$line" - ec=1 + problems=$(( problems + 1 )) continue fi - # This sed command uses the a line number to identify which line to update, and the c directive to + # This sed command uses a line number to identify which line to update, and the c directive to # replace the entire line with new content. It's a little clunky because it insists that the c # is followed by a \ and then the new content must all be on its own line. And it has to end in a - # newline because sed doesn't automatically include that. Without that newline, the line below gets - # appended to the new content and the file ultimately has one less line. + # newline because sed doesn't automatically include that in the replacement; i.e., without it, + # the line below gets appended to the new content and the file ultimately has one less line. + # The ending newline can't be included in the printf because "$( )" might strip it. if ! sed "$( printf '%d c\\\n%s' "$line_number" "$new_link" )"$'\n' "$md_file" > "$tfile"; then printf '[%d/%d]: ERROR: Command failed: sed to update line %d in %s with new link: %s\n' "$i" "$link_count" "$line_number" "$md_file" "$new_link" - ec=1 + problems=$(( problems + 1 )) continue fi if ! mv "$tfile" "$md_file"; then - printf '[%d/%d]: ERROR: Command failed: mv %s %s\n' "$i" "$link_count" "$tfile" "$md_file" - ec=1 + printf '[%d/%d]: ERROR: Command failed: mv "%s" "%s"\n' "$i" "$link_count" "$tfile" "$md_file" + problems=$(( problems + 1 )) continue fi [[ -n "$verbose" ]] && printf '[%d/%d]: Success.\n' "$i" "$link_count" done < "$new_links_file" -if [[ "$ec" -eq '0' ]]; then - [[ -z "$quiet" ]] && printf 'Done.\n' +if [[ "$problems" -ne '0' ]]; then + printf 'Failed to update %d links.\n' "$problems" + clean_exit 1 fi -clean_exit "$ec" \ No newline at end of file +[[ -z "$quiet" ]] && printf 'Done.\n' +clean_exit 0 From 9ceb3198e742ae7f1db09eebd6ef676bf2b183c8 Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Mon, 8 Jul 2024 09:44:23 -0600 Subject: [PATCH 12/16] Run the script to update all the links to v1.19.0-rc2. That's already been published, so I was able to click on all the links to verify that they are correct. --- x/exchange/spec/02_state.md | 2 +- x/exchange/spec/03_messages.md | 128 +++++++++++++++---------------- x/exchange/spec/05_queries.md | 96 +++++++++++------------ x/exchange/spec/06_params.md | 4 +- x/hold/spec/04_queries.md | 10 +-- x/marker/spec/01_state.md | 6 +- x/marker/spec/03_messages.md | 84 ++++++++++---------- x/marker/spec/10_governance.md | 16 ++-- x/metadata/spec/02_state.md | 14 ++-- x/metadata/spec/03_messages.md | 92 +++++++++++----------- x/metadata/spec/05_queries.md | 92 +++++++++++----------- x/oracle/spec/03_messages.md | 8 +- x/oracle/spec/04_queries.md | 8 +- x/oracle/spec/06_genesis.md | 2 +- x/quarantine/spec/03_messages.md | 12 +-- x/quarantine/spec/05_queries.md | 16 ++-- x/sanction/spec/03_messages.md | 6 +- x/sanction/spec/05_queries.md | 20 ++--- x/trigger/spec/02_state.md | 12 +-- x/trigger/spec/03_messages.md | 8 +- x/trigger/spec/04_queries.md | 8 +- x/trigger/spec/07_genesis.md | 2 +- 22 files changed, 323 insertions(+), 323 deletions(-) diff --git a/x/exchange/spec/02_state.md b/x/exchange/spec/02_state.md index 258d5d2cbd..8fc3b87c4f 100644 --- a/x/exchange/spec/02_state.md +++ b/x/exchange/spec/02_state.md @@ -220,7 +220,7 @@ Commitment Settlement Bips is stored as a uint16. Each market has an associated `MarketAccount` with an address derived from the `market_id`. Each `MarketAccount` is stored using the `Accounts` module. -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/market.proto#L14-L26 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L14-L26 ### Market Details diff --git a/x/exchange/spec/03_messages.md b/x/exchange/spec/03_messages.md index bf3cb513c3..f9e26f5315 100644 --- a/x/exchange/spec/03_messages.md +++ b/x/exchange/spec/03_messages.md @@ -65,15 +65,15 @@ It is expected to fail if: #### MsgCreateAskRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L116-L124 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L125-L133 #### AskOrder -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/orders.proto#L28-L53 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/orders.proto#L30-L56 #### MsgCreateAskResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L126-L130 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L135-L139 ### CreateBid @@ -98,15 +98,15 @@ It is expected to fail if: #### MsgCreateBidRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L132-L140 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L141-L149 #### BidOrder -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/orders.proto#L55-L78 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/orders.proto#L58-L86 #### MsgCreateBidResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L142-L146 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L151-L155 ### CommitFunds @@ -123,11 +123,11 @@ It is expected to fail if: #### MsgCommitFundsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L148-L163 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L157-L176 #### MsgCommitFundsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L165-L166 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L178-L179 ### CancelOrder @@ -149,11 +149,11 @@ It is expected to fail if: #### MsgCancelOrderRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L168-L178 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L181-L191 #### MsgCancelOrderResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L180-L181 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L193-L194 ### FillBids @@ -180,11 +180,11 @@ It is expected to fail if: #### MsgFillBidsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L183-L203 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L196-L220 #### MsgFillBidsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L205-L206 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L222-L223 ### FillAsks @@ -211,11 +211,11 @@ It is expected to fail if: #### MsgFillAsksRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L208-L229 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L225-L250 #### MsgFillAsksResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L231-L232 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L252-L253 ## Market Endpoints @@ -250,11 +250,11 @@ It is expected to fail if: #### MsgMarketSettleRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L234-L251 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L255-L272 #### MsgMarketSettleResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L253-L254 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L274-L275 ### MarketCommitmentSettle @@ -271,11 +271,11 @@ It is expected to fail if: #### MsgMarketCommitmentSettleRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L256-L276 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L277-L297 #### MsgMarketCommitmentSettleResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L278-L279 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L299-L300 ### MarketReleaseCommitments @@ -292,11 +292,11 @@ It is expected to fail if: #### MsgMarketReleaseCommitmentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L281-L294 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L302-L315 #### MsgMarketReleaseCommitmentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L296-L297 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L317-L318 ### MarketSetOrderExternalID @@ -318,11 +318,11 @@ It is expected to fail if: #### MsgMarketSetOrderExternalIDRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L299-L313 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L320-L334 #### MsgMarketSetOrderExternalIDResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L315-L316 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L336-L337 ### MarketWithdraw @@ -339,11 +339,11 @@ It is expected to fail if: #### MsgMarketWithdrawRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L318-L332 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L339-L357 #### MsgMarketWithdrawResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L334-L335 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L359-L360 ### MarketUpdateDetails @@ -358,13 +358,13 @@ It is expected to fail if: #### MsgMarketUpdateDetailsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L337-L348 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L362-L373 See also: [MarketDetails](#marketdetails). #### MsgMarketUpdateDetailsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L350-L351 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L375-L376 ### MarketUpdateAcceptingOrders @@ -381,11 +381,11 @@ It is expected to fail if: #### MsgMarketUpdateAcceptingOrdersRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L377-L388 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L402-L413 #### MsgMarketUpdateAcceptingOrdersResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L390-L391 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L415-L416 ### MarketUpdateUserSettle @@ -403,11 +403,11 @@ It is expected to fail if: #### MsgMarketUpdateUserSettleRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L393-L406 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L418-L431 #### MsgMarketUpdateUserSettleResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L408-L409 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L433-L434 ### MarketUpdateAcceptingCommitments @@ -426,11 +426,11 @@ It is expected to fail if: #### MsgMarketUpdateAcceptingCommitmentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L411-L424 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L436-L449 #### MsgMarketUpdateAcceptingCommitmentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L426-L427 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L451-L452 ### MarketUpdateIntermediaryDenom @@ -445,11 +445,11 @@ It is expected to fail if: #### MsgMarketUpdateIntermediaryDenomRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L429-L440 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L454-L465 #### MsgMarketUpdateIntermediaryDenomResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L442-L443 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L467-L468 ### MarketManagePermissions @@ -466,13 +466,13 @@ It is expected to fail if: #### MsgMarketManagePermissionsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L445-L460 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L470-L485 See also: [AccessGrant](#accessgrant) and [Permission](#permission). #### MsgMarketManagePermissionsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L462-L463 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L487-L488 ### MarketManageReqAttrs @@ -490,11 +490,11 @@ It is expected to fail if: #### MsgMarketManageReqAttrsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L465-L486 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L490-L511 #### MsgMarketManageReqAttrsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L488-L489 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L513-L514 ## Payment Endpoints @@ -527,15 +527,15 @@ It is expected to fail if: #### MsgCreatePaymentRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L491-L497 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L516-L523 #### Payment -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/payments.proto#L13-L43 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/payments.proto#L14-L52 #### MsgCreatePaymentResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L499-L500 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L525-L526 ### AcceptPayment @@ -554,13 +554,13 @@ It is expected to fail if: #### MsgAcceptPaymentRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L502-L508 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L528-L535 See also: [Payment](#payment). #### MsgAcceptPaymentResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L510-L511 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L537-L538 ### RejectPayment @@ -575,11 +575,11 @@ It is expected to fail if: #### MsgRejectPaymentRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L513-L523 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L540-L550 #### MsgRejectPaymentResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L525-L526 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L552-L553 ### RejectPayments @@ -594,11 +594,11 @@ It is expected to fail if: #### MsgRejectPaymentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L528-L536 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L555-L563 #### MsgRejectPaymentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L538-L539 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L565-L566 ### CancelPayments @@ -613,11 +613,11 @@ It is expected to fail if: #### MsgCancelPaymentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L541-L549 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L568-L576 #### MsgCancelPaymentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L551-L552 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L578-L579 ### ChangePaymentTarget @@ -637,11 +637,11 @@ It is expected to fail if: #### MsgChangePaymentTargetRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L554-L564 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L581-L591 #### MsgChangePaymentTargetResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L566-L567 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L593-L594 ## Governance Proposals @@ -667,15 +667,15 @@ It is expected to fail if: #### MsgGovCreateMarketRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L569-L580 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L596-L607 #### Market -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/market.proto#L52-L148 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L52-L148 #### MarketDetails -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/market.proto#L28-L40 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L28-L40 * The `name` is limited to 250 characters max. * The `description` is limited to 2000 characters max. @@ -684,19 +684,19 @@ It is expected to fail if: #### FeeRatio -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/market.proto#L150-L158 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L150-L158 #### AccessGrant -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/market.proto#L160-L166 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L160-L166 #### Permission -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/market.proto#L168-L186 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L168-L186 #### MsgGovCreateMarketResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L582-L583 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L609-L610 ### GovManageFees @@ -710,13 +710,13 @@ It is expected to fail if: #### MsgGovManageFeesRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L585-L635 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L612-L662 See also: [FeeRatio](#feeratio). #### MsgGovManageFeesResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L637-L638 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L664-L665 ### GovCloseMarket @@ -730,11 +730,11 @@ It is expected to fail if: #### MsgGovCloseMarketRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L640-L648 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L667-L675 #### MsgGovCloseMarketResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/tx.proto#L650-L651 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L677-L678 ### UpdateParams @@ -746,10 +746,10 @@ It is expected to fail if: #### MsgUpdateParamsRequest -+++ https://github.com/provenance-io/provenance/blob/bd2f1ac4396c72970dd40d40e388dcbb1dd98250/proto/provenance/exchange/v1/tx.proto#L697-L706 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L699-L708 See also: [Params](06_params.md#params). #### MsgUpdateParamsResponse -+++ https://github.com/provenance-io/provenance/blob/bd2f1ac4396c72970dd40d40e388dcbb1dd98250/proto/provenance/exchange/v1/tx.proto#L708-L709 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L710-L711 diff --git a/x/exchange/spec/05_queries.md b/x/exchange/spec/05_queries.md index c3a93db6b5..af1074c6f9 100644 --- a/x/exchange/spec/05_queries.md +++ b/x/exchange/spec/05_queries.md @@ -48,13 +48,13 @@ Then choose one entry from each of `settlement_flat_fee_options` and `settlement ### QueryOrderFeeCalcRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L156-L163 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L157-L164 See also: [AskOrder](03_messages.md#askorder), and [BidOrder](03_messages.md#bidorder). ### QueryOrderFeeCalcResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L165-L184 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L166-L185 ## GetOrder @@ -63,15 +63,15 @@ Use the `GetOrder` query to look up an order by its id. ### QueryGetOrderRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L186-L190 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L187-L191 ### QueryGetOrderResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L192-L196 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L193-L197 ### Order -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/orders.proto#L13-L26 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/orders.proto#L15-L28 See also: [AskOrder](03_messages.md#askorder), and [BidOrder](03_messages.md#bidorder). @@ -82,11 +82,11 @@ Orders with external ids can be looked up using the `GetOrderByExternalID` query ### QueryGetOrderByExternalIDRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L198-L204 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L199-L205 ### QueryGetOrderByExternalIDResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L206-L210 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L207-L211 See also: [Order](#order). @@ -100,11 +100,11 @@ This query is paginated. ### QueryGetMarketOrdersRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L212-L223 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L213-L224 ### QueryGetMarketOrdersResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L225-L232 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L226-L233 See also: [Order](#order). @@ -118,11 +118,11 @@ This query is paginated. ### QueryGetOwnerOrdersRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L234-L245 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L235-L246 ### QueryGetOwnerOrdersResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L247-L254 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L248-L255 See also: [Order](#order). @@ -136,11 +136,11 @@ This query is paginated. ### QueryGetAssetOrdersRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L256-L267 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L257-L268 ### QueryGetAssetOrdersResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L269-L276 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L270-L277 See also: [Order](#order). @@ -153,11 +153,11 @@ This query is paginated. ### QueryGetAllOrdersRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L278-L282 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L279-L283 ### QueryGetAllOrdersResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L284-L291 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L285-L292 See also: [Order](#order). @@ -168,11 +168,11 @@ To find out how much an account has committed to a market, use the `GetCommitmen ### QueryGetCommitmentRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L293-L299 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L294-L300 ### QueryGetCommitmentResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L301-L306 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L302-L311 ## GetAccountCommitments @@ -181,11 +181,11 @@ To look up the amounts an account has committed to any market, use the `GetAccou ### QueryGetAccountCommitmentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L308-L312 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L313-L317 ### QueryGetAccountCommitmentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L314-L318 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L319-L323 ## GetMarketCommitments @@ -194,11 +194,11 @@ To get the amounts committed to a market by any account, use the `GetMarketCommi ### QueryGetMarketCommitmentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L320-L327 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L325-L332 ### QueryGetMarketCommitmentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L329-L336 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L334-L341 ## GetAllCommitments @@ -207,11 +207,11 @@ To get all funds committed by any account to any market, use the `GetAllCommitme ### QueryGetAllCommitmentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L338-L342 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L343-L347 ### QueryGetAllCommitmentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L344-L351 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L349-L356 ## GetMarket @@ -220,11 +220,11 @@ All the information and setup for a market can be looked up using the `GetMarket ### QueryGetMarketRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L353-L357 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L358-L362 ### QueryGetMarketResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L359-L365 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L364-L370 See also: [Market](03_messages.md#market). @@ -235,15 +235,15 @@ Use the `GetAllMarkets` query to get brief information about all markets. ### QueryGetAllMarketsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L367-L371 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L372-L376 ### QueryGetAllMarketsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L373-L380 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L378-L385 ### MarketBrief -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/market.proto#L42-L50 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L42-L50 ## Params @@ -252,11 +252,11 @@ The exchange module params can be looked up using the `Params` query. ### QueryParamsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L382-L383 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L387-L388 ### QueryParamsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L385-L389 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L390-L394 See also: [Params](06_params.md#params). @@ -267,13 +267,13 @@ To find out the additional tx fee required for a commitment settlement, use the ### QueryCommitmentSettlementFeeCalcRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L391-L401 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L396-L406 See also: [MsgMarketCommitmentSettleRequest](03_messages.md#msgmarketcommitmentsettlerequest). ### QueryCommitmentSettlementFeeCalcResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L403-L418 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L408-L435 ## ValidateCreateMarket @@ -288,13 +288,13 @@ If the result has: ### QueryValidateCreateMarketRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L420-L424 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L437-L441 See also: [MsgGovCreateMarketRequest](03_messages.md#msggovcreatemarketrequest). ### QueryValidateCreateMarketResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L426-L436 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L443-L453 ## ValidateMarket @@ -305,11 +305,11 @@ Any problems detected will be returned in the `error` field. ### QueryValidateMarketRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L438-L442 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L455-L459 ### QueryValidateMarketResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L444-L448 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L461-L465 ## ValidateManageFees @@ -324,13 +324,13 @@ If the result has: ### QueryValidateManageFeesRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L450-L454 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L467-L471 See also: [MsgGovManageFeesRequest](03_messages.md#msggovmanagefeesrequest). ### QueryValidateManageFeesResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L456-L466 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L473-L483 ## GetPayment @@ -339,11 +339,11 @@ Use the `GetPayment` query to look up a payment by `source` and `external_id`. ### QueryGetPaymentRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L468-L474 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L485-L491 ### QueryGetPaymentResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L476-L480 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L493-L497 See also: [Payment](03_messages.md#payment). @@ -356,11 +356,11 @@ This query is paginated. ### QueryGetPaymentsWithSourceRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L482-L489 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L499-L506 ### QueryGetPaymentsWithSourceResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L491-L498 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L508-L515 See also: [Payment](03_messages.md#payment). @@ -373,11 +373,11 @@ This query is paginated. ### QueryGetPaymentsWithTargetRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L500-L507 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L517-L524 ### QueryGetPaymentsWithTargetResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L509-L516 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L526-L533 See also: [Payment](03_messages.md#payment). @@ -390,11 +390,11 @@ This query is paginated. ### QueryGetAllPaymentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L518-L522 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L535-L539 ### QueryGetAllPaymentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L524-L531 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L541-L548 See also: [Payment](03_messages.md#payment). @@ -405,10 +405,10 @@ The `PaymentFeeCalc` query can be used to calculate the fees for creating or acc ### QueryPaymentFeeCalcRequest -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L533-L537 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L550-L554 See also: [Payment](03_messages.md#payment). ### QueryPaymentFeeCalcResponse -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/query.proto#L539-L547 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L556-L572 diff --git a/x/exchange/spec/06_params.md b/x/exchange/spec/06_params.md index 6bc2b2b42e..b4b9d14ad5 100644 --- a/x/exchange/spec/06_params.md +++ b/x/exchange/spec/06_params.md @@ -23,8 +23,8 @@ See also: [Exchange Fees](01_concepts.md#exchange-fees). ## Params -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/params.proto#L12-L28 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/params.proto#L13-L31 ## DenomSplit -+++ https://github.com/provenance-io/provenance/blob/v1.18.0/proto/provenance/exchange/v1/params.proto#L30-L37 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/params.proto#L33-L40 diff --git a/x/hold/spec/04_queries.md b/x/hold/spec/04_queries.md index 17eb87daee..5fb3737342 100644 --- a/x/hold/spec/04_queries.md +++ b/x/hold/spec/04_queries.md @@ -13,11 +13,11 @@ The query takes in an `address` and returns a coins `amount`. Request: -+++ https://github.com/provenance-io/provenance/blob/dwedul/1607-in-place-escrow/proto/provenance/hold/v1/query.proto#L28-L35 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/hold/v1/query.proto#L28-L35 Response: -+++ https://github.com/provenance-io/provenance/blob/dwedul/1607-in-place-escrow/proto/provenance/hold/v1/query.proto#L37-L45 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/hold/v1/query.proto#L37-L49 It is expected to fail if the `address` is invalid or missing. @@ -30,14 +30,14 @@ The query takes in pagination parameters and returns a list of `address`/`amount Request: -+++ https://github.com/provenance-io/provenance/blob/dwedul/1607-in-place-escrow/proto/provenance/hold/v1/query.proto#L47-L54 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/hold/v1/query.proto#L51-L58 Response: -+++ https://github.com/provenance-io/provenance/blob/dwedul/1607-in-place-escrow/proto/provenance/hold/v1/query.proto#L56-L62 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/hold/v1/query.proto#L60-L66 -+++ https://github.com/provenance-io/provenance/blob/dwedul/1607-in-place-escrow/proto/provenance/hold/v1/hold.proto#L12-L19 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/hold/v1/hold.proto#L12-L23 It is expected to fail if the pagination parameters are invalid. diff --git a/x/marker/spec/01_state.md b/x/marker/spec/01_state.md index f33c4e44aa..03b27e8809 100644 --- a/x/marker/spec/01_state.md +++ b/x/marker/spec/01_state.md @@ -20,7 +20,7 @@ marker is able to perform normal functions such as receiving and holding coins, be queried against for balance information from the `bank` module. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/marker.proto#L28-L63 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/marker.proto#L28-L59 ```go type MarkerAccount struct { @@ -185,7 +185,7 @@ iterator from the auth module. A marker can support multiple distinct net asset values assigned to track settlement pricing information on-chain. The `price` attribute denotes the value assigned to the marker for a specific asset's associated `volume`. For instance, when considering a scenario where 10 billion `nhash` holds a value of 15¢, the corresponding `volume` should reflect the quantity of 10,000,000,000. The `update_block_height` attribute captures the block height when the update occurred. -+++ https://github.com/provenance-io/provenance/blob/25070572cc898c476f5bb1a816c6c1c4d07e3d38/proto/provenance/marker/v1/marker.proto#L96-L104 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/marker.proto#L91-L99 ## Params @@ -194,4 +194,4 @@ and defines overall functioning of the marker module. - Params: `Paramsspace("marker") -> legacy_amino(params)` -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/marker.proto#L14-L25 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/marker.proto#L14-L26 diff --git a/x/marker/spec/03_messages.md b/x/marker/spec/03_messages.md index a03f33a8a1..57aa0e1223 100644 --- a/x/marker/spec/03_messages.md +++ b/x/marker/spec/03_messages.md @@ -34,9 +34,9 @@ A marker is created using the Add Marker service message. The created marker can not be directly added in an Active (or Cancelled/Destroyed) status. Markers must have a valid supply and denomination value. -+++ https://github.com/provenance-io/provenance/blob/d999e7acefea1d77e2d5ce86ea89524dbf2692f8/proto/provenance/marker/v1/tx.proto#L83-L102 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L103-L121 -+++ https://github.com/provenance-io/provenance/blob/d999e7acefea1d77e2d5ce86ea89524dbf2692f8/proto/provenance/marker/v1/tx.proto#L104-L105 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L123-L124 This service message is expected to fail if: @@ -66,9 +66,9 @@ If issued via governance proposal, and has a `from_address` of the governance mo Add Access Request is used to add permissions to a marker that allow the specified accounts to perform the specified actions. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L98-L103 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L126-L133 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L105-106 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L135-L136 This service message is expected to fail if: @@ -89,9 +89,9 @@ and `Active` markers when the caller is currently assigned the `Admin` access ty DeleteAccess Request defines the Msg/DeleteAccess request type -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L108-L113 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L138-L145 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L114-L115 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L146-L147 This service message is expected to fail if: @@ -108,9 +108,9 @@ and `Active` markers when the caller is currently assigned the `Admin` access ty Finalize Request defines the Msg/Finalize request type -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L117-L121 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L149-L155 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L122-L123 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L156-L157 This service message is expected to fail if: @@ -126,9 +126,9 @@ serve as an intermediate step prior to activation that indicates marker configur Activate Request defines the Msg/Activate request type -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L125-L129 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L159-L165 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L130-L131 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L166-L167 This service message is expected to fail if: @@ -149,9 +149,9 @@ float then the `total_supply` value will be set to zero upon activation. Cancel Request defines the Msg/Cancel request type -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L133-L137 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L169-L175 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L138-L139 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L176-L177 This service message is expected to fail if: @@ -169,9 +169,9 @@ This service message is expected to fail if: Delete Request defines the Msg/Delete request type -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L141-L145 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L179-L185 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L146-L147 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L186-L187 This service message is expected to fail if: @@ -187,9 +187,9 @@ This service message is expected to fail if: Mint Request defines the Msg/Mint request type -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L149-L154 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L189-L195 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L155-L156 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L196-L197 This service message is expected to fail if: @@ -205,9 +205,9 @@ This service message is expected to fail if: Burn Request defines the Msg/Burn request type that is used to remove supply of the marker coin from circulation. In order to successfully burn supply the amount to burn must be held by the marker account itself (in escrow). -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L158-L163 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L199-L205 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L164-L165 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L206-L207 This service message is expected to fail if: @@ -224,9 +224,9 @@ Withdraw Request defines the Msg/Withdraw request type and is used to withdraw c NOTE: any denom coin can be held within a marker "in escrow", these values are not restricted to just the denom of the marker itself. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L167-L174 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L209-L222 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L175-L176 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L223-L224 This service message is expected to fail if: @@ -247,9 +247,9 @@ with `TRANSFER` access. If force transfer is not enabled for the marker, the sou permission (via `authz`) to do the transfer. If force transfer is allowed for the marker, the source account does not need to approve of the transfer. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L178-L185 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L226-L234 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L187-L188 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L236-L237 This service message is expected to fail if: @@ -264,9 +264,9 @@ Ibc transfer Request defines the Msg/IbcTransfer request type. The `IbcTransfer NOTE: A transfer request also requires a signature from an account with the transfer permission as well as approval from the account the funds will be withdrawn from. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L190-L197 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L239-L248 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L199-L200 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L250-L251 ## Msg/SetDenomMetadata @@ -274,9 +274,9 @@ SetDenomMetadata Request defines the Msg/SetDenomMetadata request type. This re denom metadata held within the bank module. Denom metadata can be used to provide a more streamlined user experience within block explorers or similar applications. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L202-L207 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L253-L260 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L209-L210 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L262-L263 This service message is expected to fail if: @@ -297,9 +297,9 @@ This service message is expected to fail if: AddFinalizeActivate requested is used for adding, finalizing, and activating a marker in a single request. -+++ https://github.com/provenance-io/provenance/blob/d999e7acefea1d77e2d5ce86ea89524dbf2692f8/proto/provenance/marker/v1/tx.proto#L221-L236 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L265-L281 -+++ https://github.com/provenance-io/provenance/blob/d999e7acefea1d77e2d5ce86ea89524dbf2692f8/proto/provenance/marker/v1/tx.proto#L238-L239 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L283-L284 This service message is expected to fail if: @@ -316,9 +316,9 @@ This service message is expected to fail if: GrantAllowance grants a fee allowance to the grantee on the granter's account. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L61-L72 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L85-L98 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L74-L75 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L100-L101 This service message is expected to fail if: @@ -332,9 +332,9 @@ This service message is expected to fail if: SupplyIncreaseProposal is a governance-only message for increasing the supply of a marker. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L229-L239 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L286-L295 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L241-L242 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L297-L298 This service message is expected to fail if: @@ -348,9 +348,9 @@ See also: [Governance: Supply Increase Proposal](./10_governance.md#supply-incre UpdateRequiredAttributes allows signers that have transfer authority or via gov proposal to add and remove required attributes from a restricted marker. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L244-L255 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L313-L328 -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/tx.proto#L257-L258 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L330-L331 This service message is expected to fail if: @@ -363,9 +363,9 @@ This service message is expected to fail if: UpdateSendDenyList allows signers that have transfer authority or via gov proposal to add and remove addresses to the deny send list for a restricted marker. -+++ https://github.com/provenance-io/provenance/blob/373d0ee8faeaa9e3b70d658e6069ab1781e6ce5e/proto/provenance/marker/v1/tx.proto#L295-L308 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L367-L381 -+++ https://github.com/provenance-io/provenance/blob/373d0ee8faeaa9e3b70d658e6069ab1781e6ce5e/proto/provenance/marker/v1/tx.proto#L310-L311 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L383-L384 This service message is expected to fail if: @@ -381,9 +381,9 @@ This service message is expected to fail if: UpdateForcedTransfer allows for the activation or deactivation of forced transfers for a marker. This message must be submitted via governance proposal. -+++ https://github.com/provenance-io/provenance/blob/a830a8ecf24199469de52b92ee20475d6912f2eb/proto/provenance/marker/v1/tx.proto#L260-L272 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L333-L345 -+++ https://github.com/provenance-io/provenance/blob/a830a8ecf24199469de52b92ee20475d6912f2eb/proto/provenance/marker/v1/tx.proto#L274-L275 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L347-L348 This service message is expected to fail if: @@ -396,9 +396,9 @@ This service message is expected to fail if: SetAccountData allows the association of some data (a string) with a marker. -+++ https://github.com/provenance-io/provenance/blob/e83f1955cba07e2ba87790c4487d22632ae9e69c/proto/provenance/marker/v1/tx.proto#L279-L291 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L350-L362 -+++ https://github.com/provenance-io/provenance/blob/e83f1955cba07e2ba87790c4487d22632ae9e69c/proto/provenance/marker/v1/tx.proto#L293-L294 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L364-L365 This endpoint can either be used directly or via governance proposal. @@ -413,9 +413,9 @@ This service message is expected to fail if: AddNetAssetValuesRequest allows for the adding/updating of net asset values for a marker. -+++ https://github.com/provenance-io/provenance/blob/25070572cc898c476f5bb1a816c6c1c4d07e3d38/proto/provenance/marker/v1/tx.proto#L327-L332 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L386-L393 -+++ https://github.com/provenance-io/provenance/blob/25070572cc898c476f5bb1a816c6c1c4d07e3d38/proto/provenance/marker/v1/tx.proto#L334-L335 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L395-L396 This endpoint can either be used directly or via governance proposal. diff --git a/x/marker/spec/10_governance.md b/x/marker/spec/10_governance.md index 7454f1b2fc..5737575e51 100644 --- a/x/marker/spec/10_governance.md +++ b/x/marker/spec/10_governance.md @@ -28,7 +28,7 @@ bank module. A further difference from the standard add marker flow is that governance proposals to add a marker can directly set a marker to the `Active` status with the appropriate minting operations performed immediately. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/proposals.proto#L15-L34 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L16-L33 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -44,7 +44,7 @@ This request is expected to fail if: SupplyIncreaseProposal defines a governance proposal to administer a marker and increase total supply of the marker through minting coin and placing it within the marker or assigning it directly to an account. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/proposals.proto#L36-L47 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L35-L47 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -55,7 +55,7 @@ This request is expected to fail if: SupplyDecreaseProposal defines a governance proposal to administer a marker and decrease the total supply through burning coin held within the marker -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/proposals.proto#L49-L59 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L49-L60 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -71,7 +71,7 @@ The chain will panic and halt if: SetAdministratorProposal defines a governance proposal to administer a marker and set administrators with specific access on the marker -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/proposals.proto#L61-L71 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L62-L74 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -84,7 +84,7 @@ This request is expected to fail if: RemoveAdministratorProposal defines a governance proposal to administer a marker and remove all permissions for a given address -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/proposals.proto#L73-L83 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L76-L88 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -96,7 +96,7 @@ This request is expected to fail if: ChangeStatusProposal defines a governance proposal to administer a marker to change its status -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/proposals.proto#L85-L94 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L90-L101 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -111,7 +111,7 @@ This request is expected to fail if: WithdrawEscrowProposal defines a governance proposal to withdraw escrow coins from a marker -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/proposals.proto#L96-L107 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L103-L120 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -122,7 +122,7 @@ This request is expected to fail if: SetDenomMetadataProposal defines a governance proposal to set the metadata for a denom. -+++ https://github.com/provenance-io/provenance/blob/22740319ba4b3ba268b3720d4bee36d6c6b06b40/proto/provenance/marker/v1/proposals.proto#L109-L117 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L122-L133 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid diff --git a/x/metadata/spec/02_state.md b/x/metadata/spec/02_state.md index fadae76b45..bef997a06f 100644 --- a/x/metadata/spec/02_state.md +++ b/x/metadata/spec/02_state.md @@ -43,7 +43,7 @@ Byte Array Length: `17` #### Scope Values -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/scope.proto#L69-L96 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/scope.proto#L70-L90 ```protobuf // Scope defines a root reference for a collection of records owned by one or more parties. @@ -113,7 +113,7 @@ Byte Array Length: `33` #### Session Values -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/scope.proto#L98-L124 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/scope.proto#L92-L111 ```protobuf // Session defines an execution context against a specific specification instance. @@ -170,7 +170,7 @@ Byte Array Length: `33` #### Record Values -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/scope.proto#L126-L150 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/scope.proto#L113-L130 ```protobuf // A record (of fact) is attached to a session or each consideration output from a contract @@ -226,7 +226,7 @@ Byte Array Length: `17` #### Scope Specification Values -+++ https://github.com/provenance-io/provenance/blob/4192fd46ea56574bb4ffcacb632d8bb54a720b28/proto/provenance/metadata/v1/specification.proto#L36-L58 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/specification.proto#L36-L51 ```protobuf // ScopeSpecification defines the required parties, resources, conditions, and consideration outputs for a contract @@ -291,7 +291,7 @@ Byte Array Length: `17` #### Contract Specification Values -+++ https://github.com/provenance-io/provenance/blob/4192fd46ea56574bb4ffcacb632d8bb54a720b28/proto/provenance/metadata/v1/specification.proto#L60-L86 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/specification.proto#L53-L76 ```protobuf // ContractSpecification defines the required parties, resources, conditions, and consideration outputs for a contract @@ -358,7 +358,7 @@ Byte Array Length: `33` #### Record Specification Values -+++ https://github.com/provenance-io/provenance/blob/4192fd46ea56574bb4ffcacb632d8bb54a720b28/proto/provenance/metadata/v1/specification.proto#L88-L108 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/specification.proto#L78-L95 ```protobuf // RecordSpecification defines the specification for a Record including allowed/required inputs/outputs @@ -404,7 +404,7 @@ Byte Array Length: `21` #### Object Store Locator Values -+++ https://github.com/provenance-io/provenance/blob/main/proto/provenance/metadata/v1/objectstore.proto#L9-L16 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/objectstore.proto#L12-L23 ```protobuf // Defines an Locator object stored on chain, which represents a owner( blockchain address) associated with a endpoint diff --git a/x/metadata/spec/03_messages.md b/x/metadata/spec/03_messages.md index bd08e10bbb..843c2d862a 100644 --- a/x/metadata/spec/03_messages.md +++ b/x/metadata/spec/03_messages.md @@ -48,7 +48,7 @@ Scopes are identified using their `scope_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L76-L99 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L93-L119 The `scope_uuid` field is optional. It should be a uuid formated as a string using the standard UUID format. @@ -60,7 +60,7 @@ If supplied, it will be used to generate the appropriate scope specification id #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L101-L105 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L121-L125 #### Expected failures @@ -80,11 +80,11 @@ A scope is deleted using the `DeleteScope` service method. #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L107-L120 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L127-L136 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L122-L123 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L138-L139 #### Expected failures @@ -99,11 +99,11 @@ Addresses can be added to a scope's data access list using the `AddScopeDataAcce #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L125-L142 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L141-L154 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L144-L145 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L156-L157 #### Expected failures @@ -119,11 +119,11 @@ Addresses can be deleted from a scope's data access list using the `DeleteScopeD #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L147-L164 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L159-L172 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L166-L167 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L174-L175 #### Expected failures @@ -138,11 +138,11 @@ Scope owners can be added to a scope using the `AddScopeOwner` service method. #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L169-L186 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L177-L190 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L188-L189 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L192-L193 #### Expected failures @@ -159,11 +159,11 @@ All owner parties with any of the provided addresses will be removed from the sc #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L191-L208 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L195-L208 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L210-L211 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L210-L211 #### Expected failures @@ -179,11 +179,11 @@ The value owner address of one or more scopes can be updated using the `UpdateVa #### Request -+++ https://github.com/provenance-io/provenance/blob/37cdb0c84db7b2f91aef057a606c5ba6aece06a1/proto/provenance/metadata/v1/tx.proto#L219-L235 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L213-L225 #### Response -+++ https://github.com/provenance-io/provenance/blob/37cdb0c84db7b2f91aef057a606c5ba6aece06a1/proto/provenance/metadata/v1/tx.proto#L237-L238 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L227-L228 #### Expected failures @@ -199,11 +199,11 @@ All scopes with a given existing value owner address can be updated to have a ne #### Request -+++ https://github.com/provenance-io/provenance/blob/37cdb0c84db7b2f91aef057a606c5ba6aece06a1/proto/provenance/metadata/v1/tx.proto#L240-L252 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L230-L242 #### Response -+++ https://github.com/provenance-io/provenance/blob/37cdb0c84db7b2f91aef057a606c5ba6aece06a1/proto/provenance/metadata/v1/tx.proto#L254-L255 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L244-L245 #### Expected failures @@ -221,7 +221,7 @@ Sessions are identified using their `session_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L213-L238 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L247-L272 The `session_id_components` field is optional. If supplied, it will be used to generate the appropriate session id for use in the `session.session_id` field. @@ -232,7 +232,7 @@ If supplied, it will be used to generate the appropriate contract specification #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L253-L257 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L287-L291 #### Expected failures @@ -259,7 +259,7 @@ Records are identified using their `name` and `session_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L260-L289 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L293-L323 The `session_id_components` field is optional. If supplied, it will be used to generate the appropriate session id for use in the `record.session_id` field. @@ -270,7 +270,7 @@ If supplied, it will be used with `record.name` to generate the appropriate reco #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L291-L295 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L325-L329 #### Expected failures @@ -312,11 +312,11 @@ A record is deleted using the `DeleteRecord` service method. #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L297-L310 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L331-L340 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L312-L313 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L342-L343 #### Expected failures @@ -337,7 +337,7 @@ Scope specifications are identified using their `specification_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L315-L333 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L345-L363 The `spec_uuid` field is optional. It should be a uuid formated as a string using the standard UUID format. @@ -345,7 +345,7 @@ If supplied, it will be used to generate the appropriate scope specification id #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L335-L339 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L365-L369 #### Expected failures @@ -369,11 +369,11 @@ A scope specification is deleted using the `DeleteScopeSpecification` service me #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L341-L354 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L371-L380 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L356-L357 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L382-L383 #### Expected failures @@ -390,7 +390,7 @@ Contract specifications are identified using their `specification_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L359-L377 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L385-L403 The `spec_uuid` field is optional. It should be a uuid formated as a string using the standard UUID format. @@ -398,7 +398,7 @@ If supplied, it will be used to generate the appropriate contract specification #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L379-L384 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L405-L410 #### Expected failures @@ -426,11 +426,11 @@ This will also delete all record specifications associated with this contract sp #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L437-L450 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L447-L456 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L452-L453 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L458-L459 #### Expected failures @@ -446,11 +446,11 @@ A contract specification can be added to a scope specification using the `AddCon #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L386-L406 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L412-L424 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L408-L409 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L426-L427 #### Expected failures @@ -469,11 +469,11 @@ A contract specification can be removed from a scope specification using the `Ad #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L411-L431 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L429-L441 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L433-L435 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L443-L445 #### Expected failures @@ -493,7 +493,7 @@ Record specifications are identified using their `specification_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L455-L473 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L461-L479 The `contract_spec_uuid` field is optional. It should be a uuid formated as a string using the standard UUID format. @@ -501,7 +501,7 @@ If supplied, it will be used with the `specification.name` to generate the appro #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L475-L480 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L481-L486 #### Expected failures @@ -528,11 +528,11 @@ A record specification is deleted using the `DeleteRecordSpecification` service #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L482-L495 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L488-L497 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L497-L498 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L499-L500 #### Expected failures @@ -550,11 +550,11 @@ An Object Store Locator entry is created using the `BindOSLocator` service metho #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L500-L506 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L502-L509 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L508-L511 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L511-L514 #### Expected failures @@ -573,11 +573,11 @@ An Object Store Locator entry is deleted using the `DeleteOSLocator` service met #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L513-L520 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L516-L524 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L522-L525 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L526-L529 #### Expected failures @@ -598,11 +598,11 @@ Object Store Locators are identified by their `owner`. #### Request -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L527-L533 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L531-L538 #### Response -+++ https://github.com/provenance-io/provenance/blob/812cb97c77036b8df59e10845fa8a04f4ba84c43/proto/provenance/metadata/v1/tx.proto#L535-L538 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L540-L543 #### Expected failures @@ -621,9 +621,9 @@ This service message is expected to fail if: Simple data (a string) can be associated with scopes using the `SetAccountData` service method. -+++ https://github.com/provenance-io/provenance/blob/e83f1955cba07e2ba87790c4487d22632ae9e69c/proto/provenance/metadata/v1/tx.proto#L589-L606 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L545-L558 -+++ https://github.com/provenance-io/provenance/blob/e83f1955cba07e2ba87790c4487d22632ae9e69c/proto/provenance/metadata/v1/tx.proto#L608-L609 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L560-L561 This service message is expected to fail if: * The provided address is not a scope id. diff --git a/x/metadata/spec/05_queries.md b/x/metadata/spec/05_queries.md index d0183cd148..0348a8e0a7 100644 --- a/x/metadata/spec/05_queries.md +++ b/x/metadata/spec/05_queries.md @@ -39,12 +39,12 @@ If a requested entry or specification isn't found, an empty wrapper containing o The `Params` query gets the parameters of the metadata module. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L247-L251 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L252-L256 There are no inputs for this query. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L253-L260 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L258-L265 --- @@ -53,7 +53,7 @@ There are no inputs for this query. The `Scope` query gets a scope. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L262-L282 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L267-L287 The `scope_id`, if provided, must either be scope uuid, e.g. `91978ba2-5f35-459a-86a7-feca1b0512e0` or a scope address, e.g. `scope1qzge0zaztu65tx5x5llv5xc9ztsqxlkwel`. The session addr, if provided, must be a bech32 session address, @@ -73,7 +73,7 @@ By default, sessions and records are not included. Set `include_sessions` and/or `include_records` to true to include sessions and/or records. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L284-L295 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L289-L300 --- @@ -84,12 +84,12 @@ The `ScopesAll` query gets all scopes. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L307-L316 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L312-L321 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L318-L327 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L323-L332 --- @@ -98,7 +98,7 @@ The only input to this query is pagination information. The `Sessions` query gets sessions. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L330-L352 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L334-L357 The `scope_id` can either be scope uuid, e.g. `91978ba2-5f35-459a-86a7-feca1b0512e0` or a scope address, e.g. `scope1qzge0zaztu65tx5x5llv5xc9ztsqxlkwel`. Similarly, the `session_id` can either be a uuid or session address, e.g. @@ -127,7 +127,7 @@ By default, the scope and records are not included. Set `include_scope` and/or `include_records` to true to include the scope and/or records. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L354-L365 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L359-L370 --- @@ -138,12 +138,12 @@ The `SessionsAll` query gets all sessions. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L377-L386 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L382-L391 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L388-L397 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L393-L402 --- @@ -152,7 +152,7 @@ The only input to this query is pagination information. The `Records` query gets records. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L399-L422 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L404-L427 The `record_addr`, if provided, must be a bech32 record address, e.g. `record1q2ge0zaztu65tx5x5llv5xc9ztsw42dq2jdvmdazuwzcaddhh8gmu3mcze3`. The `scope_id` can either be scope uuid, e.g. @@ -176,7 +176,7 @@ By default, the scope and sessions are not included. Set `include_scope` and/or `include_sessions` to true to include the scope and/or sessions. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L424-L435 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L429-L440 --- @@ -187,12 +187,12 @@ The `RecordsAll` query gets all records. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L447-L456 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L452-L461 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L458-L467 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L463-L472 --- @@ -205,12 +205,12 @@ A scope is owned by an address if the address is listed as either an owner, or t This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L469-L477 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L474-L482 The `address` should be a bech32 address string. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L479-L488 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L484-L493 --- @@ -221,12 +221,12 @@ The `ValueOwnership` query gets gets the ids of scopes that list an address as t This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L490-L498 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L495-L503 The `address` should be a bech32 address string. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L500-L509 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L505-L514 --- @@ -235,13 +235,13 @@ The `address` should be a bech32 address string. The `ScopeSpecification` query gets a scope specification. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L511-L528 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L516-L533 The `specification_id` can either be a uuid, e.g. `dc83ea70-eacd-40fe-9adf-1cf6148bf8a2` or a bech32 scope specification address, e.g. `scopespec1qnwg86nsatx5pl56muw0v9ytlz3qu3jx6m`. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L530-L541 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L535-L546 --- @@ -252,12 +252,12 @@ The `ScopeSpecificationsAll` query gets all scope specifications. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L551-L560 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L556-L565 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L562-L571 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L567-L576 --- @@ -266,7 +266,7 @@ The only input to this query is pagination information. The `ContractSpecification` query gets a contract specification. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L573-L589 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L578-L594 The `specification_id` can either be a uuid, e.g. `def6bc0a-c9dd-4874-948f-5206e6060a84`, a bech32 contract specification address, e.g. `contractspec1q000d0q2e8w5say53afqdesxp2zqzkr4fn`, or a bech32 record specification @@ -278,7 +278,7 @@ Set `include_record_specs` to true to include them in the result. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L591-L602 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L596-L606 --- @@ -289,12 +289,12 @@ The `ContractSpecificationsAll` query gets all contract specifications. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L612-L621 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L616-L625 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L623-L633 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L627-L636 --- @@ -306,7 +306,7 @@ The only difference between this query and `ContractSpecification` with `include this query does not return the contract specification. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L635-L649 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L638-L652 The `specification_id` can either be a uuid, e.g. `def6bc0a-c9dd-4874-948f-5206e6060a84`, a bech32 contract specification address, e.g. `contractspec1q000d0q2e8w5say53afqdesxp2zqzkr4fn`, or a bech32 record specification @@ -314,7 +314,7 @@ address, e.g. `recspec1qh00d0q2e8w5say53afqdesxp2zw42dq2jdvmdazuwzcaddhh8gmuqhez address, then the contract specification that contains that record specification is used. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L651-L664 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L654-L666 --- @@ -323,7 +323,7 @@ address, then the contract specification that contains that record specification The `RecordSpecification` query gets a record specification. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L666-L683 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L668-L685 The `specification_id` can either be a uuid, e.g. `def6bc0a-c9dd-4874-948f-5206e6060a84` or a bech32 contract specification address, e.g. `contractspec1q000d0q2e8w5say53afqdesxp2zqzkr4fn`. @@ -335,7 +335,7 @@ It is required if the `specification_id` is a uuid or contract specification add It is ignored if the `specification_id` is a record specification address. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L685-L692 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L687-L694 --- @@ -346,12 +346,12 @@ The `RecordSpecificationsAll` query gets all record specifications. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L702-L711 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L704-L713 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L713-L723 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L715-L724 --- @@ -361,12 +361,12 @@ The `GetByAddr` query looks up metadata entries and/or specifications for a give The results of this query are not wrapped with id information like the other queries, and only returns the exact entries requested. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L725-L729 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L726-L730 The `addrs` can contain any valid metadata address bech32 strings. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L731-L747 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L732-L748 Any invalid or nonexistent `addrs` will be in the `not_found` list. @@ -376,12 +376,12 @@ Any invalid or nonexistent `addrs` will be in the `not_found` list. The `OSLocatorParams` query gets the parameters of the Object Store Locator sub-module. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L749-L753 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L750-L754 There are no inputs for this query. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L755-L762 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L756-L763 --- @@ -390,12 +390,12 @@ There are no inputs for this query. The `OSLocator` query gets an Object Store Locator for an address. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L764-L770 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L765-L771 The `owner` should be a bech32 address string. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L772-L778 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L773-L779 --- @@ -404,12 +404,12 @@ The `owner` should be a bech32 address string. The `OSLocatorsByURI` query gets the object store locators by URI. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L780-L788 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L781-L789 The `uri` is string the URI to find object store locators for. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L790-L798 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L791-L799 --- @@ -418,13 +418,13 @@ The `uri` is string the URI to find object store locators for. The `OSLocatorsByScope` query gets the object store locators for the owners and value owner of a scope. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L800-L806 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L801-L807 The `scope_id`, must either be scope uuid, e.g. `91978ba2-5f35-459a-86a7-feca1b0512e0` or a scope address, e.g. `scope1qzge0zaztu65tx5x5llv5xc9ztsqxlkwel` ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L808-L814 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L809-L815 --- @@ -435,12 +435,12 @@ The `OSAllLocators` query gets all object store locators. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L816-L822 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L817-L823 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L824-L832 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L825-L833 --- ## AccountData @@ -448,9 +448,9 @@ The only input to this query is pagination information. The `AccountData` query gets the account data associated with a scope. ### Request -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L834-L843 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L835-L840 The `metadata_addr` must be a scope id, e.g. `scope1qzge0zaztu65tx5x5llv5xc9ztsqxlkwel`. ### Response -+++ https://github.com/provenance-io/provenance/blob/3b77d267d4336deba89fc2196243e80952de51a1/proto/provenance/metadata/v1/query.proto#L845-L849 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L842-L846 diff --git a/x/oracle/spec/03_messages.md b/x/oracle/spec/03_messages.md index e8fc53aeec..59f3f87ee2 100644 --- a/x/oracle/spec/03_messages.md +++ b/x/oracle/spec/03_messages.md @@ -18,11 +18,11 @@ The oracle's address is modified by proposing the `MsgUpdateOracleRequest` messa ### Request -+++ https://github.com/provenance-io/provenance/blob/65865991f93e2c1a7647e29be11f6527f49616e6/proto/provenance/oracle/v1/tx.proto#L37-L46 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/tx.proto#L40-L49 ### Response -+++ https://github.com/provenance-io/provenance/blob/65865991f93e2c1a7647e29be11f6527f49616e6/proto/provenance/oracle/v1/tx.proto#L48-L49 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/tx.proto#L51-L52 The message will fail under the following conditions: * The authority does not match the gov module. @@ -34,11 +34,11 @@ Sends a query to another chain's `Oracle` using `ICQ`. ### Request -+++ https://github.com/provenance-io/provenance/blob/65865991f93e2c1a7647e29be11f6527f49616e6/proto/provenance/oracle/v1/tx.proto#L21-L29 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/tx.proto#L22-L32 ### Response -+++ https://github.com/provenance-io/provenance/blob/65865991f93e2c1a7647e29be11f6527f49616e6/proto/provenance/oracle/v1/tx.proto#L31-L35 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/tx.proto#L34-L38 The message will fail under the following conditions: * The authority does not pass basic integrity and format checks. diff --git a/x/oracle/spec/04_queries.md b/x/oracle/spec/04_queries.md index b97bac5230..a0e8d315a1 100644 --- a/x/oracle/spec/04_queries.md +++ b/x/oracle/spec/04_queries.md @@ -16,11 +16,11 @@ The `QueryOracleAddress` query is used to obtain the address of the module's ora ### Request -+++ https://github.com/provenance-io/provenance/blob/5afab1b1797b0071cf6a19ea5928c5b8f8831329/proto/provenance/oracle/v1/query.proto#L26-L27 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/query.proto#L25-L26 ### Response -+++ https://github.com/provenance-io/provenance/blob/5afab1b1797b0071cf6a19ea5928c5b8f8831329/proto/provenance/oracle/v1/query.proto#L29-L33 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/query.proto#L28-L32 --- @@ -29,10 +29,10 @@ The `QueryOracle` query forwards a query to the module's oracle. ### Request -+++ https://github.com/provenance-io/provenance/blob/5afab1b1797b0071cf6a19ea5928c5b8f8831329/proto/provenance/oracle/v1/query.proto#L35-L39 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/query.proto#L34-L38 ### Response -+++ https://github.com/provenance-io/provenance/blob/5afab1b1797b0071cf6a19ea5928c5b8f8831329/proto/provenance/oracle/v1/query.proto#L41-L45 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/query.proto#L40-L44 The data from the `query` field is a `CosmWasm query` forwarded to the `oracle`. diff --git a/x/oracle/spec/06_genesis.md b/x/oracle/spec/06_genesis.md index e5fa3dba61..0b83e5f49f 100644 --- a/x/oracle/spec/06_genesis.md +++ b/x/oracle/spec/06_genesis.md @@ -15,4 +15,4 @@ In this section we describe the processing of the oracle messages and the corres The GenesisState encompasses the upcoming sequence ID for an ICQ packet, the associated parameters, the designated port ID for the module, and the oracle address. These values are both extracted for export and imported for storage within the store. -+++ https://github.com/provenance-io/provenance/blob/ba0b65c54f61f99c951fe4694271847dbad0fb00/proto/provenance/oracle/v1/genesis.proto#L11-L24 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/genesis.proto#L10-L19 diff --git a/x/quarantine/spec/03_messages.md b/x/quarantine/spec/03_messages.md index 33ec8aa0db..1d9b685f77 100644 --- a/x/quarantine/spec/03_messages.md +++ b/x/quarantine/spec/03_messages.md @@ -12,7 +12,7 @@ An account can activate quarantine using a `MsgOptIn`. It contains only the address to quarantine. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L33-L38 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L36-L41 It is expected to fail if the `to_address` is invalid. @@ -21,7 +21,7 @@ It is expected to fail if the `to_address` is invalid. An account can deactivate quarantine using a `MsgOptOut`. It contains only the address to unquarantine. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L43-L48 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L46-L51 It is expected to fail if the `to_address` is invalid. @@ -31,7 +31,7 @@ Quarantined funds can be accepted by the intended receiver using a `MsgAccept`. It contains a `to_address` (receiver) and one or more `from_addresses` (senders). It also contains a flag to indicate whether auto-accept should be set up for all provided addresses. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L53-L67 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L56-L70 Any quarantined funds for the `to_address` from any `from_address` are accepted (regardless of whether they've been previously declined). @@ -47,7 +47,7 @@ It is expected to fail if: The response will contain a total of all funds released. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L69-L74 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L72-L81 ## Msg/Decline @@ -55,7 +55,7 @@ Quarantined funds can be declined by the intended receiver using a `MsgDecline`. It contains a `to_address` (receiver) and one or more `from_addresses` (senders). It also contains a flag to indicate whether auto-decline should be set up for all provided addresses. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L76-L90 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L83-L97 Any quarantined funds for the `to_address` from any `from_address` are declined. @@ -74,7 +74,7 @@ It is expected to fail if: Auto-Responses can be defined either through the `permanent` flags with a `MsgAccept` or `MsgDecline`, or using a `MsgUpdateAutoResponses`. It contains a `to_address` and a list of `updates`. Each `AutoResponseUpdate` contains a `from_address` and the desired `response` for it. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L95-L104 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L102-L111 Providing a `response` of `AUTO_RESPONSE_UNSPECIFIED` will cause the applicable entry to be deleted, allowing users to un-set previous auto-responses. diff --git a/x/quarantine/spec/05_queries.md b/x/quarantine/spec/05_queries.md index 433102cdc4..f4b88416b7 100644 --- a/x/quarantine/spec/05_queries.md +++ b/x/quarantine/spec/05_queries.md @@ -12,11 +12,11 @@ The query takes in a `to_address` and outputs `true` if the address is quarantin Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L44-L48 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L44-L48 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L50-L54 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L50-L54 It is expected to fail if the `to_address` is invalid. @@ -27,16 +27,16 @@ This query takes in an optional `to_address` and optional `from_address` and out Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L56-L65 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L56-L65 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L67-L74 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L67-L74 QuarantinedFunds: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/quarantine.proto#L10-L21 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/quarantine.proto#L11-L26 - If neither a `to_address` nor `from_address` are provided, all non-declined quarantined funds for any addresses will be returned. - If the request contains a `to_address` but no `from_address`, all non-declined quarantined funds for the `to_address` are returned. @@ -56,16 +56,16 @@ This query takes in a `to_address` and optional `from_address` and outputs infor Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L76-L85 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L76-L85 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L87-L94 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L87-L94 AutoResponseEntry: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/quarantine.proto#L23-L31 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/quarantine.proto#L28-L36 - If no `from_address` is provided, all auto-response entries for the provided `to_address` are returned. The results will not contain any entries for `AUTO_RESPONSE_UNSPECIFIED`. - If a `from_address` is provided, the auto-response setting that `to_address` has from `from_address` is returned. This result might be `AUTO_RESPONSE_UNSPECIFIED`. diff --git a/x/sanction/spec/03_messages.md b/x/sanction/spec/03_messages.md index 0cba427a8b..48365510f3 100644 --- a/x/sanction/spec/03_messages.md +++ b/x/sanction/spec/03_messages.md @@ -12,7 +12,7 @@ All Msg Service endpoints in the `x/sanction` module are for use with governance A user can request that accounts be sanctioned by submitting a governance proposal containing a `MsgSanction`. It contains the list of `addresses` of accounts to be sanctioned and the `authority` able to do it. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/tx.proto#L22-L32 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/tx.proto#L24-L34 If the proposal ever has enough total deposit (defined in params), immediate temporary sanctions are issued for each address. Temporary sanctions expire at the completion of the governance proposal regardless of outcome. @@ -31,7 +31,7 @@ It is expected to fail if: A user can request that accounts be unsanctioned by submitting a governance proposal containing a `MsgUnsanction`. It contains the list of `addresses` of accounts to be unsanctioned and the `authority` able to do it. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/tx.proto#L37-L47 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/tx.proto#L39-L49 If the proposal ever has enough total deposit (defined in params), immediate temporary unsanctions are issued for each address. Temporary unsanctions expire at the completion of the governance proposal regardless of outcome. @@ -49,7 +49,7 @@ It is expected to fail if: The sanction module params can be updated by submitting a governance proposal containing a `MsgUpdateParams`. It contains the desired new `params` and the `authority` able to update them. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/tx.proto#L52-L62 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/tx.proto#L54-L64 If `params` is `null`, they will be deleted from state, reverting them to their code-defined defaults. If a field in `params` is `null` or empty, the record in state will reflect that. diff --git a/x/sanction/spec/05_queries.md b/x/sanction/spec/05_queries.md index 0bde56f43a..05efeda325 100644 --- a/x/sanction/spec/05_queries.md +++ b/x/sanction/spec/05_queries.md @@ -17,11 +17,11 @@ If it returns `false`, the account *is* allowed to move its funds (at least from Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L34-L37 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L34-L37 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L39-L43 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L39-L43 It is expected to fail if the `address` is invalid. @@ -32,11 +32,11 @@ It takes in `pagination` parameters and outputs a list of `addresses`. Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L45-L49 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L45-L49 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L51-L58 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L51-L58 This query does not take into account temporary sanctions or temporary unsanctions. Addresses that are temporarily sanctioned (but not permanently sanctioned) are **not** returned by this query. @@ -53,21 +53,21 @@ It takes in `pagination` parameters and an optional `address`. Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L60-L67 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L60-L67 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L69-L75 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L69-L75 TemporaryEntry: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/sanction.proto#L27-L35 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/sanction.proto#L36-L44 TempStatus: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/sanction.proto#L37-L47 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/sanction.proto#L46-L56 - If an `address` is provided, only temporary entries associated with that address are returned. - If an `address` is provided that does not have any temporary entries, a single `TemporaryEntry` with a `status` of `TEMP_STATUS_UNSPECIFIED` is returned. @@ -87,11 +87,11 @@ It has no input and outputs the `params`. Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L77-L78 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L77-L78 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L80-L84 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L80-L84 This query returns the values used for the params. That is, if there are params stored in state, they are returned; diff --git a/x/trigger/spec/02_state.md b/x/trigger/spec/02_state.md index 718ad5bc54..18368dc776 100644 --- a/x/trigger/spec/02_state.md +++ b/x/trigger/spec/02_state.md @@ -28,7 +28,7 @@ The excess gas on a MsgCreateTrigger transaction will be used for the `Trigger's * Event Listener: `0x02 | Event Type (32 bytes) | Order (8 bytes) -> []byte{}` * Gas Limit: `0x04 | Trigger ID (8 bytes) -> uint64(GasLimit)` -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/trigger.proto#L13-L26 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L13-L25 ### TriggerEventI @@ -38,25 +38,25 @@ A `Trigger` must have an event that implements the `TriggerEventI` interface. Cu The `BlockHeightEvent` allows the user to configure their `Trigger` to fire when the current block's `Block Height` is greater than or equal to the defined one. -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/trigger.proto#L41-L49 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L39-L46 #### BlockTimeEvent The `BlockTimeEvent` allows the user to configure their `Trigger` to fire when the current block's `Block Time` is greater than or equal to the defined one. -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/trigger.proto#L51-L59 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L48-L55 #### TransactionEvent The `TransactionEvent` allows the user to configure their `Trigger` to fire when a transaction event matching the user defined one has been emitted. -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/trigger.proto#L61-L71 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L57-L66 ##### Attribute The `Attribute` is used by the `TransactionEvent` to allow the user to configure which attributes must be present on the transaction event. An `Attribute` with an empty `value` will only require the `name` to match. -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/trigger.proto#L73-L82 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L68-L76 --- ## Queue @@ -68,4 +68,4 @@ The `Queue` is an internal structure that we use to store and throttle the execu * Queue Start Index: `0x06 -> uint64(QueueStartIndex)` * Queue Length: `0x07 -> uint64(QueueLength)` -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/trigger.proto#L28-L39 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L27-L37 diff --git a/x/trigger/spec/03_messages.md b/x/trigger/spec/03_messages.md index 40edd4fb2f..d73ced5c79 100644 --- a/x/trigger/spec/03_messages.md +++ b/x/trigger/spec/03_messages.md @@ -17,11 +17,11 @@ Creates a `Trigger` that will fire when its event has been detected. If the mess ### Request -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/tx.proto#L20-L31 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/tx.proto#L23-L34 ### Response -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/tx.proto#L33-L37 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/tx.proto#L36-L40 The message will fail under the following conditions: * The authority is an invalid bech32 address @@ -36,11 +36,11 @@ Destroys a `Trigger` that has been created and is still registered. ### Request -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/tx.proto#L39-L48 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/tx.proto#L42-L51 ### Response -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/tx.proto#L50-L51 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/tx.proto#L53-L54 The message will fail under the following conditions: * The `Trigger` does not exist diff --git a/x/trigger/spec/04_queries.md b/x/trigger/spec/04_queries.md index a7c2d5397e..ab1bae1407 100644 --- a/x/trigger/spec/04_queries.md +++ b/x/trigger/spec/04_queries.md @@ -18,13 +18,13 @@ The `QueryTriggerByID` query is used to obtain the content of a specific Trigger ### Request -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/query.proto#L25-L29 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/query.proto#L25-L29 The `id` is the unique identifier for the Trigger. ### Response -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/query.proto#L31-L35 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/query.proto#L31-L35 --- @@ -34,8 +34,8 @@ The `QueryTriggers` query is used to obtain all Triggers. ### Request -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/query.proto#L37-L41 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/query.proto#L37-L41 ### Response -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/query.proto#L43-L49 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/query.proto#L43-L49 diff --git a/x/trigger/spec/07_genesis.md b/x/trigger/spec/07_genesis.md index 5ff64d34d8..46c97e8325 100644 --- a/x/trigger/spec/07_genesis.md +++ b/x/trigger/spec/07_genesis.md @@ -11,4 +11,4 @@ In this section we describe the processing of the trigger messages and the corre GenesisState contains a list of triggers, queued triggers, and gas limits. It also tracks the triggerID and the queue start. These are exported and later imported from/to the store. -+++ https://github.com/provenance-io/provenance/blob/bda28e5f58a4a58e8fef21141400ad362b84518b/proto/provenance/trigger/v1/genesis.proto#L11-L30 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/genesis.proto#L11-L30 From 771bb69a7486b7cfcb72b906e129edb7ebf3ff1a Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Mon, 8 Jul 2024 09:50:56 -0600 Subject: [PATCH 13/16] Run the script again to change them all to v1.19.0 (which doesn't exist yet). I verified that the only diffs were the removal of the '-rc2' from all of the links. I.e. file and line numbers stayed the same. --- x/exchange/spec/02_state.md | 2 +- x/exchange/spec/03_messages.md | 128 +++++++++++++++---------------- x/exchange/spec/05_queries.md | 96 +++++++++++------------ x/exchange/spec/06_params.md | 4 +- x/hold/spec/04_queries.md | 10 +-- x/marker/spec/01_state.md | 6 +- x/marker/spec/03_messages.md | 84 ++++++++++---------- x/marker/spec/10_governance.md | 16 ++-- x/metadata/spec/02_state.md | 14 ++-- x/metadata/spec/03_messages.md | 92 +++++++++++----------- x/metadata/spec/05_queries.md | 92 +++++++++++----------- x/oracle/spec/03_messages.md | 8 +- x/oracle/spec/04_queries.md | 8 +- x/oracle/spec/06_genesis.md | 2 +- x/quarantine/spec/03_messages.md | 12 +-- x/quarantine/spec/05_queries.md | 16 ++-- x/sanction/spec/03_messages.md | 6 +- x/sanction/spec/05_queries.md | 20 ++--- x/trigger/spec/02_state.md | 12 +-- x/trigger/spec/03_messages.md | 8 +- x/trigger/spec/04_queries.md | 8 +- x/trigger/spec/07_genesis.md | 2 +- 22 files changed, 323 insertions(+), 323 deletions(-) diff --git a/x/exchange/spec/02_state.md b/x/exchange/spec/02_state.md index 8fc3b87c4f..fe61cc8c34 100644 --- a/x/exchange/spec/02_state.md +++ b/x/exchange/spec/02_state.md @@ -220,7 +220,7 @@ Commitment Settlement Bips is stored as a uint16. Each market has an associated `MarketAccount` with an address derived from the `market_id`. Each `MarketAccount` is stored using the `Accounts` module. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L14-L26 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/market.proto#L14-L26 ### Market Details diff --git a/x/exchange/spec/03_messages.md b/x/exchange/spec/03_messages.md index f9e26f5315..f892b40d3a 100644 --- a/x/exchange/spec/03_messages.md +++ b/x/exchange/spec/03_messages.md @@ -65,15 +65,15 @@ It is expected to fail if: #### MsgCreateAskRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L125-L133 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L125-L133 #### AskOrder -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/orders.proto#L30-L56 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/orders.proto#L30-L56 #### MsgCreateAskResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L135-L139 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L135-L139 ### CreateBid @@ -98,15 +98,15 @@ It is expected to fail if: #### MsgCreateBidRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L141-L149 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L141-L149 #### BidOrder -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/orders.proto#L58-L86 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/orders.proto#L58-L86 #### MsgCreateBidResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L151-L155 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L151-L155 ### CommitFunds @@ -123,11 +123,11 @@ It is expected to fail if: #### MsgCommitFundsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L157-L176 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L157-L176 #### MsgCommitFundsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L178-L179 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L178-L179 ### CancelOrder @@ -149,11 +149,11 @@ It is expected to fail if: #### MsgCancelOrderRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L181-L191 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L181-L191 #### MsgCancelOrderResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L193-L194 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L193-L194 ### FillBids @@ -180,11 +180,11 @@ It is expected to fail if: #### MsgFillBidsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L196-L220 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L196-L220 #### MsgFillBidsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L222-L223 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L222-L223 ### FillAsks @@ -211,11 +211,11 @@ It is expected to fail if: #### MsgFillAsksRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L225-L250 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L225-L250 #### MsgFillAsksResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L252-L253 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L252-L253 ## Market Endpoints @@ -250,11 +250,11 @@ It is expected to fail if: #### MsgMarketSettleRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L255-L272 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L255-L272 #### MsgMarketSettleResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L274-L275 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L274-L275 ### MarketCommitmentSettle @@ -271,11 +271,11 @@ It is expected to fail if: #### MsgMarketCommitmentSettleRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L277-L297 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L277-L297 #### MsgMarketCommitmentSettleResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L299-L300 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L299-L300 ### MarketReleaseCommitments @@ -292,11 +292,11 @@ It is expected to fail if: #### MsgMarketReleaseCommitmentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L302-L315 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L302-L315 #### MsgMarketReleaseCommitmentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L317-L318 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L317-L318 ### MarketSetOrderExternalID @@ -318,11 +318,11 @@ It is expected to fail if: #### MsgMarketSetOrderExternalIDRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L320-L334 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L320-L334 #### MsgMarketSetOrderExternalIDResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L336-L337 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L336-L337 ### MarketWithdraw @@ -339,11 +339,11 @@ It is expected to fail if: #### MsgMarketWithdrawRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L339-L357 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L339-L357 #### MsgMarketWithdrawResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L359-L360 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L359-L360 ### MarketUpdateDetails @@ -358,13 +358,13 @@ It is expected to fail if: #### MsgMarketUpdateDetailsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L362-L373 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L362-L373 See also: [MarketDetails](#marketdetails). #### MsgMarketUpdateDetailsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L375-L376 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L375-L376 ### MarketUpdateAcceptingOrders @@ -381,11 +381,11 @@ It is expected to fail if: #### MsgMarketUpdateAcceptingOrdersRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L402-L413 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L402-L413 #### MsgMarketUpdateAcceptingOrdersResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L415-L416 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L415-L416 ### MarketUpdateUserSettle @@ -403,11 +403,11 @@ It is expected to fail if: #### MsgMarketUpdateUserSettleRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L418-L431 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L418-L431 #### MsgMarketUpdateUserSettleResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L433-L434 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L433-L434 ### MarketUpdateAcceptingCommitments @@ -426,11 +426,11 @@ It is expected to fail if: #### MsgMarketUpdateAcceptingCommitmentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L436-L449 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L436-L449 #### MsgMarketUpdateAcceptingCommitmentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L451-L452 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L451-L452 ### MarketUpdateIntermediaryDenom @@ -445,11 +445,11 @@ It is expected to fail if: #### MsgMarketUpdateIntermediaryDenomRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L454-L465 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L454-L465 #### MsgMarketUpdateIntermediaryDenomResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L467-L468 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L467-L468 ### MarketManagePermissions @@ -466,13 +466,13 @@ It is expected to fail if: #### MsgMarketManagePermissionsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L470-L485 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L470-L485 See also: [AccessGrant](#accessgrant) and [Permission](#permission). #### MsgMarketManagePermissionsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L487-L488 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L487-L488 ### MarketManageReqAttrs @@ -490,11 +490,11 @@ It is expected to fail if: #### MsgMarketManageReqAttrsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L490-L511 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L490-L511 #### MsgMarketManageReqAttrsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L513-L514 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L513-L514 ## Payment Endpoints @@ -527,15 +527,15 @@ It is expected to fail if: #### MsgCreatePaymentRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L516-L523 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L516-L523 #### Payment -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/payments.proto#L14-L52 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/payments.proto#L14-L52 #### MsgCreatePaymentResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L525-L526 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L525-L526 ### AcceptPayment @@ -554,13 +554,13 @@ It is expected to fail if: #### MsgAcceptPaymentRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L528-L535 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L528-L535 See also: [Payment](#payment). #### MsgAcceptPaymentResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L537-L538 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L537-L538 ### RejectPayment @@ -575,11 +575,11 @@ It is expected to fail if: #### MsgRejectPaymentRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L540-L550 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L540-L550 #### MsgRejectPaymentResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L552-L553 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L552-L553 ### RejectPayments @@ -594,11 +594,11 @@ It is expected to fail if: #### MsgRejectPaymentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L555-L563 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L555-L563 #### MsgRejectPaymentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L565-L566 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L565-L566 ### CancelPayments @@ -613,11 +613,11 @@ It is expected to fail if: #### MsgCancelPaymentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L568-L576 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L568-L576 #### MsgCancelPaymentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L578-L579 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L578-L579 ### ChangePaymentTarget @@ -637,11 +637,11 @@ It is expected to fail if: #### MsgChangePaymentTargetRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L581-L591 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L581-L591 #### MsgChangePaymentTargetResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L593-L594 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L593-L594 ## Governance Proposals @@ -667,15 +667,15 @@ It is expected to fail if: #### MsgGovCreateMarketRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L596-L607 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L596-L607 #### Market -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L52-L148 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/market.proto#L52-L148 #### MarketDetails -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L28-L40 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/market.proto#L28-L40 * The `name` is limited to 250 characters max. * The `description` is limited to 2000 characters max. @@ -684,19 +684,19 @@ It is expected to fail if: #### FeeRatio -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L150-L158 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/market.proto#L150-L158 #### AccessGrant -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L160-L166 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/market.proto#L160-L166 #### Permission -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L168-L186 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/market.proto#L168-L186 #### MsgGovCreateMarketResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L609-L610 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L609-L610 ### GovManageFees @@ -710,13 +710,13 @@ It is expected to fail if: #### MsgGovManageFeesRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L612-L662 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L612-L662 See also: [FeeRatio](#feeratio). #### MsgGovManageFeesResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L664-L665 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L664-L665 ### GovCloseMarket @@ -730,11 +730,11 @@ It is expected to fail if: #### MsgGovCloseMarketRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L667-L675 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L667-L675 #### MsgGovCloseMarketResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L677-L678 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L677-L678 ### UpdateParams @@ -746,10 +746,10 @@ It is expected to fail if: #### MsgUpdateParamsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L699-L708 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L699-L708 See also: [Params](06_params.md#params). #### MsgUpdateParamsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/tx.proto#L710-L711 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/tx.proto#L710-L711 diff --git a/x/exchange/spec/05_queries.md b/x/exchange/spec/05_queries.md index af1074c6f9..d448ca6e78 100644 --- a/x/exchange/spec/05_queries.md +++ b/x/exchange/spec/05_queries.md @@ -48,13 +48,13 @@ Then choose one entry from each of `settlement_flat_fee_options` and `settlement ### QueryOrderFeeCalcRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L157-L164 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L157-L164 See also: [AskOrder](03_messages.md#askorder), and [BidOrder](03_messages.md#bidorder). ### QueryOrderFeeCalcResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L166-L185 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L166-L185 ## GetOrder @@ -63,15 +63,15 @@ Use the `GetOrder` query to look up an order by its id. ### QueryGetOrderRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L187-L191 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L187-L191 ### QueryGetOrderResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L193-L197 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L193-L197 ### Order -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/orders.proto#L15-L28 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/orders.proto#L15-L28 See also: [AskOrder](03_messages.md#askorder), and [BidOrder](03_messages.md#bidorder). @@ -82,11 +82,11 @@ Orders with external ids can be looked up using the `GetOrderByExternalID` query ### QueryGetOrderByExternalIDRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L199-L205 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L199-L205 ### QueryGetOrderByExternalIDResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L207-L211 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L207-L211 See also: [Order](#order). @@ -100,11 +100,11 @@ This query is paginated. ### QueryGetMarketOrdersRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L213-L224 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L213-L224 ### QueryGetMarketOrdersResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L226-L233 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L226-L233 See also: [Order](#order). @@ -118,11 +118,11 @@ This query is paginated. ### QueryGetOwnerOrdersRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L235-L246 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L235-L246 ### QueryGetOwnerOrdersResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L248-L255 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L248-L255 See also: [Order](#order). @@ -136,11 +136,11 @@ This query is paginated. ### QueryGetAssetOrdersRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L257-L268 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L257-L268 ### QueryGetAssetOrdersResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L270-L277 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L270-L277 See also: [Order](#order). @@ -153,11 +153,11 @@ This query is paginated. ### QueryGetAllOrdersRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L279-L283 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L279-L283 ### QueryGetAllOrdersResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L285-L292 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L285-L292 See also: [Order](#order). @@ -168,11 +168,11 @@ To find out how much an account has committed to a market, use the `GetCommitmen ### QueryGetCommitmentRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L294-L300 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L294-L300 ### QueryGetCommitmentResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L302-L311 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L302-L311 ## GetAccountCommitments @@ -181,11 +181,11 @@ To look up the amounts an account has committed to any market, use the `GetAccou ### QueryGetAccountCommitmentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L313-L317 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L313-L317 ### QueryGetAccountCommitmentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L319-L323 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L319-L323 ## GetMarketCommitments @@ -194,11 +194,11 @@ To get the amounts committed to a market by any account, use the `GetMarketCommi ### QueryGetMarketCommitmentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L325-L332 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L325-L332 ### QueryGetMarketCommitmentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L334-L341 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L334-L341 ## GetAllCommitments @@ -207,11 +207,11 @@ To get all funds committed by any account to any market, use the `GetAllCommitme ### QueryGetAllCommitmentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L343-L347 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L343-L347 ### QueryGetAllCommitmentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L349-L356 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L349-L356 ## GetMarket @@ -220,11 +220,11 @@ All the information and setup for a market can be looked up using the `GetMarket ### QueryGetMarketRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L358-L362 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L358-L362 ### QueryGetMarketResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L364-L370 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L364-L370 See also: [Market](03_messages.md#market). @@ -235,15 +235,15 @@ Use the `GetAllMarkets` query to get brief information about all markets. ### QueryGetAllMarketsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L372-L376 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L372-L376 ### QueryGetAllMarketsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L378-L385 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L378-L385 ### MarketBrief -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/market.proto#L42-L50 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/market.proto#L42-L50 ## Params @@ -252,11 +252,11 @@ The exchange module params can be looked up using the `Params` query. ### QueryParamsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L387-L388 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L387-L388 ### QueryParamsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L390-L394 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L390-L394 See also: [Params](06_params.md#params). @@ -267,13 +267,13 @@ To find out the additional tx fee required for a commitment settlement, use the ### QueryCommitmentSettlementFeeCalcRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L396-L406 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L396-L406 See also: [MsgMarketCommitmentSettleRequest](03_messages.md#msgmarketcommitmentsettlerequest). ### QueryCommitmentSettlementFeeCalcResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L408-L435 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L408-L435 ## ValidateCreateMarket @@ -288,13 +288,13 @@ If the result has: ### QueryValidateCreateMarketRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L437-L441 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L437-L441 See also: [MsgGovCreateMarketRequest](03_messages.md#msggovcreatemarketrequest). ### QueryValidateCreateMarketResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L443-L453 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L443-L453 ## ValidateMarket @@ -305,11 +305,11 @@ Any problems detected will be returned in the `error` field. ### QueryValidateMarketRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L455-L459 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L455-L459 ### QueryValidateMarketResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L461-L465 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L461-L465 ## ValidateManageFees @@ -324,13 +324,13 @@ If the result has: ### QueryValidateManageFeesRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L467-L471 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L467-L471 See also: [MsgGovManageFeesRequest](03_messages.md#msggovmanagefeesrequest). ### QueryValidateManageFeesResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L473-L483 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L473-L483 ## GetPayment @@ -339,11 +339,11 @@ Use the `GetPayment` query to look up a payment by `source` and `external_id`. ### QueryGetPaymentRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L485-L491 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L485-L491 ### QueryGetPaymentResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L493-L497 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L493-L497 See also: [Payment](03_messages.md#payment). @@ -356,11 +356,11 @@ This query is paginated. ### QueryGetPaymentsWithSourceRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L499-L506 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L499-L506 ### QueryGetPaymentsWithSourceResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L508-L515 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L508-L515 See also: [Payment](03_messages.md#payment). @@ -373,11 +373,11 @@ This query is paginated. ### QueryGetPaymentsWithTargetRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L517-L524 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L517-L524 ### QueryGetPaymentsWithTargetResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L526-L533 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L526-L533 See also: [Payment](03_messages.md#payment). @@ -390,11 +390,11 @@ This query is paginated. ### QueryGetAllPaymentsRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L535-L539 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L535-L539 ### QueryGetAllPaymentsResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L541-L548 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L541-L548 See also: [Payment](03_messages.md#payment). @@ -405,10 +405,10 @@ The `PaymentFeeCalc` query can be used to calculate the fees for creating or acc ### QueryPaymentFeeCalcRequest -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L550-L554 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L550-L554 See also: [Payment](03_messages.md#payment). ### QueryPaymentFeeCalcResponse -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/query.proto#L556-L572 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/query.proto#L556-L572 diff --git a/x/exchange/spec/06_params.md b/x/exchange/spec/06_params.md index b4b9d14ad5..c5b93443c5 100644 --- a/x/exchange/spec/06_params.md +++ b/x/exchange/spec/06_params.md @@ -23,8 +23,8 @@ See also: [Exchange Fees](01_concepts.md#exchange-fees). ## Params -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/params.proto#L13-L31 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/params.proto#L13-L31 ## DenomSplit -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/exchange/v1/params.proto#L33-L40 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/exchange/v1/params.proto#L33-L40 diff --git a/x/hold/spec/04_queries.md b/x/hold/spec/04_queries.md index 5fb3737342..a69e971f53 100644 --- a/x/hold/spec/04_queries.md +++ b/x/hold/spec/04_queries.md @@ -13,11 +13,11 @@ The query takes in an `address` and returns a coins `amount`. Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/hold/v1/query.proto#L28-L35 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/hold/v1/query.proto#L28-L35 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/hold/v1/query.proto#L37-L49 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/hold/v1/query.proto#L37-L49 It is expected to fail if the `address` is invalid or missing. @@ -30,14 +30,14 @@ The query takes in pagination parameters and returns a list of `address`/`amount Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/hold/v1/query.proto#L51-L58 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/hold/v1/query.proto#L51-L58 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/hold/v1/query.proto#L60-L66 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/hold/v1/query.proto#L60-L66 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/hold/v1/hold.proto#L12-L23 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/hold/v1/hold.proto#L12-L23 It is expected to fail if the pagination parameters are invalid. diff --git a/x/marker/spec/01_state.md b/x/marker/spec/01_state.md index 03b27e8809..3564444ae0 100644 --- a/x/marker/spec/01_state.md +++ b/x/marker/spec/01_state.md @@ -20,7 +20,7 @@ marker is able to perform normal functions such as receiving and holding coins, be queried against for balance information from the `bank` module. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/marker.proto#L28-L59 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/marker.proto#L28-L59 ```go type MarkerAccount struct { @@ -185,7 +185,7 @@ iterator from the auth module. A marker can support multiple distinct net asset values assigned to track settlement pricing information on-chain. The `price` attribute denotes the value assigned to the marker for a specific asset's associated `volume`. For instance, when considering a scenario where 10 billion `nhash` holds a value of 15¢, the corresponding `volume` should reflect the quantity of 10,000,000,000. The `update_block_height` attribute captures the block height when the update occurred. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/marker.proto#L91-L99 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/marker.proto#L91-L99 ## Params @@ -194,4 +194,4 @@ and defines overall functioning of the marker module. - Params: `Paramsspace("marker") -> legacy_amino(params)` -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/marker.proto#L14-L26 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/marker.proto#L14-L26 diff --git a/x/marker/spec/03_messages.md b/x/marker/spec/03_messages.md index 57aa0e1223..385982040e 100644 --- a/x/marker/spec/03_messages.md +++ b/x/marker/spec/03_messages.md @@ -34,9 +34,9 @@ A marker is created using the Add Marker service message. The created marker can not be directly added in an Active (or Cancelled/Destroyed) status. Markers must have a valid supply and denomination value. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L103-L121 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L103-L121 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L123-L124 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L123-L124 This service message is expected to fail if: @@ -66,9 +66,9 @@ If issued via governance proposal, and has a `from_address` of the governance mo Add Access Request is used to add permissions to a marker that allow the specified accounts to perform the specified actions. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L126-L133 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L126-L133 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L135-L136 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L135-L136 This service message is expected to fail if: @@ -89,9 +89,9 @@ and `Active` markers when the caller is currently assigned the `Admin` access ty DeleteAccess Request defines the Msg/DeleteAccess request type -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L138-L145 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L138-L145 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L146-L147 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L146-L147 This service message is expected to fail if: @@ -108,9 +108,9 @@ and `Active` markers when the caller is currently assigned the `Admin` access ty Finalize Request defines the Msg/Finalize request type -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L149-L155 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L149-L155 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L156-L157 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L156-L157 This service message is expected to fail if: @@ -126,9 +126,9 @@ serve as an intermediate step prior to activation that indicates marker configur Activate Request defines the Msg/Activate request type -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L159-L165 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L159-L165 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L166-L167 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L166-L167 This service message is expected to fail if: @@ -149,9 +149,9 @@ float then the `total_supply` value will be set to zero upon activation. Cancel Request defines the Msg/Cancel request type -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L169-L175 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L169-L175 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L176-L177 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L176-L177 This service message is expected to fail if: @@ -169,9 +169,9 @@ This service message is expected to fail if: Delete Request defines the Msg/Delete request type -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L179-L185 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L179-L185 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L186-L187 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L186-L187 This service message is expected to fail if: @@ -187,9 +187,9 @@ This service message is expected to fail if: Mint Request defines the Msg/Mint request type -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L189-L195 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L189-L195 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L196-L197 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L196-L197 This service message is expected to fail if: @@ -205,9 +205,9 @@ This service message is expected to fail if: Burn Request defines the Msg/Burn request type that is used to remove supply of the marker coin from circulation. In order to successfully burn supply the amount to burn must be held by the marker account itself (in escrow). -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L199-L205 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L199-L205 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L206-L207 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L206-L207 This service message is expected to fail if: @@ -224,9 +224,9 @@ Withdraw Request defines the Msg/Withdraw request type and is used to withdraw c NOTE: any denom coin can be held within a marker "in escrow", these values are not restricted to just the denom of the marker itself. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L209-L222 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L209-L222 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L223-L224 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L223-L224 This service message is expected to fail if: @@ -247,9 +247,9 @@ with `TRANSFER` access. If force transfer is not enabled for the marker, the sou permission (via `authz`) to do the transfer. If force transfer is allowed for the marker, the source account does not need to approve of the transfer. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L226-L234 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L226-L234 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L236-L237 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L236-L237 This service message is expected to fail if: @@ -264,9 +264,9 @@ Ibc transfer Request defines the Msg/IbcTransfer request type. The `IbcTransfer NOTE: A transfer request also requires a signature from an account with the transfer permission as well as approval from the account the funds will be withdrawn from. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L239-L248 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L239-L248 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L250-L251 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L250-L251 ## Msg/SetDenomMetadata @@ -274,9 +274,9 @@ SetDenomMetadata Request defines the Msg/SetDenomMetadata request type. This re denom metadata held within the bank module. Denom metadata can be used to provide a more streamlined user experience within block explorers or similar applications. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L253-L260 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L253-L260 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L262-L263 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L262-L263 This service message is expected to fail if: @@ -297,9 +297,9 @@ This service message is expected to fail if: AddFinalizeActivate requested is used for adding, finalizing, and activating a marker in a single request. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L265-L281 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L265-L281 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L283-L284 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L283-L284 This service message is expected to fail if: @@ -316,9 +316,9 @@ This service message is expected to fail if: GrantAllowance grants a fee allowance to the grantee on the granter's account. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L85-L98 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L85-L98 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L100-L101 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L100-L101 This service message is expected to fail if: @@ -332,9 +332,9 @@ This service message is expected to fail if: SupplyIncreaseProposal is a governance-only message for increasing the supply of a marker. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L286-L295 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L286-L295 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L297-L298 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L297-L298 This service message is expected to fail if: @@ -348,9 +348,9 @@ See also: [Governance: Supply Increase Proposal](./10_governance.md#supply-incre UpdateRequiredAttributes allows signers that have transfer authority or via gov proposal to add and remove required attributes from a restricted marker. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L313-L328 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L313-L328 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L330-L331 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L330-L331 This service message is expected to fail if: @@ -363,9 +363,9 @@ This service message is expected to fail if: UpdateSendDenyList allows signers that have transfer authority or via gov proposal to add and remove addresses to the deny send list for a restricted marker. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L367-L381 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L367-L381 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L383-L384 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L383-L384 This service message is expected to fail if: @@ -381,9 +381,9 @@ This service message is expected to fail if: UpdateForcedTransfer allows for the activation or deactivation of forced transfers for a marker. This message must be submitted via governance proposal. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L333-L345 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L333-L345 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L347-L348 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L347-L348 This service message is expected to fail if: @@ -396,9 +396,9 @@ This service message is expected to fail if: SetAccountData allows the association of some data (a string) with a marker. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L350-L362 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L350-L362 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L364-L365 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L364-L365 This endpoint can either be used directly or via governance proposal. @@ -413,9 +413,9 @@ This service message is expected to fail if: AddNetAssetValuesRequest allows for the adding/updating of net asset values for a marker. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L386-L393 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L386-L393 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/tx.proto#L395-L396 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/tx.proto#L395-L396 This endpoint can either be used directly or via governance proposal. diff --git a/x/marker/spec/10_governance.md b/x/marker/spec/10_governance.md index 5737575e51..ce2daaae83 100644 --- a/x/marker/spec/10_governance.md +++ b/x/marker/spec/10_governance.md @@ -28,7 +28,7 @@ bank module. A further difference from the standard add marker flow is that governance proposals to add a marker can directly set a marker to the `Active` status with the appropriate minting operations performed immediately. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L16-L33 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/proposals.proto#L16-L33 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -44,7 +44,7 @@ This request is expected to fail if: SupplyIncreaseProposal defines a governance proposal to administer a marker and increase total supply of the marker through minting coin and placing it within the marker or assigning it directly to an account. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L35-L47 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/proposals.proto#L35-L47 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -55,7 +55,7 @@ This request is expected to fail if: SupplyDecreaseProposal defines a governance proposal to administer a marker and decrease the total supply through burning coin held within the marker -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L49-L60 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/proposals.proto#L49-L60 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -71,7 +71,7 @@ The chain will panic and halt if: SetAdministratorProposal defines a governance proposal to administer a marker and set administrators with specific access on the marker -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L62-L74 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/proposals.proto#L62-L74 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -84,7 +84,7 @@ This request is expected to fail if: RemoveAdministratorProposal defines a governance proposal to administer a marker and remove all permissions for a given address -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L76-L88 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/proposals.proto#L76-L88 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -96,7 +96,7 @@ This request is expected to fail if: ChangeStatusProposal defines a governance proposal to administer a marker to change its status -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L90-L101 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/proposals.proto#L90-L101 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -111,7 +111,7 @@ This request is expected to fail if: WithdrawEscrowProposal defines a governance proposal to withdraw escrow coins from a marker -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L103-L120 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/proposals.proto#L103-L120 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid @@ -122,7 +122,7 @@ This request is expected to fail if: SetDenomMetadataProposal defines a governance proposal to set the metadata for a denom. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/marker/v1/proposals.proto#L122-L133 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/marker/v1/proposals.proto#L122-L133 This request is expected to fail if: - The governance proposal format (title, description, etc) is invalid diff --git a/x/metadata/spec/02_state.md b/x/metadata/spec/02_state.md index bef997a06f..c946b10d65 100644 --- a/x/metadata/spec/02_state.md +++ b/x/metadata/spec/02_state.md @@ -43,7 +43,7 @@ Byte Array Length: `17` #### Scope Values -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/scope.proto#L70-L90 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/scope.proto#L70-L90 ```protobuf // Scope defines a root reference for a collection of records owned by one or more parties. @@ -113,7 +113,7 @@ Byte Array Length: `33` #### Session Values -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/scope.proto#L92-L111 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/scope.proto#L92-L111 ```protobuf // Session defines an execution context against a specific specification instance. @@ -170,7 +170,7 @@ Byte Array Length: `33` #### Record Values -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/scope.proto#L113-L130 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/scope.proto#L113-L130 ```protobuf // A record (of fact) is attached to a session or each consideration output from a contract @@ -226,7 +226,7 @@ Byte Array Length: `17` #### Scope Specification Values -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/specification.proto#L36-L51 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/specification.proto#L36-L51 ```protobuf // ScopeSpecification defines the required parties, resources, conditions, and consideration outputs for a contract @@ -291,7 +291,7 @@ Byte Array Length: `17` #### Contract Specification Values -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/specification.proto#L53-L76 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/specification.proto#L53-L76 ```protobuf // ContractSpecification defines the required parties, resources, conditions, and consideration outputs for a contract @@ -358,7 +358,7 @@ Byte Array Length: `33` #### Record Specification Values -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/specification.proto#L78-L95 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/specification.proto#L78-L95 ```protobuf // RecordSpecification defines the specification for a Record including allowed/required inputs/outputs @@ -404,7 +404,7 @@ Byte Array Length: `21` #### Object Store Locator Values -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/objectstore.proto#L12-L23 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/objectstore.proto#L12-L23 ```protobuf // Defines an Locator object stored on chain, which represents a owner( blockchain address) associated with a endpoint diff --git a/x/metadata/spec/03_messages.md b/x/metadata/spec/03_messages.md index 843c2d862a..c102a0656f 100644 --- a/x/metadata/spec/03_messages.md +++ b/x/metadata/spec/03_messages.md @@ -48,7 +48,7 @@ Scopes are identified using their `scope_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L93-L119 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L93-L119 The `scope_uuid` field is optional. It should be a uuid formated as a string using the standard UUID format. @@ -60,7 +60,7 @@ If supplied, it will be used to generate the appropriate scope specification id #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L121-L125 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L121-L125 #### Expected failures @@ -80,11 +80,11 @@ A scope is deleted using the `DeleteScope` service method. #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L127-L136 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L127-L136 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L138-L139 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L138-L139 #### Expected failures @@ -99,11 +99,11 @@ Addresses can be added to a scope's data access list using the `AddScopeDataAcce #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L141-L154 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L141-L154 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L156-L157 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L156-L157 #### Expected failures @@ -119,11 +119,11 @@ Addresses can be deleted from a scope's data access list using the `DeleteScopeD #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L159-L172 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L159-L172 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L174-L175 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L174-L175 #### Expected failures @@ -138,11 +138,11 @@ Scope owners can be added to a scope using the `AddScopeOwner` service method. #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L177-L190 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L177-L190 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L192-L193 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L192-L193 #### Expected failures @@ -159,11 +159,11 @@ All owner parties with any of the provided addresses will be removed from the sc #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L195-L208 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L195-L208 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L210-L211 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L210-L211 #### Expected failures @@ -179,11 +179,11 @@ The value owner address of one or more scopes can be updated using the `UpdateVa #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L213-L225 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L213-L225 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L227-L228 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L227-L228 #### Expected failures @@ -199,11 +199,11 @@ All scopes with a given existing value owner address can be updated to have a ne #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L230-L242 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L230-L242 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L244-L245 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L244-L245 #### Expected failures @@ -221,7 +221,7 @@ Sessions are identified using their `session_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L247-L272 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L247-L272 The `session_id_components` field is optional. If supplied, it will be used to generate the appropriate session id for use in the `session.session_id` field. @@ -232,7 +232,7 @@ If supplied, it will be used to generate the appropriate contract specification #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L287-L291 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L287-L291 #### Expected failures @@ -259,7 +259,7 @@ Records are identified using their `name` and `session_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L293-L323 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L293-L323 The `session_id_components` field is optional. If supplied, it will be used to generate the appropriate session id for use in the `record.session_id` field. @@ -270,7 +270,7 @@ If supplied, it will be used with `record.name` to generate the appropriate reco #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L325-L329 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L325-L329 #### Expected failures @@ -312,11 +312,11 @@ A record is deleted using the `DeleteRecord` service method. #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L331-L340 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L331-L340 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L342-L343 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L342-L343 #### Expected failures @@ -337,7 +337,7 @@ Scope specifications are identified using their `specification_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L345-L363 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L345-L363 The `spec_uuid` field is optional. It should be a uuid formated as a string using the standard UUID format. @@ -345,7 +345,7 @@ If supplied, it will be used to generate the appropriate scope specification id #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L365-L369 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L365-L369 #### Expected failures @@ -369,11 +369,11 @@ A scope specification is deleted using the `DeleteScopeSpecification` service me #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L371-L380 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L371-L380 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L382-L383 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L382-L383 #### Expected failures @@ -390,7 +390,7 @@ Contract specifications are identified using their `specification_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L385-L403 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L385-L403 The `spec_uuid` field is optional. It should be a uuid formated as a string using the standard UUID format. @@ -398,7 +398,7 @@ If supplied, it will be used to generate the appropriate contract specification #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L405-L410 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L405-L410 #### Expected failures @@ -426,11 +426,11 @@ This will also delete all record specifications associated with this contract sp #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L447-L456 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L447-L456 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L458-L459 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L458-L459 #### Expected failures @@ -446,11 +446,11 @@ A contract specification can be added to a scope specification using the `AddCon #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L412-L424 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L412-L424 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L426-L427 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L426-L427 #### Expected failures @@ -469,11 +469,11 @@ A contract specification can be removed from a scope specification using the `Ad #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L429-L441 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L429-L441 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L443-L445 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L443-L445 #### Expected failures @@ -493,7 +493,7 @@ Record specifications are identified using their `specification_id`. #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L461-L479 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L461-L479 The `contract_spec_uuid` field is optional. It should be a uuid formated as a string using the standard UUID format. @@ -501,7 +501,7 @@ If supplied, it will be used with the `specification.name` to generate the appro #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L481-L486 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L481-L486 #### Expected failures @@ -528,11 +528,11 @@ A record specification is deleted using the `DeleteRecordSpecification` service #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L488-L497 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L488-L497 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L499-L500 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L499-L500 #### Expected failures @@ -550,11 +550,11 @@ An Object Store Locator entry is created using the `BindOSLocator` service metho #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L502-L509 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L502-L509 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L511-L514 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L511-L514 #### Expected failures @@ -573,11 +573,11 @@ An Object Store Locator entry is deleted using the `DeleteOSLocator` service met #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L516-L524 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L516-L524 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L526-L529 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L526-L529 #### Expected failures @@ -598,11 +598,11 @@ Object Store Locators are identified by their `owner`. #### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L531-L538 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L531-L538 #### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L540-L543 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L540-L543 #### Expected failures @@ -621,9 +621,9 @@ This service message is expected to fail if: Simple data (a string) can be associated with scopes using the `SetAccountData` service method. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L545-L558 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L545-L558 -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/tx.proto#L560-L561 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/tx.proto#L560-L561 This service message is expected to fail if: * The provided address is not a scope id. diff --git a/x/metadata/spec/05_queries.md b/x/metadata/spec/05_queries.md index 0348a8e0a7..f2a0bb88b8 100644 --- a/x/metadata/spec/05_queries.md +++ b/x/metadata/spec/05_queries.md @@ -39,12 +39,12 @@ If a requested entry or specification isn't found, an empty wrapper containing o The `Params` query gets the parameters of the metadata module. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L252-L256 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L252-L256 There are no inputs for this query. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L258-L265 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L258-L265 --- @@ -53,7 +53,7 @@ There are no inputs for this query. The `Scope` query gets a scope. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L267-L287 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L267-L287 The `scope_id`, if provided, must either be scope uuid, e.g. `91978ba2-5f35-459a-86a7-feca1b0512e0` or a scope address, e.g. `scope1qzge0zaztu65tx5x5llv5xc9ztsqxlkwel`. The session addr, if provided, must be a bech32 session address, @@ -73,7 +73,7 @@ By default, sessions and records are not included. Set `include_sessions` and/or `include_records` to true to include sessions and/or records. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L289-L300 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L289-L300 --- @@ -84,12 +84,12 @@ The `ScopesAll` query gets all scopes. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L312-L321 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L312-L321 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L323-L332 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L323-L332 --- @@ -98,7 +98,7 @@ The only input to this query is pagination information. The `Sessions` query gets sessions. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L334-L357 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L334-L357 The `scope_id` can either be scope uuid, e.g. `91978ba2-5f35-459a-86a7-feca1b0512e0` or a scope address, e.g. `scope1qzge0zaztu65tx5x5llv5xc9ztsqxlkwel`. Similarly, the `session_id` can either be a uuid or session address, e.g. @@ -127,7 +127,7 @@ By default, the scope and records are not included. Set `include_scope` and/or `include_records` to true to include the scope and/or records. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L359-L370 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L359-L370 --- @@ -138,12 +138,12 @@ The `SessionsAll` query gets all sessions. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L382-L391 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L382-L391 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L393-L402 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L393-L402 --- @@ -152,7 +152,7 @@ The only input to this query is pagination information. The `Records` query gets records. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L404-L427 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L404-L427 The `record_addr`, if provided, must be a bech32 record address, e.g. `record1q2ge0zaztu65tx5x5llv5xc9ztsw42dq2jdvmdazuwzcaddhh8gmu3mcze3`. The `scope_id` can either be scope uuid, e.g. @@ -176,7 +176,7 @@ By default, the scope and sessions are not included. Set `include_scope` and/or `include_sessions` to true to include the scope and/or sessions. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L429-L440 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L429-L440 --- @@ -187,12 +187,12 @@ The `RecordsAll` query gets all records. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L452-L461 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L452-L461 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L463-L472 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L463-L472 --- @@ -205,12 +205,12 @@ A scope is owned by an address if the address is listed as either an owner, or t This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L474-L482 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L474-L482 The `address` should be a bech32 address string. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L484-L493 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L484-L493 --- @@ -221,12 +221,12 @@ The `ValueOwnership` query gets gets the ids of scopes that list an address as t This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L495-L503 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L495-L503 The `address` should be a bech32 address string. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L505-L514 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L505-L514 --- @@ -235,13 +235,13 @@ The `address` should be a bech32 address string. The `ScopeSpecification` query gets a scope specification. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L516-L533 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L516-L533 The `specification_id` can either be a uuid, e.g. `dc83ea70-eacd-40fe-9adf-1cf6148bf8a2` or a bech32 scope specification address, e.g. `scopespec1qnwg86nsatx5pl56muw0v9ytlz3qu3jx6m`. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L535-L546 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L535-L546 --- @@ -252,12 +252,12 @@ The `ScopeSpecificationsAll` query gets all scope specifications. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L556-L565 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L556-L565 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L567-L576 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L567-L576 --- @@ -266,7 +266,7 @@ The only input to this query is pagination information. The `ContractSpecification` query gets a contract specification. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L578-L594 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L578-L594 The `specification_id` can either be a uuid, e.g. `def6bc0a-c9dd-4874-948f-5206e6060a84`, a bech32 contract specification address, e.g. `contractspec1q000d0q2e8w5say53afqdesxp2zqzkr4fn`, or a bech32 record specification @@ -278,7 +278,7 @@ Set `include_record_specs` to true to include them in the result. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L596-L606 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L596-L606 --- @@ -289,12 +289,12 @@ The `ContractSpecificationsAll` query gets all contract specifications. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L616-L625 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L616-L625 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L627-L636 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L627-L636 --- @@ -306,7 +306,7 @@ The only difference between this query and `ContractSpecification` with `include this query does not return the contract specification. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L638-L652 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L638-L652 The `specification_id` can either be a uuid, e.g. `def6bc0a-c9dd-4874-948f-5206e6060a84`, a bech32 contract specification address, e.g. `contractspec1q000d0q2e8w5say53afqdesxp2zqzkr4fn`, or a bech32 record specification @@ -314,7 +314,7 @@ address, e.g. `recspec1qh00d0q2e8w5say53afqdesxp2zw42dq2jdvmdazuwzcaddhh8gmuqhez address, then the contract specification that contains that record specification is used. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L654-L666 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L654-L666 --- @@ -323,7 +323,7 @@ address, then the contract specification that contains that record specification The `RecordSpecification` query gets a record specification. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L668-L685 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L668-L685 The `specification_id` can either be a uuid, e.g. `def6bc0a-c9dd-4874-948f-5206e6060a84` or a bech32 contract specification address, e.g. `contractspec1q000d0q2e8w5say53afqdesxp2zqzkr4fn`. @@ -335,7 +335,7 @@ It is required if the `specification_id` is a uuid or contract specification add It is ignored if the `specification_id` is a record specification address. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L687-L694 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L687-L694 --- @@ -346,12 +346,12 @@ The `RecordSpecificationsAll` query gets all record specifications. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L704-L713 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L704-L713 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L715-L724 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L715-L724 --- @@ -361,12 +361,12 @@ The `GetByAddr` query looks up metadata entries and/or specifications for a give The results of this query are not wrapped with id information like the other queries, and only returns the exact entries requested. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L726-L730 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L726-L730 The `addrs` can contain any valid metadata address bech32 strings. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L732-L748 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L732-L748 Any invalid or nonexistent `addrs` will be in the `not_found` list. @@ -376,12 +376,12 @@ Any invalid or nonexistent `addrs` will be in the `not_found` list. The `OSLocatorParams` query gets the parameters of the Object Store Locator sub-module. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L750-L754 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L750-L754 There are no inputs for this query. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L756-L763 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L756-L763 --- @@ -390,12 +390,12 @@ There are no inputs for this query. The `OSLocator` query gets an Object Store Locator for an address. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L765-L771 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L765-L771 The `owner` should be a bech32 address string. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L773-L779 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L773-L779 --- @@ -404,12 +404,12 @@ The `owner` should be a bech32 address string. The `OSLocatorsByURI` query gets the object store locators by URI. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L781-L789 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L781-L789 The `uri` is string the URI to find object store locators for. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L791-L799 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L791-L799 --- @@ -418,13 +418,13 @@ The `uri` is string the URI to find object store locators for. The `OSLocatorsByScope` query gets the object store locators for the owners and value owner of a scope. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L801-L807 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L801-L807 The `scope_id`, must either be scope uuid, e.g. `91978ba2-5f35-459a-86a7-feca1b0512e0` or a scope address, e.g. `scope1qzge0zaztu65tx5x5llv5xc9ztsqxlkwel` ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L809-L815 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L809-L815 --- @@ -435,12 +435,12 @@ The `OSAllLocators` query gets all object store locators. This query is paginated. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L817-L823 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L817-L823 The only input to this query is pagination information. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L825-L833 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L825-L833 --- ## AccountData @@ -448,9 +448,9 @@ The only input to this query is pagination information. The `AccountData` query gets the account data associated with a scope. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L835-L840 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L835-L840 The `metadata_addr` must be a scope id, e.g. `scope1qzge0zaztu65tx5x5llv5xc9ztsqxlkwel`. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/metadata/v1/query.proto#L842-L846 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/metadata/v1/query.proto#L842-L846 diff --git a/x/oracle/spec/03_messages.md b/x/oracle/spec/03_messages.md index 59f3f87ee2..0b757f2f7c 100644 --- a/x/oracle/spec/03_messages.md +++ b/x/oracle/spec/03_messages.md @@ -18,11 +18,11 @@ The oracle's address is modified by proposing the `MsgUpdateOracleRequest` messa ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/tx.proto#L40-L49 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/oracle/v1/tx.proto#L40-L49 ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/tx.proto#L51-L52 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/oracle/v1/tx.proto#L51-L52 The message will fail under the following conditions: * The authority does not match the gov module. @@ -34,11 +34,11 @@ Sends a query to another chain's `Oracle` using `ICQ`. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/tx.proto#L22-L32 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/oracle/v1/tx.proto#L22-L32 ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/tx.proto#L34-L38 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/oracle/v1/tx.proto#L34-L38 The message will fail under the following conditions: * The authority does not pass basic integrity and format checks. diff --git a/x/oracle/spec/04_queries.md b/x/oracle/spec/04_queries.md index a0e8d315a1..6890ab7d1f 100644 --- a/x/oracle/spec/04_queries.md +++ b/x/oracle/spec/04_queries.md @@ -16,11 +16,11 @@ The `QueryOracleAddress` query is used to obtain the address of the module's ora ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/query.proto#L25-L26 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/oracle/v1/query.proto#L25-L26 ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/query.proto#L28-L32 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/oracle/v1/query.proto#L28-L32 --- @@ -29,10 +29,10 @@ The `QueryOracle` query forwards a query to the module's oracle. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/query.proto#L34-L38 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/oracle/v1/query.proto#L34-L38 ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/query.proto#L40-L44 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/oracle/v1/query.proto#L40-L44 The data from the `query` field is a `CosmWasm query` forwarded to the `oracle`. diff --git a/x/oracle/spec/06_genesis.md b/x/oracle/spec/06_genesis.md index 0b83e5f49f..48d6c7acd0 100644 --- a/x/oracle/spec/06_genesis.md +++ b/x/oracle/spec/06_genesis.md @@ -15,4 +15,4 @@ In this section we describe the processing of the oracle messages and the corres The GenesisState encompasses the upcoming sequence ID for an ICQ packet, the associated parameters, the designated port ID for the module, and the oracle address. These values are both extracted for export and imported for storage within the store. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/oracle/v1/genesis.proto#L10-L19 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/oracle/v1/genesis.proto#L10-L19 diff --git a/x/quarantine/spec/03_messages.md b/x/quarantine/spec/03_messages.md index 1d9b685f77..fd4b99ab4e 100644 --- a/x/quarantine/spec/03_messages.md +++ b/x/quarantine/spec/03_messages.md @@ -12,7 +12,7 @@ An account can activate quarantine using a `MsgOptIn`. It contains only the address to quarantine. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L36-L41 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L36-L41 It is expected to fail if the `to_address` is invalid. @@ -21,7 +21,7 @@ It is expected to fail if the `to_address` is invalid. An account can deactivate quarantine using a `MsgOptOut`. It contains only the address to unquarantine. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L46-L51 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L46-L51 It is expected to fail if the `to_address` is invalid. @@ -31,7 +31,7 @@ Quarantined funds can be accepted by the intended receiver using a `MsgAccept`. It contains a `to_address` (receiver) and one or more `from_addresses` (senders). It also contains a flag to indicate whether auto-accept should be set up for all provided addresses. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L56-L70 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L56-L70 Any quarantined funds for the `to_address` from any `from_address` are accepted (regardless of whether they've been previously declined). @@ -47,7 +47,7 @@ It is expected to fail if: The response will contain a total of all funds released. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L72-L81 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L72-L81 ## Msg/Decline @@ -55,7 +55,7 @@ Quarantined funds can be declined by the intended receiver using a `MsgDecline`. It contains a `to_address` (receiver) and one or more `from_addresses` (senders). It also contains a flag to indicate whether auto-decline should be set up for all provided addresses. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L83-L97 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L83-L97 Any quarantined funds for the `to_address` from any `from_address` are declined. @@ -74,7 +74,7 @@ It is expected to fail if: Auto-Responses can be defined either through the `permanent` flags with a `MsgAccept` or `MsgDecline`, or using a `MsgUpdateAutoResponses`. It contains a `to_address` and a list of `updates`. Each `AutoResponseUpdate` contains a `from_address` and the desired `response` for it. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/tx.proto#L102-L111 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/tx.proto#L102-L111 Providing a `response` of `AUTO_RESPONSE_UNSPECIFIED` will cause the applicable entry to be deleted, allowing users to un-set previous auto-responses. diff --git a/x/quarantine/spec/05_queries.md b/x/quarantine/spec/05_queries.md index f4b88416b7..7e3d83611d 100644 --- a/x/quarantine/spec/05_queries.md +++ b/x/quarantine/spec/05_queries.md @@ -12,11 +12,11 @@ The query takes in a `to_address` and outputs `true` if the address is quarantin Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L44-L48 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L44-L48 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L50-L54 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L50-L54 It is expected to fail if the `to_address` is invalid. @@ -27,16 +27,16 @@ This query takes in an optional `to_address` and optional `from_address` and out Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L56-L65 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L56-L65 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L67-L74 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L67-L74 QuarantinedFunds: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/quarantine.proto#L11-L26 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/quarantine.proto#L11-L26 - If neither a `to_address` nor `from_address` are provided, all non-declined quarantined funds for any addresses will be returned. - If the request contains a `to_address` but no `from_address`, all non-declined quarantined funds for the `to_address` are returned. @@ -56,16 +56,16 @@ This query takes in a `to_address` and optional `from_address` and outputs infor Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L76-L85 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L76-L85 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/query.proto#L87-L94 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/query.proto#L87-L94 AutoResponseEntry: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/quarantine/v1beta1/quarantine.proto#L28-L36 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/quarantine/v1beta1/quarantine.proto#L28-L36 - If no `from_address` is provided, all auto-response entries for the provided `to_address` are returned. The results will not contain any entries for `AUTO_RESPONSE_UNSPECIFIED`. - If a `from_address` is provided, the auto-response setting that `to_address` has from `from_address` is returned. This result might be `AUTO_RESPONSE_UNSPECIFIED`. diff --git a/x/sanction/spec/03_messages.md b/x/sanction/spec/03_messages.md index 48365510f3..346e1c984d 100644 --- a/x/sanction/spec/03_messages.md +++ b/x/sanction/spec/03_messages.md @@ -12,7 +12,7 @@ All Msg Service endpoints in the `x/sanction` module are for use with governance A user can request that accounts be sanctioned by submitting a governance proposal containing a `MsgSanction`. It contains the list of `addresses` of accounts to be sanctioned and the `authority` able to do it. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/tx.proto#L24-L34 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/tx.proto#L24-L34 If the proposal ever has enough total deposit (defined in params), immediate temporary sanctions are issued for each address. Temporary sanctions expire at the completion of the governance proposal regardless of outcome. @@ -31,7 +31,7 @@ It is expected to fail if: A user can request that accounts be unsanctioned by submitting a governance proposal containing a `MsgUnsanction`. It contains the list of `addresses` of accounts to be unsanctioned and the `authority` able to do it. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/tx.proto#L39-L49 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/tx.proto#L39-L49 If the proposal ever has enough total deposit (defined in params), immediate temporary unsanctions are issued for each address. Temporary unsanctions expire at the completion of the governance proposal regardless of outcome. @@ -49,7 +49,7 @@ It is expected to fail if: The sanction module params can be updated by submitting a governance proposal containing a `MsgUpdateParams`. It contains the desired new `params` and the `authority` able to update them. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/tx.proto#L54-L64 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/tx.proto#L54-L64 If `params` is `null`, they will be deleted from state, reverting them to their code-defined defaults. If a field in `params` is `null` or empty, the record in state will reflect that. diff --git a/x/sanction/spec/05_queries.md b/x/sanction/spec/05_queries.md index 05efeda325..56b34f50ad 100644 --- a/x/sanction/spec/05_queries.md +++ b/x/sanction/spec/05_queries.md @@ -17,11 +17,11 @@ If it returns `false`, the account *is* allowed to move its funds (at least from Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L34-L37 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L34-L37 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L39-L43 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L39-L43 It is expected to fail if the `address` is invalid. @@ -32,11 +32,11 @@ It takes in `pagination` parameters and outputs a list of `addresses`. Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L45-L49 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L45-L49 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L51-L58 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L51-L58 This query does not take into account temporary sanctions or temporary unsanctions. Addresses that are temporarily sanctioned (but not permanently sanctioned) are **not** returned by this query. @@ -53,21 +53,21 @@ It takes in `pagination` parameters and an optional `address`. Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L60-L67 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L60-L67 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L69-L75 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L69-L75 TemporaryEntry: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/sanction.proto#L36-L44 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/sanction.proto#L36-L44 TempStatus: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/sanction.proto#L46-L56 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/sanction.proto#L46-L56 - If an `address` is provided, only temporary entries associated with that address are returned. - If an `address` is provided that does not have any temporary entries, a single `TemporaryEntry` with a `status` of `TEMP_STATUS_UNSPECIFIED` is returned. @@ -87,11 +87,11 @@ It has no input and outputs the `params`. Request: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L77-L78 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L77-L78 Response: -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/cosmos/sanction/v1beta1/query.proto#L80-L84 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/cosmos/sanction/v1beta1/query.proto#L80-L84 This query returns the values used for the params. That is, if there are params stored in state, they are returned; diff --git a/x/trigger/spec/02_state.md b/x/trigger/spec/02_state.md index 18368dc776..33761e499f 100644 --- a/x/trigger/spec/02_state.md +++ b/x/trigger/spec/02_state.md @@ -28,7 +28,7 @@ The excess gas on a MsgCreateTrigger transaction will be used for the `Trigger's * Event Listener: `0x02 | Event Type (32 bytes) | Order (8 bytes) -> []byte{}` * Gas Limit: `0x04 | Trigger ID (8 bytes) -> uint64(GasLimit)` -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L13-L25 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/trigger.proto#L13-L25 ### TriggerEventI @@ -38,25 +38,25 @@ A `Trigger` must have an event that implements the `TriggerEventI` interface. Cu The `BlockHeightEvent` allows the user to configure their `Trigger` to fire when the current block's `Block Height` is greater than or equal to the defined one. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L39-L46 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/trigger.proto#L39-L46 #### BlockTimeEvent The `BlockTimeEvent` allows the user to configure their `Trigger` to fire when the current block's `Block Time` is greater than or equal to the defined one. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L48-L55 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/trigger.proto#L48-L55 #### TransactionEvent The `TransactionEvent` allows the user to configure their `Trigger` to fire when a transaction event matching the user defined one has been emitted. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L57-L66 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/trigger.proto#L57-L66 ##### Attribute The `Attribute` is used by the `TransactionEvent` to allow the user to configure which attributes must be present on the transaction event. An `Attribute` with an empty `value` will only require the `name` to match. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L68-L76 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/trigger.proto#L68-L76 --- ## Queue @@ -68,4 +68,4 @@ The `Queue` is an internal structure that we use to store and throttle the execu * Queue Start Index: `0x06 -> uint64(QueueStartIndex)` * Queue Length: `0x07 -> uint64(QueueLength)` -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/trigger.proto#L27-L37 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/trigger.proto#L27-L37 diff --git a/x/trigger/spec/03_messages.md b/x/trigger/spec/03_messages.md index d73ced5c79..ca21f01ef9 100644 --- a/x/trigger/spec/03_messages.md +++ b/x/trigger/spec/03_messages.md @@ -17,11 +17,11 @@ Creates a `Trigger` that will fire when its event has been detected. If the mess ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/tx.proto#L23-L34 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/tx.proto#L23-L34 ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/tx.proto#L36-L40 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/tx.proto#L36-L40 The message will fail under the following conditions: * The authority is an invalid bech32 address @@ -36,11 +36,11 @@ Destroys a `Trigger` that has been created and is still registered. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/tx.proto#L42-L51 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/tx.proto#L42-L51 ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/tx.proto#L53-L54 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/tx.proto#L53-L54 The message will fail under the following conditions: * The `Trigger` does not exist diff --git a/x/trigger/spec/04_queries.md b/x/trigger/spec/04_queries.md index ab1bae1407..e430b0b870 100644 --- a/x/trigger/spec/04_queries.md +++ b/x/trigger/spec/04_queries.md @@ -18,13 +18,13 @@ The `QueryTriggerByID` query is used to obtain the content of a specific Trigger ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/query.proto#L25-L29 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/query.proto#L25-L29 The `id` is the unique identifier for the Trigger. ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/query.proto#L31-L35 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/query.proto#L31-L35 --- @@ -34,8 +34,8 @@ The `QueryTriggers` query is used to obtain all Triggers. ### Request -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/query.proto#L37-L41 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/query.proto#L37-L41 ### Response -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/query.proto#L43-L49 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/query.proto#L43-L49 diff --git a/x/trigger/spec/07_genesis.md b/x/trigger/spec/07_genesis.md index 46c97e8325..43fd719ebe 100644 --- a/x/trigger/spec/07_genesis.md +++ b/x/trigger/spec/07_genesis.md @@ -11,4 +11,4 @@ In this section we describe the processing of the trigger messages and the corre GenesisState contains a list of triggers, queued triggers, and gas limits. It also tracks the triggerID and the queue start. These are exported and later imported from/to the store. -+++ https://github.com/provenance-io/provenance/blob/v1.19.0-rc2/proto/provenance/trigger/v1/genesis.proto#L11-L30 ++++ https://github.com/provenance-io/provenance/blob/v1.19.0/proto/provenance/trigger/v1/genesis.proto#L11-L30 From a8f8a414566a52dcf84ec0de44cbf9aa5662b6b9 Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Mon, 8 Jul 2024 11:21:14 -0600 Subject: [PATCH 14/16] Tweak the comments in the awk scripts after some proofreading. --- scripts/identify-endpoints.awk | 7 +- scripts/identify-links.awk | 132 ++++++++++++++++++--------------- scripts/identify-messages.awk | 2 +- 3 files changed, 78 insertions(+), 63 deletions(-) diff --git a/scripts/identify-endpoints.awk b/scripts/identify-endpoints.awk index 97cf448161..ae1b6b9a5f 100644 --- a/scripts/identify-endpoints.awk +++ b/scripts/identify-endpoints.awk @@ -1,5 +1,5 @@ # This awk script will process a proto file and output information about endpoint request and response message names. -# Example usage: awk -f identify-endpoints.awk +# Example usage: awk -f identify-endpoints.awk # To include debugging information in the output, provide these arguments to the awk command: -v debug='1' # # This file must be in the scripts/ directory so that the update-spec-links.sh script can find it. @@ -10,8 +10,9 @@ # rpc::Request:;= # rpc::Response:;= # The value will be relative to the repo root directory (e.g. it will start with "proto/"). -# Note that the output has the twice. That makes it so we can find the entry by the start of the line -# and we have exactly what we need to replace it with after the double colons, without any extra special parsing needed. +# Note that the output has the twice. That makes it so we can find the entry by the start +# of the line and we have exactly what we need to replace it with after the semicolon. It saves us from +# having to also parse that out separately elsewhere. # # You can basically think of each line having this format: # ; diff --git a/scripts/identify-links.awk b/scripts/identify-links.awk index 43a1da1c9e..96f28c79fc 100644 --- a/scripts/identify-links.awk +++ b/scripts/identify-links.awk @@ -1,6 +1,6 @@ # This awk script will process a markdown file and identify the desired content for each proto link. # You MUST provide a value for LinkRx when invoking this script. -# Example usage: awk -v LinkRx='^\\+\\+\\+' -f identify-links.awk +# Example usage: awk -v LinkRx='^\\+\\+\\+' -f identify-links.awk # To include debugging information in the output, provide these arguments to the awk command: -v debug='1' # # This file must be in the scripts/ directory so that the update-spec-links.sh script can find it. @@ -25,7 +25,7 @@ # The output from the identify-messages.awk script can then be used to add the line numbers to the ;= lines. # # The is the one that this awk script is parsing. -# The is the number of the line that the link is on. +# The is the number of the line that the link is on (in the ). # The is extracted from the link and will be relative to the repo's root. # The is identified by a markdown header or a link comment. # The is also identified by a markdown header. @@ -43,8 +43,8 @@ # Only lines of interest are considered by this script. # The rest of the markdown file's content is simply ignored. # -# A link message html comment applies only to the next link. -# These are also often refert to as a "link comment" or "link message comment". +# A link message html comment applies only to the next link: "" +# These are also often refered to as a "link comment" or "link message comment". # Their use does not interrupt the other patterns described in here. # This allows you to use them on any link without interfering with the other patterns. # An error is generated if the next line of interest after a link comment is NOT a link. @@ -65,87 +65,101 @@ # they're not included in these examples to make them easier to read in here. # # Use the header that the link is under: -# ### MessageName -# -# Spaces are removed from the header strings, so this is treated the same way: -# ### Message Name -# -# A header like this can only be used for a single link. +# ### MessageName +# +# Spaces are removed from the header strings, so this is treated the same way: +# ### Message Name +# +# A header like this can only be used for a single link. +# # An endpoint header followed by request and/or response headers: -# ### EndpointName -# #### Request -# -# #### Response -# +# ### EndpointName +# #### Request +# +# #### Response +# +# # An endpoint header followed by "Request:" and/or "Response:" lines: -# ### EndpointName -# Request: -# -# Response: -# -# A clearly defined endpoint header followed by one or two links: -# ### Msg/EndpointName -# -# -# If there's only one link after such a header, it's assumed to be the request. -# Only "Msg/" and "Query/" are recognized prefixes for a clearly defined endpoint header. -# Without the "Msg/" or "Query/" prefix in the header, the this script would think that the -# first link should refer to a message or enum with the same name as the "EndpointName", and -# an error would be generated for the second line. -# A link message html comment followed by a link: -# -# -# There cannot be header lines, another link comment or "Request:" or "Response:" lines between the link comment and link. +# ### EndpointName +# Request: +# +# Response: +# +# +# A clearly defined endpoint header followed by one or two links: +# ### Msg/EndpointName +# +# +# If there's only one link after such a header, it's assumed to be the request. +# Only "Msg/" and "Query/" are recognized prefixes for a clearly defined endpoint header. +# Without the "Msg/" or "Query/" prefix in the header, this script would think that the +# first link should refer to a message or enum with the same name as the "EndpointName", +# and an error would be generated for the second line. +# +# A link message html comment followed by a link: +# +# +# There cannot be any lines of interest between the comment and the link, but there can be boring lines. # # Here are some more complex examples. Again, there should be empty lines # before and after each link, but they aren't included in these examples. +# # A link comment under another message's header -# ### Message Name -# -# -# -# or even -# ### Message Name -# -# -# +# ### Message Name +# +# +# +# or even +# ### Message Name +# +# +# +# # A link comment under a clearly defined endpoint header. -# ### Msg/EndpointName -# -# -# -# -# -# +# ### Msg/EndpointName +# +# +# +# +# +# # -# Troubleshooting: -# Here are some example error lines, and what they might mean: -# "You must provide a LinkRx value (with -v LinkRx=...) to invoke this script" +# Troubleshooting +# +# Here are some example error lines, and what they might mean: +# +# "You must provide a LinkRx value (with -v LinkRx=...) to invoke this script" # Cause: The LinkRx value was not provided when this awk script was invoked. # Fix: Include these args in your awk command: -v LinkRx='...' -# "link message comment not above a link: " -# Cause: The first line of interest after a link comment line, is not a link. +# +# "link message comment not above a link: " +# Cause: The first line of interest after a link comment line is not a link. # Fix: Either delete the link comment line or else move it closer to the link. # Note: The included in this error is the line number of the (non-link) # line of interest, and NOT the line number of the link comment. -# "endpoint already has a request and response" +# +# "endpoint already has a request and response" # Cause: There are three or more links under a "Msg/Endpoint" or "Query/Endpoint" header. # Fix: Add a link comment above one or more links in the section. # Note: The first link (without a link comment) is assumed to the the request, # and the second is the response. So you don't need to put a link comment # above those two, just the ones that are neither the request nor response. -# "multiple links found in endpoint (request|response) section" +# +# "multiple links found in endpoint (request|response) section" # Cause: There is a request or response section in the markdown that has two or more links. # Fix: Add a link comment above the non-request/response links. -# You might also consider adding headers above each of those links so that those messages -# can be easily linked to by other documentation. +# You might also consider instead adding headers above each of those links so that +# those messages can be easily linked to by other documentation. +# # Note: The first link (without a link comment) is taken to be either the request # or response (depending on the section). All other links must have a link comment. -# "could not identify desired content of link" +# "could not identify desired content of link" # Cause: There is probably two links in a non-endpoint section, but there might be other things that cause this. # Fix: Either add a link comment or a new header above the problematic link. # { + # Make sure that there's a LinkRx provided. This check is done on line one instead of a BEGIN block + # because I wanted the FILENAME in it, which isn't available in a BEGIN block. if (FNR==1) { if (LinkRx=="") { print FILENAME ":0;ERROR: You must provide a LinkRx value (with -v LinkRx=...) to invoke this script"; diff --git a/scripts/identify-messages.awk b/scripts/identify-messages.awk index bcb08f7980..c08ace113d 100644 --- a/scripts/identify-messages.awk +++ b/scripts/identify-messages.awk @@ -1,5 +1,5 @@ # This awk script will process a proto file and output all the messages and their starting and ending lines. -# Example usage: awk -f identify-messages.awk +# Example usage: awk -f identify-messages.awk # To include debugging information in the output, provide these arguments to the awk command: -v debug='1' # # This file must be in the scripts/ directory so that the update-spec-links.sh script can find it. From 156ae3658263732e7f047e43a24b7d7cf4b0b4d2 Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Mon, 8 Jul 2024 11:47:59 -0600 Subject: [PATCH 15/16] Actually do the defined cleanup action (always) when no option is provided. Tweak some of the comments from proofreading. --- scripts/update-spec-links.sh | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/scripts/update-spec-links.sh b/scripts/update-spec-links.sh index 5f24df4554..8a369338e4 100755 --- a/scripts/update-spec-links.sh +++ b/scripts/update-spec-links.sh @@ -5,7 +5,7 @@ # identify-endpoints.awk # identify-messages.awk -simple_usage='Usage: ./update-spec-links.sh [] [ ...]' +simple_usage='Usage: ./update-spec-links.sh [] [ ...]' show_usage () { cat << EOF @@ -65,14 +65,19 @@ EOF where_i_am="$( cd "$( dirname "${BASH_SOURCE:-$0}" )"; pwd -P )" # Define paths to each of the required scripts. -# Note that each of these can alternatively be defined as environment variables +# Note that each of these can alternatively be defined using environment variables # primarily so that it's easier to test/develop alternative versions of each one. identify_messages_awk="${IDENTIFY_MESSAGES_AWK:-${where_i_am}/identify-messages.awk}" identify_endpoints_awk="${IDENTIFY_ENDPOINTS_AWK:-${where_i_am}/identify-endpoints.awk}" identify_links_awk="${IDENTIFY_LINKS_AWK:-${where_i_am}/identify-links.awk}" +######################################################################################################################## +################################################ Read/Parse CLI args ################################################# +######################################################################################################################## + declare files_in=() declare dirs_in=() +clean='always' while [[ "$#" -gt '0' ]]; do case "$1" in @@ -221,7 +226,7 @@ fi link_prefix="+++ https://github.com/provenance-io/provenance/blob/$ref/" link_rx='^\+\+\+ https://github\.com/provenance-io/provenance.*/proto/.*\.proto' -link_rx_esc="$( sed 's|\\|\\\\|g;' <<< "$link_rx" )" +link_rx_esc="$( sed -E 's|\\|\\\\|g;' <<< "$link_rx" )" declare files=() if [[ "${#files_in[@]}" -eq '0' && "${#dirs_in[@]}" -eq '0' ]]; then @@ -331,9 +336,9 @@ set +o noglob if [[ -z "$source_ref" ]]; then # If there isn't a source ref, then we're copying the proto files from the local version. # But all we'll know is the path relative to the repo root. So, below, we'll convert that - # relative path to an absolute path for the cp command so that this script from any directory - # in this repo. We're doing this before trying to create the temp directory so that we don't - # have to worry about the extra cleanup if this fails. + # relative path to an absolute path for the cp command so that this script can run from any + # directory in this repo. We're doing this before trying to create the temp directory so + # that we don't have to worry about the extra cleanup if this fails. repo_root="$( git rev-parse --show-toplevel )" || exit $? fi @@ -415,7 +420,7 @@ get_line_count () { # Each line of the message summary file is expected to have this format: # ;=#L-L message_summary_file="${temp_dir}/message-summary.txt" -[[ -n "$verbose" ]] && printf 'Creating summary of all message and enums: %s\n' "$message_summary_file" +[[ -n "$verbose" ]] && printf 'Creating summary of all messages and enums: %s\n' "$message_summary_file" find "$temp_dir" -type f -name '*.proto' -print0 | xargs -0 awk -f "$identify_messages_awk" >> "$message_summary_file" || clean_exit $? [[ -n "$verbose" ]] && printf 'Found %d messages/enums in the proto files.\n' "$( get_line_count "$message_summary_file" )" @@ -496,9 +501,9 @@ while IFS="" read -r line || [[ -n "$line" ]]; do # Split the line into: # The lead: : # And the endpoint lookup string: rpc::(Request|Response): - lead="$( sed 's/;.*$//' <<< "$line" )" + lead="$( sed -E 's/;.*$//' <<< "$line" )" [[ -n "$verbose" ]] && printf '[2:%d/%d]: lead: %s\n' "$i" "$rpc_count" "$lead" - to_find="$( sed 's/^[^;]*;//' <<< "$line" )" + to_find="$( sed -E 's/^[^;]*;//' <<< "$line" )" [[ -n "$verbose" ]] && printf '[2:%d/%d]: to_find: %s\n' "$i" "$rpc_count" "$to_find" if [[ -z "$lead" || -z "$to_find" || "$lead" == "$to_find" ]]; then [[ -n "$verbose" ]] && printf '[2:%d/%d]: Result: Error: Could not split lead and to_find.\n' "$i" "$ok_count" From 77eb5ce04ad56d4e7dd8c168cb386199e23d5dcc Mon Sep 17 00:00:00 2001 From: Daniel Wedul Date: Mon, 8 Jul 2024 11:50:56 -0600 Subject: [PATCH 16/16] Add changelog entry. --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 985c8eb63f..3843470845 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,14 @@ Ref: https://keepachangelog.com/en/1.0.0/ ## [Unreleased] +### Features + +* Create a script for updating links in the spec docs to proto messages [#2068](https://github.com/provenance-io/provenance/pull/2068). + +### Improvements + +* Update all the proto links in the spec docs to point to `v1.19.0` versions of the proto files [#2068](https://github.com/provenance-io/provenance/pull/2068). + ### Dependencies - Bump `bufbuild/buf-setup-action` from 1.33.0 to 1.34.0 ([#2049](https://github.com/provenance-io/provenance/pull/2049))