From 2373240422e8243a237c8c0a4295fbb4bcd81d29 Mon Sep 17 00:00:00 2001 From: Alex Rea Date: Mon, 12 Aug 2024 12:40:44 +0100 Subject: [PATCH 01/66] First pass at dev environment for proxy colonies --- docker/colony-cdapp-dev-env-network | 4 +- docker/colony-cdapp-dev-env-network-remote | 17 +++++++ ...ony-cdapp-dev-env-network-wormhole-relayer | 33 +++++++++++++ .../colony-cdapp-dev-env-orchestration.yaml | 47 ++++++++++++++++++ docker/files/network-remote/run.sh.base | 17 +++++++ .../network-wormhole-relayer/run.sh.base | 48 +++++++++++++++++++ docker/files/network/run.sh.base | 2 +- package.json | 6 ++- 8 files changed, 170 insertions(+), 4 deletions(-) create mode 100644 docker/colony-cdapp-dev-env-network-remote create mode 100644 docker/colony-cdapp-dev-env-network-wormhole-relayer create mode 100644 docker/files/network-remote/run.sh.base create mode 100644 docker/files/network-wormhole-relayer/run.sh.base diff --git a/docker/colony-cdapp-dev-env-network b/docker/colony-cdapp-dev-env-network index 682a3d1f053..82f2048ef71 100644 --- a/docker/colony-cdapp-dev-env-network +++ b/docker/colony-cdapp-dev-env-network @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV NETWORK_HASH=3f8df23173f840226fb8da42547e12664f10c290 +ENV NETWORK_HASH=4c3f6981329d46341cb8dea57746224e2d7c38eb # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] @@ -33,6 +33,8 @@ RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | b # Install required network dependencies RUN pnpm i --frozen-lockfile +RUN npx hardhat compile + # Initialize the justification tree cache # To avoid the error spewed by the miner at startup RUN echo "{}" > ./packages/reputation-miner/justificationTreeCache.json diff --git a/docker/colony-cdapp-dev-env-network-remote b/docker/colony-cdapp-dev-env-network-remote new file mode 100644 index 00000000000..255ec87d630 --- /dev/null +++ b/docker/colony-cdapp-dev-env-network-remote @@ -0,0 +1,17 @@ +FROM colony-cdapp-dev-env/network:latest +# Add dependencies from the host +# Note: these are listed individually so that if they change, they won't affect +# the build of the other images +ADD docker/files/network-remote/run.sh.base /colonyCDappBackend/run.sh + +WORKDIR /colonyCDappBackend + +# Open up ports to the docker image +# Ganache +EXPOSE 8545 + +# Make the run script executable +RUN chmod +x ./run.sh + +# Battlecruiser Operational! +CMD [ "./run.sh" ] diff --git a/docker/colony-cdapp-dev-env-network-wormhole-relayer b/docker/colony-cdapp-dev-env-network-wormhole-relayer new file mode 100644 index 00000000000..3f880ebf52e --- /dev/null +++ b/docker/colony-cdapp-dev-env-network-wormhole-relayer @@ -0,0 +1,33 @@ +FROM colony-cdapp-dev-env/network:latest +# Add dependencies from the host +# Note: these are listed individually so that if they change, they won't affect +# the build of the other images +ADD docker/files/network-wormhole-relayer/run.sh.base /colonyCDappBackend/run.sh + +WORKDIR /colonyCDappBackend + +# Open up ports to the docker image +# Ganache +# EXPOSE 8545 + +RUN apt-get update +RUN apt-get install -y ca-certificates curl +RUN install -m 0755 -d /etc/apt/keyrings +RUN curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc +RUN chmod a+r /etc/apt/keyrings/docker.asc + +# Add the repository to Apt sources: +RUN echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null +RUN apt-get update +RUN apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + +RUN cd ./colonyNetwork/lib/wormhole/sdk/js-proto-node && npm i + +# Make the run script executable +RUN chmod +x ./run.sh + +# Battlecruiser Operational! +CMD [ "./run.sh" ] diff --git a/docker/colony-cdapp-dev-env-orchestration.yaml b/docker/colony-cdapp-dev-env-orchestration.yaml index d70736b51ca..0aa216319b9 100644 --- a/docker/colony-cdapp-dev-env-orchestration.yaml +++ b/docker/colony-cdapp-dev-env-orchestration.yaml @@ -26,6 +26,40 @@ services: amplify-setup: condition: service_completed_successfully + network-contracts-remote: + container_name: 'network-remote' + image: colony-cdapp-dev-env/network-remote:latest + volumes: + - 'amplify-mock-data:/colonyCDapp/amplify/mock-data' + ports: + - '8546:8545' + healthcheck: + test: ['CMD', 'curl', '-f', 'http://localhost:8545'] + interval: 5s + retries: 1000 + depends_on: + amplify-setup: + condition: service_completed_successfully + environment: + CHAIN_ID: 265669101 + + network-contracts-remote-2: + container_name: 'network-remote-2' + image: colony-cdapp-dev-env/network-remote:latest + volumes: + - 'amplify-mock-data:/colonyCDapp/amplify/mock-data' + ports: + - '8547:8545' + healthcheck: + test: ['CMD', 'curl', '-f', 'http://localhost:8545'] + interval: 5s + retries: 1000 + depends_on: + amplify-setup: + condition: service_completed_successfully + environment: + CHAIN_ID: 265669102 + reputation-monitor: container_name: 'monitor' image: colony-cdapp-dev-env/reputation-monitor:latest @@ -95,6 +129,19 @@ services: network-contracts: condition: service_healthy + wormhole-relayer: + container_name: 'wormhole-relayer' + image: colony-cdapp-dev-env/network-wormhole-relayer:latest + volumes: + - '/var/run/docker.sock:/var/run/docker.sock' + depends_on: + network-contracts: + condition: service_healthy + network-contracts-remote: + condition: service_healthy + network-contracts-remote-2: + condition: service_healthy + volumes: amplify-backend: amplify-mock-data: diff --git a/docker/files/network-remote/run.sh.base b/docker/files/network-remote/run.sh.base new file mode 100644 index 00000000000..06beccf9be2 --- /dev/null +++ b/docker/files/network-remote/run.sh.base @@ -0,0 +1,17 @@ +#!/bin/bash + +cd colonyNetwork + +# Ganache + +# Uncomment the line below if you need ganache to run in verbose mode +# sed -i 's/100000000000000000000" >\/dev\/null 2>&1/100000000000000000000" --verbose/g' scripts/start-blockchain-client.sh +# sed -i 's/--db $DBPATH/--db $DBPATH --server.host "0.0.0.0"/g' scripts/start-blockchain-client.sh +pnpm run start:blockchain:client + +# Colony Network Contracts + +npx hardhat compile +npx hardhat deploy-proxy-network --network development + +sleep infinity \ No newline at end of file diff --git a/docker/files/network-wormhole-relayer/run.sh.base b/docker/files/network-wormhole-relayer/run.sh.base new file mode 100644 index 00000000000..0c3c343cd2a --- /dev/null +++ b/docker/files/network-wormhole-relayer/run.sh.base @@ -0,0 +1,48 @@ +#!/bin/bash +cd ./colonyNetwork/lib/wormhole/ && DOCKER_BUILDKIT=1 docker build --target node-export -f Dockerfile.proto -o type=local,dest=. . +cd ../.. && npx tsc --esModuleInterop --downlevelIteration ./scripts/mockGuardianSpy.ts + +cd ./lib/safe-contracts + +# This is the private key for the first account we create on ganache, so has ether to pay for gas fees +rm -rf ./deployments/custom +PK="0x0355596cdb5e5242ad082c4fe3f8bbe48c9dba843fe1f99dd8272f487e70efae" NODE_URL=http://network:8545 npx hardhat deploy --network custom + +rm -rf ./deployments/custom +PK="0x0355596cdb5e5242ad082c4fe3f8bbe48c9dba843fe1f99dd8272f487e70efae" NODE_URL=http://network-remote:8545 npx hardhat deploy --network custom + +rm -rf ./deployments/custom +PK="0x0355596cdb5e5242ad082c4fe3f8bbe48c9dba843fe1f99dd8272f487e70efae" NODE_URL=http://network-remote-2:8545 npx hardhat deploy --network custom + +cd ../../ + +echo "const wormhole = require("@certusone/wormhole-sdk"); + +module.exports = { + chains: { + [wormhole.CHAIN_ID_ARBITRUM_SEPOLIA]: { + endpoints: ["http://localhost:8545"], + colonyBridgeAddress: "0x633899227A3BC1f79de097149E1E3C8097c07b1a", + payForGas: true, + evmChainId: 265669100, + }, + [wormhole.CHAIN_ID_SEPOLIA]: { + endpoints: ["http://localhost:8546"], + colonyBridgeAddress: "0x161944B5601a7d3004E20d4Ca823F710838Ea1be", + payForGas: true, + evmChainId: 265669101, + }, + [wormhole.CHAIN_ID_OPTIMISM_SEPOLIA]: { + endpoints: ["http://localhost:8547"], + colonyBridgeAddress: "0x161944B5601a7d3004E20d4Ca823F710838Ea1be", + payForGas: false, + evmChainId: 265669102, + }, + } + }, +}; +" > ./packages/wormhole-relayer/config.js + +node -e 'require("./scripts/setup-bridging-contracts.js").setupBridging("http://network:8545", ["http://network-remote:8545", "http://network-remote-2:8545"])' + +sleep infinity \ No newline at end of file diff --git a/docker/files/network/run.sh.base b/docker/files/network/run.sh.base index a831289454c..ea421a39166 100644 --- a/docker/files/network/run.sh.base +++ b/docker/files/network/run.sh.base @@ -7,7 +7,7 @@ cd colonyNetwork # Uncomment the line below if you need ganache to run in verbose mode # sed -i 's/100000000000000000000" >\/dev\/null 2>&1/100000000000000000000" --verbose/g' scripts/start-blockchain-client.sh # sed -i 's/--db $DBPATH/--db $DBPATH --server.host "0.0.0.0"/g' scripts/start-blockchain-client.sh -pnpm run start:blockchain:client & +pnpm run start:blockchain:client # Colony Network Contracts diff --git a/package.json b/package.json index 0e1ac7f8486..1322d1ed298 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,8 @@ "scripts": { "docker:build:base": "DOCKER_BUILDKIT=1 docker build --build-arg AMAZON_ARCH_FLAG=$(bash scripts/amazon-arch-flag.sh) --tag colony-cdapp-dev-env/base --file ./docker/colony-cdapp-dev-env-base .", "docker:build:network": "DOCKER_BUILDKIT=1 docker build --tag colony-cdapp-dev-env/network --file ./docker/colony-cdapp-dev-env-network .", + "docker:build:network-remote": "DOCKER_BUILDKIT=1 docker build --tag colony-cdapp-dev-env/network-remote --file ./docker/colony-cdapp-dev-env-network-remote .", + "docker:build:network-wormhole-relayer": "DOCKER_BUILDKIT=1 docker build --tag colony-cdapp-dev-env/network-wormhole-relayer --file ./docker/colony-cdapp-dev-env-network-wormhole-relayer .", "docker:build:monitor": "DOCKER_BUILDKIT=1 docker build --tag colony-cdapp-dev-env/reputation-monitor --file ./docker/colony-cdapp-dev-env-reputation-monitor .", "docker:build:mocking": "DOCKER_BUILDKIT=1 docker build --tag colony-cdapp-dev-env/mocking --file ./docker/colony-cdapp-dev-env-mocking .", "docker:build:ingestor": "DOCKER_BUILDKIT=1 docker build --ulimit nofile=5000:5000 --tag colony-cdapp-dev-env/block-ingestor --file ./docker/colony-cdapp-dev-env-block-ingestor .", @@ -13,8 +15,8 @@ "docker:build:safe": "DOCKER_BUILDKIT=1 docker build --tag colony-cdapp-dev-env/safe --file ./docker/colony-cdapp-dev-env-safe .", "docker:build:auth": "DOCKER_BUILDKIT=1 docker build --tag colony-cdapp-dev-env/auth-proxy --file ./docker/colony-cdapp-dev-env-auth-proxy .", "docker:build:bridge": "DOCKER_BUILDKIT=1 docker build --tag colony-cdapp-dev-env/mocking --file ./docker/colony-cdapp-dev-env-mocking .", - "docker:build:core": "npm run docker:build:base && npm run docker:build:network && npm run docker:build:monitor && npm run docker:build:ingestor && npm run docker:build:amplify && npm run docker:build:auth", - "docker:build:all": "npm run docker:build:base && npm run docker:build:network && npm run docker:build:monitor && npm run docker:build:ingestor && npm run docker:build:amplify && npm run docker:build:auth && npm run docker:build:mocking", + "docker:build:core": "npm run docker:build:base && npm run docker:build:network && npm run docker:build:network-remote && npm run docker:build:network-wormhole-relayer && npm run docker:build:monitor && npm run docker:build:mocking && npm run docker:build:ingestor && npm run docker:build:amplify && npm run docker:build:auth", + "docker:build:all": "npm run docker:build:base && npm run docker:build:network && npm run docker:build:network-remote && && npm run docker:build:network-wormhole-relayer && npm run docker:build:monitor && npm run docker:build:mocking && npm run docker:build:ingestor && npm run docker:build:amplify && npm run docker:build:safe && npm run docker:build:auth", "docker:compose:core": "docker compose --file docker/colony-cdapp-dev-env-orchestration.yaml", "docker:compose:all": "docker compose --file docker/colony-cdapp-dev-env-orchestration-all.yaml", "dev": "npm run watch-amplify & npm run generate-notifications-dev-key && npm run docker:build:core && npm run docker:compose:core up -- --force-recreate -V", From e320ca20f56ddd6a934f7349b4617675c529c869 Mon Sep 17 00:00:00 2001 From: Alex Rea Date: Wed, 20 Nov 2024 16:02:59 +0000 Subject: [PATCH 02/66] Give hardhat:cmd ability to execute on other chains --- scripts/hardhat-cmd.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/hardhat-cmd.js b/scripts/hardhat-cmd.js index 5c230676861..8f88693c9c5 100755 --- a/scripts/hardhat-cmd.js +++ b/scripts/hardhat-cmd.js @@ -3,7 +3,7 @@ const { exec } = require('node:child_process'); const parseArgs = require('minimist') -strings = ['hash', 'data', 'from', 'to']; +strings = ['hash', 'data', 'from', 'to', 'network']; const argv = parseArgs(process.argv.slice(2), { string: strings }); const action = argv._[0]; @@ -11,11 +11,16 @@ delete argv._; let cmdFlags = ''; for (const [k, v] of Object.entries(argv)) { - cmdFlags += `--${k} ${v} `; + if (k !== 'network') { // network is an argument for docker, not hardhat + cmdFlags += `--${k} ${v} `; + } }; +let network = argv.network || 'network'; + + const hardhatCmd = `npx hardhat ${action} ${cmdFlags.trim()}`; -const fullCmd = `docker exec -t network bash -c \"cd colonyNetwork && ${hardhatCmd}\"`; +const fullCmd = `docker exec -t ${network} bash -c \"cd colonyNetwork && ${hardhatCmd}\"`; exec(fullCmd, (error, stdout, stderr) => { if (error) { From fff644db8dcd965aedb1e25215187eeafc0d495f Mon Sep 17 00:00:00 2001 From: Alex Rea Date: Mon, 2 Dec 2024 15:10:51 +0000 Subject: [PATCH 03/66] Add and expose WormholeScan mock API --- docker/colony-cdapp-dev-env-network | 2 +- docker/colony-cdapp-dev-env-orchestration.yaml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/colony-cdapp-dev-env-network b/docker/colony-cdapp-dev-env-network index 82f2048ef71..cd59480b840 100644 --- a/docker/colony-cdapp-dev-env-network +++ b/docker/colony-cdapp-dev-env-network @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV NETWORK_HASH=4c3f6981329d46341cb8dea57746224e2d7c38eb +ENV NETWORK_HASH=6c475e08c2acaaf8d2da99e6dafaf8bfe4771ce6 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/colony-cdapp-dev-env-orchestration.yaml b/docker/colony-cdapp-dev-env-orchestration.yaml index 0aa216319b9..3300cbf5254 100644 --- a/docker/colony-cdapp-dev-env-orchestration.yaml +++ b/docker/colony-cdapp-dev-env-orchestration.yaml @@ -134,6 +134,8 @@ services: image: colony-cdapp-dev-env/network-wormhole-relayer:latest volumes: - '/var/run/docker.sock:/var/run/docker.sock' + ports: + - '3007:3001' depends_on: network-contracts: condition: service_healthy From 2e1f7e354726ce5783c0fc1025ff726853c6eac9 Mon Sep 17 00:00:00 2001 From: Alex Rea Date: Wed, 22 Jan 2025 12:09:30 +0000 Subject: [PATCH 04/66] Spy shouldn't wait for txs in dev environment --- docker/colony-cdapp-dev-env-network | 2 +- docker/files/network-wormhole-relayer/run.sh.base | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/colony-cdapp-dev-env-network b/docker/colony-cdapp-dev-env-network index cd59480b840..9835013e173 100644 --- a/docker/colony-cdapp-dev-env-network +++ b/docker/colony-cdapp-dev-env-network @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV NETWORK_HASH=6c475e08c2acaaf8d2da99e6dafaf8bfe4771ce6 +ENV NETWORK_HASH=095066406a0a025d97352a77c265d78bd2bddcb2 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/files/network-wormhole-relayer/run.sh.base b/docker/files/network-wormhole-relayer/run.sh.base index 0c3c343cd2a..9180a2189f9 100644 --- a/docker/files/network-wormhole-relayer/run.sh.base +++ b/docker/files/network-wormhole-relayer/run.sh.base @@ -43,6 +43,6 @@ module.exports = { }; " > ./packages/wormhole-relayer/config.js -node -e 'require("./scripts/setup-bridging-contracts.js").setupBridging("http://network:8545", ["http://network-remote:8545", "http://network-remote-2:8545"])' +node -e 'require("./scripts/setup-bridging-contracts.js").setupBridging("http://network:8545", ["http://network-remote:8545", "http://network-remote-2:8545"], false)' sleep infinity \ No newline at end of file From 30218e3d3b4265bbbe40dedff4d9ea1f87324a48 Mon Sep 17 00:00:00 2001 From: Chris Maniewski Date: Mon, 21 Oct 2024 12:09:16 +0200 Subject: [PATCH 05/66] fix: nix dev shell --- flake.nix | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/flake.nix b/flake.nix index 8523bf19df1..c82673a4742 100644 --- a/flake.nix +++ b/flake.nix @@ -8,16 +8,12 @@ outputs = { self, - nixpkgs_node + nixpkgs_node, }: { devShell.x86_64-linux = with nixpkgs_node.legacyPackages.x86_64-linux; mkShell { buildInputs = [nodejs_20 zsh]; - shellHook = '' - if [ -n "$SHELL" ]; then - exec $SHELL - fi - ''; + shellHook = "exec zsh"; }; }; } From a044c3512632e7e36c232e6cd706919837c5423f Mon Sep 17 00:00:00 2001 From: Chris Maniewski Date: Wed, 30 Oct 2024 23:00:44 +0800 Subject: [PATCH 06/66] feat: add method to get a CustomContract in ColonyManager --- .gitignore | 1 + .../colony-cdapp-dev-env-orchestration.yaml | 6 +- package-lock.json | 12 +- src/constants/abis.ts | 3449 +++++++++++++++++ src/context/ColonyManager.ts | 36 + 5 files changed, 3489 insertions(+), 15 deletions(-) create mode 100644 src/constants/abis.ts diff --git a/.gitignore b/.gitignore index c2f6e984622..1ad30c9e9f7 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ cypress/screenshots /playwright-report/ /blob-report/ /playwright/.cache/ +/network-files .vscode .DS_Store diff --git a/docker/colony-cdapp-dev-env-orchestration.yaml b/docker/colony-cdapp-dev-env-orchestration.yaml index 3300cbf5254..fcda1e4d47c 100644 --- a/docker/colony-cdapp-dev-env-orchestration.yaml +++ b/docker/colony-cdapp-dev-env-orchestration.yaml @@ -8,12 +8,12 @@ services: - 'amplify-mock-data:/mock-data' - '../amplify/backend/:/backend-repo' command: '/bin/bash -c "rm -rf /backend/* && rm -rf /mock-data/* && touch /backend/.initialized && touch /mock-data/.initialized && cp -r /backend-repo/* /backend/ && chown -R $(id -u node):$(id -g node) /backend && chown -R $(id -u node):$(id -g node) /mock-data"' - network-contracts: container_name: 'network' image: colony-cdapp-dev-env/network:latest volumes: - 'amplify-mock-data:/colonyCDapp/amplify/mock-data' + - '../network-files/:/colonyCDappBackend/colonyNetwork/artifacts' ports: - '8545:8545' - '3002:3002' @@ -70,7 +70,6 @@ services: depends_on: network-contracts: condition: service_healthy - block-ingestor: container_name: 'ingestor' image: colony-cdapp-dev-env/block-ingestor:latest @@ -83,7 +82,6 @@ services: condition: service_healthy amplify: condition: service_healthy - amplify: container_name: 'amplify' image: colony-cdapp-dev-env/amplify:latest @@ -107,7 +105,6 @@ services: test: ['CMD', 'curl', '-f', 'http://localhost:9200'] interval: 5s retries: 1000 - auth-proxy: container_name: 'auth' image: colony-cdapp-dev-env/auth-proxy:latest @@ -116,7 +113,6 @@ services: depends_on: amplify: condition: service_healthy - network-files: container_name: 'network-files' image: colony-cdapp-dev-env/base:latest diff --git a/package-lock.json b/package-lock.json index b4d6a3b87d9..4b83fe29218 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16581,8 +16581,7 @@ "node_modules/array-timsort": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "license": "MIT" + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==" }, "node_modules/array-union": { "version": "2.1.0", @@ -19466,8 +19465,7 @@ "node_modules/comment-json/node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/comment-parser": { "version": "1.4.1", @@ -21630,7 +21628,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==", - "license": "MIT", "engines": { "node": ">=4" } @@ -33046,7 +33043,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", - "license": "MIT", "engines": { "node": ">=8" } @@ -52756,7 +52752,6 @@ "version": "3.8.9", "resolved": "https://registry.npmjs.org/typia/-/typia-3.8.9.tgz", "integrity": "sha512-yvQ67nhtzme+rnEUZfSOIgxBOHYrrQ3WBU1J4SrAhI3ntBhSelYwGiJkeaCvqchzK6O1RoIs3kCBS4XHIlp2NA==", - "license": "MIT", "dependencies": { "commander": "^10.0.0", "comment-json": "^4.2.3", @@ -52774,7 +52769,6 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "license": "MIT", "engines": { "node": ">=14" } @@ -52783,7 +52777,6 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz", "integrity": "sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==", - "license": "MIT", "dependencies": { "drange": "^1.0.2", "ret": "^0.2.0" @@ -52796,7 +52789,6 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", - "license": "MIT", "engines": { "node": ">=4" } diff --git a/src/constants/abis.ts b/src/constants/abis.ts new file mode 100644 index 00000000000..28825f84405 --- /dev/null +++ b/src/constants/abis.ts @@ -0,0 +1,3449 @@ +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Colony +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const colonyAbi = [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'txHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'metadata', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'Annotation', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'user', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'skillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amount', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + ], + name: 'ArbitraryReputationUpdate', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ArbitraryTransaction', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'auction', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'quantity', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'AuctionCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'bridgeAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'BridgeSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'colonyId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'colonyAddress', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ColonyAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'users', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + { + name: 'amounts', + internalType: 'int256[]', + type: 'int256[]', + indexed: false, + }, + ], + name: 'ColonyBootstrapped', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'fee', internalType: 'uint256', type: 'uint256', indexed: false }, + { + name: 'payoutRemainder', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ColonyFundsClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'fromPot', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'toPot', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ColonyFundsMovedBetweenFundingPots', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'colonyNetwork', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ColonyInitialised', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'label', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'ColonyLabelRegistered', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'metadata', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'ColonyMetadata', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'metadata', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'ColonyMetadataDelta', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'resolver', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ColonyNetworkInitialised', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'rewardInverse', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ColonyRewardInverseSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'role', internalType: 'uint8', type: 'uint8', indexed: true }, + { name: 'setTo', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ColonyRoleSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'oldVersion', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'newVersion', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ColonyUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'resolver', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ColonyVersionAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DomainAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'deprecated', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + ], + name: 'DomainDeprecated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'fee', internalType: 'uint256', type: 'uint256', indexed: false }, + { + name: 'payoutRemainder', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DomainFundsClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'metadata', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'DomainMetadata', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExpenditureAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ExpenditureCancelled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'slot', internalType: 'uint256', type: 'uint256', indexed: true }, + { + name: 'claimDelay', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExpenditureClaimDelaySet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ExpenditureFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'globalClaimDelay', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExpenditureGlobalClaimDelaySet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ExpenditureLocked', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'metadata', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'ExpenditureMetadataSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'slot', internalType: 'uint256', type: 'uint256', indexed: true }, + { + name: 'payoutModifier', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + ], + name: 'ExpenditurePayoutModifierSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'slot', internalType: 'uint256', type: 'uint256', indexed: true }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExpenditurePayoutSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'slot', internalType: 'uint256', type: 'uint256', indexed: true }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'ExpenditureRecipientSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'slot', internalType: 'uint256', type: 'uint256', indexed: true }, + { + name: 'skillId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ExpenditureSkillSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'storageSlot', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'mask', internalType: 'bool[]', type: 'bool[]', indexed: false }, + { + name: 'keys', + internalType: 'bytes32[]', + type: 'bytes32[]', + indexed: false, + }, + { + name: 'value', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'ExpenditureStateChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'ExpenditureTransferred', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'extensionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExtensionAddedToNetwork', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'extensionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deprecated', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + ], + name: 'ExtensionDeprecated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'extensionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExtensionInstalled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'extensionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'ExtensionUninstalled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'extensionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExtensionUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'fundingPotId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'FundingPotAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'localSkillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'LocalSkillAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'localSkillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'deprecated', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + ], + name: 'LocalSkillDeprecated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'authority', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'LogSetAuthority', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'LogSetOwner', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'metaColony', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'rootSkillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'MetaColonyCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'userAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'relayerAddress', + internalType: 'address payable', + type: 'address', + indexed: false, + }, + { name: 'payload', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'MetaTransactionExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'miningCycleResolver', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'MiningCycleResolverSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'feeInverse', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'NetworkFeeInverseSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'paymentId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PaymentAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'paymentId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'PaymentFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'paymentId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PaymentPayoutSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'paymentId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'PaymentRecipientSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'paymentId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'skillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PaymentSkillSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'fundingPotId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PayoutClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, + { + name: 'slot', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokenPayout', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PayoutClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: '_chainId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: '_token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ProxyColonyFundsClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'destinationChainId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'salt', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'ProxyColonyRequested', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'ens', internalType: 'address', type: 'address', indexed: false }, + { + name: 'rootNode', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'RegistrarInitialised', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'miner', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokensLost', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationMinerPenalised', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'hash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'nLeaves', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationMiningCycleComplete', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'inactiveReputationMiningCycle', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ReputationMiningInitialised', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationMiningRewardSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'newHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'newNLeaves', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'stakers', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + { + name: 'reward', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationRootHashSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'count', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationUpdateSentToBridge', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'count', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationUpdateStored', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'rewardPayoutId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'user', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'fee', internalType: 'uint256', type: 'uint256', indexed: false }, + { + name: 'rewardRemainder', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'RewardPayoutClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'rewardPayoutId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'RewardPayoutCycleEnded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'rewardPayoutId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'RewardPayoutCycleStarted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'skillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'parentSkillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SkillAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TaskAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'specificationHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'TaskBriefSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'TaskCanceled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'reviewerAddresses', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + ], + name: 'TaskChangedViaSignatures', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'TaskCompleted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'deliverableHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'TaskDeliverableSubmitted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'dueDate', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TaskDueDateSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'TaskFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'role', + internalType: 'enum ColonyDataTypes.TaskRole', + type: 'uint8', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TaskPayoutSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'role', + internalType: 'enum ColonyDataTypes.TaskRole', + type: 'uint8', + indexed: false, + }, + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'TaskRoleUserSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'skillId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'TaskSkillSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'role', + internalType: 'enum ColonyDataTypes.TaskRole', + type: 'uint8', + indexed: false, + }, + { name: 'rating', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'TaskWorkRatingRevealed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'tokenAuthorityAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'TokenAuthorityDeployed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'tokenAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'TokenDeployed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'tokenLocking', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'TokenLockingAddressSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'TokenUnlocked', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'status', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'TokenWhitelisted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TokensBurned', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'who', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TokensMinted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + { + name: 'label', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'UserLabelRegistered', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'DEPRECATED_taskWorkRatings', + outputs: [ + { name: 'count', internalType: 'uint256', type: 'uint256' }, + { name: 'timestamp', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_extensionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_resolver', internalType: 'address', type: 'address' }, + ], + name: 'addExtensionToNetwork', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'addLocalSkill', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_version', internalType: 'uint256', type: 'uint256' }, + { name: '_resolver', internalType: 'address', type: 'address' }, + ], + name: 'addNetworkColonyVersion', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_txHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_metadata', internalType: 'string', type: 'string' }, + ], + name: 'annotateTransaction', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_approvee', internalType: 'address', type: 'address' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approveStake', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'authority', + outputs: [ + { name: '', internalType: 'contract DSAuthority', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_users', internalType: 'address[]', type: 'address[]' }, + { name: '_amounts', internalType: 'int256[]', type: 'int256[]' }, + ], + name: 'bootstrapColony', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'burnTokens', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '_slot', internalType: 'uint256', type: 'uint256' }], + name: 'checkNotAdditionalProtectedVariable', + outputs: [], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: '_destinationChainId', internalType: 'uint256', type: 'uint256' }, + { name: '_salt', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'createProxyColony', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deobligateStake', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_extensionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_deprecated', internalType: 'bool', type: 'bool' }, + ], + name: 'deprecateExtension', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_localSkillId', internalType: 'uint256', type: 'uint256' }, + { name: '_deprecated', internalType: 'bool', type: 'bool' }, + ], + name: 'deprecateLocalSkill', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'domains', + outputs: [ + { name: 'skillId', internalType: 'uint256', type: 'uint256' }, + { name: 'fundingPotId', internalType: 'uint256', type: 'uint256' }, + { name: 'deprecated', internalType: 'bool', type: 'bool' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_metadata', internalType: 'string', type: 'string' }], + name: 'editColony', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_metadataDelta', internalType: 'string', type: 'string' }, + ], + name: 'editColonyByDelta', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_permissionDomainId', internalType: 'uint256', type: 'uint256' }, + { name: '_childSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'int256', type: 'int256' }, + ], + name: 'emitDomainReputationPenalty', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'int256', type: 'int256' }, + ], + name: 'emitDomainReputationReward', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_skillId', internalType: 'uint256', type: 'uint256' }, + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'int256', type: 'int256' }, + ], + name: 'emitSkillReputationPenalty', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_skillId', internalType: 'uint256', type: 'uint256' }, + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'int256', type: 'int256' }, + ], + name: 'emitSkillReputationReward', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_payload', internalType: 'bytes', type: 'bytes' }, + { name: '_sigR', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigS', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigV', internalType: 'uint8', type: 'uint8' }, + ], + name: 'executeMetaTransaction', + outputs: [{ name: 'returnData', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [], + name: 'finishUpgrade', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_obligator', internalType: 'address', type: 'address' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getApproval', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getColonyNetwork', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_localSkillId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getLocalSkill', + outputs: [ + { + name: 'localSkill', + internalType: 'struct ColonyDataTypes.LocalSkill', + type: 'tuple', + components: [ + { name: 'exists', internalType: 'bool', type: 'bool' }, + { name: 'deprecated', internalType: 'bool', type: 'bool' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_user', internalType: 'address', type: 'address' }], + name: 'getMetatransactionNonce', + outputs: [{ name: 'nonce', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_obligator', internalType: 'address', type: 'address' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getObligation', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_id', internalType: 'uint256', type: 'uint256' }], + name: 'getPayment', + outputs: [ + { + name: '', + internalType: 'struct ColonyDataTypes.Payment', + type: 'tuple', + components: [ + { + name: 'recipient', + internalType: 'address payable', + type: 'address', + }, + { name: 'finalized', internalType: 'bool', type: 'bool' }, + { name: 'fundingPotId', internalType: 'uint256', type: 'uint256' }, + { name: 'domainId', internalType: 'uint256', type: 'uint256' }, + { name: 'skills', internalType: 'uint256[]', type: 'uint256[]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getPaymentCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getRootLocalSkill', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_id', internalType: 'uint256', type: 'uint256' }], + name: 'getTask', + outputs: [ + { name: '', internalType: 'bytes32', type: 'bytes32' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + { + name: '', + internalType: 'enum ColonyDataTypes.TaskStatus', + type: 'uint8', + }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_id', internalType: 'uint256', type: 'uint256' }], + name: 'getTaskChangeNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTaskCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_role', internalType: 'uint8', type: 'uint8' }, + ], + name: 'getTaskRole', + outputs: [ + { + name: 'role', + internalType: 'struct ColonyDataTypes.Role', + type: 'tuple', + components: [ + { name: 'user', internalType: 'address payable', type: 'address' }, + { name: 'rateFail', internalType: 'bool', type: 'bool' }, + { + name: 'rating', + internalType: 'enum ColonyDataTypes.TaskRatings', + type: 'uint8', + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_role', internalType: 'uint8', type: 'uint8' }, + ], + name: 'getTaskWorkRatingSecret', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_id', internalType: 'uint256', type: 'uint256' }], + name: 'getTaskWorkRatingSecretsInfo', + outputs: [ + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getToken', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_spender', internalType: 'address', type: 'address' }, + ], + name: 'getTokenApproval', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_token', internalType: 'address', type: 'address' }], + name: 'getTotalTokenApproval', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'miningChainId', internalType: 'uint256', type: 'uint256' }, + { name: 'newHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'newNLeaves', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialiseReputationMining', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_extensionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_version', internalType: 'uint256', type: 'uint256' }, + ], + name: 'installExtension', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '_wad', internalType: 'uint256', type: 'uint256' }], + name: 'mintTokens', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_guy', internalType: 'address', type: 'address' }, + { name: '_wad', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mintTokensFor', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }], + name: 'multicall', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'obligateStake', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'colonyName', internalType: 'string', type: 'string' }, + { name: 'orbitdb', internalType: 'string', type: 'string' }, + ], + name: 'registerColonyLabel', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: 'authority_', + internalType: 'contract DSAuthority', + type: 'address', + }, + ], + name: 'setAuthority', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_bridgeAddress', internalType: 'address', type: 'address' }, + ], + name: 'setColonyBridgeAddress', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '_feeInverse', internalType: 'uint256', type: 'uint256' }], + name: 'setNetworkFeeInverse', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'owner_', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_status', internalType: 'bool', type: 'bool' }, + ], + name: 'setPayoutWhitelist', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '_amount', internalType: 'uint256', type: 'uint256' }], + name: 'setReputationMiningCycleReward', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_permissionDomainId', internalType: 'uint256', type: 'uint256' }, + { name: '_childSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_obligator', internalType: 'address', type: 'address' }, + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_beneficiary', internalType: 'address', type: 'address' }, + ], + name: 'transferStake', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_extensionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'uninstallExtension', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'unlockToken', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'orbitdb', internalType: 'string', type: 'string' }], + name: 'updateColonyOrbitDB', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '_newVersion', internalType: 'uint256', type: 'uint256' }], + name: 'upgrade', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_extensionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_newVersion', internalType: 'uint256', type: 'uint256' }, + ], + name: 'upgradeExtension', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'permissionDomainId', internalType: 'uint256', type: 'uint256' }, + { name: 'childSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: 'childDomainId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'validateDomainInheritance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_payload', internalType: 'bytes', type: 'bytes' }, + { name: '_sigR', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigS', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigV', internalType: 'uint8', type: 'uint8' }, + ], + name: 'verify', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'key', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'bytes', type: 'bytes' }, + { name: 'branchMask', internalType: 'uint256', type: 'uint256' }, + { name: 'siblings', internalType: 'bytes32[]', type: 'bytes32[]' }, + ], + name: 'verifyReputationProof', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'version', + outputs: [ + { name: 'colonyVersion', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'pure', + }, +] as const + +export const colonyAddress = + '0x777760996135F0791E2e1a74aFAA060711197778' as const + +export const colonyConfig = { address: colonyAddress, abi: colonyAbi } as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ColonyNetwork +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const colonyNetworkAbi = [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'auction', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'quantity', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'AuctionCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'bridgeAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'BridgeSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'colonyId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'colonyAddress', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ColonyAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'label', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'ColonyLabelRegistered', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'resolver', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ColonyNetworkInitialised', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'resolver', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ColonyVersionAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'extensionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExtensionAddedToNetwork', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'extensionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deprecated', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + ], + name: 'ExtensionDeprecated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'extensionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExtensionInstalled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'extensionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'ExtensionUninstalled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'extensionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExtensionUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'authority', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'LogSetAuthority', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'LogSetOwner', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'metaColony', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'rootSkillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'MetaColonyCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'userAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'relayerAddress', + internalType: 'address payable', + type: 'address', + indexed: false, + }, + { name: 'payload', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'MetaTransactionExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'miningCycleResolver', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'MiningCycleResolverSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'feeInverse', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'NetworkFeeInverseSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'destinationChainId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'salt', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'ProxyColonyRequested', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'ens', internalType: 'address', type: 'address', indexed: false }, + { + name: 'rootNode', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'RegistrarInitialised', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'miner', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokensLost', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationMinerPenalised', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'hash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'nLeaves', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationMiningCycleComplete', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'inactiveReputationMiningCycle', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ReputationMiningInitialised', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationMiningRewardSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'newHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'newNLeaves', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'stakers', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + { + name: 'reward', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationRootHashSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'count', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationUpdateSentToBridge', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'colony', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'count', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReputationUpdateStored', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'skillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'parentSkillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SkillAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'tokenAuthorityAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'TokenAuthorityDeployed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'tokenAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'TokenDeployed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'tokenLocking', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'TokenLockingAddressSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'status', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'TokenWhitelisted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + { + name: 'label', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'UserLabelRegistered', + }, + { + type: 'function', + inputs: [ + { name: '_version', internalType: 'uint256', type: 'uint256' }, + { name: '_resolver', internalType: 'address', type: 'address' }, + ], + name: 'addColonyVersion', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'authority', + outputs: [ + { name: '', internalType: 'contract DSAuthority', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_payload', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeMessage', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_payload', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeMessageToNetwork', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '_slot', internalType: 'uint256', type: 'uint256' }], + name: 'checkNotAdditionalProtectedVariable', + outputs: [], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_payload', internalType: 'bytes', type: 'bytes' }, + { name: '_sigR', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigS', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigV', internalType: 'uint8', type: 'uint8' }, + ], + name: 'executeMetaTransaction', + outputs: [{ name: 'returnData', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: '_id', internalType: 'uint256', type: 'uint256' }], + name: 'getColony', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getColonyCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_version', internalType: 'uint256', type: 'uint256' }], + name: 'getColonyVersionResolver', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getCurrentColonyVersion', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getFeeInverse', + outputs: [ + { name: '_feeInverse', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getMetaColony', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_user', internalType: 'address', type: 'address' }], + name: 'getMetatransactionNonce', + outputs: [{ name: 'nonce', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getMiningChainId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_token', internalType: 'address', type: 'address' }], + name: 'getPayoutWhitelist', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getReputationMiningSkillId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getReputationRootHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getReputationRootHashNLeaves', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getReputationRootHashNNodes', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_skillId', internalType: 'uint256', type: 'uint256' }], + name: 'getSkill', + outputs: [ + { + name: 'skill', + internalType: 'struct ColonyNetworkDataTypes.Skill', + type: 'tuple', + components: [ + { name: 'nParents', internalType: 'uint128', type: 'uint128' }, + { name: 'nChildren', internalType: 'uint128', type: 'uint128' }, + { name: 'parents', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'children', internalType: 'uint256[]', type: 'uint256[]' }, + { + name: 'DEPRECATED_globalSkill', + internalType: 'bool', + type: 'bool', + }, + { name: 'DEPRECATED_deprecated', internalType: 'bool', type: 'bool' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getSkillCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTokenLocking', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_resolver', internalType: 'address', type: 'address' }, + { name: '_version', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialise', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '_colony', internalType: 'address', type: 'address' }], + name: 'isColony', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }], + name: 'multicall', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'authority_', + internalType: 'contract DSAuthority', + type: 'address', + }, + ], + name: 'setAuthority', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '_feeInverse', internalType: 'uint256', type: 'uint256' }], + name: 'setFeeInverse', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'owner_', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_status', internalType: 'bool', type: 'bool' }, + ], + name: 'setPayoutWhitelist', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_tokenLocking', internalType: 'address', type: 'address' }, + ], + name: 'setTokenLocking', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_payload', internalType: 'bytes', type: 'bytes' }, + { name: '_sigR', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigS', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigV', internalType: 'uint8', type: 'uint8' }, + ], + name: 'verify', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, +] as const + +export const colonyNetworkAddress = + '0x777760996135F0791E2e1a74aFAa060711197777' as const + +export const colonyNetworkConfig = { + address: colonyNetworkAddress, + abi: colonyNetworkAbi, +} as const diff --git a/src/context/ColonyManager.ts b/src/context/ColonyManager.ts index f2bf29af48a..5a2a5805775 100644 --- a/src/context/ColonyManager.ts +++ b/src/context/ColonyManager.ts @@ -11,9 +11,12 @@ import { type AnyColonyClient, type AnyMultisigPermissionsClient, } from '@colony/colony-js'; +import { type Abi, CustomContract, ContractConfig } from '@colony/sdk'; import { type Signer, type providers } from 'ethers'; +import { DEFAULT_NETWORK } from '~constants/index.ts'; import { type Address } from '~types/index.ts'; +import { ColonyJSNetworkMapping } from '~types/network.ts'; import { isAddress } from '~utils/web3/index.ts'; export default class ColonyManager { @@ -21,6 +24,8 @@ export default class ColonyManager { colonyClients: Map>; + customContracts: Map>; + extensionClients: Map>; tokenClients: Map>; @@ -38,6 +43,7 @@ export default class ColonyManager { this.extensionClients = new Map(); this.tokenClients = new Map(); this.tokenLockingClients = new Map(); + this.customContracts = new Map(); this.networkClient = networkClient; this.provider = networkClient.provider; this.signer = networkClient.signer; @@ -252,4 +258,34 @@ export default class ColonyManager { } return clientPromise; } + + /* + * Get a custom colony contract by address and ABI (using Colony SDK) + * + * @example + * ```ts + * import { abi as colonyNetworkAbi } from '../../network-files/contracts/colonyNetwork/ColonyNetwork.sol/ColonyNetwork.json'; + * const networkAddress = import.meta.env.NETWORK_CONTRACT_ADDRESS || ColonyNetworkAddress[DEFAULT_NETWORK]; + * const customColonyNetwork = colonyManager.getCustomContract(networkAddress, colonyNetworkAbi); + * ``` + */ + getCustomContract(address: string, abi: A): CustomContract { + const reputationOracleEndpoint = import.meta.env.REPUTATION_ORACLE_ENDPOINT + ? new URL(import.meta.env.REPUTATION_ORACLE_ENDPOINT) + : new URL(`/reputation`, window.location.origin); + + const metaTxBroadcasterEndpoint = `${import.meta.env.METATX_BROADCASTER_ENDPOINT}/broadcast`; + + const config = new ContractConfig(this.signer || this.provider, { + metaTxBroadcasterEndpoint, + network: ColonyJSNetworkMapping[DEFAULT_NETWORK], + reputationOracleEndpoint: reputationOracleEndpoint.toString(), + }); + + if (this.customContracts.has(address)) { + return this.customContracts.get(address) as CustomContract; + } + + return new CustomContract(address as `0x${string}`, abi, config); + } } From 2c706b8dcd3789fbd417605295ecccd54472bd07 Mon Sep 17 00:00:00 2001 From: Chris Maniewski Date: Thu, 7 Nov 2024 12:14:42 +0700 Subject: [PATCH 07/66] feat: use wagmi/cli to generate type-safe abis --- .eslintignore | 1 + .gitignore | 3 + .../colony-cdapp-dev-env-orchestration.yaml | 1 - package-lock.json | 937 +++++++++++++++--- package.json | 1 + wagmi.config.ts | 46 + 6 files changed, 873 insertions(+), 116 deletions(-) create mode 100644 wagmi.config.ts diff --git a/.eslintignore b/.eslintignore index 0695b3a7c17..8231691c915 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,6 +3,7 @@ scripts postcss.config.js webpack.* src/graphql/generated.ts +src/constants/abis.ts # amplify diff --git a/.gitignore b/.gitignore index 1ad30c9e9f7..27c502ff9c8 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,9 @@ cypress/screenshots /playwright/.cache/ /network-files +# abis generated by wagmi cli +src/constants/abis.ts + .vscode .DS_Store diff --git a/docker/colony-cdapp-dev-env-orchestration.yaml b/docker/colony-cdapp-dev-env-orchestration.yaml index fcda1e4d47c..8de28c34b1d 100644 --- a/docker/colony-cdapp-dev-env-orchestration.yaml +++ b/docker/colony-cdapp-dev-env-orchestration.yaml @@ -13,7 +13,6 @@ services: image: colony-cdapp-dev-env/network:latest volumes: - 'amplify-mock-data:/colonyCDapp/amplify/mock-data' - - '../network-files/:/colonyCDappBackend/colonyNetwork/artifacts' ports: - '8545:8545' - '3002:3002' diff --git a/package-lock.json b/package-lock.json index 4b83fe29218..eaa1274d381 100644 --- a/package-lock.json +++ b/package-lock.json @@ -158,6 +158,7 @@ "@typescript-eslint/eslint-plugin": "^6.20.0", "@typescript-eslint/parser": "^6.20.0", "@vitejs/plugin-react-swc": "^3.6.0", + "@wagmi/cli": "^2.1.17", "autoprefixer": "^10.4.16", "compare-versions": "^6.1.0", "cross-fetch": "^4.0.0", @@ -226,6 +227,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "dev": true + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -7299,11 +7306,27 @@ "react": ">= 16.14.0 < 19.0.0" } }, + "node_modules/@noble/curves": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", + "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "dev": true, + "dependencies": { + "@noble/hashes": "1.5.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@noble/hashes": { - "version": "1.3.2", - "license": "MIT", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", "engines": { - "node": ">= 16" + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -7926,6 +7949,42 @@ "win32" ] }, + "node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "dev": true, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz", + "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==", + "dev": true, + "dependencies": { + "@noble/curves": "~1.6.0", + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.7" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz", + "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==", + "dev": true, + "dependencies": { + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.8" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@sideway/address": { "version": "4.1.4", "license": "BSD-3-Clause", @@ -14431,6 +14490,507 @@ "dev": true, "license": "MIT" }, + "node_modules/@wagmi/cli": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/@wagmi/cli/-/cli-2.1.17.tgz", + "integrity": "sha512-xnXxFwXkexUhkAevgUBiuYdKpwCpM+V5sdwSaHkjV3RG6pTKFBHywdxj+k6OTtDH9ygb7Xh+Rf4c6q6nJjxpbA==", + "dev": true, + "dependencies": { + "abitype": "^1.0.4", + "bundle-require": "^4.0.2", + "cac": "^6.7.14", + "change-case": "^5.4.4", + "chokidar": "4.0.1", + "dedent": "^0.7.0", + "dotenv": "^16.3.1", + "dotenv-expand": "^10.0.0", + "esbuild": "^0.19.0", + "execa": "^8.0.1", + "fdir": "^6.1.1", + "find-up": "^6.3.0", + "fs-extra": "^11.2.0", + "ora": "^6.3.1", + "pathe": "^1.1.2", + "picocolors": "^1.0.0", + "picomatch": "^3.0.0", + "prettier": "^3.0.3", + "viem": "2.x", + "zod": "^3.22.2" + }, + "bin": { + "wagmi": "dist/esm/cli.js" + }, + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@wagmi/cli/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@wagmi/cli/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@wagmi/cli/node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "dev": true + }, + "node_modules/@wagmi/cli/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@wagmi/cli/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@wagmi/cli/node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/@wagmi/cli/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@wagmi/cli/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/@wagmi/cli/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/ora": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz", + "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "stdin-discarder": "^0.1.0", + "strip-ansi": "^7.0.1", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@wagmi/cli/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/@wagmi/cli/node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@wagmi/cli/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@wagmi/cli/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@wagmi/cli/node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/@wagmi/cli/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@wagmi/cli/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@wagmi/cli/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wagmi/cli/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@web3-onboard/common": { "version": "2.3.3", "license": "MIT", @@ -18241,6 +18801,21 @@ "dev": true, "license": "MIT" }, + "node_modules/bundle-require": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-4.2.1.tgz", + "integrity": "sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==", + "dev": true, + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.17" + } + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -18270,6 +18845,15 @@ "node": ">= 0.8" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -22316,10 +22900,11 @@ } }, "node_modules/esbuild": { - "version": "0.18.20", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -22327,28 +22912,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" } }, "node_modules/esbuild-plugin-alias": { @@ -22371,15 +22957,30 @@ "esbuild": ">=0.12 <1" } }, + "node_modules/esbuild/node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/esbuild/node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -22389,14 +22990,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -22406,14 +23006,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -22423,14 +23022,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -22440,14 +23038,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -22457,14 +23054,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -22474,14 +23070,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -22491,14 +23086,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -22508,14 +23102,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -22525,14 +23118,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -22542,14 +23134,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", "cpu": [ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -22559,14 +23150,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", "cpu": [ "mips64el" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -22576,14 +23166,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -22593,14 +23182,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", "cpu": [ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -22610,14 +23198,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", "cpu": [ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -22627,14 +23214,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -22644,14 +23230,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -22661,14 +23246,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -22678,14 +23262,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "sunos" @@ -22695,14 +23278,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -22712,14 +23294,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -22729,14 +23310,13 @@ } }, "node_modules/esbuild/node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -36985,6 +37565,21 @@ "ws": "*" } }, + "node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "peerDependencies": { + "ws": "*" + } + }, "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -41692,6 +42287,15 @@ "node": ">=4" } }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -50253,6 +50857,32 @@ "node": ">= 0.8" } }, + "node_modules/stdin-discarder": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", + "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "dev": true, + "dependencies": { + "bl": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stdin-discarder/node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", @@ -53835,6 +54465,58 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/viem": { + "version": "2.21.42", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.21.42.tgz", + "integrity": "sha512-PWBb3iaVFAzLWUaNrYLweOGwHPTQid5J4HfERh/WjJgixbAFwb4ZEc1leRfygvgJPtqUGdYNapvw9b2k2FoCAg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.11.0", + "@noble/curves": "1.6.0", + "@noble/hashes": "1.5.0", + "@scure/bip32": "1.5.0", + "@scure/bip39": "1.4.0", + "abitype": "1.0.6", + "isows": "1.0.6", + "webauthn-p256": "0.0.10", + "ws": "8.18.0" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/viem/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/vite": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", @@ -54334,6 +55016,22 @@ "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.0.tgz", "integrity": "sha512-ohj72kbtVWCpKYMxcbJ+xaOBV3En76hW47j52dG+tEGG36LZQgfFw5yHl9xyjmosy3XUMn8d/GBUAy4YPM839w==" }, + "node_modules/webauthn-p256": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/webauthn-p256/-/webauthn-p256-0.0.10.tgz", + "integrity": "sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0" + } + }, "node_modules/webcrypto": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/webcrypto/-/webcrypto-0.1.1.tgz", @@ -54880,6 +55578,15 @@ "zen-observable": "0.8.15" } }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "devOptional": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/zustand": { "version": "4.5.5", "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz", diff --git a/package.json b/package.json index 1322d1ed298..a89d8f862c4 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "@typescript-eslint/eslint-plugin": "^6.20.0", "@typescript-eslint/parser": "^6.20.0", "@vitejs/plugin-react-swc": "^3.6.0", + "@wagmi/cli": "^2.1.17", "autoprefixer": "^10.4.16", "compare-versions": "^6.1.0", "cross-fetch": "^4.0.0", diff --git a/wagmi.config.ts b/wagmi.config.ts new file mode 100644 index 00000000000..5820893f70a --- /dev/null +++ b/wagmi.config.ts @@ -0,0 +1,46 @@ +import { defineConfig } from '@wagmi/cli'; +import { fetch } from '@wagmi/cli/plugins'; +import { type Address} from 'viem' + +interface Contract { + name: string; + address: Address; + path: string; +} + +const contracts: Contract[] = [ + { + name: 'ColonyNetwork', + // This is a little weird as the fetch plugin really requires an address, which is a bit too limiting + // Just change this to something unique for every contract ABI we need (made up or actual address) + address: '0x777760996135F0791E2e1a74aFAa060711197777', + path: 'colonyNetwork/ColonyNetwork.sol/ColonyNetwork.json', + }, +]; + +export default defineConfig({ + out: 'src/constants/abis.ts', + contracts: [], + plugins: [ + fetch({ + contracts, + async parse({ response }) { + const { abi } = await response.json(); + return abi; + }, + request(contract) { + if (!contract.address ) { + throw new Error('Contract address is required') + } + const contractDefinition = contracts.find(({ address }) => address === contract.address); + if (!contractDefinition) { + throw new Error(`Could not find contract with address ${contract.address}`) + } + return { + // Anyone remember trufflepig? + url: `http://localhost:3006/artifacts/contracts/${contractDefinition.path}` + } + }, + }), + ], +}); From 72a13875c360446d43eeef9a236dd4576c7ea5e8 Mon Sep 17 00:00:00 2001 From: Bassgeta Date: Tue, 19 Nov 2024 15:59:29 +0100 Subject: [PATCH 08/66] wip: create proxy colony UI --- .../colonycdapp/schema/proxyColonies.graphql | 21 ++++ .../api/colonycdapp/schema/schema.graphql | 4 + package.json | 3 +- .../v5/frame/ColonyHome/ColonyHome.tsx | 2 + .../TmpProxyColonyDeploy.tsx | 43 ++++++++ .../TmpProxyColonyDeploy/constants.ts | 8 ++ src/constants/proxyColonies.ts | 16 +++ src/graphql/fragments/colony.graphql | 1 + src/graphql/generated.ts | 53 ++++++++- src/redux/actionTypes.ts | 6 + .../sagas/proxyColonies/createProxyColony.ts | 104 ++++++++++++++++++ src/redux/sagas/proxyColonies/index.ts | 7 ++ src/redux/sagas/setupUserContext.ts | 2 + src/redux/types/actions/index.ts | 4 +- src/redux/types/actions/proxyColonies.ts | 17 +++ src/types/proxyColonies.ts | 4 + src/types/transactions.ts | 2 + wagmi.config.ts | 24 ++-- 18 files changed, 308 insertions(+), 13 deletions(-) create mode 100644 amplify/backend/api/colonycdapp/schema/proxyColonies.graphql create mode 100644 src/components/v5/frame/ColonyHome/partials/TmpProxyColonyDeploy/TmpProxyColonyDeploy.tsx create mode 100644 src/components/v5/frame/ColonyHome/partials/TmpProxyColonyDeploy/constants.ts create mode 100644 src/constants/proxyColonies.ts create mode 100644 src/redux/sagas/proxyColonies/createProxyColony.ts create mode 100644 src/redux/sagas/proxyColonies/index.ts create mode 100644 src/redux/types/actions/proxyColonies.ts create mode 100644 src/types/proxyColonies.ts diff --git a/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql b/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql new file mode 100644 index 00000000000..5f92e294cce --- /dev/null +++ b/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql @@ -0,0 +1,21 @@ +""" +Table representing a deployed proxy colony +""" +type ProxyColony @model { + """ + id in the format of colonyAddress_chainId + """ + id: ID! + """ + Address of the colony on the blockchain + """ + colonyAddress: ID! + """ + The chainId it's deployed on + """ + chainId: String! + """ + A flag that tells us if the proxy is active or not + """ + isActive: Boolean! +} diff --git a/amplify/backend/api/colonycdapp/schema/schema.graphql b/amplify/backend/api/colonycdapp/schema/schema.graphql index 1a8ab3871e9..92cff1f1637 100644 --- a/amplify/backend/api/colonycdapp/schema/schema.graphql +++ b/amplify/backend/api/colonycdapp/schema/schema.graphql @@ -1542,6 +1542,10 @@ type Colony @model { """ name: String! @index(name: "byName", queryField: "getColonyByName") """ + The block number the colony was created attached + """ + createdAtBlock: Int + """ The unique address of the native token of the Colony """ nativeTokenId: ID! diff --git a/package.json b/package.json index a89d8f862c4..d55696c5636 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,8 @@ "e2e:install": "npx playwright install --with-deps", "e2e": "playwright test --project=chromium", "e2e:ui": "playwright test --ui", - "generate-notifications-dev-key": "node scripts/generate-local-notifications-key" + "generate-notifications-dev-key": "node scripts/generate-local-notifications-key", + "wagmi-generate": "wagmi generate" }, "repository": { "type": "git", diff --git a/src/components/v5/frame/ColonyHome/ColonyHome.tsx b/src/components/v5/frame/ColonyHome/ColonyHome.tsx index 178ddab293d..ec33626440a 100644 --- a/src/components/v5/frame/ColonyHome/ColonyHome.tsx +++ b/src/components/v5/frame/ColonyHome/ColonyHome.tsx @@ -17,6 +17,7 @@ import DashboardHeader from './partials/DashboardHeader/index.ts'; import FundsCards from './partials/FundsCards/index.ts'; import LeaveColonyModal from './partials/LeaveColonyModal/index.ts'; import ReputationChart from './partials/ReputationChart/index.ts'; +import { TmpProxyColonyDeploy } from './partials/TmpProxyColonyDeploy/TmpProxyColonyDeploy.tsx'; import TotalInOutBalance from './partials/TotalInOutBalance/TotalInOutBalance.tsx'; const displayName = 'v5.frame.ColonyHome'; @@ -37,6 +38,7 @@ const ColonyHome = () => { +
diff --git a/src/components/v5/frame/ColonyHome/partials/TmpProxyColonyDeploy/TmpProxyColonyDeploy.tsx b/src/components/v5/frame/ColonyHome/partials/TmpProxyColonyDeploy/TmpProxyColonyDeploy.tsx new file mode 100644 index 00000000000..7095c6d735c --- /dev/null +++ b/src/components/v5/frame/ColonyHome/partials/TmpProxyColonyDeploy/TmpProxyColonyDeploy.tsx @@ -0,0 +1,43 @@ +import React, { useState } from 'react'; + +import { useColonyContext } from '~context/ColonyContext/ColonyContext.ts'; +import useAsyncFunction from '~hooks/useAsyncFunction.ts'; +import { ActionTypes } from '~redux/actionTypes.ts'; +import Select from '~v5/common/Fields/Select/Select.tsx'; +import Button from '~v5/shared/Button/Button.tsx'; + +import { SUPPORTED_CHAINS_OPTIONS } from './constants.ts'; + +export const TmpProxyColonyDeploy = () => { + const { colony } = useColonyContext(); + const [chainId, setChainId] = useState(undefined); + + const createProxyColony = useAsyncFunction({ + submit: ActionTypes.PROXY_COLONY_CREATE, + error: ActionTypes.PROXY_COLONY_CREATE_ERROR, + success: ActionTypes.PROXY_COLONY_CREATE_SUCCESS, + }); + + const handleClick = async () => { + await createProxyColony({ + colonyAddress: colony.colonyAddress, + createdAtBlock: colony.createdAtBlock, + foreignChainId: chainId, + }); + }; + + return ( +
+ { - setChainId(option?.value ? Number(option.value) : undefined); - }} - /> - -
    - {proxyColoniesResponse.data?.getProxyColoniesByColonyAddress?.items.map( - (proxyColony) => { - return ( -
  • - Status on chain {proxyColony?.chainId}: - {proxyColony?.isActive ? 'deployed' : 'not deployed'} -
  • - ); - }, - )} -
-
- ); -}; diff --git a/src/components/v5/frame/ColonyHome/partials/TmpProxyColonyDeploy/constants.ts b/src/components/v5/frame/ColonyHome/partials/TmpProxyColonyDeploy/constants.ts deleted file mode 100644 index 0d9d43839db..00000000000 --- a/src/components/v5/frame/ColonyHome/partials/TmpProxyColonyDeploy/constants.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { SUPPORTED_CHAINS } from '~constants/proxyColonies.ts'; - -export const SUPPORTED_CHAINS_OPTIONS = SUPPORTED_CHAINS.map( - (supportedChain) => ({ - value: supportedChain.chainId, - label: supportedChain.name, - }), -); diff --git a/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx b/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx index 630fb4738ec..b3e30b0ce3b 100644 --- a/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx +++ b/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx @@ -39,6 +39,7 @@ const SearchItem: FC = ({ isDisabled, isComingSoon, isNew, + icon: Icon, avatar, showAvatar, color, @@ -79,6 +80,7 @@ const SearchItem: FC = ({ }} >
+ {Icon && } {color && !isLabelVisible && (
= ({ children }) => { ); const guidedToursFeature = useFeatureFlag(FeatureFlag.GUIDED_TOURS); const arbitraryTxsAction = useFeatureFlag(FeatureFlag.ARBITRARY_TXS_ACTION); + const supportedChainsAction = useFeatureFlag( + FeatureFlag.SUPPORTED_CHAINS_ACTION, + ); const featureFlags: Record< FeatureFlag, @@ -46,12 +49,14 @@ const FeatureFlagsContextProvider: FC = ({ children }) => { [FeatureFlag.CRYPTO_TO_FIAT_WITHDRAWALS]: cryptoToFiatWithdrawalsFeature, [FeatureFlag.GUIDED_TOURS]: guidedToursFeature, [FeatureFlag.ARBITRARY_TXS_ACTION]: arbitraryTxsAction, + [FeatureFlag.SUPPORTED_CHAINS_ACTION]: supportedChainsAction, }), [ cryptoToFiatFeature, cryptoToFiatWithdrawalsFeature, guidedToursFeature, arbitraryTxsAction, + supportedChainsAction, ], ); diff --git a/src/context/FeatureFlagsContext/types.ts b/src/context/FeatureFlagsContext/types.ts index 43a4f214141..2354b390335 100644 --- a/src/context/FeatureFlagsContext/types.ts +++ b/src/context/FeatureFlagsContext/types.ts @@ -3,6 +3,7 @@ export enum FeatureFlag { CRYPTO_TO_FIAT_WITHDRAWALS = 'CRYPTO_TO_FIAT_WITHDRAWALS', GUIDED_TOURS = 'GUIDED_TOURS', ARBITRARY_TXS_ACTION = 'ARBITRARY_TXS_ACTION', + SUPPORTED_CHAINS_ACTION = 'SUPPORTED_CHAINS_ACTION', } export interface FeatureFlagValue { diff --git a/src/graphql/fragments/actions.graphql b/src/graphql/fragments/actions.graphql index d4c4dd3b812..924c7279ed0 100644 --- a/src/graphql/fragments/actions.graphql +++ b/src/graphql/fragments/actions.graphql @@ -152,6 +152,9 @@ fragment ColonyAction on ColonyAction { contractAddress encodedFunction } + multiChainInfo { + targetChainId + } } fragment ApprovedTokenChanges on ApprovedTokenChanges { diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index 610d08c5caa..53eeef2881a 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -728,6 +728,8 @@ export enum ColonyActionType { ReleaseStagedPayments = 'RELEASE_STAGED_PAYMENTS', /** An action related to a motion to release a staged payment */ ReleaseStagedPaymentsMotion = 'RELEASE_STAGED_PAYMENTS_MOTION', + /** An action related to disabling a proxy colony */ + RemoveProxyColony = 'REMOVE_PROXY_COLONY', /** An action related to removing verified members */ RemoveVerifiedMembers = 'REMOVE_VERIFIED_MEMBERS', RemoveVerifiedMembersMotion = 'REMOVE_VERIFIED_MEMBERS_MOTION', @@ -10466,7 +10468,7 @@ export type VotingReputationParamsInput = { voterRewardFraction: Scalars['String']; }; -export type ColonyActionFragment = { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null }; +export type ColonyActionFragment = { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null }; export type ApprovedTokenChangesFragment = { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array }; @@ -10570,7 +10572,7 @@ export type SafeTransactionDataFragment = { __typename?: 'SafeTransactionData', export type SafeTransactionFragment = { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null }; -export type UserStakeFragment = { __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; +export type UserStakeFragment = { __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null } | null }; export type TokenFragment = { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }; @@ -10801,14 +10803,14 @@ export type GetColonyActionsQueryVariables = Exact<{ }>; -export type GetColonyActionsQuery = { __typename?: 'Query', getActionsByColony?: { __typename?: 'ModelColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; +export type GetColonyActionsQuery = { __typename?: 'Query', getActionsByColony?: { __typename?: 'ModelColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null } | null> } | null }; export type GetColonyActionQueryVariables = Exact<{ transactionHash: Scalars['ID']; }>; -export type GetColonyActionQuery = { __typename?: 'Query', getColonyAction?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; +export type GetColonyActionQuery = { __typename?: 'Query', getColonyAction?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null } | null }; export type GetColonyMotionQueryVariables = Exact<{ id: Scalars['ID']; @@ -10853,7 +10855,7 @@ export type SearchActionsQueryVariables = Exact<{ }>; -export type SearchActionsQuery = { __typename?: 'Query', searchColonyActions?: { __typename?: 'SearchableColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; +export type SearchActionsQuery = { __typename?: 'Query', searchColonyActions?: { __typename?: 'SearchableColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null } | null> } | null }; export type OnCreateColonyActionMetadataSubscriptionVariables = Exact<{ [key: string]: never; }>; @@ -11165,7 +11167,7 @@ export type GetUserStakesQueryVariables = Exact<{ }>; -export type GetUserStakesQuery = { __typename?: 'Query', getUserStakes?: { __typename?: 'ModelUserStakeConnection', items: Array<{ __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null } | null> } | null }; +export type GetUserStakesQuery = { __typename?: 'Query', getUserStakes?: { __typename?: 'ModelUserStakeConnection', items: Array<{ __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null } | null } | null> } | null }; export type GetTokenByAddressQueryVariables = Exact<{ address: Scalars['ID']; @@ -12419,6 +12421,9 @@ export const ColonyActionFragmentDoc = gql` contractAddress encodedFunction } + multiChainInfo { + targetChainId + } } ${UserDisplayFragmentDoc} ${PublicColonyFragmentDoc} diff --git a/src/i18n/en-actions.ts b/src/i18n/en-actions.ts index 270b1dc049d..b59c5b2caf6 100644 --- a/src/i18n/en-actions.ts +++ b/src/i18n/en-actions.ts @@ -58,6 +58,8 @@ const actionsMessageDescriptors = { ${ColonyActionType.ManageTokensMultisig} {Manage tokens by {initiator}} ${ColonyActionType.FundExpenditureMotion} {Payment to {recipientsNumber} {recipientsNumber, plural, one {recipient} other {recipients}} with {tokensNumber} {tokensNumber, plural, one {token} other {tokens}} by {initiator}} ${ColonyActionType.MakeArbitraryTransaction} {Custom transactions by {initiator}} + ${ColonyActionType.AddProxyColony} {Add support for {chain} chain by {initiator}} + ${ColonyActionType.RemoveProxyColony} {Remove support for {chain} chain by {initiator}} ${ExtendedColonyActionType.AddSafe} {Add Safe from {chainName}} ${ExtendedColonyActionType.RemoveSafe} {Remove Safe} ${ExtendedColonyActionType.SafeMultipleTransactions} ${safeActionTitle} @@ -122,6 +124,8 @@ const actionsMessageDescriptors = { ${ColonyActionType.ManageTokens} {Manage tokens} ${ColonyActionType.ManageTokensMotion} {Manage tokens} ${ColonyActionType.ManageTokensMultisig} {Manage tokens} + ${ColonyActionType.AddProxyColony} {Manage supported chains} + ${ColonyActionType.RemoveProxyColony} {Manage supported chains} ${ExtendedColonyActionType.StagedPayment} {Staged payment} ${ExtendedColonyActionType.AddSafe} {Add Safe} ${ExtendedColonyActionType.RemoveSafe} {Remove Safe} diff --git a/src/i18n/en.json b/src/i18n/en.json index dbfa60d5f25..0c80fa8f21a 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -184,6 +184,9 @@ "button.addFunds": "Add funds", "button.apply": "Apply", "button.confirmDeletion": "Yes, confirm deletion", + "button.manageChains": "Manage chains", + "button.addChain": "Add chain", + "button.removeChain": "Remove chain", "input.resetText": "Cancel", "label.amount": "Amount", "label.username": "Username", @@ -337,6 +340,8 @@ "transaction.group.tokenUnlockAction.description": "Unlocking native Token", "transaction.group.releaseExpenditure.title": "Release Expenditure", "transaction.group.releaseExpenditure.description": "Releasing expenditure", + "transaction.group.createProxyColony.title": "Add Chain Support", + "transaction.group.removeProxyColony.title": "Remove Chain Support", "transaction.group.arbitraryTxs.title": "Custom Transactions", "transaction.group.arbitraryTxs.description": "Custom Transactions", @@ -378,6 +383,8 @@ "transaction.ColonyClient.unlockToken.title": "Unlocking Token", "transaction.ColonyClient.upgrade.title": "Colony Version Upgrade", "transaction.ColonyClient.upgradeExtension.title": "Upgrade Colony Extension", + "transaction.ColonyClient.createProxyColony.title": "Add Chain Support", + "transaction.ColonyClient.removeProxyColony.title": "Remove Chain Support", "transaction.NetworkClient.createColonyForFrontend.title": "Create Colony", @@ -935,6 +942,8 @@ "actions.description.managePermissions": "Manage authority for members to take actions", "actions.editColonyDetails": "Edit colony details", "actions.description.editColonyDetails": "Update details about the colony", + "actions.manageSupportedChains": "Manage supported chains", + "actions.description.manageSupportedChains": "Add and remove chain support for the colony", "actions.upgradeColonyVersion": "Upgrade colony version", "actions.description.upgradeColonyVersion": "Access new features and security updates", "actions.manageVerifiedMembers": "Manage verified members", @@ -1182,6 +1191,12 @@ "actionSidebar.externalLinks": "External links", "actionSidebar.approvedTokens": "Approved tokens", "actionSidebar.advancedPayments": "Advanced Payments", + "actionSidebar.manageSupportedChains": "Add/remove", + "actionSidebar.manageSupportedChains.placeholder": "Select option", + "actionSidebar.manageSupportedChains.title": "Select chain support option", + "actionSidebar.chain": "Chain", + "actionSidebar.chain.placeholder": "Select chain", + "actionSidebar.chain.title": "Available chains", "actionSidebar.manageVerifiedMembers.table.title": "Selected members", "actionSidebar.manageVerifiedMembers.table.column.members": "Members", "actionSidebar.emptyTitle": "No results to display", @@ -1191,6 +1206,8 @@ "actionSidebar.changeActionModal.title": "Do you wish to change the action?", "actionSidebar.option.addMembers": "Add members", "actionSidebar.option.removeMembers": "Remove members", + "actionSidebar.option.addSupportedChain": "Add chain support", + "actionSidebar.option.removeSupportedChain": "Remove chain support", "actionSidebar.mint.token.permission.error": "You don't have the right permissions to create this action type. Please choose another action type.", "actionSidebar.placeholder.teamName": "Enter team name", "actionSidebar.placeholder.purpose": "Enter short description", @@ -1203,6 +1220,10 @@ "actionSidebar.tooltip.actionType": "Identifies the type of action.", "actionSidebar.tooltip.decisionMethod": "Mechanism behind the decision-making process.", "actionSidebar.tooltip.manageMembers": "Whether members are being added or removed.", + "actionSidebar.tooltip.manageSupportedChains": "Whether support for chains are being added or removed.", + "actionSidebar.tooltip.chain.notSelected": "Chain in which support should be added or removed.", + "actionSidebar.tooltip.chain.add": "Chain you want to add support for.", + "actionSidebar.tooltip.chain.remove": "Chain you want to remove support for.", "actionSidebar.tooltip.createdIn": "Team responsible for decision-making and action execution.", "actionSidebar.tooltip.description": "Provide a description for why this action is being performed including any relevant details.", "actionSidebar.tooltip.simplePayment.from": "Team source of the funds.", @@ -1680,6 +1701,8 @@ "errors.milestone.required": "Name is required in {paymentIndex, selectordinal, one {#st} two {#nd} few {#rd} other {#th}} milestone", "errors.milestone.characters": "{paymentIndex, selectordinal, one {#st} two {#nd} few {#rd} other {#th}} milestone exceeds limit of 80 characters.", "errors.fundFrom.required": "Fund from field is required", + "errors.chain.required": "Please select a chain", + "errors.manageSupportedChain.required": "Please select an operation", "editColony.socialLinks.custom": "Custom URL", "editColony.socialLinks.discord": "Discord URL", "editColony.socialLinks.github": "Github URL", diff --git a/src/redux/actionTypes.ts b/src/redux/actionTypes.ts index 3811cc9bc2d..7d34679f835 100644 --- a/src/redux/actionTypes.ts +++ b/src/redux/actionTypes.ts @@ -331,4 +331,7 @@ export enum ActionTypes { PROXY_COLONY_CREATE = 'PROXY_COLONY_CREATE', PROXY_COLONY_CREATE_SUCCESS = 'PROXY_COLONY_CREATE_SUCCESS', PROXY_COLONY_CREATE_ERROR = 'PROXY_COLONY_CREATE_ERROR', + PROXY_COLONY_REMOVE = 'PROXY_COLONY_REMOVE', + PROXY_COLONY_REMOVE_SUCCESS = 'PROXY_COLONY_REMOVE_SUCCESS', + PROXY_COLONY_REMOVE_ERROR = 'PROXY_COLONY_REMOVE_ERROR', } diff --git a/src/redux/sagas/proxyColonies/createProxyColony.ts b/src/redux/sagas/proxyColonies/createProxyColony.ts index 45e7c885dbb..c712b883488 100644 --- a/src/redux/sagas/proxyColonies/createProxyColony.ts +++ b/src/redux/sagas/proxyColonies/createProxyColony.ts @@ -1,7 +1,7 @@ import { ClientType } from '@colony/colony-js'; import { type CustomContract } from '@colony/sdk'; import { utils } from 'ethers'; -import { put, takeEvery } from 'redux-saga/effects'; +import { call, fork, put, takeEvery } from 'redux-saga/effects'; import { colonyAbi } from '~constants/abis.ts'; import { ContextModule, getContext } from '~context/index.ts'; @@ -16,29 +16,57 @@ import { addTransactionToDb } from '~state/transactionState.ts'; import { TransactionStatus } from '~types/graphql.ts'; import { TRANSACTION_METHODS } from '~types/transactions.ts'; -import { getColonyManager, putError } from '../utils/index.ts'; +import { + createTransaction, + createTransactionChannels, + getTxChannel, +} from '../transactions/createTransaction.ts'; +import { + createActionMetadataInDB, + getColonyManager, + putError, + takeFrom, + uploadAnnotation, +} from '../utils/index.ts'; export type CreateProxyColonyPayload = Action['payload']; // @TODO if metatx are enabled sent a metaTx instead of tx +// @TODO we need to add the annotationMessage and the customActionTitle +// @TODO we need to add re-enable logic if the proxy colony was already deployed function* createProxyColony({ - payload: { colonyAddress, creationSalt, foreignChainId }, + payload: { + colonyAddress, + creationSalt, + foreignChainId, + customActionTitle, + annotationMessage, + }, + meta: { id: metaId, setTxHash }, meta, }: Action) { + let txChannel; const batchKey = TRANSACTION_METHODS.CreateProxyColony; + const { annotateCreateProxyColony } = yield createTransactionChannels( + metaId, + ['annotateCreateProxyColony'], + ); + const colonyManager = yield getColonyManager(); const { address } = getContext(ContextModule.Wallet); const walletAddress = utils.getAddress(address); try { + txChannel = yield call(getTxChannel, metaId); + const proxyColonyContract: CustomContract = colonyManager.getCustomContract(colonyAddress, colonyAbi); const params = [foreignChainId, creationSalt]; - yield addTransactionToDb(meta.id, { + yield addTransactionToDb(metaId, { context: ClientType.ColonyClient, // @NOTE we want to add a new context type createdAt: new Date(), methodName: 'createProxyColony', @@ -47,11 +75,26 @@ function* createProxyColony({ status: TransactionStatus.Ready, group: { key: batchKey, - id: meta.id, + id: metaId, index: 0, }, }); + if (annotationMessage) { + yield fork(createTransaction, annotateCreateProxyColony.id, { + context: ClientType.ColonyClient, + methodName: 'annotateTransaction', + identifier: colonyAddress, + params: [], + group: { + key: batchKey, + id: metaId, + index: 1, + }, + ready: false, + }); + } + const [transaction, waitForMined] = yield proxyColonyContract .createTxCreator('createProxyColony', [ BigInt(foreignChainId), @@ -62,14 +105,14 @@ function* createProxyColony({ gasLimit: BigInt(10_000_000), }); - put(transactionSent(meta.id)); + put(transactionSent(metaId)); if (!transaction || !transaction.blockHash || !transaction.blockNumber) { throw new Error('Invalid transaction'); // @TODO add more info } put( - transactionHashReceived(meta.id, { + transactionHashReceived(metaId, { hash: transaction.hash, blockNumber: transaction.blockNumber, blockHash: transaction.blockHash, @@ -81,8 +124,26 @@ function* createProxyColony({ const [eventData, receipt] = yield waitForMined(); - put(transactionReceiptReceived(meta.id, { params, receipt })); - put(transactionSucceeded(meta.id, { eventData, receipt, params })); + put(transactionReceiptReceived(metaId, { params, receipt })); + put(transactionSucceeded(metaId, { eventData, receipt, params })); + + if (annotationMessage) { + yield takeFrom( + annotateCreateProxyColony.channel, + ActionTypes.TRANSACTION_CREATED, + ); + } + + yield createActionMetadataInDB(transaction.hash, customActionTitle); + + if (annotationMessage) { + yield uploadAnnotation({ + txChannel: annotateCreateProxyColony, + message: annotationMessage, + txHash: transaction.hash, + }); + } + setTxHash?.(transaction.hash); yield put({ type: ActionTypes.PROXY_COLONY_CREATE_SUCCESS, @@ -91,6 +152,8 @@ function* createProxyColony({ }); } catch (error) { yield putError(ActionTypes.PROXY_COLONY_CREATE_ERROR, error, meta); + } finally { + txChannel.close(); } } diff --git a/src/redux/sagas/proxyColonies/disableProxyColony.ts b/src/redux/sagas/proxyColonies/disableProxyColony.ts new file mode 100644 index 00000000000..7bf38e8e646 --- /dev/null +++ b/src/redux/sagas/proxyColonies/disableProxyColony.ts @@ -0,0 +1,129 @@ +import { ClientType } from '@colony/colony-js'; +import { fork, put, takeEvery } from 'redux-saga/effects'; + +import { type Action, ActionTypes, type AllActions } from '~redux'; +import { transactionSetParams } from '~state/transactionState.ts'; +import { TRANSACTION_METHODS } from '~types/transactions.ts'; +import { takeFrom } from '~utils/saga/effects.ts'; + +import { + createTransaction, + createTransactionChannels, + waitForTxResult, +} from '../transactions/createTransaction.ts'; +import { + createActionMetadataInDB, + initiateTransaction, + putError, + uploadAnnotation, +} from '../utils/index.ts'; +import { getDisableProxyColonyOperation } from '../utils/metadataDelta.ts'; + +export type RemoveProxyColonyPayload = + Action['payload']; + +// @TODO if metatx are enabled sent a metaTx instead of tx +function* disableProxyColonyAction({ + payload: { + colonyAddress, + foreignChainId, + customActionTitle, + annotationMessage, + }, + meta: { id: metaId, setTxHash }, + meta, +}: Action) { + const batchKey = TRANSACTION_METHODS.RemoveProxyColony; + + const { disableProxyColony, annotateDisableProxyColony } = + yield createTransactionChannels(metaId, [ + 'disableProxyColony', + 'annotateDisableProxyColony', + ]); + + if (!colonyAddress) { + throw new Error( + 'No colony address set for disableProxyColonyAction transaction', + ); + } + + try { + yield fork(createTransaction, disableProxyColony.id, { + context: ClientType.ColonyClient, + methodName: 'editColonyByDelta', + identifier: colonyAddress, + params: [], + group: { + key: batchKey, + id: metaId, + index: 0, + }, + ready: false, + }); + + if (annotationMessage) { + yield fork(createTransaction, annotateDisableProxyColony.id, { + context: ClientType.ColonyClient, + methodName: 'annotateTransaction', + identifier: colonyAddress, + params: [], + group: { + key: batchKey, + id: metaId, + index: 1, + }, + ready: false, + }); + } + + yield takeFrom(disableProxyColony.channel, ActionTypes.TRANSACTION_CREATED); + if (annotationMessage) { + yield takeFrom( + annotateDisableProxyColony.channel, + ActionTypes.TRANSACTION_CREATED, + ); + } + + yield transactionSetParams(disableProxyColony.id, [ + JSON.stringify( + getDisableProxyColonyOperation([foreignChainId.toString()]), + ), + ]); + + yield initiateTransaction(disableProxyColony.id); + + const { + payload: { + receipt: { transactionHash: txHash }, + }, + } = yield waitForTxResult(disableProxyColony.channel); + + yield createActionMetadataInDB(txHash, customActionTitle); + + if (annotationMessage) { + yield uploadAnnotation({ + txChannel: annotateDisableProxyColony, + message: annotationMessage, + txHash, + }); + } + + setTxHash?.(txHash); + + yield put({ + type: ActionTypes.PROXY_COLONY_REMOVE_SUCCESS, + payload: {}, + meta, + }); + } catch (error) { + yield putError(ActionTypes.PROXY_COLONY_REMOVE_ERROR, error, meta); + } finally { + [disableProxyColony, annotateDisableProxyColony].forEach((channel) => + channel.channel.close(), + ); + } +} + +export default function* disableProxyColonySaga() { + yield takeEvery(ActionTypes.PROXY_COLONY_REMOVE, disableProxyColonyAction); +} diff --git a/src/redux/sagas/proxyColonies/index.ts b/src/redux/sagas/proxyColonies/index.ts index 7a5730cc1d6..7ec683accf9 100644 --- a/src/redux/sagas/proxyColonies/index.ts +++ b/src/redux/sagas/proxyColonies/index.ts @@ -1,7 +1,8 @@ import { all, call } from 'redux-saga/effects'; import createProxyColonySaga from './createProxyColony.ts'; +import disableProxyColonySaga from './disableProxyColony.ts'; export default function* proxyColonySagas() { - yield all([call(createProxyColonySaga)]); + yield all([call(createProxyColonySaga), call(disableProxyColonySaga)]); } diff --git a/src/redux/sagas/utils/metadataDelta.ts b/src/redux/sagas/utils/metadataDelta.ts index 524a031c538..b5a46d7db1a 100644 --- a/src/redux/sagas/utils/metadataDelta.ts +++ b/src/redux/sagas/utils/metadataDelta.ts @@ -2,6 +2,7 @@ enum MetadataDeltaActionType { ADD_VERIFIED_MEMBERS = 'ADD_VERIFIED_MEMBERS', REMOVE_VERIFIED_MEMBERS = 'REMOVE_VERIFIED_MEMBERS', MANAGE_TOKENS = 'MANAGE_TOKENS', + DISABLE_PROXY_COLONY = 'DISABLE_PROXY_COLONY', } type AddVerifiedMembersOperation = { @@ -19,6 +20,11 @@ type ManageTokensOperation = { payload: string[] | unknown[]; }; +type DisableProxyColonyOperation = { + type: MetadataDeltaActionType.DISABLE_PROXY_COLONY; + payload: string[] | unknown[]; +}; + export type MetadataDeltaOperation = | AddVerifiedMembersOperation | RemoveVerifiedMembersOperation @@ -50,3 +56,12 @@ export const getManageTokensOperation = ( payload: tokenAddresses, }; }; + +export const getDisableProxyColonyOperation = ( + payload: string[], +): DisableProxyColonyOperation => { + return { + type: MetadataDeltaActionType.DISABLE_PROXY_COLONY, + payload, + }; +}; diff --git a/src/redux/types/actions/proxyColonies.ts b/src/redux/types/actions/proxyColonies.ts index 32aa092590d..9c5656a71ec 100644 --- a/src/redux/types/actions/proxyColonies.ts +++ b/src/redux/types/actions/proxyColonies.ts @@ -1,7 +1,11 @@ import { type ActionTypes } from '~redux/actionTypes.ts'; import { type Address } from '~types/index.ts'; -import { type ErrorActionType, type UniqueActionType } from './index.ts'; +import { + type MetaWithSetter, + type ErrorActionType, + type UniqueActionType, +} from './index.ts'; export type ProxyColoniesActionTypes = | UniqueActionType< @@ -10,8 +14,22 @@ export type ProxyColoniesActionTypes = colonyAddress: Address; foreignChainId: number; creationSalt: `0x${string}`; + annotationMessage?: string; + customActionTitle: string; }, - object + MetaWithSetter > | ErrorActionType - | UniqueActionType; + | UniqueActionType + | UniqueActionType< + ActionTypes.PROXY_COLONY_REMOVE, + { + colonyAddress: Address; + foreignChainId: number; + annotationMessage?: string; + customActionTitle: string; + }, + MetaWithSetter + > + | ErrorActionType + | UniqueActionType; diff --git a/src/types/proxyColonies.ts b/src/types/proxyColonies.ts index 7f020b19a14..b5a556a1ac1 100644 --- a/src/types/proxyColonies.ts +++ b/src/types/proxyColonies.ts @@ -1,4 +1,8 @@ +import { type Icon } from '@phosphor-icons/react'; + export interface SupportedChain { name: string; chainId: number; + icon: Icon; + isDisabled?: boolean; } diff --git a/src/types/transactions.ts b/src/types/transactions.ts index 92761e56934..07393d85375 100644 --- a/src/types/transactions.ts +++ b/src/types/transactions.ts @@ -116,4 +116,5 @@ export enum TRANSACTION_METHODS { VoteOnMultiSig = 'voteOnMultiSig', // Proxy colonies CreateProxyColony = 'createProxyColony', + RemoveProxyColony = 'removeProxyColony', } diff --git a/src/utils/proxyColonies.ts b/src/utils/proxyColonies.ts new file mode 100644 index 00000000000..dec58fa086b --- /dev/null +++ b/src/utils/proxyColonies.ts @@ -0,0 +1,12 @@ +import { SUPPORTED_CHAINS } from '~constants/proxyColonies.ts'; + +import { isNil } from './lodash.ts'; + +export const findSupportedChain = (chainId: number | undefined | null) => { + if (isNil(chainId)) { + return null; + } + return SUPPORTED_CHAINS.find( + (supportedChain) => supportedChain.chainId === chainId, + ); +}; From a7e5d1b928f75aad2024c8221f20f8218d9dd281 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Tue, 14 Jan 2025 11:32:03 +0100 Subject: [PATCH 22/66] Fix: Action list index when ManageSupportedChains is disabled Fix: Action list index when ManageSupportedChains is disabled --- .../v5/common/ActionSidebar/hooks/useActionsList.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/v5/common/ActionSidebar/hooks/useActionsList.ts b/src/components/v5/common/ActionSidebar/hooks/useActionsList.ts index 24d3a9f0934..6b61c6fb14e 100644 --- a/src/components/v5/common/ActionSidebar/hooks/useActionsList.ts +++ b/src/components/v5/common/ActionSidebar/hooks/useActionsList.ts @@ -163,10 +163,11 @@ const useActionsList = () => { } if (!isFeatureFlagSupportedChainsEnabled) { - const supportedChainsIndex = actionsListOptions[4].options.findIndex( - ({ value }) => value === Action.ManageSupportedChains, - ); - actionsListOptions[5].options.splice(supportedChainsIndex, 1); + const manageSupportedChainsIndex = + actionsListOptions[4].options.findIndex( + ({ value }) => value === Action.ManageSupportedChains, + ); + actionsListOptions[4].options.splice(manageSupportedChainsIndex, 1); } if (!isStagedExpenditureEnabled) { From be317c68cbe3e1f0ea88e6cce1a8b82abb6d4193 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Mon, 6 Jan 2025 21:23:25 +0100 Subject: [PATCH 23/66] Feat: Re-enable deployed proxy colony Feat: Re-enable deployed proxy colony --- .../hooks/useFilterChainSelectField.ts | 16 +-- .../forms/ManageSupportedChainsForm/hooks.ts | 38 +++-- .../proxyColonies/useDeployedChainIds.ts | 24 ++++ src/redux/actionTypes.ts | 3 + .../sagas/proxyColonies/enableProxyColony.ts | 132 ++++++++++++++++++ src/redux/sagas/proxyColonies/index.ts | 7 +- src/redux/sagas/utils/metadataDelta.ts | 15 ++ src/redux/types/actions/proxyColonies.ts | 14 +- 8 files changed, 226 insertions(+), 23 deletions(-) create mode 100644 src/hooks/proxyColonies/useDeployedChainIds.ts create mode 100644 src/redux/sagas/proxyColonies/enableProxyColony.ts diff --git a/src/components/v5/common/ActionSidebar/hooks/useFilterChainSelectField.ts b/src/components/v5/common/ActionSidebar/hooks/useFilterChainSelectField.ts index a4fd4cb44a4..2c35ad0c49e 100644 --- a/src/components/v5/common/ActionSidebar/hooks/useFilterChainSelectField.ts +++ b/src/components/v5/common/ActionSidebar/hooks/useFilterChainSelectField.ts @@ -1,5 +1,4 @@ -import { useColonyContext } from '~context/ColonyContext/ColonyContext.ts'; -import { useGetProxyColoniesQuery } from '~gql'; +import { useDeployedChainIds } from '~hooks/proxyColonies/useDeployedChainIds.ts'; import { MANAGE_SUPPORTED_CHAINS_FIELD_NAME, @@ -14,18 +13,9 @@ export const useFilterChainSelectField = () => { ManageEntityOperation.Remove, ); - const { colony } = useColonyContext(); - const { data } = useGetProxyColoniesQuery({ - variables: { - colonyAddress: colony.colonyAddress, - }, - fetchPolicy: 'cache-and-network', + const activeProxyColoniesChainIds = useDeployedChainIds({ + filterFn: (deployedProxyColony) => deployedProxyColony?.isActive, }); - const deployedProxyColonies = - data?.getProxyColoniesByColonyAddress?.items || []; - const activeProxyColoniesChainIds = deployedProxyColonies - .filter((deployedProxyColony) => deployedProxyColony?.isActive) - .map((deployedProxyColony) => deployedProxyColony?.chainId); const filterFn = (chainId) => isRemoveOperation diff --git a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts index 08f70b32329..bd61cfde422 100644 --- a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts +++ b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts @@ -1,11 +1,14 @@ import { Id } from '@colony/sdk'; import { useCallback, useMemo } from 'react'; +import { useWatch } from 'react-hook-form'; import { type DeepPartial } from 'redux'; import { useColonyContext } from '~context/ColonyContext/ColonyContext.ts'; +import { useDeployedChainIds } from '~hooks/proxyColonies/useDeployedChainIds.ts'; import { ActionTypes } from '~redux'; import { mapPayload } from '~utils/actions.ts'; import { + CHAIN_FIELD_NAME, MANAGE_SUPPORTED_CHAINS_FIELD_NAME, ManageEntityOperation, } from '~v5/common/ActionSidebar/consts.ts'; @@ -19,22 +22,41 @@ import { } from './consts.ts'; import { getManageSupportedChainsPayload } from './utils.ts'; -export const useManageSupportedChainsForm = ( - getFormOptions: ActionFormBaseProps['getFormOptions'], -) => { - const { colony } = useColonyContext(); - +const useActionType = () => { const isRemoveOperation = useCheckOperationType( MANAGE_SUPPORTED_CHAINS_FIELD_NAME, ManageEntityOperation.Remove, ); + const chainId = useWatch({ name: CHAIN_FIELD_NAME }); + const disabledProxyColoniesChainIds = useDeployedChainIds({ + filterFn: (deployedProxyColony) => !deployedProxyColony?.isActive, + }); + const isChainDisabled = disabledProxyColoniesChainIds.includes( + chainId?.toString(), + ); + + if (isRemoveOperation) { + return ActionTypes.PROXY_COLONY_REMOVE; + } + + if (isChainDisabled) { + return ActionTypes.PROXY_COLONY_ENABLE; + } + + return ActionTypes.PROXY_COLONY_CREATE; +}; + +export const useManageSupportedChainsForm = ( + getFormOptions: ActionFormBaseProps['getFormOptions'], +) => { + const { colony } = useColonyContext(); + const actionType = useActionType(); + useActionFormBaseHook({ getFormOptions, validationSchema, - actionType: isRemoveOperation - ? ActionTypes.PROXY_COLONY_REMOVE - : ActionTypes.PROXY_COLONY_CREATE, + actionType, // eslint-disable-next-line react-hooks/exhaustive-deps transform: useCallback( mapPayload((values: ManageSupportedChainsFormValues) => diff --git a/src/hooks/proxyColonies/useDeployedChainIds.ts b/src/hooks/proxyColonies/useDeployedChainIds.ts new file mode 100644 index 00000000000..359c6cc25c3 --- /dev/null +++ b/src/hooks/proxyColonies/useDeployedChainIds.ts @@ -0,0 +1,24 @@ +import { useColonyContext } from '~context/ColonyContext/ColonyContext.ts'; +import { type ProxyColony, useGetProxyColoniesQuery } from '~gql'; +import { notNull } from '~utils/arrays/index.ts'; + +export const useDeployedChainIds = ({ + filterFn = notNull, +}: { + filterFn: (x: ProxyColony) => boolean; +}) => { + const { colony } = useColonyContext(); + const { data } = useGetProxyColoniesQuery({ + variables: { + colonyAddress: colony.colonyAddress, + }, + fetchPolicy: 'network-only', + }); + const deployedProxyColonies = + data?.getProxyColoniesByColonyAddress?.items || []; + const deployedChainIds = deployedProxyColonies + .filter(filterFn) + .map((deployedProxyColony) => deployedProxyColony?.chainId); + + return deployedChainIds; +}; diff --git a/src/redux/actionTypes.ts b/src/redux/actionTypes.ts index 7d34679f835..5bc3d539ecf 100644 --- a/src/redux/actionTypes.ts +++ b/src/redux/actionTypes.ts @@ -334,4 +334,7 @@ export enum ActionTypes { PROXY_COLONY_REMOVE = 'PROXY_COLONY_REMOVE', PROXY_COLONY_REMOVE_SUCCESS = 'PROXY_COLONY_REMOVE_SUCCESS', PROXY_COLONY_REMOVE_ERROR = 'PROXY_COLONY_REMOVE_ERROR', + PROXY_COLONY_ENABLE = 'PROXY_COLONY_ENABLE', + PROXY_COLONY_ENABLE_SUCCESS = 'PROXY_COLONY_ENABLE_SUCCESS', + PROXY_COLONY_ENABLE_ERROR = 'PROXY_COLONY_ENABLE_ERROR', } diff --git a/src/redux/sagas/proxyColonies/enableProxyColony.ts b/src/redux/sagas/proxyColonies/enableProxyColony.ts new file mode 100644 index 00000000000..2876e0ec631 --- /dev/null +++ b/src/redux/sagas/proxyColonies/enableProxyColony.ts @@ -0,0 +1,132 @@ +import { ClientType } from '@colony/colony-js'; +import { fork, put, takeEvery } from 'redux-saga/effects'; + +import { type Action, ActionTypes, type AllActions } from '~redux'; +import { transactionSetParams } from '~state/transactionState.ts'; +import { TRANSACTION_METHODS } from '~types/transactions.ts'; +import { takeFrom } from '~utils/saga/effects.ts'; + +import { + createTransaction, + createTransactionChannels, + waitForTxResult, +} from '../transactions/createTransaction.ts'; +import { + createActionMetadataInDB, + initiateTransaction, + putError, + uploadAnnotation, +} from '../utils/index.ts'; +import { getEnableProxyColonyOperation } from '../utils/metadataDelta.ts'; + +export type EnableProxyColonyPayload = + Action['payload']; + +// @TODO if metatx are enabled sent a metaTx instead of tx +function* enableProxyColonyAction({ + payload: { + colonyAddress, + foreignChainId, + customActionTitle, + annotationMessage, + }, + meta: { id: metaId, setTxHash }, + meta, +}: Action) { + const batchKey = TRANSACTION_METHODS.CreateProxyColony; + + const { enableProxyColony, annotateEnableProxyColony } = + yield createTransactionChannels(metaId, [ + 'enableProxyColony', + 'annotateEnableProxyColony', + ]); + + if (!colonyAddress) { + throw new Error( + 'No colony address set for enableProxyColonyAction transaction', + ); + } + + try { + yield fork(createTransaction, enableProxyColony.id, { + context: ClientType.ColonyClient, + methodName: 'editColonyByDelta', + identifier: colonyAddress, + params: [], + group: { + key: batchKey, + id: metaId, + index: 0, + }, + ready: false, + }); + + if (annotationMessage) { + yield fork(createTransaction, annotateEnableProxyColony.id, { + context: ClientType.ColonyClient, + methodName: 'annotateTransaction', + identifier: colonyAddress, + params: [], + group: { + key: batchKey, + id: metaId, + index: 1, + }, + ready: false, + }); + } + + yield takeFrom(enableProxyColony.channel, ActionTypes.TRANSACTION_CREATED); + if (annotationMessage) { + yield takeFrom( + annotateEnableProxyColony.channel, + ActionTypes.TRANSACTION_CREATED, + ); + } + + yield transactionSetParams(enableProxyColony.id, [ + JSON.stringify( + getEnableProxyColonyOperation([foreignChainId.toString()]), + ), + ]); + + yield initiateTransaction(enableProxyColony.id); + + const { + payload: { + receipt: { transactionHash: txHash }, + }, + } = yield waitForTxResult(enableProxyColony.channel); + + // eslint-disable-next-line no-console + console.log('PROXY COLONY ENABLE TXHASH', txHash, customActionTitle); + + yield createActionMetadataInDB(txHash, customActionTitle); + + if (annotationMessage) { + yield uploadAnnotation({ + txChannel: annotateEnableProxyColony, + message: annotationMessage, + txHash, + }); + } + + setTxHash?.(txHash); + + yield put({ + type: ActionTypes.PROXY_COLONY_ENABLE_SUCCESS, + payload: {}, + meta, + }); + } catch (error) { + yield putError(ActionTypes.PROXY_COLONY_ENABLE_ERROR, error, meta); + } finally { + [enableProxyColony, annotateEnableProxyColony].forEach((channel) => + channel.channel.close(), + ); + } +} + +export default function* enableProxyColonySaga() { + yield takeEvery(ActionTypes.PROXY_COLONY_ENABLE, enableProxyColonyAction); +} diff --git a/src/redux/sagas/proxyColonies/index.ts b/src/redux/sagas/proxyColonies/index.ts index 7ec683accf9..2ec60dca6d1 100644 --- a/src/redux/sagas/proxyColonies/index.ts +++ b/src/redux/sagas/proxyColonies/index.ts @@ -2,7 +2,12 @@ import { all, call } from 'redux-saga/effects'; import createProxyColonySaga from './createProxyColony.ts'; import disableProxyColonySaga from './disableProxyColony.ts'; +import enableProxyColonySaga from './enableProxyColony.ts'; export default function* proxyColonySagas() { - yield all([call(createProxyColonySaga), call(disableProxyColonySaga)]); + yield all([ + call(createProxyColonySaga), + call(enableProxyColonySaga), + call(disableProxyColonySaga), + ]); } diff --git a/src/redux/sagas/utils/metadataDelta.ts b/src/redux/sagas/utils/metadataDelta.ts index b5a46d7db1a..47f8e00bce6 100644 --- a/src/redux/sagas/utils/metadataDelta.ts +++ b/src/redux/sagas/utils/metadataDelta.ts @@ -3,6 +3,7 @@ enum MetadataDeltaActionType { REMOVE_VERIFIED_MEMBERS = 'REMOVE_VERIFIED_MEMBERS', MANAGE_TOKENS = 'MANAGE_TOKENS', DISABLE_PROXY_COLONY = 'DISABLE_PROXY_COLONY', + ENABLE_PROXY_COLONY = 'ENABLE_PROXY_COLONY', } type AddVerifiedMembersOperation = { @@ -25,6 +26,11 @@ type DisableProxyColonyOperation = { payload: string[] | unknown[]; }; +type EnableProxyColonyOperation = { + type: MetadataDeltaActionType.ENABLE_PROXY_COLONY; + payload: string[] | unknown[]; +}; + export type MetadataDeltaOperation = | AddVerifiedMembersOperation | RemoveVerifiedMembersOperation @@ -65,3 +71,12 @@ export const getDisableProxyColonyOperation = ( payload, }; }; + +export const getEnableProxyColonyOperation = ( + payload: string[], +): EnableProxyColonyOperation => { + return { + type: MetadataDeltaActionType.ENABLE_PROXY_COLONY, + payload, + }; +}; diff --git a/src/redux/types/actions/proxyColonies.ts b/src/redux/types/actions/proxyColonies.ts index 9c5656a71ec..410f432d0e3 100644 --- a/src/redux/types/actions/proxyColonies.ts +++ b/src/redux/types/actions/proxyColonies.ts @@ -32,4 +32,16 @@ export type ProxyColoniesActionTypes = MetaWithSetter > | ErrorActionType - | UniqueActionType; + | UniqueActionType + | UniqueActionType< + ActionTypes.PROXY_COLONY_ENABLE, + { + colonyAddress: Address; + foreignChainId: number; + annotationMessage?: string; + customActionTitle: string; + }, + MetaWithSetter + > + | ErrorActionType + | UniqueActionType; From 949af82cb0be1eff5597bc69c1e16fc8851522c4 Mon Sep 17 00:00:00 2001 From: Bassgeta Date: Tue, 7 Jan 2025 11:57:28 +0100 Subject: [PATCH 24/66] feat: create proxy colony motion --- .../api/colonycdapp/schema/schema.graphql | 1 + .../ManageSupportedChainsForm.tsx | 1 - .../forms/ManageSupportedChainsForm/hooks.ts | 9 + .../CompletedAction/CompletedAction.tsx | 2 + src/constants/actions.ts | 1 + src/graphql/generated.ts | 1 + src/i18n/en-actions.ts | 2 + src/redux/actionTypes.ts | 3 + src/redux/sagas/motions/index.ts | 2 + .../proxyColonies/createProxyColony.ts | 189 ++++++++++++++++++ .../sagas/motions/proxyColonies/index.ts | 1 + src/redux/types/actions/motion.ts | 18 ++ 12 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 src/redux/sagas/motions/proxyColonies/createProxyColony.ts create mode 100644 src/redux/sagas/motions/proxyColonies/index.ts diff --git a/amplify/backend/api/colonycdapp/schema/schema.graphql b/amplify/backend/api/colonycdapp/schema/schema.graphql index b08661d79f4..3f483e3fb00 100644 --- a/amplify/backend/api/colonycdapp/schema/schema.graphql +++ b/amplify/backend/api/colonycdapp/schema/schema.graphql @@ -906,6 +906,7 @@ enum ColonyActionType { An action related to creating a proxy colony """ ADD_PROXY_COLONY + ADD_PROXY_COLONY_MOTION """ An action related to disabling a proxy colony """ diff --git a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx index 69da64d1c17..65003df543f 100644 --- a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx +++ b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx @@ -36,7 +36,6 @@ const ManageSupportedChainsForm: FC = ({ const chainSelectFilterFn = useFilterChainSelectField(); const decisionMethodFilterFn = createUnsupportedDecisionMethodFilter([ DecisionMethod.MultiSig, - DecisionMethod.Reputation, ]); const isRemoveOperation = useCheckOperationType( MANAGE_SUPPORTED_CHAINS_FIELD_NAME, diff --git a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts index bd61cfde422..7045e001b81 100644 --- a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts +++ b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts @@ -6,9 +6,11 @@ import { type DeepPartial } from 'redux'; import { useColonyContext } from '~context/ColonyContext/ColonyContext.ts'; import { useDeployedChainIds } from '~hooks/proxyColonies/useDeployedChainIds.ts'; import { ActionTypes } from '~redux'; +import { DecisionMethod } from '~types/actions.ts'; import { mapPayload } from '~utils/actions.ts'; import { CHAIN_FIELD_NAME, + DECISION_METHOD_FIELD_NAME, MANAGE_SUPPORTED_CHAINS_FIELD_NAME, ManageEntityOperation, } from '~v5/common/ActionSidebar/consts.ts'; @@ -23,6 +25,9 @@ import { import { getManageSupportedChainsPayload } from './utils.ts'; const useActionType = () => { + const decisionMethod: DecisionMethod | undefined = useWatch({ + name: DECISION_METHOD_FIELD_NAME, + }); const isRemoveOperation = useCheckOperationType( MANAGE_SUPPORTED_CHAINS_FIELD_NAME, ManageEntityOperation.Remove, @@ -44,6 +49,10 @@ const useActionType = () => { return ActionTypes.PROXY_COLONY_ENABLE; } + if (decisionMethod === DecisionMethod.Reputation) { + return ActionTypes.MOTION_PROXY_COLONY_CREATE; + } + return ActionTypes.PROXY_COLONY_CREATE; }; diff --git a/src/components/v5/common/CompletedAction/CompletedAction.tsx b/src/components/v5/common/CompletedAction/CompletedAction.tsx index 1f4ed525438..afdeb1961b9 100644 --- a/src/components/v5/common/CompletedAction/CompletedAction.tsx +++ b/src/components/v5/common/CompletedAction/CompletedAction.tsx @@ -87,6 +87,7 @@ const CompletedAction = ({ action }: CompletedActionProps) => { return ; case ColonyActionType.AddProxyColony: case ColonyActionType.RemoveProxyColony: + case ColonyActionType.AddProxyColonyMotion: return ; case ColonyActionType.EmitDomainReputationReward: case ColonyActionType.EmitDomainReputationRewardMotion: @@ -156,6 +157,7 @@ const CompletedAction = ({ action }: CompletedActionProps) => { case ColonyActionType.MakeArbitraryTransactionsMotion: case ColonyActionType.EditExpenditureMotion: case ColonyActionType.FundExpenditureMotion: + case ColonyActionType.AddProxyColonyMotion: // @NOTE: Enabling expenditure-related motions above temporarily (action UI will be missing) return ; // @todo: reorganize folder structure after all of the advanced payments will be ready diff --git a/src/constants/actions.ts b/src/constants/actions.ts index 48643d299f4..9190b60e502 100644 --- a/src/constants/actions.ts +++ b/src/constants/actions.ts @@ -32,6 +32,7 @@ export const PERMISSIONS_NEEDED_FOR_ACTION = { SplitPayment: [[ColonyRole.Administration]], StagedPayment: [[ColonyRole.Administration]], ArbitraryTxs: [[ColonyRole.Root]], + ManageSupportedChains: [[ColonyRole.Root]], }; export enum Action { diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index 53eeef2881a..73d9a34f037 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -626,6 +626,7 @@ export type ColonyActionRolesInput = { export enum ColonyActionType { /** An action related to creating a proxy colony */ AddProxyColony = 'ADD_PROXY_COLONY', + AddProxyColonyMotion = 'ADD_PROXY_COLONY_MOTION', /** An action related to adding verified members */ AddVerifiedMembers = 'ADD_VERIFIED_MEMBERS', AddVerifiedMembersMotion = 'ADD_VERIFIED_MEMBERS_MOTION', diff --git a/src/i18n/en-actions.ts b/src/i18n/en-actions.ts index b59c5b2caf6..99f191d0e52 100644 --- a/src/i18n/en-actions.ts +++ b/src/i18n/en-actions.ts @@ -59,6 +59,7 @@ const actionsMessageDescriptors = { ${ColonyActionType.FundExpenditureMotion} {Payment to {recipientsNumber} {recipientsNumber, plural, one {recipient} other {recipients}} with {tokensNumber} {tokensNumber, plural, one {token} other {tokens}} by {initiator}} ${ColonyActionType.MakeArbitraryTransaction} {Custom transactions by {initiator}} ${ColonyActionType.AddProxyColony} {Add support for {chain} chain by {initiator}} + ${ColonyActionType.AddProxyColonyMotion} {Add support for {chain} chain by {initiator}} ${ColonyActionType.RemoveProxyColony} {Remove support for {chain} chain by {initiator}} ${ExtendedColonyActionType.AddSafe} {Add Safe from {chainName}} ${ExtendedColonyActionType.RemoveSafe} {Remove Safe} @@ -125,6 +126,7 @@ const actionsMessageDescriptors = { ${ColonyActionType.ManageTokensMotion} {Manage tokens} ${ColonyActionType.ManageTokensMultisig} {Manage tokens} ${ColonyActionType.AddProxyColony} {Manage supported chains} + ${ColonyActionType.AddProxyColonyMotion} {Manage supported chains} ${ColonyActionType.RemoveProxyColony} {Manage supported chains} ${ExtendedColonyActionType.StagedPayment} {Staged payment} ${ExtendedColonyActionType.AddSafe} {Add Safe} diff --git a/src/redux/actionTypes.ts b/src/redux/actionTypes.ts index 5bc3d539ecf..6507edbc358 100644 --- a/src/redux/actionTypes.ts +++ b/src/redux/actionTypes.ts @@ -181,6 +181,9 @@ export enum ActionTypes { MOTION_ARBITRARY_TRANSACTION = 'MOTION_ARBITRARY_TRANSACTION', MOTION_ARBITRARY_TRANSACTION_SUCCESS = 'MOTION_ARBITRARY_TRANSACTION_SUCCESS', MOTION_ARBITRARY_TRANSACTION_ERROR = 'MOTION_ARBITRARY_TRANSACTION_ERROR', + MOTION_PROXY_COLONY_CREATE = 'MOTION_PROXY_COLONY_CREATE ', + MOTION_PROXY_COLONY_CREATE_SUCCESS = 'MOTION_PROXY_COLONY_CREATE_SUCCESS ', + MOTION_PROXY_COLONY_CREATE_ERROR = 'MOTION_PROXY_COLONY_CREATE_ERROR', // Multisig MULTISIG_VOTE = 'MULTISIG_VOTE', diff --git a/src/redux/sagas/motions/index.ts b/src/redux/sagas/motions/index.ts index d1192b438b6..9bb9f9f5fea 100644 --- a/src/redux/sagas/motions/index.ts +++ b/src/redux/sagas/motions/index.ts @@ -24,6 +24,7 @@ import manageTokensMotionSaga from './manageTokens.ts'; import manageVerifiedMembersMotionSaga from './manageVerifiedMembers.ts'; import moveFundsMotionSaga from './moveFundsMotion.ts'; import paymentMotionSaga from './paymentMotion.ts'; +import { createProxyColonyMotionSaga } from './proxyColonies/index.ts'; import revealVoteMotionSaga from './revealVoteMotion.ts'; import rootMotionSaga from './rootMotion.ts'; import stakeMotionSaga from './stakeMotion.ts'; @@ -57,5 +58,6 @@ export default function* actionsSagas() { call(initiateSafeTransactionMotionSaga), call(manageTokensMotionSaga), call(arbitraryTxMotionSaga), + call(createProxyColonyMotionSaga), ]); } diff --git a/src/redux/sagas/motions/proxyColonies/createProxyColony.ts b/src/redux/sagas/motions/proxyColonies/createProxyColony.ts new file mode 100644 index 00000000000..c925ae4f0cd --- /dev/null +++ b/src/redux/sagas/motions/proxyColonies/createProxyColony.ts @@ -0,0 +1,189 @@ +import { ClientType, Id } from '@colony/colony-js'; +import { type CustomContract } from '@colony/sdk'; +import { AddressZero } from '@ethersproject/constants'; +import { BigNumber } from 'ethers'; +import { call, fork, put, takeEvery } from 'redux-saga/effects'; + +import { colonyAbi } from '~constants/abis.ts'; +import { type ColonyManager } from '~context/index.ts'; +import { ActionTypes } from '~redux/actionTypes.ts'; +import { + createTransaction, + createTransactionChannels, + getTxChannel, + waitForTxResult, +} from '~redux/sagas/transactions/index.ts'; +import { + putError, + takeFrom, + getColonyManager, + uploadAnnotation, + initiateTransaction, + createActionMetadataInDB, + getChildIndexLocal, +} from '~redux/sagas/utils/index.ts'; +import { type AllActions, type Action } from '~redux/types/actions/index.ts'; +import { TRANSACTION_METHODS } from '~types/transactions.ts'; + +function* createProxyColonyMotionSaga({ + payload: { + colonyAddress, + creationSalt, + foreignChainId, + customActionTitle, + annotationMessage, + colonyDomains, + }, + meta: { id: metaId, setTxHash }, + meta, +}: Action) { + let txChannel; + try { + const colonyManager: ColonyManager = yield getColonyManager(); + + const colonyClient = yield colonyManager.getClient( + ClientType.ColonyClient, + colonyAddress, + ); + + const proxyColonyContract: CustomContract = + colonyManager.getCustomContract(colonyAddress, colonyAbi); + + const encodedAction = yield proxyColonyContract + .createTxCreator('createProxyColony', [ + BigInt(foreignChainId), + creationSalt, + ] as any) + .tx() + .encode(); + + txChannel = yield call(getTxChannel, metaId); + + // setup batch ids and channels + const batchKey = TRANSACTION_METHODS.CreateMotion; + + const { createMotion, annotateRootMotion } = + yield createTransactionChannels(metaId, [ + 'createMotion', + 'annotateRootMotion', + ]); + + // eslint-disable-next-line no-inner-declarations + function* getCreateMotionParams() { + const rootDomain = colonyDomains.find((domain) => + BigNumber.from(domain.nativeId).eq(Id.RootDomain), + ); + + if (!rootDomain) { + throw new Error('Cannot find rootDomain in colony domains'); + } + + const childSkillIndex = yield call(getChildIndexLocal, { + networkClient: colonyClient.networkClient, + parentDomainNativeId: rootDomain.nativeId, + parentDomainSkillId: rootDomain.nativeSkillId, + domainNativeId: rootDomain.nativeId, + domainSkillId: rootDomain.nativeSkillId, + }); + const { skillId } = yield call( + [colonyClient, colonyClient.getDomain], + Id.RootDomain, + ); + + const { key, value, branchMask, siblings } = yield call( + colonyClient.getReputation, + skillId, + AddressZero, + ); + + return { + context: ClientType.VotingReputationClient, + methodName: 'createMotion', + identifier: colonyAddress, + params: [ + Id.RootDomain, + childSkillIndex, + AddressZero, + encodedAction, + key, + value, + branchMask, + siblings, + ], + group: { + key: batchKey, + id: metaId, + index: 0, + }, + ready: false, + }; + } + + const transactionParams = yield getCreateMotionParams(); + // create transactions + yield fork(createTransaction, createMotion.id, transactionParams); + + if (annotationMessage) { + yield fork(createTransaction, annotateRootMotion.id, { + context: ClientType.ColonyClient, + methodName: 'annotateTransaction', + identifier: colonyAddress, + params: [], + group: { + key: batchKey, + id: metaId, + index: 1, + }, + ready: false, + }); + } + + yield takeFrom(createMotion.channel, ActionTypes.TRANSACTION_CREATED); + if (annotationMessage) { + yield takeFrom( + annotateRootMotion.channel, + ActionTypes.TRANSACTION_CREATED, + ); + } + + yield initiateTransaction(createMotion.id); + + const { + payload: { + receipt: { transactionHash: txHash }, + }, + } = yield waitForTxResult(createMotion.channel); + + yield createActionMetadataInDB(txHash, customActionTitle); + + if (annotationMessage) { + yield uploadAnnotation({ + txChannel: annotateRootMotion, + message: annotationMessage, + txHash, + }); + } + + setTxHash?.(txHash); + + yield put({ + type: ActionTypes.MOTION_PROXY_COLONY_CREATE_SUCCESS, + meta, + }); + } catch (caughtError) { + yield putError( + ActionTypes.MOTION_PROXY_COLONY_CREATE_ERROR, + caughtError, + meta, + ); + } finally { + txChannel.close(); + } +} + +export default function* createProxyColonyMotion() { + yield takeEvery( + ActionTypes.MOTION_PROXY_COLONY_CREATE, + createProxyColonyMotionSaga, + ); +} diff --git a/src/redux/sagas/motions/proxyColonies/index.ts b/src/redux/sagas/motions/proxyColonies/index.ts new file mode 100644 index 00000000000..5bf853903a3 --- /dev/null +++ b/src/redux/sagas/motions/proxyColonies/index.ts @@ -0,0 +1 @@ +export { default as createProxyColonyMotionSaga } from './createProxyColony.ts'; diff --git a/src/redux/types/actions/motion.ts b/src/redux/types/actions/motion.ts index 746f057077e..dc34a23dc77 100644 --- a/src/redux/types/actions/motion.ts +++ b/src/redux/types/actions/motion.ts @@ -495,4 +495,22 @@ export type MotionActionTypes = | ActionTypeWithMeta< ActionTypes.MOTION_ARBITRARY_TRANSACTION_SUCCESS, MetaWithSetter + > + | UniqueActionType< + ActionTypes.MOTION_PROXY_COLONY_CREATE, + { + colonyAddress: Address; + customActionTitle: string; + annotationMessage?: string; + colonyRoles: ColonyRoleFragment[]; + colonyDomains: Domain[]; + foreignChainId: number; + creationSalt: string; + }, + MetaWithSetter + > + | ErrorActionType + | ActionTypeWithMeta< + ActionTypes.MOTION_PROXY_COLONY_CREATE_SUCCESS, + MetaWithSetter >; From f06d795deb964dc2fec53aefc85ee6bb7baba684 Mon Sep 17 00:00:00 2001 From: Bassgeta Date: Fri, 10 Jan 2025 16:28:32 +0100 Subject: [PATCH 25/66] feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized --- .../api/colonycdapp/schema/schema.graphql | 32 +++++++++ src/graphql/generated.ts | 70 +++++++++++++++++++ 2 files changed, 102 insertions(+) diff --git a/amplify/backend/api/colonycdapp/schema/schema.graphql b/amplify/backend/api/colonycdapp/schema/schema.graphql index 3f483e3fb00..d85c9e1cf16 100644 --- a/amplify/backend/api/colonycdapp/schema/schema.graphql +++ b/amplify/backend/api/colonycdapp/schema/schema.graphql @@ -2903,6 +2903,18 @@ type ColonyMultiSig @model { """ expenditureId: ID @index(name: "byExpenditureId", queryField: "getMultiSigByExpenditureId") + """ + The action txHash that was triggered upon motion finalization + """ + finalizationActionId: ID + @index( + name: "byFinalizationActionId" + queryField: "getColonyMultiSigByFinalizationActionId" + ) + """ + Expanded `ColonyAction` + """ + finalizationActionData: ColonyAction @hasOne(fields: ["finalizationActionId"]) } """ Represents a Motion within a Colony @@ -3038,6 +3050,18 @@ type ColonyMotion @model { the details of tokens and amounts to be funded """ expenditureFunding: [ExpenditureFundingItem!] + """ + The action txHash that was triggered upon motion finalization + """ + finalizationActionId: ID + @index( + name: "byFinalizationActionId" + queryField: "getColonyMotionByFinalizationActionId" + ) + """ + Expanded `ColonyAction` + """ + finalizationActionData: ColonyAction @hasOne(fields: ["finalizationActionId"]) } type ExpenditureFundingItem { @@ -3556,6 +3580,14 @@ type ColonyAction @model @searchable { Multichain info if the action is bridged """ multiChainInfo: MultiChainInfo + """ + The motion action txHash that this action finalized + """ + finalizedActionId: ID + """ + Expanded `ColonyAction` + """ + finalizedActionData: ColonyAction @hasOne(fields: ["finalizedActionId"]) } type MultiChainInfo { diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index 73d9a34f037..a844d6a74aa 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -469,6 +469,10 @@ export type ColonyAction = { expenditureSlotChanges?: Maybe; /** Ids of the staged payment slots released by the action, if any */ expenditureSlotIds?: Maybe>; + /** Expanded `ColonyAction` */ + finalizedActionData?: Maybe; + /** The motion action txHash that this action finalized */ + finalizedActionId?: Maybe; /** The source Domain of the action, if applicable */ fromDomain?: Maybe; /** The source Domain identifier, if applicable */ @@ -1128,6 +1132,10 @@ export type ColonyMotion = { expenditureId?: Maybe; /** Ids of the staged payment slots to be released if the motion pass, if any */ expenditureSlotIds?: Maybe>; + /** Expanded `ColonyAction` */ + finalizationActionData?: Maybe; + /** The action txHash that was triggered upon motion finalization */ + finalizationActionId?: Maybe; /** Simple flag indicating whether both sides of staking have been activated */ hasObjection: Scalars['Boolean']; /** @@ -1217,6 +1225,7 @@ export type ColonyMultiSig = { executedBy?: Maybe; /** Extended user object for given executedBy */ executedByUser?: Maybe; +<<<<<<< HEAD /** * In case of multiple funding actions in a multisig, when funding an expenditure, array containing * the details of tokens and amounts to be funded @@ -1224,6 +1233,12 @@ export type ColonyMultiSig = { expenditureFunding?: Maybe>; /** Expenditure associated with the motion, if any */ expenditureId?: Maybe; +======= + /** Expanded `ColonyAction` */ + finalizationActionData?: Maybe; + /** The action txHash that was triggered upon motion finalization */ + finalizationActionId?: Maybe; +>>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) /** Whether the underlying action completed */ hasActionCompleted: Scalars['Boolean']; /** @@ -1484,6 +1499,7 @@ export type CreateColonyActionInput = { expenditureId?: InputMaybe; expenditureSlotChanges?: InputMaybe; expenditureSlotIds?: InputMaybe>; + finalizedActionId?: InputMaybe; fromDomainId?: InputMaybe; fromPotId?: InputMaybe; id?: InputMaybe; @@ -1650,6 +1666,7 @@ export type CreateColonyMotionInput = { expenditureFunding?: InputMaybe>; expenditureId?: InputMaybe; expenditureSlotIds?: InputMaybe>; + finalizationActionId?: InputMaybe; hasObjection: Scalars['Boolean']; id?: InputMaybe; isDecision: Scalars['Boolean']; @@ -1677,8 +1694,12 @@ export type CreateColonyMultiSigInput = { createdAt?: InputMaybe; executedAt?: InputMaybe; executedBy?: InputMaybe; +<<<<<<< HEAD expenditureFunding?: InputMaybe>; expenditureId?: InputMaybe; +======= + finalizationActionId?: InputMaybe; +>>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) hasActionCompleted: Scalars['Boolean']; id?: InputMaybe; isDecision: Scalars['Boolean']; @@ -2951,6 +2972,7 @@ export type ModelColonyActionConditionInput = { createdAt?: InputMaybe; expenditureId?: InputMaybe; expenditureSlotIds?: InputMaybe; + finalizedActionId?: InputMaybe; fromDomainId?: InputMaybe; fromPotId?: InputMaybe; individualEvents?: InputMaybe; @@ -2996,6 +3018,7 @@ export type ModelColonyActionFilterInput = { createdAt?: InputMaybe; expenditureId?: InputMaybe; expenditureSlotIds?: InputMaybe; + finalizedActionId?: InputMaybe; fromDomainId?: InputMaybe; fromPotId?: InputMaybe; id?: InputMaybe; @@ -3324,6 +3347,7 @@ export type ModelColonyMotionConditionInput = { createdBy?: InputMaybe; expenditureId?: InputMaybe; expenditureSlotIds?: InputMaybe; + finalizationActionId?: InputMaybe; hasObjection?: InputMaybe; isDecision?: InputMaybe; isFinalized?: InputMaybe; @@ -3352,6 +3376,7 @@ export type ModelColonyMotionFilterInput = { createdBy?: InputMaybe; expenditureId?: InputMaybe; expenditureSlotIds?: InputMaybe; + finalizationActionId?: InputMaybe; hasObjection?: InputMaybe; id?: InputMaybe; isDecision?: InputMaybe; @@ -3376,7 +3401,11 @@ export type ModelColonyMultiSigConditionInput = { createdAt?: InputMaybe; executedAt?: InputMaybe; executedBy?: InputMaybe; +<<<<<<< HEAD expenditureId?: InputMaybe; +======= + finalizationActionId?: InputMaybe; +>>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) hasActionCompleted?: InputMaybe; isDecision?: InputMaybe; isExecuted?: InputMaybe; @@ -3404,7 +3433,11 @@ export type ModelColonyMultiSigFilterInput = { createdAt?: InputMaybe; executedAt?: InputMaybe; executedBy?: InputMaybe; +<<<<<<< HEAD expenditureId?: InputMaybe; +======= + finalizationActionId?: InputMaybe; +>>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) hasActionCompleted?: InputMaybe; id?: InputMaybe; isDecision?: InputMaybe; @@ -4316,6 +4349,7 @@ export type ModelSubscriptionColonyActionFilterInput = { createdAt?: InputMaybe; expenditureId?: InputMaybe; expenditureSlotIds?: InputMaybe; + finalizedActionId?: InputMaybe; fromDomainId?: InputMaybe; fromPotId?: InputMaybe; id?: InputMaybe; @@ -4461,6 +4495,7 @@ export type ModelSubscriptionColonyMotionFilterInput = { createdBy?: InputMaybe; expenditureId?: InputMaybe; expenditureSlotIds?: InputMaybe; + finalizationActionId?: InputMaybe; hasObjection?: InputMaybe; id?: InputMaybe; isDecision?: InputMaybe; @@ -4484,7 +4519,11 @@ export type ModelSubscriptionColonyMultiSigFilterInput = { createdAt?: InputMaybe; executedAt?: InputMaybe; executedBy?: InputMaybe; +<<<<<<< HEAD expenditureId?: InputMaybe; +======= + finalizationActionId?: InputMaybe; +>>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) hasActionCompleted?: InputMaybe; id?: InputMaybe; isDecision?: InputMaybe; @@ -6813,7 +6852,9 @@ export type Query = { getColonyMemberInvite?: Maybe; getColonyMetadata?: Maybe; getColonyMotion?: Maybe; + getColonyMotionByFinalizationActionId?: Maybe; getColonyMultiSig?: Maybe; + getColonyMultiSigByFinalizationActionId?: Maybe; getColonyRole?: Maybe; getColonyTokens?: Maybe; getContractEvent?: Maybe; @@ -7157,12 +7198,32 @@ export type QueryGetColonyMotionArgs = { }; +/** Root query type */ +export type QueryGetColonyMotionByFinalizationActionIdArgs = { + filter?: InputMaybe; + finalizationActionId: Scalars['ID']; + limit?: InputMaybe; + nextToken?: InputMaybe; + sortDirection?: InputMaybe; +}; + + /** Root query type */ export type QueryGetColonyMultiSigArgs = { id: Scalars['ID']; }; +/** Root query type */ +export type QueryGetColonyMultiSigByFinalizationActionIdArgs = { + filter?: InputMaybe; + finalizationActionId: Scalars['ID']; + limit?: InputMaybe; + nextToken?: InputMaybe; + sortDirection?: InputMaybe; +}; + + /** Root query type */ export type QueryGetColonyRoleArgs = { id: Scalars['ID']; @@ -8286,6 +8347,7 @@ export enum SearchableColonyActionAggregateField { CreatedAt = 'createdAt', ExpenditureId = 'expenditureId', ExpenditureSlotIds = 'expenditureSlotIds', + FinalizedActionId = 'finalizedActionId', FromDomainId = 'fromDomainId', FromPotId = 'fromPotId', Id = 'id', @@ -8339,6 +8401,7 @@ export type SearchableColonyActionFilterInput = { createdAt?: InputMaybe; expenditureId?: InputMaybe; expenditureSlotIds?: InputMaybe; + finalizedActionId?: InputMaybe; fromDomainId?: InputMaybe; fromPotId?: InputMaybe; id?: InputMaybe; @@ -8384,6 +8447,7 @@ export enum SearchableColonyActionSortableFields { CreatedAt = 'createdAt', ExpenditureId = 'expenditureId', ExpenditureSlotIds = 'expenditureSlotIds', + FinalizedActionId = 'finalizedActionId', FromDomainId = 'fromDomainId', FromPotId = 'fromPotId', Id = 'id', @@ -9719,6 +9783,7 @@ export type UpdateColonyActionInput = { expenditureId?: InputMaybe; expenditureSlotChanges?: InputMaybe; expenditureSlotIds?: InputMaybe>; + finalizedActionId?: InputMaybe; fromDomainId?: InputMaybe; fromPotId?: InputMaybe; id: Scalars['ID']; @@ -9863,6 +9928,7 @@ export type UpdateColonyMotionInput = { expenditureFunding?: InputMaybe>; expenditureId?: InputMaybe; expenditureSlotIds?: InputMaybe>; + finalizationActionId?: InputMaybe; hasObjection?: InputMaybe; id: Scalars['ID']; isDecision?: InputMaybe; @@ -9890,8 +9956,12 @@ export type UpdateColonyMultiSigInput = { createdAt?: InputMaybe; executedAt?: InputMaybe; executedBy?: InputMaybe; +<<<<<<< HEAD expenditureFunding?: InputMaybe>; expenditureId?: InputMaybe; +======= + finalizationActionId?: InputMaybe; +>>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) hasActionCompleted?: InputMaybe; id: Scalars['ID']; isDecision?: InputMaybe; From 79278b0cb28b13b4a2dca898b454d0cc498130d9 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Thu, 26 Dec 2024 21:26:20 +0100 Subject: [PATCH 26/66] Refactor: Search select component and usage Refactor: Search select component and usage --- .../common/ActionSidebar/ActionTypeSelect.tsx | 4 +- .../ActionSidebar/hooks/useActionsList.ts | 9 +- .../hooks/useFilterChainSelectField.ts | 6 +- .../hooks/useFilterCreatedInField.ts | 7 +- .../partials/ChainSelect/ChainSelect.tsx | 9 +- .../partials/ChainSelect/hooks.ts | 7 +- .../NonVerifiedMembersSelect.tsx | 4 +- .../TeamColorField/TeamColorField.tsx | 2 + .../partials/TeamsSelect/TeamsSelect.tsx | 4 +- .../partials/TeamsSelect/types.ts | 7 +- .../partials/UserSelect/UserSelect.tsx | 2 + .../partials/UserSelect/types.ts | 7 +- .../VerifiedMembersSelect.tsx | 4 +- .../v5/common/ActionSidebar/utils.ts | 6 +- .../v5/shared/SearchSelect/SearchSelect.tsx | 334 ++++++------------ .../v5/shared/SearchSelect/hooks.ts | 77 +++- .../AccordionWrapper/AccordionWrapper.tsx | 50 +++ .../CheckboxSearchItem/CheckboxSearchItem.tsx | 171 +++------ .../partials/CheckboxSearchItem/types.ts | 10 +- .../OptionRenderer/IconOptionRenderer.tsx | 19 + .../OptionRenderer/TeamOptionRenderer.tsx | 38 ++ .../OptionRenderer/TokenOptionRenderer.tsx | 29 ++ .../OptionRenderer/UserOptionRenderer.tsx | 32 ++ .../WithBadgesOptionRenderer.tsx | 35 ++ .../partials/SearchGroup/SearchGroup.tsx | 63 ++++ .../partials/SearchItem/SearchItem.tsx | 163 +++------ .../SearchSelect/partials/SearchItem/types.ts | 10 +- .../v5/shared/SearchSelect/types.ts | 71 +++- .../v5/shared/SearchSelect/utils.ts | 27 +- src/hooks/useTeamsOptions.ts | 5 +- 30 files changed, 699 insertions(+), 513 deletions(-) create mode 100644 src/components/v5/shared/SearchSelect/partials/AccordionWrapper/AccordionWrapper.tsx create mode 100644 src/components/v5/shared/SearchSelect/partials/OptionRenderer/IconOptionRenderer.tsx create mode 100644 src/components/v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx create mode 100644 src/components/v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx create mode 100644 src/components/v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx create mode 100644 src/components/v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx create mode 100644 src/components/v5/shared/SearchSelect/partials/SearchGroup/SearchGroup.tsx diff --git a/src/components/v5/common/ActionSidebar/ActionTypeSelect.tsx b/src/components/v5/common/ActionSidebar/ActionTypeSelect.tsx index acc5e5e5b6e..98c9ed61041 100644 --- a/src/components/v5/common/ActionSidebar/ActionTypeSelect.tsx +++ b/src/components/v5/common/ActionSidebar/ActionTypeSelect.tsx @@ -9,7 +9,8 @@ import useRelativePortalElement from '~hooks/useRelativePortalElement.ts'; import useToggle from '~hooks/useToggle/index.ts'; import { formatText } from '~utils/intl.ts'; import Modal from '~v5/shared/Modal/index.ts'; -import SearchSelect from '~v5/shared/SearchSelect/index.ts'; +import { WithBadgesOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx'; +import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import ActionFormRow from '../ActionFormRow/index.ts'; @@ -107,6 +108,7 @@ const ActionTypeSelect: FC = ({ className }) => { registerContainerRef(ref); portalElementRef.current = ref; }} + renderOption={WithBadgesOptionRenderer} items={actionsList} onSelect={(action) => { toggleSelectOff(); diff --git a/src/components/v5/common/ActionSidebar/hooks/useActionsList.ts b/src/components/v5/common/ActionSidebar/hooks/useActionsList.ts index 6b61c6fb14e..bde5c9d0989 100644 --- a/src/components/v5/common/ActionSidebar/hooks/useActionsList.ts +++ b/src/components/v5/common/ActionSidebar/hooks/useActionsList.ts @@ -4,7 +4,10 @@ import { Action } from '~constants/actions.ts'; import { useColonyContext } from '~context/ColonyContext/ColonyContext.ts'; import { useFeatureFlagsContext } from '~context/FeatureFlagsContext/FeatureFlagsContext.ts'; import useEnabledExtensions from '~hooks/useEnabledExtensions.ts'; -import { type SearchSelectOptionProps } from '~v5/shared/SearchSelect/types.ts'; +import { + type SearchSelectOptionProps, + type WithBadgesOption, +} from '~v5/shared/SearchSelect/types.ts'; const useActionsList = () => { const { colony } = useColonyContext(); @@ -19,8 +22,8 @@ const useActionsList = () => { featureFlags.SUPPORTED_CHAINS_ACTION?.isLoading || featureFlags.SUPPORTED_CHAINS_ACTION?.isEnabled; - return useMemo((): SearchSelectOptionProps[] => { - const actionsListOptions: SearchSelectOptionProps[] = [ + return useMemo((): SearchSelectOptionProps[] => { + const actionsListOptions: SearchSelectOptionProps[] = [ { key: '1', title: { id: 'actions.payments' }, diff --git a/src/components/v5/common/ActionSidebar/hooks/useFilterChainSelectField.ts b/src/components/v5/common/ActionSidebar/hooks/useFilterChainSelectField.ts index 2c35ad0c49e..2e93bfba787 100644 --- a/src/components/v5/common/ActionSidebar/hooks/useFilterChainSelectField.ts +++ b/src/components/v5/common/ActionSidebar/hooks/useFilterChainSelectField.ts @@ -1,4 +1,8 @@ import { useDeployedChainIds } from '~hooks/proxyColonies/useDeployedChainIds.ts'; +import { + type SearchSelectOption, + type IconOption, +} from '~v5/shared/SearchSelect/types.ts'; import { MANAGE_SUPPORTED_CHAINS_FIELD_NAME, @@ -17,7 +21,7 @@ export const useFilterChainSelectField = () => { filterFn: (deployedProxyColony) => deployedProxyColony?.isActive, }); - const filterFn = (chainId) => + const filterFn = ({ value: chainId }: SearchSelectOption) => isRemoveOperation ? activeProxyColoniesChainIds.includes(chainId.toString()) : !activeProxyColoniesChainIds.includes(chainId.toString()); diff --git a/src/components/v5/common/ActionSidebar/hooks/useFilterCreatedInField.ts b/src/components/v5/common/ActionSidebar/hooks/useFilterCreatedInField.ts index e615775134b..8c567148d95 100644 --- a/src/components/v5/common/ActionSidebar/hooks/useFilterCreatedInField.ts +++ b/src/components/v5/common/ActionSidebar/hooks/useFilterCreatedInField.ts @@ -3,7 +3,10 @@ import { useEffect } from 'react'; import { useFormContext } from 'react-hook-form'; import { DecisionMethod } from '~types/actions.ts'; -import { type SearchSelectOption } from '~v5/shared/SearchSelect/types.ts'; +import { + type SearchSelectOption, + type TeamOption, +} from '~v5/shared/SearchSelect/types.ts'; import { CREATED_IN_FIELD_NAME, @@ -45,7 +48,7 @@ const useFilterCreatedInField = ( } }, [onlyAllowRoot, decisionMethod, selectedTeam, setValue]); - const createdInFilterFn = (team: SearchSelectOption): boolean => { + const createdInFilterFn = (team: SearchSelectOption): boolean => { if (onlyAllowRoot) return !!team.isRoot; if (!selectedTeam) return true; diff --git a/src/components/v5/common/ActionSidebar/partials/ChainSelect/ChainSelect.tsx b/src/components/v5/common/ActionSidebar/partials/ChainSelect/ChainSelect.tsx index 425861ed116..f1ed6e64937 100644 --- a/src/components/v5/common/ActionSidebar/partials/ChainSelect/ChainSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/ChainSelect/ChainSelect.tsx @@ -7,8 +7,12 @@ import useRelativePortalElement from '~hooks/useRelativePortalElement.ts'; import useToggle from '~hooks/useToggle/index.ts'; import { formatText } from '~utils/intl.ts'; import ChainBadge from '~v5/common/Pills/ChainBadge/ChainBadge.tsx'; +import { IconOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/IconOptionRenderer.tsx'; import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; -import { type SearchSelectOption } from '~v5/shared/SearchSelect/types.ts'; +import { + type SearchSelectOption, + type IconOption, +} from '~v5/shared/SearchSelect/types.ts'; import { useChainOptions } from './hooks.ts'; @@ -18,7 +22,7 @@ interface ChainSelectProps { name: string; disabled?: boolean; readOnly?: boolean; - filterOptionsFn?: (option: SearchSelectOption) => boolean; + filterOptionsFn?: (option: SearchSelectOption) => boolean; } const ChainSelect: FC = ({ @@ -117,6 +121,7 @@ const ChainSelect: FC = ({ toggleChainSelectOff(); }} + renderOption={IconOptionRenderer} className="z-sidebar" /> )} diff --git a/src/components/v5/common/ActionSidebar/partials/ChainSelect/hooks.ts b/src/components/v5/common/ActionSidebar/partials/ChainSelect/hooks.ts index ed64657417e..93f33a829df 100644 --- a/src/components/v5/common/ActionSidebar/partials/ChainSelect/hooks.ts +++ b/src/components/v5/common/ActionSidebar/partials/ChainSelect/hooks.ts @@ -5,15 +5,12 @@ import { SUPPORTED_CHAINS } from '~constants/proxyColonies.ts'; export const useChainOptions = (filterOptionsFn) => { const chainOptions = useMemo( () => - SUPPORTED_CHAINS.filter( - (supportedChainConfig) => - filterOptionsFn && filterOptionsFn(supportedChainConfig.chainId), - ).map(({ icon, chainId, name, isDisabled }) => ({ + SUPPORTED_CHAINS.map(({ icon, chainId, name, isDisabled }) => ({ icon, isDisabled, value: chainId, label: name, - })), + })).filter((option) => filterOptionsFn && filterOptionsFn(option)), [filterOptionsFn], ); diff --git a/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx b/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx index 6bfd0591c21..4ff3f45518c 100644 --- a/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx @@ -9,7 +9,8 @@ import useRelativePortalElement from '~hooks/useRelativePortalElement.ts'; import useToggle from '~hooks/useToggle/index.ts'; import { formatText } from '~utils/intl.ts'; import Button from '~v5/shared/Button/Button.tsx'; -import SearchSelect from '~v5/shared/SearchSelect/index.ts'; +import { UserOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx'; +import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import UserAvatar from '~v5/shared/UserAvatar/index.ts'; import { useNonVerifiedMembersSelect } from './hooks.ts'; @@ -143,6 +144,7 @@ const NonVerifiedMembersSelect: FC = ({ {isUserSelectVisible && ( = ({ name, disabled }) => { toggleOffDecisionSelect(); }} isLabelVisible={false} + renderOption={TeamOptionRenderer} /> diff --git a/src/components/v5/common/ActionSidebar/partials/TeamsSelect/TeamsSelect.tsx b/src/components/v5/common/ActionSidebar/partials/TeamsSelect/TeamsSelect.tsx index c48791deefb..96cea26b0be 100644 --- a/src/components/v5/common/ActionSidebar/partials/TeamsSelect/TeamsSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/TeamsSelect/TeamsSelect.tsx @@ -8,7 +8,8 @@ import useRelativePortalElement from '~hooks/useRelativePortalElement.ts'; import useTeamsOptions from '~hooks/useTeamsOptions.ts'; import useToggle from '~hooks/useToggle/index.ts'; import TeamBadge from '~v5/common/Pills/TeamBadge/index.ts'; -import SearchSelect from '~v5/shared/SearchSelect/index.ts'; +import { TeamOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx'; +import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import { type TeamSelectProps } from './types.ts'; @@ -98,6 +99,7 @@ const TeamsSelect: FC = ({ {isTeamSelectVisible && ( { registerContainerRef(ref); portalElementRef.current = ref; diff --git a/src/components/v5/common/ActionSidebar/partials/TeamsSelect/types.ts b/src/components/v5/common/ActionSidebar/partials/TeamsSelect/types.ts index 4f882145e6a..ce60eab133f 100644 --- a/src/components/v5/common/ActionSidebar/partials/TeamsSelect/types.ts +++ b/src/components/v5/common/ActionSidebar/partials/TeamsSelect/types.ts @@ -1,8 +1,11 @@ -import { type SearchSelectOption } from '~v5/shared/SearchSelect/types.ts'; +import { + type SearchSelectOption, + type TeamOption, +} from '~v5/shared/SearchSelect/types.ts'; export interface TeamSelectProps { name: string; readonly?: boolean; - filterOptionsFn?: (option: SearchSelectOption) => boolean; + filterOptionsFn?: (option: SearchSelectOption) => boolean; disabled?: boolean; } diff --git a/src/components/v5/common/ActionSidebar/partials/UserSelect/UserSelect.tsx b/src/components/v5/common/ActionSidebar/partials/UserSelect/UserSelect.tsx index 5467f3b7e50..a19368013a0 100644 --- a/src/components/v5/common/ActionSidebar/partials/UserSelect/UserSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/UserSelect/UserSelect.tsx @@ -13,6 +13,7 @@ import Tooltip from '~shared/Extensions/Tooltip/Tooltip.tsx'; import { type User } from '~types/graphql.ts'; import { formatText } from '~utils/intl.ts'; import { splitWalletAddress } from '~utils/splitWalletAddress.ts'; +import { UserOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx'; import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import UserAvatar from '~v5/shared/UserAvatar/index.ts'; import UserInfoPopover from '~v5/shared/UserInfoPopover/UserInfoPopover.tsx'; @@ -218,6 +219,7 @@ const UserSelect: FC = ({ {selectedUserContent} {isUserSelectVisible && ( boolean; + filterOptionsFn?: (option: SearchSelectOption) => boolean; tooltipContent?: React.ReactNode; - options?: SearchSelectOptionProps & { + options?: SearchSelectOptionProps & { isLoading?: boolean; }; } // @TODO this is a temporary workaround, need to fix SearchSelect types -export interface UserSearchSelectOption extends SearchSelectOption { +export interface UserSearchSelectOption extends SearchSelectOption { label: string; } diff --git a/src/components/v5/common/ActionSidebar/partials/VerifiedMembersSelect/VerifiedMembersSelect.tsx b/src/components/v5/common/ActionSidebar/partials/VerifiedMembersSelect/VerifiedMembersSelect.tsx index 1f1dbdd0546..8d3627dfbdc 100644 --- a/src/components/v5/common/ActionSidebar/partials/VerifiedMembersSelect/VerifiedMembersSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/VerifiedMembersSelect/VerifiedMembersSelect.tsx @@ -10,7 +10,8 @@ import useRelativePortalElement from '~hooks/useRelativePortalElement.ts'; import useToggle from '~hooks/useToggle/index.ts'; import { formatText } from '~utils/intl.ts'; import Button from '~v5/shared/Button/Button.tsx'; -import SearchSelect from '~v5/shared/SearchSelect/index.ts'; +import { UserOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx'; +import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import UserAvatar from '~v5/shared/UserAvatar/index.ts'; import { useVerifiedMembersSelect } from './hooks.ts'; @@ -149,6 +150,7 @@ const VerifiedMembersSelect: FC = ({ {isUserSelectVisible && ( { const actionName = action diff --git a/src/components/v5/shared/SearchSelect/SearchSelect.tsx b/src/components/v5/shared/SearchSelect/SearchSelect.tsx index 37759746b98..dbc67bb0e8d 100644 --- a/src/components/v5/shared/SearchSelect/SearchSelect.tsx +++ b/src/components/v5/shared/SearchSelect/SearchSelect.tsx @@ -1,243 +1,129 @@ -import { Binoculars, CaretDown, CaretUp } from '@phosphor-icons/react'; +import { Binoculars } from '@phosphor-icons/react'; import clsx from 'clsx'; -import { AnimatePresence, motion } from 'framer-motion'; -import debounce from 'lodash/debounce'; -import React, { - type FC, - useCallback, - useEffect, - useMemo, - useState, -} from 'react'; +import React, { type FC } from 'react'; -import { accordionAnimation } from '~constants/accordionAnimation.ts'; import { useMobile } from '~hooks/index.ts'; import { SpinnerLoader } from '~shared/Preloaders/index.ts'; import { formatText } from '~utils/intl.ts'; import EmptyContent from '~v5/common/EmptyContent/index.ts'; +import MenuContainer from '~v5/shared/MenuContainer/index.ts'; import Portal from '~v5/shared/Portal/index.ts'; -import MenuContainer from '../MenuContainer/index.ts'; - -import { useSearchSelect } from './hooks.ts'; -import CheckboxSearchItem from './partials/CheckboxSearchItem/index.ts'; +import { useAccordion, useFilterItems, useSearch } from './hooks.ts'; +import { SearchGroup } from './partials/SearchGroup/SearchGroup.tsx'; import SearchInput from './partials/SearchInput/index.ts'; -import SearchItem from './partials/SearchItem/index.ts'; import { type SearchSelectProps } from './types.ts'; const displayName = 'v5.SearchSelect'; -const SearchSelect = React.forwardRef( - ( - { - items, - onSelect, - isLoading, - hideSearchOnMobile, - onSearch, - showEmptyContent = true, - state, - message, - checkboxesList, - additionalButtons, - className, - placeholder, - shouldReturnAddresses = false, - }, - ref, - ) => { - const [searchValue, setSearchValue] = useState(''); - const [debouncedSearchValue, setDebouncedSearchValue] = useState(''); - const isMobile = useMobile(); - const filteredList = useSearchSelect( - items, - debouncedSearchValue, - shouldReturnAddresses, - ); - - useEffect(() => { - const debounceTimeout = setTimeout(() => { - setDebouncedSearchValue(searchValue); - }, 500); - - return () => clearTimeout(debounceTimeout); - }, [searchValue]); - - const defaultOpenedAccordions = useMemo( - () => - items.filter(({ isAccordion }) => isAccordion).map(({ key }) => key), - [items], - ); - - const [openedAccordions, setOpenedAccordions] = useState( - defaultOpenedAccordions, - ); - - const handleSearch = useMemo( - () => debounce(setDebouncedSearchValue, 500), - [setDebouncedSearchValue], - ); - - const onChange = useCallback( - (value: string) => { - onSearch?.(value); - setSearchValue(value); - if (value) { - handleSearch(value); - } else { - setDebouncedSearchValue(''); - } - }, - [handleSearch, onSearch], - ); - - const handleAccordionClick = useCallback((key: string) => { - setOpenedAccordions((prev) => { - if (prev.includes(key)) { - return prev.filter((item) => item !== key); - } - - return [...prev, key]; - }); - }, []); - - const content = ( - <> -
0 || showEmptyContent, - })} - > - {isMobile && hideSearchOnMobile ? ( -

- {formatText({ id: 'actions.selectActionType' })} -

- ) : ( - - )} -
- {isLoading && ( -
- -
+const SearchSelectInner = ( + { + items, + onSelect, + isLoading, + hideSearchOnMobile, + onSearch, + showEmptyContent = true, + state, + message, + checkboxesList, + additionalButtons, + className, + placeholder, + renderOption, + shouldReturnAddresses = false, + }: SearchSelectProps, + ref: React.ForwardedRef, +) => { + const isMobile = useMobile(); + + const { openedAccordions, onAccordionClick } = useAccordion(items); + const { searchValue, debouncedSearchValue, onChange } = useSearch( + '', + onSearch, + ); + const filteredList = useFilterItems(items, debouncedSearchValue, shouldReturnAddresses); + + const content = ( + <> +
0 || showEmptyContent, + })} + > + {isMobile && hideSearchOnMobile ? ( +

+ {formatText({ id: 'actions.selectActionType' })} +

+ ) : ( + )} - {!isLoading && ( -
-
- {filteredList.length > 0 - ? filteredList.map(({ options, title, isAccordion, key }) => - isAccordion ? ( -
-
-
- {formatText(title)} -
- -
- - {openedAccordions.includes(key) && ( - - {checkboxesList ? ( - - ) : ( - - )} - - )} - -
- ) : ( -
-
- {formatText(title)} -
- {checkboxesList ? ( - - ) : ( - - )} -
- ), - ) - : showEmptyContent && ( - - )} -
+
+ {isLoading && ( +
+ +
+ )} + {!isLoading && ( +
+
+ {filteredList.length > 0 + ? filteredList.map(({ key, ...rest }) => ( + onAccordionClick(key)} + onSelect={onSelect} + isOpen={openedAccordions.includes(key)} + renderOption={renderOption} + checkboxesList={checkboxesList} + /> + )) + : showEmptyContent && ( + + )}
+
+ )} + + ); + + return ( + + - ); - - return ( - - - {content} - {additionalButtons} - - - ); - }, -); + hasShadow + rounded="s" + ref={ref} + > + {content} + {additionalButtons} + + + ); +}; + +const SearchSelect = React.forwardRef(SearchSelectInner) as ( + props: SearchSelectProps & { ref?: React.ForwardedRef }, +) => ReturnType; (SearchSelect as FC).displayName = displayName; diff --git a/src/components/v5/shared/SearchSelect/hooks.ts b/src/components/v5/shared/SearchSelect/hooks.ts index 4f2f0e3fcb8..023d78626b5 100644 --- a/src/components/v5/shared/SearchSelect/hooks.ts +++ b/src/components/v5/shared/SearchSelect/hooks.ts @@ -1,12 +1,16 @@ import { utils } from 'ethers'; -import { useMemo } from 'react'; +import debounce from 'lodash/debounce'; +import { useMemo, useState, useEffect, useCallback } from 'react'; import { formatText } from '~utils/intl.ts'; -import { type SearchSelectOptionProps } from './types.ts'; +import { + isUserSearchSelectOption, + type SearchSelectOptionProps, +} from './types.ts'; -export const useSearchSelect = ( - items: SearchSelectOptionProps[], +export const useFilterItems = ( + items: SearchSelectOptionProps[], searchValue: string, shouldReturnAddresses: boolean, ) => { @@ -40,7 +44,11 @@ export const useSearchSelect = ( return [ { ...item.options[0], - avatar: item.options[0]?.showAvatar ? '' : undefined, + avatar: + isUserSearchSelectOption(item.options[0]) && + item.options[0]?.showAvatar + ? '' + : undefined, value: searchValue, label: searchValue, walletAddress: searchValue, @@ -66,3 +74,62 @@ export const useSearchSelect = ( return filteredOptions; }; + +export const useAccordion = (items: SearchSelectOptionProps[]) => { + const defaultOpenedAccordions = useMemo( + () => items.filter(({ isAccordion }) => isAccordion).map(({ key }) => key), + [items], + ); + + const [openedAccordions, setOpenedAccordions] = useState( + defaultOpenedAccordions, + ); + + const onAccordionClick = useCallback((key: string) => { + setOpenedAccordions((prev) => { + if (prev.includes(key)) { + return prev.filter((item) => item !== key); + } + + return [...prev, key]; + }); + }, []); + + return { openedAccordions, onAccordionClick }; +}; + +export const useSearch = ( + initialSearchValue: string, + onSearch?: (value: string) => void, +) => { + const [searchValue, setSearchValue] = useState(initialSearchValue); + const [debouncedSearchValue, setDebouncedSearchValue] = useState(''); + + useEffect(() => { + const debounceTimeout = setTimeout(() => { + setDebouncedSearchValue(searchValue); + }, 500); + + return () => clearTimeout(debounceTimeout); + }, [searchValue]); + + const handleSearch = useMemo( + () => debounce((value: string) => setDebouncedSearchValue(value), 500), + [], + ); + + const onChange = useCallback( + (value: string) => { + onSearch?.(value); + setSearchValue(value); + if (value) { + handleSearch(value); + } else { + setDebouncedSearchValue(''); + } + }, + [handleSearch, onSearch], + ); + + return { searchValue, debouncedSearchValue, onChange }; +}; diff --git a/src/components/v5/shared/SearchSelect/partials/AccordionWrapper/AccordionWrapper.tsx b/src/components/v5/shared/SearchSelect/partials/AccordionWrapper/AccordionWrapper.tsx new file mode 100644 index 00000000000..f4ff53d9eab --- /dev/null +++ b/src/components/v5/shared/SearchSelect/partials/AccordionWrapper/AccordionWrapper.tsx @@ -0,0 +1,50 @@ +import { CaretUp, CaretDown } from '@phosphor-icons/react'; +import { AnimatePresence, motion } from 'framer-motion'; +import React from 'react'; +import { type FC, type PropsWithChildren } from 'react'; + +import { accordionAnimation } from '~constants/accordionAnimation.ts'; + +interface AccordionWrapperProps extends PropsWithChildren { + title: React.ReactNode; + onClick: () => void; + isOpen?: boolean; +} + +export const AccordionWrapper: FC = ({ + title, + children, + onClick, + isOpen, +}) => { + return ( +
+
+ {title} + +
+ + {isOpen && ( + + {children} + + )} + +
+ ); +}; diff --git a/src/components/v5/shared/SearchSelect/partials/CheckboxSearchItem/CheckboxSearchItem.tsx b/src/components/v5/shared/SearchSelect/partials/CheckboxSearchItem/CheckboxSearchItem.tsx index 973b2bbc2bf..0a6f6e4ad7a 100644 --- a/src/components/v5/shared/SearchSelect/partials/CheckboxSearchItem/CheckboxSearchItem.tsx +++ b/src/components/v5/shared/SearchSelect/partials/CheckboxSearchItem/CheckboxSearchItem.tsx @@ -1,28 +1,26 @@ -import { SealCheck } from '@phosphor-icons/react'; import clsx from 'clsx'; -import React, { type FC } from 'react'; +import React from 'react'; -import { DomainColor } from '~gql'; import { useMobile } from '~hooks/index.ts'; -import { getEnumValueFromKey } from '~utils/getEnumValueFromKey.ts'; import { formatText } from '~utils/intl.ts'; -import { getTeamColor } from '~utils/teams.ts'; import Checkbox from '~v5/common/Checkbox/Checkbox.tsx'; import ExtensionsStatusBadge from '~v5/common/Pills/ExtensionStatusBadge/index.ts'; -import { sortDisabled } from '~v5/shared/SearchSelect/utils.ts'; -import { TokenAvatar } from '~v5/shared/TokenAvatar/TokenAvatar.tsx'; -import UserAvatar from '~v5/shared/UserAvatar/index.ts'; +import { + hasOptionVisualElement, + sortDisabled, +} from '~v5/shared/SearchSelect/utils.ts'; import { type CheckboxSearchItemProps } from './types.ts'; const displayName = 'v5.SearchSelect.partials.CheckboxSearchItem'; -const CheckboxSearchItem: FC = ({ +const CheckboxSearchItem = ({ options, onChange, checkboxesList, isLabelVisible = true, -}) => { + renderOption, +}: CheckboxSearchItemProps) => { const isMobile = useMobile(); return ( @@ -34,116 +32,59 @@ const CheckboxSearchItem: FC = ({ 'sm:w-[12.75rem]': !isLabelVisible && isMobile, })} > - {sortDisabled(options).map( - ({ - label, - value, - isDisabled, - avatar, - showAvatar, - color, - walletAddress = '', - token, - isVerified, - }) => { - const firstDisabledOption = options.filter( - (option) => option.isDisabled, - )[0]; - const labelText = formatText(label || ''); + {sortDisabled(options).map((option) => { + const { value, isDisabled } = option; + const firstDisabledOption = options.filter((o) => o.isDisabled)[0]; - const hasAvatar = showAvatar || !!color || !!token; - const teamColor = getTeamColor( - color ? getEnumValueFromKey(DomainColor, color) : undefined, - ); + const hasVisual = hasOptionVisualElement(option); - return ( -
  • -
  • - ); - }, - )} +
    + )} + + + + ); + })} ); }; diff --git a/src/components/v5/shared/SearchSelect/partials/CheckboxSearchItem/types.ts b/src/components/v5/shared/SearchSelect/partials/CheckboxSearchItem/types.ts index c5d204b118f..705e40773c2 100644 --- a/src/components/v5/shared/SearchSelect/partials/CheckboxSearchItem/types.ts +++ b/src/components/v5/shared/SearchSelect/partials/CheckboxSearchItem/types.ts @@ -1,8 +1,12 @@ -import { type SearchSelectOption } from '~v5/shared/SearchSelect/types.ts'; +import { + type SearchSelectOption, + type SearchSelectProps, +} from '~v5/shared/SearchSelect/types.ts'; -export interface CheckboxSearchItemProps { +export interface CheckboxSearchItemProps + extends Pick, 'renderOption'> { checkboxesList?: string[]; - options: SearchSelectOption[]; + options: SearchSelectOption[]; onChange?: (value: string | number) => void; isLabelVisible?: boolean; } diff --git a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/IconOptionRenderer.tsx b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/IconOptionRenderer.tsx new file mode 100644 index 00000000000..a9e9c0ff4f0 --- /dev/null +++ b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/IconOptionRenderer.tsx @@ -0,0 +1,19 @@ +import React from 'react'; + +import { formatText } from '~utils/intl.ts'; +import { type IconOptionRendererProps } from '~v5/shared/SearchSelect/types.ts'; + +export const IconOptionRenderer: IconOptionRendererProps = ( + option, + isLabelVisible, +) => { + const { icon: Icon, label } = option; + const labelText = formatText(label || ''); + + return ( + <> + {Icon && } + {isLabelVisible && labelText} + + ); +}; diff --git a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx new file mode 100644 index 00000000000..19cdd75cdcd --- /dev/null +++ b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx @@ -0,0 +1,38 @@ +import clsx from 'clsx'; +import React from 'react'; + +import { DomainColor } from '~gql'; +import { useMobile } from '~hooks'; +import { getEnumValueFromKey } from '~utils/getEnumValueFromKey.ts'; +import { formatText } from '~utils/intl.ts'; +import { getTeamColor } from '~utils/teams.ts'; +import { type TeamOptionRendererProps } from '~v5/shared/SearchSelect/types.ts'; + +export const TeamOptionRenderer: TeamOptionRendererProps = ( + option, + isLabelVisible, +) => { + const isMobile = useMobile(); + const { color, label } = option; + const labelText = formatText(label || ''); + const teamColor = getTeamColor( + color ? getEnumValueFromKey(DomainColor, color) : undefined, + ); + + return ( + <> + {color && !isLabelVisible && ( +
    + )} + {color && isLabelVisible && ( + + )} + {isLabelVisible && labelText} + + ); +}; diff --git a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx new file mode 100644 index 00000000000..5e0b8c227ea --- /dev/null +++ b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx @@ -0,0 +1,29 @@ +import React from 'react'; + +import { formatText } from '~utils/intl.ts'; +import { type TokenOptionRendererProps } from '~v5/shared/SearchSelect/types.ts'; +import { TokenAvatar } from '~v5/shared/TokenAvatar/TokenAvatar.tsx'; + +export const TokenOptionRenderer: TokenOptionRendererProps = ( + option, + isLabelVisible, +) => { + const { token, label } = option; + const labelText = formatText(label || ''); + + return ( + <> + {!!token && ( +
    + +
    + )} + {isLabelVisible && labelText} + + ); +}; diff --git a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx new file mode 100644 index 00000000000..9590b1c283d --- /dev/null +++ b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx @@ -0,0 +1,32 @@ +import { SealCheck } from '@phosphor-icons/react'; +import React from 'react'; + +import { formatText } from '~utils/intl.ts'; +import { type UserOptionRendererProps } from '~v5/shared/SearchSelect/types.ts'; +import UserAvatar from '~v5/shared/UserAvatar/UserAvatar.tsx'; + +export const UserOptionRenderer: UserOptionRendererProps = ( + option, + isLabelVisible, +) => { + const { showAvatar, avatar, walletAddress = '', label, isVerified } = option; + const labelText = formatText(label || ''); + + return ( + <> + {showAvatar && ( + 0 ? avatar : undefined} + userAddress={walletAddress} + size={20} + /> + )} + {isLabelVisible && labelText} + {!label && {walletAddress}} + {isVerified && ( + + )} + + ); +}; diff --git a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx new file mode 100644 index 00000000000..7c1e4eb20c5 --- /dev/null +++ b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx @@ -0,0 +1,35 @@ +import React from 'react'; + +import { formatText } from '~utils/intl.ts'; +import ExtensionsStatusBadge from '~v5/common/Pills/ExtensionStatusBadge/index.ts'; +import { type WithBadgesOptionRendererProps } from '~v5/shared/SearchSelect/types.ts'; + +export const WithBadgesOptionRenderer: WithBadgesOptionRendererProps = ( + option, + isLabelVisible, +) => { + const { label, isComingSoon, isNew } = option; + const labelText = formatText(label || ''); + + return ( + <> + {isLabelVisible && labelText} + {isComingSoon && ( +
    + +
    + )} + {isNew && ( +
    + +
    + )} + + ); +}; diff --git a/src/components/v5/shared/SearchSelect/partials/SearchGroup/SearchGroup.tsx b/src/components/v5/shared/SearchSelect/partials/SearchGroup/SearchGroup.tsx new file mode 100644 index 00000000000..76207cdd475 --- /dev/null +++ b/src/components/v5/shared/SearchSelect/partials/SearchGroup/SearchGroup.tsx @@ -0,0 +1,63 @@ +import React from 'react'; + +import { formatText } from '~utils/intl.ts'; +import { + type SearchSelectOptionProps, + type SearchSelectProps, +} from '~v5/shared/SearchSelect/types.ts'; + +import { AccordionWrapper } from '../AccordionWrapper/AccordionWrapper.tsx'; +import CheckboxSearchItem from '../CheckboxSearchItem/CheckboxSearchItem.tsx'; +import SearchItem from '../SearchItem/SearchItem.tsx'; + +type SearchGroupProps = SearchSelectOptionProps & + Pick, 'checkboxesList' | 'onSelect' | 'renderOption'> & { + onClick: () => void; + isOpen?: boolean; + }; + +export const SearchGroup = ({ + isAccordion, + options, + title: titleDescriptor, + checkboxesList, + onClick, + onSelect, + renderOption, + isOpen, +}: SearchGroupProps) => { + const title = ( +
    + {formatText(titleDescriptor)} +
    + ); + const content = checkboxesList ? ( + + ) : ( + + ); + + if (isAccordion) { + return ( + + {content} + + ); + } + + return ( +
    + {title} + {content} +
    + ); +}; diff --git a/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx b/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx index b3e30b0ce3b..f82b51957b5 100644 --- a/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx +++ b/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx @@ -1,26 +1,22 @@ -import { CircleWavyCheck } from '@phosphor-icons/react'; import clsx from 'clsx'; -import React, { type FC } from 'react'; +import React from 'react'; -import { DomainColor } from '~gql'; import { useMobile } from '~hooks/index.ts'; -import { getEnumValueFromKey } from '~utils/getEnumValueFromKey.ts'; -import { formatText } from '~utils/intl.ts'; -import { getTeamColor } from '~utils/teams.ts'; -import ExtensionsStatusBadge from '~v5/common/Pills/ExtensionStatusBadge/index.ts'; -import { sortDisabled } from '~v5/shared/SearchSelect/utils.ts'; -import { TokenAvatar } from '~v5/shared/TokenAvatar/TokenAvatar.tsx'; -import { UserAvatar } from '~v5/shared/UserAvatar/UserAvatar.tsx'; +import { + hasOptionVisualElement, + sortDisabled, +} from '~v5/shared/SearchSelect/utils.ts'; import { type SearchItemProps } from './types.ts'; const displayName = 'v5.SearchSelect.partials.SearchItem'; -const SearchItem: FC = ({ +const SearchItem = ({ options, onChange, isLabelVisible = true, -}) => { + renderOption, +}: SearchItemProps) => { const isMobile = useMobile(); return ( @@ -32,118 +28,43 @@ const SearchItem: FC = ({ 'sm:w-[12.75rem]': !isLabelVisible && isMobile, })} > - {sortDisabled(options).map( - ({ - label, - value, - isDisabled, - isComingSoon, - isNew, - icon: Icon, - avatar, - showAvatar, - color, - walletAddress = '', - token, - isVerified, - }) => { - const labelText = formatText(label || ''); + {sortDisabled(options).map((option) => { + const { value, isDisabled } = option; - const hasAvatar = showAvatar || !!color || !!token; - const teamColor = getTeamColor( - color ? getEnumValueFromKey(DomainColor, color) : undefined, - ); + const hasVisual = hasOptionVisualElement(option); - return ( -
  • + -
  • - ); - }, - )} +
    + {renderOption(option, isLabelVisible)} +
    + + + ); + })} ); }; diff --git a/src/components/v5/shared/SearchSelect/partials/SearchItem/types.ts b/src/components/v5/shared/SearchSelect/partials/SearchItem/types.ts index 6cba842a1af..80f4dd990f9 100644 --- a/src/components/v5/shared/SearchSelect/partials/SearchItem/types.ts +++ b/src/components/v5/shared/SearchSelect/partials/SearchItem/types.ts @@ -1,7 +1,11 @@ -import { type SearchSelectOption } from '~v5/shared/SearchSelect/types.ts'; +import { + type SearchSelectProps, + type SearchSelectOption, +} from '~v5/shared/SearchSelect/types.ts'; -export interface SearchItemProps { - options: SearchSelectOption[]; +export interface SearchItemProps + extends Pick, 'renderOption'> { + options: SearchSelectOption[]; onChange?: (value: string | number) => void; isLabelVisible?: boolean; } diff --git a/src/components/v5/shared/SearchSelect/types.ts b/src/components/v5/shared/SearchSelect/types.ts index e9d5ab3a38f..d5f3cb91d42 100644 --- a/src/components/v5/shared/SearchSelect/types.ts +++ b/src/components/v5/shared/SearchSelect/types.ts @@ -4,8 +4,13 @@ import { type MessageDescriptor } from 'react-intl'; import { type TokenFragment } from '~gql'; import { type BaseFieldProps } from '~v5/common/Fields/types.ts'; -export interface SearchSelectProps extends BaseFieldProps { - items: SearchSelectOptionProps[]; +export type OptionRenderer = ( + option: SearchSelectOption, + isLabelVisible?: boolean, +) => React.ReactNode; + +export interface SearchSelectProps extends BaseFieldProps { + items: SearchSelectOptionProps[]; onSelect?: (value: string) => void; isLoading?: boolean; className?: string; @@ -17,30 +22,72 @@ export interface SearchSelectProps extends BaseFieldProps { additionalButtons?: React.ReactNode; placeholder?: string; shouldReturnAddresses?: boolean; + renderOption: OptionRenderer; } -export interface SearchSelectOptionProps { +export interface SearchSelectOptionProps { key: string; title: MessageDescriptor; isAccordion?: boolean; - options: SearchSelectOption[]; + options: SearchSelectOption[]; } -export interface SearchSelectOption { - label: MessageDescriptor | string; +export type SearchSelectOption = T & { value: string | number; + label: MessageDescriptor | string; isDisabled?: boolean; +}; + +export interface WithBadgesOption { isComingSoon?: boolean; isNew?: boolean; +} + +export type WithBadgesOptionRendererProps = OptionRenderer; + +export interface UserOption { avatar?: string; - thumbnail?: string; showAvatar?: boolean; - color?: string; - icon?: Icon; walletAddress?: string; - nativeId?: number; - token?: TokenFragment; - isRoot?: boolean; isVerified?: boolean; userReputation?: string; + thumbnail?: string; +} + +export type UserOptionRendererProps = OptionRenderer; + +export interface TokenOption { + token: TokenFragment; } + +export type TokenOptionRendererProps = OptionRenderer; + +export interface TeamOption { + color?: string; + isRoot?: boolean; +} + +export type TeamOptionRendererProps = OptionRenderer; + +export interface IconOption { + icon: Icon; +} + +export type IconOptionRendererProps = OptionRenderer; + +export type AllSearchSelectOptions = + | UserOption + | TeamOption + | TokenOption + | IconOption + | WithBadgesOption; + +export const isUserSearchSelectOption = ( + option: SearchSelectOption, +): option is SearchSelectOption => { + if ('walletAddress' in option && option.walletAddress) { + return true; + } + + return false; +}; diff --git a/src/components/v5/shared/SearchSelect/utils.ts b/src/components/v5/shared/SearchSelect/utils.ts index df0b0d66235..aefc40d7546 100644 --- a/src/components/v5/shared/SearchSelect/utils.ts +++ b/src/components/v5/shared/SearchSelect/utils.ts @@ -1,8 +1,31 @@ -import { type SearchSelectOption } from './types.ts'; +import { + type IconOption, + type TeamOption, + type TokenOption, + type UserOption, + type SearchSelectOption, +} from './types.ts'; -export const sortDisabled = (options: SearchSelectOption[]) => { +export const sortDisabled = (options: SearchSelectOption[]) => { const enabled = options.filter((option) => !option.isDisabled); const disabled = options.filter((option) => option.isDisabled); return [...enabled, ...disabled]; }; + +type OptionWithVisual = UserOption | TeamOption | TokenOption | IconOption; + +export const hasOptionVisualElement = ( + option: SearchSelectOption, +): boolean => { + if ( + ('showAvatar' in option && option.showAvatar) || + ('color' in option && option.color) || + ('token' in option && !!option.token) || + ('icon' in option && !option.icon) + ) { + return true; + } + + return false; +}; diff --git a/src/hooks/useTeamsOptions.ts b/src/hooks/useTeamsOptions.ts index 9f71de76e14..c7a4a48884a 100644 --- a/src/hooks/useTeamsOptions.ts +++ b/src/hooks/useTeamsOptions.ts @@ -3,6 +3,7 @@ import { type Domain, DomainColor } from '~types/graphql.ts'; import { notNull } from '~utils/arrays/index.ts'; import { getDomainNameFallback } from '~utils/domains.ts'; import { + type TeamOption, type SearchSelectOption, type SearchSelectOptionProps, } from '~v5/shared/SearchSelect/types.ts'; @@ -23,8 +24,8 @@ const sortByReputationAndName = (a: Domain, b: Domain) => { }; const useTeamsOptions = ( - filterOptionsFn?: (option: SearchSelectOption) => boolean, -): SearchSelectOptionProps['options'] => { + filterOptionsFn?: (option: SearchSelectOption) => boolean, +): SearchSelectOptionProps['options'] => { const { colony: { domains }, } = useColonyContext(); From 907c8da6ea7aac2e6294908f205abc081f2db16d Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Fri, 27 Dec 2024 10:41:25 +0100 Subject: [PATCH 27/66] Refactor: Update TokenSearchSelect to use SearchSelect Refactor: Update TokenSearchSelect to use SearchSelect --- .../TokenSearchItem/TokenSearchItem.tsx | 54 ------ .../partials/TokenSearchItem/types.ts | 13 -- .../partials/TokenSearchItem/utils.ts | 8 - .../TokenSearchSelect/TokenSearchSelect.tsx | 181 ++++-------------- .../partials/TokenSearchSelect/hooks.ts | 27 ++- .../partials/TokenSearchSelect/types.ts | 10 +- .../partials/TokenSelect/types.ts | 7 +- .../v5/shared/SearchSelect/SearchSelect.tsx | 21 +- .../v5/shared/SearchSelect/hooks.ts | 7 + .../partials/SearchGroup/SearchGroup.tsx | 4 +- .../v5/shared/SearchSelect/types.ts | 6 +- .../TokenSelectContext/TokenSelectContext.ts | 13 +- .../TokenSelectContextProvider.tsx | 9 +- 13 files changed, 115 insertions(+), 245 deletions(-) delete mode 100644 src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/TokenSearchItem.tsx delete mode 100644 src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/types.ts delete mode 100644 src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/utils.ts diff --git a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/TokenSearchItem.tsx b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/TokenSearchItem.tsx deleted file mode 100644 index 2e5938453b2..00000000000 --- a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/TokenSearchItem.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import clsx from 'clsx'; -import React, { type FC } from 'react'; - -import { TokenAvatar } from '~v5/shared/TokenAvatar/TokenAvatar.tsx'; - -import { type TokenSearchItemProps } from './types.ts'; -import { sortDisabled } from './utils.ts'; - -const displayName = - 'v5.common.ActionsContent.partials.TokenSelect.partials.TokenSearchItem'; - -const TokenSearchItem: FC = ({ - options, - onOptionClick, -}) => ( -
      - {sortDisabled(options).map(({ label, value, isDisabled, token }) => ( -
    • - -
    • - ))} -
    -); - -TokenSearchItem.displayName = displayName; - -export default TokenSearchItem; diff --git a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/types.ts b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/types.ts deleted file mode 100644 index cd25a13ae0b..00000000000 --- a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/types.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { type TokenFragment } from '~gql'; - -export interface TokenSearchItemOption { - label: string; - value: string | number; - isDisabled?: boolean; - token?: TokenFragment; -} - -export interface TokenSearchItemProps { - options: TokenSearchItemOption[]; - onOptionClick?: (value: string | number) => void; -} diff --git a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/utils.ts b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/utils.ts deleted file mode 100644 index d2d1286e493..00000000000 --- a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/utils.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { type TokenSearchItemOption } from './types.ts'; - -export const sortDisabled = (options: TokenSearchItemOption[]) => { - const enabled = options.filter((option) => !option.isDisabled); - const disabled = options.filter((option) => option.isDisabled); - - return [...enabled, ...disabled]; -}; diff --git a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx index 8766a6ecc21..c781a953c9e 100644 --- a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx @@ -1,25 +1,11 @@ import { Binoculars, Coin } from '@phosphor-icons/react'; -import clsx from 'clsx'; -import debounce from 'lodash/debounce'; -import React, { - type FC, - useCallback, - useEffect, - useMemo, - useState, -} from 'react'; +import React, { type FC, useState } from 'react'; import { useTokenSelectContext } from '~context/TokenSelectContext/TokenSelectContext.ts'; -import { useMobile } from '~hooks/index.ts'; -import { SpinnerLoader } from '~shared/Preloaders/index.ts'; -import { formatText } from '~utils/intl.ts'; import EmptyContent from '~v5/common/EmptyContent/index.ts'; import { FieldState } from '~v5/common/Fields/consts.ts'; -import MenuContainer from '~v5/shared/MenuContainer/MenuContainer.tsx'; -import Portal from '~v5/shared/Portal/index.ts'; -import SearchInput from '~v5/shared/SearchSelect/partials/SearchInput/SearchInput.tsx'; - -import TokenSearchItem from '../TokenSearchItem/TokenSearchItem.tsx'; +import { TokenOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx'; +import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import { useSearchSelect } from './hooks.ts'; import { type TokenSearchSelectProps } from './types.ts'; @@ -45,135 +31,50 @@ const TokenSearchSelect = React.forwardRef< }, ref, ) => { - const { isLoading: isTokensListDataLoading } = useTokenSelectContext(); - - const [searchValue, setSearchValue] = useState(''); const [debouncedSearchValue, setDebouncedSearchValue] = useState(''); - const isMobile = useMobile(); - const { - filteredOptions, - loading: loadingTokenData, - suggestedOptions, - } = useSearchSelect(debouncedSearchValue, filterOptionsFn); - const hasError = state && state === FieldState.Error; - - useEffect(() => { - const debounceTimeout = setTimeout(() => { - setDebouncedSearchValue(searchValue); - }, 500); - - return () => clearTimeout(debounceTimeout); - }, [searchValue]); - - const handleSearch = useMemo( - () => debounce(setDebouncedSearchValue, 500), - [setDebouncedSearchValue], + const { isLoading: isTokensListDataLoading } = useTokenSelectContext(); + const { items, loading: loadingTokenData } = useSearchSelect( + debouncedSearchValue, + filterOptionsFn, ); - const onChange = useCallback( - (value: string) => { - onSearch?.(value); - setSearchValue(value); - if (value) { - handleSearch(value); - } else { - setDebouncedSearchValue(''); - } - }, - [handleSearch, onSearch], - ); + const handleDebouncedSearch = (value: string) => { + setDebouncedSearchValue(value); + }; return ( - - -
    - {isMobile && hideSearchOnMobile ? ( -

    - {formatText({ id: 'actions.selectActionType' })} -

    - ) : ( - - )} -
    -
    - {isLoading || isTokensListDataLoading || loadingTokenData ? ( - - ) : ( - <> - {(debouncedSearchValue && !!filteredOptions.length) || - (!debouncedSearchValue && !!suggestedOptions.length) ? ( -
    - {!debouncedSearchValue && ( -
    - {formatText({ - id: 'manageTokensTable.suggestedTokens', - })} -
    - )} - -
    - ) : ( - <> - {!hasError && ( - - )} - - )} - - )} -
    - {additionalButtons} -
    -
    + + } + /> ); }, ); diff --git a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/hooks.ts b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/hooks.ts index 50a370437a0..0d545ce54ba 100644 --- a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/hooks.ts +++ b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/hooks.ts @@ -4,12 +4,14 @@ import { useEffect, useMemo } from 'react'; import { useTokenSelectContext } from '~context/TokenSelectContext/TokenSelectContext.ts'; import { useGetTokenFromEverywhereQuery } from '~gql'; import { formatText } from '~utils/intl.ts'; - -import { type TokenSearchItemOption } from '../TokenSearchItem/types.ts'; +import { + type TokenOption, + type SearchSelectOption, +} from '~v5/shared/SearchSelect/types.ts'; export const useSearchSelect = ( searchValue: string, - filterOptionsFn?: (option: TokenSearchItemOption) => boolean, + filterOptionsFn?: (option: SearchSelectOption) => boolean, ) => { const { setOptions, options, suggestedOptions } = useTokenSelectContext(); @@ -55,7 +57,7 @@ export const useSearchSelect = ( } }, [setOptions, tokenData?.getTokenFromEverywhere?.items]); - const searchedOptions: TokenSearchItemOption[] = useMemo( + const searchedOptions: SearchSelectOption[] = useMemo( () => options.filter((option) => { const searchQuery = searchValue.toLowerCase(); @@ -89,9 +91,22 @@ export const useSearchSelect = ( [filterOptionsFn, suggestedOptions], ); + const items = useMemo(() => { + return [ + { + key: 'tokens', + title: !searchValue + ? { + id: 'manageTokensTable.suggestedTokens', + } + : undefined, + options: searchValue ? filteredOptions : filteredSuggestedOptions, + }, + ]; + }, [searchValue, filteredOptions, filteredSuggestedOptions]); + return { - filteredOptions, loading, - suggestedOptions: filteredSuggestedOptions, + items, }; }; diff --git a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/types.ts b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/types.ts index 7ae51b39ad5..7f282f592e0 100644 --- a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/types.ts +++ b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/types.ts @@ -1,11 +1,13 @@ import { type BaseFieldProps } from '~v5/common/Fields/types.ts'; - -import { type TokenSearchItemOption } from '../TokenSearchItem/types.ts'; +import { + type TokenOption, + type SearchSelectOption, +} from '~v5/shared/SearchSelect/types.ts'; export interface TokenSearchSelectOptionProps { key: string; title: string; - options: TokenSearchItemOption[]; + options: SearchSelectOption[]; } export interface TokenSearchSelectProps extends BaseFieldProps { @@ -16,5 +18,5 @@ export interface TokenSearchSelectProps extends BaseFieldProps { onSearch?: (value: string) => void; readonly?: boolean; additionalButtons?: React.ReactNode; - filterOptionsFn?: (option: TokenSearchItemOption) => boolean; + filterOptionsFn?: (option: SearchSelectOption) => boolean; } diff --git a/src/components/v5/common/ActionSidebar/partials/TokenSelect/types.ts b/src/components/v5/common/ActionSidebar/partials/TokenSelect/types.ts index 8b9f0c4fea9..e61b296d790 100644 --- a/src/components/v5/common/ActionSidebar/partials/TokenSelect/types.ts +++ b/src/components/v5/common/ActionSidebar/partials/TokenSelect/types.ts @@ -1,8 +1,11 @@ -import { type TokenSearchItemOption } from './partials/TokenSearchItem/types.ts'; +import { + type TokenOption, + type SearchSelectOption, +} from '~v5/shared/SearchSelect/types.ts'; export interface TokenSelectProps { name: string; disabled?: boolean; readOnly?: boolean; - filterOptionsFn?: (option: TokenSearchItemOption) => boolean; + filterOptionsFn?: (option: SearchSelectOption) => boolean; } diff --git a/src/components/v5/shared/SearchSelect/SearchSelect.tsx b/src/components/v5/shared/SearchSelect/SearchSelect.tsx index dbc67bb0e8d..59adfdc44e9 100644 --- a/src/components/v5/shared/SearchSelect/SearchSelect.tsx +++ b/src/components/v5/shared/SearchSelect/SearchSelect.tsx @@ -23,7 +23,9 @@ const SearchSelectInner = ( isLoading, hideSearchOnMobile, onSearch, + onDebouncedSearch, showEmptyContent = true, + emptyContent, state, message, checkboxesList, @@ -41,9 +43,20 @@ const SearchSelectInner = ( const { searchValue, debouncedSearchValue, onChange } = useSearch( '', onSearch, + onDebouncedSearch, ); const filteredList = useFilterItems(items, debouncedSearchValue, shouldReturnAddresses); + const contentFallback = + showEmptyContent && + (emptyContent || ( + + )); + const content = ( <>
    ( checkboxesList={checkboxesList} /> )) - : showEmptyContent && ( - - )} + : contentFallback}
    )} diff --git a/src/components/v5/shared/SearchSelect/hooks.ts b/src/components/v5/shared/SearchSelect/hooks.ts index 023d78626b5..d8f7405b938 100644 --- a/src/components/v5/shared/SearchSelect/hooks.ts +++ b/src/components/v5/shared/SearchSelect/hooks.ts @@ -101,6 +101,7 @@ export const useAccordion = (items: SearchSelectOptionProps[]) => { export const useSearch = ( initialSearchValue: string, onSearch?: (value: string) => void, + onDebouncedSearch?: (value: string) => void, ) => { const [searchValue, setSearchValue] = useState(initialSearchValue); const [debouncedSearchValue, setDebouncedSearchValue] = useState(''); @@ -113,6 +114,12 @@ export const useSearch = ( return () => clearTimeout(debounceTimeout); }, [searchValue]); + useEffect(() => { + onDebouncedSearch?.(debouncedSearchValue); + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [debouncedSearchValue]); + const handleSearch = useMemo( () => debounce((value: string) => setDebouncedSearchValue(value), 500), [], diff --git a/src/components/v5/shared/SearchSelect/partials/SearchGroup/SearchGroup.tsx b/src/components/v5/shared/SearchSelect/partials/SearchGroup/SearchGroup.tsx index 76207cdd475..bd105284518 100644 --- a/src/components/v5/shared/SearchSelect/partials/SearchGroup/SearchGroup.tsx +++ b/src/components/v5/shared/SearchSelect/partials/SearchGroup/SearchGroup.tsx @@ -26,11 +26,11 @@ export const SearchGroup = ({ renderOption, isOpen, }: SearchGroupProps) => { - const title = ( + const title = titleDescriptor ? (
    {formatText(titleDescriptor)}
    - ); + ) : null; const content = checkboxesList ? ( extends BaseFieldProps { className?: string; hideSearchOnMobile?: boolean; onSearch?: (value: string) => void; + onDebouncedSearch?: (value: string) => void; showEmptyContent?: boolean; + emptyContent?: React.ReactNode; readonly?: boolean; checkboxesList?: string[]; additionalButtons?: React.ReactNode; @@ -27,7 +29,7 @@ export interface SearchSelectProps extends BaseFieldProps { export interface SearchSelectOptionProps { key: string; - title: MessageDescriptor; + title?: MessageDescriptor; isAccordion?: boolean; options: SearchSelectOption[]; } @@ -57,7 +59,7 @@ export interface UserOption { export type UserOptionRendererProps = OptionRenderer; export interface TokenOption { - token: TokenFragment; + token?: TokenFragment; } export type TokenOptionRendererProps = OptionRenderer; diff --git a/src/context/TokenSelectContext/TokenSelectContext.ts b/src/context/TokenSelectContext/TokenSelectContext.ts index 68628a3f52d..386a800ef83 100644 --- a/src/context/TokenSelectContext/TokenSelectContext.ts +++ b/src/context/TokenSelectContext/TokenSelectContext.ts @@ -1,14 +1,19 @@ import { createContext, useContext } from 'react'; -import { type TokenSearchItemOption } from '~v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/types.ts'; +import { + type TokenOption, + type SearchSelectOption, +} from '~v5/shared/SearchSelect/types.ts'; export const TokenSelectContext = createContext< | { isLoading?: boolean; setIsLoading: React.Dispatch>; - setOptions: React.Dispatch>; - options: TokenSearchItemOption[]; - suggestedOptions: TokenSearchItemOption[]; + setOptions: React.Dispatch< + React.SetStateAction[]> + >; + options: SearchSelectOption[]; + suggestedOptions: SearchSelectOption[]; } | undefined >(undefined); diff --git a/src/context/TokenSelectContext/TokenSelectContextProvider.tsx b/src/context/TokenSelectContext/TokenSelectContextProvider.tsx index 762d19b9c37..a32e183faf9 100644 --- a/src/context/TokenSelectContext/TokenSelectContextProvider.tsx +++ b/src/context/TokenSelectContext/TokenSelectContextProvider.tsx @@ -8,7 +8,10 @@ import React, { import { useGetTokensListQuery } from '~gql'; import { useGetAllTokens } from '~hooks/useGetAllTokens.ts'; import { notNull } from '~utils/arrays/index.ts'; -import { type TokenSearchItemOption } from '~v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchItem/types.ts'; +import { + type TokenOption, + type SearchSelectOption, +} from '~v5/shared/SearchSelect/types.ts'; import { TokenSelectContext } from './TokenSelectContext.ts'; @@ -56,7 +59,7 @@ const TokenSelectContextProvider: FC = ({ children }) => { [tokensListData], ); - const suggestedOptions: TokenSearchItemOption[] = predefinedTokens + const suggestedOptions: SearchSelectOption[] = predefinedTokens .filter((token, index, self) => { return ( index === self.findIndex((t) => t.tokenAddress === token.tokenAddress) @@ -68,7 +71,7 @@ const TokenSelectContextProvider: FC = ({ children }) => { token: item, })); - const allTokensOptions: TokenSearchItemOption[] = [ + const allTokensOptions: SearchSelectOption[] = [ ...(allTokens.flatMap(({ token }) => token).filter(notNull) ?? []), ].map((item) => ({ label: item.name, From aecfc02ffa572c54b7c2b160e45d2fef6fc6238f Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Fri, 27 Dec 2024 10:59:50 +0100 Subject: [PATCH 28/66] Refactor: Rename search select option renderers and pass isMobile prop Refactor: Rename search select option renderers and pass isMobile prop --- src/components/v5/common/ActionSidebar/ActionTypeSelect.tsx | 4 ++-- .../ActionSidebar/partials/ChainSelect/ChainSelect.tsx | 4 ++-- .../NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx | 4 ++-- .../ActionSidebar/partials/TeamColorField/TeamColorField.tsx | 4 ++-- .../ActionSidebar/partials/TeamsSelect/TeamsSelect.tsx | 4 ++-- .../partials/TokenSearchSelect/TokenSearchSelect.tsx | 4 ++-- .../common/ActionSidebar/partials/UserSelect/UserSelect.tsx | 4 ++-- .../partials/VerifiedMembersSelect/VerifiedMembersSelect.tsx | 4 ++-- .../partials/OptionRenderer/IconOptionRenderer.tsx | 2 +- .../partials/OptionRenderer/TeamOptionRenderer.tsx | 5 ++--- .../partials/OptionRenderer/TokenOptionRenderer.tsx | 2 +- .../partials/OptionRenderer/UserOptionRenderer.tsx | 2 +- .../partials/OptionRenderer/WithBadgesOptionRenderer.tsx | 2 +- .../shared/SearchSelect/partials/SearchItem/SearchItem.tsx | 2 +- src/components/v5/shared/SearchSelect/types.ts | 1 + 15 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/components/v5/common/ActionSidebar/ActionTypeSelect.tsx b/src/components/v5/common/ActionSidebar/ActionTypeSelect.tsx index 98c9ed61041..b88cacb67db 100644 --- a/src/components/v5/common/ActionSidebar/ActionTypeSelect.tsx +++ b/src/components/v5/common/ActionSidebar/ActionTypeSelect.tsx @@ -9,7 +9,7 @@ import useRelativePortalElement from '~hooks/useRelativePortalElement.ts'; import useToggle from '~hooks/useToggle/index.ts'; import { formatText } from '~utils/intl.ts'; import Modal from '~v5/shared/Modal/index.ts'; -import { WithBadgesOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx'; +import { renderWithBadgesOption } from '~v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx'; import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import ActionFormRow from '../ActionFormRow/index.ts'; @@ -108,7 +108,7 @@ const ActionTypeSelect: FC = ({ className }) => { registerContainerRef(ref); portalElementRef.current = ref; }} - renderOption={WithBadgesOptionRenderer} + renderOption={renderWithBadgesOption} items={actionsList} onSelect={(action) => { toggleSelectOff(); diff --git a/src/components/v5/common/ActionSidebar/partials/ChainSelect/ChainSelect.tsx b/src/components/v5/common/ActionSidebar/partials/ChainSelect/ChainSelect.tsx index f1ed6e64937..ee30ece4043 100644 --- a/src/components/v5/common/ActionSidebar/partials/ChainSelect/ChainSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/ChainSelect/ChainSelect.tsx @@ -7,7 +7,7 @@ import useRelativePortalElement from '~hooks/useRelativePortalElement.ts'; import useToggle from '~hooks/useToggle/index.ts'; import { formatText } from '~utils/intl.ts'; import ChainBadge from '~v5/common/Pills/ChainBadge/ChainBadge.tsx'; -import { IconOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/IconOptionRenderer.tsx'; +import { renderIconOption } from '~v5/shared/SearchSelect/partials/OptionRenderer/IconOptionRenderer.tsx'; import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import { type SearchSelectOption, @@ -121,7 +121,7 @@ const ChainSelect: FC = ({ toggleChainSelectOff(); }} - renderOption={IconOptionRenderer} + renderOption={renderIconOption} className="z-sidebar" /> )} diff --git a/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx b/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx index 4ff3f45518c..1ab63f1c06b 100644 --- a/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx @@ -9,7 +9,7 @@ import useRelativePortalElement from '~hooks/useRelativePortalElement.ts'; import useToggle from '~hooks/useToggle/index.ts'; import { formatText } from '~utils/intl.ts'; import Button from '~v5/shared/Button/Button.tsx'; -import { UserOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx'; +import { renderUserOption } from '~v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx'; import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import UserAvatar from '~v5/shared/UserAvatar/index.ts'; @@ -144,7 +144,7 @@ const NonVerifiedMembersSelect: FC = ({ {isUserSelectVisible && ( = ({ name, disabled }) => { toggleOffDecisionSelect(); }} isLabelVisible={false} - renderOption={TeamOptionRenderer} + renderOption={renderTeamOption} /> diff --git a/src/components/v5/common/ActionSidebar/partials/TeamsSelect/TeamsSelect.tsx b/src/components/v5/common/ActionSidebar/partials/TeamsSelect/TeamsSelect.tsx index 96cea26b0be..dc4ec22cdf8 100644 --- a/src/components/v5/common/ActionSidebar/partials/TeamsSelect/TeamsSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/TeamsSelect/TeamsSelect.tsx @@ -8,7 +8,7 @@ import useRelativePortalElement from '~hooks/useRelativePortalElement.ts'; import useTeamsOptions from '~hooks/useTeamsOptions.ts'; import useToggle from '~hooks/useToggle/index.ts'; import TeamBadge from '~v5/common/Pills/TeamBadge/index.ts'; -import { TeamOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx'; +import { renderTeamOption } from '~v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx'; import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import { type TeamSelectProps } from './types.ts'; @@ -99,7 +99,7 @@ const TeamsSelect: FC = ({ {isTeamSelectVisible && ( { registerContainerRef(ref); portalElementRef.current = ref; diff --git a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx index c781a953c9e..52de097d4f9 100644 --- a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx @@ -4,7 +4,7 @@ import React, { type FC, useState } from 'react'; import { useTokenSelectContext } from '~context/TokenSelectContext/TokenSelectContext.ts'; import EmptyContent from '~v5/common/EmptyContent/index.ts'; import { FieldState } from '~v5/common/Fields/consts.ts'; -import { TokenOptionRenderer } from '~v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx'; +import { renderTokenOption } from '~v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx'; import SearchSelect from '~v5/shared/SearchSelect/SearchSelect.tsx'; import { useSearchSelect } from './hooks.ts'; @@ -47,7 +47,7 @@ const TokenSearchSelect = React.forwardRef< = ({ {selectedUserContent} {isUserSelectVisible && ( = ({ {isUserSelectVisible && ( { diff --git a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx index 19cdd75cdcd..d6f3eb56668 100644 --- a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx +++ b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TeamOptionRenderer.tsx @@ -2,17 +2,16 @@ import clsx from 'clsx'; import React from 'react'; import { DomainColor } from '~gql'; -import { useMobile } from '~hooks'; import { getEnumValueFromKey } from '~utils/getEnumValueFromKey.ts'; import { formatText } from '~utils/intl.ts'; import { getTeamColor } from '~utils/teams.ts'; import { type TeamOptionRendererProps } from '~v5/shared/SearchSelect/types.ts'; -export const TeamOptionRenderer: TeamOptionRendererProps = ( +export const renderTeamOption: TeamOptionRendererProps = ( option, isLabelVisible, + isMobile, ) => { - const isMobile = useMobile(); const { color, label } = option; const labelText = formatText(label || ''); const teamColor = getTeamColor( diff --git a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx index 5e0b8c227ea..2f15a962a35 100644 --- a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx +++ b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/TokenOptionRenderer.tsx @@ -4,7 +4,7 @@ import { formatText } from '~utils/intl.ts'; import { type TokenOptionRendererProps } from '~v5/shared/SearchSelect/types.ts'; import { TokenAvatar } from '~v5/shared/TokenAvatar/TokenAvatar.tsx'; -export const TokenOptionRenderer: TokenOptionRendererProps = ( +export const renderTokenOption: TokenOptionRendererProps = ( option, isLabelVisible, ) => { diff --git a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx index 9590b1c283d..7395b0f5b8b 100644 --- a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx +++ b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/UserOptionRenderer.tsx @@ -5,7 +5,7 @@ import { formatText } from '~utils/intl.ts'; import { type UserOptionRendererProps } from '~v5/shared/SearchSelect/types.ts'; import UserAvatar from '~v5/shared/UserAvatar/UserAvatar.tsx'; -export const UserOptionRenderer: UserOptionRendererProps = ( +export const renderUserOption: UserOptionRendererProps = ( option, isLabelVisible, ) => { diff --git a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx index 7c1e4eb20c5..880fdf5ec62 100644 --- a/src/components/v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx +++ b/src/components/v5/shared/SearchSelect/partials/OptionRenderer/WithBadgesOptionRenderer.tsx @@ -4,7 +4,7 @@ import { formatText } from '~utils/intl.ts'; import ExtensionsStatusBadge from '~v5/common/Pills/ExtensionStatusBadge/index.ts'; import { type WithBadgesOptionRendererProps } from '~v5/shared/SearchSelect/types.ts'; -export const WithBadgesOptionRenderer: WithBadgesOptionRendererProps = ( +export const renderWithBadgesOption: WithBadgesOptionRendererProps = ( option, isLabelVisible, ) => { diff --git a/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx b/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx index f82b51957b5..bc4883f3741 100644 --- a/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx +++ b/src/components/v5/shared/SearchSelect/partials/SearchItem/SearchItem.tsx @@ -59,7 +59,7 @@ const SearchItem = ({ }} >
    - {renderOption(option, isLabelVisible)} + {renderOption(option, isLabelVisible, isMobile)}
    diff --git a/src/components/v5/shared/SearchSelect/types.ts b/src/components/v5/shared/SearchSelect/types.ts index ab53fa77271..a52e2f92953 100644 --- a/src/components/v5/shared/SearchSelect/types.ts +++ b/src/components/v5/shared/SearchSelect/types.ts @@ -7,6 +7,7 @@ import { type BaseFieldProps } from '~v5/common/Fields/types.ts'; export type OptionRenderer = ( option: SearchSelectOption, isLabelVisible?: boolean, + isMobile?: boolean, ) => React.ReactNode; export interface SearchSelectProps extends BaseFieldProps { From edb1fe593be5014bf4738480e437903828efe849 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Wed, 8 Jan 2025 18:17:02 +0100 Subject: [PATCH 29/66] Fix: Add showSearchValueAsOption flag to SearchSelect Fix: Add showSearchValueAsOption flag to SearchSelect and refactor useFilterItems hook --- .../NonVerifiedMembersSelect.tsx | 2 +- .../TokenSearchSelect/TokenSearchSelect.tsx | 1 + .../partials/UserSelect/UserSelect.tsx | 3 +- .../VerifiedMembersSelect.tsx | 2 +- .../v5/shared/SearchSelect/SearchSelect.tsx | 4 +- .../v5/shared/SearchSelect/hooks.ts | 99 +++++++++---------- .../v5/shared/SearchSelect/types.ts | 1 + 7 files changed, 54 insertions(+), 58 deletions(-) diff --git a/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx b/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx index 1ab63f1c06b..d8083582d32 100644 --- a/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/NonVerifiedMembersSelect/NonVerifiedMembersSelect.tsx @@ -156,7 +156,7 @@ const NonVerifiedMembersSelect: FC = ({ 'left-6 right-[1.9rem] w-auto': isMobile, })} showEmptyContent - shouldReturnAddresses + showSearchValueAsOption additionalButtons={ isMobile && (
    diff --git a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx index 52de097d4f9..ba2ee79d82d 100644 --- a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx @@ -54,6 +54,7 @@ const TokenSearchSelect = React.forwardRef< onSearch={onSearch} onDebouncedSearch={handleDebouncedSearch} showEmptyContent={!hasError} + showSearchValueAsOption additionalButtons={additionalButtons} hideSearchOnMobile={hideSearchOnMobile} message={message} diff --git a/src/components/v5/common/ActionSidebar/partials/UserSelect/UserSelect.tsx b/src/components/v5/common/ActionSidebar/partials/UserSelect/UserSelect.tsx index deaa4dcb9a2..a58ed941cb6 100644 --- a/src/components/v5/common/ActionSidebar/partials/UserSelect/UserSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/UserSelect/UserSelect.tsx @@ -234,7 +234,8 @@ const UserSelect: FC = ({ }} isLoading={usersOptions.isLoading} className="z-sidebar" - shouldReturnAddresses + showEmptyContent={false} + showSearchValueAsOption /> )} diff --git a/src/components/v5/common/ActionSidebar/partials/VerifiedMembersSelect/VerifiedMembersSelect.tsx b/src/components/v5/common/ActionSidebar/partials/VerifiedMembersSelect/VerifiedMembersSelect.tsx index 0734c0886ef..b43a4a5faad 100644 --- a/src/components/v5/common/ActionSidebar/partials/VerifiedMembersSelect/VerifiedMembersSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/VerifiedMembersSelect/VerifiedMembersSelect.tsx @@ -162,7 +162,7 @@ const VerifiedMembersSelect: FC = ({ 'left-6 right-[1.9rem] w-auto': isMobile, })} showEmptyContent - shouldReturnAddresses + showSearchValueAsOption additionalButtons={ isMobile && (
    diff --git a/src/components/v5/shared/SearchSelect/SearchSelect.tsx b/src/components/v5/shared/SearchSelect/SearchSelect.tsx index 59adfdc44e9..7c54bd0bcfc 100644 --- a/src/components/v5/shared/SearchSelect/SearchSelect.tsx +++ b/src/components/v5/shared/SearchSelect/SearchSelect.tsx @@ -25,6 +25,7 @@ const SearchSelectInner = ( onSearch, onDebouncedSearch, showEmptyContent = true, + showSearchValueAsOption = false, emptyContent, state, message, @@ -33,7 +34,6 @@ const SearchSelectInner = ( className, placeholder, renderOption, - shouldReturnAddresses = false, }: SearchSelectProps, ref: React.ForwardedRef, ) => { @@ -45,7 +45,7 @@ const SearchSelectInner = ( onSearch, onDebouncedSearch, ); - const filteredList = useFilterItems(items, debouncedSearchValue, shouldReturnAddresses); + const filteredList = useFilterItems(items, debouncedSearchValue, showSearchValueAsOption); const contentFallback = showEmptyContent && diff --git a/src/components/v5/shared/SearchSelect/hooks.ts b/src/components/v5/shared/SearchSelect/hooks.ts index d8f7405b938..32bcd3dbbe8 100644 --- a/src/components/v5/shared/SearchSelect/hooks.ts +++ b/src/components/v5/shared/SearchSelect/hooks.ts @@ -12,60 +12,53 @@ import { export const useFilterItems = ( items: SearchSelectOptionProps[], searchValue: string, - shouldReturnAddresses: boolean, + showSearchValueAsOption?: boolean, ) => { - const searchedOptions = useMemo( - () => - items.map((item) => { - const filteredOptions = item.options.filter((option) => { - const searchQuery = searchValue.toLowerCase(); - const optionValue = - typeof option.value === 'string' - ? option.value.replace('-', ' ').toLowerCase() - : option.value; - const optionUserName = formatText(option.label).toLowerCase(); - - return [optionValue, optionUserName].some((value) => - value.toString().includes(searchQuery), - ); - }); - - const options = (() => { - if (filteredOptions.length > 0) { - return filteredOptions; - } - - if ( - shouldReturnAddresses && - searchValue && - utils.isHexString(searchValue) - ) { - // Return search value as an option - return [ - { - ...item.options[0], - avatar: - isUserSearchSelectOption(item.options[0]) && - item.options[0]?.showAvatar - ? '' - : undefined, - value: searchValue, - label: searchValue, - walletAddress: searchValue, - }, - ]; - } - - return []; - })(); - - return { - ...item, - options, - }; - }), - [items, searchValue, shouldReturnAddresses], - ); + const searchedOptions = useMemo(() => { + const normalizeOptionValue = (value) => + typeof value === 'string' + ? value.toLowerCase().replace('-', ' ') + : value.toString(); + + const normalizeOptionLabel = (label) => formatText(label).toLowerCase(); + + const matchesSearch = (value, searchQuery) => value.includes(searchQuery); + + const getFallbackOption = (item) => ({ + ...item.options[0], + avatar: + isUserSearchSelectOption(item.options[0]) && item.options[0].showAvatar + ? '' + : undefined, + value: searchValue, + label: searchValue, + walletAddress: searchValue, + }); + + const searchQuery = searchValue.toLowerCase(); + + return items.map((item) => { + const filteredOptions = item.options.filter((option) => + [ + normalizeOptionValue(option.value), + normalizeOptionLabel(option.label), + ].some((value) => matchesSearch(value, searchQuery)), + ); + const shouldShowFallback = + searchValue && + !filteredOptions.length && + showSearchValueAsOption && + utils.isHexString(searchValue) && + item.options[0]; + + return { + ...item, + options: shouldShowFallback + ? [getFallbackOption(item)] + : filteredOptions, + }; + }); + }, [items, searchValue, showSearchValueAsOption]); const filteredOptions = useMemo( () => searchedOptions.filter((item) => item.options.length > 0), diff --git a/src/components/v5/shared/SearchSelect/types.ts b/src/components/v5/shared/SearchSelect/types.ts index a52e2f92953..0cfd05e3800 100644 --- a/src/components/v5/shared/SearchSelect/types.ts +++ b/src/components/v5/shared/SearchSelect/types.ts @@ -19,6 +19,7 @@ export interface SearchSelectProps extends BaseFieldProps { onSearch?: (value: string) => void; onDebouncedSearch?: (value: string) => void; showEmptyContent?: boolean; + showSearchValueAsOption?: boolean; emptyContent?: React.ReactNode; readonly?: boolean; checkboxesList?: string[]; From b41f28be386227b977790c79d1028f7702b0c40e Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Mon, 13 Jan 2025 20:44:31 +0100 Subject: [PATCH 30/66] Refactor: Changes for TokenSearchSelect after review Refactor: Changes for TokenSearchSelect after review --- .../TokenSearchSelect/TokenSearchSelect.tsx | 24 +++++++--- .../partials/TokenSearchSelect/hooks.ts | 44 +++---------------- .../v5/shared/SearchSelect/SearchSelect.tsx | 11 +++-- .../v5/shared/SearchSelect/hooks.ts | 14 +----- .../v5/shared/SearchSelect/types.ts | 1 - 5 files changed, 32 insertions(+), 62 deletions(-) diff --git a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx index ba2ee79d82d..783f3b5fa06 100644 --- a/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx +++ b/src/components/v5/common/ActionSidebar/partials/TokenSelect/partials/TokenSearchSelect/TokenSearchSelect.tsx @@ -1,5 +1,6 @@ import { Binoculars, Coin } from '@phosphor-icons/react'; -import React, { type FC, useState } from 'react'; +import debounce from 'lodash/debounce'; +import React, { type FC, useCallback, useState } from 'react'; import { useTokenSelectContext } from '~context/TokenSelectContext/TokenSelectContext.ts'; import EmptyContent from '~v5/common/EmptyContent/index.ts'; @@ -39,9 +40,21 @@ const TokenSearchSelect = React.forwardRef< filterOptionsFn, ); - const handleDebouncedSearch = (value: string) => { - setDebouncedSearchValue(value); - }; + // eslint-disable-next-line react-hooks/exhaustive-deps + const handleSetDebouncedSearchValue = useCallback( + debounce((value: string) => { + setDebouncedSearchValue(value); + }, 500), + [], + ); + + const handleSearch = useCallback( + (value: string) => { + onSearch?.(value); + handleSetDebouncedSearchValue(value); + }, + [onSearch, handleSetDebouncedSearchValue], + ); return ( [] = useMemo( - () => - options.filter((option) => { - const searchQuery = searchValue.toLowerCase(); - const optionValue = - typeof option.value === 'string' - ? option.value.replace('-', ' ').toLowerCase() - : option.value; - const optionUserName = formatText(option.label).toLowerCase(); - - return [optionValue, optionUserName].some((value) => - value.toString().includes(searchQuery), - ); - }), - - [options, searchValue], - ); - - const filteredOptions = useMemo( - () => - filterOptionsFn - ? searchedOptions.filter(filterOptionsFn) - : searchedOptions, - [filterOptionsFn, searchedOptions], - ); - - const filteredSuggestedOptions = useMemo( - () => - filterOptionsFn - ? suggestedOptions.filter(filterOptionsFn) - : suggestedOptions, - [filterOptionsFn, suggestedOptions], - ); - const items = useMemo(() => { + const sourceOptions = searchValue ? options : suggestedOptions; + const filteredOptions = filterOptionsFn + ? sourceOptions.filter(filterOptionsFn) + : sourceOptions; + return [ { key: 'tokens', @@ -100,10 +70,10 @@ export const useSearchSelect = ( id: 'manageTokensTable.suggestedTokens', } : undefined, - options: searchValue ? filteredOptions : filteredSuggestedOptions, + options: filteredOptions, }, ]; - }, [searchValue, filteredOptions, filteredSuggestedOptions]); + }, [searchValue, options, suggestedOptions, filterOptionsFn]); return { loading, diff --git a/src/components/v5/shared/SearchSelect/SearchSelect.tsx b/src/components/v5/shared/SearchSelect/SearchSelect.tsx index 7c54bd0bcfc..52440a6a607 100644 --- a/src/components/v5/shared/SearchSelect/SearchSelect.tsx +++ b/src/components/v5/shared/SearchSelect/SearchSelect.tsx @@ -23,7 +23,6 @@ const SearchSelectInner = ( isLoading, hideSearchOnMobile, onSearch, - onDebouncedSearch, showEmptyContent = true, showSearchValueAsOption = false, emptyContent, @@ -40,12 +39,12 @@ const SearchSelectInner = ( const isMobile = useMobile(); const { openedAccordions, onAccordionClick } = useAccordion(items); - const { searchValue, debouncedSearchValue, onChange } = useSearch( - '', - onSearch, - onDebouncedSearch, + const { searchValue, debouncedSearchValue, onChange } = useSearch(onSearch); + const filteredList = useFilterItems( + items, + debouncedSearchValue, + showSearchValueAsOption, ); - const filteredList = useFilterItems(items, debouncedSearchValue, showSearchValueAsOption); const contentFallback = showEmptyContent && diff --git a/src/components/v5/shared/SearchSelect/hooks.ts b/src/components/v5/shared/SearchSelect/hooks.ts index 32bcd3dbbe8..9dac886120c 100644 --- a/src/components/v5/shared/SearchSelect/hooks.ts +++ b/src/components/v5/shared/SearchSelect/hooks.ts @@ -91,12 +91,8 @@ export const useAccordion = (items: SearchSelectOptionProps[]) => { return { openedAccordions, onAccordionClick }; }; -export const useSearch = ( - initialSearchValue: string, - onSearch?: (value: string) => void, - onDebouncedSearch?: (value: string) => void, -) => { - const [searchValue, setSearchValue] = useState(initialSearchValue); +export const useSearch = (onSearch?: (value: string) => void) => { + const [searchValue, setSearchValue] = useState(''); const [debouncedSearchValue, setDebouncedSearchValue] = useState(''); useEffect(() => { @@ -107,12 +103,6 @@ export const useSearch = ( return () => clearTimeout(debounceTimeout); }, [searchValue]); - useEffect(() => { - onDebouncedSearch?.(debouncedSearchValue); - - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [debouncedSearchValue]); - const handleSearch = useMemo( () => debounce((value: string) => setDebouncedSearchValue(value), 500), [], diff --git a/src/components/v5/shared/SearchSelect/types.ts b/src/components/v5/shared/SearchSelect/types.ts index 0cfd05e3800..26944f212df 100644 --- a/src/components/v5/shared/SearchSelect/types.ts +++ b/src/components/v5/shared/SearchSelect/types.ts @@ -17,7 +17,6 @@ export interface SearchSelectProps extends BaseFieldProps { className?: string; hideSearchOnMobile?: boolean; onSearch?: (value: string) => void; - onDebouncedSearch?: (value: string) => void; showEmptyContent?: boolean; showSearchValueAsOption?: boolean; emptyContent?: React.ReactNode; From 5361f8695e2b8075c50c480da062bbd7d67f735f Mon Sep 17 00:00:00 2001 From: Dave Creaser Date: Thu, 9 Jan 2025 15:35:23 +0000 Subject: [PATCH 31/66] Feat: Allow addition of proxy colonies with multisig --- .../api/colonycdapp/schema/schema.graphql | 1 + .../hooks/permissions/helpers.ts | 3 ++ .../ManageSupportedChainsForm.tsx | 7 +--- .../forms/ManageSupportedChainsForm/hooks.ts | 5 ++- .../CompletedAction/CompletedAction.tsx | 1 + src/graphql/generated.ts | 1 + src/i18n/en-actions.ts | 2 + .../proxyColonies/createProxyColony.ts | 41 +++++++++++++++++++ src/redux/types/actions/motion.ts | 1 + src/utils/multiSig/index.ts | 3 ++ 10 files changed, 58 insertions(+), 7 deletions(-) diff --git a/amplify/backend/api/colonycdapp/schema/schema.graphql b/amplify/backend/api/colonycdapp/schema/schema.graphql index d85c9e1cf16..b78bf9c6c4b 100644 --- a/amplify/backend/api/colonycdapp/schema/schema.graphql +++ b/amplify/backend/api/colonycdapp/schema/schema.graphql @@ -907,6 +907,7 @@ enum ColonyActionType { """ ADD_PROXY_COLONY ADD_PROXY_COLONY_MOTION + ADD_PROXY_COLONY_MULTISIG """ An action related to disabling a proxy colony """ diff --git a/src/components/v5/common/ActionSidebar/hooks/permissions/helpers.ts b/src/components/v5/common/ActionSidebar/hooks/permissions/helpers.ts index aecab9d9511..e4ea30c32dd 100644 --- a/src/components/v5/common/ActionSidebar/hooks/permissions/helpers.ts +++ b/src/components/v5/common/ActionSidebar/hooks/permissions/helpers.ts @@ -109,6 +109,9 @@ export const getPermissionsNeededForAction = ( case Action.ArbitraryTxs: { return PERMISSIONS_NEEDED_FOR_ACTION.ArbitraryTxs; } + case Action.ManageSupportedChains: { + return PERMISSIONS_NEEDED_FOR_ACTION.ManageSupportedChains; + } default: return undefined; diff --git a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx index 65003df543f..c0a69f1565d 100644 --- a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx +++ b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx @@ -2,7 +2,6 @@ import { Link, PlusMinus } from '@phosphor-icons/react'; import React, { type FC } from 'react'; import { useFormContext } from 'react-hook-form'; -import { DecisionMethod } from '~types/actions.ts'; import { formatText } from '~utils/intl.ts'; import ActionFormRow from '~v5/common/ActionFormRow/ActionFormRow.tsx'; import { @@ -17,7 +16,6 @@ import ChainSelect from '~v5/common/ActionSidebar/partials/ChainSelect/ChainSele import DecisionMethodField from '~v5/common/ActionSidebar/partials/DecisionMethodField/DecisionMethodField.tsx'; import Description from '~v5/common/ActionSidebar/partials/Description/Description.tsx'; import { type ActionFormBaseProps } from '~v5/common/ActionSidebar/types.ts'; -import { createUnsupportedDecisionMethodFilter } from '~v5/common/ActionSidebar/utils.ts'; import { FormCardSelect } from '~v5/common/Fields/CardSelect/index.ts'; import { getManageSupportedChainsOptions } from './consts.ts'; @@ -34,9 +32,6 @@ const ManageSupportedChainsForm: FC = ({ const { resetField } = useFormContext(); const hasNoDecisionMethods = useHasNoDecisionMethods(); const chainSelectFilterFn = useFilterChainSelectField(); - const decisionMethodFilterFn = createUnsupportedDecisionMethodFilter([ - DecisionMethod.MultiSig, - ]); const isRemoveOperation = useCheckOperationType( MANAGE_SUPPORTED_CHAINS_FIELD_NAME, ManageEntityOperation.Remove, @@ -97,7 +92,7 @@ const ManageSupportedChainsForm: FC = ({ filterOptionsFn={chainSelectFilterFn} /> - + ); diff --git a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts index 7045e001b81..b5e8be2b699 100644 --- a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts +++ b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts @@ -49,7 +49,10 @@ const useActionType = () => { return ActionTypes.PROXY_COLONY_ENABLE; } - if (decisionMethod === DecisionMethod.Reputation) { + if ( + decisionMethod === DecisionMethod.Reputation || + decisionMethod === DecisionMethod.MultiSig + ) { return ActionTypes.MOTION_PROXY_COLONY_CREATE; } diff --git a/src/components/v5/common/CompletedAction/CompletedAction.tsx b/src/components/v5/common/CompletedAction/CompletedAction.tsx index afdeb1961b9..85f1917f1f8 100644 --- a/src/components/v5/common/CompletedAction/CompletedAction.tsx +++ b/src/components/v5/common/CompletedAction/CompletedAction.tsx @@ -88,6 +88,7 @@ const CompletedAction = ({ action }: CompletedActionProps) => { case ColonyActionType.AddProxyColony: case ColonyActionType.RemoveProxyColony: case ColonyActionType.AddProxyColonyMotion: + case ColonyActionType.AddProxyColonyMultisig: return ; case ColonyActionType.EmitDomainReputationReward: case ColonyActionType.EmitDomainReputationRewardMotion: diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index a844d6a74aa..71717d37d38 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -631,6 +631,7 @@ export enum ColonyActionType { /** An action related to creating a proxy colony */ AddProxyColony = 'ADD_PROXY_COLONY', AddProxyColonyMotion = 'ADD_PROXY_COLONY_MOTION', + AddProxyColonyMultisig = 'ADD_PROXY_COLONY_MULTISIG', /** An action related to adding verified members */ AddVerifiedMembers = 'ADD_VERIFIED_MEMBERS', AddVerifiedMembersMotion = 'ADD_VERIFIED_MEMBERS_MOTION', diff --git a/src/i18n/en-actions.ts b/src/i18n/en-actions.ts index 99f191d0e52..3642f872be4 100644 --- a/src/i18n/en-actions.ts +++ b/src/i18n/en-actions.ts @@ -60,6 +60,7 @@ const actionsMessageDescriptors = { ${ColonyActionType.MakeArbitraryTransaction} {Custom transactions by {initiator}} ${ColonyActionType.AddProxyColony} {Add support for {chain} chain by {initiator}} ${ColonyActionType.AddProxyColonyMotion} {Add support for {chain} chain by {initiator}} + ${ColonyActionType.AddProxyColonyMultisig} {Add support for {chain} chain by {initiator}} ${ColonyActionType.RemoveProxyColony} {Remove support for {chain} chain by {initiator}} ${ExtendedColonyActionType.AddSafe} {Add Safe from {chainName}} ${ExtendedColonyActionType.RemoveSafe} {Remove Safe} @@ -127,6 +128,7 @@ const actionsMessageDescriptors = { ${ColonyActionType.ManageTokensMultisig} {Manage tokens} ${ColonyActionType.AddProxyColony} {Manage supported chains} ${ColonyActionType.AddProxyColonyMotion} {Manage supported chains} + ${ColonyActionType.AddProxyColonyMultisig} {Manage supported chains} ${ColonyActionType.RemoveProxyColony} {Manage supported chains} ${ExtendedColonyActionType.StagedPayment} {Staged payment} ${ExtendedColonyActionType.AddSafe} {Add Safe} diff --git a/src/redux/sagas/motions/proxyColonies/createProxyColony.ts b/src/redux/sagas/motions/proxyColonies/createProxyColony.ts index c925ae4f0cd..b9b5ad500e6 100644 --- a/src/redux/sagas/motions/proxyColonies/createProxyColony.ts +++ b/src/redux/sagas/motions/proxyColonies/createProxyColony.ts @@ -4,7 +4,9 @@ import { AddressZero } from '@ethersproject/constants'; import { BigNumber } from 'ethers'; import { call, fork, put, takeEvery } from 'redux-saga/effects'; +import { ADDRESS_ZERO } from '~constants'; import { colonyAbi } from '~constants/abis.ts'; +import { PERMISSIONS_NEEDED_FOR_ACTION } from '~constants/actions.ts'; import { type ColonyManager } from '~context/index.ts'; import { ActionTypes } from '~redux/actionTypes.ts'; import { @@ -21,6 +23,7 @@ import { initiateTransaction, createActionMetadataInDB, getChildIndexLocal, + getPermissionProofsLocal, } from '~redux/sagas/utils/index.ts'; import { type AllActions, type Action } from '~redux/types/actions/index.ts'; import { TRANSACTION_METHODS } from '~types/transactions.ts'; @@ -32,7 +35,9 @@ function* createProxyColonyMotionSaga({ foreignChainId, customActionTitle, annotationMessage, + colonyRoles, colonyDomains, + isMultiSig = false, }, meta: { id: metaId, setTxHash }, meta, @@ -70,6 +75,42 @@ function* createProxyColonyMotionSaga({ // eslint-disable-next-line no-inner-declarations function* getCreateMotionParams() { + if (isMultiSig) { + const initiatorAddress = yield colonyClient.signer.getAddress(); + + // Permission proofs for the user creating the multi-sig motion + const [, childSkillIndex] = yield call(getPermissionProofsLocal, { + networkClient: colonyClient.networkClient, + colonyRoles, + colonyDomains, + requiredDomainId: Id.RootDomain, + requiredColonyRoles: + PERMISSIONS_NEEDED_FOR_ACTION.ManageSupportedChains, + // The address of the user creating the multi-sig motion + permissionAddress: initiatorAddress, + // The user must have multi-sig permissions + isMultiSig: true, + }); + + return { + context: ClientType.MultisigPermissionsClient, + methodName: TRANSACTION_METHODS.CreateMotion, + identifier: colonyAddress, + params: [ + Id.RootDomain, + childSkillIndex, + [ADDRESS_ZERO], + [encodedAction], + ], + group: { + key: batchKey, + id: metaId, + index: 0, + }, + ready: false, + }; + } + const rootDomain = colonyDomains.find((domain) => BigNumber.from(domain.nativeId).eq(Id.RootDomain), ); diff --git a/src/redux/types/actions/motion.ts b/src/redux/types/actions/motion.ts index dc34a23dc77..a8e357535da 100644 --- a/src/redux/types/actions/motion.ts +++ b/src/redux/types/actions/motion.ts @@ -506,6 +506,7 @@ export type MotionActionTypes = colonyDomains: Domain[]; foreignChainId: number; creationSalt: string; + isMultiSig: boolean; }, MetaWithSetter > diff --git a/src/utils/multiSig/index.ts b/src/utils/multiSig/index.ts index 5c9fc30f1a4..1063b014f52 100644 --- a/src/utils/multiSig/index.ts +++ b/src/utils/multiSig/index.ts @@ -75,6 +75,9 @@ export const getRolesNeededForMultiSigAction = ({ case ColonyActionType.MakeArbitraryTransactionsMultisig: permissions = PERMISSIONS_NEEDED_FOR_ACTION.ArbitraryTxs; break; + case ColonyActionType.AddProxyColonyMultisig: + permissions = PERMISSIONS_NEEDED_FOR_ACTION.ManageSupportedChains; + break; default: permissions = undefined; break; From 45dad0337759de5f993d8a07d059de9f30eb83c8 Mon Sep 17 00:00:00 2001 From: Romeo Ledesma Date: Tue, 14 Jan 2025 22:55:39 +0800 Subject: [PATCH 32/66] feat: enable disable proxy colony via reputation --- .../api/colonycdapp/schema/schema.graphql | 1 + .../ManageSupportedChainsForm.tsx | 11 +- .../forms/ManageSupportedChainsForm/hooks.ts | 14 ++ .../CompletedAction/CompletedAction.tsx | 2 + src/graphql/generated.ts | 1 + src/i18n/en-actions.ts | 2 + src/redux/actionTypes.ts | 3 + src/redux/sagas/motions/index.ts | 6 +- .../proxyColonies/enableDisableProxyColony.ts | 199 ++++++++++++++++++ .../sagas/motions/proxyColonies/index.ts | 1 + src/redux/types/actions/motion.ts | 21 ++ 11 files changed, 259 insertions(+), 2 deletions(-) create mode 100644 src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts diff --git a/amplify/backend/api/colonycdapp/schema/schema.graphql b/amplify/backend/api/colonycdapp/schema/schema.graphql index b78bf9c6c4b..c2164af3b48 100644 --- a/amplify/backend/api/colonycdapp/schema/schema.graphql +++ b/amplify/backend/api/colonycdapp/schema/schema.graphql @@ -912,6 +912,7 @@ enum ColonyActionType { An action related to disabling a proxy colony """ REMOVE_PROXY_COLONY + REMOVE_PROXY_COLONY_MOTION } """ diff --git a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx index c0a69f1565d..91eb3ca7a6b 100644 --- a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx +++ b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx @@ -2,6 +2,7 @@ import { Link, PlusMinus } from '@phosphor-icons/react'; import React, { type FC } from 'react'; import { useFormContext } from 'react-hook-form'; +import { DecisionMethod } from '~types/actions.ts'; import { formatText } from '~utils/intl.ts'; import ActionFormRow from '~v5/common/ActionFormRow/ActionFormRow.tsx'; import { @@ -12,10 +13,13 @@ import { import useHasNoDecisionMethods from '~v5/common/ActionSidebar/hooks/permissions/useHasNoDecisionMethods.ts'; import { useCheckOperationType } from '~v5/common/ActionSidebar/hooks/useCheckOperationType.ts'; import { useFilterChainSelectField } from '~v5/common/ActionSidebar/hooks/useFilterChainSelectField.ts'; +import useFilterCreatedInField from '~v5/common/ActionSidebar/hooks/useFilterCreatedInField.ts'; import ChainSelect from '~v5/common/ActionSidebar/partials/ChainSelect/ChainSelect.tsx'; +import CreatedIn from '~v5/common/ActionSidebar/partials/CreatedIn/index.ts'; import DecisionMethodField from '~v5/common/ActionSidebar/partials/DecisionMethodField/DecisionMethodField.tsx'; import Description from '~v5/common/ActionSidebar/partials/Description/Description.tsx'; import { type ActionFormBaseProps } from '~v5/common/ActionSidebar/types.ts'; +import { createUnsupportedDecisionMethodFilter } from '~v5/common/ActionSidebar/utils.ts'; import { FormCardSelect } from '~v5/common/Fields/CardSelect/index.ts'; import { getManageSupportedChainsOptions } from './consts.ts'; @@ -32,6 +36,10 @@ const ManageSupportedChainsForm: FC = ({ const { resetField } = useFormContext(); const hasNoDecisionMethods = useHasNoDecisionMethods(); const chainSelectFilterFn = useFilterChainSelectField(); + const decisionMethodFilterFn = createUnsupportedDecisionMethodFilter([ + DecisionMethod.MultiSig, + ]); + const createdInFilterFn = useFilterCreatedInField('from'); const isRemoveOperation = useCheckOperationType( MANAGE_SUPPORTED_CHAINS_FIELD_NAME, ManageEntityOperation.Remove, @@ -92,7 +100,8 @@ const ManageSupportedChainsForm: FC = ({ filterOptionsFn={chainSelectFilterFn} /> - + + ); diff --git a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts index b5e8be2b699..f7443f3a47d 100644 --- a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts +++ b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/hooks.ts @@ -41,6 +41,20 @@ const useActionType = () => { chainId?.toString(), ); + /** + * This assumes that we only have Permissions, Reputation & Multi-Sig + * Update this once we start to support more decision methods + */ + if ( + (isRemoveOperation || isChainDisabled) && + decisionMethod !== DecisionMethod.Permissions + ) { + return ActionTypes.MOTION_PROXY_COLONY_ENABLE_DISABLE; + } + + /** + * @TODO Consider unifying the permissions saga for enabling & disabling as well + */ if (isRemoveOperation) { return ActionTypes.PROXY_COLONY_REMOVE; } diff --git a/src/components/v5/common/CompletedAction/CompletedAction.tsx b/src/components/v5/common/CompletedAction/CompletedAction.tsx index 85f1917f1f8..27fed475fa0 100644 --- a/src/components/v5/common/CompletedAction/CompletedAction.tsx +++ b/src/components/v5/common/CompletedAction/CompletedAction.tsx @@ -88,6 +88,7 @@ const CompletedAction = ({ action }: CompletedActionProps) => { case ColonyActionType.AddProxyColony: case ColonyActionType.RemoveProxyColony: case ColonyActionType.AddProxyColonyMotion: + case ColonyActionType.RemoveProxyColonyMotion: case ColonyActionType.AddProxyColonyMultisig: return ; case ColonyActionType.EmitDomainReputationReward: @@ -159,6 +160,7 @@ const CompletedAction = ({ action }: CompletedActionProps) => { case ColonyActionType.EditExpenditureMotion: case ColonyActionType.FundExpenditureMotion: case ColonyActionType.AddProxyColonyMotion: + case ColonyActionType.RemoveProxyColonyMotion: // @NOTE: Enabling expenditure-related motions above temporarily (action UI will be missing) return ; // @todo: reorganize folder structure after all of the advanced payments will be ready diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index 71717d37d38..09208871101 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -736,6 +736,7 @@ export enum ColonyActionType { ReleaseStagedPaymentsMotion = 'RELEASE_STAGED_PAYMENTS_MOTION', /** An action related to disabling a proxy colony */ RemoveProxyColony = 'REMOVE_PROXY_COLONY', + RemoveProxyColonyMotion = 'REMOVE_PROXY_COLONY_MOTION', /** An action related to removing verified members */ RemoveVerifiedMembers = 'REMOVE_VERIFIED_MEMBERS', RemoveVerifiedMembersMotion = 'REMOVE_VERIFIED_MEMBERS_MOTION', diff --git a/src/i18n/en-actions.ts b/src/i18n/en-actions.ts index 3642f872be4..d39642bf513 100644 --- a/src/i18n/en-actions.ts +++ b/src/i18n/en-actions.ts @@ -62,6 +62,7 @@ const actionsMessageDescriptors = { ${ColonyActionType.AddProxyColonyMotion} {Add support for {chain} chain by {initiator}} ${ColonyActionType.AddProxyColonyMultisig} {Add support for {chain} chain by {initiator}} ${ColonyActionType.RemoveProxyColony} {Remove support for {chain} chain by {initiator}} + ${ColonyActionType.RemoveProxyColonyMotion} {Remove support for {chain} chain by {initiator}} ${ExtendedColonyActionType.AddSafe} {Add Safe from {chainName}} ${ExtendedColonyActionType.RemoveSafe} {Remove Safe} ${ExtendedColonyActionType.SafeMultipleTransactions} ${safeActionTitle} @@ -130,6 +131,7 @@ const actionsMessageDescriptors = { ${ColonyActionType.AddProxyColonyMotion} {Manage supported chains} ${ColonyActionType.AddProxyColonyMultisig} {Manage supported chains} ${ColonyActionType.RemoveProxyColony} {Manage supported chains} + ${ColonyActionType.RemoveProxyColonyMotion} {Manage supported chains} ${ExtendedColonyActionType.StagedPayment} {Staged payment} ${ExtendedColonyActionType.AddSafe} {Add Safe} ${ExtendedColonyActionType.RemoveSafe} {Remove Safe} diff --git a/src/redux/actionTypes.ts b/src/redux/actionTypes.ts index 6507edbc358..086f0e6a50e 100644 --- a/src/redux/actionTypes.ts +++ b/src/redux/actionTypes.ts @@ -184,6 +184,9 @@ export enum ActionTypes { MOTION_PROXY_COLONY_CREATE = 'MOTION_PROXY_COLONY_CREATE ', MOTION_PROXY_COLONY_CREATE_SUCCESS = 'MOTION_PROXY_COLONY_CREATE_SUCCESS ', MOTION_PROXY_COLONY_CREATE_ERROR = 'MOTION_PROXY_COLONY_CREATE_ERROR', + MOTION_PROXY_COLONY_ENABLE_DISABLE = 'MOTION_PROXY_COLONY_ENABLE_DISABLE', + MOTION_PROXY_COLONY_ENABLE_DISABLE_SUCCESS = 'MOTION_PROXY_COLONY_ENABLE_DISABLE_SUCCESS', + MOTION_PROXY_COLONY_ENABLE_DISABLE_ERROR = 'MOTION_PROXY_COLONY_ENABLE_DISABLE_ERROR', // Multisig MULTISIG_VOTE = 'MULTISIG_VOTE', diff --git a/src/redux/sagas/motions/index.ts b/src/redux/sagas/motions/index.ts index 9bb9f9f5fea..2e7b2241b08 100644 --- a/src/redux/sagas/motions/index.ts +++ b/src/redux/sagas/motions/index.ts @@ -24,7 +24,10 @@ import manageTokensMotionSaga from './manageTokens.ts'; import manageVerifiedMembersMotionSaga from './manageVerifiedMembers.ts'; import moveFundsMotionSaga from './moveFundsMotion.ts'; import paymentMotionSaga from './paymentMotion.ts'; -import { createProxyColonyMotionSaga } from './proxyColonies/index.ts'; +import { + createProxyColonyMotionSaga, + enableDisableProxyColonyMotionSaga, +} from './proxyColonies/index.ts'; import revealVoteMotionSaga from './revealVoteMotion.ts'; import rootMotionSaga from './rootMotion.ts'; import stakeMotionSaga from './stakeMotion.ts'; @@ -59,5 +62,6 @@ export default function* actionsSagas() { call(manageTokensMotionSaga), call(arbitraryTxMotionSaga), call(createProxyColonyMotionSaga), + call(enableDisableProxyColonyMotionSaga), ]); } diff --git a/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts b/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts new file mode 100644 index 00000000000..9f9a95323ee --- /dev/null +++ b/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts @@ -0,0 +1,199 @@ +import { ClientType, Id } from '@colony/colony-js'; +import { type CustomContract } from '@colony/sdk'; +import { AddressZero } from '@ethersproject/constants'; +import { BigNumber } from 'ethers'; +import { call, fork, put, takeEvery } from 'redux-saga/effects'; + +import { colonyAbi } from '~constants/abis.ts'; +import { type ColonyManager } from '~context/index.ts'; +import { ActionTypes } from '~redux/actionTypes.ts'; +import { + createTransaction, + createTransactionChannels, + getTxChannel, + waitForTxResult, +} from '~redux/sagas/transactions/index.ts'; +import { + putError, + takeFrom, + getColonyManager, + uploadAnnotation, + initiateTransaction, + createActionMetadataInDB, + getChildIndexLocal, +} from '~redux/sagas/utils/index.ts'; +import { + getDisableProxyColonyOperation, + getEnableProxyColonyOperation, +} from '~redux/sagas/utils/metadataDelta.ts'; +import { type AllActions, type Action } from '~redux/types/actions/index.ts'; +import { TRANSACTION_METHODS } from '~types/transactions.ts'; +import { ManageEntityOperation } from '~v5/common/ActionSidebar/consts.ts'; + +function* enableDisableProxyColonyMotionSaga({ + payload: { + colonyAddress, + foreignChainId, + customActionTitle, + annotationMessage, + colonyDomains, + operation, + }, + meta: { id: metaId, setTxHash }, + meta, +}: Action) { + let txChannel; + + const isEnableOperation = operation === ManageEntityOperation.Add; + + try { + const colonyManager: ColonyManager = yield getColonyManager(); + + const colonyClient = yield colonyManager.getClient( + ClientType.ColonyClient, + colonyAddress, + ); + + const proxyColonyContract: CustomContract = + colonyManager.getCustomContract(colonyAddress, colonyAbi); + + const editColonyByDeltaOperation = isEnableOperation + ? getEnableProxyColonyOperation + : getDisableProxyColonyOperation; + + const encodedAction = yield proxyColonyContract + .createTxCreator('editColonyByDelta', [ + JSON.stringify(editColonyByDeltaOperation([foreignChainId.toString()])), + ]) + .tx() + .encode(); + + txChannel = yield call(getTxChannel, metaId); + + const batchKey = TRANSACTION_METHODS.CreateMotion; + + const { createMotion, annotateRootMotion } = + yield createTransactionChannels(metaId, [ + 'createMotion', + 'annotateRootMotion', + ]); + + // eslint-disable-next-line no-inner-declarations + function* getCreateMotionParams() { + const rootDomain = colonyDomains.find((domain) => + BigNumber.from(domain.nativeId).eq(Id.RootDomain), + ); + + if (!rootDomain) { + throw new Error('Cannot find rootDomain in colony domains'); + } + + const childSkillIndex = yield call(getChildIndexLocal, { + networkClient: colonyClient.networkClient, + parentDomainNativeId: rootDomain.nativeId, + parentDomainSkillId: rootDomain.nativeSkillId, + domainNativeId: rootDomain.nativeId, + domainSkillId: rootDomain.nativeSkillId, + }); + const { skillId } = yield call( + [colonyClient, colonyClient.getDomain], + Id.RootDomain, + ); + + const { key, value, branchMask, siblings } = yield call( + colonyClient.getReputation, + skillId, + AddressZero, + ); + + return { + context: ClientType.VotingReputationClient, + methodName: 'createMotion', + identifier: colonyAddress, + params: [ + Id.RootDomain, + childSkillIndex, + AddressZero, + encodedAction, + key, + value, + branchMask, + siblings, + ], + group: { + key: batchKey, + id: metaId, + index: 0, + }, + ready: false, + }; + } + + const transactionParams = yield getCreateMotionParams(); + + yield fork(createTransaction, createMotion.id, transactionParams); + + if (annotationMessage) { + yield fork(createTransaction, annotateRootMotion.id, { + context: ClientType.ColonyClient, + methodName: 'annotateTransaction', + identifier: colonyAddress, + params: [], + group: { + key: batchKey, + id: metaId, + index: 1, + }, + ready: false, + }); + } + + yield takeFrom(createMotion.channel, ActionTypes.TRANSACTION_CREATED); + if (annotationMessage) { + yield takeFrom( + annotateRootMotion.channel, + ActionTypes.TRANSACTION_CREATED, + ); + } + + yield initiateTransaction(createMotion.id); + + const { + payload: { + receipt: { transactionHash: txHash }, + }, + } = yield waitForTxResult(createMotion.channel); + + yield createActionMetadataInDB(txHash, customActionTitle); + + if (annotationMessage) { + yield uploadAnnotation({ + txChannel: annotateRootMotion, + message: annotationMessage, + txHash, + }); + } + + setTxHash?.(txHash); + + yield put({ + type: ActionTypes.MOTION_PROXY_COLONY_ENABLE_DISABLE_SUCCESS, + meta, + }); + } catch (caughtError) { + yield putError( + ActionTypes.MOTION_PROXY_COLONY_ENABLE_DISABLE_ERROR, + caughtError, + meta, + ); + } finally { + txChannel.close(); + } +} + +export default function* createProxyColonyMotion() { + yield takeEvery( + ActionTypes.MOTION_PROXY_COLONY_ENABLE_DISABLE, + enableDisableProxyColonyMotionSaga, + ); +} diff --git a/src/redux/sagas/motions/proxyColonies/index.ts b/src/redux/sagas/motions/proxyColonies/index.ts index 5bf853903a3..1dc32be7394 100644 --- a/src/redux/sagas/motions/proxyColonies/index.ts +++ b/src/redux/sagas/motions/proxyColonies/index.ts @@ -1 +1,2 @@ export { default as createProxyColonyMotionSaga } from './createProxyColony.ts'; +export { default as enableDisableProxyColonyMotionSaga } from './enableDisableProxyColony.ts'; diff --git a/src/redux/types/actions/motion.ts b/src/redux/types/actions/motion.ts index a8e357535da..64cb4f9941b 100644 --- a/src/redux/types/actions/motion.ts +++ b/src/redux/types/actions/motion.ts @@ -18,6 +18,7 @@ import { type Address, type ManageVerifiedMembersOperation, } from '~types/index.ts'; +import { type ManageEntityOperation } from '~v5/common/ActionSidebar/consts.ts'; import { type AddTransactionTableModel } from '~v5/common/ActionSidebar/partials/forms/ArbitraryTxsForm/types.ts'; import { type OneTxPaymentPayload } from './colonyActions.ts'; @@ -514,4 +515,24 @@ export type MotionActionTypes = | ActionTypeWithMeta< ActionTypes.MOTION_PROXY_COLONY_CREATE_SUCCESS, MetaWithSetter + > + | UniqueActionType< + ActionTypes.MOTION_PROXY_COLONY_ENABLE_DISABLE, + { + colonyAddress: Address; + customActionTitle: string; + annotationMessage?: string; + colonyDomains: Domain[]; + foreignChainId: number; + operation: ManageEntityOperation; + }, + MetaWithSetter + > + | ErrorActionType< + ActionTypes.MOTION_PROXY_COLONY_ENABLE_DISABLE_ERROR, + object + > + | ActionTypeWithMeta< + ActionTypes.MOTION_PROXY_COLONY_ENABLE_DISABLE_SUCCESS, + MetaWithSetter >; From dd658debfd99ba525f659e04d3f6f4b2b0f29290 Mon Sep 17 00:00:00 2001 From: Romeo Ledesma Date: Wed, 15 Jan 2025 05:32:19 +0800 Subject: [PATCH 33/66] feat: update block ingestor hash and use constant form field var --- .../ManageSupportedChainsForm/ManageSupportedChainsForm.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx index 91eb3ca7a6b..898e41170c7 100644 --- a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx +++ b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx @@ -7,6 +7,7 @@ import { formatText } from '~utils/intl.ts'; import ActionFormRow from '~v5/common/ActionFormRow/ActionFormRow.tsx'; import { CHAIN_FIELD_NAME, + FROM_FIELD_NAME, MANAGE_SUPPORTED_CHAINS_FIELD_NAME, ManageEntityOperation, } from '~v5/common/ActionSidebar/consts.ts'; @@ -39,7 +40,7 @@ const ManageSupportedChainsForm: FC = ({ const decisionMethodFilterFn = createUnsupportedDecisionMethodFilter([ DecisionMethod.MultiSig, ]); - const createdInFilterFn = useFilterCreatedInField('from'); + const createdInFilterFn = useFilterCreatedInField(FROM_FIELD_NAME); const isRemoveOperation = useCheckOperationType( MANAGE_SUPPORTED_CHAINS_FIELD_NAME, ManageEntityOperation.Remove, From 3ab0a794ef6694c87a0d1f51f9e6855e50480c18 Mon Sep 17 00:00:00 2001 From: Romeo Ledesma Date: Wed, 15 Jan 2025 21:58:09 +0800 Subject: [PATCH 34/66] feat: prefer encodeFunctionData usage --- .../proxyColonies/enableDisableProxyColony.ts | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts b/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts index 9f9a95323ee..7188d442135 100644 --- a/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts +++ b/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts @@ -1,10 +1,8 @@ import { ClientType, Id } from '@colony/colony-js'; -import { type CustomContract } from '@colony/sdk'; import { AddressZero } from '@ethersproject/constants'; import { BigNumber } from 'ethers'; import { call, fork, put, takeEvery } from 'redux-saga/effects'; -import { colonyAbi } from '~constants/abis.ts'; import { type ColonyManager } from '~context/index.ts'; import { ActionTypes } from '~redux/actionTypes.ts'; import { @@ -54,28 +52,23 @@ function* enableDisableProxyColonyMotionSaga({ colonyAddress, ); - const proxyColonyContract: CustomContract = - colonyManager.getCustomContract(colonyAddress, colonyAbi); - const editColonyByDeltaOperation = isEnableOperation ? getEnableProxyColonyOperation : getDisableProxyColonyOperation; - const encodedAction = yield proxyColonyContract - .createTxCreator('editColonyByDelta', [ - JSON.stringify(editColonyByDeltaOperation([foreignChainId.toString()])), - ]) - .tx() - .encode(); + const encodedAction = colonyClient.interface.encodeFunctionData( + TRANSACTION_METHODS.EditColonyByDelta, + [JSON.stringify(editColonyByDeltaOperation([foreignChainId.toString()]))], + ); txChannel = yield call(getTxChannel, metaId); const batchKey = TRANSACTION_METHODS.CreateMotion; - const { createMotion, annotateRootMotion } = + const { manageProxyColonyMotion, annotateManageProxyColonyMotion } = yield createTransactionChannels(metaId, [ - 'createMotion', - 'annotateRootMotion', + 'manageProxyColonyMotion', + 'annotateManageProxyColonyMotion', ]); // eslint-disable-next-line no-inner-declarations @@ -131,10 +124,14 @@ function* enableDisableProxyColonyMotionSaga({ const transactionParams = yield getCreateMotionParams(); - yield fork(createTransaction, createMotion.id, transactionParams); + yield fork( + createTransaction, + manageProxyColonyMotion.id, + transactionParams, + ); if (annotationMessage) { - yield fork(createTransaction, annotateRootMotion.id, { + yield fork(createTransaction, annotateManageProxyColonyMotion.id, { context: ClientType.ColonyClient, methodName: 'annotateTransaction', identifier: colonyAddress, @@ -148,27 +145,30 @@ function* enableDisableProxyColonyMotionSaga({ }); } - yield takeFrom(createMotion.channel, ActionTypes.TRANSACTION_CREATED); + yield takeFrom( + manageProxyColonyMotion.channel, + ActionTypes.TRANSACTION_CREATED, + ); if (annotationMessage) { yield takeFrom( - annotateRootMotion.channel, + annotateManageProxyColonyMotion.channel, ActionTypes.TRANSACTION_CREATED, ); } - yield initiateTransaction(createMotion.id); + yield initiateTransaction(manageProxyColonyMotion.id); const { payload: { receipt: { transactionHash: txHash }, }, - } = yield waitForTxResult(createMotion.channel); + } = yield waitForTxResult(manageProxyColonyMotion.channel); yield createActionMetadataInDB(txHash, customActionTitle); if (annotationMessage) { yield uploadAnnotation({ - txChannel: annotateRootMotion, + txChannel: annotateManageProxyColonyMotion, message: annotationMessage, txHash, }); From 895a4143aab8ca697ee0d3f267f91269793c8d04 Mon Sep 17 00:00:00 2001 From: Romeo Ledesma Date: Mon, 13 Jan 2025 19:38:27 +0800 Subject: [PATCH 35/66] feat: add support for enabling and disable proxy colonies via multi-sig --- .../api/colonycdapp/schema/schema.graphql | 1 + .../ManageSupportedChainsForm.tsx | 7 +--- .../CompletedAction/CompletedAction.tsx | 4 +- src/graphql/generated.ts | 1 + src/i18n/en-actions.ts | 2 + .../proxyColonies/enableDisableProxyColony.ts | 41 +++++++++++++++++++ src/redux/types/actions/motion.ts | 2 + src/utils/multiSig/index.ts | 1 + 8 files changed, 52 insertions(+), 7 deletions(-) diff --git a/amplify/backend/api/colonycdapp/schema/schema.graphql b/amplify/backend/api/colonycdapp/schema/schema.graphql index c2164af3b48..54b5b4f0a0e 100644 --- a/amplify/backend/api/colonycdapp/schema/schema.graphql +++ b/amplify/backend/api/colonycdapp/schema/schema.graphql @@ -913,6 +913,7 @@ enum ColonyActionType { """ REMOVE_PROXY_COLONY REMOVE_PROXY_COLONY_MOTION + REMOVE_PROXY_COLONY_MULTISIG } """ diff --git a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx index 898e41170c7..b08535c3268 100644 --- a/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx +++ b/src/components/v5/common/ActionSidebar/partials/forms/ManageSupportedChainsForm/ManageSupportedChainsForm.tsx @@ -2,7 +2,6 @@ import { Link, PlusMinus } from '@phosphor-icons/react'; import React, { type FC } from 'react'; import { useFormContext } from 'react-hook-form'; -import { DecisionMethod } from '~types/actions.ts'; import { formatText } from '~utils/intl.ts'; import ActionFormRow from '~v5/common/ActionFormRow/ActionFormRow.tsx'; import { @@ -20,7 +19,6 @@ import CreatedIn from '~v5/common/ActionSidebar/partials/CreatedIn/index.ts'; import DecisionMethodField from '~v5/common/ActionSidebar/partials/DecisionMethodField/DecisionMethodField.tsx'; import Description from '~v5/common/ActionSidebar/partials/Description/Description.tsx'; import { type ActionFormBaseProps } from '~v5/common/ActionSidebar/types.ts'; -import { createUnsupportedDecisionMethodFilter } from '~v5/common/ActionSidebar/utils.ts'; import { FormCardSelect } from '~v5/common/Fields/CardSelect/index.ts'; import { getManageSupportedChainsOptions } from './consts.ts'; @@ -37,9 +35,6 @@ const ManageSupportedChainsForm: FC = ({ const { resetField } = useFormContext(); const hasNoDecisionMethods = useHasNoDecisionMethods(); const chainSelectFilterFn = useFilterChainSelectField(); - const decisionMethodFilterFn = createUnsupportedDecisionMethodFilter([ - DecisionMethod.MultiSig, - ]); const createdInFilterFn = useFilterCreatedInField(FROM_FIELD_NAME); const isRemoveOperation = useCheckOperationType( MANAGE_SUPPORTED_CHAINS_FIELD_NAME, @@ -101,7 +96,7 @@ const ManageSupportedChainsForm: FC = ({ filterOptionsFn={chainSelectFilterFn} /> - + diff --git a/src/components/v5/common/CompletedAction/CompletedAction.tsx b/src/components/v5/common/CompletedAction/CompletedAction.tsx index 27fed475fa0..2fee6dbb9c9 100644 --- a/src/components/v5/common/CompletedAction/CompletedAction.tsx +++ b/src/components/v5/common/CompletedAction/CompletedAction.tsx @@ -86,10 +86,12 @@ const CompletedAction = ({ action }: CompletedActionProps) => { case ColonyActionType.RemoveVerifiedMembersMultisig: return ; case ColonyActionType.AddProxyColony: - case ColonyActionType.RemoveProxyColony: case ColonyActionType.AddProxyColonyMotion: case ColonyActionType.RemoveProxyColonyMotion: case ColonyActionType.AddProxyColonyMultisig: + case ColonyActionType.RemoveProxyColony: + case ColonyActionType.RemoveProxyColonyMotion: + case ColonyActionType.RemoveProxyColonyMultisig: return ; case ColonyActionType.EmitDomainReputationReward: case ColonyActionType.EmitDomainReputationRewardMotion: diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index 09208871101..852155d1fe4 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -737,6 +737,7 @@ export enum ColonyActionType { /** An action related to disabling a proxy colony */ RemoveProxyColony = 'REMOVE_PROXY_COLONY', RemoveProxyColonyMotion = 'REMOVE_PROXY_COLONY_MOTION', + RemoveProxyColonyMultisig = 'REMOVE_PROXY_COLONY_MULTISIG', /** An action related to removing verified members */ RemoveVerifiedMembers = 'REMOVE_VERIFIED_MEMBERS', RemoveVerifiedMembersMotion = 'REMOVE_VERIFIED_MEMBERS_MOTION', diff --git a/src/i18n/en-actions.ts b/src/i18n/en-actions.ts index d39642bf513..a6328b33241 100644 --- a/src/i18n/en-actions.ts +++ b/src/i18n/en-actions.ts @@ -63,6 +63,7 @@ const actionsMessageDescriptors = { ${ColonyActionType.AddProxyColonyMultisig} {Add support for {chain} chain by {initiator}} ${ColonyActionType.RemoveProxyColony} {Remove support for {chain} chain by {initiator}} ${ColonyActionType.RemoveProxyColonyMotion} {Remove support for {chain} chain by {initiator}} + ${ColonyActionType.RemoveProxyColonyMultisig} {Remove support for {chain} chain by {initiator}} ${ExtendedColonyActionType.AddSafe} {Add Safe from {chainName}} ${ExtendedColonyActionType.RemoveSafe} {Remove Safe} ${ExtendedColonyActionType.SafeMultipleTransactions} ${safeActionTitle} @@ -132,6 +133,7 @@ const actionsMessageDescriptors = { ${ColonyActionType.AddProxyColonyMultisig} {Manage supported chains} ${ColonyActionType.RemoveProxyColony} {Manage supported chains} ${ColonyActionType.RemoveProxyColonyMotion} {Manage supported chains} + ${ColonyActionType.RemoveProxyColonyMultisig} {Manage supported chains} ${ExtendedColonyActionType.StagedPayment} {Staged payment} ${ExtendedColonyActionType.AddSafe} {Add Safe} ${ExtendedColonyActionType.RemoveSafe} {Remove Safe} diff --git a/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts b/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts index 7188d442135..5cdfb033af9 100644 --- a/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts +++ b/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts @@ -3,6 +3,8 @@ import { AddressZero } from '@ethersproject/constants'; import { BigNumber } from 'ethers'; import { call, fork, put, takeEvery } from 'redux-saga/effects'; +import { PERMISSIONS_NEEDED_FOR_ACTION } from '~constants/actions.ts'; +import { ADDRESS_ZERO } from '~constants/index.ts'; import { type ColonyManager } from '~context/index.ts'; import { ActionTypes } from '~redux/actionTypes.ts'; import { @@ -19,6 +21,7 @@ import { initiateTransaction, createActionMetadataInDB, getChildIndexLocal, + getPermissionProofsLocal, } from '~redux/sagas/utils/index.ts'; import { getDisableProxyColonyOperation, @@ -36,6 +39,8 @@ function* enableDisableProxyColonyMotionSaga({ annotationMessage, colonyDomains, operation, + colonyRoles, + isMultiSig, }, meta: { id: metaId, setTxHash }, meta, @@ -73,6 +78,42 @@ function* enableDisableProxyColonyMotionSaga({ // eslint-disable-next-line no-inner-declarations function* getCreateMotionParams() { + if (isMultiSig) { + const initiatorAddress = yield colonyClient.signer.getAddress(); + + // Permission proofs for the user creating the multi-sig motion + const [, childSkillIndex] = yield call(getPermissionProofsLocal, { + networkClient: colonyClient.networkClient, + colonyRoles, + colonyDomains, + requiredDomainId: Id.RootDomain, + requiredColonyRoles: + PERMISSIONS_NEEDED_FOR_ACTION.ManageSupportedChains, + // The address of the user creating the multi-sig motion + permissionAddress: initiatorAddress, + // The user must have multi-sig permissions + isMultiSig: true, + }); + + return { + context: ClientType.MultisigPermissionsClient, + methodName: TRANSACTION_METHODS.CreateMotion, + identifier: colonyAddress, + params: [ + Id.RootDomain, + childSkillIndex, + [ADDRESS_ZERO], + [encodedAction], + ], + group: { + key: batchKey, + id: metaId, + index: 0, + }, + ready: false, + }; + } + const rootDomain = colonyDomains.find((domain) => BigNumber.from(domain.nativeId).eq(Id.RootDomain), ); diff --git a/src/redux/types/actions/motion.ts b/src/redux/types/actions/motion.ts index 64cb4f9941b..3a4ab343cfa 100644 --- a/src/redux/types/actions/motion.ts +++ b/src/redux/types/actions/motion.ts @@ -525,6 +525,8 @@ export type MotionActionTypes = colonyDomains: Domain[]; foreignChainId: number; operation: ManageEntityOperation; + colonyRoles: ColonyRoleFragment[]; + isMultiSig?: boolean; }, MetaWithSetter > diff --git a/src/utils/multiSig/index.ts b/src/utils/multiSig/index.ts index 1063b014f52..fc9a70cf5ee 100644 --- a/src/utils/multiSig/index.ts +++ b/src/utils/multiSig/index.ts @@ -76,6 +76,7 @@ export const getRolesNeededForMultiSigAction = ({ permissions = PERMISSIONS_NEEDED_FOR_ACTION.ArbitraryTxs; break; case ColonyActionType.AddProxyColonyMultisig: + case ColonyActionType.RemoveProxyColonyMultisig: permissions = PERMISSIONS_NEEDED_FOR_ACTION.ManageSupportedChains; break; default: From 12bb1c63b795aec3cafc7bde9db2ace36a6f7426 Mon Sep 17 00:00:00 2001 From: Romeo Ledesma Date: Mon, 13 Jan 2025 21:06:14 +0800 Subject: [PATCH 36/66] feat: add getMultiSigMotionParams util --- docker/colony-cdapp-dev-env-block-ingestor | 2 +- .../colony-cdapp-dev-env-proxy-block-ingestor | 2 +- .../v5/common/ActionSidebar/utils.ts | 2 +- .../CompletedAction/CompletedAction.tsx | 1 - src/graphql/generated.ts | 18 ---- .../proxyColonies/createProxyColony.ts | 2 +- .../proxyColonies/enableDisableProxyColony.ts | 34 ++----- .../sagas/proxyColonies/createProxyColony.ts | 4 +- .../sagas/proxyColonies/disableProxyColony.ts | 2 +- .../sagas/proxyColonies/enableProxyColony.ts | 2 +- .../sagas/utils/getMultiSigMotionParams.ts | 89 +++++++++++++++++++ 11 files changed, 105 insertions(+), 53 deletions(-) create mode 100644 src/redux/sagas/utils/getMultiSigMotionParams.ts diff --git a/docker/colony-cdapp-dev-env-block-ingestor b/docker/colony-cdapp-dev-env-block-ingestor index f6d45d3657d..c66b2c27f55 100644 --- a/docker/colony-cdapp-dev-env-block-ingestor +++ b/docker/colony-cdapp-dev-env-block-ingestor @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV BLOCK_INGESTOR_HASH=719f62c82285fc20cba66a17acfff623dcbf56f5 +ENV BLOCK_INGESTOR_HASH=bf4b78c5bf02a69521bbe78ae6cfcbda61730793 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/colony-cdapp-dev-env-proxy-block-ingestor b/docker/colony-cdapp-dev-env-proxy-block-ingestor index 9cd33a8250d..71a5fa00680 100644 --- a/docker/colony-cdapp-dev-env-proxy-block-ingestor +++ b/docker/colony-cdapp-dev-env-proxy-block-ingestor @@ -1,7 +1,7 @@ FROM colony-cdapp-dev-env/base:latest # @TODO maybe add a PROXY_BLOCK_INGESTOR_HASH and fallback to BLOCK_INGESTOR_HASH -ENV BLOCK_INGESTOR_HASH=719f62c82285fc20cba66a17acfff623dcbf56f5 +ENV BLOCK_INGESTOR_HASH=bf4b78c5bf02a69521bbe78ae6cfcbda61730793 # @TODO do we need here a contract to be in the format: # { # name: 'ColonyNetwork', diff --git a/src/components/v5/common/ActionSidebar/utils.ts b/src/components/v5/common/ActionSidebar/utils.ts index 686b4128a30..e0846fcfa32 100644 --- a/src/components/v5/common/ActionSidebar/utils.ts +++ b/src/components/v5/common/ActionSidebar/utils.ts @@ -13,13 +13,13 @@ import { removeCacheEntry, CacheQueryKeys } from '~utils/queries.ts'; import { splitAddress } from '~utils/strings.ts'; import { type SearchSelectOption } from '~v5/shared/SearchSelect/types.ts'; +import { type GroupListItem } from './partials/GroupedAction/types.ts'; import { GROUP_FUNDS_LIST, GROUP_TEAMS_LIST, GROUP_ADMIN_LIST, } from './partials/ManageColonyGroup/GroupList.ts'; import { GROUP_LIST } from './partials/PaymentGroup/GroupList.ts'; -import { GroupListItem } from './partials/GroupedAction/types.ts'; export const translateAction = (action?: Action) => { const actionName = action diff --git a/src/components/v5/common/CompletedAction/CompletedAction.tsx b/src/components/v5/common/CompletedAction/CompletedAction.tsx index 2fee6dbb9c9..a6513de8577 100644 --- a/src/components/v5/common/CompletedAction/CompletedAction.tsx +++ b/src/components/v5/common/CompletedAction/CompletedAction.tsx @@ -87,7 +87,6 @@ const CompletedAction = ({ action }: CompletedActionProps) => { return ; case ColonyActionType.AddProxyColony: case ColonyActionType.AddProxyColonyMotion: - case ColonyActionType.RemoveProxyColonyMotion: case ColonyActionType.AddProxyColonyMultisig: case ColonyActionType.RemoveProxyColony: case ColonyActionType.RemoveProxyColonyMotion: diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index 852155d1fe4..5bdfdf445f0 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -1228,7 +1228,6 @@ export type ColonyMultiSig = { executedBy?: Maybe; /** Extended user object for given executedBy */ executedByUser?: Maybe; -<<<<<<< HEAD /** * In case of multiple funding actions in a multisig, when funding an expenditure, array containing * the details of tokens and amounts to be funded @@ -1236,12 +1235,10 @@ export type ColonyMultiSig = { expenditureFunding?: Maybe>; /** Expenditure associated with the motion, if any */ expenditureId?: Maybe; -======= /** Expanded `ColonyAction` */ finalizationActionData?: Maybe; /** The action txHash that was triggered upon motion finalization */ finalizationActionId?: Maybe; ->>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) /** Whether the underlying action completed */ hasActionCompleted: Scalars['Boolean']; /** @@ -1697,12 +1694,9 @@ export type CreateColonyMultiSigInput = { createdAt?: InputMaybe; executedAt?: InputMaybe; executedBy?: InputMaybe; -<<<<<<< HEAD expenditureFunding?: InputMaybe>; expenditureId?: InputMaybe; -======= finalizationActionId?: InputMaybe; ->>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) hasActionCompleted: Scalars['Boolean']; id?: InputMaybe; isDecision: Scalars['Boolean']; @@ -3404,11 +3398,8 @@ export type ModelColonyMultiSigConditionInput = { createdAt?: InputMaybe; executedAt?: InputMaybe; executedBy?: InputMaybe; -<<<<<<< HEAD expenditureId?: InputMaybe; -======= finalizationActionId?: InputMaybe; ->>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) hasActionCompleted?: InputMaybe; isDecision?: InputMaybe; isExecuted?: InputMaybe; @@ -3436,11 +3427,8 @@ export type ModelColonyMultiSigFilterInput = { createdAt?: InputMaybe; executedAt?: InputMaybe; executedBy?: InputMaybe; -<<<<<<< HEAD expenditureId?: InputMaybe; -======= finalizationActionId?: InputMaybe; ->>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) hasActionCompleted?: InputMaybe; id?: InputMaybe; isDecision?: InputMaybe; @@ -4522,11 +4510,8 @@ export type ModelSubscriptionColonyMultiSigFilterInput = { createdAt?: InputMaybe; executedAt?: InputMaybe; executedBy?: InputMaybe; -<<<<<<< HEAD expenditureId?: InputMaybe; -======= finalizationActionId?: InputMaybe; ->>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) hasActionCompleted?: InputMaybe; id?: InputMaybe; isDecision?: InputMaybe; @@ -9959,12 +9944,9 @@ export type UpdateColonyMultiSigInput = { createdAt?: InputMaybe; executedAt?: InputMaybe; executedBy?: InputMaybe; -<<<<<<< HEAD expenditureFunding?: InputMaybe>; expenditureId?: InputMaybe; -======= finalizationActionId?: InputMaybe; ->>>>>>> 2be129c35 (feat: add finalization action info to multisig and motions, and add a reference to the action an action finalized) hasActionCompleted?: InputMaybe; id: Scalars['ID']; isDecision?: InputMaybe; diff --git a/src/redux/sagas/motions/proxyColonies/createProxyColony.ts b/src/redux/sagas/motions/proxyColonies/createProxyColony.ts index b9b5ad500e6..38cfad6371e 100644 --- a/src/redux/sagas/motions/proxyColonies/createProxyColony.ts +++ b/src/redux/sagas/motions/proxyColonies/createProxyColony.ts @@ -195,7 +195,7 @@ function* createProxyColonyMotionSaga({ }, } = yield waitForTxResult(createMotion.channel); - yield createActionMetadataInDB(txHash, customActionTitle); + yield createActionMetadataInDB(txHash, { customTitle: customActionTitle }); if (annotationMessage) { yield uploadAnnotation({ diff --git a/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts b/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts index 5cdfb033af9..2ba48c01577 100644 --- a/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts +++ b/src/redux/sagas/motions/proxyColonies/enableDisableProxyColony.ts @@ -4,7 +4,6 @@ import { BigNumber } from 'ethers'; import { call, fork, put, takeEvery } from 'redux-saga/effects'; import { PERMISSIONS_NEEDED_FOR_ACTION } from '~constants/actions.ts'; -import { ADDRESS_ZERO } from '~constants/index.ts'; import { type ColonyManager } from '~context/index.ts'; import { ActionTypes } from '~redux/actionTypes.ts'; import { @@ -13,6 +12,7 @@ import { getTxChannel, waitForTxResult, } from '~redux/sagas/transactions/index.ts'; +import getMultiSigMotionParams from '~redux/sagas/utils/getMultiSigMotionParams.ts'; import { putError, takeFrom, @@ -21,7 +21,6 @@ import { initiateTransaction, createActionMetadataInDB, getChildIndexLocal, - getPermissionProofsLocal, } from '~redux/sagas/utils/index.ts'; import { getDisableProxyColonyOperation, @@ -79,39 +78,20 @@ function* enableDisableProxyColonyMotionSaga({ // eslint-disable-next-line no-inner-declarations function* getCreateMotionParams() { if (isMultiSig) { - const initiatorAddress = yield colonyClient.signer.getAddress(); - - // Permission proofs for the user creating the multi-sig motion - const [, childSkillIndex] = yield call(getPermissionProofsLocal, { - networkClient: colonyClient.networkClient, + return yield call(getMultiSigMotionParams, { + colonyClient, colonyRoles, + colonyAddress, colonyDomains, - requiredDomainId: Id.RootDomain, + encodedAction, requiredColonyRoles: PERMISSIONS_NEEDED_FOR_ACTION.ManageSupportedChains, - // The address of the user creating the multi-sig motion - permissionAddress: initiatorAddress, - // The user must have multi-sig permissions - isMultiSig: true, - }); - - return { - context: ClientType.MultisigPermissionsClient, - methodName: TRANSACTION_METHODS.CreateMotion, - identifier: colonyAddress, - params: [ - Id.RootDomain, - childSkillIndex, - [ADDRESS_ZERO], - [encodedAction], - ], group: { key: batchKey, id: metaId, index: 0, }, - ready: false, - }; + }); } const rootDomain = colonyDomains.find((domain) => @@ -205,7 +185,7 @@ function* enableDisableProxyColonyMotionSaga({ }, } = yield waitForTxResult(manageProxyColonyMotion.channel); - yield createActionMetadataInDB(txHash, customActionTitle); + yield createActionMetadataInDB(txHash, { customTitle: customActionTitle }); if (annotationMessage) { yield uploadAnnotation({ diff --git a/src/redux/sagas/proxyColonies/createProxyColony.ts b/src/redux/sagas/proxyColonies/createProxyColony.ts index c712b883488..9bd47e71970 100644 --- a/src/redux/sagas/proxyColonies/createProxyColony.ts +++ b/src/redux/sagas/proxyColonies/createProxyColony.ts @@ -134,7 +134,9 @@ function* createProxyColony({ ); } - yield createActionMetadataInDB(transaction.hash, customActionTitle); + yield createActionMetadataInDB(transaction.hash, { + customTitle: customActionTitle, + }); if (annotationMessage) { yield uploadAnnotation({ diff --git a/src/redux/sagas/proxyColonies/disableProxyColony.ts b/src/redux/sagas/proxyColonies/disableProxyColony.ts index 7bf38e8e646..32027ff9811 100644 --- a/src/redux/sagas/proxyColonies/disableProxyColony.ts +++ b/src/redux/sagas/proxyColonies/disableProxyColony.ts @@ -98,7 +98,7 @@ function* disableProxyColonyAction({ }, } = yield waitForTxResult(disableProxyColony.channel); - yield createActionMetadataInDB(txHash, customActionTitle); + yield createActionMetadataInDB(txHash, { customTitle: customActionTitle }); if (annotationMessage) { yield uploadAnnotation({ diff --git a/src/redux/sagas/proxyColonies/enableProxyColony.ts b/src/redux/sagas/proxyColonies/enableProxyColony.ts index 2876e0ec631..c44428e86a0 100644 --- a/src/redux/sagas/proxyColonies/enableProxyColony.ts +++ b/src/redux/sagas/proxyColonies/enableProxyColony.ts @@ -101,7 +101,7 @@ function* enableProxyColonyAction({ // eslint-disable-next-line no-console console.log('PROXY COLONY ENABLE TXHASH', txHash, customActionTitle); - yield createActionMetadataInDB(txHash, customActionTitle); + yield createActionMetadataInDB(txHash, { customTitle: customActionTitle }); if (annotationMessage) { yield uploadAnnotation({ diff --git a/src/redux/sagas/utils/getMultiSigMotionParams.ts b/src/redux/sagas/utils/getMultiSigMotionParams.ts new file mode 100644 index 00000000000..82180791257 --- /dev/null +++ b/src/redux/sagas/utils/getMultiSigMotionParams.ts @@ -0,0 +1,89 @@ +import { + ClientType, + type ColonyRole, + Id, + type AnyColonyClient, +} from '@colony/colony-js'; +import { call } from 'redux-saga/effects'; + +import { ADDRESS_ZERO } from '~constants'; +import { type ColonyRoleFragment } from '~gql'; +import { type Domain } from '~types/graphql.ts'; +import { TRANSACTION_METHODS } from '~types/transactions.ts'; + +import { getPermissionProofsLocal } from './proofs.ts'; + +interface IGetMultiSigMotionParams { + permissionAddress?: string; + colonyClient: AnyColonyClient; + colonyAddress: string; + colonyRoles: ColonyRoleFragment[]; + colonyDomains: Domain[]; + requiredColonyRoles: ColonyRole[][]; + encodedAction: string; + isMultiSig?: boolean; + group: { + key: string; + id: string; + index: number; + }; + ready?: boolean; + requiredDomainId?: Id; + targetAddressOverride?: string; +} + +/** + * @TODO Sagas that can easily benefit from this: + * - editColonyMotion + * - manageTokens + * - manageVerifiedMembers + * - rootMotion + */ +function* getMultiSigMotionParams({ + permissionAddress, + colonyClient, + colonyAddress, + colonyDomains, + colonyRoles, + requiredColonyRoles, + encodedAction, + isMultiSig = true, + group, + ready = false, + requiredDomainId = Id.RootDomain, + targetAddressOverride, +}: IGetMultiSigMotionParams) { + const { networkClient, signer } = colonyClient; + + const finalPermissionAddress = + permissionAddress ?? (yield signer.getAddress()); + + const [permissionDomainId, childSkillIndex] = yield call( + getPermissionProofsLocal, + { + networkClient, + colonyRoles, + colonyDomains, + requiredDomainId, + requiredColonyRoles, + permissionAddress: finalPermissionAddress, + isMultiSig, + }, + ); + + return { + context: ClientType.MultisigPermissionsClient, + methodName: TRANSACTION_METHODS.CreateMotion, + identifier: colonyAddress, + params: [ + permissionDomainId, + childSkillIndex, + [targetAddressOverride ?? ADDRESS_ZERO], + [encodedAction], + ], + group, + ready, + }; +} + +export default getMultiSigMotionParams; From eb9d84cd2f7ed792e7c2dc1f86c5c31d500ec54d Mon Sep 17 00:00:00 2001 From: Dave Creaser Date: Thu, 16 Jan 2025 16:53:40 +0000 Subject: [PATCH 37/66] Move targetChainId up to the top level of colonyAction --- .../api/colonycdapp/schema/schema.graphql | 5 ++++- docker/colony-cdapp-dev-env-block-ingestor | 2 +- docker/colony-cdapp-dev-env-proxy-block-ingestor | 2 +- .../helpers/mapItemToMessageFormat.tsx | 4 +--- .../ManageSupportedChain.tsx | 4 ++-- src/graphql/fragments/actions.graphql | 4 +--- src/graphql/generated.ts | 16 +++++++++++----- 7 files changed, 21 insertions(+), 16 deletions(-) diff --git a/amplify/backend/api/colonycdapp/schema/schema.graphql b/amplify/backend/api/colonycdapp/schema/schema.graphql index 54b5b4f0a0e..b6a8b712d15 100644 --- a/amplify/backend/api/colonycdapp/schema/schema.graphql +++ b/amplify/backend/api/colonycdapp/schema/schema.graphql @@ -3584,6 +3584,10 @@ type ColonyAction @model @searchable { """ multiChainInfo: MultiChainInfo """ + Target chain id if the action is on a proxy colony chain + """ + targetChainId: Int + """ The motion action txHash that this action finalized """ finalizedActionId: ID @@ -3594,7 +3598,6 @@ type ColonyAction @model @searchable { } type MultiChainInfo { - targetChainId: Int! completed: Boolean! wormholeInfo: ActionWormholeInfo } diff --git a/docker/colony-cdapp-dev-env-block-ingestor b/docker/colony-cdapp-dev-env-block-ingestor index c66b2c27f55..b32a05507d7 100644 --- a/docker/colony-cdapp-dev-env-block-ingestor +++ b/docker/colony-cdapp-dev-env-block-ingestor @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV BLOCK_INGESTOR_HASH=bf4b78c5bf02a69521bbe78ae6cfcbda61730793 +ENV BLOCK_INGESTOR_HASH=008fe77fd7a4787619653ae309e6e9597b9b6c80 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/colony-cdapp-dev-env-proxy-block-ingestor b/docker/colony-cdapp-dev-env-proxy-block-ingestor index 71a5fa00680..bd923415e8e 100644 --- a/docker/colony-cdapp-dev-env-proxy-block-ingestor +++ b/docker/colony-cdapp-dev-env-proxy-block-ingestor @@ -1,7 +1,7 @@ FROM colony-cdapp-dev-env/base:latest # @TODO maybe add a PROXY_BLOCK_INGESTOR_HASH and fallback to BLOCK_INGESTOR_HASH -ENV BLOCK_INGESTOR_HASH=bf4b78c5bf02a69521bbe78ae6cfcbda61730793 +ENV BLOCK_INGESTOR_HASH=008fe77fd7a4787619653ae309e6e9597b9b6c80 # @TODO do we need here a contract to be in the format: # { # name: 'ColonyNetwork', diff --git a/src/components/common/ColonyActions/helpers/mapItemToMessageFormat.tsx b/src/components/common/ColonyActions/helpers/mapItemToMessageFormat.tsx index 93b1781c19a..de4f155525c 100644 --- a/src/components/common/ColonyActions/helpers/mapItemToMessageFormat.tsx +++ b/src/components/common/ColonyActions/helpers/mapItemToMessageFormat.tsx @@ -209,9 +209,7 @@ const getExpenditureStagesData = ( }; const getProxyColonyDeployedChain = (actionData: ColonyAction) => { - const chainInfo = findSupportedChain( - actionData?.multiChainInfo?.targetChainId, - ); + const chainInfo = findSupportedChain(actionData?.targetChainId); return chainInfo?.name; }; diff --git a/src/components/v5/common/CompletedAction/partials/ManageSupportedChain/ManageSupportedChain.tsx b/src/components/v5/common/CompletedAction/partials/ManageSupportedChain/ManageSupportedChain.tsx index 807b65917aa..faad55b1843 100644 --- a/src/components/v5/common/CompletedAction/partials/ManageSupportedChain/ManageSupportedChain.tsx +++ b/src/components/v5/common/CompletedAction/partials/ManageSupportedChain/ManageSupportedChain.tsx @@ -50,10 +50,10 @@ const ManageSupportedChain: FC = ({ action }) => { annotation, transactionHash, metadata, - multiChainInfo, + targetChainId, } = action; const decisionMethod = useDecisionMethod(action); - const chainInfo = findSupportedChain(multiChainInfo?.targetChainId); + const chainInfo = findSupportedChain(targetChainId); const isAddOperation = action.type.startsWith( ColonyActionType.AddProxyColony, ); diff --git a/src/graphql/fragments/actions.graphql b/src/graphql/fragments/actions.graphql index 924c7279ed0..90f33c768ba 100644 --- a/src/graphql/fragments/actions.graphql +++ b/src/graphql/fragments/actions.graphql @@ -152,9 +152,7 @@ fragment ColonyAction on ColonyAction { contractAddress encodedFunction } - multiChainInfo { - targetChainId - } + targetChainId } fragment ApprovedTokenChanges on ApprovedTokenChanges { diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index 5bdfdf445f0..e36a69f8ea7 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -559,6 +559,8 @@ export type ColonyAction = { * Currently it is impossible to tell the reason for the action being hidden from the actions list */ showInActionsList: Scalars['Boolean']; + /** Target chain id if the action is on a proxy colony chain */ + targetChainId?: Maybe; /** The target Domain of the action, if applicable */ toDomain?: Maybe; /** The target Domain identifier, if applicable */ @@ -1524,6 +1526,7 @@ export type CreateColonyActionInput = { rolesAreMultiSig?: InputMaybe; rootHash: Scalars['String']; showInActionsList: Scalars['Boolean']; + targetChainId?: InputMaybe; toDomainId?: InputMaybe; toPotId?: InputMaybe; tokenAddress?: InputMaybe; @@ -2992,6 +2995,7 @@ export type ModelColonyActionConditionInput = { rolesAreMultiSig?: InputMaybe; rootHash?: InputMaybe; showInActionsList?: InputMaybe; + targetChainId?: InputMaybe; toDomainId?: InputMaybe; toPotId?: InputMaybe; tokenAddress?: InputMaybe; @@ -3039,6 +3043,7 @@ export type ModelColonyActionFilterInput = { rolesAreMultiSig?: InputMaybe; rootHash?: InputMaybe; showInActionsList?: InputMaybe; + targetChainId?: InputMaybe; toDomainId?: InputMaybe; toPotId?: InputMaybe; tokenAddress?: InputMaybe; @@ -4363,6 +4368,7 @@ export type ModelSubscriptionColonyActionFilterInput = { rolesAreMultiSig?: InputMaybe; rootHash?: InputMaybe; showInActionsList?: InputMaybe; + targetChainId?: InputMaybe; toDomainId?: InputMaybe; toPotId?: InputMaybe; tokenAddress?: InputMaybe; @@ -5329,13 +5335,11 @@ export type MotionStateHistoryInput = { export type MultiChainInfo = { __typename?: 'MultiChainInfo'; completed: Scalars['Boolean']; - targetChainId: Scalars['Int']; wormholeInfo?: Maybe; }; export type MultiChainInfoInput = { completed: Scalars['Boolean']; - targetChainId: Scalars['Int']; wormholeInfo?: InputMaybe; }; @@ -8357,6 +8361,7 @@ export enum SearchableColonyActionAggregateField { RolesAreMultiSig = 'rolesAreMultiSig', RootHash = 'rootHash', ShowInActionsList = 'showInActionsList', + TargetChainId = 'targetChainId', ToDomainId = 'toDomainId', ToPotId = 'toPotId', TokenAddress = 'tokenAddress', @@ -8413,6 +8418,7 @@ export type SearchableColonyActionFilterInput = { rolesAreMultiSig?: InputMaybe; rootHash?: InputMaybe; showInActionsList?: InputMaybe; + targetChainId?: InputMaybe; toDomainId?: InputMaybe; toPotId?: InputMaybe; tokenAddress?: InputMaybe; @@ -8457,6 +8463,7 @@ export enum SearchableColonyActionSortableFields { RolesAreMultiSig = 'rolesAreMultiSig', RootHash = 'rootHash', ShowInActionsList = 'showInActionsList', + TargetChainId = 'targetChainId', ToDomainId = 'toDomainId', ToPotId = 'toPotId', TokenAddress = 'tokenAddress', @@ -9796,6 +9803,7 @@ export type UpdateColonyActionInput = { rolesAreMultiSig?: InputMaybe; rootHash?: InputMaybe; showInActionsList?: InputMaybe; + targetChainId?: InputMaybe; toDomainId?: InputMaybe; toPotId?: InputMaybe; tokenAddress?: InputMaybe; @@ -12477,9 +12485,7 @@ export const ColonyActionFragmentDoc = gql` contractAddress encodedFunction } - multiChainInfo { - targetChainId - } + targetChainId } ${UserDisplayFragmentDoc} ${PublicColonyFragmentDoc} From 963a7f3cae0e7e6623c58b494961f6274e716534 Mon Sep 17 00:00:00 2001 From: Dave Creaser Date: Tue, 21 Jan 2025 17:35:07 +0000 Subject: [PATCH 38/66] Codegen after rebase --- src/graphql/generated.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index e36a69f8ea7..9c9c9262272 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -10532,7 +10532,7 @@ export type VotingReputationParamsInput = { voterRewardFraction: Scalars['String']; }; -export type ColonyActionFragment = { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null }; +export type ColonyActionFragment = { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null }; export type ApprovedTokenChangesFragment = { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array }; @@ -10636,7 +10636,7 @@ export type SafeTransactionDataFragment = { __typename?: 'SafeTransactionData', export type SafeTransactionFragment = { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null }; -export type UserStakeFragment = { __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null } | null }; +export type UserStakeFragment = { __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; export type TokenFragment = { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }; @@ -10867,14 +10867,14 @@ export type GetColonyActionsQueryVariables = Exact<{ }>; -export type GetColonyActionsQuery = { __typename?: 'Query', getActionsByColony?: { __typename?: 'ModelColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null } | null> } | null }; +export type GetColonyActionsQuery = { __typename?: 'Query', getActionsByColony?: { __typename?: 'ModelColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; export type GetColonyActionQueryVariables = Exact<{ transactionHash: Scalars['ID']; }>; -export type GetColonyActionQuery = { __typename?: 'Query', getColonyAction?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null } | null }; +export type GetColonyActionQuery = { __typename?: 'Query', getColonyAction?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; export type GetColonyMotionQueryVariables = Exact<{ id: Scalars['ID']; @@ -10919,7 +10919,7 @@ export type SearchActionsQueryVariables = Exact<{ }>; -export type SearchActionsQuery = { __typename?: 'Query', searchColonyActions?: { __typename?: 'SearchableColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null } | null> } | null }; +export type SearchActionsQuery = { __typename?: 'Query', searchColonyActions?: { __typename?: 'SearchableColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; export type OnCreateColonyActionMetadataSubscriptionVariables = Exact<{ [key: string]: never; }>; @@ -11231,7 +11231,7 @@ export type GetUserStakesQueryVariables = Exact<{ }>; -export type GetUserStakesQuery = { __typename?: 'Query', getUserStakes?: { __typename?: 'ModelUserStakeConnection', items: Array<{ __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null, multiChainInfo?: { __typename?: 'MultiChainInfo', targetChainId: number } | null } | null } | null> } | null }; +export type GetUserStakesQuery = { __typename?: 'Query', getUserStakes?: { __typename?: 'ModelUserStakeConnection', items: Array<{ __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null } | null> } | null }; export type GetTokenByAddressQueryVariables = Exact<{ address: Scalars['ID']; From 7d782d18a33800f39949fae58e5a9dd692beba69 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Wed, 22 Jan 2025 10:54:58 +0100 Subject: [PATCH 39/66] Refactor: Remove unused var from docker and unused supported chains --- docker/colony-cdapp-dev-env-block-ingestor | 2 +- .../colony-cdapp-dev-env-proxy-block-ingestor | 11 ++------ docker/files/proxy-block-ingestor/run.sh.base | 4 --- .../v5/common/ActionSidebar/utils.ts | 3 +- src/constants/proxyColonies.ts | 28 +++++++++---------- 5 files changed, 19 insertions(+), 29 deletions(-) diff --git a/docker/colony-cdapp-dev-env-block-ingestor b/docker/colony-cdapp-dev-env-block-ingestor index b32a05507d7..887cb326974 100644 --- a/docker/colony-cdapp-dev-env-block-ingestor +++ b/docker/colony-cdapp-dev-env-block-ingestor @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV BLOCK_INGESTOR_HASH=008fe77fd7a4787619653ae309e6e9597b9b6c80 +ENV BLOCK_INGESTOR_HASH=983e0b68472b8f7f7406352679e29b2d2d4d49c0 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/colony-cdapp-dev-env-proxy-block-ingestor b/docker/colony-cdapp-dev-env-proxy-block-ingestor index bd923415e8e..2fb0c2f1fcb 100644 --- a/docker/colony-cdapp-dev-env-proxy-block-ingestor +++ b/docker/colony-cdapp-dev-env-proxy-block-ingestor @@ -1,15 +1,8 @@ FROM colony-cdapp-dev-env/base:latest # @TODO maybe add a PROXY_BLOCK_INGESTOR_HASH and fallback to BLOCK_INGESTOR_HASH -ENV BLOCK_INGESTOR_HASH=008fe77fd7a4787619653ae309e6e9597b9b6c80 -# @TODO do we need here a contract to be in the format: -# { -# name: 'ColonyNetwork', -# address: '0x777760996135F0791E2e1a74aFAa060711197777', -# path: 'colonyNetwork/ColonyNetwork.sol/ColonyNetwork.json', -# }, -# also the RPC url needs to be different for each chain -ENV CONTRACT_ADDRESSES='["0x777760996135F0791E2e1a74aFAa060711197777", "0x777760996135F0791E2e1a74aFAa060711197778"]' +ENV BLOCK_INGESTOR_HASH=983e0b68472b8f7f7406352679e29b2d2d4d49c0 + ENV CHAIN_RPC_ENDPOINTS='["http://network-contracts-remote:8545", "http://network-contracts-remote-2:8545"]' ENV STATS_PORTS='["10002", "10003"]' diff --git a/docker/files/proxy-block-ingestor/run.sh.base b/docker/files/proxy-block-ingestor/run.sh.base index 78f4b9ac9a0..13a79613296 100644 --- a/docker/files/proxy-block-ingestor/run.sh.base +++ b/docker/files/proxy-block-ingestor/run.sh.base @@ -17,9 +17,6 @@ else INDEX=$((CONTAINER_REPLICA_NUMBER - 1)) fi -CONTRACT_ADDRESSES_ARRAY=($(echo "$CONTRACT_ADDRESSES" | jq -r '.[]')) -CONTRACT_ADDRESS=${CONTRACT_ADDRESSES_ARRAY[$INDEX]} - echo "Used contract address: $CONTRACT_ADDRESS" CHAIN_RPC_ENDPOINTS_ARRAY=($(echo "$CHAIN_RPC_ENDPOINTS" | jq -r '.[]')) @@ -37,7 +34,6 @@ wget http://network-files:3006/etherrouter-address.json # Write to env file... echo "CHAIN_NETWORK_CONTRACT=`jq -r .etherRouterAddress etherrouter-address.json`" >> apps/proxy-chain/.env -echo "CONTRACT_ADDRESS=$CONTRACT_ADDRESS" >> apps/proxy-chain/.env echo "CHAIN_RPC_ENDPOINT=$CHAIN_RPC_ENDPOINT" >> apps/proxy-chain/.env echo "STATS_PORT=$STATS_PORT" >> apps/proxy-chain/.env diff --git a/src/components/v5/common/ActionSidebar/utils.ts b/src/components/v5/common/ActionSidebar/utils.ts index e0846fcfa32..8a18316483a 100644 --- a/src/components/v5/common/ActionSidebar/utils.ts +++ b/src/components/v5/common/ActionSidebar/utils.ts @@ -20,6 +20,7 @@ import { GROUP_ADMIN_LIST, } from './partials/ManageColonyGroup/GroupList.ts'; import { GROUP_LIST } from './partials/PaymentGroup/GroupList.ts'; +import { type UserSearchSelectOption } from './partials/UserSelect/types.ts'; export const translateAction = (action?: Action) => { const actionName = action @@ -200,7 +201,7 @@ export const getActionGroup = (actionType: Action) => { export const formatMembersSelectOptions = ( members: ColonyContributorFragment[], isVerified = true, -): SearchSelectOption[] => { +): SearchSelectOption[] => { return members.map((member, index) => { const { walletAddress, profile } = member.user || {}; diff --git a/src/constants/proxyColonies.ts b/src/constants/proxyColonies.ts index 99efec22799..612d3f95ac9 100644 --- a/src/constants/proxyColonies.ts +++ b/src/constants/proxyColonies.ts @@ -7,17 +7,20 @@ import PolygonIcon from '~icons/PolygonIcon.tsx'; import { type SupportedChain } from '~types/proxyColonies.ts'; // @TODO this probably needs to be setup more dynamically, but let's hardcode it for now -const ETHEREUM_NETWORK = { - name: 'Ethereum', - chainId: 265669101, - icon: EthereumIcon, -}; const POLYGON_NETWORK = { name: 'Polygon', - chainId: 265669102, + chainId: 265669101, icon: PolygonIcon, }; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const ETHEREUM_NETWORK = { + name: 'Ethereum', + chainId: 265669102, + icon: EthereumIcon, +}; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars const BASE_NETWORK = { name: 'Base', chainId: 265669103, @@ -25,12 +28,15 @@ const BASE_NETWORK = { isDisabled: true, }; +// eslint-disable-next-line @typescript-eslint/no-unused-vars const OPTIMISM_NETWORK = { name: 'Optimism', chainId: 265669104, icon: OptimismIcon, isDisabled: true, }; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars const AVALANCHE_NETWORK = { name: 'Avalanche', chainId: 265669105, @@ -38,6 +44,7 @@ const AVALANCHE_NETWORK = { isDisabled: true, }; +// eslint-disable-next-line @typescript-eslint/no-unused-vars const BINANCE_NETWORK = { name: 'Binance', chainId: 265669106, @@ -45,11 +52,4 @@ const BINANCE_NETWORK = { isDisabled: true, }; -export const SUPPORTED_CHAINS: SupportedChain[] = [ - ETHEREUM_NETWORK, - POLYGON_NETWORK, - BASE_NETWORK, - OPTIMISM_NETWORK, - AVALANCHE_NETWORK, - BINANCE_NETWORK, -]; +export const SUPPORTED_CHAINS: SupportedChain[] = [POLYGON_NETWORK]; From c9c097ecd1ee0b30c7442dd74869be8dff8f0cc1 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Wed, 22 Jan 2025 13:29:36 +0100 Subject: [PATCH 40/66] Feat: Fetch available chains from DB and update SUPPORTED_CHAINS config Feat: Fetch available chains from DB and update SUPPORTED_CHAINS config --- .../colonycdapp/schema/proxyColonies.graphql | 11 ++ .../helpers/mapItemToMessageFormat.tsx | 2 +- .../ManageSupportedChainsDescription.tsx | 2 +- .../partials/ChainSelect/hooks.ts | 35 ++-- .../ManageSupportedChain.tsx | 2 +- src/constants/index.ts | 30 ++++ src/constants/proxyColonies.ts | 67 ++------ src/graphql/fragments/proxyColonies.graphql | 5 + src/graphql/generated.ts | 159 ++++++++++++++++++ src/graphql/queries/proxyColonies.graphql | 8 + src/utils/proxyColonies.ts | 2 +- 11 files changed, 254 insertions(+), 69 deletions(-) diff --git a/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql b/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql index 54a70db4a5b..8d672669a11 100644 --- a/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql +++ b/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql @@ -22,3 +22,14 @@ type ProxyColony @model { """ isActive: Boolean! } + +type SupportedChain @model { + """ + The chainId of the supported chain + """ + id: ID! + """ + A flag that tells us if the supported chain is active or not + """ + isActive: Boolean +} diff --git a/src/components/common/ColonyActions/helpers/mapItemToMessageFormat.tsx b/src/components/common/ColonyActions/helpers/mapItemToMessageFormat.tsx index de4f155525c..bc3372b8bb1 100644 --- a/src/components/common/ColonyActions/helpers/mapItemToMessageFormat.tsx +++ b/src/components/common/ColonyActions/helpers/mapItemToMessageFormat.tsx @@ -211,7 +211,7 @@ const getExpenditureStagesData = ( const getProxyColonyDeployedChain = (actionData: ColonyAction) => { const chainInfo = findSupportedChain(actionData?.targetChainId); - return chainInfo?.name; + return chainInfo?.shortName; }; export const useMapColonyActionToExpectedFormat = ({ diff --git a/src/components/v5/common/ActionSidebar/partials/ActionSidebarDescription/partials/ManageSupportedChainsDescription.tsx b/src/components/v5/common/ActionSidebar/partials/ActionSidebarDescription/partials/ManageSupportedChainsDescription.tsx index 4ef049b8214..09f9bb4ddf3 100644 --- a/src/components/v5/common/ActionSidebar/partials/ActionSidebarDescription/partials/ManageSupportedChainsDescription.tsx +++ b/src/components/v5/common/ActionSidebar/partials/ActionSidebarDescription/partials/ManageSupportedChainsDescription.tsx @@ -40,7 +40,7 @@ export const ManageSupportedChainsDescription = () => { { - const chainOptions = useMemo( - () => - SUPPORTED_CHAINS.map(({ icon, chainId, name, isDisabled }) => ({ - icon, - isDisabled, - value: chainId, - label: name, - })).filter((option) => filterOptionsFn && filterOptionsFn(option)), - [filterOptionsFn], - ); + const { data } = useGetSupportedChainsQuery(); + + const chainOptions = useMemo(() => { + return (data?.listSupportedChains?.items ?? []) + .map((chain) => { + const chainConfig = SUPPORTED_CHAINS.find( + (supportedChain) => supportedChain.chainId === chain?.id, + ); + if (!chainConfig) { + return null; + } + + return { + icon: chainConfig.icon ?? GanacheIcon, + isDisabled: !chain?.isActive, + value: chainConfig.chainId, + label: chainConfig.shortName, + }; + }) + .filter(notNull) + .filter((option) => filterOptionsFn && filterOptionsFn(option)); + }, [data, filterOptionsFn]); return chainOptions; }; diff --git a/src/components/v5/common/CompletedAction/partials/ManageSupportedChain/ManageSupportedChain.tsx b/src/components/v5/common/CompletedAction/partials/ManageSupportedChain/ManageSupportedChain.tsx index faad55b1843..5573317769f 100644 --- a/src/components/v5/common/CompletedAction/partials/ManageSupportedChain/ManageSupportedChain.tsx +++ b/src/components/v5/common/CompletedAction/partials/ManageSupportedChain/ManageSupportedChain.tsx @@ -75,7 +75,7 @@ const ManageSupportedChain: FC = ({ action }) => { }, { actionType: action.type, - chain: chainInfo?.name, + chain: chainInfo?.shortName, initiator: initiatorUser || initiatorAddress ? ( ; }; +export type CreateSupportedChainInput = { + id?: InputMaybe; + isActive?: InputMaybe; +}; + export type CreateTokenExchangeRateInput = { date: Scalars['AWSDateTime']; id?: InputMaybe; @@ -2224,6 +2229,10 @@ export type DeleteStreamingPaymentMetadataInput = { id: Scalars['ID']; }; +export type DeleteSupportedChainInput = { + id: Scalars['ID']; +}; + export type DeleteTokenExchangeRateInput = { id: Scalars['ID']; }; @@ -4849,6 +4858,13 @@ export type ModelSubscriptionStringInput = { notIn?: InputMaybe>>; }; +export type ModelSubscriptionSupportedChainFilterInput = { + and?: InputMaybe>>; + id?: InputMaybe; + isActive?: InputMaybe; + or?: InputMaybe>>; +}; + export type ModelSubscriptionTokenExchangeRateFilterInput = { and?: InputMaybe>>; date?: InputMaybe; @@ -4941,6 +4957,27 @@ export type ModelSubscriptionVoterRewardsHistoryFilterInput = { userAddress?: InputMaybe; }; +export type ModelSupportedChainConditionInput = { + and?: InputMaybe>>; + isActive?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; +}; + +export type ModelSupportedChainConnection = { + __typename?: 'ModelSupportedChainConnection'; + items: Array>; + nextToken?: Maybe; +}; + +export type ModelSupportedChainFilterInput = { + and?: InputMaybe>>; + id?: InputMaybe; + isActive?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; +}; + export type ModelSupportedCurrenciesInput = { eq?: InputMaybe; ne?: InputMaybe; @@ -5433,6 +5470,7 @@ export type Mutation = { createSafeTransactionData?: Maybe; createStreamingPayment?: Maybe; createStreamingPaymentMetadata?: Maybe; + createSupportedChain?: Maybe; createToken?: Maybe; createTokenExchangeRate?: Maybe; createTransaction?: Maybe; @@ -5482,6 +5520,7 @@ export type Mutation = { deleteSafeTransactionData?: Maybe; deleteStreamingPayment?: Maybe; deleteStreamingPaymentMetadata?: Maybe; + deleteSupportedChain?: Maybe; deleteToken?: Maybe; deleteTokenExchangeRate?: Maybe; deleteTransaction?: Maybe; @@ -5531,6 +5570,7 @@ export type Mutation = { updateSafeTransactionData?: Maybe; updateStreamingPayment?: Maybe; updateStreamingPaymentMetadata?: Maybe; + updateSupportedChain?: Maybe; updateToken?: Maybe; updateTokenExchangeRate?: Maybe; updateTransaction?: Maybe; @@ -5833,6 +5873,13 @@ export type MutationCreateStreamingPaymentMetadataArgs = { }; +/** Root mutation type */ +export type MutationCreateSupportedChainArgs = { + condition?: InputMaybe; + input: CreateSupportedChainInput; +}; + + /** Root mutation type */ export type MutationCreateTokenArgs = { condition?: InputMaybe; @@ -6160,6 +6207,13 @@ export type MutationDeleteStreamingPaymentMetadataArgs = { }; +/** Root mutation type */ +export type MutationDeleteSupportedChainArgs = { + condition?: InputMaybe; + input: DeleteSupportedChainInput; +}; + + /** Root mutation type */ export type MutationDeleteTokenArgs = { condition?: InputMaybe; @@ -6487,6 +6541,13 @@ export type MutationUpdateStreamingPaymentMetadataArgs = { }; +/** Root mutation type */ +export type MutationUpdateSupportedChainArgs = { + condition?: InputMaybe; + input: UpdateSupportedChainInput; +}; + + /** Root mutation type */ export type MutationUpdateTokenArgs = { condition?: InputMaybe; @@ -6904,6 +6965,7 @@ export type Query = { getSafeTransactionStatus?: Maybe>; getStreamingPayment?: Maybe; getStreamingPaymentMetadata?: Maybe; + getSupportedChain?: Maybe; getToken?: Maybe; getTokenByAddress?: Maybe; getTokenExchangeRate?: Maybe; @@ -6969,6 +7031,7 @@ export type Query = { listSafeTransactions?: Maybe; listStreamingPaymentMetadata?: Maybe; listStreamingPayments?: Maybe; + listSupportedChains?: Maybe; listTokenExchangeRates?: Maybe; listTokens?: Maybe; listTransactions?: Maybe; @@ -7657,6 +7720,12 @@ export type QueryGetStreamingPaymentMetadataArgs = { }; +/** Root query type */ +export type QueryGetSupportedChainArgs = { + id: Scalars['ID']; +}; + + /** Root query type */ export type QueryGetTokenArgs = { id: Scalars['ID']; @@ -8134,6 +8203,14 @@ export type QueryListStreamingPaymentsArgs = { }; +/** Root query type */ +export type QueryListSupportedChainsArgs = { + filter?: InputMaybe; + limit?: InputMaybe; + nextToken?: InputMaybe; +}; + + /** Root query type */ export type QueryListTokenExchangeRatesArgs = { filter?: InputMaybe; @@ -8734,6 +8811,7 @@ export type Subscription = { onCreateSafeTransactionData?: Maybe; onCreateStreamingPayment?: Maybe; onCreateStreamingPaymentMetadata?: Maybe; + onCreateSupportedChain?: Maybe; onCreateToken?: Maybe; onCreateTokenExchangeRate?: Maybe; onCreateTransaction?: Maybe; @@ -8779,6 +8857,7 @@ export type Subscription = { onDeleteSafeTransactionData?: Maybe; onDeleteStreamingPayment?: Maybe; onDeleteStreamingPaymentMetadata?: Maybe; + onDeleteSupportedChain?: Maybe; onDeleteToken?: Maybe; onDeleteTokenExchangeRate?: Maybe; onDeleteTransaction?: Maybe; @@ -8824,6 +8903,7 @@ export type Subscription = { onUpdateSafeTransactionData?: Maybe; onUpdateStreamingPayment?: Maybe; onUpdateStreamingPaymentMetadata?: Maybe; + onUpdateSupportedChain?: Maybe; onUpdateToken?: Maybe; onUpdateTokenExchangeRate?: Maybe; onUpdateTransaction?: Maybe; @@ -9024,6 +9104,11 @@ export type SubscriptionOnCreateStreamingPaymentMetadataArgs = { }; +export type SubscriptionOnCreateSupportedChainArgs = { + filter?: InputMaybe; +}; + + export type SubscriptionOnCreateTokenArgs = { filter?: InputMaybe; }; @@ -9249,6 +9334,11 @@ export type SubscriptionOnDeleteStreamingPaymentMetadataArgs = { }; +export type SubscriptionOnDeleteSupportedChainArgs = { + filter?: InputMaybe; +}; + + export type SubscriptionOnDeleteTokenArgs = { filter?: InputMaybe; }; @@ -9474,6 +9564,11 @@ export type SubscriptionOnUpdateStreamingPaymentMetadataArgs = { }; +export type SubscriptionOnUpdateSupportedChainArgs = { + filter?: InputMaybe; +}; + + export type SubscriptionOnUpdateTokenArgs = { filter?: InputMaybe; }; @@ -9508,6 +9603,16 @@ export type SubscriptionOnUpdateVoterRewardsHistoryArgs = { filter?: InputMaybe; }; +export type SupportedChain = { + __typename?: 'SupportedChain'; + createdAt: Scalars['AWSDateTime']; + /** The chainId of the supported chain */ + id: Scalars['ID']; + /** A flag that tells us if the supported chain is active or not */ + isActive?: Maybe; + updatedAt: Scalars['AWSDateTime']; +}; + /** Represents the currencies/tokens that users' balances can be converted to (for display purposes) */ export enum SupportedCurrencies { Brl = 'BRL', @@ -10230,6 +10335,11 @@ export type UpdateStreamingPaymentMetadataInput = { limitAmount?: InputMaybe; }; +export type UpdateSupportedChainInput = { + id: Scalars['ID']; + isActive?: InputMaybe; +}; + export type UpdateTokenExchangeRateInput = { date?: InputMaybe; id: Scalars['ID']; @@ -10626,6 +10736,8 @@ export type LiquidationAddressFragment = { __typename?: 'LiquidationAddress', id export type ProxyColonyFragment = { __typename?: 'ProxyColony', id: string, colonyAddress: string, chainId: string, isActive: boolean }; +export type SupportedChainFragment = { __typename?: 'SupportedChain', id: string, isActive?: boolean | null }; + export type ColonyUserRoleFragment = { __typename?: 'ColonyRole', id: string, targetAddress: string, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, targetUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null }; export type NftDataFragment = { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string }; @@ -11211,6 +11323,11 @@ export type GetProxyColoniesQueryVariables = Exact<{ export type GetProxyColoniesQuery = { __typename?: 'Query', getProxyColoniesByColonyAddress?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', id: string, colonyAddress: string, chainId: string, isActive: boolean } | null> } | null }; +export type GetSupportedChainsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type GetSupportedChainsQuery = { __typename?: 'Query', listSupportedChains?: { __typename?: 'ModelSupportedChainConnection', items: Array<{ __typename?: 'SupportedChain', id: string, isActive?: boolean | null } | null> } | null }; + export type GetColonyHistoricRoleRolesQueryVariables = Exact<{ id: Scalars['ID']; }>; @@ -12008,6 +12125,12 @@ export const ProxyColonyFragmentDoc = gql` isActive } `; +export const SupportedChainFragmentDoc = gql` + fragment SupportedChain on SupportedChain { + id + isActive +} + `; export const ColonyUserRoleFragmentDoc = gql` fragment ColonyUserRole on ColonyRole { id @@ -15464,6 +15587,42 @@ export function useGetProxyColoniesLazyQuery(baseOptions?: Apollo.LazyQueryHookO export type GetProxyColoniesQueryHookResult = ReturnType; export type GetProxyColoniesLazyQueryHookResult = ReturnType; export type GetProxyColoniesQueryResult = Apollo.QueryResult; +export const GetSupportedChainsDocument = gql` + query GetSupportedChains { + listSupportedChains { + items { + ...SupportedChain + } + } +} + ${SupportedChainFragmentDoc}`; + +/** + * __useGetSupportedChainsQuery__ + * + * To run a query within a React component, call `useGetSupportedChainsQuery` and pass it any options that fit your needs. + * When your component renders, `useGetSupportedChainsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetSupportedChainsQuery({ + * variables: { + * }, + * }); + */ +export function useGetSupportedChainsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetSupportedChainsDocument, options); + } +export function useGetSupportedChainsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetSupportedChainsDocument, options); + } +export type GetSupportedChainsQueryHookResult = ReturnType; +export type GetSupportedChainsLazyQueryHookResult = ReturnType; +export type GetSupportedChainsQueryResult = Apollo.QueryResult; export const GetColonyHistoricRoleRolesDocument = gql` query GetColonyHistoricRoleRoles($id: ID!) { getColonyHistoricRole(id: $id) { diff --git a/src/graphql/queries/proxyColonies.graphql b/src/graphql/queries/proxyColonies.graphql index b81f6b87a90..41b8f2cf00a 100644 --- a/src/graphql/queries/proxyColonies.graphql +++ b/src/graphql/queries/proxyColonies.graphql @@ -5,3 +5,11 @@ query GetProxyColonies($colonyAddress: ID!) { } } } + +query GetSupportedChains { + listSupportedChains { + items { + ...SupportedChain + } + } +} diff --git a/src/utils/proxyColonies.ts b/src/utils/proxyColonies.ts index dec58fa086b..2f973594739 100644 --- a/src/utils/proxyColonies.ts +++ b/src/utils/proxyColonies.ts @@ -7,6 +7,6 @@ export const findSupportedChain = (chainId: number | undefined | null) => { return null; } return SUPPORTED_CHAINS.find( - (supportedChain) => supportedChain.chainId === chainId, + (supportedChain) => supportedChain.chainId === chainId.toString(), ); }; From 11b0f44f3ea4f41f39062a1a4e30ee5a3f27cac1 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Wed, 22 Jan 2025 15:03:23 +0100 Subject: [PATCH 41/66] Fix: Add AMOY_NETWORK to supported chains config Fix: Add AMOY_NETWORK to supported chains config --- src/constants/proxyColonies.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/constants/proxyColonies.ts b/src/constants/proxyColonies.ts index ff5aab84a0d..6d3e0b1fb30 100644 --- a/src/constants/proxyColonies.ts +++ b/src/constants/proxyColonies.ts @@ -1,5 +1,6 @@ import { POLYGON_NETWORK, + AMOY_NETWORK, GANACHE_NETWORK_1, GANACHE_NETWORK_2, type NetworkInfo, @@ -7,6 +8,7 @@ import { export const SUPPORTED_CHAINS: NetworkInfo[] = [ POLYGON_NETWORK, + AMOY_NETWORK, GANACHE_NETWORK_1, GANACHE_NETWORK_2, ]; From 96f923b6a2805984c478837922c3e715cecd5b55 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Wed, 22 Jan 2025 15:09:45 +0100 Subject: [PATCH 42/66] Chore: Update block ingestors hash Chore: Update block ingestors hash --- docker/colony-cdapp-dev-env-block-ingestor | 2 +- docker/colony-cdapp-dev-env-proxy-block-ingestor | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/colony-cdapp-dev-env-block-ingestor b/docker/colony-cdapp-dev-env-block-ingestor index 887cb326974..17e573dbf4a 100644 --- a/docker/colony-cdapp-dev-env-block-ingestor +++ b/docker/colony-cdapp-dev-env-block-ingestor @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV BLOCK_INGESTOR_HASH=983e0b68472b8f7f7406352679e29b2d2d4d49c0 +ENV BLOCK_INGESTOR_HASH=4ac06d5744f8ada7b80047afd586da4d82898436 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/colony-cdapp-dev-env-proxy-block-ingestor b/docker/colony-cdapp-dev-env-proxy-block-ingestor index 2fb0c2f1fcb..2d8f7d9b62a 100644 --- a/docker/colony-cdapp-dev-env-proxy-block-ingestor +++ b/docker/colony-cdapp-dev-env-proxy-block-ingestor @@ -1,7 +1,7 @@ FROM colony-cdapp-dev-env/base:latest # @TODO maybe add a PROXY_BLOCK_INGESTOR_HASH and fallback to BLOCK_INGESTOR_HASH -ENV BLOCK_INGESTOR_HASH=983e0b68472b8f7f7406352679e29b2d2d4d49c0 +ENV BLOCK_INGESTOR_HASH=4ac06d5744f8ada7b80047afd586da4d82898436 ENV CHAIN_RPC_ENDPOINTS='["http://network-contracts-remote:8545", "http://network-contracts-remote-2:8545"]' ENV STATS_PORTS='["10002", "10003"]' From bf3122c92c98d34c5705053a52de3109ba8b306f Mon Sep 17 00:00:00 2001 From: Bassgeta Date: Tue, 28 Jan 2025 16:09:15 +0100 Subject: [PATCH 43/66] feat: decouple multiChainInfo to a new model --- .../api/colonycdapp/schema/schema.graphql | 15 +- docker/colony-cdapp-dev-env-block-ingestor | 2 +- .../colony-cdapp-dev-env-proxy-block-ingestor | 2 +- src/graphql/generated.ts | 133 ++++++++++++++++-- 4 files changed, 139 insertions(+), 13 deletions(-) diff --git a/amplify/backend/api/colonycdapp/schema/schema.graphql b/amplify/backend/api/colonycdapp/schema/schema.graphql index b6a8b712d15..aec0441487a 100644 --- a/amplify/backend/api/colonycdapp/schema/schema.graphql +++ b/amplify/backend/api/colonycdapp/schema/schema.graphql @@ -3580,9 +3580,13 @@ type ColonyAction @model @searchable { expenditureSlotIds: [Int!] arbitraryTransactions: [ColonyActionArbitraryTransaction!] """ + The id of the multichain info entry + """ + multiChainInfoId: ID + """ Multichain info if the action is bridged """ - multiChainInfo: MultiChainInfo + multiChainInfo: MultiChainInfo @hasOne(fields: ["multiChainInfoId"]) """ Target chain id if the action is on a proxy colony chain """ @@ -3597,8 +3601,13 @@ type ColonyAction @model @searchable { finalizedActionData: ColonyAction @hasOne(fields: ["finalizedActionId"]) } -type MultiChainInfo { - completed: Boolean! +type MultiChainInfo @model { + """ + The format is txHash_chainId + """ + id: ID! + completedOnMainChain: Boolean! + completedOnProxyChain: Boolean! wormholeInfo: ActionWormholeInfo } diff --git a/docker/colony-cdapp-dev-env-block-ingestor b/docker/colony-cdapp-dev-env-block-ingestor index 17e573dbf4a..47a3141d2b9 100644 --- a/docker/colony-cdapp-dev-env-block-ingestor +++ b/docker/colony-cdapp-dev-env-block-ingestor @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV BLOCK_INGESTOR_HASH=4ac06d5744f8ada7b80047afd586da4d82898436 +ENV BLOCK_INGESTOR_HASH=1b39cf385254c2117dff2e0e8a0c9578c549ed6e # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/colony-cdapp-dev-env-proxy-block-ingestor b/docker/colony-cdapp-dev-env-proxy-block-ingestor index 2d8f7d9b62a..5bbc1a1c3e1 100644 --- a/docker/colony-cdapp-dev-env-proxy-block-ingestor +++ b/docker/colony-cdapp-dev-env-proxy-block-ingestor @@ -1,7 +1,7 @@ FROM colony-cdapp-dev-env/base:latest # @TODO maybe add a PROXY_BLOCK_INGESTOR_HASH and fallback to BLOCK_INGESTOR_HASH -ENV BLOCK_INGESTOR_HASH=4ac06d5744f8ada7b80047afd586da4d82898436 +ENV BLOCK_INGESTOR_HASH=1b39cf385254c2117dff2e0e8a0c9578c549ed6e ENV CHAIN_RPC_ENDPOINTS='["http://network-contracts-remote:8545", "http://network-contracts-remote-2:8545"]' ENV STATS_PORTS='["10002", "10003"]' diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index 2c1cfefa409..70bb4885b9f 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -514,6 +514,8 @@ export type ColonyAction = { motionId?: Maybe; /** Multichain info if the action is bridged */ multiChainInfo?: Maybe; + /** The id of the multichain info entry */ + multiChainInfoId?: Maybe; /** Expanded `ColonyMultiSig` for the corresponding `multiSigId` */ multiSigData?: Maybe; /** The internal database id of the multiSig */ @@ -638,6 +640,8 @@ export enum ColonyActionType { AddVerifiedMembers = 'ADD_VERIFIED_MEMBERS', AddVerifiedMembersMotion = 'ADD_VERIFIED_MEMBERS_MOTION', AddVerifiedMembersMultisig = 'ADD_VERIFIED_MEMBERS_MULTISIG', + /** An action related to arbitrary transaction */ + ArbitraryTx = 'ARBITRARY_TX', /** An action related to canceling an expenditure */ CancelExpenditure = 'CANCEL_EXPENDITURE', /** An action related to a motion to cancel an expenditure */ @@ -1513,7 +1517,7 @@ export type CreateColonyActionInput = { members?: InputMaybe>; motionDomainId?: InputMaybe; motionId?: InputMaybe; - multiChainInfo?: InputMaybe; + multiChainInfoId?: InputMaybe; multiSigId?: InputMaybe; networkFee?: InputMaybe; newColonyVersion?: InputMaybe; @@ -1853,6 +1857,13 @@ export type CreateMotionMessageInput = { vote?: InputMaybe; }; +export type CreateMultiChainInfoInput = { + completedOnMainChain: Scalars['Boolean']; + completedOnProxyChain: Scalars['Boolean']; + id?: InputMaybe; + wormholeInfo?: InputMaybe; +}; + export type CreateMultiSigUserSignatureInput = { colonyAddress: Scalars['ID']; createdAt?: InputMaybe; @@ -2189,6 +2200,10 @@ export type DeleteMotionMessageInput = { id: Scalars['ID']; }; +export type DeleteMultiChainInfoInput = { + id: Scalars['ID']; +}; + export type DeleteMultiSigUserSignatureInput = { id: Scalars['ID']; }; @@ -2992,6 +3007,7 @@ export type ModelColonyActionConditionInput = { members?: InputMaybe; motionDomainId?: InputMaybe; motionId?: InputMaybe; + multiChainInfoId?: InputMaybe; multiSigId?: InputMaybe; networkFee?: InputMaybe; newColonyVersion?: InputMaybe; @@ -3040,6 +3056,7 @@ export type ModelColonyActionFilterInput = { members?: InputMaybe; motionDomainId?: InputMaybe; motionId?: InputMaybe; + multiChainInfoId?: InputMaybe; multiSigId?: InputMaybe; networkFee?: InputMaybe; newColonyVersion?: InputMaybe; @@ -3973,6 +3990,29 @@ export type ModelMotionMessageFilterInput = { vote?: InputMaybe; }; +export type ModelMultiChainInfoConditionInput = { + and?: InputMaybe>>; + completedOnMainChain?: InputMaybe; + completedOnProxyChain?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; +}; + +export type ModelMultiChainInfoConnection = { + __typename?: 'ModelMultiChainInfoConnection'; + items: Array>; + nextToken?: Maybe; +}; + +export type ModelMultiChainInfoFilterInput = { + and?: InputMaybe>>; + completedOnMainChain?: InputMaybe; + completedOnProxyChain?: InputMaybe; + id?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; +}; + export type ModelMultiSigUserSignatureConditionInput = { and?: InputMaybe>>; colonyAddress?: InputMaybe; @@ -4366,6 +4406,7 @@ export type ModelSubscriptionColonyActionFilterInput = { members?: InputMaybe; motionDomainId?: InputMaybe; motionId?: InputMaybe; + multiChainInfoId?: InputMaybe; multiSigId?: InputMaybe; networkFee?: InputMaybe; newColonyVersion?: InputMaybe; @@ -4737,6 +4778,14 @@ export type ModelSubscriptionMotionMessageFilterInput = { vote?: InputMaybe; }; +export type ModelSubscriptionMultiChainInfoFilterInput = { + and?: InputMaybe>>; + completedOnMainChain?: InputMaybe; + completedOnProxyChain?: InputMaybe; + id?: InputMaybe; + or?: InputMaybe>>; +}; + export type ModelSubscriptionMultiSigUserSignatureFilterInput = { and?: InputMaybe>>; colonyAddress?: InputMaybe; @@ -5371,15 +5420,15 @@ export type MotionStateHistoryInput = { export type MultiChainInfo = { __typename?: 'MultiChainInfo'; - completed: Scalars['Boolean']; + completedOnMainChain: Scalars['Boolean']; + completedOnProxyChain: Scalars['Boolean']; + createdAt: Scalars['AWSDateTime']; + /** The format is txHash_chainId */ + id: Scalars['ID']; + updatedAt: Scalars['AWSDateTime']; wormholeInfo?: Maybe; }; -export type MultiChainInfoInput = { - completed: Scalars['Boolean']; - wormholeInfo?: InputMaybe; -}; - export type MultiSigDomainConfig = { __typename?: 'MultiSigDomainConfig'; domainId: Scalars['ID']; @@ -5460,6 +5509,7 @@ export type Mutation = { createIngestorStats?: Maybe; createLiquidationAddress?: Maybe; createMotionMessage?: Maybe; + createMultiChainInfo?: Maybe; createMultiSigUserSignature?: Maybe; createNotificationsData?: Maybe; createPrivateBetaInviteCode?: Maybe; @@ -5510,6 +5560,7 @@ export type Mutation = { deleteIngestorStats?: Maybe; deleteLiquidationAddress?: Maybe; deleteMotionMessage?: Maybe; + deleteMultiChainInfo?: Maybe; deleteMultiSigUserSignature?: Maybe; deleteNotificationsData?: Maybe; deletePrivateBetaInviteCode?: Maybe; @@ -5560,6 +5611,7 @@ export type Mutation = { updateIngestorStats?: Maybe; updateLiquidationAddress?: Maybe; updateMotionMessage?: Maybe; + updateMultiChainInfo?: Maybe; updateMultiSigUserSignature?: Maybe; updateNotificationsData?: Maybe; updatePrivateBetaInviteCode?: Maybe; @@ -5803,6 +5855,13 @@ export type MutationCreateMotionMessageArgs = { }; +/** Root mutation type */ +export type MutationCreateMultiChainInfoArgs = { + condition?: InputMaybe; + input: CreateMultiChainInfoInput; +}; + + /** Root mutation type */ export type MutationCreateMultiSigUserSignatureArgs = { condition?: InputMaybe; @@ -6137,6 +6196,13 @@ export type MutationDeleteMotionMessageArgs = { }; +/** Root mutation type */ +export type MutationDeleteMultiChainInfoArgs = { + condition?: InputMaybe; + input: DeleteMultiChainInfoInput; +}; + + /** Root mutation type */ export type MutationDeleteMultiSigUserSignatureArgs = { condition?: InputMaybe; @@ -6471,6 +6537,13 @@ export type MutationUpdateMotionMessageArgs = { }; +/** Root mutation type */ +export type MutationUpdateMultiChainInfoArgs = { + condition?: InputMaybe; + input: UpdateMultiChainInfoInput; +}; + + /** Root mutation type */ export type MutationUpdateMultiSigUserSignatureArgs = { condition?: InputMaybe; @@ -6944,6 +7017,7 @@ export type Query = { /** Get the timeout for the current period of a motion */ getMotionTimeoutPeriods?: Maybe; getMotionVoterRewards?: Maybe; + getMultiChainInfo?: Maybe; getMultiSigByColonyAddress?: Maybe; getMultiSigByExpenditureId?: Maybe; getMultiSigByTransactionHash?: Maybe; @@ -7021,6 +7095,7 @@ export type Query = { listIngestorStats?: Maybe; listLiquidationAddresses?: Maybe; listMotionMessages?: Maybe; + listMultiChainInfos?: Maybe; listMultiSigUserSignatures?: Maybe; listNotificationsData?: Maybe; listPrivateBetaInviteCodes?: Maybe; @@ -7551,6 +7626,12 @@ export type QueryGetMotionVoterRewardsArgs = { }; +/** Root query type */ +export type QueryGetMultiChainInfoArgs = { + id: Scalars['ID']; +}; + + /** Root query type */ export type QueryGetMultiSigByColonyAddressArgs = { colonyAddress: Scalars['ID']; @@ -8121,6 +8202,14 @@ export type QueryListMotionMessagesArgs = { }; +/** Root query type */ +export type QueryListMultiChainInfosArgs = { + filter?: InputMaybe; + limit?: InputMaybe; + nextToken?: InputMaybe; +}; + + /** Root query type */ export type QueryListMultiSigUserSignaturesArgs = { filter?: InputMaybe; @@ -8428,6 +8517,7 @@ export enum SearchableColonyActionAggregateField { Members = 'members', MotionDomainId = 'motionDomainId', MotionId = 'motionId', + MultiChainInfoId = 'multiChainInfoId', MultiSigId = 'multiSigId', NetworkFee = 'networkFee', NewColonyVersion = 'newColonyVersion', @@ -8483,6 +8573,7 @@ export type SearchableColonyActionFilterInput = { members?: InputMaybe; motionDomainId?: InputMaybe; motionId?: InputMaybe; + multiChainInfoId?: InputMaybe; multiSigId?: InputMaybe; networkFee?: InputMaybe; newColonyVersion?: InputMaybe; @@ -8530,6 +8621,7 @@ export enum SearchableColonyActionSortableFields { Members = 'members', MotionDomainId = 'motionDomainId', MotionId = 'motionId', + MultiChainInfoId = 'multiChainInfoId', MultiSigId = 'multiSigId', NetworkFee = 'networkFee', NewColonyVersion = 'newColonyVersion', @@ -8801,6 +8893,7 @@ export type Subscription = { onCreateIngestorStats?: Maybe; onCreateLiquidationAddress?: Maybe; onCreateMotionMessage?: Maybe; + onCreateMultiChainInfo?: Maybe; onCreateMultiSigUserSignature?: Maybe; onCreateNotificationsData?: Maybe; onCreatePrivateBetaInviteCode?: Maybe; @@ -8847,6 +8940,7 @@ export type Subscription = { onDeleteIngestorStats?: Maybe; onDeleteLiquidationAddress?: Maybe; onDeleteMotionMessage?: Maybe; + onDeleteMultiChainInfo?: Maybe; onDeleteMultiSigUserSignature?: Maybe; onDeleteNotificationsData?: Maybe; onDeletePrivateBetaInviteCode?: Maybe; @@ -8893,6 +8987,7 @@ export type Subscription = { onUpdateIngestorStats?: Maybe; onUpdateLiquidationAddress?: Maybe; onUpdateMotionMessage?: Maybe; + onUpdateMultiChainInfo?: Maybe; onUpdateMultiSigUserSignature?: Maybe; onUpdateNotificationsData?: Maybe; onUpdatePrivateBetaInviteCode?: Maybe; @@ -9054,6 +9149,11 @@ export type SubscriptionOnCreateMotionMessageArgs = { }; +export type SubscriptionOnCreateMultiChainInfoArgs = { + filter?: InputMaybe; +}; + + export type SubscriptionOnCreateMultiSigUserSignatureArgs = { filter?: InputMaybe; }; @@ -9284,6 +9384,11 @@ export type SubscriptionOnDeleteMotionMessageArgs = { }; +export type SubscriptionOnDeleteMultiChainInfoArgs = { + filter?: InputMaybe; +}; + + export type SubscriptionOnDeleteMultiSigUserSignatureArgs = { filter?: InputMaybe; }; @@ -9514,6 +9619,11 @@ export type SubscriptionOnUpdateMotionMessageArgs = { }; +export type SubscriptionOnUpdateMultiChainInfoArgs = { + filter?: InputMaybe; +}; + + export type SubscriptionOnUpdateMultiSigUserSignatureArgs = { filter?: InputMaybe; }; @@ -9895,7 +10005,7 @@ export type UpdateColonyActionInput = { members?: InputMaybe>; motionDomainId?: InputMaybe; motionId?: InputMaybe; - multiChainInfo?: InputMaybe; + multiChainInfoId?: InputMaybe; multiSigId?: InputMaybe; networkFee?: InputMaybe; newColonyVersion?: InputMaybe; @@ -10241,6 +10351,13 @@ export type UpdateMotionMessageInput = { vote?: InputMaybe; }; +export type UpdateMultiChainInfoInput = { + completedOnMainChain?: InputMaybe; + completedOnProxyChain?: InputMaybe; + id: Scalars['ID']; + wormholeInfo?: InputMaybe; +}; + export type UpdateMultiSigUserSignatureInput = { colonyAddress?: InputMaybe; createdAt?: InputMaybe; From 97959f53df34798723dc175918533b1f59979aa2 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Thu, 23 Jan 2025 16:00:24 +0100 Subject: [PATCH 44/66] Feat: M2 Proxy Colonies has started - will be removed From d66112ea0a518208dfe4aebaed68961724a9f645 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Fri, 24 Jan 2025 17:09:55 +0100 Subject: [PATCH 45/66] Feat: Add colony native token deployment script for proxy chain Feat: Add colony native token deployment script for proxy chain --- .../colonycdapp/schema/proxyColonies.graphql | 3 +- .../api/colonycdapp/schema/schema.graphql | 4 - scripts/deploy-token-to-chain.js | 270 ++++++++++++++++++ scripts/utils/unlockMintTokens.js | 32 +++ .../sagas/proxyColonies/createProxyColony.ts | 2 - 5 files changed, 304 insertions(+), 7 deletions(-) create mode 100644 scripts/deploy-token-to-chain.js create mode 100644 scripts/utils/unlockMintTokens.js diff --git a/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql b/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql index 8d672669a11..f09d2d8a9ce 100644 --- a/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql +++ b/amplify/backend/api/colonycdapp/schema/proxyColonies.graphql @@ -9,7 +9,8 @@ type ProxyColony @model { """ Address of the colony on the blockchain """ - colonyAddress: ID! @index( + colonyAddress: ID! + @index( name: "byColonyAddress" queryField: "getProxyColoniesByColonyAddress" ) diff --git a/amplify/backend/api/colonycdapp/schema/schema.graphql b/amplify/backend/api/colonycdapp/schema/schema.graphql index aec0441487a..593f72c8a85 100644 --- a/amplify/backend/api/colonycdapp/schema/schema.graphql +++ b/amplify/backend/api/colonycdapp/schema/schema.graphql @@ -899,10 +899,6 @@ enum ColonyActionType { MANAGE_TOKENS_MOTION MANAGE_TOKENS_MULTISIG """ - An action related to arbitrary transaction - """ - ARBITRARY_TX - """ An action related to creating a proxy colony """ ADD_PROXY_COLONY diff --git a/scripts/deploy-token-to-chain.js b/scripts/deploy-token-to-chain.js new file mode 100644 index 00000000000..192160a8aa3 --- /dev/null +++ b/scripts/deploy-token-to-chain.js @@ -0,0 +1,270 @@ +const { + abi: metaTxAbi, + bytecode: metaTxBytecode, +} = require('@colony/abis/versions/hmwss/MetaTxToken'); +const { providers, ContractFactory } = require('ethers'); +const readline = require('readline'); +const { graphqlRequest } = require('./utils/graphqlRequest'); +const { unlockMintTokens } = require('./utils/unlockMintTokens'); + +const API_KEY = 'da2-fakeApiId123456'; +const GRAPHQL_URI = + process.env.AWS_APPSYNC_GRAPHQL_URL || 'http://localhost:20002/graphql'; + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, +}); + +// Function to prompt for any input +function promptQuestion(question) { + return new Promise((resolve) => { + rl.question(`${question}: `, (answer) => { + resolve(answer.trim()); + }); + }); +} + +/* + * Queries + */ + +const getColony = /* GraphQL */ ` + query GetColony($id: ID!) { + getColony(id: $id) { + colonyAddress: id + nativeToken { + tokenAddress: id + name + symbol + decimals + avatar + thumbnail + type + } + } + } +`; + +const getProxyColony = /* GraphQL */ ` + query GetProxyColony($id: ID!) { + getProxyColony(id: $id) { + id + } + } +`; + +/* + * Mutations + */ +const createForeignToken = /* GraphQL */ ` + mutation CreateToken($input: CreateTokenInput!) { + createToken(input: $input) { + id + } + } +`; + +const graphqlRequestPreconfigured = async (queryOrMutation, variables) => + graphqlRequest(queryOrMutation, variables, GRAPHQL_URI, API_KEY); + +const TokenFactoryConfig = (() => { + let tokenFactory = null; + + const createTokenFactory = (abi, bytecode, rpcUrl) => { + // Initialize the foreign provider using the provided RPC URL + const foreignProvider = new providers.JsonRpcProvider(rpcUrl); + + // Get the signer from the provider + const foreignSigner = foreignProvider.getSigner(); + + // Create the contract factory using the signer and bytecode + return new ContractFactory(abi, bytecode, foreignSigner); + }; + + return { + getTokenFactory: (rpcUrl) => { + if (!tokenFactory) { + tokenFactory = createTokenFactory(metaTxAbi, metaTxBytecode, rpcUrl); + } + + return tokenFactory; + }, + }; +})(); + +const getDeployedColonyToChain = async (chainId, colonyAddress) => { + const colonyQuery = await graphqlRequestPreconfigured(getColony, { + id: colonyAddress, + }); + + if (colonyQuery?.errors) { + throw Error(JSON.stringify(colonyQuery?.errors)); + } + + const colony = colonyQuery?.data?.getColony; + + const proxyColonyQuery = await graphqlRequestPreconfigured(getProxyColony, { + id: `${colony.colonyAddress}_${chainId}`, + }); + + const hasErrors = !!proxyColonyQuery?.errors; + const isProxyColonyExisting = !!proxyColonyQuery?.data?.getProxyColony?.id; + + if (!hasErrors && isProxyColonyExisting) { + return colony; + } +}; + +const deployNativeTokenToChain = async ( + tokenFactory, + chainId, + colonyNativeToken, + colonyAddress, +) => { + try { + if (!colonyNativeToken) { + throw new Error( + `No native token setup for colony with address ${colonyAddress}.`, + ); + } + + const foreignToken = await tokenFactory.deploy( + colonyNativeToken.name, + colonyNativeToken.symbol, + colonyNativeToken.decimals, + ); + + await foreignToken.deployTransaction.wait(); + + const createForeignTokenMutationResult = await graphqlRequestPreconfigured( + createForeignToken, + { + input: { + id: foreignToken.address, + name: `${colonyNativeToken.name} ${chainId}`, + symbol: colonyNativeToken.symbol, + decimals: colonyNativeToken.decimals, + avatar: colonyNativeToken.avatar, + thumbnail: colonyNativeToken.thumbnail, + type: colonyNativeToken.type, + chainMetadata: { + chainId, + }, + }, + }, + ); + + if (createForeignTokenMutationResult.errors) { + throw new Error( + `Error creating token for ${chainId} and ${colonyAddress}: ${JSON.stringify(createForeignTokenMutationResult.errors)}`, + ); + } + + console.log( + `Proxy token with address ${foreignToken.address} successfully deployed for colony with address ${colonyAddress}.`, + ); + + return foreignToken; + } catch (error) { + console.error( + `Error deploying proxy token for ${colonyAddress}: ${error.message}`, + ); + } +}; + +const getArgumentsFromConsole = async () => { + const foreignChainId = await promptQuestion( + 'Please provide the foreignChainId', + ); + + if (isNaN(foreignChainId) || Number.isInteger(foreignChainId)) { + console.error( + 'Error: The foreignChainId cannot be empty and must be a number.', + ); + process.exit(1); + } + + const foreignChainRpcUrl = await promptQuestion( + 'Please provide the foreignChainRpcUrl', + ); + + if (!foreignChainRpcUrl) { + console.error('Error: The foreignChainRpcUrl cannot be empty.'); + process.exit(1); + } + + const colonyAddress = await promptQuestion( + 'Please provide the colonyAddress', + ); + + if (!colonyAddress) { + console.error('Error: The colonyAddress cannot be empty.'); + process.exit(1); + } + + return { + colonyAddress, + foreignChainId, + foreignChainRpcUrl, + }; +}; + +const furtherActionsOnToken = async (colonyAddress, foreignToken) => { + const unlockMintTokensAction = await promptQuestion( + 'Do you want to unlock and mint tokens now? Y/N', + ); + + if (unlockMintTokensAction.toUpperCase() !== 'Y') { + console.log( + 'Skipping token unlock and minting. If you change your mind, please use the mint-tokens-on-chain script.', + ); + return; + } + + const tokenAmount = await promptQuestion( + 'Please provide a numeric tokenAmount. Press enter to default to 100', + ); + + if (tokenAmount && (isNaN(tokenAmount) || Number(tokenAmount) <= 0)) { + console.error('Error: Please enter a valid number greater than 0.'); + process.exit(1); + } + + await unlockMintTokens( + colonyAddress, + foreignToken, + !tokenAmount ? 100 : Number(tokenAmount), + ); +}; + +const start = async () => { + try { + const { foreignChainId, foreignChainRpcUrl, colonyAddress } = + await getArgumentsFromConsole(); + + const tokenFactory = TokenFactoryConfig.getTokenFactory(foreignChainRpcUrl); + const deployedColony = await getDeployedColonyToChain( + foreignChainId, + colonyAddress, + ); + + const { nativeToken: colonyNativeToken } = deployedColony; + const foreignToken = await deployNativeTokenToChain( + tokenFactory, + foreignChainId, + colonyNativeToken, + colonyAddress, + ); + + await furtherActionsOnToken(colonyAddress, foreignToken); + } catch (error) { + console.error( + `There was an error executing the deploy-token-to-chain script. Error: ${error.message}`, + ); + } finally { + rl.close(); + } +}; + +start(); diff --git a/scripts/utils/unlockMintTokens.js b/scripts/utils/unlockMintTokens.js new file mode 100644 index 00000000000..98d1a07f3f9 --- /dev/null +++ b/scripts/utils/unlockMintTokens.js @@ -0,0 +1,32 @@ +/** + * Unlocks a token and mints a specified amount of tokens to the colony address. + * + * @async + * @function unlockMintTokens + * @param {string} colonyAddress - The address of the colony where the tokens will be minted. + * @param {Object} token - The token contract representing the token to be unlocked and minted. + * @param {number|string|BigNumber} tokenAmount - The amount of tokens to mint. + * @returns {Promise} A promise that resolves when the token has been successfully unlocked and minted. + * @throws Will log an error message if unlocking or minting the token fails. + */ +const unlockMintTokens = async (colonyAddress, token, tokenAmount) => { + const tokenAddress = token.address; + try { + await token.unlock(); + + // The proxy colony address is the same as the main colony address + await token['mint(address,uint256)'](colonyAddress, tokenAmount); + + console.log( + `Proxy token with address ${tokenAddress} successfully unlocked and ${tokenAmount} tokens were minted.`, + ); + } catch { + console.error( + `Error while unlocking and minting foreign token with address ${tokenAddress}.`, + ); + } +}; + +module.exports = { + unlockMintTokens, +}; diff --git a/src/redux/sagas/proxyColonies/createProxyColony.ts b/src/redux/sagas/proxyColonies/createProxyColony.ts index 9bd47e71970..5e5bf776c1c 100644 --- a/src/redux/sagas/proxyColonies/createProxyColony.ts +++ b/src/redux/sagas/proxyColonies/createProxyColony.ts @@ -33,8 +33,6 @@ export type CreateProxyColonyPayload = Action['payload']; // @TODO if metatx are enabled sent a metaTx instead of tx -// @TODO we need to add the annotationMessage and the customActionTitle -// @TODO we need to add re-enable logic if the proxy colony was already deployed function* createProxyColony({ payload: { colonyAddress, From 3f15c192009419ee0c901c72a95779bd4dd2b0ad Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Mon, 27 Jan 2025 20:23:10 +0100 Subject: [PATCH 46/66] Feat: Add minting tokens script Feat: Add minting tokens script --- scripts/mint-tokens-on-chain.js | 108 ++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 scripts/mint-tokens-on-chain.js diff --git a/scripts/mint-tokens-on-chain.js b/scripts/mint-tokens-on-chain.js new file mode 100644 index 00000000000..39bd61c84d4 --- /dev/null +++ b/scripts/mint-tokens-on-chain.js @@ -0,0 +1,108 @@ +const { abi: metaTxAbi } = require('@colony/abis/versions/hmwss/MetaTxToken'); +const { utils, providers, Contract } = require('ethers'); +const readline = require('readline'); + +const { unlockMintTokens } = require('./utils/unlockMintTokens'); + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, +}); + +// Function to prompt for any input +function promptQuestion(question) { + return new Promise((resolve) => { + rl.question(`${question}: `, (answer) => { + resolve(answer.trim()); + }); + }); +} + +const TokenConfig = (() => { + let token = null; + + const getTokenContract = (tokenAddress, abi, rpcUrl) => { + // Initialize the foreign provider using the provided RPC URL + const foreignProvider = new providers.JsonRpcProvider(rpcUrl); + + // Get the signer from the provider + const foreignSigner = foreignProvider.getSigner(); + + const checksummedAddress = utils.getAddress(tokenAddress); + + // Create the contract factory using the signer and bytecode + return new Contract(checksummedAddress, abi, foreignSigner); + }; + + return { + getToken: (tokenAddress, rpcUrl) => { + if (!token) { + token = getTokenContract(tokenAddress, metaTxAbi, rpcUrl); + } + + return token; + }, + }; +})(); + +const getArgumentsFromConsole = async () => { + const foreignChainRpcUrl = await promptQuestion( + 'Please provide the foreignChainRpcUrl', + ); + + if (!foreignChainRpcUrl) { + console.error('Error: The foreignChainRpcUrl cannot be empty.'); + process.exit(1); + } + + const colonyAddress = await promptQuestion( + 'Please provide the colonyAddress', + ); + + if (!colonyAddress) { + console.error('Error: The colonyAddress cannot be empty.'); + process.exit(1); + } + + const tokenAddress = await promptQuestion('Please provide the tokenAddress'); + + if (!tokenAddress) { + console.error('Error: The tokenAddress cannot be empty.'); + process.exit(1); + } + + const tokenAmount = await promptQuestion( + 'Please provide a numeric tokenAmount. Press enter to default to 100', + ); + + if (tokenAmount && (isNaN(tokenAmount) || Number(tokenAmount) <= 0)) { + console.error('Error: Please enter a valid number greater than 0.'); + process.exit(1); + } + + return { + foreignChainRpcUrl, + colonyAddress, + tokenAddress, + tokenAmount: !tokenAmount ? 100 : Number(tokenAmount), + }; +}; + +async function start() { + try { + const { foreignChainRpcUrl, colonyAddress, tokenAddress, tokenAmount } = + await getArgumentsFromConsole(); + + const token = TokenConfig.getToken(tokenAddress, foreignChainRpcUrl); + + await unlockMintTokens(colonyAddress, token, tokenAmount); + } catch (error) { + console.error( + `There was an error executing the deploy-token-to-chain script. Error: ${error.message}`, + ); + } finally { + rl.close(); + } +} + +start(); From e35f4601d3d0192865c753ce25cf030d8079af09 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:31:08 +0100 Subject: [PATCH 47/66] Refactor: Removed unlock and mint token functionality from deploy tokens script Refactor: Removed unlock and mint token functionality from deploy tokens script --- scripts/deploy-token-to-chain.js | 35 +---------------- ...hain.js => unlock-mint-tokens-on-chain.js} | 27 ++++++++++--- scripts/utils/unlockMintTokens.js | 39 +++++++++++++------ 3 files changed, 50 insertions(+), 51 deletions(-) rename scripts/{mint-tokens-on-chain.js => unlock-mint-tokens-on-chain.js} (76%) diff --git a/scripts/deploy-token-to-chain.js b/scripts/deploy-token-to-chain.js index 192160a8aa3..77ec4ef703d 100644 --- a/scripts/deploy-token-to-chain.js +++ b/scripts/deploy-token-to-chain.js @@ -5,7 +5,6 @@ const { const { providers, ContractFactory } = require('ethers'); const readline = require('readline'); const { graphqlRequest } = require('./utils/graphqlRequest'); -const { unlockMintTokens } = require('./utils/unlockMintTokens'); const API_KEY = 'da2-fakeApiId123456'; const GRAPHQL_URI = @@ -164,8 +163,6 @@ const deployNativeTokenToChain = async ( console.log( `Proxy token with address ${foreignToken.address} successfully deployed for colony with address ${colonyAddress}.`, ); - - return foreignToken; } catch (error) { console.error( `Error deploying proxy token for ${colonyAddress}: ${error.message}`, @@ -210,34 +207,6 @@ const getArgumentsFromConsole = async () => { }; }; -const furtherActionsOnToken = async (colonyAddress, foreignToken) => { - const unlockMintTokensAction = await promptQuestion( - 'Do you want to unlock and mint tokens now? Y/N', - ); - - if (unlockMintTokensAction.toUpperCase() !== 'Y') { - console.log( - 'Skipping token unlock and minting. If you change your mind, please use the mint-tokens-on-chain script.', - ); - return; - } - - const tokenAmount = await promptQuestion( - 'Please provide a numeric tokenAmount. Press enter to default to 100', - ); - - if (tokenAmount && (isNaN(tokenAmount) || Number(tokenAmount) <= 0)) { - console.error('Error: Please enter a valid number greater than 0.'); - process.exit(1); - } - - await unlockMintTokens( - colonyAddress, - foreignToken, - !tokenAmount ? 100 : Number(tokenAmount), - ); -}; - const start = async () => { try { const { foreignChainId, foreignChainRpcUrl, colonyAddress } = @@ -250,14 +219,12 @@ const start = async () => { ); const { nativeToken: colonyNativeToken } = deployedColony; - const foreignToken = await deployNativeTokenToChain( + await deployNativeTokenToChain( tokenFactory, foreignChainId, colonyNativeToken, colonyAddress, ); - - await furtherActionsOnToken(colonyAddress, foreignToken); } catch (error) { console.error( `There was an error executing the deploy-token-to-chain script. Error: ${error.message}`, diff --git a/scripts/mint-tokens-on-chain.js b/scripts/unlock-mint-tokens-on-chain.js similarity index 76% rename from scripts/mint-tokens-on-chain.js rename to scripts/unlock-mint-tokens-on-chain.js index 39bd61c84d4..6df4ca0347f 100644 --- a/scripts/mint-tokens-on-chain.js +++ b/scripts/unlock-mint-tokens-on-chain.js @@ -2,7 +2,7 @@ const { abi: metaTxAbi } = require('@colony/abis/versions/hmwss/MetaTxToken'); const { utils, providers, Contract } = require('ethers'); const readline = require('readline'); -const { unlockMintTokens } = require('./utils/unlockMintTokens'); +const { unlockToken, mintTokens } = require('./utils/unlockMintTokens'); const rl = readline.createInterface({ input: process.stdin, @@ -72,30 +72,45 @@ const getArgumentsFromConsole = async () => { } const tokenAmount = await promptQuestion( - 'Please provide a numeric tokenAmount. Press enter to default to 100', + 'Please provide a tokenAmount >= 0. Press enter to default to 100', ); if (tokenAmount && (isNaN(tokenAmount) || Number(tokenAmount) <= 0)) { - console.error('Error: Please enter a valid number greater than 0.'); + console.error('Error: Entered value is not a valid number greater than 0.'); process.exit(1); } + const unlockTokenAction = await promptQuestion( + 'Do you want to unlock the token? Y/N', + ); + return { foreignChainRpcUrl, colonyAddress, tokenAddress, tokenAmount: !tokenAmount ? 100 : Number(tokenAmount), + shouldUnlockToken: unlockTokenAction.toUpperCase() === 'Y', }; }; async function start() { try { - const { foreignChainRpcUrl, colonyAddress, tokenAddress, tokenAmount } = - await getArgumentsFromConsole(); + const { + foreignChainRpcUrl, + colonyAddress, + tokenAddress, + tokenAmount, + shouldUnlockToken, + } = await getArgumentsFromConsole(); const token = TokenConfig.getToken(tokenAddress, foreignChainRpcUrl); - await unlockMintTokens(colonyAddress, token, tokenAmount); + if (shouldUnlockToken) { + await unlockToken(token); + } + + // The proxy colony address is the same as the main colony address + await mintTokens(colonyAddress, token, tokenAmount); } catch (error) { console.error( `There was an error executing the deploy-token-to-chain script. Error: ${error.message}`, diff --git a/scripts/utils/unlockMintTokens.js b/scripts/utils/unlockMintTokens.js index 98d1a07f3f9..00f8206027a 100644 --- a/scripts/utils/unlockMintTokens.js +++ b/scripts/utils/unlockMintTokens.js @@ -1,24 +1,40 @@ /** - * Unlocks a token and mints a specified amount of tokens to the colony address. + * Unlocks a token. * * @async - * @function unlockMintTokens - * @param {string} colonyAddress - The address of the colony where the tokens will be minted. - * @param {Object} token - The token contract representing the token to be unlocked and minted. + * @function unlockToken + * @param {Object} token - The token contract representing the token to be unlocked. * @param {number|string|BigNumber} tokenAmount - The amount of tokens to mint. - * @returns {Promise} A promise that resolves when the token has been successfully unlocked and minted. - * @throws Will log an error message if unlocking or minting the token fails. + * @returns {Promise} A promise that resolves when the token has been successfully unlocked. + * @throws Will log an error message if unlocking the token fails. */ -const unlockMintTokens = async (colonyAddress, token, tokenAmount) => { +const unlockToken = async (token) => { const tokenAddress = token.address; try { await token.unlock(); + console.log(`Token with address ${tokenAddress} successfully unlocked.`); + } catch { + console.error(`Error while unlocking token with address ${tokenAddress}.`); + } +}; - // The proxy colony address is the same as the main colony address +/** + * Mints a specified amount of tokens to the colony address. + * + * @async + * @function mintTokens + * @param {string} colonyAddress - The address of the colony where the tokens will be minted. + * @param {Object} token - The token contract representing the token to be minted. + * @param {number|string|BigNumber} tokenAmount - The amount of tokens to mint. + * @returns {Promise} A promise that resolves when the token has been successfully minted. + * @throws Will log an error message if minting the token fails. + */ +const mintTokens = async (colonyAddress, token, tokenAmount) => { + const tokenAddress = token.address; + try { await token['mint(address,uint256)'](colonyAddress, tokenAmount); - console.log( - `Proxy token with address ${tokenAddress} successfully unlocked and ${tokenAmount} tokens were minted.`, + `Successfully minted ${tokenAmount} tokens for token with address ${tokenAddress} to colony with address ${colonyAddress}.`, ); } catch { console.error( @@ -28,5 +44,6 @@ const unlockMintTokens = async (colonyAddress, token, tokenAmount) => { }; module.exports = { - unlockMintTokens, + unlockToken, + mintTokens, }; From 0c93532786fadf273c50de1d795c8979a7ca9628 Mon Sep 17 00:00:00 2001 From: Sam Gibbs <34915414+iamsamgibbs@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:00:31 +0000 Subject: [PATCH 48/66] feat: proxy colony incoming native tokens --- .../api/colonycdapp/schema/schema.graphql | 6 +- .../src/basicColonyAbi.json | 10 ++ .../src/graphql.js | 12 ++ .../fetchColonyNativeFundsClaim/src/index.js | 115 ++++++++++++++++-- .../fetchColonyNativeFundsClaim/src/utils.js | 64 ++++++++++ docker/colony-cdapp-dev-env-network | 2 +- src/apollo/cache/colony/tokens.ts | 48 +++++++- .../FundsPage/partials/FundsTable/types.ts | 6 + .../partials/TokenTable/TokenTable.tsx | 7 +- src/constants/index.ts | 2 + src/graphql/fragments/colony.graphql | 6 + src/graphql/fragments/token.graphql | 3 + src/graphql/generated.ts | 69 +++++++---- src/hooks/useColonyFundsClaims.ts | 24 ++-- src/types/network.ts | 2 + 15 files changed, 327 insertions(+), 49 deletions(-) create mode 100644 amplify/backend/function/fetchColonyNativeFundsClaim/src/graphql.js create mode 100644 amplify/backend/function/fetchColonyNativeFundsClaim/src/utils.js diff --git a/amplify/backend/api/colonycdapp/schema/schema.graphql b/amplify/backend/api/colonycdapp/schema/schema.graphql index 593f72c8a85..ef8868ad0d7 100644 --- a/amplify/backend/api/colonycdapp/schema/schema.graphql +++ b/amplify/backend/api/colonycdapp/schema/schema.graphql @@ -1602,7 +1602,7 @@ type Colony @model { Native chain token claim (e.g., Token 0x0000...0000: ETH, xDAI, etc.) This is not an array since only a single token type can be returned """ - chainFundsClaim: ColonyChainFundsClaim + chainFundsClaim: [ColonyChainFundsClaim] @function(name: "fetchColonyNativeFundsClaim-${env}") """ Type of the Colony (Regular or Metacolony) @@ -1676,6 +1676,10 @@ type Colony @model { """ colonyMemberInvite: ColonyMemberInvite @hasOne(fields: ["colonyMemberInviteCode"]) + """ + List of proxy colonies related to this colony + """ + proxyColonies: [ProxyColony] @hasMany(indexName: "byColonyAddress", fields: ["id"]) } input ValidateUserInviteInput { diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicColonyAbi.json b/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicColonyAbi.json index edcba9cdca8..4227d4d87e5 100644 --- a/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicColonyAbi.json +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicColonyAbi.json @@ -1,6 +1,11 @@ [ { "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, { "internalType": "address", "name": "_token", @@ -25,6 +30,11 @@ "name": "_potId", "type": "uint256" }, + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, { "internalType": "address", "name": "_token", diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/graphql.js b/amplify/backend/function/fetchColonyNativeFundsClaim/src/graphql.js new file mode 100644 index 00000000000..9f94b62dc00 --- /dev/null +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/graphql.js @@ -0,0 +1,12 @@ +module.exports = { + getProxyColonies: /* GraphQL */ ` + query GetProxyColonies($colonyAddress: ID!) { + getProxyColoniesByColonyAddress(colonyAddress: $colonyAddress) { + items { + chainId + isActive + } + } + } + `, +}; diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js b/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js index af276bee3ef..8b5022c9019 100644 --- a/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js @@ -1,13 +1,22 @@ const { constants, providers, Contract, BigNumber } = require('ethers'); +const { graphqlRequest, getRpcUrlByChainId } = require('./utils'); +const { getProxyColonies } = require('./graphql'); const basicColonyAbi = require('./basicColonyAbi.json'); -let rpcURL = 'http://network-contracts:8545'; // this needs to be extended to all supported networks +let apiKey = 'da2-fakeApiId123456'; +let graphqlURL = 'http://localhost:20002/graphql'; + +let mainRpcURL = 'http://network-contracts:8545'; const setEnvVariables = async () => { const ENV = process.env.ENV; if (ENV === 'qa' || ENV === 'prod') { const { getParams } = require('/opt/nodejs/getParams'); - [rpcURL] = await getParams(['chainRpcEndpoint']); + [apiKey, graphqlURL, mainRpcURL] = await getParams([ + 'appsyncApiKey', + 'graphqlUrl', + 'chainRpcEndpoint', + ]); } }; @@ -18,7 +27,30 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { throw new Error('Unable to set environment variables. Reason:', e); } - const provider = new providers.StaticJsonRpcProvider(rpcURL); + // Fetch proxy colony details + const getProxyColoniesResponse = await graphqlRequest( + getProxyColonies, + { colonyAddress }, + graphqlURL, + apiKey, + ); + + if (getProxyColoniesResponse.errors || !getProxyColoniesResponse.data) { + const [error] = getProxyColoniesResponse.errors; + throw new Error( + error?.message || 'Could not fetch proxy colony data from DynamoDB', + ); + } + + const { items: proxyColonies } = + getProxyColoniesResponse?.data?.getProxyColoniesByColonyAddress; + + const activeProxyColonies = proxyColonies.filter( + (proxyColony) => proxyColony.isActive, + ); + + // Handle main chain + const provider = new providers.StaticJsonRpcProvider(mainRpcURL); const providerNetwork = await provider.getNetwork(); const chainId = String(providerNetwork.chainId); @@ -40,20 +72,24 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { createdAtBlock: block, }; - const balance = await provider.getBalance(colonyAddress); + const balanceOnMainChain = await provider.getBalance(colonyAddress); /* * Short circuit early, before making more expensive calls * If balance is 0, then no incoming transfers have been made */ - if (balance.gt(0)) { + if (balanceOnMainChain.gt(0)) { const colonyNonRewardsPotsTotal = - await lightColonyClient.getNonRewardPotsTotal(constants.AddressZero); + await lightColonyClient.getNonRewardPotsTotal( + chainId, + constants.AddressZero, + ); const colonyRewardsPotTotal = await lightColonyClient.getFundingPotBalance( /* * Root domain, since all initial transfers go in there */ 0, + chainId, constants.AddressZero, ); const unclaimedBalance = balance @@ -61,14 +97,73 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { .sub(colonyRewardsPotTotal); if (unclaimedBalance.gt(0)) { - return { + colonyFundsClaim = { ...colonyFundsClaim, amount: unclaimedBalance.toString(), }; } } - // If the balance is 0, or unclaimed balance is 0, still return a claim with amount zero. - // This is because we want to always show native chain tokens in the incoming funds table. - return colonyFundsClaim; + // Return early if no proxy colonies + if (activeProxyColonies.length < 1) { + // If the balance is 0, or unclaimed balance is 0, still return a claim with amount zero. + // This is because we want to always show native chain tokens in the incoming funds table. + return [colonyFundsClaim]; + } + + const proxyColonyClaims = await Promise.all( + activeProxyColonies.map(async (proxyColony) => { + const proxyChainId = proxyColony.chainId; + const proxyRpcURL = getRpcUrlByChainId(proxyChainId); + const proxyProvider = new providers.StaticJsonRpcProvider(proxyRpcURL); + const proxyBlock = await proxyProvider.getBlockNumber(); + const proxyBalance = await proxyProvider.getBalance(colonyAddress); + + const proxyColonyFundsClaim = { + __typeName: 'ColonyFundsClaim', + amount: BigNumber.from(0).toString(), + id: `${proxyChainId}_${constants.AddressZero}_0`, + createdAt: now, + updatedAt: now, + // @TODO: should this use the proxy chain block or main chain block? + // I think in the case of native chain tokens it does not matter as it is only used to + // order claims in the incoming funds table, but native chain tokens are summed together anyway + // We should align this with how we handle other token claims in the block-ingestor once that is done + createdAtBlock: proxyBlock, + }; + + if (proxyBalance.gt(0)) { + const proxyColonyNonRewardsPotsTotal = + await lightColonyClient.getNonRewardPotsTotal( + proxyChainId, + constants.AddressZero, + ); + const proxyColonyRewardsPotTotal = + await lightColonyClient.getFundingPotBalance( + /* + * Root domain, since all initial transfers go in there + */ + 0, + proxyChainId, + constants.AddressZero, + ); + const unclaimedBalance = proxyBalance + .sub(proxyColonyNonRewardsPotsTotal) + .sub(proxyColonyRewardsPotTotal); + + if (unclaimedBalance.gt(0)) { + return { + ...proxyColonyFundsClaim, + amount: unclaimedBalance.toString(), + }; + } + } + + // If the balance is 0, or unclaimed balance is 0, still return a claim with amount zero. + // This is because we want to always show native chain tokens in the incoming funds table. + return proxyColonyFundsClaim; + }), + ); + + return [colonyFundsClaim].concat(proxyColonyClaims); }; diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/utils.js b/amplify/backend/function/fetchColonyNativeFundsClaim/src/utils.js new file mode 100644 index 00000000000..d197cd19533 --- /dev/null +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/utils.js @@ -0,0 +1,64 @@ +const fetch = require('cross-fetch'); + +const graphqlRequest = async (queryOrMutation, variables, url, authKey) => { + const options = { + method: 'POST', + headers: { + 'x-api-key': authKey, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query: queryOrMutation, + variables, + }), + }; + + let body; + let response; + + try { + response = await fetch(url, options); + body = await response.json(); + return body; + } catch (error) { + /* + * Something went wrong... obviously + */ + console.error(error); + return null; + } +}; + +const GANACHE_NETWORK_1 = { + chainId: '265669101', + rpcUrl: 'http://network-contracts-remote:8545', +}; + +const GANACHE_NETWORK_2 = { + chainId: '265669101', + rpcUrl: 'http://network-contracts-remote-2:8545', +}; + +// @TODO: Add the other supported networks +// const SUPPORTED_NETWORK = { +// chainId: '1', +// rpcUrl: '#', +// }; + +const SUPPORTED_NETWORKS = [GANACHE_NETWORK_1, GANACHE_NETWORK_2]; + +const getRpcUrlByChainId = (chainId) => { + const network = SUPPORTED_NETWORKS.find((net) => net.chainId === chainId); + + if (!network) { + console.error(`RPC URL not found for chain ID: ${chainId}`); + return null; + } + + return network.rpcUrl; +}; + +module.exports = { + graphqlRequest, + getRpcUrlByChainId, +}; diff --git a/docker/colony-cdapp-dev-env-network b/docker/colony-cdapp-dev-env-network index 9835013e173..ff7cd7551df 100644 --- a/docker/colony-cdapp-dev-env-network +++ b/docker/colony-cdapp-dev-env-network @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV NETWORK_HASH=095066406a0a025d97352a77c265d78bd2bddcb2 +ENV NETWORK_HASH=184361d8af40fd53e6de09a49cd1be94fb7ba363 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/src/apollo/cache/colony/tokens.ts b/src/apollo/cache/colony/tokens.ts index 3662c8fc745..da8c42df107 100644 --- a/src/apollo/cache/colony/tokens.ts +++ b/src/apollo/cache/colony/tokens.ts @@ -2,16 +2,22 @@ import { DEFAULT_NETWORK_TOKEN, ADDRESS_ZERO } from '~constants/index.ts'; import { TokenType } from '~gql'; import { type UnaliasedColonyTokensItem } from '~types/graphql.ts'; +import { getNetworkByChainId } from '~utils/web3/index.ts'; const tokensFieldCache = { /* * @NOTE Add the local chain's native token to the colony's tokens list */ tokens: { - read: (baseTokens, { cache }) => { + read: (baseTokens, { readField, cache }) => { if (baseTokens === undefined) return null; const cacheRepresentation = cache.extract(); + const proxyColonies = readField('proxyColonies'); + const chainMetadata = readField('chainMetadata'); + + const { chainId: colonyChainId } = chainMetadata; + const updatedTokens: UnaliasedColonyTokensItem[] = [ { __typename: 'ColonyTokens', @@ -23,10 +29,50 @@ const tokensFieldCache = { avatar: null, thumbnail: null, type: TokenType.Colony, + chainMetadata: { + chainId: colonyChainId, + }, }, }, ]; + proxyColonies.items.forEach((proxyColony) => { + if (!proxyColony.isActive) { + return; + } + const { chainId } = proxyColony; + + const network = getNetworkByChainId(chainId); + + if (!network || !network.nativeToken) { + return; + } + + const token: UnaliasedColonyTokensItem = { + __typename: 'ColonyTokens', + id: `${chainId}_NATIVE_TOKEN_ID`, + token: { + __typename: 'Token', + ...network.nativeToken, + /* + * This is aliased as "colonyTokensId" in the "ColonyTokensConnection" fragment, + * but the cache only considers canonical field names. Therefore, to ensure type safety + * when manually modifying the cache, we must use this custom type. + */ + // @ts-ignore + id: ADDRESS_ZERO, + avatar: null, + thumbnail: null, + type: TokenType.Colony, + chainMetadata: { + chainId, + }, + }, + }; + + updatedTokens.push(token); + }); + const colonyTokensResolved = baseTokens.items.map((colonyToken) => { // If it's a reference object, we need to look it up in the cache, same for the token nested object if (colonyToken.__ref) { diff --git a/src/components/frame/v5/pages/FundsPage/partials/FundsTable/types.ts b/src/components/frame/v5/pages/FundsPage/partials/FundsTable/types.ts index be6e89c3166..64aa5b89dea 100644 --- a/src/components/frame/v5/pages/FundsPage/partials/FundsTable/types.ts +++ b/src/components/frame/v5/pages/FundsPage/partials/FundsTable/types.ts @@ -6,6 +6,9 @@ export interface FundsTableModel { symbol: string; name: string; decimals: number; + chainMetadata: { + chainId: string; + }; }; } @@ -36,6 +39,9 @@ export interface UseFundsTableProps { symbol: string; name: string; decimals: number; + chainMetadata: { + chainId: string; + }; }; }[]; } diff --git a/src/components/frame/v5/pages/FundsPage/partials/TokenTable/TokenTable.tsx b/src/components/frame/v5/pages/FundsPage/partials/TokenTable/TokenTable.tsx index 73928ad3b82..fd8e14654d0 100644 --- a/src/components/frame/v5/pages/FundsPage/partials/TokenTable/TokenTable.tsx +++ b/src/components/frame/v5/pages/FundsPage/partials/TokenTable/TokenTable.tsx @@ -45,7 +45,9 @@ const TokenTable: FC = ({ token }) => { } = useColonyContext(); const claims = useColonyFundsClaims(); const currentClaims = claims.filter( - ({ token: currentClaimToken }) => currentClaimToken?.name === token?.name, + ({ token: currentClaimToken }) => + currentClaimToken?.name === token?.name && + currentClaimToken?.chainMetadata.chainId === token?.chainMetadata.chainId, ); const claimsAmount = currentClaims.reduce((acc, { amount, isClaimed }) => { @@ -113,7 +115,8 @@ const TokenTable: FC = ({ token }) => { 'text-blue-400': isTokenInfoShown, })} > - {token.name} + {/* @TODO: Temporary UI: Show chainId next to token name */} + {`${token.name} - ${token.chainMetadata.chainId}`}
    diff --git a/src/constants/index.ts b/src/constants/index.ts index b79587d3a81..4c19ad8e77b 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -254,6 +254,8 @@ export const ARBITRUM_SEPOLIA_NETWORK: NetworkInfo = { export const NETWORK_DATA: { [key: string]: NetworkInfo } = { [Network.Ganache]: GANACHE_NETWORK, + [Network.DevProxyChain1]: GANACHE_NETWORK_1, + [Network.DevProxyChain2]: GANACHE_NETWORK_2, [Network.Gnosis]: GNOSIS_NETWORK, [Network.GnosisFork]: GNOSIS_NETWORK, [Network.Goerli]: GOERLI_NETWORK, diff --git a/src/graphql/fragments/colony.graphql b/src/graphql/fragments/colony.graphql index 8e8b46fcdf7..bdaabce90e3 100644 --- a/src/graphql/fragments/colony.graphql +++ b/src/graphql/fragments/colony.graphql @@ -58,6 +58,12 @@ fragment Colony on Colony { invitesRemaining } lastUpdatedContributorsWithReputation + proxyColonies { + items { + chainId + isActive + } + } } fragment PublicColony on Colony { diff --git a/src/graphql/fragments/token.graphql b/src/graphql/fragments/token.graphql index 70e23045811..0c28a2c8cf4 100644 --- a/src/graphql/fragments/token.graphql +++ b/src/graphql/fragments/token.graphql @@ -6,6 +6,9 @@ fragment Token on Token { type avatar thumbnail + chainMetadata { + chainId + } } fragment UserTokenBalanceData on GetUserTokenBalanceReturn { diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index 70bb4885b9f..b4234cb3502 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -314,7 +314,7 @@ export type Colony = { * Native chain token claim (e.g., Token 0x0000...0000: ETH, xDAI, etc.) * This is not an array since only a single token type can be returned */ - chainFundsClaim?: Maybe; + chainFundsClaim?: Maybe>>; /** Metadata related to the chain of the Colony */ chainMetadata: ChainMetadata; /** Colony creation data */ @@ -350,6 +350,7 @@ export type Colony = { nativeTokenId: Scalars['ID']; /** A flag to indicate whether the colony is private */ private?: Maybe; + proxyColonies?: Maybe; /** The total reputation amount in the colony */ reputation?: Maybe; roles?: Maybe; @@ -413,6 +414,15 @@ export type ColonyFundsClaimDataArgs = { }; +/** Represents a Colony within the Colony Network */ +export type ColonyProxyColoniesArgs = { + filter?: InputMaybe; + limit?: InputMaybe; + nextToken?: InputMaybe; + sortDirection?: InputMaybe; +}; + + /** Represents a Colony within the Colony Network */ export type ColonyRolesArgs = { filter?: InputMaybe; @@ -1631,7 +1641,7 @@ export type CreateColonyHistoricRoleInput = { export type CreateColonyInput = { balances?: InputMaybe; - chainFundsClaim?: InputMaybe; + chainFundsClaim?: InputMaybe>>; chainMetadata: ChainMetadataInput; colonyCreateEvent?: InputMaybe; colonyMemberInviteCode?: InputMaybe; @@ -10097,7 +10107,7 @@ export type UpdateColonyHistoricRoleInput = { export type UpdateColonyInput = { balances?: InputMaybe; - chainFundsClaim?: InputMaybe; + chainFundsClaim?: InputMaybe>>; chainMetadata?: InputMaybe; colonyCreateEvent?: InputMaybe; colonyMemberInviteCode?: InputMaybe; @@ -10759,7 +10769,7 @@ export type VotingReputationParamsInput = { voterRewardFraction: Scalars['String']; }; -export type ColonyActionFragment = { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null }; +export type ColonyActionFragment = { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null }; export type ApprovedTokenChangesFragment = { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array }; @@ -10789,21 +10799,21 @@ export type BridgeBankAccountFragment = { __typename?: 'BridgeBankAccount', id: export type BridgeDrainFragment = { __typename?: 'BridgeDrain', id: string, amount: string, currency: string, state: string, createdAt: string, receipt?: { __typename?: 'BridgeDrainReceipt', url: string } | null }; -export type ColonyFragment = { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null }; +export type ColonyFragment = { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null }; export type PublicColonyFragment = { __typename?: 'Colony', name: string, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null } | null }; -export type ColonyTokensConnectionFragment = { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> }; +export type ColonyTokensConnectionFragment = { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> }; export type UnclaimedStakesFragment = { __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }; export type ColonyMetadataFragment = { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }; -export type ColonyBalancesFragment = { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null }; +export type ColonyBalancesFragment = { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null }; -export type ColonyBalanceFragment = { __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } }; +export type ColonyBalanceFragment = { __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } }; -export type FundsClaimFragment = { __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } }; +export type FundsClaimFragment = { __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } }; export type ChainFundsClaimFragment = { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null }; @@ -10817,7 +10827,7 @@ export type JoinedColonyFragment = { __typename?: 'Colony', name: string, colony export type JoinedColonyWithExtensionsFragment = { __typename?: 'Colony', name: string, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, extensions?: { __typename?: 'ModelColonyExtensionConnection', items: Array<{ __typename?: 'ColonyExtension', version: number, hash: string, isDeleted: boolean, isDeprecated: boolean, isInitialized: boolean, address: string } | null> } | null }; -export type NotificationColonyFragment = { __typename?: 'Colony', name: string, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } }; +export type NotificationColonyFragment = { __typename?: 'Colony', name: string, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } }; export type ContributorReputationFragment = { __typename?: 'ContributorReputation', reputationPercentage: number, reputationRaw: string, domainId: string, id: string, domain: { __typename?: 'Domain', id: string, nativeId: number, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor } | null } }; @@ -10861,13 +10871,13 @@ export type NftDataFragment = { __typename?: 'NFTData', address: string, descrip export type FunctionParamFragment = { __typename?: 'FunctionParam', name: string, type: string, value: string }; -export type SafeTransactionDataFragment = { __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null }; +export type SafeTransactionDataFragment = { __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null }; -export type SafeTransactionFragment = { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null }; +export type SafeTransactionFragment = { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null }; -export type UserStakeFragment = { __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; +export type UserStakeFragment = { __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; -export type TokenFragment = { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }; +export type TokenFragment = { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }; export type UserTokenBalanceDataFragment = { __typename?: 'GetUserTokenBalanceReturn', balance?: string | null, inactiveBalance?: string | null, lockedBalance?: string | null, activeBalance?: string | null, pendingBalance?: string | null }; @@ -11096,14 +11106,14 @@ export type GetColonyActionsQueryVariables = Exact<{ }>; -export type GetColonyActionsQuery = { __typename?: 'Query', getActionsByColony?: { __typename?: 'ModelColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; +export type GetColonyActionsQuery = { __typename?: 'Query', getActionsByColony?: { __typename?: 'ModelColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; export type GetColonyActionQueryVariables = Exact<{ transactionHash: Scalars['ID']; }>; -export type GetColonyActionQuery = { __typename?: 'Query', getColonyAction?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; +export type GetColonyActionQuery = { __typename?: 'Query', getColonyAction?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; export type GetColonyMotionQueryVariables = Exact<{ id: Scalars['ID']; @@ -11148,7 +11158,7 @@ export type SearchActionsQueryVariables = Exact<{ }>; -export type SearchActionsQuery = { __typename?: 'Query', searchColonyActions?: { __typename?: 'SearchableColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; +export type SearchActionsQuery = { __typename?: 'Query', searchColonyActions?: { __typename?: 'SearchableColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; export type OnCreateColonyActionMetadataSubscriptionVariables = Exact<{ [key: string]: never; }>; @@ -11199,14 +11209,14 @@ export type GetFullColonyByAddressQueryVariables = Exact<{ }>; -export type GetFullColonyByAddressQuery = { __typename?: 'Query', getColonyByAddress?: { __typename?: 'ModelColonyConnection', items: Array<{ __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null> } | null }; +export type GetFullColonyByAddressQuery = { __typename?: 'Query', getColonyByAddress?: { __typename?: 'ModelColonyConnection', items: Array<{ __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null> } | null }; export type GetFullColonyByNameQueryVariables = Exact<{ name: Scalars['String']; }>; -export type GetFullColonyByNameQuery = { __typename?: 'Query', getColonyByName?: { __typename?: 'ModelColonyConnection', items: Array<{ __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null> } | null }; +export type GetFullColonyByNameQuery = { __typename?: 'Query', getColonyByName?: { __typename?: 'ModelColonyConnection', items: Array<{ __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null> } | null }; export type GetDisplayNameByColonyNameQueryVariables = Exact<{ name: Scalars['String']; @@ -11218,7 +11228,7 @@ export type GetDisplayNameByColonyNameQuery = { __typename?: 'Query', getColonyB export type GetMetacolonyQueryVariables = Exact<{ [key: string]: never; }>; -export type GetMetacolonyQuery = { __typename?: 'Query', getColonyByType?: { __typename?: 'ModelColonyConnection', items: Array<{ __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null> } | null }; +export type GetMetacolonyQuery = { __typename?: 'Query', getColonyByType?: { __typename?: 'ModelColonyConnection', items: Array<{ __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null> } | null }; export type GetColonyRootRolesQueryVariables = Exact<{ colonyAddress: Scalars['ID']; @@ -11287,7 +11297,7 @@ export type GetColonyForNotificationQueryVariables = Exact<{ }>; -export type GetColonyForNotificationQuery = { __typename?: 'Query', getColonyByAddress?: { __typename?: 'ModelColonyConnection', items: Array<{ __typename?: 'Colony', name: string, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null }; +export type GetColonyForNotificationQuery = { __typename?: 'Query', getColonyByAddress?: { __typename?: 'ModelColonyConnection', items: Array<{ __typename?: 'Colony', name: string, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null }; export type GetColonyContributorQueryVariables = Exact<{ id: Scalars['ID']; @@ -11465,21 +11475,21 @@ export type GetUserStakesQueryVariables = Exact<{ }>; -export type GetUserStakesQuery = { __typename?: 'Query', getUserStakes?: { __typename?: 'ModelUserStakeConnection', items: Array<{ __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, chainFundsClaim?: { __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null } | null> } | null }; +export type GetUserStakesQuery = { __typename?: 'Query', getUserStakes?: { __typename?: 'ModelUserStakeConnection', items: Array<{ __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null } | null> } | null }; export type GetTokenByAddressQueryVariables = Exact<{ address: Scalars['ID']; }>; -export type GetTokenByAddressQuery = { __typename?: 'Query', getTokenByAddress?: { __typename?: 'ModelTokenConnection', items: Array<{ __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null> } | null }; +export type GetTokenByAddressQuery = { __typename?: 'Query', getTokenByAddress?: { __typename?: 'ModelTokenConnection', items: Array<{ __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null> } | null }; export type GetTokenFromEverywhereQueryVariables = Exact<{ input: TokenFromEverywhereArguments; }>; -export type GetTokenFromEverywhereQuery = { __typename?: 'Query', getTokenFromEverywhere?: { __typename?: 'TokenFromEverywhereReturn', items?: Array<{ __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null> | null } | null }; +export type GetTokenFromEverywhereQuery = { __typename?: 'Query', getTokenFromEverywhere?: { __typename?: 'TokenFromEverywhereReturn', items?: Array<{ __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null> | null } | null }; export type GetUserTokenBalanceQueryVariables = Exact<{ input: GetUserTokenBalanceInput; @@ -11495,7 +11505,7 @@ export type GetTokensListQueryVariables = Exact<{ }>; -export type GetTokensListQuery = { __typename?: 'Query', listTokens?: { __typename?: 'ModelTokenConnection', nextToken?: string | null, items: Array<{ __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string } | null> } | null }; +export type GetTokensListQuery = { __typename?: 'Query', listTokens?: { __typename?: 'ModelTokenConnection', nextToken?: string | null, items: Array<{ __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null> } | null }; export type GetUserTransactionsQueryVariables = Exact<{ userAddress: Scalars['ID']; @@ -11698,6 +11708,9 @@ export const TokenFragmentDoc = gql` type avatar thumbnail + chainMetadata { + chainId + } } `; export const NotificationColonyFragmentDoc = gql` @@ -12430,6 +12443,12 @@ export const ColonyFragmentDoc = gql` invitesRemaining } lastUpdatedContributorsWithReputation + proxyColonies { + items { + chainId + isActive + } + } } ${TokenFragmentDoc} ${NativeTokenStatusFragmentDoc} diff --git a/src/hooks/useColonyFundsClaims.ts b/src/hooks/useColonyFundsClaims.ts index 02aefe5134b..6ba6961b7fb 100644 --- a/src/hooks/useColonyFundsClaims.ts +++ b/src/hooks/useColonyFundsClaims.ts @@ -24,14 +24,20 @@ const useColonyFundsClaims = (): ColonyClaims[] => { return []; } - const chainClaimWithToken: ColonyChainClaimWithToken | null = chainFundsClaim - ? { - ...chainFundsClaim, - token: tokens?.items?.find( - (token) => token?.token?.tokenAddress === ADDRESS_ZERO, - )?.token, - } - : null; + const chainClaimWithToken: ColonyChainClaimWithToken[] = chainFundsClaim + ? chainFundsClaim.filter(notNull).map((item): ColonyChainClaimWithToken => { + const chainId = item.id.split('_')[0]; + + return { + ...item, + token: tokens?.items?.find( + (token) => + token?.token?.tokenAddress === ADDRESS_ZERO && + token?.token?.chainMetadata.chainId === chainId, + )?.token, + }; + }) + : []; /* * Claims data needs to be merged, both ERC20's and Native Chain Tokens @@ -41,7 +47,7 @@ const useColonyFundsClaims = (): ColonyClaims[] => { * to do the sorting / merging here, rather than at the time we fetch data. * This kinda sucks! */ - return [...claims, chainClaimWithToken] + return [...claims, ...chainClaimWithToken] .filter(notNull) .sort( (first, second) => diff --git a/src/types/network.ts b/src/types/network.ts index 80aa7498fb0..afe0798bea0 100644 --- a/src/types/network.ts +++ b/src/types/network.ts @@ -10,6 +10,8 @@ export enum Network { Amoy = 'amoy', ArbitrumOne = 'arbitrumOne', ArbitrumSepolia = 'arbitrumSepolia', + DevProxyChain1 = 'devProxyChain1', + DevProxyChain2 = 'devProxyChain2', } export const ColonyJSNetworkMapping = { From d012e36824519fecfd243171b161837aef650ed0 Mon Sep 17 00:00:00 2001 From: Sam Gibbs <34915414+iamsamgibbs@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:42:14 +0000 Subject: [PATCH 49/66] Fix up types --- src/apollo/cache/colony/tokens.ts | 13 +++++++------ src/components/common/ColonyActionsTable/utils.ts | 4 ++++ .../partials/StakesTab/partials/StakeItem.tsx | 1 + .../partials/BalanceTable/BalanceTable.tsx | 5 ++++- src/constants/tokens/getNetworkTokenList.ts | 6 ++++++ src/graphql/fragments/actions.graphql | 3 +++ src/graphql/generated.ts | 15 +++++++++------ src/utils/currency/config.ts | 2 ++ src/utils/tokens.ts | 3 +++ 9 files changed, 39 insertions(+), 13 deletions(-) diff --git a/src/apollo/cache/colony/tokens.ts b/src/apollo/cache/colony/tokens.ts index da8c42df107..4cf34985a02 100644 --- a/src/apollo/cache/colony/tokens.ts +++ b/src/apollo/cache/colony/tokens.ts @@ -1,5 +1,9 @@ /* eslint-disable no-underscore-dangle */ -import { DEFAULT_NETWORK_TOKEN, ADDRESS_ZERO } from '~constants/index.ts'; +import { + DEFAULT_NETWORK_TOKEN, + ADDRESS_ZERO, + DEFAULT_NETWORK_INFO, +} from '~constants/index.ts'; import { TokenType } from '~gql'; import { type UnaliasedColonyTokensItem } from '~types/graphql.ts'; import { getNetworkByChainId } from '~utils/web3/index.ts'; @@ -14,9 +18,6 @@ const tokensFieldCache = { const cacheRepresentation = cache.extract(); const proxyColonies = readField('proxyColonies'); - const chainMetadata = readField('chainMetadata'); - - const { chainId: colonyChainId } = chainMetadata; const updatedTokens: UnaliasedColonyTokensItem[] = [ { @@ -30,13 +31,13 @@ const tokensFieldCache = { thumbnail: null, type: TokenType.Colony, chainMetadata: { - chainId: colonyChainId, + chainId: DEFAULT_NETWORK_INFO.chainId, }, }, }, ]; - proxyColonies.items.forEach((proxyColony) => { + proxyColonies?.items?.forEach((proxyColony) => { if (!proxyColony.isActive) { return; } diff --git a/src/components/common/ColonyActionsTable/utils.ts b/src/components/common/ColonyActionsTable/utils.ts index ec43d457268..e88e21f6e05 100644 --- a/src/components/common/ColonyActionsTable/utils.ts +++ b/src/components/common/ColonyActionsTable/utils.ts @@ -2,6 +2,7 @@ import sub from 'date-fns/sub'; import { ADDRESS_ZERO, + DEFAULT_NETWORK_INFO, DEFAULT_NETWORK_TOKEN, DEFAULT_TOKEN_DECIMALS, } from '~constants/index.ts'; @@ -29,6 +30,9 @@ export const makeLoadingRows = (pageSize: number): ActivityFeedColonyAction[] => nativeTokenDecimals: DEFAULT_TOKEN_DECIMALS, nativeTokenSymbol: DEFAULT_NETWORK_TOKEN.symbol, name: '', + chainMetadata: { + chainId: DEFAULT_NETWORK_INFO.chainId, + }, }, }, colonyAddress: ADDRESS_ZERO, diff --git a/src/components/common/Extensions/UserHub/partials/StakesTab/partials/StakeItem.tsx b/src/components/common/Extensions/UserHub/partials/StakesTab/partials/StakeItem.tsx index a4c6dfd39b4..dd4148b042e 100644 --- a/src/components/common/Extensions/UserHub/partials/StakesTab/partials/StakeItem.tsx +++ b/src/components/common/Extensions/UserHub/partials/StakesTab/partials/StakeItem.tsx @@ -44,6 +44,7 @@ const StakeItem: FC = ({ stake }) => { symbol: nativeToken.nativeTokenSymbol, tokenAddress: nativeToken.tokenAddress, name: nativeToken.name, + chainMetadata: nativeToken.chainMetadata, }, metadata, }; diff --git a/src/components/frame/v5/pages/BalancePage/partials/BalanceTable/BalanceTable.tsx b/src/components/frame/v5/pages/BalancePage/partials/BalanceTable/BalanceTable.tsx index efef3e8967c..1b9659b5116 100644 --- a/src/components/frame/v5/pages/BalancePage/partials/BalanceTable/BalanceTable.tsx +++ b/src/components/frame/v5/pages/BalancePage/partials/BalanceTable/BalanceTable.tsx @@ -188,7 +188,10 @@ const BalanceTable: FC = () => { overrides={{ - getRowId: ({ token }) => (token ? token.tokenAddress : uniqueId()), + getRowId: ({ token }) => + token + ? `${token.chainMetadata.chainId}_${token.tokenAddress}` + : uniqueId(), state: { sorting, rowSelection, diff --git a/src/constants/tokens/getNetworkTokenList.ts b/src/constants/tokens/getNetworkTokenList.ts index 0579adeda0b..dd8debca4d4 100644 --- a/src/constants/tokens/getNetworkTokenList.ts +++ b/src/constants/tokens/getNetworkTokenList.ts @@ -13,6 +13,9 @@ interface ListToken { symbol: string; name: string; decimals: number; + chainMetadata: { + chainId: string; + }; } interface FormattedListToken { @@ -22,6 +25,9 @@ interface FormattedListToken { symbol: string; name: string; decimals: number; + chainMetadata: { + chainId: string; + }; }; } diff --git a/src/graphql/fragments/actions.graphql b/src/graphql/fragments/actions.graphql index 90f33c768ba..4aeb4a7ea5c 100644 --- a/src/graphql/fragments/actions.graphql +++ b/src/graphql/fragments/actions.graphql @@ -94,6 +94,9 @@ fragment ColonyAction on ColonyAction { nativeTokenSymbol: symbol tokenAddress: id name + chainMetadata { + chainId + } } tokens { ...ColonyTokensConnection diff --git a/src/graphql/generated.ts b/src/graphql/generated.ts index b4234cb3502..b146bbed30c 100644 --- a/src/graphql/generated.ts +++ b/src/graphql/generated.ts @@ -10769,7 +10769,7 @@ export type VotingReputationParamsInput = { voterRewardFraction: Scalars['String']; }; -export type ColonyActionFragment = { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null }; +export type ColonyActionFragment = { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null }; export type ApprovedTokenChangesFragment = { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array }; @@ -10875,7 +10875,7 @@ export type SafeTransactionDataFragment = { __typename?: 'SafeTransactionData', export type SafeTransactionFragment = { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null }; -export type UserStakeFragment = { __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; +export type UserStakeFragment = { __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; export type TokenFragment = { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }; @@ -11106,14 +11106,14 @@ export type GetColonyActionsQueryVariables = Exact<{ }>; -export type GetColonyActionsQuery = { __typename?: 'Query', getActionsByColony?: { __typename?: 'ModelColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; +export type GetColonyActionsQuery = { __typename?: 'Query', getActionsByColony?: { __typename?: 'ModelColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; export type GetColonyActionQueryVariables = Exact<{ transactionHash: Scalars['ID']; }>; -export type GetColonyActionQuery = { __typename?: 'Query', getColonyAction?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; +export type GetColonyActionQuery = { __typename?: 'Query', getColonyAction?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null }; export type GetColonyMotionQueryVariables = Exact<{ id: Scalars['ID']; @@ -11158,7 +11158,7 @@ export type SearchActionsQueryVariables = Exact<{ }>; -export type SearchActionsQuery = { __typename?: 'Query', searchColonyActions?: { __typename?: 'SearchableColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; +export type SearchActionsQuery = { __typename?: 'Query', searchColonyActions?: { __typename?: 'SearchableColonyActionConnection', nextToken?: string | null, items: Array<{ __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null> } | null }; export type OnCreateColonyActionMetadataSubscriptionVariables = Exact<{ [key: string]: never; }>; @@ -11475,7 +11475,7 @@ export type GetUserStakesQueryVariables = Exact<{ }>; -export type GetUserStakesQuery = { __typename?: 'Query', getUserStakes?: { __typename?: 'ModelUserStakeConnection', items: Array<{ __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null } | null> } | null }; +export type GetUserStakesQuery = { __typename?: 'Query', getUserStakes?: { __typename?: 'ModelUserStakeConnection', items: Array<{ __typename?: 'UserStake', id: string, amount: string, isClaimed: boolean, createdAt: string, type?: UserStakeType | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType, blockNumber: number, initiatorAddress: string, recipientAddress?: string | null, amount?: string | null, networkFee?: string | null, tokenAddress?: string | null, createdAt: string, newColonyVersion?: number | null, rolesAreMultiSig?: boolean | null, individualEvents?: string | null, isMotion?: boolean | null, showInActionsList: boolean, members?: Array | null, rootHash: string, expenditureId?: string | null, isMultiSig?: boolean | null, multiSigId?: string | null, targetChainId?: number | null, transactionHash: string, colonyAddress: string, initiatorUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, initiatorColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, initiatorExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, initiatorToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipientUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, recipientColony?: { __typename?: 'Colony', name: string, version: number, reputation?: string | null, expendituresGlobalClaimDelay?: string | null, private?: boolean | null, lastUpdatedContributorsWithReputation?: string | null, colonyAddress: string, metadata?: { __typename?: 'ColonyMetadata', avatar?: string | null, displayName: string, thumbnail?: string | null, description?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', link: string, name: ExternalLinks }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, colonyCreateEvent?: { __typename?: 'ColonyCreateEvent', blockNumber: number, creationSalt: string } | null, nativeToken: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, status?: { __typename?: 'ColonyStatus', recovery?: boolean | null, nativeToken?: { __typename?: 'NativeTokenStatus', mintable?: boolean | null, unlockable?: boolean | null, unlocked?: boolean | null } | null } | null, chainMetadata: { __typename?: 'ChainMetadata', chainId: string, network?: Network | null }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, motionsWithUnclaimedStakes?: Array<{ __typename?: 'ColonyUnclaimedStake', motionId: string, unclaimedRewards: Array<{ __typename?: 'StakerRewards', address: string, rewards: { __typename?: 'MotionStakeValues', nay: string, yay: string } }> }> | null, domains?: { __typename?: 'ModelDomainConnection', items: Array<{ __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null> } | null, balances?: { __typename?: 'ColonyBalances', items?: Array<{ __typename?: 'ColonyBalance', id: string, balance: string, domain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> | null } | null, fundsClaimData?: { __typename?: 'ModelColonyFundsClaimConnection', items: Array<{ __typename?: 'ColonyFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, chainFundsClaim?: Array<{ __typename?: 'ColonyChainFundsClaim', id: string, createdAtBlock: number, createdAt: string, amount: string, isClaimed?: boolean | null } | null> | null, roles?: { __typename?: 'ModelColonyRoleConnection', items: Array<{ __typename?: 'ColonyRole', id: string, targetAddress: string, role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null, isMultiSig?: boolean | null, domain: { __typename?: 'Domain', id: string, nativeId: number } } | null> } | null, colonyMemberInvite?: { __typename?: 'ColonyMemberInvite', id: string, invitesRemaining: number } | null, proxyColonies?: { __typename?: 'ModelProxyColonyConnection', items: Array<{ __typename?: 'ProxyColony', chainId: string, isActive: boolean } | null> } | null } | null, recipientExtension?: { __typename?: 'ColonyExtension', hash: string, installedBy: string, installedAt: number, isDeprecated: boolean, isDeleted: boolean, isInitialized: boolean, address: string, colonyAddress: string, currentVersion: number, params?: { __typename?: 'ExtensionParams', votingReputation?: { __typename?: 'VotingReputationParams', maxVoteFraction: string, totalStakeFraction: string, voterRewardFraction: string, userMinStakeFraction: string, stakePeriod: string, submitPeriod: string, revealPeriod: string, escalationPeriod: string } | null, stakedExpenditure?: { __typename?: 'StakedExpenditureParams', stakeFraction: string } | null, multiSig?: { __typename?: 'MultiSigParams', colonyThreshold: number, domainThresholds?: Array<{ __typename?: 'MultiSigDomainConfig', domainId: string, domainThreshold: number } | null> | null } | null } | null } | null, recipientToken?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, fromDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, toDomain?: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null } | null, roles?: { __typename?: 'ColonyActionRoles', role_0?: boolean | null, role_1?: boolean | null, role_2?: boolean | null, role_3?: boolean | null, role_5?: boolean | null, role_6?: boolean | null } | null, payments?: Array<{ __typename?: 'Payment', amount: string, tokenAddress: string, recipientAddress: string }> | null, motionData?: { __typename?: 'ColonyMotion', remainingStakes: Array, userMinStake: string, requiredStake: string, nativeMotionDomainId: string, isFinalized: boolean, skillRep: string, repSubmitted: string, hasObjection: boolean, isDecision: boolean, transactionHash: string, createdAt: string, createdBy: string, expenditureSlotIds?: Array | null, databaseMotionId: string, motionId: string, motionStakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, usersStakes: Array<{ __typename?: 'UserMotionStakes', address: string, stakes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } } }>, motionDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, stakerRewards: Array<{ __typename?: 'StakerRewards', address: string, isClaimed: boolean, rewards: { __typename?: 'MotionStakeValues', yay: string, nay: string } }>, voterRewards?: { __typename?: 'ModelVoterRewardsHistoryConnection', items: Array<{ __typename?: 'VoterRewardsHistory', userAddress: string, amount: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, voterRecord: Array<{ __typename?: 'VoterRecord', address: string, voteCount: string, vote?: number | null }>, revealedVotes: { __typename?: 'MotionStakes', raw: { __typename?: 'MotionStakeValues', yay: string, nay: string }, percentage: { __typename?: 'MotionStakeValues', yay: string, nay: string } }, motionStateHistory: { __typename?: 'MotionStateHistory', hasVoted: boolean, hasPassed: boolean, hasFailed: boolean, hasFailedNotFinalizable: boolean, inRevealPhase: boolean, yaySideFullyStakedAt?: string | null, naySideFullyStakedAt?: string | null, allVotesSubmittedAt?: string | null, allVotesRevealedAt?: string | null, endedAt?: string | null, finalizedAt?: string | null }, messages?: { __typename?: 'ModelMotionMessageConnection', items: Array<{ __typename?: 'MotionMessage', initiatorAddress: string, name: string, messageKey: string, vote?: string | null, amount?: string | null, createdAt: string, initiatorUser?: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } | null } | null> } | null, objectionAnnotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, action?: { __typename?: 'ColonyAction', type: ColonyActionType } | null } | null, colony: { __typename?: 'Colony', name: string, colonyAddress: string, nativeToken: { __typename?: 'Token', name: string, nativeTokenDecimals: number, nativeTokenSymbol: string, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } }, tokens?: { __typename?: 'ModelColonyTokensConnection', items: Array<{ __typename?: 'ColonyTokens', colonyTokensId: string, token: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } } | null> } | null, metadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null }, pendingDomainMetadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null, pendingColonyMetadata?: { __typename?: 'ColonyMetadata', displayName: string, avatar?: string | null, description?: string | null, thumbnail?: string | null, externalLinks?: Array<{ __typename?: 'ExternalLink', name: ExternalLinks, link: string }> | null, objective?: { __typename?: 'ColonyObjective', title: string, description: string, progress: number } | null, changelog?: Array<{ __typename?: 'ColonyMetadataChangelog', transactionHash: string, newDisplayName: string, oldDisplayName: string, hasAvatarChanged: boolean, hasDescriptionChanged?: boolean | null, haveExternalLinksChanged?: boolean | null, hasObjectiveChanged?: boolean | null, newSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null, oldSafes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null }> | null, safes?: Array<{ __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }> | null } | null, annotation?: { __typename?: 'Annotation', createdAt: string, message: string } | null, decisionData?: { __typename?: 'ColonyDecision', title: string, description: string, motionDomainId: number, walletAddress: string, createdAt: string, actionId: string, colonyAddress: string } | null, safeTransaction?: { __typename?: 'SafeTransaction', id: string, safe: { __typename?: 'Safe', name: string, address: string, chainId: string, moduleContractAddress: string }, transactions?: { __typename?: 'ModelSafeTransactionDataConnection', items: Array<{ __typename?: 'SafeTransactionData', transactionType: SafeTransactionType, amount?: string | null, rawAmount?: string | null, data?: string | null, abi?: string | null, contractFunction?: string | null, token?: { __typename?: 'Token', decimals: number, name: string, symbol: string, type?: TokenType | null, avatar?: string | null, thumbnail?: string | null, tokenAddress: string, chainMetadata: { __typename?: 'ChainMetadata', chainId: string } } | null, recipient?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, contract?: { __typename?: 'SimpleTarget', id: string, walletAddress: string, profile: { __typename?: 'SimpleTargetProfile', avatarHash?: string | null, displayName?: string | null } } | null, nft?: { __typename?: 'NFT', id: string, walletAddress: string, profile: { __typename?: 'NFTProfile', displayName: string } } | null, nftData?: { __typename?: 'NFTData', address: string, description?: string | null, id: string, imageUri?: string | null, logoUri: string, name?: string | null, tokenName: string, tokenSymbol: string, uri: string } | null, functionParams?: Array<{ __typename?: 'FunctionParam', name: string, type: string, value: string } | null> | null } | null> } | null } | null, metadata?: { __typename?: 'ColonyActionMetadata', customTitle: string, arbitraryTxAbis?: Array<{ __typename?: 'ArbitraryTxAbi', contractAddress: string, jsonAbi: string }> | null } | null, multiSigData?: { __typename?: 'ColonyMultiSig', id: string, nativeMultiSigId: string, createdAt: string, multiSigDomainId: string, nativeMultiSigDomainId: string, requiredPermissions: number, transactionHash: string, isExecuted: boolean, hasActionCompleted: boolean, isRejected: boolean, isDecision: boolean, executedAt?: string | null, executedBy?: string | null, rejectedAt?: string | null, rejectedBy?: string | null, multiSigDomain: { __typename?: 'Domain', id: string, nativeId: number, isRoot: boolean, nativeFundingPotId: number, nativeSkillId: string, reputation?: string | null, reputationPercentage?: string | null, metadata?: { __typename?: 'DomainMetadata', name: string, color: DomainColor, description?: string | null, id: string, changelog?: Array<{ __typename?: 'DomainMetadataChangelog', transactionHash: string, oldName: string, newName: string, oldColor: DomainColor, newColor: DomainColor, oldDescription?: string | null, newDescription?: string | null }> | null } | null }, signatures?: { __typename?: 'ModelMultiSigUserSignatureConnection', items: Array<{ __typename?: 'MultiSigUserSignature', id: string, role: number, userAddress: string, multiSigId: string, vote: MultiSigVote, createdAt: string, updatedAt: string, user: { __typename?: 'User', bridgeCustomerId?: string | null, walletAddress: string, profile?: { __typename?: 'Profile', avatar?: string | null, bio?: string | null, displayName?: string | null, displayNameChanged?: string | null, email?: string | null, location?: string | null, thumbnail?: string | null, website?: string | null, preferredCurrency?: SupportedCurrencies | null, isAutoOfframpEnabled?: boolean | null, meta?: { __typename?: 'ProfileMetadata', metatransactionsEnabled?: boolean | null, decentralizedModeEnabled?: boolean | null, customRpc?: string | null } | null } | null, privateBetaInviteCode?: { __typename?: 'PrivateBetaInviteCode', id: string, shareableInvites?: number | null } | null, notificationsData?: { __typename?: 'NotificationsData', magicbellUserId: string, notificationsDisabled: boolean, mutedColonyAddresses: Array, paymentNotificationsDisabled: boolean, mentionNotificationsDisabled: boolean, adminNotificationsDisabled: boolean } | null } } | null> } | null, executedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null, rejectedByUser?: { __typename?: 'User', walletAddress: string, profile?: { __typename?: 'Profile', displayName?: string | null, displayNameChanged?: string | null, avatar?: string | null, thumbnail?: string | null } | null } | null } | null, approvedTokenChanges?: { __typename?: 'ApprovedTokenChanges', added: Array, removed: Array, unaffected: Array } | null, expenditure?: { __typename?: 'Expenditure', isStaked: boolean, type: ExpenditureType, metadata?: { __typename?: 'ExpenditureMetadata', distributionType?: SplitPaymentDistributionType | null } | null, creatingActions?: { __typename?: 'ModelColonyActionConnection', items: Array<{ __typename?: 'ColonyAction', transactionHash: string } | null> } | null } | null, arbitraryTransactions?: Array<{ __typename?: 'ColonyActionArbitraryTransaction', contractAddress: string, encodedFunction: string }> | null } | null } | null> } | null }; export type GetTokenByAddressQueryVariables = Exact<{ address: Scalars['ID']; @@ -12686,6 +12686,9 @@ export const ColonyActionFragmentDoc = gql` nativeTokenSymbol: symbol tokenAddress: id name + chainMetadata { + chainId + } } tokens { ...ColonyTokensConnection diff --git a/src/utils/currency/config.ts b/src/utils/currency/config.ts index 4e5299ac335..0f02fc79b67 100644 --- a/src/utils/currency/config.ts +++ b/src/utils/currency/config.ts @@ -46,6 +46,8 @@ const coinGeckoAssetPlatforms: { [key in Network]: string } = { [Network.Goerli]: 'ethereum', [Network.Mainnet]: 'ethereum', [Network.Polygon]: 'polygon-pos', + [Network.DevProxyChain1]: 'arbitrum-one', + [Network.DevProxyChain2]: 'arbitrum-one', }; export const coinGeckoMappings = { diff --git a/src/utils/tokens.ts b/src/utils/tokens.ts index dd6cfa1099f..46187565e83 100644 --- a/src/utils/tokens.ts +++ b/src/utils/tokens.ts @@ -143,6 +143,9 @@ export const getNativeTokenByChainId = (chainId: string): Token => { return { tokenAddress: ADDRESS_ZERO, ...selectedNetwork.nativeToken, + chainMetadata: { + chainId: selectedNetwork.chainId, + }, }; }; From c2eb753129054b37ae6ea97d67df77d03fbeeac8 Mon Sep 17 00:00:00 2001 From: Sam Gibbs <34915414+iamsamgibbs@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:39:02 +0000 Subject: [PATCH 50/66] feat: update block-ingestor hash --- docker/colony-cdapp-dev-env-block-ingestor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/colony-cdapp-dev-env-block-ingestor b/docker/colony-cdapp-dev-env-block-ingestor index 47a3141d2b9..3e830d517f0 100644 --- a/docker/colony-cdapp-dev-env-block-ingestor +++ b/docker/colony-cdapp-dev-env-block-ingestor @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV BLOCK_INGESTOR_HASH=1b39cf385254c2117dff2e0e8a0c9578c549ed6e +ENV BLOCK_INGESTOR_HASH= # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] From 1686ef240b633ceea02e210c40371fd0d77c6cfd Mon Sep 17 00:00:00 2001 From: Sam Gibbs <34915414+iamsamgibbs@users.noreply.github.com> Date: Wed, 29 Jan 2025 11:26:20 +0000 Subject: [PATCH 51/66] Fix: Remove unnecessary comment and update incorrect chainId --- .../backend/function/fetchColonyNativeFundsClaim/src/index.js | 4 ---- .../backend/function/fetchColonyNativeFundsClaim/src/utils.js | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js b/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js index 8b5022c9019..fe5c9ac236d 100644 --- a/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js @@ -125,10 +125,6 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { id: `${proxyChainId}_${constants.AddressZero}_0`, createdAt: now, updatedAt: now, - // @TODO: should this use the proxy chain block or main chain block? - // I think in the case of native chain tokens it does not matter as it is only used to - // order claims in the incoming funds table, but native chain tokens are summed together anyway - // We should align this with how we handle other token claims in the block-ingestor once that is done createdAtBlock: proxyBlock, }; diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/utils.js b/amplify/backend/function/fetchColonyNativeFundsClaim/src/utils.js index d197cd19533..2fead2170fa 100644 --- a/amplify/backend/function/fetchColonyNativeFundsClaim/src/utils.js +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/utils.js @@ -35,7 +35,7 @@ const GANACHE_NETWORK_1 = { }; const GANACHE_NETWORK_2 = { - chainId: '265669101', + chainId: '265669102', rpcUrl: 'http://network-contracts-remote-2:8545', }; From 969ca54b9390aadd2ab0b8e16c2afd01f5f0908d Mon Sep 17 00:00:00 2001 From: Sam Gibbs <34915414+iamsamgibbs@users.noreply.github.com> Date: Wed, 29 Jan 2025 12:17:32 +0000 Subject: [PATCH 52/66] fix: updatge block-ingestor hash --- docker/colony-cdapp-dev-env-block-ingestor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/colony-cdapp-dev-env-block-ingestor b/docker/colony-cdapp-dev-env-block-ingestor index 3e830d517f0..67428ab7e19 100644 --- a/docker/colony-cdapp-dev-env-block-ingestor +++ b/docker/colony-cdapp-dev-env-block-ingestor @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV BLOCK_INGESTOR_HASH= +ENV BLOCK_INGESTOR_HASH=d84b11a5f1f8ccddcb20a63a32a8cc52d931d53e # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] From b654bf4accf2bdaf4d5611f38361961c1e4a99a2 Mon Sep 17 00:00:00 2001 From: Sam Gibbs <34915414+iamsamgibbs@users.noreply.github.com> Date: Wed, 29 Jan 2025 12:33:00 +0000 Subject: [PATCH 53/66] fix: missed renaming balance variable --- .../backend/function/fetchColonyNativeFundsClaim/src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js b/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js index fe5c9ac236d..5a4d7893bf9 100644 --- a/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js @@ -92,7 +92,7 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { chainId, constants.AddressZero, ); - const unclaimedBalance = balance + const unclaimedBalance = balanceOnMainChain .sub(colonyNonRewardsPotsTotal) .sub(colonyRewardsPotTotal); From 79a07687eee5cb448cc97d2818651395da45172e Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:26:28 +0100 Subject: [PATCH 54/66] Feat: Handle colony native token funds claims on different chain Feat: Handle colony native token funds claims on different chain --- docker/colony-cdapp-dev-env-block-ingestor | 2 +- docker/colony-cdapp-dev-env-network | 2 +- .../partials/AcceptButton/AcceptButton.tsx | 6 +- .../FundsPage/partials/AcceptButton/types.ts | 3 + .../FundsPage/partials/TokenTable/hooks.tsx | 15 +- src/constants/abis.ts | 2036 +++++++++++++++++ src/redux/actionTypes.ts | 3 + src/redux/sagas/proxyColonies/claimToken.ts | 108 + src/redux/sagas/proxyColonies/index.ts | 2 + src/redux/types/actions/proxyColonies.ts | 18 +- src/types/transactions.ts | 1 + wagmi.config.ts | 10 + 12 files changed, 2201 insertions(+), 5 deletions(-) create mode 100644 src/redux/sagas/proxyColonies/claimToken.ts diff --git a/docker/colony-cdapp-dev-env-block-ingestor b/docker/colony-cdapp-dev-env-block-ingestor index 67428ab7e19..365b75cd91a 100644 --- a/docker/colony-cdapp-dev-env-block-ingestor +++ b/docker/colony-cdapp-dev-env-block-ingestor @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV BLOCK_INGESTOR_HASH=d84b11a5f1f8ccddcb20a63a32a8cc52d931d53e +ENV BLOCK_INGESTOR_HASH=15d0e5a491d25f78b2f983b0ad9126779f5ad065 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/colony-cdapp-dev-env-network b/docker/colony-cdapp-dev-env-network index ff7cd7551df..16c18cdddf8 100644 --- a/docker/colony-cdapp-dev-env-network +++ b/docker/colony-cdapp-dev-env-network @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV NETWORK_HASH=184361d8af40fd53e6de09a49cd1be94fb7ba363 +ENV NETWORK_HASH=eec1e700e98b38ba0e4d74f0ac70a934438069b3 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx b/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx index ad2acde6e31..d9cb810668c 100644 --- a/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx +++ b/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx @@ -13,6 +13,8 @@ const AcceptButton: FC = ({ tokenAddresses, children, disabled, + chainId, + actionType = ActionTypes.CLAIM_TOKEN, ...rest }) => { const { colony, canInteractWithColony } = useColonyContext(); @@ -32,6 +34,7 @@ const AcceptButton: FC = ({ return { colonyAddress: colony?.colonyAddress, tokenAddresses, + chainId, }; }; @@ -42,10 +45,11 @@ const AcceptButton: FC = ({ const isBtnDisabled = disabled || !canInteractWithColony || isClaimed || isAcceptLoading; + // @Note: need to check how to differentiate between the ActionTypes.PROXY_COLONY_CLAIM_TOKEN and ActionTypes.CLAIM_TOKEN return ( [] => { } if (!BigNumber.from(claim.amount).isZero()) { + const claimChainId = claim.token?.chainMetadata.chainId; + const isClaimForDefaultNetworkChain = + !claimChainId || DEFAULT_NETWORK_INFO.chainId === claimChainId; return ( - + {formatText({ id: 'button.accept' })} ); diff --git a/src/constants/abis.ts b/src/constants/abis.ts index cfded498e64..95ebe9094c8 100644 --- a/src/constants/abis.ts +++ b/src/constants/abis.ts @@ -2075,6 +2075,1815 @@ export const colonyAddress = export const colonyConfig = { address: colonyAddress, abi: colonyAbi } as const; +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ColonyFunding +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const colonyFundingAbi = [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'txHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'metadata', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'Annotation', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'user', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'skillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amount', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + ], + name: 'ArbitraryReputationUpdate', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ArbitraryTransaction', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'users', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + { + name: 'amounts', + internalType: 'int256[]', + type: 'int256[]', + indexed: false, + }, + ], + name: 'ColonyBootstrapped', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'fee', internalType: 'uint256', type: 'uint256', indexed: false }, + { + name: 'payoutRemainder', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ColonyFundsClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'fromPot', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'toPot', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ColonyFundsMovedBetweenFundingPots', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'colonyNetwork', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'ColonyInitialised', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'metadata', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'ColonyMetadata', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'metadata', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'ColonyMetadataDelta', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'rewardInverse', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ColonyRewardInverseSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'role', internalType: 'uint8', type: 'uint8', indexed: true }, + { name: 'setTo', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ColonyRoleSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'oldVersion', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'newVersion', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ColonyUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DomainAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'deprecated', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + ], + name: 'DomainDeprecated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'fee', internalType: 'uint256', type: 'uint256', indexed: false }, + { + name: 'payoutRemainder', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DomainFundsClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'metadata', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'DomainMetadata', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExpenditureAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ExpenditureCancelled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'slot', internalType: 'uint256', type: 'uint256', indexed: true }, + { + name: 'claimDelay', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExpenditureClaimDelaySet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ExpenditureFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'globalClaimDelay', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExpenditureGlobalClaimDelaySet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ExpenditureLocked', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'metadata', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'ExpenditureMetadataSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'slot', internalType: 'uint256', type: 'uint256', indexed: true }, + { + name: 'payoutModifier', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + ], + name: 'ExpenditurePayoutModifierSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'slot', internalType: 'uint256', type: 'uint256', indexed: true }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ExpenditurePayoutSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'slot', internalType: 'uint256', type: 'uint256', indexed: true }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'ExpenditureRecipientSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'slot', internalType: 'uint256', type: 'uint256', indexed: true }, + { + name: 'skillId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ExpenditureSkillSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'storageSlot', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'mask', internalType: 'bool[]', type: 'bool[]', indexed: false }, + { + name: 'keys', + internalType: 'bytes32[]', + type: 'bytes32[]', + indexed: false, + }, + { + name: 'value', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'ExpenditureStateChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'expenditureId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'ExpenditureTransferred', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'fundingPotId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'FundingPotAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'localSkillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'LocalSkillAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'localSkillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'deprecated', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + ], + name: 'LocalSkillDeprecated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'authority', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'LogSetAuthority', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'LogSetOwner', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'paymentId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PaymentAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'paymentId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'PaymentFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'paymentId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PaymentPayoutSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'paymentId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'PaymentRecipientSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'paymentId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'skillId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PaymentSkillSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'fundingPotId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PayoutClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, + { + name: 'slot', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokenPayout', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PayoutClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: '_chainId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: '_token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ProxyColonyFundsClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'destinationChainId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'salt', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'ProxyColonyRequested', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'rewardPayoutId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'user', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'fee', internalType: 'uint256', type: 'uint256', indexed: false }, + { + name: 'rewardRemainder', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'RewardPayoutClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'rewardPayoutId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'RewardPayoutCycleEnded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'rewardPayoutId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'RewardPayoutCycleStarted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TaskAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'specificationHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'TaskBriefSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'TaskCanceled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'reviewerAddresses', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + ], + name: 'TaskChangedViaSignatures', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'TaskCompleted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'deliverableHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'TaskDeliverableSubmitted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'dueDate', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TaskDueDateSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'TaskFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'role', + internalType: 'enum ColonyDataTypes.TaskRole', + type: 'uint8', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TaskPayoutSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'role', + internalType: 'enum ColonyDataTypes.TaskRole', + type: 'uint8', + indexed: false, + }, + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'TaskRoleUserSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'skillId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'TaskSkillSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'taskId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'role', + internalType: 'enum ColonyDataTypes.TaskRole', + type: 'uint8', + indexed: false, + }, + { name: 'rating', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'TaskWorkRatingRevealed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'TokenUnlocked', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TokensBurned', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'agent', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'who', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TokensMinted', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'DEPRECATED_taskWorkRatings', + outputs: [ + { name: 'count', internalType: 'uint256', type: 'uint256' }, + { name: 'timestamp', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'authority', + outputs: [ + { name: '', internalType: 'contract DSAuthority', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'claimColonyFunds', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '_token', internalType: 'address', type: 'address' }], + name: 'claimColonyFunds', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'claimDomainFunds', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_slot', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'claimExpenditurePayout', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_slot', internalType: 'uint256', type: 'uint256' }, + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'claimExpenditurePayout', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'domains', + outputs: [ + { name: 'skillId', internalType: 'uint256', type: 'uint256' }, + { name: 'fundingPotId', internalType: 'uint256', type: 'uint256' }, + { name: 'deprecated', internalType: 'bool', type: 'bool' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_add', internalType: 'bool', type: 'bool' }, + ], + name: 'editAllowedDomainReputationReceipt', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_permissionDomainId', internalType: 'uint256', type: 'uint256' }, + { name: '_childSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { name: '_txdata', internalType: 'bytes', type: 'bytes' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'exchangeTokensViaLiFi', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: '_domainId', internalType: 'uint256', type: 'uint256' }], + name: 'getAllowedDomainReputationReceipt', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_fundingPotId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getDomainFromFundingPot', + outputs: [{ name: 'domainId', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_slot', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'getExpenditureSlotPayout', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_slot', internalType: 'uint256', type: 'uint256' }, + { name: 'chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'getExpenditureSlotPayout', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_potId', internalType: 'uint256', type: 'uint256' }], + name: 'getFundingPot', + outputs: [ + { + name: 'associatedType', + internalType: 'enum ColonyDataTypes.FundingPotAssociatedType', + type: 'uint8', + }, + { name: 'associatedTypeId', internalType: 'uint256', type: 'uint256' }, + { name: 'payoutsWeCannotMake', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_potId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'getFundingPotBalance', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_potId', internalType: 'uint256', type: 'uint256' }, + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'getFundingPotBalance', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getFundingPotCount', + outputs: [{ name: 'count', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_potId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'getFundingPotPayout', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_token', internalType: 'address', type: 'address' }], + name: 'getNonRewardPotsTotal', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'getNonRewardPotsTotal', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getRewardInverse', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_permissionDomainId', internalType: 'uint256', type: 'uint256' }, + { name: '_childSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { + name: '_fromChildSkillIndex', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_toChildSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_fromPot', internalType: 'uint256', type: 'uint256' }, + { name: '_toPot', internalType: 'uint256', type: 'uint256' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'moveFundsBetweenPots', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_permissionDomainId', internalType: 'uint256', type: 'uint256' }, + { name: '_childSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { + name: '_fromChildSkillIndex', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_toChildSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_fromPot', internalType: 'uint256', type: 'uint256' }, + { name: '_toPot', internalType: 'uint256', type: 'uint256' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'moveFundsBetweenPots', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_permissionDomainId', internalType: 'uint256', type: 'uint256' }, + { + name: '_fromChildSkillIndex', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_toChildSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_fromPot', internalType: 'uint256', type: 'uint256' }, + { name: '_toPot', internalType: 'uint256', type: 'uint256' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + ], + name: 'moveFundsBetweenPots', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'recordClaimedFundsFromBridge', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: 'authority_', + internalType: 'contract DSAuthority', + type: 'address', + }, + ], + name: 'setAuthority', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_slot', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setExpenditurePayout', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_permissionDomainId', internalType: 'uint256', type: 'uint256' }, + { name: '_childSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_slot', internalType: 'uint256', type: 'uint256' }, + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setExpenditurePayout', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_slot', internalType: 'uint256', type: 'uint256' }, + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setExpenditurePayout', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_permissionDomainId', internalType: 'uint256', type: 'uint256' }, + { name: '_childSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_slot', internalType: 'uint256', type: 'uint256' }, + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setExpenditurePayout', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_id', internalType: 'uint256', type: 'uint256' }, + { name: '_slots', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_amounts', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'setExpenditurePayouts', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'owner_', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'permissionDomainId', internalType: 'uint256', type: 'uint256' }, + { name: 'childSkillIndex', internalType: 'uint256', type: 'uint256' }, + { name: 'childDomainId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'validateDomainInheritance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, +] as const; + +export const colonyFundingAddress = + '0x777760996135f0791E2e1a74aFAa060711197779' as const; + +export const colonyFundingConfig = { + address: colonyFundingAddress, + abi: colonyFundingAbi, +} as const; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ColonyNetwork ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -2954,3 +4763,230 @@ export const colonyNetworkConfig = { address: colonyNetworkAddress, abi: colonyNetworkAbi, } as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ProxyColony +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const proxyColonyAbi = [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'domainId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'balance', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DomainFundsClaimed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'authority', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'LogSetAuthority', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'LogSetOwner', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'userAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'relayerAddress', + internalType: 'address payable', + type: 'address', + indexed: false, + }, + { name: 'payload', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'MetaTransactionExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'user', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TransferMade', + }, + { + type: 'function', + inputs: [], + name: 'authority', + outputs: [ + { name: '', internalType: 'contract DSAuthority', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_token', internalType: 'address', type: 'address' }], + name: 'claimColonyFunds', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_domainId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'claimDomainFunds', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_payload', internalType: 'bytes', type: 'bytes' }, + { name: '_sigR', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigS', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigV', internalType: 'uint8', type: 'uint8' }, + ], + name: 'executeMetaTransaction', + outputs: [{ name: 'returnData', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: '_user', internalType: 'address', type: 'address' }], + name: 'getMetatransactionNonce', + outputs: [{ name: 'nonce', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_payload', internalType: 'bytes', type: 'bytes' }, + ], + name: 'makeArbitraryTransaction', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }], + name: 'multicall', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'authority_', + internalType: 'contract DSAuthority', + type: 'address', + }, + ], + name: 'setAuthority', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'owner_', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_recipient', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFromBridge', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_user', internalType: 'address', type: 'address' }, + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_chainId', internalType: 'uint256', type: 'uint256' }, + { name: '_payload', internalType: 'bytes', type: 'bytes' }, + { name: '_sigR', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigS', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sigV', internalType: 'uint8', type: 'uint8' }, + ], + name: 'verify', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, +] as const; + +export const proxyColonyAddress = + '0x777760996135F0791E2E1a74AFaA060711197781' as const; + +export const proxyColonyConfig = { + address: proxyColonyAddress, + abi: proxyColonyAbi, +} as const; diff --git a/src/redux/actionTypes.ts b/src/redux/actionTypes.ts index 086f0e6a50e..9e3dab187e6 100644 --- a/src/redux/actionTypes.ts +++ b/src/redux/actionTypes.ts @@ -343,4 +343,7 @@ export enum ActionTypes { PROXY_COLONY_ENABLE = 'PROXY_COLONY_ENABLE', PROXY_COLONY_ENABLE_SUCCESS = 'PROXY_COLONY_ENABLE_SUCCESS', PROXY_COLONY_ENABLE_ERROR = 'PROXY_COLONY_ENABLE_ERROR', + PROXY_COLONY_CLAIM_TOKEN = 'PROXY_COLONY_CLAIM_TOKEN', + PROXY_COLONY_CLAIM_TOKEN_SUCCESS = 'PROXY_COLONY_CLAIM_TOKEN_SUCCESS', + PROXY_COLONY_CLAIM_TOKEN_ERROR = 'PROXY_COLONY_CLAIM_TOKEN_ERROR', } diff --git a/src/redux/sagas/proxyColonies/claimToken.ts b/src/redux/sagas/proxyColonies/claimToken.ts new file mode 100644 index 00000000000..7f642e6fe24 --- /dev/null +++ b/src/redux/sagas/proxyColonies/claimToken.ts @@ -0,0 +1,108 @@ +import { ClientType } from '@colony/colony-js'; +import { type CustomContract } from '@colony/sdk'; +import { all, fork, put, takeEvery } from 'redux-saga/effects'; + +import { colonyFundingAbi } from '~constants/abis.ts'; +import { ActionTypes } from '~redux/actionTypes.ts'; +import { type AllActions, type Action } from '~redux/types/actions/index.ts'; +import { TRANSACTION_METHODS } from '~types/transactions.ts'; + +import { + type ChannelDefinition, + createTransaction, + createTransactionChannels, + waitForTxResult, + type TransactionChannelMap, +} from '../transactions/index.ts'; +import { + getColonyManager, + initiateTransaction, + putError, + takeFrom, +} from '../utils/index.ts'; + +function* claimToken({ + payload: { colonyAddress, tokenAddresses, chainId }, + meta: { id: metaId }, + meta, +}: Action) { + const txChannels: TransactionChannelMap = {}; + + const batchKey = TRANSACTION_METHODS.ProxyColonyClaimFunds; + + const uniqueTokenAddresses = [...new Set(tokenAddresses)]; + + const { claimFundsMulticall }: Record = + yield createTransactionChannels(metaId, ['claimFundsMulticall']); + + try { + const colonyManager = yield getColonyManager(); + + const colonyFundingContract: CustomContract = + colonyManager.getCustomContract(colonyAddress, colonyFundingAbi); + + const encodedTransactions = yield all( + uniqueTokenAddresses.map((tokenAddress) => + colonyFundingContract + // This is necessary because there are multiple claimColonyFunds functions with different signatures + // and the custom contract cannot determine which one to choose. + .createTxCreator('claimColonyFunds(uint256,address)' as any, [ + BigInt(chainId), + tokenAddress, + ]) + .tx() + .encode(), + ), + ); + + yield fork(createTransaction, claimFundsMulticall.id, { + context: ClientType.ColonyClient, + methodName: 'multicall', + identifier: colonyAddress, + group: { + key: batchKey, + id: meta.id, + index: 0, + }, + ready: false, + params: [encodedTransactions], + }); + + yield takeFrom( + claimFundsMulticall.channel, + ActionTypes.TRANSACTION_CREATED, + ); + + yield initiateTransaction(claimFundsMulticall.id); + + const { + payload: { + receipt: { transactionHash: txHash }, + }, + } = yield waitForTxResult(claimFundsMulticall.channel); + + // eslint-disable-next-line no-console + console.log('Claim funds multi call txHash', txHash); + + yield put({ + type: ActionTypes.PROXY_COLONY_CLAIM_TOKEN_SUCCESS, + payload: { params: { tokenAddresses: uniqueTokenAddresses } }, + meta, + }); + } catch (error) { + return yield putError( + ActionTypes.PROXY_COLONY_CLAIM_TOKEN_ERROR, + error, + meta, + ); + } finally { + for (const { channel: txChannel } of Object.values(txChannels)) { + txChannel.close(); + } + } + return null; +} + +export default function* claimTokenSaga() { + yield takeEvery(ActionTypes.PROXY_COLONY_CLAIM_TOKEN, claimToken); +} diff --git a/src/redux/sagas/proxyColonies/index.ts b/src/redux/sagas/proxyColonies/index.ts index 2ec60dca6d1..c31d4851723 100644 --- a/src/redux/sagas/proxyColonies/index.ts +++ b/src/redux/sagas/proxyColonies/index.ts @@ -1,5 +1,6 @@ import { all, call } from 'redux-saga/effects'; +import claimTokenSaga from './claimToken.ts'; import createProxyColonySaga from './createProxyColony.ts'; import disableProxyColonySaga from './disableProxyColony.ts'; import enableProxyColonySaga from './enableProxyColony.ts'; @@ -9,5 +10,6 @@ export default function* proxyColonySagas() { call(createProxyColonySaga), call(enableProxyColonySaga), call(disableProxyColonySaga), + call(claimTokenSaga), ]); } diff --git a/src/redux/types/actions/proxyColonies.ts b/src/redux/types/actions/proxyColonies.ts index 410f432d0e3..aab50be94fc 100644 --- a/src/redux/types/actions/proxyColonies.ts +++ b/src/redux/types/actions/proxyColonies.ts @@ -44,4 +44,20 @@ export type ProxyColoniesActionTypes = MetaWithSetter > | ErrorActionType - | UniqueActionType; + | UniqueActionType + | UniqueActionType + | UniqueActionType< + ActionTypes.PROXY_COLONY_CLAIM_TOKEN, + { + tokenAddresses: `0x${string}`[]; + colonyAddress: Address; + chainId: string; + }, + MetaWithSetter + > + | ErrorActionType + | UniqueActionType< + ActionTypes.PROXY_COLONY_CLAIM_TOKEN_SUCCESS, + { params: { tokenAddresses: Address[] } }, + object + >; diff --git a/src/types/transactions.ts b/src/types/transactions.ts index 07393d85375..758052e0c27 100644 --- a/src/types/transactions.ts +++ b/src/types/transactions.ts @@ -117,4 +117,5 @@ export enum TRANSACTION_METHODS { // Proxy colonies CreateProxyColony = 'createProxyColony', RemoveProxyColony = 'removeProxyColony', + ProxyColonyClaimFunds = 'proxyColonyClaimFunds', } diff --git a/wagmi.config.ts b/wagmi.config.ts index 827e0bf9aa8..3ff760a3580 100644 --- a/wagmi.config.ts +++ b/wagmi.config.ts @@ -22,6 +22,16 @@ const contracts: Contract[] = [ address: '0x777760996135F0791E2e1a74aFAa060711197778', path: 'colony/Colony.sol/Colony.json', }, + { + name: 'ColonyFunding', + path: 'colony/ColonyFunding.sol/ColonyFunding.json', + address: '0x777760996135F0791E2e1a74aFAa060711197779', + }, + { + name: 'ProxyColony', + address: '0x777760996135F0791E2e1a74aFAa060711197781', + path: 'bridging/ProxyColony.sol/ProxyColony.json', + }, ]; export default defineConfig({ From c293fb531fbfbebb4e5bb306c43214c9caaefb19 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Wed, 29 Jan 2025 18:37:59 +0100 Subject: [PATCH 55/66] Feat: Add claim tokens on all chains saga Feat: Add claim tokens on all chains saga --- .../fetchColonyNativeFundsClaim/src/index.js | 2 +- docker/colony-cdapp-dev-env-network | 2 +- .../partials/AcceptButton/AcceptButton.tsx | 34 +++-- .../FundsPage/partials/AcceptButton/types.ts | 8 - .../FundsPage/partials/Filter/Filter.tsx | 4 +- .../pages/FundsPage/partials/Filter/types.ts | 5 +- .../partials/FundsTable/FundsTable.tsx | 9 +- .../FundsPage/partials/FundsTable/utils.ts | 31 ++++ .../FundsPage/partials/TokenTable/hooks.tsx | 18 +-- src/redux/actionTypes.ts | 4 + src/redux/sagas/colony/colonyClaimFunds.ts | 141 ++++++++++++++++++ src/redux/sagas/colony/index.ts | 1 + src/redux/sagas/setupUserContext.ts | 5 +- src/redux/types/actions/colony.ts | 17 +++ 14 files changed, 237 insertions(+), 44 deletions(-) delete mode 100644 src/components/frame/v5/pages/FundsPage/partials/AcceptButton/types.ts create mode 100644 src/components/frame/v5/pages/FundsPage/partials/FundsTable/utils.ts create mode 100644 src/redux/sagas/colony/colonyClaimFunds.ts diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js b/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js index 5a4d7893bf9..afc8dbac468 100644 --- a/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js @@ -63,7 +63,7 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { provider, ); - const colonyFundsClaim = { + let colonyFundsClaim = { __typeName: 'ColonyFundsClaim', amount: BigNumber.from(0).toString(), id: `${chainId}_${constants.AddressZero}_0`, diff --git a/docker/colony-cdapp-dev-env-network b/docker/colony-cdapp-dev-env-network index 16c18cdddf8..a23a3d316ad 100644 --- a/docker/colony-cdapp-dev-env-network +++ b/docker/colony-cdapp-dev-env-network @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV NETWORK_HASH=eec1e700e98b38ba0e4d74f0ac70a934438069b3 +ENV NETWORK_HASH=aa9dc4dd0b12d363dc762e789d35b0096f57ea3e # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx b/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx index d9cb810668c..6d61a2b7d73 100644 --- a/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx +++ b/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx @@ -1,24 +1,32 @@ -import React, { type FC, useState } from 'react'; +import React, { type FC, type PropsWithChildren, useState } from 'react'; import { useColonyContext } from '~context/ColonyContext/ColonyContext.ts'; import { useIncomingFundsLoadingContext } from '~frame/v5/pages/FundsPage/context/IncomingFundsLoadingContext.ts'; import { ActionTypes } from '~redux/index.ts'; import ActionButton from '~v5/shared/Button/ActionButton.tsx'; - -import { type AcceptButtonProps } from './types.ts'; +import { type ButtonProps } from '~v5/shared/Button/types.ts'; const displayName = 'pages.FundsPage.partials.AcceptButton'; -const AcceptButton: FC = ({ - tokenAddresses, +interface AcceptButtonProps extends Pick { + tokenAddressesGroupedByChain: { + chainId?: string; + tokenAddresses: string[]; + }[]; +} + +const AcceptButton: FC = ({ + tokenAddressesGroupedByChain, children, disabled, - chainId, - actionType = ActionTypes.CLAIM_TOKEN, - ...rest }) => { const { colony, canInteractWithColony } = useColonyContext(); const [isClaimed, setIsClaimed] = useState(false); + const allTokenAddresses = [ + ...new Set( + tokenAddressesGroupedByChain.flatMap((group) => group.tokenAddresses), + ), + ]; const { isAcceptLoading, @@ -33,23 +41,21 @@ const AcceptButton: FC = ({ return { colonyAddress: colony?.colonyAddress, - tokenAddresses, - chainId, + tokenAddressesGroupedByChain, }; }; const handleClaimSuccess = () => { setIsClaimed(true); - setPendingFundsTokenAddresses(tokenAddresses); + setPendingFundsTokenAddresses(allTokenAddresses); }; const isBtnDisabled = disabled || !canInteractWithColony || isClaimed || isAcceptLoading; - // @Note: need to check how to differentiate between the ActionTypes.PROXY_COLONY_CLAIM_TOKEN and ActionTypes.CLAIM_TOKEN + return ( ({ searchInputPlaceholder, filtersHeader = 'filters', buttonText, - unclaimedClaims, + tokenAddressesGroupedByChain, isButtonDisabled, shouldShowButton, }: ExtendedFilterProps) { @@ -100,7 +100,7 @@ function Filter({ )} {shouldShowButton && ( {formatText({ id: 'incomingFundsPage.table.claimAllFunds' })} diff --git a/src/components/frame/v5/pages/FundsPage/partials/Filter/types.ts b/src/components/frame/v5/pages/FundsPage/partials/Filter/types.ts index 32f96a4fa06..39e5dae12c1 100644 --- a/src/components/frame/v5/pages/FundsPage/partials/Filter/types.ts +++ b/src/components/frame/v5/pages/FundsPage/partials/Filter/types.ts @@ -38,7 +38,10 @@ export interface FilterProps { export interface ExtendedFilterProps extends FilterProps { - unclaimedClaims: string[]; + tokenAddressesGroupedByChain: { + chainId: string; + tokenAddresses: string[]; + }[]; isButtonDisabled?: boolean; shouldShowButton?: boolean; } diff --git a/src/components/frame/v5/pages/FundsPage/partials/FundsTable/FundsTable.tsx b/src/components/frame/v5/pages/FundsPage/partials/FundsTable/FundsTable.tsx index 21984997f85..40c9da67bf0 100644 --- a/src/components/frame/v5/pages/FundsPage/partials/FundsTable/FundsTable.tsx +++ b/src/components/frame/v5/pages/FundsPage/partials/FundsTable/FundsTable.tsx @@ -19,6 +19,7 @@ import Filter from '../Filter/index.ts'; import { useFundsTable, useFundsTableColumns } from './hooks.tsx'; import { type FundsTableModel } from './types.ts'; +import { getGroupedUnclaimedClaimsByChain } from './utils.ts'; const displayName = 'pages.FundsPage.partials.FundsTable'; @@ -28,9 +29,9 @@ const FundsTable: FC = () => { const { filters, searchedTokens, activeFilters } = useFundsTable(); const claims = useColonyFundsClaims(); const unclaimedClaims = claims.filter((claim) => !claim.isClaimed); - const allUnclaimedClaims = Array.from( - new Set(unclaimedClaims.map((claim) => claim.token?.tokenAddress || '')), - ); + + const tokenAddressesGroupedByChain = + getGroupedUnclaimedClaimsByChain(unclaimedClaims); return ( @@ -75,7 +76,7 @@ const FundsTable: FC = () => { )} 0} /> diff --git a/src/components/frame/v5/pages/FundsPage/partials/FundsTable/utils.ts b/src/components/frame/v5/pages/FundsPage/partials/FundsTable/utils.ts new file mode 100644 index 00000000000..d7503e508b3 --- /dev/null +++ b/src/components/frame/v5/pages/FundsPage/partials/FundsTable/utils.ts @@ -0,0 +1,31 @@ +import { type ColonyClaims } from '~types/graphql.ts'; + +export const getGroupedUnclaimedClaimsByChain = ( + unclaimedClaims: ColonyClaims[], +) => { + const groupedUnclaimedClaims = unclaimedClaims.reduce( + (acc, claim) => { + if (!claim || !claim.token) return acc; + + const { chainId } = claim.token.chainMetadata; + const { tokenAddress } = claim.token; + + // Ensure the chainId group exists + if (!acc[chainId]) { + acc[chainId] = new Set(); + } + + acc[chainId].add(tokenAddress); + + return acc; + }, + {} as Record>, + ); + + return Object.entries(groupedUnclaimedClaims).map( + ([chainId, addressesSet]) => ({ + chainId, + tokenAddresses: Array.from(addressesSet), + }), + ); +}; diff --git a/src/components/frame/v5/pages/FundsPage/partials/TokenTable/hooks.tsx b/src/components/frame/v5/pages/FundsPage/partials/TokenTable/hooks.tsx index dd565e4bc02..963003b083a 100644 --- a/src/components/frame/v5/pages/FundsPage/partials/TokenTable/hooks.tsx +++ b/src/components/frame/v5/pages/FundsPage/partials/TokenTable/hooks.tsx @@ -2,8 +2,6 @@ import { type ColumnDef, createColumnHelper } from '@tanstack/react-table'; import { BigNumber } from 'ethers'; import React, { useCallback, useMemo } from 'react'; -import { DEFAULT_NETWORK_INFO } from '~constants'; -import { ActionTypes } from '~redux'; import Numeral from '~shared/Numeral/index.ts'; import { type ColonyClaims } from '~types/graphql.ts'; import { formatText } from '~utils/intl.ts'; @@ -23,18 +21,14 @@ export const useTokenTableColumns = (): ColumnDef[] => { } if (!BigNumber.from(claim.amount).isZero()) { - const claimChainId = claim.token?.chainMetadata.chainId; - const isClaimForDefaultNetworkChain = - !claimChainId || DEFAULT_NETWORK_INFO.chainId === claimChainId; return ( {formatText({ id: 'button.accept' })} diff --git a/src/redux/actionTypes.ts b/src/redux/actionTypes.ts index 9e3dab187e6..af6e6305997 100644 --- a/src/redux/actionTypes.ts +++ b/src/redux/actionTypes.ts @@ -346,4 +346,8 @@ export enum ActionTypes { PROXY_COLONY_CLAIM_TOKEN = 'PROXY_COLONY_CLAIM_TOKEN', PROXY_COLONY_CLAIM_TOKEN_SUCCESS = 'PROXY_COLONY_CLAIM_TOKEN_SUCCESS', PROXY_COLONY_CLAIM_TOKEN_ERROR = 'PROXY_COLONY_CLAIM_TOKEN_ERROR', + + CLAIM_TOKENS_ON_CHAINS = 'CLAIM_TOKENS_ON_CHAINS', + CLAIM_TOKENS_ON_CHAINS_ERROR = 'CLAIM_TOKENS_ON_CHAINS_ERROR', + CLAIM_TOKENS_ON_CHAINS_SUCCESS = 'CLAIM_TOKENS_ON_CHAINS_SUCCESS', } diff --git a/src/redux/sagas/colony/colonyClaimFunds.ts b/src/redux/sagas/colony/colonyClaimFunds.ts new file mode 100644 index 00000000000..f82c3a13b92 --- /dev/null +++ b/src/redux/sagas/colony/colonyClaimFunds.ts @@ -0,0 +1,141 @@ +import { ClientType } from '@colony/colony-js'; +import { type CustomContract } from '@colony/sdk'; +import { all, fork, put, takeEvery } from 'redux-saga/effects'; + +import { DEFAULT_NETWORK_INFO } from '~constants'; +import { colonyFundingAbi } from '~constants/abis.ts'; +import { ActionTypes } from '~redux/actionTypes.ts'; +import { type AllActions, type Action } from '~redux/types/actions/index.ts'; +import { TRANSACTION_METHODS } from '~types/transactions.ts'; + +import { + type ChannelDefinition, + createTransaction, + createTransactionChannels, + waitForTxResult, + type TransactionChannelMap, +} from '../transactions/index.ts'; +import { + getColonyManager, + initiateTransaction, + putError, + takeFrom, +} from '../utils/index.ts'; + +function* colonyClaimFunds({ + payload: { colonyAddress, tokenAddressesGroupedByChain }, + meta: { id: metaId }, + meta, +}: Action) { + const txChannels: TransactionChannelMap = {}; + + const batchKey = TRANSACTION_METHODS.ClaimColonyFunds; + + const { claimFundsMulticall }: Record = + yield createTransactionChannels(metaId, ['claimFundsMulticall']); + + const allUniqueTokenAddresses = [ + ...new Set( + tokenAddressesGroupedByChain.flatMap((group) => group.tokenAddresses), + ), + ]; + + try { + const colonyManager = yield getColonyManager(); + + const colonyFundingContract: CustomContract = + colonyManager.getCustomContract(colonyAddress, colonyFundingAbi); + + // console.log(tokenAddressesGroupedByChain); + + const encodedTransactions = yield all( + tokenAddressesGroupedByChain.flatMap((group) => { + const { chainId, tokenAddresses } = group; + const uniqueTokenAddresses = [...new Set(tokenAddresses)]; + + const isOnMainChain = + !chainId || chainId === DEFAULT_NETWORK_INFO.chainId; + + if (isOnMainChain) { + // console.log(chainId, uniqueTokenAddresses); + return uniqueTokenAddresses.map((tokenAddress) => + colonyFundingContract + // This is necessary because there are multiple claimColonyFunds functions with different signatures + // and the custom contract cannot determine which one to choose. + .createTxCreator('claimColonyFunds(address)' as any, [ + tokenAddress, + ]) + .tx() + .encode(), + ); + } + + // console.log(chainId, uniqueTokenAddresses); + + return uniqueTokenAddresses.map((tokenAddress) => + colonyFundingContract + // This is necessary because there are multiple claimColonyFunds functions with different signatures + // and the custom contract cannot determine which one to choose. + .createTxCreator('claimColonyFunds(uint256,address)' as any, [ + BigInt(chainId), + tokenAddress, + ]) + .tx() + .encode(), + ); + }), + ); + + // console.log(encodedTransactions); + + yield fork(createTransaction, claimFundsMulticall.id, { + context: ClientType.ColonyClient, + methodName: 'multicall', + identifier: colonyAddress, + group: { + key: batchKey, + id: meta.id, + index: 0, + }, + ready: false, + params: [encodedTransactions], + }); + + yield takeFrom( + claimFundsMulticall.channel, + ActionTypes.TRANSACTION_CREATED, + ); + + yield initiateTransaction(claimFundsMulticall.id); + + const { + payload: { + receipt: { transactionHash: txHash }, + }, + } = yield waitForTxResult(claimFundsMulticall.channel); + + // eslint-disable-next-line no-console + console.log('Claim funds multi call txHash', txHash); + + yield put({ + type: ActionTypes.CLAIM_TOKENS_ON_CHAINS_SUCCESS, + payload: { params: { tokenAddresses: allUniqueTokenAddresses } }, + meta, + }); + } catch (error) { + return yield putError( + ActionTypes.CLAIM_TOKENS_ON_CHAINS_ERROR, + error, + meta, + ); + } finally { + for (const { channel: txChannel } of Object.values(txChannels)) { + txChannel.close(); + } + } + return null; +} + +export default function* colonyClaimFundsSagas() { + yield takeEvery(ActionTypes.CLAIM_TOKENS_ON_CHAINS, colonyClaimFunds); +} diff --git a/src/redux/sagas/colony/index.ts b/src/redux/sagas/colony/index.ts index e72323bb28c..f0ff300ec05 100644 --- a/src/redux/sagas/colony/index.ts +++ b/src/redux/sagas/colony/index.ts @@ -16,6 +16,7 @@ import { initiateTransaction, putError, takeFrom } from '../utils/index.ts'; export { default as colonyCreateSaga } from './colonyCreate.ts'; export { default as colonyFinishCreate } from './colonyFinishCreate.ts'; +// @TODO this might need to be removed in favour of colonyClaimFunds saga, though it implies some refactoring function* colonyClaimToken({ payload: { colonyAddress, tokenAddresses }, meta, diff --git a/src/redux/sagas/setupUserContext.ts b/src/redux/sagas/setupUserContext.ts index a63e82d0b17..42b9df00823 100644 --- a/src/redux/sagas/setupUserContext.ts +++ b/src/redux/sagas/setupUserContext.ts @@ -13,8 +13,10 @@ import { ActionTypes } from '../actionTypes.ts'; import { type AllActions } from '../types/actions/index.ts'; import actionsSagas from './actions/index.ts'; +import colonyClaimFundsSagas from './colony/colonyClaimFunds.ts'; +import colonyCreateSaga from './colony/colonyCreate.ts'; import colonyFinishCreateSaga from './colony/colonyFinishCreate.ts'; -import colonySagas, { colonyCreateSaga } from './colony/index.ts'; +import colonySagas from './colony/index.ts'; import decisionsSagas from './decisions/index.ts'; import expendituresSagas from './expenditures/index.ts'; import extensionSagas from './extensions/index.ts'; @@ -53,6 +55,7 @@ function* setupContextDependentSagas() { call(decisionsSagas), call(actionsSagas), call(colonySagas), + call(colonyClaimFundsSagas), call(colonyCreateSaga), call(colonyFinishCreateSaga), call(extensionSagas), diff --git a/src/redux/types/actions/colony.ts b/src/redux/types/actions/colony.ts index b36cc5583ab..fd831e99ac3 100644 --- a/src/redux/types/actions/colony.ts +++ b/src/redux/types/actions/colony.ts @@ -29,6 +29,23 @@ export type ColonyActionTypes = { params: { tokenAddresses: Address[] } }, object > + | UniqueActionType< + ActionTypes.CLAIM_TOKENS_ON_CHAINS, + { + tokenAddressesGroupedByChain: { + chainId?: string; + tokenAddresses: `0x${string}`[]; + }[]; + colonyAddress: Address; + }, + object + > + | ErrorActionType + | UniqueActionType< + ActionTypes.CLAIM_TOKENS_ON_CHAINS_SUCCESS, + { params: { tokenAddresses: Address[] } }, + object + > | UniqueActionType< ActionTypes.CREATE, { From 019d93e819db258cdcd1da2eb2ea0da7e921c204 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Thu, 30 Jan 2025 09:21:16 +0100 Subject: [PATCH 56/66] Refactor: Remove unused saga for claiming tokens on proxy chain Refactor: Remove unused saga for claiming tokens on proxy chain --- src/redux/actionTypes.ts | 3 - src/redux/sagas/colony/colonyClaimFunds.ts | 7 -- src/redux/sagas/proxyColonies/claimToken.ts | 108 -------------------- src/redux/sagas/proxyColonies/index.ts | 2 - src/redux/types/actions/proxyColonies.ts | 17 +-- 5 files changed, 1 insertion(+), 136 deletions(-) delete mode 100644 src/redux/sagas/proxyColonies/claimToken.ts diff --git a/src/redux/actionTypes.ts b/src/redux/actionTypes.ts index af6e6305997..3ec62b41858 100644 --- a/src/redux/actionTypes.ts +++ b/src/redux/actionTypes.ts @@ -343,9 +343,6 @@ export enum ActionTypes { PROXY_COLONY_ENABLE = 'PROXY_COLONY_ENABLE', PROXY_COLONY_ENABLE_SUCCESS = 'PROXY_COLONY_ENABLE_SUCCESS', PROXY_COLONY_ENABLE_ERROR = 'PROXY_COLONY_ENABLE_ERROR', - PROXY_COLONY_CLAIM_TOKEN = 'PROXY_COLONY_CLAIM_TOKEN', - PROXY_COLONY_CLAIM_TOKEN_SUCCESS = 'PROXY_COLONY_CLAIM_TOKEN_SUCCESS', - PROXY_COLONY_CLAIM_TOKEN_ERROR = 'PROXY_COLONY_CLAIM_TOKEN_ERROR', CLAIM_TOKENS_ON_CHAINS = 'CLAIM_TOKENS_ON_CHAINS', CLAIM_TOKENS_ON_CHAINS_ERROR = 'CLAIM_TOKENS_ON_CHAINS_ERROR', diff --git a/src/redux/sagas/colony/colonyClaimFunds.ts b/src/redux/sagas/colony/colonyClaimFunds.ts index f82c3a13b92..762771b0654 100644 --- a/src/redux/sagas/colony/colonyClaimFunds.ts +++ b/src/redux/sagas/colony/colonyClaimFunds.ts @@ -46,8 +46,6 @@ function* colonyClaimFunds({ const colonyFundingContract: CustomContract = colonyManager.getCustomContract(colonyAddress, colonyFundingAbi); - // console.log(tokenAddressesGroupedByChain); - const encodedTransactions = yield all( tokenAddressesGroupedByChain.flatMap((group) => { const { chainId, tokenAddresses } = group; @@ -57,7 +55,6 @@ function* colonyClaimFunds({ !chainId || chainId === DEFAULT_NETWORK_INFO.chainId; if (isOnMainChain) { - // console.log(chainId, uniqueTokenAddresses); return uniqueTokenAddresses.map((tokenAddress) => colonyFundingContract // This is necessary because there are multiple claimColonyFunds functions with different signatures @@ -70,8 +67,6 @@ function* colonyClaimFunds({ ); } - // console.log(chainId, uniqueTokenAddresses); - return uniqueTokenAddresses.map((tokenAddress) => colonyFundingContract // This is necessary because there are multiple claimColonyFunds functions with different signatures @@ -86,8 +81,6 @@ function* colonyClaimFunds({ }), ); - // console.log(encodedTransactions); - yield fork(createTransaction, claimFundsMulticall.id, { context: ClientType.ColonyClient, methodName: 'multicall', diff --git a/src/redux/sagas/proxyColonies/claimToken.ts b/src/redux/sagas/proxyColonies/claimToken.ts deleted file mode 100644 index 7f642e6fe24..00000000000 --- a/src/redux/sagas/proxyColonies/claimToken.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { ClientType } from '@colony/colony-js'; -import { type CustomContract } from '@colony/sdk'; -import { all, fork, put, takeEvery } from 'redux-saga/effects'; - -import { colonyFundingAbi } from '~constants/abis.ts'; -import { ActionTypes } from '~redux/actionTypes.ts'; -import { type AllActions, type Action } from '~redux/types/actions/index.ts'; -import { TRANSACTION_METHODS } from '~types/transactions.ts'; - -import { - type ChannelDefinition, - createTransaction, - createTransactionChannels, - waitForTxResult, - type TransactionChannelMap, -} from '../transactions/index.ts'; -import { - getColonyManager, - initiateTransaction, - putError, - takeFrom, -} from '../utils/index.ts'; - -function* claimToken({ - payload: { colonyAddress, tokenAddresses, chainId }, - meta: { id: metaId }, - meta, -}: Action) { - const txChannels: TransactionChannelMap = {}; - - const batchKey = TRANSACTION_METHODS.ProxyColonyClaimFunds; - - const uniqueTokenAddresses = [...new Set(tokenAddresses)]; - - const { claimFundsMulticall }: Record = - yield createTransactionChannels(metaId, ['claimFundsMulticall']); - - try { - const colonyManager = yield getColonyManager(); - - const colonyFundingContract: CustomContract = - colonyManager.getCustomContract(colonyAddress, colonyFundingAbi); - - const encodedTransactions = yield all( - uniqueTokenAddresses.map((tokenAddress) => - colonyFundingContract - // This is necessary because there are multiple claimColonyFunds functions with different signatures - // and the custom contract cannot determine which one to choose. - .createTxCreator('claimColonyFunds(uint256,address)' as any, [ - BigInt(chainId), - tokenAddress, - ]) - .tx() - .encode(), - ), - ); - - yield fork(createTransaction, claimFundsMulticall.id, { - context: ClientType.ColonyClient, - methodName: 'multicall', - identifier: colonyAddress, - group: { - key: batchKey, - id: meta.id, - index: 0, - }, - ready: false, - params: [encodedTransactions], - }); - - yield takeFrom( - claimFundsMulticall.channel, - ActionTypes.TRANSACTION_CREATED, - ); - - yield initiateTransaction(claimFundsMulticall.id); - - const { - payload: { - receipt: { transactionHash: txHash }, - }, - } = yield waitForTxResult(claimFundsMulticall.channel); - - // eslint-disable-next-line no-console - console.log('Claim funds multi call txHash', txHash); - - yield put({ - type: ActionTypes.PROXY_COLONY_CLAIM_TOKEN_SUCCESS, - payload: { params: { tokenAddresses: uniqueTokenAddresses } }, - meta, - }); - } catch (error) { - return yield putError( - ActionTypes.PROXY_COLONY_CLAIM_TOKEN_ERROR, - error, - meta, - ); - } finally { - for (const { channel: txChannel } of Object.values(txChannels)) { - txChannel.close(); - } - } - return null; -} - -export default function* claimTokenSaga() { - yield takeEvery(ActionTypes.PROXY_COLONY_CLAIM_TOKEN, claimToken); -} diff --git a/src/redux/sagas/proxyColonies/index.ts b/src/redux/sagas/proxyColonies/index.ts index c31d4851723..2ec60dca6d1 100644 --- a/src/redux/sagas/proxyColonies/index.ts +++ b/src/redux/sagas/proxyColonies/index.ts @@ -1,6 +1,5 @@ import { all, call } from 'redux-saga/effects'; -import claimTokenSaga from './claimToken.ts'; import createProxyColonySaga from './createProxyColony.ts'; import disableProxyColonySaga from './disableProxyColony.ts'; import enableProxyColonySaga from './enableProxyColony.ts'; @@ -10,6 +9,5 @@ export default function* proxyColonySagas() { call(createProxyColonySaga), call(enableProxyColonySaga), call(disableProxyColonySaga), - call(claimTokenSaga), ]); } diff --git a/src/redux/types/actions/proxyColonies.ts b/src/redux/types/actions/proxyColonies.ts index aab50be94fc..5c8458f1d6f 100644 --- a/src/redux/types/actions/proxyColonies.ts +++ b/src/redux/types/actions/proxyColonies.ts @@ -45,19 +45,4 @@ export type ProxyColoniesActionTypes = > | ErrorActionType | UniqueActionType - | UniqueActionType - | UniqueActionType< - ActionTypes.PROXY_COLONY_CLAIM_TOKEN, - { - tokenAddresses: `0x${string}`[]; - colonyAddress: Address; - chainId: string; - }, - MetaWithSetter - > - | ErrorActionType - | UniqueActionType< - ActionTypes.PROXY_COLONY_CLAIM_TOKEN_SUCCESS, - { params: { tokenAddresses: Address[] } }, - object - >; + | UniqueActionType; From af57d6511a0ad5469e1dad46ed89ee841fe5df63 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Thu, 30 Jan 2025 12:17:24 +0100 Subject: [PATCH 57/66] Chore: Update network hash and refactor custom contract type --- docker/colony-cdapp-dev-env-block-ingestor | 2 +- docker/colony-cdapp-dev-env-network | 2 +- docker/colony-cdapp-dev-env-proxy-block-ingestor | 2 +- src/redux/sagas/colony/colonyClaimFunds.ts | 10 ++++++---- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docker/colony-cdapp-dev-env-block-ingestor b/docker/colony-cdapp-dev-env-block-ingestor index 365b75cd91a..99bb915455f 100644 --- a/docker/colony-cdapp-dev-env-block-ingestor +++ b/docker/colony-cdapp-dev-env-block-ingestor @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV BLOCK_INGESTOR_HASH=15d0e5a491d25f78b2f983b0ad9126779f5ad065 +ENV BLOCK_INGESTOR_HASH=61747477aa9fc21fbe0c873311655c72e4bf54ea # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/colony-cdapp-dev-env-network b/docker/colony-cdapp-dev-env-network index a23a3d316ad..558ee0a8321 100644 --- a/docker/colony-cdapp-dev-env-network +++ b/docker/colony-cdapp-dev-env-network @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV NETWORK_HASH=aa9dc4dd0b12d363dc762e789d35b0096f57ea3e +ENV NETWORK_HASH=89015a77c6fba5ac4fbbdcb0c806c0b66807fc73 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/colony-cdapp-dev-env-proxy-block-ingestor b/docker/colony-cdapp-dev-env-proxy-block-ingestor index 5bbc1a1c3e1..37c213eb675 100644 --- a/docker/colony-cdapp-dev-env-proxy-block-ingestor +++ b/docker/colony-cdapp-dev-env-proxy-block-ingestor @@ -1,7 +1,7 @@ FROM colony-cdapp-dev-env/base:latest # @TODO maybe add a PROXY_BLOCK_INGESTOR_HASH and fallback to BLOCK_INGESTOR_HASH -ENV BLOCK_INGESTOR_HASH=1b39cf385254c2117dff2e0e8a0c9578c549ed6e +ENV BLOCK_INGESTOR_HASH=61747477aa9fc21fbe0c873311655c72e4bf54ea ENV CHAIN_RPC_ENDPOINTS='["http://network-contracts-remote:8545", "http://network-contracts-remote-2:8545"]' ENV STATS_PORTS='["10002", "10003"]' diff --git a/src/redux/sagas/colony/colonyClaimFunds.ts b/src/redux/sagas/colony/colonyClaimFunds.ts index 762771b0654..da0907a24ed 100644 --- a/src/redux/sagas/colony/colonyClaimFunds.ts +++ b/src/redux/sagas/colony/colonyClaimFunds.ts @@ -1,9 +1,9 @@ import { ClientType } from '@colony/colony-js'; -import { type CustomContract } from '@colony/sdk'; import { all, fork, put, takeEvery } from 'redux-saga/effects'; import { DEFAULT_NETWORK_INFO } from '~constants'; import { colonyFundingAbi } from '~constants/abis.ts'; +import type ColonyManager from '~context/ColonyManager.ts'; import { ActionTypes } from '~redux/actionTypes.ts'; import { type AllActions, type Action } from '~redux/types/actions/index.ts'; import { TRANSACTION_METHODS } from '~types/transactions.ts'; @@ -41,10 +41,12 @@ function* colonyClaimFunds({ ]; try { - const colonyManager = yield getColonyManager(); + const colonyManager: ColonyManager = yield getColonyManager(); - const colonyFundingContract: CustomContract = - colonyManager.getCustomContract(colonyAddress, colonyFundingAbi); + const colonyFundingContract = colonyManager.getCustomContract( + colonyAddress, + colonyFundingAbi, + ); const encodedTransactions = yield all( tokenAddressesGroupedByChain.flatMap((group) => { From 1e5d000557faf41e024398e986909fc61579fcaa Mon Sep 17 00:00:00 2001 From: Sam Gibbs <34915414+iamsamgibbs@users.noreply.github.com> Date: Thu, 30 Jan 2025 17:53:43 +0000 Subject: [PATCH 58/66] feat: proxy colony balances --- .../src/basicColonyAbi.json | 31 +++++ .../function/fetchColonyBalances/src/index.js | 121 +++++++++++++++--- .../fetchColonyBalances/src/queries.js | 10 ++ src/apollo/cache/colony/balances.ts | 17 ++- .../partials/BalanceTable/hooks.tsx | 11 +- .../frame/v5/pages/TeamsPage/hooks.tsx | 18 +-- .../AmountField/partials/TokenList.tsx | 11 +- .../Motions/steps/FinalizeStep/hooks.tsx | 14 +- .../forms/PaymentBuilderForm/utils.ts | 18 ++- .../partials/FundsCardsTotalDescription.tsx | 9 +- src/utils/tokens.ts | 26 ++-- .../validation/hasEnoughFundsValidation.ts | 11 +- 12 files changed, 225 insertions(+), 72 deletions(-) create mode 100644 amplify/backend/function/fetchColonyBalances/src/basicColonyAbi.json diff --git a/amplify/backend/function/fetchColonyBalances/src/basicColonyAbi.json b/amplify/backend/function/fetchColonyBalances/src/basicColonyAbi.json new file mode 100644 index 00000000000..8c5b971528e --- /dev/null +++ b/amplify/backend/function/fetchColonyBalances/src/basicColonyAbi.json @@ -0,0 +1,31 @@ +[ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_potId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "getFundingPotBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } +] diff --git a/amplify/backend/function/fetchColonyBalances/src/index.js b/amplify/backend/function/fetchColonyBalances/src/index.js index 4a303e40c5d..f8dc5ffab78 100644 --- a/amplify/backend/function/fetchColonyBalances/src/index.js +++ b/amplify/backend/function/fetchColonyBalances/src/index.js @@ -1,38 +1,30 @@ require('cross-fetch/polyfill'); -const { getColonyNetworkClient, Network } = require('@colony/colony-js'); const { providers, utils: { Logger }, constants: { AddressZero }, + Contract, } = require('ethers'); const { graphqlRequest } = require('./utils'); -const { getColony } = require('./queries'); +const { getColony, getProxyColonies } = require('./queries'); +const basicColonyAbi = require('./basicColonyAbi.json'); Logger.setLogLevel(Logger.levels.ERROR); let apiKey = 'da2-fakeApiId123456'; let graphqlURL = 'http://localhost:20002/graphql'; -let rpcURL = 'http://network-contracts:8545'; // this needs to be extended to all supported networks -let network = Network.Custom; -let networkAddress; +let rpcURL = 'http://network-contracts:8545'; const setEnvVariables = async () => { const ENV = process.env.ENV; if (ENV === 'qa' || ENV === 'prod') { const { getParams } = require('/opt/nodejs/getParams'); - [networkAddress, apiKey, graphqlURL, rpcURL, network] = await getParams([ - 'networkContractAddress', + [apiKey, graphqlURL, rpcURL] = await getParams([ 'appsyncApiKey', 'graphqlUrl', 'chainRpcEndpoint', - 'chainNetwork', ]); - } else { - const { - etherRouterAddress, - } = require('../../../../mock-data/colonyNetworkArtifacts/etherrouter-address.json'); - networkAddress = etherRouterAddress; } }; @@ -54,13 +46,35 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { return { items: [] }; } + // Fetch proxy colony details + const getProxyColoniesResponse = await graphqlRequest( + getProxyColonies, + { colonyAddress }, + graphqlURL, + apiKey, + ); + + if (getProxyColoniesResponse.errors || !getProxyColoniesResponse.data) { + const [error] = getProxyColoniesResponse.errors; + throw new Error( + error?.message || 'Could not fetch proxy colony data from DynamoDB', + ); + } + + const { items: proxyColonies } = + getProxyColoniesResponse?.data?.getProxyColoniesByColonyAddress; + + const activeProxyColonies = proxyColonies.filter( + (proxyColony) => proxyColony.isActive, + ); + const provider = new providers.StaticJsonRpcProvider(rpcURL); - const networkClient = getColonyNetworkClient(network, provider, { - networkAddress, - disableVersionCheck: true, - }); - const colonyClient = await networkClient.getColonyClient(colonyAddress); + const lightColonyClient = new Contract( + colonyAddress, + basicColonyAbi, + provider, + ); const { chainId } = colony?.chainMetadata || {}; const { items: domains = [] } = colony.domains || {}; @@ -71,8 +85,9 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { // Native chain token. Ie: address 0x0000...0000 balances.push(async () => { - const rewardsPotTotal = await colonyClient.getFundingPotBalance( + const rewardsPotTotal = await lightColonyClient.getFundingPotBalance( nativeFundingPotId, + chainId, AddressZero, ); /* @@ -89,6 +104,9 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { symbol: '', decimals: 18, type: 'CHAIN_NATIVE', + chainMetadata: { + chainId, + }, }, balance: rewardsPotTotal.toString(), }; @@ -98,8 +116,9 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { const { id: tokenAddress } = token; balances.push(async () => { - const rewardsPotTotal = await colonyClient.getFundingPotBalance( + const rewardsPotTotal = await lightColonyClient.getFundingPotBalance( nativeFundingPotId, + chainId, tokenAddress, ); /* @@ -116,6 +135,68 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { }); }); + activeProxyColonies.map(async (proxyColony) => { + const proxyChainId = proxyColony.chainId; + + domains.map(async (domain) => { + const { nativeId, nativeFundingPotId } = domain; + + // Native chain token. Ie: address 0x0000...0000 + balances.push(async () => { + const rewardsPotTotal = await lightColonyClient.getFundingPotBalance( + nativeFundingPotId, + proxyChainId, + AddressZero, + ); + + /* + * We're using this patters so that we could parallelize all calls at once + * since this is in essence a multi dimensional array (of async data) + */ + return { + id: `${proxyChainId}_${colonyAddress}_${nativeId}_${AddressZero}_balance`, + domain, + token: { + ...tokens[0].token, + id: AddressZero, + name: '', + symbol: '', + decimals: 18, + type: 'CHAIN_NATIVE', + chainMetadata: { + chainId: proxyChainId, + }, + }, + balance: rewardsPotTotal.toString(), + }; + }); + + tokens.map(async ({ token }) => { + const { id: tokenAddress } = token; + + balances.push(async () => { + const rewardsPotTotal = + await lightColonyClient.getFundingPotBalance( + nativeFundingPotId, + proxyChainId, + tokenAddress, + ); + + /* + * We're using this patters so that we could parallelize all calls at once + * since this is in essence a multi dimensional array (of async data) + */ + return { + id: `${proxyChainId}_${colonyAddress}_${nativeId}_${tokenAddress}_balance`, + domain, + token, + balance: rewardsPotTotal.toString(), + }; + }); + }); + }); + }); + return { items: await Promise.all(balances.map(async (resolve) => resolve())), }; diff --git a/amplify/backend/function/fetchColonyBalances/src/queries.js b/amplify/backend/function/fetchColonyBalances/src/queries.js index 557a28b1bc3..b100bf77ed6 100644 --- a/amplify/backend/function/fetchColonyBalances/src/queries.js +++ b/amplify/backend/function/fetchColonyBalances/src/queries.js @@ -76,4 +76,14 @@ module.exports = { } } `, + getProxyColonies: /* GraphQL */ ` + query GetProxyColonies($colonyAddress: ID!) { + getProxyColoniesByColonyAddress(colonyAddress: $colonyAddress) { + items { + chainId + isActive + } + } + } + `, }; diff --git a/src/apollo/cache/colony/balances.ts b/src/apollo/cache/colony/balances.ts index ed1c9ec9869..50bb3c30642 100644 --- a/src/apollo/cache/colony/balances.ts +++ b/src/apollo/cache/colony/balances.ts @@ -71,18 +71,22 @@ const getAllDomainBalancesFromRefs = ( const getTotalTokenBalances = (allDomainBalances) => allDomainBalances.reduce((totals, balance) => { const { - token: { id: currentToken }, + token: { + id: tokenAddress, + chainMetadata: { chainId: tokenChainId }, + }, balance: currentBalance, } = balance; - if (totals[currentToken]) { + if (totals[`${tokenChainId}_${tokenAddress}`]) { return { ...totals, - [currentToken]: totals[currentToken].add(currentBalance), + [`${tokenChainId}_${tokenAddress}`]: + totals[`${tokenChainId}_${tokenAddress}`].add(currentBalance), }; } return { ...totals, - [currentToken]: BigNumber.from(currentBalance), + [`${tokenChainId}_${tokenAddress}`]: BigNumber.from(currentBalance), }; }, {}); @@ -116,7 +120,10 @@ const balancesFieldCache = { domain: null, id: `${colonyChainId}_${colonyAddress}_${COLONY_TOTAL_BALANCE_DOMAIN_ID}_${token.id}_balance`, token, - balance: totalTokenBalances[token.id]?.toString(), + balance: + totalTokenBalances[ + `${token.chainMetadata.chainId}_${token.id}` + ]?.toString(), }), ), ], diff --git a/src/components/frame/v5/pages/BalancePage/partials/BalanceTable/hooks.tsx b/src/components/frame/v5/pages/BalancePage/partials/BalanceTable/hooks.tsx index 25e63ed47c2..702802c0906 100644 --- a/src/components/frame/v5/pages/BalancePage/partials/BalanceTable/hooks.tsx +++ b/src/components/frame/v5/pages/BalancePage/partials/BalanceTable/hooks.tsx @@ -44,11 +44,14 @@ export const useBalancesData = (): BalanceTableFieldModel[] => { const tokensData = useMemo( () => colonyTokens?.items.filter(notNull).map((item) => { - const colonyTokenBalance = getBalanceForTokenAndDomain( + const colonyTokenBalance = getBalanceForTokenAndDomain({ balances, - item.token.tokenAddress, - selectedDomain ? Number(selectedDomain.nativeId) : undefined, - ); + tokenAddress: item.token.tokenAddress, + tokenChainId: item.token.chainMetadata.chainId, + domainId: selectedDomain + ? Number(selectedDomain.nativeId) + : undefined, + }); let totalBalance = colonyTokenBalance; if (!selectedDomain || selectedDomain.nativeId === Id.RootDomain) { diff --git a/src/components/frame/v5/pages/TeamsPage/hooks.tsx b/src/components/frame/v5/pages/TeamsPage/hooks.tsx index 33cc8ef0c88..8f9cd674569 100644 --- a/src/components/frame/v5/pages/TeamsPage/hooks.tsx +++ b/src/components/frame/v5/pages/TeamsPage/hooks.tsx @@ -113,21 +113,23 @@ export const useTeams = () => { isMembersListLoading: membersLoading, reputation: reputationPercentage ? Number(reputationPercentage) : 0, balanceValue: convertToDecimal( - getBalanceForTokenAndDomain( + getBalanceForTokenAndDomain({ balances, - nativeToken?.tokenAddress || '', - nativeId, - ) || 0, + tokenAddress: nativeToken?.tokenAddress || '', + tokenChainId: nativeToken?.chainMetadata.chainId, + domainId: nativeId, + }) || 0, nativeToken?.decimals || 0, )?.toNumber(), balance: ( = ({ return (
      {colonyTokens.map((colonyToken) => { - const tokenBalance = getBalanceForTokenAndDomain( - colonyBalances, - colonyToken.tokenAddress, - domainId ?? Id.RootDomain, - ); + const tokenBalance = getBalanceForTokenAndDomain({ + balances: colonyBalances, + tokenAddress: colonyToken.tokenAddress, + tokenChainId: colonyToken.chainMetadata.chainId, + domainId: domainId ?? Id.RootDomain, + }); return (
    • { amount, fromDomain, tokenAddress, + targetChainId, } = actionData; const { colony: { colonyAddress, balances }, @@ -42,11 +43,14 @@ export const useFinalizeStep = (actionData: MotionAction) => { ? getIsMotionOlderThanAWeek(actionData.createdAt, currentBlockTime * 1000) : false; - const domainBalance = getBalanceForTokenAndDomain( + const domainBalance = getBalanceForTokenAndDomain({ balances, - tokenAddress ?? '', - fromDomain?.nativeId || Id.RootDomain, - ); + tokenAddress: tokenAddress ?? '', + // eslint-disable-next-line no-warning-comments + // TODO: Check if targetChainId should be passed in here + tokenChainId: String(targetChainId) ?? DEFAULT_NETWORK_INFO.chainId, + domainId: fromDomain?.nativeId || Id.RootDomain, + }); const requiresDomainFunds: boolean = !!fromDomain && diff --git a/src/components/v5/common/ActionSidebar/partials/forms/PaymentBuilderForm/utils.ts b/src/components/v5/common/ActionSidebar/partials/forms/PaymentBuilderForm/utils.ts index b37de03501a..7638956b25f 100644 --- a/src/components/v5/common/ActionSidebar/partials/forms/PaymentBuilderForm/utils.ts +++ b/src/components/v5/common/ActionSidebar/partials/forms/PaymentBuilderForm/utils.ts @@ -2,7 +2,7 @@ import { Id } from '@colony/colony-js'; import { unformatNumeral } from 'cleave-zen'; import { type TestContext } from 'yup'; -import { DEFAULT_TOKEN_DECIMALS } from '~constants'; +import { DEFAULT_NETWORK_INFO, DEFAULT_TOKEN_DECIMALS } from '~constants'; import { type CreateExpenditurePayload } from '~redux/sagas/expenditures/createExpenditure.ts'; import { type CreateStakedExpenditurePayload } from '~redux/sagas/expenditures/createStakedExpenditure.ts'; import { DecisionMethod } from '~types/actions.ts'; @@ -72,7 +72,9 @@ export const allTokensAmountValidation = ({ } = context; const { formValues } = formContext || {}; const { from, _tokenSums } = formValues || {}; - const { tokenAddress: fieldTokenAddress } = parent || {}; + // @TODO: Implement token chain id + const { tokenAddress: fieldTokenAddress, chainId: fieldChainId } = + parent || {}; if (!fieldTokenAddress || !from || !_tokenSums) { return false; @@ -111,11 +113,13 @@ export const allTokensAmountValidation = ({ const tokenAmountSum = _tokenSums[fieldTokenAddress]; - const tokenBalance = getBalanceForTokenAndDomain( - colony.balances, - fieldTokenAddress, - from || Id.RootDomain, - ); + const tokenBalance = getBalanceForTokenAndDomain({ + balances: colony.balances, + tokenAddress: fieldTokenAddress, + // @TODO: Implement token chain id + tokenChainId: fieldChainId ?? DEFAULT_NETWORK_INFO.chainId, + domainId: from || Id.RootDomain, + }); if (!tokenAmountSum?.lte(tokenBalance)) { return context.createError({ diff --git a/src/components/v5/frame/ColonyHome/partials/FundsCards/partials/FundsCardsTotalDescription.tsx b/src/components/v5/frame/ColonyHome/partials/FundsCards/partials/FundsCardsTotalDescription.tsx index 9eb5b6fcd9c..cc0266f6d76 100644 --- a/src/components/v5/frame/ColonyHome/partials/FundsCards/partials/FundsCardsTotalDescription.tsx +++ b/src/components/v5/frame/ColonyHome/partials/FundsCards/partials/FundsCardsTotalDescription.tsx @@ -33,11 +33,12 @@ export const FundsCardsTotalDescription: React.FC< const { colony: { balances, nativeToken }, } = useColonyContext(); - const tokenBalance = getBalanceForTokenAndDomain( + const tokenBalance = getBalanceForTokenAndDomain({ balances, - nativeToken.tokenAddress, - selectedDomain ? Number(selectedDomain.nativeId) : undefined, - ); + tokenAddress: nativeToken.tokenAddress, + tokenChainId: nativeToken.chainMetadata.chainId, + domainId: selectedDomain ? Number(selectedDomain.nativeId) : undefined, + }); return (
      diff --git a/src/utils/tokens.ts b/src/utils/tokens.ts index 46187565e83..e993f8b6770 100644 --- a/src/utils/tokens.ts +++ b/src/utils/tokens.ts @@ -19,16 +19,24 @@ import { type Address } from '~types/index.ts'; import { notNull } from './arrays/index.ts'; import { convertToDecimal } from './convertToDecimal.ts'; -export const getBalanceForTokenAndDomain = ( - balances: ColonyBalances | null | undefined, - tokenAddress: Address, - domainId: number = COLONY_TOTAL_BALANCE_DOMAIN_ID, -) => { +export const getBalanceForTokenAndDomain = ({ + balances, + tokenAddress, + tokenChainId, + domainId = COLONY_TOTAL_BALANCE_DOMAIN_ID, +}: { + balances: ColonyBalances | null | undefined; + tokenAddress: Address; + tokenChainId: string; + domainId?: number; +}) => { const currentDomainBalance = balances?.items - ?.filter((domainBalance) => - domainId === COLONY_TOTAL_BALANCE_DOMAIN_ID - ? domainBalance?.domain === null - : domainBalance?.domain?.nativeId === domainId, + ?.filter( + (domainBalance) => + (domainId === COLONY_TOTAL_BALANCE_DOMAIN_ID + ? domainBalance?.domain === null + : domainBalance?.domain?.nativeId === domainId) && + domainBalance?.token?.chainMetadata?.chainId === tokenChainId, ) .find( (domainBalance) => domainBalance?.token?.tokenAddress === tokenAddress, diff --git a/src/utils/validation/hasEnoughFundsValidation.ts b/src/utils/validation/hasEnoughFundsValidation.ts index 68dd389d8b4..eb1537faaa8 100644 --- a/src/utils/validation/hasEnoughFundsValidation.ts +++ b/src/utils/validation/hasEnoughFundsValidation.ts @@ -50,11 +50,12 @@ export const hasEnoughFundsValidation = ({ return false; } - const tokenBalance = getBalanceForTokenAndDomain( - colony.balances, - selectedToken.tokenAddress, - domainId || Id.RootDomain, - ); + const tokenBalance = getBalanceForTokenAndDomain({ + balances: colony.balances, + tokenAddress: selectedToken.tokenAddress, + tokenChainId: selectedToken.chainMetadata.chainId, + domainId: domainId || Id.RootDomain, + }); const tokenDecimals = getTokenDecimalsWithFallback(selectedToken.decimals); From 2fb9cc1803e6212aaedaeff8394efb795834274b Mon Sep 17 00:00:00 2001 From: Sam Gibbs <34915414+iamsamgibbs@users.noreply.github.com> Date: Fri, 31 Jan 2025 13:03:50 +0000 Subject: [PATCH 59/66] fix: handle domainId is empty string --- .../AmountField/partials/TokenList.tsx | 2 +- src/utils/tokens.ts | 24 +++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/components/v5/common/ActionSidebar/partials/AmountField/partials/TokenList.tsx b/src/components/v5/common/ActionSidebar/partials/AmountField/partials/TokenList.tsx index 2aa6d0a13f1..804b2194b48 100644 --- a/src/components/v5/common/ActionSidebar/partials/AmountField/partials/TokenList.tsx +++ b/src/components/v5/common/ActionSidebar/partials/AmountField/partials/TokenList.tsx @@ -33,7 +33,7 @@ export const TokenList: FC = ({ return (
    • diff --git a/src/utils/tokens.ts b/src/utils/tokens.ts index e993f8b6770..93f68a76dc0 100644 --- a/src/utils/tokens.ts +++ b/src/utils/tokens.ts @@ -28,19 +28,23 @@ export const getBalanceForTokenAndDomain = ({ balances: ColonyBalances | null | undefined; tokenAddress: Address; tokenChainId: string; - domainId?: number; + domainId?: number | ''; }) => { const currentDomainBalance = balances?.items - ?.filter( - (domainBalance) => - (domainId === COLONY_TOTAL_BALANCE_DOMAIN_ID - ? domainBalance?.domain === null - : domainBalance?.domain?.nativeId === domainId) && - domainBalance?.token?.chainMetadata?.chainId === tokenChainId, + ?.filter((domainBalance) => + domainId === COLONY_TOTAL_BALANCE_DOMAIN_ID || domainId === '' + ? domainBalance?.domain === null + : domainBalance?.domain?.nativeId === domainId, ) - .find( - (domainBalance) => domainBalance?.token?.tokenAddress === tokenAddress, - ); + .find((domainBalance) => { + const isMatchingChainId = + domainBalance?.token?.chainMetadata?.chainId === tokenChainId; + + const isMatchTokenAddress = + domainBalance?.token?.tokenAddress === tokenAddress; + + return isMatchingChainId && isMatchTokenAddress; + }); return BigNumber.from(currentDomainBalance?.balance ?? 0); }; From 83430c3b3ea5a46bfebb1814c0ab59a4355bbe02 Mon Sep 17 00:00:00 2001 From: Sam Gibbs <34915414+iamsamgibbs@users.noreply.github.com> Date: Fri, 31 Jan 2025 16:13:09 +0000 Subject: [PATCH 60/66] feat: only call new contract methods in lambda if colony version supports proxy colonies --- .../src/basicColonyAbi.json | 5 -- .../src/basicUpdatedColonyAbi.json | 31 +++++++++ .../function/fetchColonyBalances/src/index.js | 52 +++++++++++---- .../fetchColonyBalances/src/queries.js | 1 + .../src/basicColonyAbi.json | 10 --- .../src/basicUpdatedColonyAbi.json | 55 ++++++++++++++++ .../fetchColonyNativeFundsClaim/src/index.js | 65 +++++++++++++++---- .../src/queries.js | 19 ++++++ 8 files changed, 199 insertions(+), 39 deletions(-) create mode 100644 amplify/backend/function/fetchColonyBalances/src/basicUpdatedColonyAbi.json create mode 100644 amplify/backend/function/fetchColonyNativeFundsClaim/src/basicUpdatedColonyAbi.json diff --git a/amplify/backend/function/fetchColonyBalances/src/basicColonyAbi.json b/amplify/backend/function/fetchColonyBalances/src/basicColonyAbi.json index 8c5b971528e..60971dd59a5 100644 --- a/amplify/backend/function/fetchColonyBalances/src/basicColonyAbi.json +++ b/amplify/backend/function/fetchColonyBalances/src/basicColonyAbi.json @@ -6,11 +6,6 @@ "name": "_potId", "type": "uint256" }, - { - "internalType": "uint256", - "name": "_chainId", - "type": "uint256" - }, { "internalType": "address", "name": "_token", diff --git a/amplify/backend/function/fetchColonyBalances/src/basicUpdatedColonyAbi.json b/amplify/backend/function/fetchColonyBalances/src/basicUpdatedColonyAbi.json new file mode 100644 index 00000000000..8c5b971528e --- /dev/null +++ b/amplify/backend/function/fetchColonyBalances/src/basicUpdatedColonyAbi.json @@ -0,0 +1,31 @@ +[ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_potId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "getFundingPotBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } +] diff --git a/amplify/backend/function/fetchColonyBalances/src/index.js b/amplify/backend/function/fetchColonyBalances/src/index.js index f8dc5ffab78..09964cab604 100644 --- a/amplify/backend/function/fetchColonyBalances/src/index.js +++ b/amplify/backend/function/fetchColonyBalances/src/index.js @@ -9,6 +9,9 @@ const { const { graphqlRequest } = require('./utils'); const { getColony, getProxyColonies } = require('./queries'); const basicColonyAbi = require('./basicColonyAbi.json'); +const basicUpdatedColonyAbi = require('./basicUpdatedColonyAbi.json'); + +const FIRST_COLONY_VERSION_WITH_PROXY_COLONIES = 18; Logger.setLogLevel(Logger.levels.ERROR); @@ -70,9 +73,14 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { const provider = new providers.StaticJsonRpcProvider(rpcURL); + const { version: colonyVersion } = colony; + + const colonyVersionSupportsProxies = + colonyVersion >= FIRST_COLONY_VERSION_WITH_PROXY_COLONIES; + const lightColonyClient = new Contract( colonyAddress, - basicColonyAbi, + colonyVersionSupportsProxies ? basicUpdatedColonyAbi : basicColonyAbi, provider, ); @@ -85,11 +93,19 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { // Native chain token. Ie: address 0x0000...0000 balances.push(async () => { - const rewardsPotTotal = await lightColonyClient.getFundingPotBalance( - nativeFundingPotId, - chainId, - AddressZero, - ); + let rewardsPotTotal; + if (colonyVersionSupportsProxies) { + rewardsPotTotal = await lightColonyClient.getFundingPotBalance( + nativeFundingPotId, + chainId, + AddressZero, + ); + } else { + rewardsPotTotal = await lightColonyClient.getFundingPotBalance( + nativeFundingPotId, + AddressZero, + ); + } /* * We're using this patters so that we could parallelize all calls at once * since this is in essence a multi dimensional array (of async data) @@ -116,11 +132,19 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { const { id: tokenAddress } = token; balances.push(async () => { - const rewardsPotTotal = await lightColonyClient.getFundingPotBalance( - nativeFundingPotId, - chainId, - tokenAddress, - ); + let rewardsPotTotal; + if (colonyVersionSupportsProxies) { + rewardsPotTotal = await lightColonyClient.getFundingPotBalance( + nativeFundingPotId, + chainId, + tokenAddress, + ); + } else { + rewardsPotTotal = await lightColonyClient.getFundingPotBalance( + nativeFundingPotId, + tokenAddress, + ); + } /* * We're using this patters so that we could parallelize all calls at once * since this is in essence a multi dimensional array (of async data) @@ -135,6 +159,12 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { }); }); + if (!colonyVersionSupportsProxies) { + return { + items: await Promise.all(balances.map(async (resolve) => resolve())), + }; + } + activeProxyColonies.map(async (proxyColony) => { const proxyChainId = proxyColony.chainId; diff --git a/amplify/backend/function/fetchColonyBalances/src/queries.js b/amplify/backend/function/fetchColonyBalances/src/queries.js index b100bf77ed6..9229cc4ba11 100644 --- a/amplify/backend/function/fetchColonyBalances/src/queries.js +++ b/amplify/backend/function/fetchColonyBalances/src/queries.js @@ -57,6 +57,7 @@ module.exports = { ${domainFragment} query GetColony($address: ID!) { getColony(id: $address) { + version chainMetadata { chainId network diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicColonyAbi.json b/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicColonyAbi.json index 4227d4d87e5..edcba9cdca8 100644 --- a/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicColonyAbi.json +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicColonyAbi.json @@ -1,11 +1,6 @@ [ { "inputs": [ - { - "internalType": "uint256", - "name": "_chainId", - "type": "uint256" - }, { "internalType": "address", "name": "_token", @@ -30,11 +25,6 @@ "name": "_potId", "type": "uint256" }, - { - "internalType": "uint256", - "name": "_chainId", - "type": "uint256" - }, { "internalType": "address", "name": "_token", diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicUpdatedColonyAbi.json b/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicUpdatedColonyAbi.json new file mode 100644 index 00000000000..4227d4d87e5 --- /dev/null +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/basicUpdatedColonyAbi.json @@ -0,0 +1,55 @@ +[ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "getNonRewardPotsTotal", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_potId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "getFundingPotBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } +] diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js b/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js index afc8dbac468..1398e1a5a53 100644 --- a/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/index.js @@ -1,7 +1,10 @@ const { constants, providers, Contract, BigNumber } = require('ethers'); const { graphqlRequest, getRpcUrlByChainId } = require('./utils'); -const { getProxyColonies } = require('./graphql'); +const { getColony, getProxyColonies } = require('./queries'); const basicColonyAbi = require('./basicColonyAbi.json'); +const basicUpdatedColonyAbi = require('./basicUpdatedColonyAbi.json'); + +const FIRST_COLONY_VERSION_WITH_PROXY_COLONIES = 18; let apiKey = 'da2-fakeApiId123456'; let graphqlURL = 'http://localhost:20002/graphql'; @@ -27,6 +30,18 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { throw new Error('Unable to set environment variables. Reason:', e); } + const response = await graphqlRequest( + getColony, + { address: colonyAddress }, + graphqlURL, + apiKey, + ); + const { getColony: colony } = response?.data || {}; + + if (!colony) { + return { items: [] }; + } + // Fetch proxy colony details const getProxyColoniesResponse = await graphqlRequest( getProxyColonies, @@ -57,9 +72,14 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { const block = await provider.getBlockNumber(); const now = new Date(); + const { version: colonyVersion } = colony; + + const colonyVersionSupportsProxies = + colonyVersion >= FIRST_COLONY_VERSION_WITH_PROXY_COLONIES; + const lightColonyClient = new Contract( colonyAddress, - basicColonyAbi, + colonyVersionSupportsProxies ? basicUpdatedColonyAbi : basicColonyAbi, provider, ); @@ -79,19 +99,38 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { * If balance is 0, then no incoming transfers have been made */ if (balanceOnMainChain.gt(0)) { - const colonyNonRewardsPotsTotal = - await lightColonyClient.getNonRewardPotsTotal( + let colonyNonRewardsPotsTotal; + if (colonyVersionSupportsProxies) { + colonyNonRewardsPotsTotal = await lightColonyClient.getNonRewardPotsTotal( chainId, constants.AddressZero, ); - const colonyRewardsPotTotal = await lightColonyClient.getFundingPotBalance( - /* - * Root domain, since all initial transfers go in there - */ - 0, - chainId, - constants.AddressZero, - ); + } else { + colonyNonRewardsPotsTotal = await lightColonyClient.getNonRewardPotsTotal( + constants.AddressZero, + ); + } + + let colonyRewardsPotTotal; + if (colonyVersionSupportsProxies) { + colonyRewardsPotTotal = await lightColonyClient.getFundingPotBalance( + /* + * Root domain, since all initial transfers go in there + */ + 0, + chainId, + constants.AddressZero, + ); + } else { + colonyRewardsPotTotal = await lightColonyClient.getFundingPotBalance( + /* + * Root domain, since all initial transfers go in there + */ + 0, + constants.AddressZero, + ); + } + const unclaimedBalance = balanceOnMainChain .sub(colonyNonRewardsPotsTotal) .sub(colonyRewardsPotTotal); @@ -105,7 +144,7 @@ exports.handler = async ({ source: { id: colonyAddress } }) => { } // Return early if no proxy colonies - if (activeProxyColonies.length < 1) { + if (!colonyVersionSupportsProxies || activeProxyColonies.length < 1) { // If the balance is 0, or unclaimed balance is 0, still return a claim with amount zero. // This is because we want to always show native chain tokens in the incoming funds table. return [colonyFundsClaim]; diff --git a/amplify/backend/function/fetchColonyNativeFundsClaim/src/queries.js b/amplify/backend/function/fetchColonyNativeFundsClaim/src/queries.js index e69de29bb2d..7ecd500eabd 100644 --- a/amplify/backend/function/fetchColonyNativeFundsClaim/src/queries.js +++ b/amplify/backend/function/fetchColonyNativeFundsClaim/src/queries.js @@ -0,0 +1,19 @@ +module.exports = { + getColony: /* GraphQL */ ` + query GetColony($address: ID!) { + getColony(id: $address) { + version + } + } + `, + getProxyColonies: /* GraphQL */ ` + query GetProxyColonies($colonyAddress: ID!) { + getProxyColoniesByColonyAddress(colonyAddress: $colonyAddress) { + items { + chainId + isActive + } + } + } + `, +}; From 50ff647927c9e887558048f77946601a8c3883aa Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Fri, 31 Jan 2025 17:28:01 +0100 Subject: [PATCH 61/66] Feat: Update fetchDomainBalance lambda to account for proxy chains Feat: Update fetchDomainBalance lambda to account for proxy chains --- .../src/api/graphql/operations.js | 20 ++ .../src/api/graphql/schemas.js | 13 ++ .../src/config/basicColonyAbi.json | 31 +++ .../src/config/networkConfig.js | 15 ++ .../function/fetchDomainBalance/src/consts.js | 77 ++++++-- .../src/services/actions.js | 9 +- .../src/services/exchangeRates.js | 20 +- .../src/services/networkBalance.js | 178 +++++++++++++----- 8 files changed, 297 insertions(+), 66 deletions(-) create mode 100644 amplify/backend/function/fetchDomainBalance/src/config/basicColonyAbi.json diff --git a/amplify/backend/function/fetchDomainBalance/src/api/graphql/operations.js b/amplify/backend/function/fetchDomainBalance/src/api/graphql/operations.js index f6eb64b25f9..cf0fd8c20a4 100644 --- a/amplify/backend/function/fetchDomainBalance/src/api/graphql/operations.js +++ b/amplify/backend/function/fetchDomainBalance/src/api/graphql/operations.js @@ -10,6 +10,7 @@ const { getColonyFundsClaims, getColonyTokens, getToken, + getProxyColonies, } = require('./schemas.js'); const EnvVarsConfig = require('../../config/envVars.js'); @@ -236,6 +237,24 @@ const getExchangeRate = async ({ tokenId, date }) => { return result.data?.tokenExhangeRateByTokenId?.items?.[0]; }; +const getProxyColoniesData = async ({ colonyAddress, limit, nextToken }) => { + const result = await graphqlRequest(getProxyColonies, { + colonyAddress, + limit, + nextToken, + }); + + if (!result) { + console.warn('Could not find any proxy colonies in db.'); + } + + return result.data.getProxyColoniesByColonyAddress; +}; + +const getAllProxyColonies = async (colonyAddress) => { + return getAllPages(getProxyColoniesData, { colonyAddress }); +}; + module.exports = { getAllIncomingFunds, getAllExpenditures, @@ -245,4 +264,5 @@ module.exports = { getExchangeRate, getTokensDecimalsFor, getAllColonyTokens, + getAllProxyColonies, }; diff --git a/amplify/backend/function/fetchDomainBalance/src/api/graphql/schemas.js b/amplify/backend/function/fetchDomainBalance/src/api/graphql/schemas.js index 35362862749..0df13935ba9 100644 --- a/amplify/backend/function/fetchDomainBalance/src/api/graphql/schemas.js +++ b/amplify/backend/function/fetchDomainBalance/src/api/graphql/schemas.js @@ -242,9 +242,22 @@ module.exports = { token { decimals id + chainMetadata { + chainId + } } } } } `, + getProxyColonies: /* GraphQL */ ` + query GetProxyColonies($colonyAddress: ID!) { + getProxyColoniesByColonyAddress(colonyAddress: $colonyAddress) { + items { + chainId + isActive + } + } + } + `, }; diff --git a/amplify/backend/function/fetchDomainBalance/src/config/basicColonyAbi.json b/amplify/backend/function/fetchDomainBalance/src/config/basicColonyAbi.json new file mode 100644 index 00000000000..40fdfb022b3 --- /dev/null +++ b/amplify/backend/function/fetchDomainBalance/src/config/basicColonyAbi.json @@ -0,0 +1,31 @@ +[ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_potId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "getFundingPotBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } +] \ No newline at end of file diff --git a/amplify/backend/function/fetchDomainBalance/src/config/networkConfig.js b/amplify/backend/function/fetchDomainBalance/src/config/networkConfig.js index 01b3c660bba..ca1a0d3af5d 100644 --- a/amplify/backend/function/fetchDomainBalance/src/config/networkConfig.js +++ b/amplify/backend/function/fetchDomainBalance/src/config/networkConfig.js @@ -7,10 +7,24 @@ const { NETWORK_DATA, } = require('../consts'); +const basicColonyAbi = require('./basicColonyAbi.json'); + const DEFAULT_NETWORK = SupportedNetwork.ArbitrumOne; const NetworkConfig = (() => { return { + getNetworkConfigByChainId: (chainId) => { + const network = Object.values(NETWORK_DATA).find( + (network) => network.chainId === chainId, + ); + + if (!network) { + console.error(`Network config not found for chain ID: ${chainId}`); + return null; + } + + return network; + }, getConfig: async () => { const { network } = await EnvVarsConfig.getEnvVars(); const resolvedNetwork = ColonyJSNetworkMapping[network] || network; @@ -24,6 +38,7 @@ const NetworkConfig = (() => { DEFAULT_NETWORK_TOKEN, DEFAULT_NETWORK_INFO, supportedNetwork: resolvedNetwork || DEFAULT_NETWORK, + basicColonyAbi, }; }, }; diff --git a/amplify/backend/function/fetchDomainBalance/src/consts.js b/amplify/backend/function/fetchDomainBalance/src/consts.js index bf5a592cd25..f340800674e 100644 --- a/amplify/backend/function/fetchDomainBalance/src/consts.js +++ b/amplify/backend/function/fetchDomainBalance/src/consts.js @@ -28,6 +28,8 @@ const SupportedNetwork = { Gnosis: 'gnosis', GnosisFork: 'gnosisFork', Ganache: 'ganache', + GanacheProxy1: 'ganache-proxy-1', + GanacheProxy2: 'ganache-proxy-2', Polygon: 'polygon', Amoy: 'amoy', ArbitrumOne: 'arbitrumOne', @@ -88,16 +90,11 @@ const POLYGON_TOKEN = { decimals: 18, }; -const TOKEN_DATA = { - [SupportedNetwork.Ganache]: ETHER_TOKEN, - [SupportedNetwork.Gnosis]: XDAI_TOKEN, - [SupportedNetwork.GnosisFork]: XDAI_TOKEN, - [SupportedNetwork.Goerli]: GOERLI_TOKEN, - [SupportedNetwork.Mainnet]: ETHER_TOKEN, - [SupportedNetwork.Polygon]: POLYGON_TOKEN, - [SupportedNetwork.Amoy]: POLYGON_TOKEN, - [SupportedNetwork.ArbitrumOne]: ETHER_TOKEN, - [SupportedNetwork.ArbitrumSepolia]: ETHER_TOKEN, +const Tokens = { + ETHER: ETHER_TOKEN, + XDAI: XDAI_TOKEN, + GOERLI: GOERLI_TOKEN, + POLYGON: POLYGON_TOKEN, }; const GNOSIS_NETWORK = { @@ -109,6 +106,7 @@ const GNOSIS_NETWORK = { blockExplorerUrl: 'https://gnosis.blockscout.com', tokenExplorerLink: 'https://gnosis.blockscout.com/tokens', contractAddressLink: 'https://gnosis.blockscout.com/address', + nativeToken: Tokens.XDAI, blockTime: 5, }; @@ -124,7 +122,7 @@ const ETHEREUM_NETWORK = { safeTxService: 'https://safe-transaction-mainnet.safe.global/api', rpcUrl: 'https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', apiUri: 'https://api.etherscan.io/api', - nativeToken: ETHER_TOKEN, + nativeToken: Tokens.ETHER, blockTime: 12, }; @@ -137,7 +135,7 @@ const GOERLI_NETWORK = { displayENSDomain: 'joincolony.eth', tokenExplorerLink: 'https://goerli.etherscan.io/tokens', contractAddressLink: 'https://goerli.etherscan.io/address', - nativeToken: GOERLI_TOKEN, + nativeToken: Tokens.GOERLI, blockTime: 5, }; @@ -150,7 +148,37 @@ const GANACHE_NETWORK = { displayENSDomain: 'joincolony.eth', tokenExplorerLink: 'http://localhost', contractAddressLink: 'http://localhost', - nativeToken: ETHER_TOKEN, + nativeToken: Tokens.ETHER, + blockTime: 5, +}; + +const GANACHE_NETWORK_1 = { + name: 'Local Proxy Chain 1', + chainId: '265669101', + shortName: 'Local Proxy Chain 1', + blockExplorerName: 'Noexplorer', + blockExplorerUrl: 'http://localhost', + displayENSDomain: 'joincolony.eth', + tokenExplorerLink: 'http://localhost', + contractAddressLink: 'http://localhost', + apiUri: 'https://api-sepolia.arbiscan.io/api', + rpcUrl: 'http://network-contracts-remote:8545', + nativeToken: Tokens.ETHER, + blockTime: 5, +}; + +const GANACHE_NETWORK_2 = { + name: 'Local Proxy Chain 2', + chainId: '265669102', + shortName: 'Local Proxy Chain 2', + blockExplorerName: 'Noexplorer', + blockExplorerUrl: 'http://localhost', + displayENSDomain: 'joincolony.eth', + tokenExplorerLink: 'http://localhost', + contractAddressLink: 'http://localhost', + apiUri: 'https://api-sepolia.arbiscan.io/api', + rpcUrl: 'http://network-contracts-remote-2:8545', + nativeToken: Tokens.ETHER, blockTime: 5, }; @@ -163,6 +191,7 @@ const POLYGON_NETWORK = { tokenExplorerLink: 'https://polygonscan.com/tokens', contractAddressLink: 'https://polygonscan.com/address', displayENSDomain: 'joincolony.matic', + nativeToken: Tokens.POLYGON, blockTime: 3, }; @@ -175,6 +204,7 @@ const AMOY_NETWORK = { tokenExplorerLink: 'https://www.oklink.com/amoy/address', contractAddressLink: 'https://www.oklink.com/amoy/address', displayENSDomain: 'joincolony.matic', + nativeToken: Tokens.POLYGON, blockTime: 3, }; @@ -187,6 +217,7 @@ const ARBITRUM_NETWORK = { tokenExplorerLink: 'https://arbiscan.io/tokens', contractAddressLink: 'https://arbiscan.io/address', displayENSDomain: 'joincolony.arbitrum', + nativeToken: Tokens.ETHER, blockTime: 4, }; @@ -199,11 +230,14 @@ const ARBITRUM_SEPOLIA_NETWORK = { tokenExplorerLink: 'https://sepolia.arbiscan.io/tokens', contractAddressLink: 'https://sepolia.arbiscan.io/address', displayENSDomain: 'joincolony.arbitrumsepolia', + nativeToken: Tokens.ETHER, blockTime: 4, }; const NETWORK_DATA = { [SupportedNetwork.Ganache]: GANACHE_NETWORK, + [SupportedNetwork.GanacheProxy1]: GANACHE_NETWORK_1, + [SupportedNetwork.GanacheProxy2]: GANACHE_NETWORK_2, [SupportedNetwork.Gnosis]: GNOSIS_NETWORK, [SupportedNetwork.GnosisFork]: GNOSIS_NETWORK, [SupportedNetwork.Goerli]: GOERLI_NETWORK, @@ -214,6 +248,20 @@ const NETWORK_DATA = { [SupportedNetwork.ArbitrumSepolia]: ARBITRUM_SEPOLIA_NETWORK, }; +const TOKEN_DATA = Object.fromEntries( + Object.entries(NETWORK_DATA).map(([network, config]) => [ + network, + config.nativeToken, + ]), +); + +const CHAIN_ID_TO_SUPPORTED_NETWORK = Object.fromEntries( + Object.entries(NETWORK_DATA).map(([network, config]) => [ + parseInt(config.chainId, 10), + network, + ]), +); + const coinGeckoMappings = { // This is a map between our internal reference to a supported currency, and the reference the api uses. // For full list: https://api.coingecko.com/api/v3/simple/supported_vs_currencies @@ -233,6 +281,8 @@ const coinGeckoMappings = { [SupportedNetwork.ArbitrumOne]: 'arbitrum-one', [SupportedNetwork.ArbitrumSepolia]: 'arbitrum-one', [SupportedNetwork.Ganache]: 'arbitrum-one', + [SupportedNetwork.GanacheProxy1]: 'arbitrum-one', + [SupportedNetwork.GanacheProxy2]: 'arbitrum-one', [SupportedNetwork.Gnosis]: 'xdai', [SupportedNetwork.GnosisFork]: 'xdai', [SupportedNetwork.Goerli]: 'ethereum', @@ -254,6 +304,7 @@ module.exports = { ColonyJSNetworkMapping, SupportedNetwork, SupportedCurrencies, + CHAIN_ID_TO_SUPPORTED_NETWORK, NETWORK_DATA, TOKEN_DATA, coinGeckoMappings, diff --git a/amplify/backend/function/fetchDomainBalance/src/services/actions.js b/amplify/backend/function/fetchDomainBalance/src/services/actions.js index d227ae7b8ac..c5b85b0f389 100644 --- a/amplify/backend/function/fetchDomainBalance/src/services/actions.js +++ b/amplify/backend/function/fetchDomainBalance/src/services/actions.js @@ -50,16 +50,19 @@ const getTokensDatesMap = (actions) => { actions.forEach((action) => { const tokenAddress = action.token?.id; + const tokenChainId = action.token?.chainMetadata?.chainId; if (!tokenAddress) { return; } - if (!tokens[tokenAddress]) { - tokens[tokenAddress] = []; + const tokenAddressChainId = `${tokenAddress}_${tokenChainId}`; + + if (!tokens[tokenAddressChainId]) { + tokens[tokenAddressChainId] = []; } - tokens[tokenAddress].push(action.finalizedDate); + tokens[tokenAddressChainId].push(action.finalizedDate); }); return tokens; }; diff --git a/amplify/backend/function/fetchDomainBalance/src/services/exchangeRates.js b/amplify/backend/function/fetchDomainBalance/src/services/exchangeRates.js index 00219bfc945..d3e0fc9d0f3 100644 --- a/amplify/backend/function/fetchDomainBalance/src/services/exchangeRates.js +++ b/amplify/backend/function/fetchDomainBalance/src/services/exchangeRates.js @@ -7,7 +7,10 @@ const { saveExchangeRate, } = require('../api/graphql/operations'); const { getStartOfDayFor } = require('../utils'); -const { SupportedCurrencies, SupportedNetwork } = require('../consts'); +const { + SupportedCurrencies, + CHAIN_ID_TO_SUPPORTED_NETWORK, +} = require('../consts'); const { constants: ethersConstants, utils: ethersUtils } = require('ethers'); @@ -185,19 +188,28 @@ const ExchangeRatesService = (() => { return { getExchangeRates: async (tokens, currency) => { - const { supportedNetwork } = await NetworkConfig.getConfig(); + const { supportedNetwork: defaultSupportedNetwork } = + await NetworkConfig.getConfig(); const tokensExchangeRate = await Promise.all( - Object.entries(tokens).map(async ([tokenAddress, dates]) => { + Object.entries(tokens).map(async ([tokenAddressChainId, dates]) => { + const [tokenAddress, chainId] = tokenAddressChainId.split('_'); let checksummedTokenAddress = tokenAddress; if (ethersUtils.isAddress(tokenAddress)) { checksummedTokenAddress = ethersUtils.getAddress(tokenAddress); } + let supportedNetworkFromChainId; + if (chainId) { + supportedNetworkFromChainId = + CHAIN_ID_TO_SUPPORTED_NETWORK[chainId]; + } + return getExchangeRatesForToken({ tokenAddress: checksummedTokenAddress, currency: currency ?? SupportedCurrencies.USD, - supportedNetwork, + supportedNetwork: + supportedNetworkFromChainId ?? defaultSupportedNetwork, dates, }); }), diff --git a/amplify/backend/function/fetchDomainBalance/src/services/networkBalance.js b/amplify/backend/function/fetchDomainBalance/src/services/networkBalance.js index 3a3724ad4bc..6c5b3c8decc 100644 --- a/amplify/backend/function/fetchDomainBalance/src/services/networkBalance.js +++ b/amplify/backend/function/fetchDomainBalance/src/services/networkBalance.js @@ -1,12 +1,16 @@ -const { getColonyNetworkClient, Network } = require('@colony/colony-js'); const { providers, constants: { AddressZero }, + Contract, } = require('ethers'); const EnvVarsConfig = require('../config/envVars'); const { getStartOfDayFor } = require('../utils'); const { DEFAULT_TOKEN_DECIMALS } = require('../consts'); -const { getDomains, getAllColonyTokens } = require('../api/graphql/operations'); +const { + getDomains, + getAllColonyTokens, + getAllProxyColonies, +} = require('../api/graphql/operations'); const ExchangeRatesService = require('./exchangeRates'); const { getTotalFiatAmountFor } = require('./tokens'); const { getTokensDatesMap } = require('./actions'); @@ -115,14 +119,35 @@ const findClosestPastBlock = async ({ }); }; -const getTokensWithDefaults = async (colonyAddress) => { +const getColonyTokens = async (colonyAddress) => { const tokensData = await getAllColonyTokens(colonyAddress); + return [...tokensData.map(({ token }) => token)]; +}; + +const getFilteredTokensWithDefaults = (tokens, chainId) => { return [ - { id: AddressZero, decimals: DEFAULT_TOKEN_DECIMALS }, - ...tokensData.map(({ token }) => token), + { + id: AddressZero, + decimals: DEFAULT_TOKEN_DECIMALS, + chainMetadata: { chainId }, + }, + ...tokens.filter((token) => token.chainMetadata?.chainId === chainId), ]; }; +const getClosestBlock = async (provider, averageBlockTime, targetDate) => { + const currentBlockNumber = await provider.getBlockNumber(); + const closestBlockNumber = await findClosestPastBlock({ + targetDate, + averageBlockTime, + currentBlockNumber, + provider, + }); + + console.log('Closest block to target date:', closestBlockNumber); + return provider.getBlock(closestBlockNumber); +}; + const fetchBalances = async ({ tokens, colonyClient, @@ -135,6 +160,7 @@ const fetchBalances = async ({ try { rewardsPotTotal = await colonyClient.getFundingPotBalance( nativeFundingPotId, + token.chainMetadata?.chainId, token.id, { blockTag: closestBlock.number }, ); @@ -164,60 +190,120 @@ const fetchBalances = async ({ ); }; +const getDomainBalances = async ({ + tokens, + domains, + domainId, + colonyClient, + closestBlock, +}) => { + if (domainId) { + const domain = domains.find((d) => d.id === domainId); + return fetchBalances({ + tokens, + colonyClient, + nativeFundingPotId: domain?.nativeFundingPotId, + closestBlock, + }); + } + + const allDomainBalances = await Promise.all( + domains.map((domain) => + fetchBalances({ + tokens, + colonyClient, + nativeFundingPotId: domain?.nativeFundingPotId, + closestBlock, + }), + ), + ); + return allDomainBalances.flat(); +}; + +const getProxyColonyBalances = async ({ + colonyAddress, + colonyTokens, + domains, + domainId, + closestBlock, + colonyClient, +}) => { + const proxyColonies = await getAllProxyColonies(colonyAddress); + const activeProxyColonies = proxyColonies.filter( + (proxyColony) => proxyColony.isActive, + ); + + const proxyBalances = await Promise.all( + activeProxyColonies.map(async (proxyColony) => { + const proxyChainId = proxyColony.chainId; + + const proxyTokens = getFilteredTokensWithDefaults( + colonyTokens, + proxyChainId, + ); + return getDomainBalances({ + tokens: proxyTokens, + domainId, + domains, + colonyClient: colonyClient, + closestBlock, + }); + }), + ); + + return proxyBalances.flat(); +}; + const getNetworkTotalBalance = async ({ colonyAddress, domainId, timeframePeriodEndDate, selectedCurrency, }) => { - const { DEFAULT_NETWORK_INFO } = await NetworkConfig.getConfig(); + const { DEFAULT_NETWORK_INFO, basicColonyAbi } = + await NetworkConfig.getConfig(); const averageBlockTime = DEFAULT_NETWORK_INFO.blockTime; - const { network, networkAddress, rpcURL } = await EnvVarsConfig.getEnvVars(); + const { rpcURL } = await EnvVarsConfig.getEnvVars(); + const provider = new providers.StaticJsonRpcProvider(rpcURL); - const networkClient = getColonyNetworkClient(network, provider, { - networkAddress, - disableVersionCheck: true, - }); + const lightColonyClient = new Contract( + colonyAddress, + basicColonyAbi, + provider, + ); - const currentBlockNumber = await provider.getBlockNumber(); - const closestBlockNumber = await findClosestPastBlock({ - targetDate: timeframePeriodEndDate, - averageBlockTime, - currentBlockNumber, + const colonyTokens = await getColonyTokens(colonyAddress); + const domains = await getDomains(colonyAddress); + + const mainChainTokens = getFilteredTokensWithDefaults( + colonyTokens, + DEFAULT_NETWORK_INFO.chainId, + ); + + const closestBlock = await getClosestBlock( provider, - }); - console.log('Closest block to target date:', closestBlockNumber); - const closestBlock = await provider.getBlock(closestBlockNumber); + averageBlockTime, + timeframePeriodEndDate, + ); - const colonyClient = await networkClient.getColonyClient(colonyAddress); - const tokens = await getTokensWithDefaults(colonyAddress); + const mainBalances = await getDomainBalances({ + domains, + domainId, + tokens: mainChainTokens, + colonyClient: lightColonyClient, + closestBlock, + }); - const domains = await getDomains(colonyAddress); - let balances = []; + const proxyBalances = await getProxyColonyBalances({ + colonyAddress, + colonyTokens, + domains, + domainId, + colonyClient: lightColonyClient, + closestBlock, + }); - // If the "All teams" filter is selected, then domain will be undefined - if (domainId) { - const domain = domains.find((d) => d.id === domainId); - balances = await fetchBalances({ - tokens, - colonyClient, - nativeFundingPotId: domain?.nativeFundingPotId, - closestBlock, - }); - } else { - const allDomainsBalances = await Promise.all( - domains.map(async (domain) => - fetchBalances({ - tokens, - colonyClient, - nativeFundingPotId: domain?.nativeFundingPotId, - closestBlock, - }), - ), - ); - - balances = allDomainsBalances.flat(); - } + const balances = [...mainBalances, ...proxyBalances]; const exchangeRates = await ExchangeRatesService.getExchangeRates( getTokensDatesMap(balances), From 4ebbd2f9a22501b967bfe52c5392413aa28e8518 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Mon, 3 Feb 2025 11:07:01 +0100 Subject: [PATCH 62/66] Feat: Add support for older colony versions Feat: Add support for older colony versions --- .../src/api/graphql/operations.js | 12 +++- .../src/api/graphql/schemas.js | 7 +++ .../src/config/basicColonyAbi.json | 7 +-- .../src/config/basicUpdatedColonyAbi.json | 31 ++++++++++ .../src/config/networkConfig.js | 2 + .../src/services/networkBalance.js | 60 ++++++++++++++----- 6 files changed, 96 insertions(+), 23 deletions(-) create mode 100644 amplify/backend/function/fetchDomainBalance/src/config/basicUpdatedColonyAbi.json diff --git a/amplify/backend/function/fetchDomainBalance/src/api/graphql/operations.js b/amplify/backend/function/fetchDomainBalance/src/api/graphql/operations.js index cf0fd8c20a4..e85753ee9fb 100644 --- a/amplify/backend/function/fetchDomainBalance/src/api/graphql/operations.js +++ b/amplify/backend/function/fetchDomainBalance/src/api/graphql/operations.js @@ -5,6 +5,7 @@ const { saveTokenExchangeRate, getColonyActions, getColonyDomains, + getColony, getDomainExpenditures, getColonyExpenditures, getColonyFundsClaims, @@ -248,13 +249,21 @@ const getProxyColoniesData = async ({ colonyAddress, limit, nextToken }) => { console.warn('Could not find any proxy colonies in db.'); } - return result.data.getProxyColoniesByColonyAddress; + return result.data?.getProxyColoniesByColonyAddress; }; const getAllProxyColonies = async (colonyAddress) => { return getAllPages(getProxyColoniesData, { colonyAddress }); }; +const getColonyVersion = async (colonyAddress) => { + const result = await graphqlRequest(getColony, { + colonyAddress, + }); + + return result.data?.getColony?.version; +}; + module.exports = { getAllIncomingFunds, getAllExpenditures, @@ -265,4 +274,5 @@ module.exports = { getTokensDecimalsFor, getAllColonyTokens, getAllProxyColonies, + getColonyVersion, }; diff --git a/amplify/backend/function/fetchDomainBalance/src/api/graphql/schemas.js b/amplify/backend/function/fetchDomainBalance/src/api/graphql/schemas.js index 0df13935ba9..e436e53e334 100644 --- a/amplify/backend/function/fetchDomainBalance/src/api/graphql/schemas.js +++ b/amplify/backend/function/fetchDomainBalance/src/api/graphql/schemas.js @@ -250,6 +250,13 @@ module.exports = { } } `, + getColony: /* GraphQL */ ` + query GetColonyVersion($colonyAddress: ID!) { + getColony(id: $colonyAddress) { + version + } + } + `, getProxyColonies: /* GraphQL */ ` query GetProxyColonies($colonyAddress: ID!) { getProxyColoniesByColonyAddress(colonyAddress: $colonyAddress) { diff --git a/amplify/backend/function/fetchDomainBalance/src/config/basicColonyAbi.json b/amplify/backend/function/fetchDomainBalance/src/config/basicColonyAbi.json index 40fdfb022b3..60971dd59a5 100644 --- a/amplify/backend/function/fetchDomainBalance/src/config/basicColonyAbi.json +++ b/amplify/backend/function/fetchDomainBalance/src/config/basicColonyAbi.json @@ -6,11 +6,6 @@ "name": "_potId", "type": "uint256" }, - { - "internalType": "uint256", - "name": "_chainId", - "type": "uint256" - }, { "internalType": "address", "name": "_token", @@ -28,4 +23,4 @@ "stateMutability": "view", "type": "function" } -] \ No newline at end of file +] diff --git a/amplify/backend/function/fetchDomainBalance/src/config/basicUpdatedColonyAbi.json b/amplify/backend/function/fetchDomainBalance/src/config/basicUpdatedColonyAbi.json new file mode 100644 index 00000000000..8c5b971528e --- /dev/null +++ b/amplify/backend/function/fetchDomainBalance/src/config/basicUpdatedColonyAbi.json @@ -0,0 +1,31 @@ +[ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_potId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "getFundingPotBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } +] diff --git a/amplify/backend/function/fetchDomainBalance/src/config/networkConfig.js b/amplify/backend/function/fetchDomainBalance/src/config/networkConfig.js index ca1a0d3af5d..870ff0cddeb 100644 --- a/amplify/backend/function/fetchDomainBalance/src/config/networkConfig.js +++ b/amplify/backend/function/fetchDomainBalance/src/config/networkConfig.js @@ -8,6 +8,7 @@ const { } = require('../consts'); const basicColonyAbi = require('./basicColonyAbi.json'); +const basicUpdatedColonyAbi = require('./basicUpdatedColonyAbi.json'); const DEFAULT_NETWORK = SupportedNetwork.ArbitrumOne; @@ -39,6 +40,7 @@ const NetworkConfig = (() => { DEFAULT_NETWORK_INFO, supportedNetwork: resolvedNetwork || DEFAULT_NETWORK, basicColonyAbi, + basicUpdatedColonyAbi, }; }, }; diff --git a/amplify/backend/function/fetchDomainBalance/src/services/networkBalance.js b/amplify/backend/function/fetchDomainBalance/src/services/networkBalance.js index 6c5b3c8decc..b9faf506347 100644 --- a/amplify/backend/function/fetchDomainBalance/src/services/networkBalance.js +++ b/amplify/backend/function/fetchDomainBalance/src/services/networkBalance.js @@ -7,6 +7,7 @@ const EnvVarsConfig = require('../config/envVars'); const { getStartOfDayFor } = require('../utils'); const { DEFAULT_TOKEN_DECIMALS } = require('../consts'); const { + getColonyVersion, getDomains, getAllColonyTokens, getAllProxyColonies, @@ -16,6 +17,11 @@ const { getTotalFiatAmountFor } = require('./tokens'); const { getTokensDatesMap } = require('./actions'); const NetworkConfig = require('../config/networkConfig'); +const FIRST_COLONY_VERSION_WITH_PROXY_COLONIES = 18; + +const hasProxyChainSupport = (version) => + version >= FIRST_COLONY_VERSION_WITH_PROXY_COLONIES; + // Helper function to fetch block timestamp in milliseconds const getBlockTimestamp = async (provider, blockNumber) => { const block = await provider.getBlock(blockNumber); @@ -153,17 +159,26 @@ const fetchBalances = async ({ colonyClient, nativeFundingPotId, closestBlock, + colonyVersionSupportsProxies, }) => { return Promise.all( tokens.map(async (token) => { let rewardsPotTotal; try { - rewardsPotTotal = await colonyClient.getFundingPotBalance( - nativeFundingPotId, - token.chainMetadata?.chainId, - token.id, - { blockTag: closestBlock.number }, - ); + if (colonyVersionSupportsProxies) { + rewardsPotTotal = await colonyClient.getFundingPotBalance( + nativeFundingPotId, + token.chainMetadata?.chainId, + token.id, + { blockTag: closestBlock.number }, + ); + } else { + rewardsPotTotal = await colonyClient.getFundingPotBalance( + nativeFundingPotId, + token.id, + { blockTag: closestBlock.number }, + ); + } return { amount: rewardsPotTotal, networkFee: 0, @@ -196,6 +211,7 @@ const getDomainBalances = async ({ domainId, colonyClient, closestBlock, + colonyVersionSupportsProxies, }) => { if (domainId) { const domain = domains.find((d) => d.id === domainId); @@ -204,6 +220,7 @@ const getDomainBalances = async ({ colonyClient, nativeFundingPotId: domain?.nativeFundingPotId, closestBlock, + colonyVersionSupportsProxies, }); } @@ -214,6 +231,7 @@ const getDomainBalances = async ({ colonyClient, nativeFundingPotId: domain?.nativeFundingPotId, closestBlock, + colonyVersionSupportsProxies, }), ), ); @@ -227,6 +245,7 @@ const getProxyColonyBalances = async ({ domainId, closestBlock, colonyClient, + colonyVersionSupportsProxies, }) => { const proxyColonies = await getAllProxyColonies(colonyAddress); const activeProxyColonies = proxyColonies.filter( @@ -247,6 +266,7 @@ const getProxyColonyBalances = async ({ domains, colonyClient: colonyClient, closestBlock, + colonyVersionSupportsProxies, }); }), ); @@ -260,15 +280,18 @@ const getNetworkTotalBalance = async ({ timeframePeriodEndDate, selectedCurrency, }) => { - const { DEFAULT_NETWORK_INFO, basicColonyAbi } = + const { DEFAULT_NETWORK_INFO, basicColonyAbi, basicUpdatedColonyAbi } = await NetworkConfig.getConfig(); const averageBlockTime = DEFAULT_NETWORK_INFO.blockTime; const { rpcURL } = await EnvVarsConfig.getEnvVars(); + const colonyVersion = await getColonyVersion(colonyAddress); + const colonyVersionSupportsProxies = hasProxyChainSupport(colonyVersion); + const provider = new providers.StaticJsonRpcProvider(rpcURL); const lightColonyClient = new Contract( colonyAddress, - basicColonyAbi, + colonyVersionSupportsProxies ? basicUpdatedColonyAbi : basicColonyAbi, provider, ); @@ -292,16 +315,21 @@ const getNetworkTotalBalance = async ({ tokens: mainChainTokens, colonyClient: lightColonyClient, closestBlock, + colonyVersionSupportsProxies, }); - const proxyBalances = await getProxyColonyBalances({ - colonyAddress, - colonyTokens, - domains, - domainId, - colonyClient: lightColonyClient, - closestBlock, - }); + let proxyBalances = []; + if (colonyVersionSupportsProxies) { + proxyBalances = await getProxyColonyBalances({ + colonyAddress, + colonyTokens, + domains, + domainId, + colonyClient: lightColonyClient, + closestBlock, + colonyVersionSupportsProxies, + }); + } const balances = [...mainBalances, ...proxyBalances]; From bef86d925dc7966d424e8c63d5c0307c7fa10b3d Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Tue, 4 Feb 2025 18:04:05 +0100 Subject: [PATCH 63/66] Chore: Update colony js package version Chore: Update colony js package version --- .../cacheDomainBalance/src/package-lock.json | 50 ++++----- .../cacheDomainBalance/src/package.json | 2 +- .../fetchColonyBalances/src/package-lock.json | 50 ++++----- .../fetchColonyBalances/src/package.json | 2 +- .../fetchDomainBalance/src/package-lock.json | 50 ++++----- .../fetchDomainBalance/src/package.json | 2 +- .../fetchMotionState/src/package-lock.json | 50 ++++----- .../fetchMotionState/src/package.json | 2 +- .../src/package-lock.json | 50 ++++----- .../src/package.json | 2 +- .../fetchVoterRewards/src/package-lock.json | 50 ++++----- .../fetchVoterRewards/src/package.json | 2 +- .../getUserReputation/src/package-lock.json | 50 ++++----- .../getUserReputation/src/package.json | 2 +- .../getUserTokenBalance/src/package-lock.json | 50 ++++----- .../getUserTokenBalance/src/package.json | 2 +- .../function/qaSSMtest/src/package-lock.json | 50 ++++----- .../function/qaSSMtest/src/package.json | 2 +- .../src/package-lock.json | 106 +++++++++--------- .../src/package.json | 2 +- package-lock.json | 50 ++++----- package.json | 2 +- 22 files changed, 313 insertions(+), 315 deletions(-) diff --git a/amplify/backend/function/cacheDomainBalance/src/package-lock.json b/amplify/backend/function/cacheDomainBalance/src/package-lock.json index 44a892724f3..9fd67790339 100644 --- a/amplify/backend/function/cacheDomainBalance/src/package-lock.json +++ b/amplify/backend/function/cacheDomainBalance/src/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "^0.0.0-snapshot-20240329154314", "cross-fetch": "^4.0.0", "date-fns": "^3.6.0" @@ -19,49 +19,49 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -95,13 +95,13 @@ } }, "node_modules/@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" diff --git a/amplify/backend/function/cacheDomainBalance/src/package.json b/amplify/backend/function/cacheDomainBalance/src/package.json index e44a5fc5644..2c48ce5c982 100644 --- a/amplify/backend/function/cacheDomainBalance/src/package.json +++ b/amplify/backend/function/cacheDomainBalance/src/package.json @@ -8,7 +8,7 @@ "@types/aws-lambda": "^8.10.92" }, "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "^0.0.0-snapshot-20240329154314", "cross-fetch": "^4.0.0", "date-fns": "^3.6.0" diff --git a/amplify/backend/function/fetchColonyBalances/src/package-lock.json b/amplify/backend/function/fetchColonyBalances/src/package-lock.json index 195df7df792..86f6b62fe23 100644 --- a/amplify/backend/function/fetchColonyBalances/src/package-lock.json +++ b/amplify/backend/function/fetchColonyBalances/src/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.7.2" @@ -19,49 +19,49 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -99,13 +99,13 @@ } }, "node_modules/@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" diff --git a/amplify/backend/function/fetchColonyBalances/src/package.json b/amplify/backend/function/fetchColonyBalances/src/package.json index 8fd656fb439..4762bf1a9f3 100644 --- a/amplify/backend/function/fetchColonyBalances/src/package.json +++ b/amplify/backend/function/fetchColonyBalances/src/package.json @@ -8,7 +8,7 @@ "@types/aws-lambda": "^8.10.92" }, "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.7.2" diff --git a/amplify/backend/function/fetchDomainBalance/src/package-lock.json b/amplify/backend/function/fetchDomainBalance/src/package-lock.json index 7bbc3efdcd6..efc594506ad 100644 --- a/amplify/backend/function/fetchDomainBalance/src/package-lock.json +++ b/amplify/backend/function/fetchDomainBalance/src/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "date-fns": "^3.6.0", @@ -20,49 +20,49 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -98,13 +98,13 @@ } }, "node_modules/@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" diff --git a/amplify/backend/function/fetchDomainBalance/src/package.json b/amplify/backend/function/fetchDomainBalance/src/package.json index 5bbed4f6bb4..7ff3cd19da3 100644 --- a/amplify/backend/function/fetchDomainBalance/src/package.json +++ b/amplify/backend/function/fetchDomainBalance/src/package.json @@ -8,7 +8,7 @@ "@types/aws-lambda": "^8.10.92" }, "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "date-fns": "^3.6.0", diff --git a/amplify/backend/function/fetchMotionState/src/package-lock.json b/amplify/backend/function/fetchMotionState/src/package-lock.json index 2da73a96bf0..cfbba1b743f 100644 --- a/amplify/backend/function/fetchMotionState/src/package-lock.json +++ b/amplify/backend/function/fetchMotionState/src/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.1.3" @@ -19,49 +19,49 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -99,13 +99,13 @@ } }, "node_modules/@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" diff --git a/amplify/backend/function/fetchMotionState/src/package.json b/amplify/backend/function/fetchMotionState/src/package.json index f40e182d936..2cb5cb45d28 100644 --- a/amplify/backend/function/fetchMotionState/src/package.json +++ b/amplify/backend/function/fetchMotionState/src/package.json @@ -8,7 +8,7 @@ "@types/aws-lambda": "^8.10.92" }, "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.1.3" diff --git a/amplify/backend/function/fetchMotionTimeoutPeriods/src/package-lock.json b/amplify/backend/function/fetchMotionTimeoutPeriods/src/package-lock.json index 733506fbedc..a3eb379d15c 100644 --- a/amplify/backend/function/fetchMotionTimeoutPeriods/src/package-lock.json +++ b/amplify/backend/function/fetchMotionTimeoutPeriods/src/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.7.2" @@ -19,49 +19,49 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -99,13 +99,13 @@ } }, "node_modules/@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" diff --git a/amplify/backend/function/fetchMotionTimeoutPeriods/src/package.json b/amplify/backend/function/fetchMotionTimeoutPeriods/src/package.json index c3898bad52b..0921ad9a1ae 100644 --- a/amplify/backend/function/fetchMotionTimeoutPeriods/src/package.json +++ b/amplify/backend/function/fetchMotionTimeoutPeriods/src/package.json @@ -8,7 +8,7 @@ "@types/aws-lambda": "^8.10.92" }, "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.7.2" diff --git a/amplify/backend/function/fetchVoterRewards/src/package-lock.json b/amplify/backend/function/fetchVoterRewards/src/package-lock.json index c3be154af37..e69871c5358 100644 --- a/amplify/backend/function/fetchVoterRewards/src/package-lock.json +++ b/amplify/backend/function/fetchVoterRewards/src/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.1.3" @@ -19,49 +19,49 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -99,13 +99,13 @@ } }, "node_modules/@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" diff --git a/amplify/backend/function/fetchVoterRewards/src/package.json b/amplify/backend/function/fetchVoterRewards/src/package.json index 2c87202ad3b..92be8c7da28 100644 --- a/amplify/backend/function/fetchVoterRewards/src/package.json +++ b/amplify/backend/function/fetchVoterRewards/src/package.json @@ -8,7 +8,7 @@ "@types/aws-lambda": "^8.10.92" }, "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.1.3" diff --git a/amplify/backend/function/getUserReputation/src/package-lock.json b/amplify/backend/function/getUserReputation/src/package-lock.json index 309608fd4d7..96fe259c817 100644 --- a/amplify/backend/function/getUserReputation/src/package-lock.json +++ b/amplify/backend/function/getUserReputation/src/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.7.2" @@ -19,49 +19,49 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -99,13 +99,13 @@ } }, "node_modules/@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" diff --git a/amplify/backend/function/getUserReputation/src/package.json b/amplify/backend/function/getUserReputation/src/package.json index 028cd73dd43..1f99c00e01a 100644 --- a/amplify/backend/function/getUserReputation/src/package.json +++ b/amplify/backend/function/getUserReputation/src/package.json @@ -8,7 +8,7 @@ "@types/aws-lambda": "^8.10.92" }, "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.7.2" diff --git a/amplify/backend/function/getUserTokenBalance/src/package-lock.json b/amplify/backend/function/getUserTokenBalance/src/package-lock.json index a48aa06e229..a2caa3f55d2 100644 --- a/amplify/backend/function/getUserTokenBalance/src/package-lock.json +++ b/amplify/backend/function/getUserTokenBalance/src/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.7.2" @@ -19,49 +19,49 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -99,13 +99,13 @@ } }, "node_modules/@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" diff --git a/amplify/backend/function/getUserTokenBalance/src/package.json b/amplify/backend/function/getUserTokenBalance/src/package.json index 10dd460a2f3..3424619985e 100644 --- a/amplify/backend/function/getUserTokenBalance/src/package.json +++ b/amplify/backend/function/getUserTokenBalance/src/package.json @@ -8,7 +8,7 @@ "@types/aws-lambda": "^8.10.92" }, "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.7.2" diff --git a/amplify/backend/function/qaSSMtest/src/package-lock.json b/amplify/backend/function/qaSSMtest/src/package-lock.json index 3ef06972b8a..bd60fa831fc 100644 --- a/amplify/backend/function/qaSSMtest/src/package-lock.json +++ b/amplify/backend/function/qaSSMtest/src/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.7.2" @@ -19,49 +19,49 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/colony-js/node_modules/@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -99,13 +99,13 @@ } }, "node_modules/@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" diff --git a/amplify/backend/function/qaSSMtest/src/package.json b/amplify/backend/function/qaSSMtest/src/package.json index 756a3eb740f..ec243142599 100644 --- a/amplify/backend/function/qaSSMtest/src/package.json +++ b/amplify/backend/function/qaSSMtest/src/package.json @@ -5,7 +5,7 @@ "main": "index.js", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "3.0.0", "cross-fetch": "^4.0.0", "ethers": "^5.7.2" diff --git a/amplify/backend/function/updateContributorsWithReputation/src/package-lock.json b/amplify/backend/function/updateContributorsWithReputation/src/package-lock.json index b897db63402..11feb22dfa8 100644 --- a/amplify/backend/function/updateContributorsWithReputation/src/package-lock.json +++ b/amplify/backend/function/updateContributorsWithReputation/src/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "Apache-2.0", "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "cross-fetch": "^4.0.0", "decimal.js": "^10.2.1", "ethers": "^5.7.2" @@ -19,62 +19,62 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, - "node_modules/@colony/colony-js/node_modules/@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", + "node_modules/@colony/core": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, - "node_modules/@colony/colony-js/node_modules/@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", + "node_modules/@colony/events": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -1655,37 +1655,35 @@ }, "dependencies": { "@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "requires": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" - }, - "dependencies": { - "@colony/core": { - "version": "3.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0-next.1.tgz", - "integrity": "sha512-40F2Ok9FFKVHpAfUK8qJ/leOqUU7u79pKOjHZFDjL6FPIl5gHokLeDuZBlyHA8MOHxHaefxDRgXUZ1fbqyWh0Q==", - "requires": {} - }, - "@colony/events": { - "version": "4.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0-next.1.tgz", - "integrity": "sha512-Mcy8YMKzyFxH5QHBTPlPMmP3lm5S8ITNr2vv2UUy9iQNT7wGMqc2kqZtwtuN5KA0nW1HwvBkgfaFmiKjR5hlIg==", - "requires": { - "@colony/core": "^3.0.0-next.1", - "fetch-retry": "^5.0.4", - "typia": "^3.8.3" - } - } + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" + } + }, + "@colony/core": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", + "requires": {} + }, + "@colony/events": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", + "requires": { + "@colony/core": "3.1.0", + "fetch-retry": "^5.0.4", + "typia": "^3.8.3" } }, "@colony/tokens": { - "version": "1.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0-next.1.tgz", - "integrity": "sha512-vP4SD4lv4o3H160uE1PgWKt1d1zCd7H9W5lAu+XzKNJvd+OVVL5OSxu7XxVpo978tqQW1EgzWLNTbtP/Vl2oJQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "requires": {} }, "@ethersproject/abi": { diff --git a/amplify/backend/function/updateContributorsWithReputation/src/package.json b/amplify/backend/function/updateContributorsWithReputation/src/package.json index 415c6643b55..a614d5c9b9a 100644 --- a/amplify/backend/function/updateContributorsWithReputation/src/package.json +++ b/amplify/backend/function/updateContributorsWithReputation/src/package.json @@ -8,7 +8,7 @@ "@types/aws-lambda": "^8.10.92" }, "dependencies": { - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "cross-fetch": "^4.0.0", "decimal.js": "^10.2.1", "ethers": "^5.7.2" diff --git a/package-lock.json b/package-lock.json index 6a3980cec10..cb358fea6b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@apollo/client": "3.7.14", "@colony/abis": "^1.6.0", - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "^4.0.0-next.1", "@colony/redux-promise-listener": "^1.2.0", "@colony/sdk": "^3.1.1", @@ -2753,31 +2753,31 @@ } }, "node_modules/@colony/colony-js": { - "version": "8.0.0-next.1", - "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.0.0-next.1.tgz", - "integrity": "sha512-up/4KT2vrpPxy1dBTIccQVCAKmoCwPvpFzQ2+NWsp69hY+WV+jHxhFpynFuOfhEOgMzqiESwicwDimQLHDXr5Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@colony/colony-js/-/colony-js-8.1.0.tgz", + "integrity": "sha512-GYMVTS4GtS4w8IAKWhjMn8k3yjAvFmwndMk6Q9lFGiUJclB+YtMPpwfXs9D+U1vVwMG2ybf9LCF0K2JVLFZqtQ==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0-next.1", - "@colony/events": "^4.0.0-next.1", - "@colony/tokens": "^1.0.0-next.1" + "@colony/core": "3.1.0", + "@colony/events": "4.1.0", + "@colony/tokens": "1.1.0" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" } }, "node_modules/@colony/core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.0.0.tgz", - "integrity": "sha512-NtjA4HtMl1uA9jrjcRpMItJVotJsFqgOngZ7Z7l/8S/kRWA1yMY17VsjkohEkRvnyAeoBgD0mdtTEZwGeqXvng==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@colony/core/-/core-3.1.0.tgz", + "integrity": "sha512-VcoXSFd6FGeL4yNAAnBS3gPmVhV4uiiJp5gKIMGAQf0Wt1iqM0k+1m/BWc+ydP58Rx7A2eOCaE8TghtJYiXsFQ==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -2800,18 +2800,18 @@ } }, "node_modules/@colony/events": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.0.0.tgz", - "integrity": "sha512-sPjL+1ayeyXC7qr++tmNBWdaxVmsNPnt4R4tL8ch/dz8Ni65f4cE95wiWSmh0Sefoa9J4gZwYeXFvvYqyMLCEA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@colony/events/-/events-4.1.0.tgz", + "integrity": "sha512-9bIQUSIo/7o817ZpQ0H86Ar3Fxwdj05vfW0Jc3sUU6bhDC7c9MT7DHTRv1uN+kEcZVtJz4KabWcIUARZrq0AOA==", "license": "GPL-3.0-only", "dependencies": { - "@colony/core": "^3.0.0", + "@colony/core": "3.1.0", "fetch-retry": "^5.0.4", "typia": "^3.8.3" }, "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" @@ -2847,13 +2847,13 @@ } }, "node_modules/@colony/tokens": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.0.0.tgz", - "integrity": "sha512-veyUSixcToWGzPgcOb907QbnnJdyCixZTkz6q9U1YAtrUwpUNp7xyajF7ef+HuNbUDMA+owa4P2PLpJBaBoiMg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@colony/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-gIEX0fMbJv3HXWucqaS+beIPJf9YGz5GY0npy3+mTdCCxNkoQM1m9LT0gjP6T8NyaDxDvju3URDtB083qPLNaA==", "license": "GPL-3.0-only", "engines": { - "node": "^16 || ^18 || ^20", - "pnpm": "^8" + "node": "^18 || ^20 || ^22", + "pnpm": "^10" }, "peerDependencies": { "ethers": "^5.1.3" diff --git a/package.json b/package.json index 3a7d24bcccb..11e436583ce 100644 --- a/package.json +++ b/package.json @@ -159,7 +159,7 @@ "dependencies": { "@apollo/client": "3.7.14", "@colony/abis": "^1.6.0", - "@colony/colony-js": "^8.0.0-next.1", + "@colony/colony-js": "^8.1.0", "@colony/events": "^4.0.0-next.1", "@colony/redux-promise-listener": "^1.2.0", "@colony/sdk": "^3.1.1", From f7144e8ab2cbd040c19b1001d3d2b6f4a63b5883 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Tue, 4 Feb 2025 18:08:00 +0100 Subject: [PATCH 64/66] Refactor: Replace colonyClaimToken with colonyClaimFunds saga Refactor: Replace colonyClaimToken with colonyClaimFunds saga --- .../context/IncomingFundsLoadingContext.ts | 8 +- .../IncomingFundsLoadingContextProvider.tsx | 21 ++--- .../frame/v5/pages/FundsPage/context/hooks.ts | 23 ++++-- .../frame/v5/pages/FundsPage/context/types.ts | 4 + .../partials/AcceptButton/AcceptButton.tsx | 9 +-- .../partials/FundsTable/FundsTable.tsx | 2 +- .../v5/common/ActionSidebar/partials/hooks.ts | 33 +++++--- .../v5/common/ActionSidebar/types.ts | 6 -- .../partials/ClaimFundsButton.tsx | 19 ++--- src/redux/actionTypes.ts | 3 - src/redux/sagas/colony/index.ts | 79 ------------------- src/redux/sagas/setupUserContext.ts | 2 - src/redux/types/actions/colony.ts | 27 +++---- .../FundsTable/utils.ts => utils/claims.ts} | 2 +- 14 files changed, 82 insertions(+), 156 deletions(-) create mode 100644 src/components/frame/v5/pages/FundsPage/context/types.ts delete mode 100644 src/redux/sagas/colony/index.ts rename src/{components/frame/v5/pages/FundsPage/partials/FundsTable/utils.ts => utils/claims.ts} (92%) diff --git a/src/components/frame/v5/pages/FundsPage/context/IncomingFundsLoadingContext.ts b/src/components/frame/v5/pages/FundsPage/context/IncomingFundsLoadingContext.ts index 6be7c4debe8..2c27c813bb6 100644 --- a/src/components/frame/v5/pages/FundsPage/context/IncomingFundsLoadingContext.ts +++ b/src/components/frame/v5/pages/FundsPage/context/IncomingFundsLoadingContext.ts @@ -2,10 +2,14 @@ import { createContext, useContext } from 'react'; import noop from '~utils/noop.ts'; +import { type PendingFundsChainTokens } from './types.ts'; + interface IncomingFundsLoadingContextValues { isAcceptLoading: boolean; enableAcceptLoading: VoidFunction; - setPendingFundsTokenAddresses: (tokenAddresses: string[]) => void; + setPendingFundsChainTokens: ( + tokenAddressesGroupedByChain: PendingFundsChainTokens, + ) => void; /** * Resets the loading state (`isAcceptLoading`) and the list of token addresses awaiting fund claims to their initial values. */ @@ -16,7 +20,7 @@ export const IncomingFundsLoadingContext = createContext({ isAcceptLoading: false, enableAcceptLoading: noop, - setPendingFundsTokenAddresses: noop, + setPendingFundsChainTokens: noop, reset: noop, }); diff --git a/src/components/frame/v5/pages/FundsPage/context/IncomingFundsLoadingContextProvider.tsx b/src/components/frame/v5/pages/FundsPage/context/IncomingFundsLoadingContextProvider.tsx index be07bf7caf9..d107715ca10 100644 --- a/src/components/frame/v5/pages/FundsPage/context/IncomingFundsLoadingContextProvider.tsx +++ b/src/components/frame/v5/pages/FundsPage/context/IncomingFundsLoadingContextProvider.tsx @@ -8,25 +8,25 @@ import React, { import { useRefetchColonyData, useFundsStateUpdater } from './hooks.ts'; import { IncomingFundsLoadingContext } from './IncomingFundsLoadingContext.ts'; +import { type PendingFundsChainTokens } from './types.ts'; export const IncomingFundsLoadingContextProvider: FC = ({ children, }) => { const [isAcceptLoading, setIsAcceptLoading] = useState(false); - const [pendingFundsTokenAddresses, setPendingFundsTokenAddresses] = useState< - string[] - >([]); + const [pendingFundsChainTokens, setPendingFundsChainTokens] = + useState([]); const enableAcceptLoading = useCallback(() => setIsAcceptLoading(true), []); const reset = useCallback(() => { - setPendingFundsTokenAddresses([]); + setPendingFundsChainTokens([]); setIsAcceptLoading(false); }, []); - useFundsStateUpdater(pendingFundsTokenAddresses, reset); + useFundsStateUpdater(pendingFundsChainTokens, reset); useRefetchColonyData( - isAcceptLoading && !!pendingFundsTokenAddresses.length, + isAcceptLoading && !!pendingFundsChainTokens.length, reset, ); @@ -34,15 +34,10 @@ export const IncomingFundsLoadingContextProvider: FC = ({ () => ({ isAcceptLoading, enableAcceptLoading, - setPendingFundsTokenAddresses, + setPendingFundsChainTokens, reset, }), - [ - isAcceptLoading, - enableAcceptLoading, - setPendingFundsTokenAddresses, - reset, - ], + [isAcceptLoading, enableAcceptLoading, setPendingFundsChainTokens, reset], ); return ( diff --git a/src/components/frame/v5/pages/FundsPage/context/hooks.ts b/src/components/frame/v5/pages/FundsPage/context/hooks.ts index 406f22b1a88..55b3d0ab2ad 100644 --- a/src/components/frame/v5/pages/FundsPage/context/hooks.ts +++ b/src/components/frame/v5/pages/FundsPage/context/hooks.ts @@ -4,6 +4,8 @@ import { useColonyContext } from '~context/ColonyContext/ColonyContext.ts'; import useColonyFundsClaims from '~hooks/useColonyFundsClaims.ts'; import usePrevious from '~hooks/usePrevious.ts'; +import { type PendingFundsChainTokens } from './types.ts'; + export const useRefetchColonyData = ( shouldRefetchColonyData: boolean, reset: () => void, @@ -40,16 +42,25 @@ export const useRefetchColonyData = ( }; export const useFundsStateUpdater = ( - pendingFundsTokenAddresses: string[], + pendingFundsTokenAddresses: PendingFundsChainTokens, reset: () => void, ) => { const fundsClaims = useColonyFundsClaims(); const unclaimedFundsClaims = fundsClaims.filter( - (claim) => - claim.amount !== '0' && - !claim.isClaimed && - claim.token?.tokenAddress && - pendingFundsTokenAddresses.includes(claim.token?.tokenAddress), + ({ amount, isClaimed, token }) => { + const { tokenAddress, chainMetadata } = token || {}; + + return ( + amount !== '0' && + !isClaimed && + tokenAddress && + pendingFundsTokenAddresses.some( + ({ chainId, tokenAddresses }) => + chainId === chainMetadata?.chainId && + tokenAddresses.includes(tokenAddress), + ) + ); + }, ); const previousUnclaimedFundsClaims = usePrevious(unclaimedFundsClaims); diff --git a/src/components/frame/v5/pages/FundsPage/context/types.ts b/src/components/frame/v5/pages/FundsPage/context/types.ts new file mode 100644 index 00000000000..1f5610e2d41 --- /dev/null +++ b/src/components/frame/v5/pages/FundsPage/context/types.ts @@ -0,0 +1,4 @@ +export type PendingFundsChainTokens = { + chainId?: string; + tokenAddresses: string[]; +}[]; diff --git a/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx b/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx index 6d61a2b7d73..f27c1bcbc3b 100644 --- a/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx +++ b/src/components/frame/v5/pages/FundsPage/partials/AcceptButton/AcceptButton.tsx @@ -22,16 +22,11 @@ const AcceptButton: FC = ({ }) => { const { colony, canInteractWithColony } = useColonyContext(); const [isClaimed, setIsClaimed] = useState(false); - const allTokenAddresses = [ - ...new Set( - tokenAddressesGroupedByChain.flatMap((group) => group.tokenAddresses), - ), - ]; const { isAcceptLoading, enableAcceptLoading, - setPendingFundsTokenAddresses, + setPendingFundsChainTokens, reset, } = useIncomingFundsLoadingContext(); @@ -47,7 +42,7 @@ const AcceptButton: FC = ({ const handleClaimSuccess = () => { setIsClaimed(true); - setPendingFundsTokenAddresses(allTokenAddresses); + setPendingFundsChainTokens(tokenAddressesGroupedByChain); }; const isBtnDisabled = diff --git a/src/components/frame/v5/pages/FundsPage/partials/FundsTable/FundsTable.tsx b/src/components/frame/v5/pages/FundsPage/partials/FundsTable/FundsTable.tsx index 40c9da67bf0..5754d5b606b 100644 --- a/src/components/frame/v5/pages/FundsPage/partials/FundsTable/FundsTable.tsx +++ b/src/components/frame/v5/pages/FundsPage/partials/FundsTable/FundsTable.tsx @@ -9,6 +9,7 @@ import React, { type FC } from 'react'; import { IncomingFundsLoadingContextProvider } from '~frame/v5/pages/FundsPage/context/IncomingFundsLoadingContextProvider.tsx'; import { useMobile } from '~hooks'; import useColonyFundsClaims from '~hooks/useColonyFundsClaims.ts'; +import { getGroupedUnclaimedClaimsByChain } from '~utils/claims.ts'; import { formatText } from '~utils/intl.ts'; import EmptyContent from '~v5/common/EmptyContent/index.ts'; import { Table } from '~v5/common/Table/Table.tsx'; @@ -19,7 +20,6 @@ import Filter from '../Filter/index.ts'; import { useFundsTable, useFundsTableColumns } from './hooks.tsx'; import { type FundsTableModel } from './types.ts'; -import { getGroupedUnclaimedClaimsByChain } from './utils.ts'; const displayName = 'pages.FundsPage.partials.FundsTable'; diff --git a/src/components/v5/common/ActionSidebar/partials/hooks.ts b/src/components/v5/common/ActionSidebar/partials/hooks.ts index 4a340901897..bf0864ebd03 100644 --- a/src/components/v5/common/ActionSidebar/partials/hooks.ts +++ b/src/components/v5/common/ActionSidebar/partials/hooks.ts @@ -8,6 +8,8 @@ import useAsyncFunction from '~hooks/useAsyncFunction.ts'; import useColonyContractVersion from '~hooks/useColonyContractVersion.ts'; import useExtensionData from '~hooks/useExtensionData.ts'; import { ActionTypes } from '~redux/actionTypes.ts'; +import { type ClaimTokensOnChainsPayload } from '~redux/types/actions/colony.ts'; +import { notNull } from '~utils/arrays/index.ts'; import { canColonyBeUpgraded } from '~utils/checks/index.ts'; import { isInstalledExtensionData } from '~utils/extensions.ts'; import { formatText } from '~utils/intl.ts'; @@ -18,10 +20,7 @@ import { } from '../consts.ts'; import { useActiveActionType } from '../hooks/useActiveActionType.ts'; import { useCheckOperationType } from '../hooks/useCheckOperationType.ts'; -import { - type ClaimMintTokensActionParams, - type FinalizeSuccessCallback, -} from '../types.ts'; +import { type FinalizeSuccessCallback } from '../types.ts'; const SUBMIT_BUTTON_TEXT_MAP: Partial> = { [Action.PaymentBuilder]: 'button.createPayment', @@ -141,10 +140,17 @@ export const useIsFieldDisabled = () => { }; export const useFinalizeSuccessCallback = (): FinalizeSuccessCallback => { - const claimMintTokens = useAsyncFunction({ - submit: ActionTypes.CLAIM_TOKEN, - error: ActionTypes.CLAIM_TOKEN_ERROR, - success: ActionTypes.CLAIM_TOKEN_SUCCESS, + const { colony } = useColonyContext(); + const colonyTokens = useMemo( + () => + colony.tokens?.items.filter(notNull).map((token) => token.token) || [], + [colony.tokens?.items], + ); + + const claimMintTokens = useAsyncFunction({ + submit: ActionTypes.CLAIM_TOKENS_ON_CHAINS, + error: ActionTypes.CLAIM_TOKENS_ON_CHAINS_ERROR, + success: ActionTypes.CLAIM_TOKENS_ON_CHAINS_SUCCESS, }); // We want to trigger this callback only when the Finalize button is pressed @@ -153,9 +159,18 @@ export const useFinalizeSuccessCallback = (): FinalizeSuccessCallback => { case ColonyActionType.MintTokensMotion: case ColonyActionType.MintTokensMultisig: { if (action.tokenAddress) { + const token = colonyTokens.find( + (colonyToken) => colonyToken.tokenAddress === action.tokenAddress, + ); + const tokenAddressesGroupedByChain = [ + { + chainId: token?.chainMetadata?.chainId, + tokenAddresses: [action.tokenAddress], + }, + ]; claimMintTokens({ - tokenAddresses: [action.tokenAddress], colonyAddress: action.colonyAddress, + tokenAddressesGroupedByChain, }).catch(() => { console.error(`An error occured while claiming tokens`); }); diff --git a/src/components/v5/common/ActionSidebar/types.ts b/src/components/v5/common/ActionSidebar/types.ts index 24c54416116..73f0481b3ab 100644 --- a/src/components/v5/common/ActionSidebar/types.ts +++ b/src/components/v5/common/ActionSidebar/types.ts @@ -1,7 +1,6 @@ import { type UseFormReturn } from 'react-hook-form'; import { type ActionFormProps } from '~shared/Fields/Form/ActionForm.tsx'; -import { type Address } from '~types'; import { type ColonyAction } from '~types/graphql.ts'; export interface ActionButtonsProps @@ -45,11 +44,6 @@ export interface ActionSidebarProps { className?: string; } -export type ClaimMintTokensActionParams = { - colonyAddress: Address; - tokenAddresses: Address[]; -}; - export type FinalizeSuccessCallback = { onFinalizeSuccessCallback: (action: ColonyAction) => void; }; diff --git a/src/components/v5/frame/ColonyHome/partials/TotalInOutBalance/partials/ClaimFundsButton.tsx b/src/components/v5/frame/ColonyHome/partials/TotalInOutBalance/partials/ClaimFundsButton.tsx index 520849ce048..5b72b34b17e 100644 --- a/src/components/v5/frame/ColonyHome/partials/TotalInOutBalance/partials/ClaimFundsButton.tsx +++ b/src/components/v5/frame/ColonyHome/partials/TotalInOutBalance/partials/ClaimFundsButton.tsx @@ -8,6 +8,7 @@ import useColonyFundsClaims from '~hooks/useColonyFundsClaims.ts'; import { useTimeout } from '~hooks/useTimeout.ts'; import { ActionTypes } from '~redux/actionTypes.ts'; import Tooltip from '~shared/Extensions/Tooltip/Tooltip.tsx'; +import { getGroupedUnclaimedClaimsByChain } from '~utils/claims.ts'; import { formatText } from '~utils/intl.ts'; import Button from '~v5/shared/Button/Button.tsx'; @@ -26,9 +27,9 @@ export const ClaimFundsButton = () => { (claim) => !claim.isClaimed && claim.amount !== '0', ); const hasUnclaimedClaims = !!unclaimedClaims.length; - const allClaimableTokenAddresses = Array.from( - new Set(unclaimedClaims.map((claim) => claim.token?.tokenAddress || '')), - ); + + const tokenAddressesGroupedByChain = + getGroupedUnclaimedClaimsByChain(unclaimedClaims); const [isClaimed, setIsClaimed] = useState(false); const [isClaiming, setIsClaiming] = useState(false); @@ -61,10 +62,10 @@ export const ClaimFundsButton = () => { }, }); - const claimToken = useAsyncFunction({ - submit: ActionTypes.CLAIM_TOKEN, - error: ActionTypes.CLAIM_TOKEN_ERROR, - success: ActionTypes.CLAIM_TOKEN_SUCCESS, + const claimTokensOnChains = useAsyncFunction({ + submit: ActionTypes.CLAIM_TOKENS_ON_CHAINS, + error: ActionTypes.CLAIM_TOKENS_ON_CHAINS_ERROR, + success: ActionTypes.CLAIM_TOKENS_ON_CHAINS_SUCCESS, }); if (!isVisible) { @@ -74,9 +75,9 @@ export const ClaimFundsButton = () => { const handleClick = async () => { setIsClaiming(true); try { - await claimToken({ + await claimTokensOnChains({ colonyAddress: colony?.colonyAddress, - tokenAddresses: allClaimableTokenAddresses, + tokenAddressesGroupedByChain, }); setIsClaimed(true); startPollingColonyData(1_000); diff --git a/src/redux/actionTypes.ts b/src/redux/actionTypes.ts index 3ec62b41858..6a9032ec4ba 100644 --- a/src/redux/actionTypes.ts +++ b/src/redux/actionTypes.ts @@ -2,9 +2,6 @@ export enum ActionTypes { /* * Colony Related (create, recovery, etc) */ - CLAIM_TOKEN = 'CLAIM_TOKEN', - CLAIM_TOKEN_ERROR = 'CLAIM_TOKEN_ERROR', - CLAIM_TOKEN_SUCCESS = 'CLAIM_TOKEN_SUCCESS', CREATE = 'CREATE', CREATE_CANCEL = 'CREATE_CANCEL', CREATE_ERROR = 'CREATE_ERROR', diff --git a/src/redux/sagas/colony/index.ts b/src/redux/sagas/colony/index.ts deleted file mode 100644 index f0ff300ec05..00000000000 --- a/src/redux/sagas/colony/index.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { ClientType } from '@colony/colony-js'; -import { all, call, fork, put, takeEvery } from 'redux-saga/effects'; - -import { ActionTypes } from '~redux/actionTypes.ts'; -import { type AllActions, type Action } from '~redux/types/actions/index.ts'; -import { TRANSACTION_METHODS } from '~types/transactions.ts'; - -import { - type TransactionChannelMap, - createTransaction, - createTransactionChannels, - waitForTxResult, -} from '../transactions/index.ts'; -import { initiateTransaction, putError, takeFrom } from '../utils/index.ts'; - -export { default as colonyCreateSaga } from './colonyCreate.ts'; -export { default as colonyFinishCreate } from './colonyFinishCreate.ts'; - -// @TODO this might need to be removed in favour of colonyClaimFunds saga, though it implies some refactoring -function* colonyClaimToken({ - payload: { colonyAddress, tokenAddresses }, - meta, -}: Action) { - let txChannels: TransactionChannelMap = {}; - - const batchKey = TRANSACTION_METHODS.ClaimColonyFunds; - - const uniqueTokenAddresses = [...new Set(tokenAddresses)]; - try { - txChannels = yield call( - createTransactionChannels, - meta.id, - uniqueTokenAddresses, - ); - - yield all( - uniqueTokenAddresses.map((tokenAddress, index) => - fork(createTransaction, txChannels[tokenAddress].id, { - context: ClientType.ColonyClient, - methodName: 'claimColonyFunds', - identifier: colonyAddress, - params: [tokenAddress], - group: { - key: batchKey, - id: meta.id, - index, - }, - }), - ), - ); - - for (const tokenAddress of uniqueTokenAddresses) { - const { channel: txChannel, id } = txChannels[tokenAddress]; - - yield takeFrom(txChannel, ActionTypes.TRANSACTION_CREATED); - - yield initiateTransaction(id); - - yield waitForTxResult(txChannel); - } - - yield put({ - type: ActionTypes.CLAIM_TOKEN_SUCCESS, - payload: { params: { tokenAddresses: uniqueTokenAddresses } }, - meta, - }); - } catch (error) { - return yield putError(ActionTypes.CLAIM_TOKEN_ERROR, error, meta); - } finally { - for (const { channel: txChannel } of Object.values(txChannels)) { - txChannel.close(); - } - } - return null; -} - -export default function* colonySagas() { - yield takeEvery(ActionTypes.CLAIM_TOKEN, colonyClaimToken); -} diff --git a/src/redux/sagas/setupUserContext.ts b/src/redux/sagas/setupUserContext.ts index 42b9df00823..6222f430a8b 100644 --- a/src/redux/sagas/setupUserContext.ts +++ b/src/redux/sagas/setupUserContext.ts @@ -16,7 +16,6 @@ import actionsSagas from './actions/index.ts'; import colonyClaimFundsSagas from './colony/colonyClaimFunds.ts'; import colonyCreateSaga from './colony/colonyCreate.ts'; import colonyFinishCreateSaga from './colony/colonyFinishCreate.ts'; -import colonySagas from './colony/index.ts'; import decisionsSagas from './decisions/index.ts'; import expendituresSagas from './expenditures/index.ts'; import extensionSagas from './extensions/index.ts'; @@ -54,7 +53,6 @@ function* setupContextDependentSagas() { yield all([ call(decisionsSagas), call(actionsSagas), - call(colonySagas), call(colonyClaimFundsSagas), call(colonyCreateSaga), call(colonyFinishCreateSaga), diff --git a/src/redux/types/actions/colony.ts b/src/redux/types/actions/colony.ts index fd831e99ac3..8d28d9b5f57 100644 --- a/src/redux/types/actions/colony.ts +++ b/src/redux/types/actions/colony.ts @@ -17,27 +17,18 @@ import { type ActionTypeWithMeta, } from './index.ts'; +export type ClaimTokensOnChainsPayload = { + colonyAddress: Address; + tokenAddressesGroupedByChain: { + chainId?: string; + tokenAddresses: `0x${string}`[]; + }[]; +}; + export type ColonyActionTypes = - | UniqueActionType< - ActionTypes.CLAIM_TOKEN, - { tokenAddresses: Address[]; colonyAddress: Address }, - object - > - | ErrorActionType - | UniqueActionType< - ActionTypes.CLAIM_TOKEN_SUCCESS, - { params: { tokenAddresses: Address[] } }, - object - > | UniqueActionType< ActionTypes.CLAIM_TOKENS_ON_CHAINS, - { - tokenAddressesGroupedByChain: { - chainId?: string; - tokenAddresses: `0x${string}`[]; - }[]; - colonyAddress: Address; - }, + ClaimTokensOnChainsPayload, object > | ErrorActionType diff --git a/src/components/frame/v5/pages/FundsPage/partials/FundsTable/utils.ts b/src/utils/claims.ts similarity index 92% rename from src/components/frame/v5/pages/FundsPage/partials/FundsTable/utils.ts rename to src/utils/claims.ts index d7503e508b3..61df667fe1f 100644 --- a/src/components/frame/v5/pages/FundsPage/partials/FundsTable/utils.ts +++ b/src/utils/claims.ts @@ -7,7 +7,7 @@ export const getGroupedUnclaimedClaimsByChain = ( (acc, claim) => { if (!claim || !claim.token) return acc; - const { chainId } = claim.token.chainMetadata; + const { chainId } = claim.token?.chainMetadata ?? {}; const { tokenAddress } = claim.token; // Ensure the chainId group exists From 822e0f5821ff05e453cdd4a16a53c371f18c7621 Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Tue, 4 Feb 2025 18:19:41 +0100 Subject: [PATCH 65/66] Refactor: Change order for token address and chain id Refactor: Change order for token address and chain id --- .../backend/function/fetchDomainBalance/src/services/actions.js | 2 +- .../function/fetchDomainBalance/src/services/exchangeRates.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/amplify/backend/function/fetchDomainBalance/src/services/actions.js b/amplify/backend/function/fetchDomainBalance/src/services/actions.js index c5b85b0f389..b38878bff79 100644 --- a/amplify/backend/function/fetchDomainBalance/src/services/actions.js +++ b/amplify/backend/function/fetchDomainBalance/src/services/actions.js @@ -56,7 +56,7 @@ const getTokensDatesMap = (actions) => { return; } - const tokenAddressChainId = `${tokenAddress}_${tokenChainId}`; + const tokenAddressChainId = `${tokenChainId}_${tokenAddress}`; if (!tokens[tokenAddressChainId]) { tokens[tokenAddressChainId] = []; diff --git a/amplify/backend/function/fetchDomainBalance/src/services/exchangeRates.js b/amplify/backend/function/fetchDomainBalance/src/services/exchangeRates.js index d3e0fc9d0f3..9ebb566ced3 100644 --- a/amplify/backend/function/fetchDomainBalance/src/services/exchangeRates.js +++ b/amplify/backend/function/fetchDomainBalance/src/services/exchangeRates.js @@ -192,7 +192,7 @@ const ExchangeRatesService = (() => { await NetworkConfig.getConfig(); const tokensExchangeRate = await Promise.all( Object.entries(tokens).map(async ([tokenAddressChainId, dates]) => { - const [tokenAddress, chainId] = tokenAddressChainId.split('_'); + const [chainId, tokenAddress] = tokenAddressChainId.split('_'); let checksummedTokenAddress = tokenAddress; if (ethersUtils.isAddress(tokenAddress)) { From fb9500bb0eec10677d197b5a590e60c9b298e04a Mon Sep 17 00:00:00 2001 From: Mihaela-Ioana Mot <32430018+mmioana@users.noreply.github.com> Date: Wed, 5 Feb 2025 13:42:17 +0100 Subject: [PATCH 66/66] Chore: Update block ingestor hash Chore: Update block ingestor hash --- docker/colony-cdapp-dev-env-block-ingestor | 2 +- docker/colony-cdapp-dev-env-proxy-block-ingestor | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/colony-cdapp-dev-env-block-ingestor b/docker/colony-cdapp-dev-env-block-ingestor index 99bb915455f..d8dd24b96c6 100644 --- a/docker/colony-cdapp-dev-env-block-ingestor +++ b/docker/colony-cdapp-dev-env-block-ingestor @@ -1,6 +1,6 @@ FROM colony-cdapp-dev-env/base:latest -ENV BLOCK_INGESTOR_HASH=61747477aa9fc21fbe0c873311655c72e4bf54ea +ENV BLOCK_INGESTOR_HASH=74320716b5248fad31b1ad90ed79acf3f3d23789 # Declare volumes to set up metadata VOLUME [ "/colonyCDapp/amplify/mock-data" ] diff --git a/docker/colony-cdapp-dev-env-proxy-block-ingestor b/docker/colony-cdapp-dev-env-proxy-block-ingestor index 37c213eb675..c8a2e224de4 100644 --- a/docker/colony-cdapp-dev-env-proxy-block-ingestor +++ b/docker/colony-cdapp-dev-env-proxy-block-ingestor @@ -1,7 +1,7 @@ FROM colony-cdapp-dev-env/base:latest # @TODO maybe add a PROXY_BLOCK_INGESTOR_HASH and fallback to BLOCK_INGESTOR_HASH -ENV BLOCK_INGESTOR_HASH=61747477aa9fc21fbe0c873311655c72e4bf54ea +ENV BLOCK_INGESTOR_HASH=74320716b5248fad31b1ad90ed79acf3f3d23789 ENV CHAIN_RPC_ENDPOINTS='["http://network-contracts-remote:8545", "http://network-contracts-remote-2:8545"]' ENV STATS_PORTS='["10002", "10003"]'