Skip to content

Instantly share code, notes, and snippets.

@arthurgousset
Last active June 1, 2022 15:36
Show Gist options
  • Save arthurgousset/bf111f507461f96cee62d2c436806da8 to your computer and use it in GitHub Desktop.
Save arthurgousset/bf111f507461f96cee62d2c436806da8 to your computer and use it in GitHub Desktop.
Identity Celo CLI Commands

💡 Celo CLI for Identity

Use

Cheat sheet:

  • use --node https://forno.celo.org to use forno node
  • use --help for useful options whenever you're stuck
  • use --columns=Name,Version,State to restrict what's displayed
  • use --sort=-Version to sort by field
  • use --filter=State=Valid to filter by field value

Official docs: CELO CLI

Install

npm -g install @celo/celocli

(-g means celocli will be installed globally on your device)

Update

npm update -g @celo/celocli

Options menu and help

Use --help to see a range of options if you're stuck (thanks @Alec Schaefer 🙌  )

$ celocli --help

Autocomplete feature (very useful!)

Run celocli autocomplete for instructions (see here for the command docs). (thanks @Eela Nagaraj 👩‍💻 )

$ celocli autocomplete
$ printf "$(celocli autocomplete:script zsh)" >> ~/.zshrc; source ~/.zshrc

Output when setting this up first:

Building the autocomplete cache... done

Setup Instructions for CELOCLI CLI Autocomplete ---

1) Add the autocomplete env var to your zsh profile and source it
$ printf "$(celocli autocomplete:script zsh)" >> ~/.zshrc; source ~/.zshrc

NOTE: After sourcing, you can run `$ compaudit -D` to ensure no permissions conflicts are present

2) Test it out, e.g.:
$ celocli <TAB>                 # Command completion
$ celocli command --<TAB>       # Flag completion

Enjoy!

current-attestation-services

Fields:

  • Address
  • Affiliation
  • Name
  • State
  • Version
  • Attestationserviceurl
  • Smsproviders

Versions:

celocli identity:current-attestation-services --node https://forno.celo.org --columns=Name,Version,State --sort=-Version --filter=State=Valid

Fetching currently elected Validators... done
Name                     Version State 
Figment Networks 1       1.5.0   Valid 
Figment Networks 2       1.5.0   Valid 
Figment Networks 3       1.5.0   Valid 
Figment Networks 4       1.5.0   Valid 
Tessellated Geometry     1.5.0   Valid 
                         1.5.0   Valid 
                         1.5.0   Valid 
censusworks.0            1.5.0   Valid 
censusworks.2            1.5.0   Valid 

Addresses:

celocli identity:current-attestation-services --node https://forno.celo.org --columns=Name,Version,Address,State --sort=-Version --filter=State=Valid

Fetching currently elected Validators... done
Name                     Version Address                                    State 
Figment Networks 1       1.5.0   0x0e47ea88480788289bDa37D8Ae0C2CD680623cfA Valid 
Figment Networks 2       1.5.0   0x90b056B00952d71bC7866c067b49f5b062098ac9 Valid 
Figment Networks 3       1.5.0   0xDdc60B465c204Aa7358cE4f009D2dBC65af5C4B4 Valid 
Figment Networks 4       1.5.0   0x12125D1b7f01F32b3A741A6b97CB46f714f273aA Valid 
Tessellated Geometry     1.5.0   0x44a7Af700ACa1B24ECdB818dF4D202772D606Cb4 Valid 
                         1.5.0   0xFEA3a9f2b28E9EeA5EB14bE130c7C79459B2AA5e Valid 

Attestation Service HTTP Endpoints

Here is a list of HTTP endpoints each attestation service exposes:

  • POST /attestations
  • POST /test_attestations
  • GET /get_attestations
  • POST /delivery_status_nexmo [v1.5.0+]
  • POST /delivery_status_twilioverify [v1.5.0+]
  • POST /delivery_status_twiliomessaging [pre-v1.5.0]
  • POST /delivery_status_twilio [v1.2.0+]
  • GET /delivery_status_messagebird [not POST]
  • GET /status
  • GET /healthz [optional]
  • GET /metrics [optional]

Source: Celo docs > attestation-service > deployment-architecture

This is how to find the attestation service URL:

celocli identity:current-attestation-services --node https://forno.celo.org --columns=Name,State,Attestationserviceurl --sort=-Version

Name                                                      State                         Attestationserviceurl                                  
cnstnt.xyz/rc1/validator-1                                NoAttestationSigner           null                                                   
cnstnt.xyz/rc1/validator-2                                NoAttestationSigner           null                                                   
cnstnt.xyz/rc1/validator-3                                NoAttestationSigner           null                                                   
Nodito Labs 1                                             UnreachableAttestationService https://celo-attestation-1.noditolabs.com:3000         
                                                          MetadataTimeout               null                                                   
                                                          MetadataTimeout               null                                                   
                                                          MetadataTimeout               null                                                   
                                                          MetadataTimeout               null                                                   
                                                          MetadataTimeout               null                                                   
SeedBed                                                   NoAttestationSigner           null                                                   
Binance-Staking                                           NoAttestationSigner           null                                                   
Binance-Staking-2                                         NoAttestationSigner           null                                                   
T-Systems MMS 4 delegation from business only Validator 1 NoAttestationSigner           null                                                   
T-Systems MMS 4 delegation from business only Validator 2 NoAttestationSigner           null                                                   
T-Systems MMS 4 delegation from business only Validator 3 NoAttestationSigner           null                                                   
T-Systems MMS 4 delegation from business only Validator 4 NoAttestationSigner           null                                                   
T-Systems MMS 4 delegation from business only Validator 5 NoAttestationSigner           null                                                   
Figment Networks 1                                        Valid                         https://attestations-01.celo.figment.network           
Figment Networks 2                                        Valid                         https://attestations-008.celo.figment.network          
Figment Networks 3                                        Valid                         https://attestations-009.celo.figment.network          
Figment Networks 4                                        Valid                         https://attestations-02.celo.figment.network    

Here is an example JSON payload for the /status HTTP endpoint (https://attestations-008.celo.figment.network/status)

{
  "status": "ok",
  "smsProviders": [
    "messagebird",
    "twilioverify",
    "twiliomessaging",
    "nexmo"
  ],
  "blacklistedRegionCodes": [],
  "accountAddress": "0x90b056B00952d71bC7866c067b49f5b062098ac9",
  "version": "1.5.0",
  "latestBlock": 12561402,
  "ageOfLatestBlock": 4.062000036239624,
  "isNodeSyncing": false,
  "appSignature": "x",
  "smsProvidersRandomized": false,
  "maxDeliveryAttempts": 3,
  "maxRerequestMins": 1440,
  "twilioVerifySidProvided": true
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment