diff --git a/.env b/.env index 72ee7c9..2e6afb0 100644 --- a/.env +++ b/.env @@ -11,12 +11,20 @@ CR_REPO_OWNER='cosmos' CR_REPO_NAME='chain-registry' CR_FOLDER_PATH='_IBC' CR_CHAIN_NAME='cosmoshub' -RPC_URL = "https://rpc.cosmos.directory:443/cosmoshub" +RPC_URL='https://rpc.cosmos.directory:443/cosmoshub' REST_URL='https://rest.cosmos.directory:443/cosmoshub' GRANTER_ACCOUNT='cosmos14r8ff03jkyac2fukjtfrfgaj8ehjlhds5ec2zp' PERIOD_DURATION='86400' +TOTAL_SIGNERS='5' +MULTISIG_THRESHOLD='3' +SIGNER_1_PUBKEY='AiIW8DesZL5lGOihwuuFvy68qpsgNnagoqPyiL1gRxlP' +SIGNER_2_PUBKEY='AwtmdDXDpjJnujcV4QRpL7mSrXr/rTru+oKKQNbe4v0h' +SIGNER_3_PUBKEY='ApClmSS+8M3x3lLWPdGEzd3fyVCx4jXEPrDmcXs0CRzh' +SIGNER_4_PUBKEY='A67JHk7NWw3pKfEk/DkjsAWXhqN+OeZHKS0cmdh6dSry' +SIGNER_5_PUBKEY='A2zAex39vqIQw/oxrFS/D5FemgA+N/xxDwCB7HzlPKrP' + # INDEXER START_BLOCK_HEIGHT='18734300' diff --git a/.github/PULL_REQUEST_TEMPLATE/operator_onboarding.md b/.github/PULL_REQUEST_TEMPLATE.md similarity index 55% rename from .github/PULL_REQUEST_TEMPLATE/operator_onboarding.md rename to .github/PULL_REQUEST_TEMPLATE.md index 0374080..6397861 100644 --- a/.github/PULL_REQUEST_TEMPLATE/operator_onboarding.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,16 +1,16 @@ # Relayer Operator Onboarding -Thank you for your IBC relaying efforts for the Cosmos Hub. This pull request is for onboarding new operators. +Thank you for your IBC relaying efforts for the Cosmos Hub. This pull request template is for onboarding new operators. ## Instructions -Add your account addresses and contact information in the correct format to the specified JSON file in the `_IBC` folder. Ensure that your submission follows the provided format. If you have opened this pull request through a related issue, please link the issue number below: +Add your account addresses and contact information in the correct format to the specified JSON file(s) in the `_IBC` folder. Ensure that your submission follows the provided format. If you have opened this pull request through a related issue, please link the issue number below: Closes #issue_number ## Checklist -- [ ] I have read the onboarding documentation & contribution guidelines. +- [ ] I have read the [onboarding documentation & contribution guidelines](../CONTRIBUTE.md). - [ ] I have added my Account Addresses and Operator Information to the correct path file in the `_IBC` folder. - [ ] I have ensured my changes follow the required format. - [ ] I have linked the related onboarding issue (if one was created). diff --git a/.github/workflows/operator_onboarding.yml b/.github/workflows/operator_onboarding.yml index 45d488e..a52ba8e 100644 --- a/.github/workflows/operator_onboarding.yml +++ b/.github/workflows/operator_onboarding.yml @@ -33,8 +33,11 @@ jobs: fi - name: Validate Input & Add operator to IBC path file + id: add_operator if: env.LABEL_FOUND == 'true' - run: python ./scripts/add_operator_to_path.py ${{ github.event.issue.number }} + run: | + OPERATOR_NAME=$(python ./scripts/add_operator_to_path.py ${{ github.event.issue.number }} | tail -n 1) + echo "OPERATOR_NAME=$OPERATOR_NAME" >> $GITHUB_ENV env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -49,7 +52,7 @@ jobs: if: env.LABEL_FOUND == 'true' run: | git add -A - git commit -m "Add Operator d" + git commit -m "Add Operator ${OPERATOR_NAME}" - name: Push changes if: env.LABEL_FOUND == 'true' diff --git a/.github/workflows/sync_operator_data.yml b/.github/workflows/sync_operator_data.yml index 3839c23..09f3ad5 100644 --- a/.github/workflows/sync_operator_data.yml +++ b/.github/workflows/sync_operator_data.yml @@ -16,8 +16,10 @@ jobs: sync-operators-update-feegrant: runs-on: ubuntu-latest steps: - - name: Checkout Repository + - name: Checkout Repository and Switch to Main uses: actions/checkout@v2 + with: + ref: main - name: Set up Python uses: actions/setup-python@v2 @@ -40,7 +42,7 @@ jobs: git config user.name 'github-actions[bot]' git config user.email 'github-actions[bot]@users.noreply.github.com' git add -A - git commit -m "Automated data updates" || echo "No changes to commit" + git commit -m "Sync Operators file" || echo "No changes to commit" git push env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/validate_ibc_path.yaml b/.github/workflows/validate_ibc_path.yaml index 962b071..274c647 100644 --- a/.github/workflows/validate_ibc_path.yaml +++ b/.github/workflows/validate_ibc_path.yaml @@ -2,8 +2,9 @@ name: Validate IBC path on: pull_request: - branches: - - main + paths: + - '_IBC/*.json' + workflow_dispatch: jobs: changes: @@ -18,32 +19,56 @@ jobs: filters: | ibc: - added|modified: '(_IBC|testnets/_IBC)/*.json' - Validation: - needs: changes + validate-json: runs-on: ubuntu-latest - if: ${{ needs.changes.outputs.paths != null }} steps: - uses: actions/checkout@v4 - - name: Install rly - uses: jaxxstorm/action-install-gh-release@v1 - with: - repo: cosmos/relayer - tag: v2.4.2 - binaries-location: Cosmos Relayer_2.4.2_linux_amd64 - - name: Validate trusting period - shell: bash {0} + name: Checkout code + + - name: Install JSON Schema Validator + run: sudo npm install -g ajv-cli@latest + + - name: Validate JSON files run: | - declare -i result=0 - paths=(${{ needs.changes.outputs.paths }}) - for path in "${paths[@]}"; do - if [[ "$path" != *"cosmoshub-osmosis"* ]]; then - $(scripts/validate_ibc_path.sh $path) - result=$(($result+$?)) - else - echo "cosmoshub-osmosis ommitted for path validation." - fi - done - if [[ "$result" -gt 0 ]]; then - echo "Error: Incorrect trusting period for all or some clients" >&2 + for file in _IBC/*.json; do + output=$(ajv test -s ./ibc_data.schema.json -d "$file" --valid) + if [ $? -ne 0 ]; then + echo "Validation failed for $file" + echo "$output" exit 1 - fi \ No newline at end of file + fi + done + # validate-client-states: + # needs: changes + # runs-on: ubuntu-latest + # if: ${{ needs.changes.outputs.paths != null }} + # steps: + # - uses: actions/checkout@v4 + # - name: Install rly + # uses: jaxxstorm/action-install-gh-release@v1 + # with: + # repo: cosmos/relayer + # tag: v2.4.2 + # binaries-location: Cosmos Relayer_2.4.2_linux_amd64 + # - name: Set execute permission for the script + # run: chmod +x $GITHUB_WORKSPACE/scripts/validate_ibc_path.sh + # - name: List files in the script directory + # run: ls -l $GITHUB_WORKSPACE/scripts/ + # - name: Validate trusting period + # shell: bash {0} + # run: | + # declare -i result=0 + # paths=(${{ needs.changes.outputs.paths }}) + # for path in "${paths[@]}"; do + # if [[ "$path" != *"cosmoshub-osmosis"* ]]; then + # $GITHUB_WORKSPACE/scripts/validate_ibc_path.sh $path + # result=$(($result+$?)) + # else + # echo "cosmoshub-osmosis ommitted for trusting period validation." + # fi + # done + # if [[ "$result" -gt 0 ]]; then + # echo "Error: Incorrect trusting period for all or some clients" >&2 + # exit 1 + # fi + \ No newline at end of file diff --git a/_IBC/archway-cosmoshub.json b/_IBC/archway-cosmoshub.json index 4b8be7b..572fe9a 100644 --- a/_IBC/archway-cosmoshub.json +++ b/_IBC/archway-cosmoshub.json @@ -26,5 +26,23 @@ "status": "live" } } + ], + "operators": [ + { + "chain_1": { + "address": "archway1l267dmlmprhu4p5aqslf50f495vjqlg3glkqcu" + }, + "chain_2": { + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + } ] } \ No newline at end of file diff --git a/_IBC/aura-cosmoshub.json b/_IBC/aura-cosmoshub.json index 2203b05..54f39d0 100644 --- a/_IBC/aura-cosmoshub.json +++ b/_IBC/aura-cosmoshub.json @@ -27,5 +27,23 @@ "preferred": true } } + ], + "operators": [ + { + "chain_1": { + "address": "aura19pjtx7dah2fquf7udyxjv94h0eraha787qxuts" + }, + "chain_2": { + "address": "cosmos19pjtx7dah2fquf7udyxjv94h0eraha789k37ff" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + } ] } \ No newline at end of file diff --git a/_IBC/axelar-cosmoshub.json b/_IBC/axelar-cosmoshub.json index 0ea4986..29bc410 100644 --- a/_IBC/axelar-cosmoshub.json +++ b/_IBC/axelar-cosmoshub.json @@ -45,5 +45,37 @@ "handle": "Char1esBark1ey" } }, + { + "chain_1": { + "address": "axelar19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqzxn3p9" + }, + "chain_2": { + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + }, + { + "chain_1": { + "address": "axelar1nna7k5lywn99cd63elcfqm6p8c5c4qcuvmt3z4" + }, + "chain_2": { + "address": "cosmos1nna7k5lywn99cd63elcfqm6p8c5c4qcug4aef5" + }, + "memo": "Relayed by IcyCRO \ud83e\uddca", + "name": "IcyCRO", + "discord": { + "handle": "zanglang" + }, + "telegram": { + "handle": "zanglang" + } + } ] } diff --git a/_IBC/bitsong-cosmoshub.json b/_IBC/bitsong-cosmoshub.json index 5bce337..d7c5a9d 100644 --- a/_IBC/bitsong-cosmoshub.json +++ b/_IBC/bitsong-cosmoshub.json @@ -27,5 +27,23 @@ "preferred": true } } + ], + "operators": [ + { + "chain_1": { + "address": "bitsong16arskkjeeq9jnvwfe78n8m9y06jkj9kp2vc6vn" + }, + "chain_2": { + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv" + }, + "memo": "Relayed by Architect Nodes! ", + "name": "Architect Nodes", + "discord": { + "handle": "architectnodes" + }, + "telegram": { + "handle": "social244305_Architect_Nodes" + } + } ] } \ No newline at end of file diff --git a/_IBC/cosmoshub-crescent.json b/_IBC/cosmoshub-crescent.json index d31ddd6..b688bcd 100644 --- a/_IBC/cosmoshub-crescent.json +++ b/_IBC/cosmoshub-crescent.json @@ -45,6 +45,38 @@ "telegram": { "handle": "Char1esBark1ey" } + }, + { + "chain_1": { + "address": "cosmos1w8kzcqk25vr0fx0k7yxn2vjw49qerut2tfv8up" + }, + "chain_2": { + "address": "cre1cx82d7pm4dgffy7a93rl6ul5g84vjgxkrw4xxp" + }, + "memo": "Relayed by Architect Nodes! ", + "name": "Architect Nodes", + "discord": { + "handle": "architectnodes" + }, + "telegram": { + "handle": "social244305_Architect_Nodes" + } + }, + { + "chain_1": { + "address": "cosmos1nna7k5lywn99cd63elcfqm6p8c5c4qcug4aef5" + }, + "chain_2": { + "address": "cre1nna7k5lywn99cd63elcfqm6p8c5c4qcuvawuue" + }, + "memo": "Relayed by IcyCRO \ud83e\uddca", + "name": "IcyCRO", + "discord": { + "handle": "zanglang" + }, + "telegram": { + "handle": "zanglang" + } } ] } diff --git a/_IBC/cosmoshub-cryptoorgchain.json b/_IBC/cosmoshub-cryptoorgchain.json index 36dc820..7753710 100644 --- a/_IBC/cosmoshub-cryptoorgchain.json +++ b/_IBC/cosmoshub-cryptoorgchain.json @@ -24,5 +24,23 @@ "version": "ics20-1", "tags": {} } + ], + "operators": [ + { + "chain_1": { + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y" + }, + "chain_2": { + "address": "cro19kzuzfmmy9wjr3cl0ss8wjzjup9g49hq7ndqk4" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + } ] } \ No newline at end of file diff --git a/_IBC/cosmoshub-emoney.json b/_IBC/cosmoshub-emoney.json index 408b6ae..eaf5c2a 100644 --- a/_IBC/cosmoshub-emoney.json +++ b/_IBC/cosmoshub-emoney.json @@ -24,5 +24,23 @@ "version": "ics20-1", "tags": {} } + ], + "operators": [ + { + "chain_1": { + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y" + }, + "chain_2": { + "address": "emoney19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqftldae" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + } ] } \ No newline at end of file diff --git a/_IBC/cosmoshub-evmos.json b/_IBC/cosmoshub-evmos.json index c5f5e4e..6f80687 100644 --- a/_IBC/cosmoshub-evmos.json +++ b/_IBC/cosmoshub-evmos.json @@ -44,6 +44,38 @@ "telegram": { "handle": "Char1esBark1ey" } + }, + { + "chain_1": { + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv" + }, + "chain_2": { + "address": "evmos1tusg5d35w03v0s2u5tefvf5yclguye09ctw6zu" + }, + "memo": "Relayed by Architect Nodes! ", + "name": "Architect Nodes", + "discord": { + "handle": "architectnodes" + }, + "telegram": { + "handle": "social244305_Architect_Nodes" + } + }, + { + "chain_1": { + "address": "cosmos1p7d8mnjttcszv34pk2a5yyug3474mhffasa7tg" + }, + "chain_2": { + "address": "evmos1lldjhjnn32e8vek7cxe9g05nf8j74y0xa6dt3p" + }, + "memo": "Relayed by IcyCRO \ud83e\uddca", + "name": "IcyCRO", + "discord": { + "handle": "zanglang" + }, + "telegram": { + "handle": "zanglang" + } } ] } diff --git a/_IBC/cosmoshub-injective.json b/_IBC/cosmoshub-injective.json index 5a6a02f..83c89f6 100644 --- a/_IBC/cosmoshub-injective.json +++ b/_IBC/cosmoshub-injective.json @@ -45,6 +45,22 @@ "telegram": { "handle": "Char1esBark1ey" } + }, + { + "chain_1": { + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt" + }, + "chain_2": { + "address": "inj1lagtgtck8627009uw39rlmsa6ty5dhwwuujq3m" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } } ] } diff --git a/_IBC/cosmoshub-juno.json b/_IBC/cosmoshub-juno.json index 42ff584..05650f9 100644 --- a/_IBC/cosmoshub-juno.json +++ b/_IBC/cosmoshub-juno.json @@ -44,6 +44,54 @@ "telegram": { "handle": "Char1esBark1ey" } + }, + { + "chain_1": { + "address": "cosmos19pjtx7dah2fquf7udyxjv94h0eraha789k37ff" + }, + "chain_2": { + "address": "juno19pjtx7dah2fquf7udyxjv94h0eraha78nyj9w4" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + }, + { + "chain_1": { + "address": "cosmos1w8kzcqk25vr0fx0k7yxn2vjw49qerut2tfv8up" + }, + "chain_2": { + "address": "juno1w8kzcqk25vr0fx0k7yxn2vjw49qerut2am0uma" + }, + "memo": "Relayed by Architect Nodes! ", + "name": "Architect Nodes", + "discord": { + "handle": "architectnodes" + }, + "telegram": { + "handle": "social244305_Architect_Nodes" + } + }, + { + "chain_1": { + "address": "cosmos1p7d8mnjttcszv34pk2a5yyug3474mhffasa7tg" + }, + "chain_2": { + "address": "juno1nna7k5lywn99cd63elcfqm6p8c5c4qcu787zwg" + }, + "memo": "Relayed by IcyCRO \ud83e\uddca", + "name": "IcyCRO", + "discord": { + "handle": "zanglang" + }, + "telegram": { + "handle": "zanglang" + } } ] } diff --git a/_IBC/cosmoshub-kava.json b/_IBC/cosmoshub-kava.json index 85698a6..1115a3a 100644 --- a/_IBC/cosmoshub-kava.json +++ b/_IBC/cosmoshub-kava.json @@ -27,5 +27,23 @@ "preferred": true } } + ], + "operators": [ + { + "chain_1": { + "address": "cosmos19pjtx7dah2fquf7udyxjv94h0eraha789k37ff" + }, + "chain_2": { + "address": "kava19pjtx7dah2fquf7udyxjv94h0eraha78er9rlw" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + } ] } \ No newline at end of file diff --git a/_IBC/cosmoshub-kichain.json b/_IBC/cosmoshub-kichain.json index a617c9f..8b6f90d 100644 --- a/_IBC/cosmoshub-kichain.json +++ b/_IBC/cosmoshub-kichain.json @@ -27,5 +27,23 @@ "preferred": true } } + ], + "operators": [ + { + "chain_1": { + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y" + }, + "chain_2": { + "address": "ki19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqh95kws" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + } ] } \ No newline at end of file diff --git a/_IBC/cosmoshub-kujira.json b/_IBC/cosmoshub-kujira.json index 44e7423..b81998f 100644 --- a/_IBC/cosmoshub-kujira.json +++ b/_IBC/cosmoshub-kujira.json @@ -44,6 +44,38 @@ "telegram": { "handle": "Char1esBark1ey" } + }, + { + "chain_1": { + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt" + }, + "chain_2": { + "address": "kujira1l267dmlmprhu4p5aqslf50f495vjqlg3vugulp" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + }, + { + "chain_1": { + "address": "cosmos1nna7k5lywn99cd63elcfqm6p8c5c4qcug4aef5" + }, + "chain_2": { + "address": "kujira1nna7k5lywn99cd63elcfqm6p8c5c4qcuealpy7" + }, + "memo": "Relayed by IcyCRO \ud83e\uddca", + "name": "IcyCRO", + "discord": { + "handle": "zanglang" + }, + "telegram": { + "handle": "zanglang" + } } ] } diff --git a/_IBC/cosmoshub-lumnetwork.json b/_IBC/cosmoshub-lumnetwork.json index 47a8472..1a1ff7f 100644 --- a/_IBC/cosmoshub-lumnetwork.json +++ b/_IBC/cosmoshub-lumnetwork.json @@ -27,5 +27,23 @@ "preferred": true } } + ], + "operators": [ + { + "chain_1": { + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y" + }, + "chain_2": { + "address": "lum19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqnzcsls" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + } ] } \ No newline at end of file diff --git a/_IBC/cosmoshub-neutron.json b/_IBC/cosmoshub-neutron.json index 57bcbe5..77b817d 100644 --- a/_IBC/cosmoshub-neutron.json +++ b/_IBC/cosmoshub-neutron.json @@ -44,6 +44,38 @@ "telegram": { "handle": "Char1esBark1ey" } + }, + { + "chain_1": { + "address": "cosmos1nna7k5lywn99cd63elcfqm6p8c5c4qcug4aef5" + }, + "chain_2": { + "address": "neutron1nna7k5lywn99cd63elcfqm6p8c5c4qcuv25mnn" + }, + "memo": "Relayed by IcyCRO \ud83e\uddca", + "name": "IcyCRO", + "discord": { + "handle": "zanglang" + }, + "telegram": { + "handle": "zanglang" + } + }, + { + "chain_1": { + "address": "cosmos1yghndrffay859ma2ue4pa2cltw640vtayerdla" + }, + "chain_2": { + "address": "neutron1yghndrffay859ma2ue4pa2cltw640vtaqx2096" + }, + "memo": "relayed by CryptoCrew Validators", + "name": "CryptoCrew", + "discord": { + "handle": "@ccclaimens" + }, + "telegram": { + "handle": "@clemensg" + } } ] } diff --git a/_IBC/cosmoshub-omniflixhub.json b/_IBC/cosmoshub-omniflixhub.json index 46ee90c..42d5d0f 100644 --- a/_IBC/cosmoshub-omniflixhub.json +++ b/_IBC/cosmoshub-omniflixhub.json @@ -29,5 +29,37 @@ } ], "operators": [ + { + "chain_1": { + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y" + }, + "chain_2": { + "address": "omniflix19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqmk5qa6" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + }, + { + "chain_1": { + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv" + }, + "chain_2": { + "address": "omniflix1cx82d7pm4dgffy7a93rl6ul5g84vjgxk6ch6yj" + }, + "memo": "Relayed by Architect Nodes! ", + "name": "Architect Nodes", + "discord": { + "handle": "architectnodes" + }, + "telegram": { + "handle": "social244305_Architect_Nodes" + } + } ] } diff --git a/_IBC/cosmoshub-osmosis.json b/_IBC/cosmoshub-osmosis.json index 0d3bbaf..8527743 100644 --- a/_IBC/cosmoshub-osmosis.json +++ b/_IBC/cosmoshub-osmosis.json @@ -47,7 +47,7 @@ } }, { - "chain_1": { + "chain_1": { "address": "cosmos1kgs9ml9hc085k6pm36z6wlnjc3c8zv99myau2w" }, "chain_2": { @@ -61,6 +61,38 @@ "telegram": { "handle": "Char1esBark1ey" } + }, + { + "chain_1": { + "address": "cosmos19pjtx7dah2fquf7udyxjv94h0eraha789k37ff" + }, + "chain_2": { + "address": "osmo19pjtx7dah2fquf7udyxjv94h0eraha78ddzwlm" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + }, + { + "chain_1": { + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv" + }, + "chain_2": { + "address": "osmo1cx82d7pm4dgffy7a93rl6ul5g84vjgxk0a4n97" + }, + "memo": "Relayed by Architect Nodes! ", + "name": "Architect Nodes", + "discord": { + "handle": "architectnodes" + }, + "telegram": { + "handle": "social244305_Architect_Nodes" + } } ] } diff --git a/_IBC/cosmoshub-persistence.json b/_IBC/cosmoshub-persistence.json index af7346f..c057421 100644 --- a/_IBC/cosmoshub-persistence.json +++ b/_IBC/cosmoshub-persistence.json @@ -24,5 +24,39 @@ "version": "ics20-1", "tags": {} } + ], + "operators": [ + { + "chain_1": { + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt" + }, + "chain_2": { + "address": "persistence1l267dmlmprhu4p5aqslf50f495vjqlg3ncvhu0" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + }, + { + "chain_1": { + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv" + }, + "chain_2": { + "address": "persistence1cx82d7pm4dgffy7a93rl6ul5g84vjgxkf2qsag" + }, + "memo": "Relayed by Architect Nodes! ", + "name": "Architect Nodes", + "discord": { + "handle": "architectnodes" + }, + "telegram": { + "handle": "social244305_Architect_Nodes" + } + } ] } \ No newline at end of file diff --git a/_IBC/cosmoshub-quicksilver.json b/_IBC/cosmoshub-quicksilver.json index 1557b11..454e4b7 100644 --- a/_IBC/cosmoshub-quicksilver.json +++ b/_IBC/cosmoshub-quicksilver.json @@ -40,6 +40,38 @@ "telegram": { "handle": "Char1esBark1ey" } + }, + { + "chain_1": { + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt" + }, + "chain_2": { + "address": "quick1l267dmlmprhu4p5aqslf50f495vjqlg3ks6kte" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + }, + { + "chain_1": { + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv" + }, + "chain_2": { + "address": "quick1cx82d7pm4dgffy7a93rl6ul5g84vjgxkvzk327" + }, + "memo": "Relayed by Architect Nodes! ", + "name": "Architect Nodes", + "discord": { + "handle": "architectnodes" + }, + "telegram": { + "handle": "social244305_Architect_Nodes" + } } ] } diff --git a/_IBC/cosmoshub-stride.json b/_IBC/cosmoshub-stride.json index 449c409..a5668ca 100644 --- a/_IBC/cosmoshub-stride.json +++ b/_IBC/cosmoshub-stride.json @@ -43,6 +43,22 @@ }, "telegram": { "handle": "Char1esBark1ey" + } + }, + { + "chain_1": { + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt" + }, + "chain_2": { + "address": "stride1l267dmlmprhu4p5aqslf50f495vjqlg37l2cx8" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" } }, { @@ -60,6 +76,38 @@ "telegram": { "handle": "Char1esBark1ey" } + }, + { + "chain_1": { + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv" + }, + "chain_2": { + "address": "stride1cx82d7pm4dgffy7a93rl6ul5g84vjgxkydxl8q" + }, + "memo": "Relayed by Architect Nodes! ", + "name": "Architect Nodes", + "discord": { + "handle": "architectnodes" + }, + "telegram": { + "handle": "social244305_Architect_Nodes" + } + }, + { + "chain_1": { + "address": "cosmos1p7d8mnjttcszv34pk2a5yyug3474mhffasa7tg" + }, + "chain_2": { + "address": "stride1nna7k5lywn99cd63elcfqm6p8c5c4qcut7a9ac" + }, + "memo": "Relayed by IcyCRO \ud83e\uddca", + "name": "IcyCRO", + "discord": { + "handle": "zanglang" + }, + "telegram": { + "handle": "zanglang" + } } ] } diff --git a/_IBC/cosmoshub-teritori.json b/_IBC/cosmoshub-teritori.json index dbea6be..455ef01 100644 --- a/_IBC/cosmoshub-teritori.json +++ b/_IBC/cosmoshub-teritori.json @@ -27,5 +27,23 @@ "preferred": true } } + ], + "operators": [ + { + "chain_1": { + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt" + }, + "chain_2": { + "address": "tori1l267dmlmprhu4p5aqslf50f495vjqlg3lqadfm" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } + } ] } \ No newline at end of file diff --git a/_IBC/cosmoshub-terra2.json b/_IBC/cosmoshub-terra2.json index b0c0786..1198deb 100644 --- a/_IBC/cosmoshub-terra2.json +++ b/_IBC/cosmoshub-terra2.json @@ -44,6 +44,22 @@ "telegram": { "handle": "Char1esBark1ey" } + }, + { + "chain_1": { + "address": "cosmos19pjtx7dah2fquf7udyxjv94h0eraha789k37ff" + }, + "chain_2": { + "address": "terra19pjtx7dah2fquf7udyxjv94h0eraha78rjt7tf" + }, + "memo": "Relayed by Crosnest.", + "name": "Crosnest", + "discord": { + "handle": "galadrin_crosnest" + }, + "telegram": { + "handle": "crosnest_com" + } } ] } diff --git a/_IBC/cosmoshub-umee.json b/_IBC/cosmoshub-umee.json index a36b41d..d54ae89 100644 --- a/_IBC/cosmoshub-umee.json +++ b/_IBC/cosmoshub-umee.json @@ -26,5 +26,21 @@ } ], "operators": [ + { + "chain_1": { + "address": "cosmos1ln3l6waaqdjcskt3ztzqlzkpvmzp7zw4ky2xgp" + }, + "chain_2": { + "address": "umee1cx82d7pm4dgffy7a93rl6ul5g84vjgxk4smuh7" + }, + "memo": "Relayed by Architect Nodes! ", + "name": "Architect Nodes", + "discord": { + "handle": "architectnodes" + }, + "telegram": { + "handle": "social244305_Architect_Nodes" + } + } ] } diff --git a/ibc_data.schema.json b/ibc_data.schema.json index 1c114a5..2a48321 100644 --- a/ibc_data.schema.json +++ b/ibc_data.schema.json @@ -1,5 +1,5 @@ { - "$schema": "https://json-schema.org/draft-07/schema", + "$schema": "http://json-schema.org/draft-07/schema", "type": "object", "required": ["chain_1", "chain_2", "channels"], "properties": { diff --git a/operators.json b/operators.json index 52647bf..5b46f6f 100644 --- a/operators.json +++ b/operators.json @@ -7,10 +7,486 @@ "discord": "ccclaimens", "telegram": "clemensg", "feegrant": { - "enabled": true, - "period_spend_limit": 10000000, + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "Architect Nodes", + "memo": "Relayed by Architect Nodes! ", + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv", + "discord": "architectnodes", + "telegram": "social244305_Architect_Nodes", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19pjtx7dah2fquf7udyxjv94h0eraha789k37ff", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-evmos": [ + { + "name": "Architect Nodes", + "memo": "Relayed by Architect Nodes! ", + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv", + "discord": "architectnodes", + "telegram": "social244305_Architect_Nodes", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "IcyCRO", + "memo": "Relayed by IcyCRO \ud83e\uddca", + "address": "cosmos1p7d8mnjttcszv34pk2a5yyug3474mhffasa7tg", + "discord": "zanglang", + "telegram": "zanglang", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-persistence": [ + { + "name": "Architect Nodes", + "memo": "Relayed by Architect Nodes! ", + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv", + "discord": "architectnodes", + "telegram": "social244305_Architect_Nodes", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-quicksilver": [ + { + "name": "Architect Nodes", + "memo": "Relayed by Architect Nodes! ", + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv", + "discord": "architectnodes", + "telegram": "social244305_Architect_Nodes", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-crescent": [ + { + "name": "Architect Nodes", + "memo": "Relayed by Architect Nodes! ", + "address": "cosmos1w8kzcqk25vr0fx0k7yxn2vjw49qerut2tfv8up", + "discord": "architectnodes", + "telegram": "social244305_Architect_Nodes", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "IcyCRO", + "memo": "Relayed by IcyCRO \ud83e\uddca", + "address": "cosmos1nna7k5lywn99cd63elcfqm6p8c5c4qcug4aef5", + "discord": "zanglang", + "telegram": "zanglang", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-umee": [ + { + "name": "Architect Nodes", + "memo": "Relayed by Architect Nodes! ", + "address": "cosmos1ln3l6waaqdjcskt3ztzqlzkpvmzp7zw4ky2xgp", + "discord": "architectnodes", + "telegram": "social244305_Architect_Nodes", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-omniflixhub": [ + { + "name": "Architect Nodes", + "memo": "Relayed by Architect Nodes! ", + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv", + "discord": "architectnodes", + "telegram": "social244305_Architect_Nodes", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-stride": [ + { + "name": "Architect Nodes", + "memo": "Relayed by Architect Nodes! ", + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv", + "discord": "architectnodes", + "telegram": "social244305_Architect_Nodes", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "IcyCRO", + "memo": "Relayed by IcyCRO \ud83e\uddca", + "address": "cosmos1p7d8mnjttcszv34pk2a5yyug3474mhffasa7tg", + "discord": "zanglang", + "telegram": "zanglang", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "bitsong-cosmoshub": [ + { + "name": "Architect Nodes", + "memo": "Relayed by Architect Nodes! ", + "address": "cosmos1cx82d7pm4dgffy7a93rl6ul5g84vjgxk8xxrnv", + "discord": "architectnodes", + "telegram": "social244305_Architect_Nodes", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-juno": [ + { + "name": "Architect Nodes", + "memo": "Relayed by Architect Nodes! ", + "address": "cosmos1w8kzcqk25vr0fx0k7yxn2vjw49qerut2tfv8up", + "discord": "architectnodes", + "telegram": "social244305_Architect_Nodes", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19pjtx7dah2fquf7udyxjv94h0eraha789k37ff", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "IcyCRO", + "memo": "Relayed by IcyCRO \ud83e\uddca", + "address": "cosmos1p7d8mnjttcszv34pk2a5yyug3474mhffasa7tg", + "discord": "zanglang", + "telegram": "zanglang", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-teritori": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-lumnetwork": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "axelar-cosmoshub": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "IcyCRO", + "memo": "Relayed by IcyCRO \ud83e\uddca", + "address": "cosmos1nna7k5lywn99cd63elcfqm6p8c5c4qcug4aef5", + "discord": "zanglang", + "telegram": "zanglang", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "aura-cosmoshub": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19pjtx7dah2fquf7udyxjv94h0eraha789k37ff", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-kujira": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "IcyCRO", + "memo": "Relayed by IcyCRO \ud83e\uddca", + "address": "cosmos1nna7k5lywn99cd63elcfqm6p8c5c4qcug4aef5", + "discord": "zanglang", + "telegram": "zanglang", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-terra2": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19pjtx7dah2fquf7udyxjv94h0eraha789k37ff", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "archway-cosmoshub": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-cryptoorgchain": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-emoney": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-kava": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19pjtx7dah2fquf7udyxjv94h0eraha789k37ff", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-kichain": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos19kzuzfmmy9wjr3cl0ss8wjzjup9g49hqxg9e2y", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-injective": [ + { + "name": "Crosnest", + "memo": "Relayed by Crosnest.", + "address": "cosmos1l267dmlmprhu4p5aqslf50f495vjqlg3a52yjt", + "discord": "galadrin_crosnest", + "telegram": "crosnest_com", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + } + ], + "cosmoshub-neutron": [ + { + "name": "IcyCRO", + "memo": "Relayed by IcyCRO \ud83e\uddca", + "address": "cosmos1nna7k5lywn99cd63elcfqm6p8c5c4qcug4aef5", + "discord": "zanglang", + "telegram": "zanglang", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, + "active_period_spend_limit": 0 + } + }, + { + "name": "CryptoCrew", + "memo": "relayed by CryptoCrew Validators", + "address": "cosmos1yghndrffay859ma2ue4pa2cltw640vtayerdla", + "discord": "@ccclaimens", + "telegram": "@clemensg", + "feegrant": { + "enabled": false, + "period_spend_limit": 0, "active_period_spend_limit": 0 } } ] -} +} \ No newline at end of file diff --git a/scripts/add_operator_to_path.py b/scripts/add_operator_to_path.py index 40d58b0..3943728 100644 --- a/scripts/add_operator_to_path.py +++ b/scripts/add_operator_to_path.py @@ -80,7 +80,6 @@ def validate_operator_data(operator_data, token, issue_number): file_path = f'{ibc_folder_path}/{ibc_path}.json' if not os.path.exists(file_path): error_message = f"IBC path `{ibc_path}` not found! Please review your input." - post_comment(issue_number, error_message, token) return error_message return "" @@ -112,6 +111,7 @@ def main(): validation_error = validate_operator_data(operator_data, token, issue_number) if validation_error: print(f"Validation error: {validation_error}") + post_comment(issue_number, validation_error, token) sys.exit(1) ibc_path = operator_data['IBC Path'] @@ -120,8 +120,8 @@ def main(): operator_name = operator_data.get('Operator Name').replace(" ", "_") branch_name = f"operator-onboarding-{issue_number}-{operator_name}" - repo_full_name = os.environ['GITHUB_REPOSITORY'] # "owner/repo" - pr_url = f"https://github.com/{repo_full_name}/compare/main...{branch_name}?expand=1&template=operator_onboarding.md" + repo_full_name = os.environ['GITHUB_REPOSITORY'] + pr_url = f"https://github.com/{repo_full_name}/compare/main...{branch_name}?expand=1" success_message = ( f"Input validation passed. Your changes have been committed to the branch `{branch_name}`.\n" "Please review the changes and [open a pull request](" + pr_url + @@ -130,11 +130,13 @@ def main(): "to link and close the issue when the pull request is merged." ) post_comment(issue_number, success_message, token) + print(operator_name) else: sys.exit(1) except Exception as e: print(f"An error occurred: {e}") + post_comment(issue_number, f"An error occurred: {e}", token) sys.exit(1) if __name__ == "__main__": diff --git a/scripts/validate_ibc_path.sh b/scripts/validate_ibc_path.sh old mode 100644 new mode 100755 index 7194834..4c423e1 --- a/scripts/validate_ibc_path.sh +++ b/scripts/validate_ibc_path.sh @@ -4,6 +4,9 @@ set -euo pipefail +tp_boundary_high="0.89" +tp_boundary_low="0.55" + DATA=$(jq . $1) RLY_HOME=$(mktemp -d) @@ -31,11 +34,11 @@ is_client_valid() { # Print the trusting and unbonding periods for debugging or logging echo $trusting_period $unbonding_period \ - | awk '{printf "trusting_period: %ss, required_trusting_period_min: %ss, required_trusting_period_max: %ss, unbonding_period: %ss\n", $1, (0.60 * $2), (0.85 * $2), $2;}' >&2 + | awk '{printf "trusting_period: %ss, required_trusting_period_min: %ss, required_trusting_period_max: %ss, unbonding_period: %ss\n", $1, ('$tp_boundary_low' * $2), ('$tp_boundary_high' * $2), $2;}' >&2 # Check if the trusting period is between 60% and 85% of the unbonding period echo $trusting_period $unbonding_period \ - | awk '{if ($1 >= 0.60 * $2 && $1 <= 0.85 * $2) print "yes"; else print "no"}' + | awk '{if ($1 >= '$tp_boundary_low' * $2 && $1 <= '$tp_boundary_high' * $2) print "yes"; else print "no"}' } echo "Checking $1" >&2 diff --git a/utils/generate_feegrant_messages.py b/utils/generate_feegrant_messages.py index 0dbd9b6..11480bd 100644 --- a/utils/generate_feegrant_messages.py +++ b/utils/generate_feegrant_messages.py @@ -23,6 +23,48 @@ rpc = os.getenv('RPC_URL', 'https://rpc.cosmos.directory:443/cosmoshub') period_duration = os.getenv('PERIOD_DURATION', '86400') +total_signers_str = os.getenv('TOTAL_SIGNERS', '5') +multisig_threshold_str = os.getenv('MULTISIG_THRESHOLD', '3') + +try: + total_signers = int(total_signers_str) + multisig_threshold = int(multisig_threshold_str) +except ValueError: + raise ValueError("Error: Invalid values for TOTAL_SIGNERS or MULTISIG_THRESHOLD in the environment variables.") + +signer_pubkeys = [ + os.getenv(f"SIGNER_{i}_PUBKEY") for i in range(1, total_signers + 1) +] + +if None in signer_pubkeys: + raise ValueError("Error: Not all signer public keys are provided.") + +# Check if the local key named multisig-relayer-feegrant exists +def check_if_key_exists(): + command = f"{daemon_name} --home {daemon_home} keys list --output json" + try: + result = subprocess.run(command, shell=True, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) + keys_list = json.loads(result.stdout) + return any(key.get("name") == "multisig-relayer-feegrant" for key in keys_list) + except subprocess.CalledProcessError as e: + print(f"Error running command: {e.stderr}") + return False + except json.JSONDecodeError as e: + print(f"Error parsing JSON from command output: {e.msg}") + return False + +if not check_if_key_exists(): + # Add individual signer keys to the keyring + for i, signer_pubkey in enumerate(signer_pubkeys, start=1): + signer_pubkey_json = f'{{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"{signer_pubkey}"}}' + add_signer_key_command = f"{daemon_name} --home {daemon_home} keys add ms{i} --pubkey '{signer_pubkey_json}'" + subprocess.run(add_signer_key_command, shell=True, check=True) + + # Add the multisig key + multisig_pubkeys = ",".join([f"ms{i}" for i in range(1, total_signers + 1)]) # Adjust for the number of signers + add_multisig_key_command = f"{daemon_name} --home {daemon_home} keys add multisig-relayer-feegrant --multisig {multisig_pubkeys} --multisig-threshold {multisig_threshold}" + subprocess.run(add_multisig_key_command, shell=True, check=True) + def fetch_account_data(granter_account): url = f"https://rest.cosmos.directory/cosmoshub/cosmos/auth/v1beta1/accounts/{granter_account}" response = requests.get(url) @@ -69,9 +111,9 @@ def main(): current_period_limit = feegrant.get('period_spend_limit') enabled = feegrant.get('enabled') - grant_needed = enabled and current_period_limit > 0 and active_period_limit != current_period_limit - renew_needed = enabled and (is_expiration_past(expiration) or current_period_limit != active_period_limit) - revoke_needed = not enabled or current_period_limit == 0 or renew_needed + grant_needed = enabled and current_period_limit > 0 and active_period_limit == 0 + renew_needed = enabled and (is_expiration_past(expiration) or (current_period_limit != active_period_limit and active_period_limit != 0)) + revoke_needed = (not enabled and active_period_limit != 0) or (current_period_limit == 0 and active_period_limit != 0) or renew_needed if grant_needed or renew_needed or revoke_needed: update_actions = [] @@ -91,7 +133,7 @@ def main(): print(f" - Revocation due to either disabled status or renewal requirement.") total_gas_limit = 80000 + 40000 * (len(all_messages) + 1) - flags = f"--home '{daemon_home}' --from '{granter_account}' --chain-id '{chain_id}' --gas {total_gas_limit} --gas-prices '{gas_prices}' --node '{rpc}' --offline --output json --yes --generate-only --sequence {sequence} --account-number {account_number}" + flags = f"--home '{daemon_home}' --from multisig-relayer-feegrant --chain-id '{chain_id}' --gas {total_gas_limit} --gas-prices '{gas_prices}' --node '{rpc}' --offline --output json --yes --generate-only --sequence {sequence} --account-number {account_number}" if renew_needed or revoke_needed: revoke_command = generate_feegrant_command(granter_account, operator['address'], None, None, None, flags, revoke=True) @@ -124,6 +166,7 @@ def main(): def run_subprocess_command(command, all_messages): global last_tx_fields try: + print(f"[DEBUG] running command: {command}") result = subprocess.run(command, shell=True, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) command_output = json.loads(result.stdout.strip()) messages = command_output.get("body", {}).get("messages", [])