| .husky | ||
| packages | ||
| .gitignore | ||
| .npmrc | ||
| CLAUDE.md | ||
| generate-watchers.md | ||
| lerna.json | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| yarn.lock | ||
azimuth-watcher-ts
Watcher for the Azimuth PKI on Ethereum, used in Urbit identities. Read more about Azimuth:
This app can be run using Stack Orchestrator:
It is also hosted at https://azimuth.dev.vdb.to/graphql
Usage
-
Query public keys for a point:
# Example curl 'https://azimuth.dev.vdb.to/graphql' \ -H 'Content-Type: application/json' \ --data-raw '{"query":"{ azimuthGetKeys(blockHash: \"latest\", contractAddress: \"0x223c067F8CF28ae173EE5CafEa60cA44C335fecB\", _point: 58213) { value { encryptionKey: value0 authenticationKey: value1 cryptoSuiteVersion: value2 keyRevisionNumber: value3 } } }"}' \ | jq # Response # { # "data": { # "azimuthGetKeys": { # "value": { # "encryptionKey": "0xc248f759474b16192bd8bdca0bff1b8bff555cd3d118022095331d6d98690c6d", # "authenticationKey": "0x21188bac08542730e1c4697636d6fa25968f404470ccf917756f05e28c69045a", # "cryptoSuiteVersion": "1", # "keyRevisionNumber": "1" # } # } # } # }- API params:
contractAddress: Azimuth contract addressblockHash: block hash at which you want to query the contract state
- API params:
-
Example GQL queries:
{ azimuthIsActive( blockHash: "0x2461e78f075e618173c524b5ab4309111001517bb50cfd1b3505aed5433cf5f9" contractAddress: "0x223c067F8CF28ae173EE5CafEa60cA44C335fecB" _point: 1 ) { value } censuresGetCensuredByCount( blockHash: "0x2461e78f075e618173c524b5ab4309111001517bb50cfd1b3505aed5433cf5f9" contractAddress: "0x325f68d32BdEe6Ed86E7235ff2480e2A433D6189" _who: 6054 ) { value } claimsFindClaim( blockHash: "0x2461e78f075e618173c524b5ab4309111001517bb50cfd1b3505aed5433cf5f9" contractAddress: "0xe7e7f69b34D7d9Bd8d61Fb22C33b22708947971A" _whose: 1967913144 _protocol: "text" _claim: "Shrek is NOT Drek!" ) { value } linearStarReleaseVerifyBalance( blockHash: "0x2461e78f075e618173c524b5ab4309111001517bb50cfd1b3505aed5433cf5f9" contractAddress: "0x86cd9cd0992F04231751E3761De45cEceA5d1801" _participant: "0xbD396c580d868FBbE4a115DD667E756079880801" ) { value } conditionalStarReleaseWithdrawLimit( blockHash: "0x2461e78f075e618173c524b5ab4309111001517bb50cfd1b3505aed5433cf5f9" contractAddress: "0x8C241098C3D3498Fe1261421633FD57986D74AeA" _participant: "0x7F0584938E649061e80e45cF88E6d8dDDb22f2aB" _batch: 2 ) { value } pollsGetUpgradeProposalCount( blockHash: "0xeaf611fabbe604932d36b97c89955c091e9582e292b741ebf144962b9ff5c271" contractAddress: "0x7fEcaB617c868Bb5996d99D95200D2Fa708218e4" ) { value } eclipticBalanceOf( blockHash: "0x5e82abbe6474caf7b5325022db1d1287ce352488b303685493289770484f54f4" contractAddress: "0x33EeCbf908478C10614626A9D304bfe18B78DD73" _owner: "0x4b5E239C1bbb98d44ea23BC9f8eC7584F54096E8" ) { value } delegatedSendingCanSend( blockHash: "0x2461e78f075e618173c524b5ab4309111001517bb50cfd1b3505aed5433cf5f9" contractAddress: "0xf6b461fE1aD4bd2ce25B23Fe0aff2ac19B3dFA76" _as: 1 _point: 1 ) { value } }
Generate Watchers
Follow instructions to generate Azimuth watchers using the code generator (@cerc-io/codegen)