diff --git a/packages/sdk-quickstart/package.json b/packages/sdk-quickstart/package.json index 93560c6..ea8537f 100644 --- a/packages/sdk-quickstart/package.json +++ b/packages/sdk-quickstart/package.json @@ -26,8 +26,8 @@ }, "dependencies": { "@ethersproject/bignumber": "^5.6.0", - "@nomad-xyz/sdk": "^2.0.0-rc.4", - "@nomad-xyz/sdk-bridge": "^1.0.0-rc.4", + "@nomad-xyz/sdk": "2.0.0-rc.4", + "@nomad-xyz/sdk-bridge": "1.0.0-rc.4", "ethers": "^5.5.3" }, "devDependencies": { diff --git a/packages/sdk-quickstart/scripts/checkWatchers.ts b/packages/sdk-quickstart/scripts/checkWatchers.ts new file mode 100644 index 0000000..61aedd4 --- /dev/null +++ b/packages/sdk-quickstart/scripts/checkWatchers.ts @@ -0,0 +1,40 @@ +import { BridgeContext, TransferMessage } from "@nomad-xyz/sdk-bridge"; +import { configureRpcs } from "../lib/registerRpc"; +import { BigNumber } from "@ethersproject/bignumber"; +import { ethers } from "ethers"; +import { getEvents } from "@nomad-xyz/sdk"; + +async function main(){ + // This uses a helper function defined in ./registerRpcs.ts + // to register RPCs placed in environment variables + const context = configureRpcs("production") + + // Which domains are registered? + console.log(`Registered Domains: ${context.domainNames}`) + + for (const domain of context.domainNames) { + if(domain=="moonbeam") + continue + console.log(`Fetching Watcher configuration for ${domain}`); + + const core = context.mustGetCore(domain); + const connectionManager = core.xAppConnectionManager + const permissionEventFilter = connectionManager.filters.WatcherPermissionSet() + + const permissionEvents = await getEvents( + context, + domain, + connectionManager, + permissionEventFilter + ) + + for (const event of permissionEvents) { + const domainName = context.resolveDomainName(event.args[0]) + console.log(`Watcher Permission Event: \n\t Domain: ${domainName} \n\t Address: ${event.args[1]} \n\t Access: ${event.args[2]}`) + } + } +} + +(async () => { + await main() +})() \ No newline at end of file