From 56c4634a72765a204ab184c3d792ffc12ba5d442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Hatland?= Date: Thu, 25 Jan 2024 16:22:09 +0100 Subject: [PATCH 1/8] Fagsystem demo is not a part of the working solution as of now --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 40a561f..8c65e7d 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,11 @@ With 380,000 corporations maintaining their shareholder books, BRØK aims to cre ## Architecture -BRØK's architecture includes three key components: +BRØK's architecture includes four key components: - **Blockchain**: Rules defined by [smart contracts](https://no.wikipedia.org/wiki/Smart_kontrakt) and secure references to ownership. See `packages/captable` - **TheGraph**: Enables efficient data queries from the blockchain. See `packages/graph` - **API**: Allows secure data access and updates through standard web technology. See `packages/api` - **BR Name Service**: Provides a [service for looking up BRØK addresses](https://github.com/brreg/brok-navnetjener). -- **Fagsystem DEMO**: Integrates with BRØK, enabling the publishing of ownership details. Without a front-end like this, BRØK is not useful. [Here's an example of a front-end for a fagsystem.](https://github.com/brreg/brok-fagsystem-demo) # Quick setup From 50f87dd13aca9de183b0566f0d589d264c75bb18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Hatland?= Date: Thu, 25 Jan 2024 16:34:14 +0100 Subject: [PATCH 2/8] tmp --- packages/api/README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 packages/api/README.md diff --git a/packages/api/README.md b/packages/api/README.md new file mode 100644 index 0000000..e234200 --- /dev/null +++ b/packages/api/README.md @@ -0,0 +1,26 @@ +# Brøk API + +## Description +Creates a simplified interface for enterprice systems, so they can use BRØK without the need for any knowledge or system implementation of web3 techologies. + +This is a Next.js application + +obs, env files + +remember to generate the brøk node package from `packages/captable/` before running this application + + +## Application endpoints overview + +``/api/health`` this does this + +``/api/checkTransaction`` this does a thing + +``/api/v1/company/`` this does some other thing + +``/api/v1/person/`` some third thing happening here + + + +## Odd stuff +Some of the test requires the Hardhat network node, and / or Navnetjener to be running. \ No newline at end of file From 3c9c29d9ad6fb4bebee5629dbe7313f038dfc3f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Hatland?= Date: Fri, 26 Jan 2024 08:12:30 +0100 Subject: [PATCH 3/8] describe the most important parts of api development --- packages/api/README.md | 55 +++++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/packages/api/README.md b/packages/api/README.md index e234200..0ee066d 100644 --- a/packages/api/README.md +++ b/packages/api/README.md @@ -1,26 +1,57 @@ # Brøk API +Creates a simplified interface for enterprise systems, so they can use BRØK without the need for any knowledge or system implementation of web3 technologies. -## Description -Creates a simplified interface for enterprice systems, so they can use BRØK without the need for any knowledge or system implementation of web3 techologies. +Built with Next.js framework. -This is a Next.js application +Remember to complete the steps described [here](./../../README.md#development) before running this application the first time. -obs, env files - -remember to generate the brøk node package from `packages/captable/` before running this application +The chapter on .env describes how this application is configured to connect to other application. ## Application endpoints overview -``/api/health`` this does this +``/api/health`` Checks the status for the external connection, and ethereum balance + +``/api/checkTransaction`` Checks the status of a transaction + +``/api/v1/company/`` Control the CapTable for a company + +``/api/v1/person/`` Get the ownership information for a person or company owning shares + +For more explanation, check out the [swagger file](./../../docs/swagger.yaml) + + +## External applications + +This application depends on the following to work properly: +- an Ethereum network, ether Hardhat network running locally, or Arbitrum Goerli/Sepolia/One +- The Graph subgraph for CapTableRegistry +- Navnetjener API + +To start Hardhat network and The Graph services locally, run the vs code task `deploy-local` + +To start Navnetjener, follow [these instructions](https://github.com/brreg/brok-navnetjener#development-setup) + -``/api/checkTransaction`` this does a thing +## .env +The .env files uses the following values: -``/api/v1/company/`` this does some other thing +| **Value** | **Description** | +|--|--| +| `PRIVATE_KEY` | The Private key for the wallet used by Brøk API, intended to be provided by Brønnøysundregistrene in the future | +| `RPC_LOCAL` | Network address to the Hardhat network | +| `RPC_SEPOLIA` | Network address to the Arbitrum Sepolia network | +| `RPC_GOERLI` | Network address to the Arbitrum Goerli network | +| `RPC_ONE` | Network address to the Arbitrum One network | +| `PORT` | Port for the API | +| `NAVNETJENER_URL` | URL to Navnetjener API | +| `BROK_ENV` | Selects Ethereum network, valid arguments: `localhost`, `brokStage` or `brokProd` | +| `DEBUG` | Select what part of the application you want to debug, default to `brok*` for the whole application | +| `THE_GRAPH_URL` | URL to The Graph subgraph | -``/api/v1/person/`` some third thing happening here +# Development +Start dev server: `pnpm run dev` -## Odd stuff -Some of the test requires the Hardhat network node, and / or Navnetjener to be running. \ No newline at end of file +Run all tests: `pnpm run test` \ No newline at end of file From 3cf65390b625ea1c1a7b28fbfbabbbc9fb47ff86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Hatland?= Date: Fri, 26 Jan 2024 20:11:47 +0100 Subject: [PATCH 4/8] remove subgraph.yaml this is a generated file from packages/graph/scripts/prepare.js, whom is using the values from the brok npm package --- .gitignore | 1 + packages/graph/subgraph.yaml | 60 ------------------------------------ 2 files changed, 1 insertion(+), 60 deletions(-) delete mode 100644 packages/graph/subgraph.yaml diff --git a/.gitignore b/.gitignore index 2ee930a..cb71980 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ __pycache__ artifacts lib typechain +subgraph.yaml # dependencies node_modules diff --git a/packages/graph/subgraph.yaml b/packages/graph/subgraph.yaml deleted file mode 100644 index 4e61a4a..0000000 --- a/packages/graph/subgraph.yaml +++ /dev/null @@ -1,60 +0,0 @@ -specVersion: 0.0.4 -description: Captable for The Norwegian Business Registry. -repository: https://github.com/BROKLab/captable-graph -schema: - file: ./schema.graphql -dataSources: - - kind: ethereum/contract - name: CapTableRegistry - network: arbitrum-one - source: - address: '0x97c14180eAb33ce174a4171f57ac3b558D6Abb71' - abi: CapTableRegistry - startBlock: 142000000 - mapping: - kind: ethereum/events - apiVersion: 0.0.6 - language: wasm/assemblyscript - file: ./src/capTableRegistry.ts - entities: - - CapTableRegistry - abis: - - name: CapTableRegistry - file: ./abis/CapTableRegistry.json - - name: CapTable - file: ./abis/CapTable.json - eventHandlers: - - event: CapTableAdded(indexed address,indexed string) - handler: handleCapTableAdded - - event: CapTableRemoved(indexed address,indexed string) - handler: handleCapTableRemoved -templates: - - name: CapTable - kind: ethereum/contract - network: arbitrum-one - source: - abi: CapTable - mapping: - kind: ethereum/events - apiVersion: 0.0.6 - language: wasm/assemblyscript - file: ./src/captable.ts - entities: - - CapTable - - TokenBalance - abis: - - name: CapTable - file: ./abis/CapTable.json - eventHandlers: - - event: >- - TransferByPartition(indexed bytes32,address,indexed address,indexed - address,uint256,bytes,bytes) - handler: handleTransferByPartition - - event: >- - IssuedByPartition(indexed bytes32,indexed address,indexed - address,uint256,bytes,bytes) - handler: handleIssuedByPartition - - event: >- - RedeemedByPartition(indexed bytes32,indexed address,indexed - address,uint256,bytes) - handler: handleRedeemByPartition From e619dd01ccc24b0200b036d70a157b5eb46a6f49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Hatland?= Date: Mon, 29 Jan 2024 08:26:55 +0100 Subject: [PATCH 5/8] Describe development of smartcontracts --- docker-compose.yaml | 2 +- packages/captable/.env.example | 4 +-- packages/captable/README.md | 49 +++++++++++++++++++++++++++++++++- 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index d9a50dd..34ed6ca 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -75,7 +75,7 @@ services: depends_on: - hardhat environment: - CONTAINER_HARDHAT: http://hardhat:8545 + RPC_CONTAINER: http://hardhat:8545 command: ["sh", "-c", "sleep 15 && pnpm -F @brok/captable hardhat-deploy-contracts-container && pnpm -F @brok/captable hardhat-add-demo-data-container"] postgres: image: postgres diff --git a/packages/captable/.env.example b/packages/captable/.env.example index 11aed5c..6b267b4 100644 --- a/packages/captable/.env.example +++ b/packages/captable/.env.example @@ -6,7 +6,7 @@ SEED_PROD=test test test test test test test test test test test junk RPC_CONTAINER=http://host.docker.internal:8545 RPC_LOCAL=http://127.0.0.1:8545 RPC_TESTNET=http://127.0.0.1:8545 +RPC_STAGENET=http://127.0.0.1:8545 RPC_MAINNET=http://127.0.0.1:8545 REPORT_GAS=false -CAP_TABLE_REGISTRY_brokDev=0x8EF52e971B7Aa8f263A7C25b0F4e200709287A30 -DEV_ENTERPRISE_SYSTEM_ADDRESS=0x0a665B1Bc813cAE9fcDd2Eb7E25b8E55A5F35f23 \ No newline at end of file +DEV_ENTERPRISE_SYSTEM_ADDRESS=0x4cCE8E0e2Ba902FE7D2D1fD894d85883E7cd720d \ No newline at end of file diff --git a/packages/captable/README.md b/packages/captable/README.md index 8b541f9..48b924c 100644 --- a/packages/captable/README.md +++ b/packages/captable/README.md @@ -1,4 +1,51 @@ # Smart contracts for CapTable BRØK -NB! brokProd is still against Arbitrum Goerli +Smart contracts for CapTable and CapTableRegistry developed in [Solidity v0.8.0](https://docs.soliditylang.org/en/v0.8.0/) + +Based on [ERC1400](https://www.shipfinex.com/blog/erc-1400-a-standardized-framework-for-security-tokens), but intended to migrate to [ERC3643](https://www.erc3643.org/) in the future. + +The contracts are built and tested with [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started#overview) + +Based on the generated contracts, [tsup](https://www.npmjs.com/package/tsup) is used to generate a TypeScript library, to be used by Brøk API and The Graph configuration. + +***NB! brokProd is still against Arbitrum Goerli*** + +## Project overview + +| **Folder** | **Description** | +|--|--| +| `artifacts/` | Compiled artifacts generated by Hardhat compile (generated) | +| `cache/` | The directory used by Hardhat to cache its internal stuff (generated) | +| `contracts/` | CapTable and CapTableRegistry contracts in Solidity, with dependencies | +| `deployments/` | Our way to persist smart contract addresses deployed on Arbitrum, generated by [./tasks/generate-deployments.ts](./tasks/generate-deployments.ts) | +| `dist/` | Generated TypeScript library of CapTable and CapTableRegistry (generated) | +| `scripts/` | I dont know what this does | +| `tasks/` | Hardhat tasks to be run with ``hardhat --network --log`` +| `test/` | Tests for CapTable and CapTableRegistry | +| `typechain-types` | Generated TypeScript bindings for smart contracts (generated) | + + +### .env +| **Value** | **Description** | +|--|--| +| `ETHERSCAN_API_KEY` | API key to Etherscan, used by/in ??? @jon | +| `SEED_DEV` | Mnemonic key for Brønnøysundregistrenes wallet used to deploy contracts in the dev environment | +| `SEED_STAGE` | Mnemonic key for Brønnøysundregistrenes wallet used to deploy contracts in the stage environment | +| `SEED_PROD` | Mnemonic key for Brønnøysundregistrenes wallet used to deploy contracts in the production environment **NB: contains real money** | +| `RPC_CONTAINER` | Network address to Hardhat network running with `docker-compose` | +| `RPC_LOCAL` | Network address to Hardhat network running local | +| `RPC_TESTNET` | Network address to the Arbitrum Goerli network | +| `RPC_STAGENET` | Network address to the Arbitrum One network | +| `RPC_MAINNET` | Network address to the Arbitrum One network | +| `REPORT_GAS` | ??? @jon | +| `CONTRACT_SIZER` | Zips down the size of the smart contract ??? @jon | +| `DEV_ENTERPRISE_SYSTEM_ADDRESS` | Give this wallet address the permission to publish CapTables to the CapTableRegistry | + + +## Hardhat networks +There are several hardhat networks configured in [hardhat.config.ts](./hardhat.config.ts#L83). These networks are configured to use a url from the .env file `RPC_*` and mnemonic frases, `SEED_*`, to access the account on the network used to deploy the smart contracts. + +**Be very careful about the `SEED_PROD` because this wallet holds real money, that wil be quickly stolen if the key is leaked to the public!** + +These networks are used in the Hardhat cli as `hardhat --network ` e.g. `hardhat --network brokStage` From a5c33c95b4e497d239803a1bd110cd8a1281e358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Hatland?= Date: Mon, 29 Jan 2024 10:27:51 +0100 Subject: [PATCH 6/8] run script, then build, then deploy never skip any of these steps --- packages/graph/package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/graph/package.json b/packages/graph/package.json index 00bb0d6..e101719 100644 --- a/packages/graph/package.json +++ b/packages/graph/package.json @@ -10,12 +10,12 @@ "create:container": "graph create --node http://graph-node:8020/ brok/captable", "remove:container": "graph remove --node http://graph-node:8020/ brok/captable", "deploy:container": "graph deploy --node http://graph-node:8020/ --ipfs http://ipfs:5001 --version-label 0.0.1 brok/captable", - "prepare:brokDev": "node scripts/prepare.js brokDev", - "prepare:brokStage": "node scripts/prepare.js brokStage", - "prepare:localhost": "node scripts/prepare.js localhost", - "prepare:brokProd": "node scripts/prepare.js brokProd", - "deploy:localhost": "pnpm prepare:localhost && pnpm build && pnpm create:local && pnpm deploy:local", - "deploy:container-compose": "pnpm prepare:localhost && pnpm build && pnpm create:container && pnpm deploy:container", + "prepare:brokDev": "node scripts/prepare.js brokDev && pnpm build", + "prepare:brokStage": "node scripts/prepare.js brokStage && pnpm build", + "prepare:localhost": "node scripts/prepare.js localhost && pnpm build", + "prepare:brokProd": "node scripts/prepare.js brokProd && pnpm build", + "deploy:localhost": "pnpm prepare:localhost && pnpm create:local && pnpm deploy:local", + "deploy:container-compose": "pnpm prepare:localhost && pnpm create:container && pnpm deploy:container", "deploy:brokDev": "pnpm prepare:brokDev && pnpm graph deploy --product hosted-service ohatland/brok_dev_13", "deploy:brokStage": "pnpm prepare:brokStage && pnpm graph deploy --product hosted-service ohatland/brok-ppe-v4", "deploy:brokProd": "pnpm prepare:brokProd && pnpm graph deploy --product hosted-service ohatland/brok-prd-v5" From 596d0b23cfb32c8ee59fb8566839e060b1a61115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Hatland?= Date: Mon, 29 Jan 2024 10:31:10 +0100 Subject: [PATCH 7/8] The Graph and deploy for smart contracts --- packages/captable/README.md | 6 +++++- packages/graph/README.md | 29 +++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/packages/captable/README.md b/packages/captable/README.md index 48b924c..f05140f 100644 --- a/packages/captable/README.md +++ b/packages/captable/README.md @@ -22,7 +22,7 @@ Based on the generated contracts, [tsup](https://www.npmjs.com/package/tsup) is | `scripts/` | I dont know what this does | | `tasks/` | Hardhat tasks to be run with ``hardhat --network --log`` | `test/` | Tests for CapTable and CapTableRegistry | -| `typechain-types` | Generated TypeScript bindings for smart contracts (generated) | +| `typechain-types/` | Generated TypeScript bindings for smart contracts (generated) | ### .env @@ -49,3 +49,7 @@ There are several hardhat networks configured in [hardhat.config.ts](./hardhat.c These networks are used in the Hardhat cli as `hardhat --network ` e.g. `hardhat --network brokStage` +## Deployment prosess +To deploy the smart contracts to production, run `pnpm hardhat-deploy-contracts-production`, + +Again, make sure the `.env` file holds the correct values **before** running this command \ No newline at end of file diff --git a/packages/graph/README.md b/packages/graph/README.md index dfc31dd..ac59e90 100644 --- a/packages/graph/README.md +++ b/packages/graph/README.md @@ -1,7 +1,28 @@ -# DEV +# Search indexing for CapTableRegistry BRØK -Make sure the correct CapTableRegistry is sert in config +The Graph is an indexing protocol for organizing blockchain data and making it easily accessible with GraphQL. -Create a subgraph at https://thegraph.com/legacy-explorer/ +The Graph makes it possible to query data that is difficult to query directly. -Change the NPM command to reflect new subgraph, then run `yarn run brokDev:deploy` +The Graph learns what and how to index Ethereum data based on subgraph descriptions, known as the subgraph manifest. The subgraph description defines the smart contracts of interest for a subgraph, the events in those contracts to pay attention to, and how to map event data to data that The Graph will store in its database. + +Once you have written a `subgraph manifest`, you use the Graph CLI to store the definition in IPFS and tell the indexer to start indexing data for that subgraph. + +This diagram gives more detail about the flow of data once a subgraph manifest has been deployed, dealing with Ethereum transactions: + + +## Project overview + +| **Folder** | **Description** | +|--|--| +| `abis/` | ABIS files for CapTable and CapTableRegistry, ***NB: These files are generated and copy manually*** | +| `build/` | Generated files from `graph codegen && graph build`, based on the content of `subgraph.yaml` | +| `docker-compose/` | Specs for running TheGraph locally with Docker compose | +| `generated/` | Some manually generated files @jon ? | +| `podman-compose/` | Specs for running TheGraph locally with Podman compose +| `scripts/` | Takes constant variables from `packages/captable/deployment/` and creates `subgraph.yaml` | +| `src/` | Some more files copy @jon ? | +| `tests/` | I dont know @jon ? | + +## Deployment prosess +To deploy subgraph to The Graph hosted services. update the deployment name in `package.json` and run one of the `deploy:*` commands \ No newline at end of file From 161eac49480631e4c114d2e8100f7a4ecde4d318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Hatland?= Date: Wed, 7 Feb 2024 10:48:55 +0100 Subject: [PATCH 8/8] tmp --- packages/api/README.md | 2 +- packages/captable/README.md | 12 +- packages/captable/scripts/deploy.ts | 23 - packages/graph/abis/CapTable.json | 1876 ----------------- packages/graph/abis/CapTableRegistry.json | 692 ------ .../generated/CapTableRegistry/CapTable.ts | 177 +- .../CapTableRegistry/CapTableRegistry.ts | 472 ----- .../generated/templates/CapTable/CapTable.ts | 177 +- packages/graph/subgraph.example.yaml | 6 +- 9 files changed, 116 insertions(+), 3321 deletions(-) delete mode 100644 packages/captable/scripts/deploy.ts delete mode 100644 packages/graph/abis/CapTable.json delete mode 100644 packages/graph/abis/CapTableRegistry.json diff --git a/packages/api/README.md b/packages/api/README.md index 0ee066d..4bbdcb8 100644 --- a/packages/api/README.md +++ b/packages/api/README.md @@ -24,7 +24,7 @@ For more explanation, check out the [swagger file](./../../docs/swagger.yaml) ## External applications This application depends on the following to work properly: -- an Ethereum network, ether Hardhat network running locally, or Arbitrum Goerli/Sepolia/One +- an Ethereum network, either Hardhat network running locally, or Arbitrum Goerli/Sepolia/One - The Graph subgraph for CapTableRegistry - Navnetjener API diff --git a/packages/captable/README.md b/packages/captable/README.md index f05140f..40ea115 100644 --- a/packages/captable/README.md +++ b/packages/captable/README.md @@ -2,13 +2,13 @@ Smart contracts for CapTable and CapTableRegistry developed in [Solidity v0.8.0](https://docs.soliditylang.org/en/v0.8.0/) -Based on [ERC1400](https://www.shipfinex.com/blog/erc-1400-a-standardized-framework-for-security-tokens), but intended to migrate to [ERC3643](https://www.erc3643.org/) in the future. +Based on [ERC1400](https://consensys.io/staking/assets/universal-token), but intended to migrate to [ERC3643](https://www.erc3643.org/) in the future. The contracts are built and tested with [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started#overview) Based on the generated contracts, [tsup](https://www.npmjs.com/package/tsup) is used to generate a TypeScript library, to be used by Brøk API and The Graph configuration. -***NB! brokProd is still against Arbitrum Goerli*** +***Note: 'brokProd' is currently configured to run on the deprecated Arbitrum Goerli network. In future versions we might transition to Sepolia.*** ## Project overview @@ -28,7 +28,7 @@ Based on the generated contracts, [tsup](https://www.npmjs.com/package/tsup) is ### .env | **Value** | **Description** | |--|--| -| `ETHERSCAN_API_KEY` | API key to Etherscan, used by/in ??? @jon | +| `ETHERSCAN_API_KEY` | Used for verifying that the contract's source code matches the executed bytecode onchain, makes the source code viewable on Etherscan and makes it possible to execute smart contract functions directly from Etherscan. | | `SEED_DEV` | Mnemonic key for Brønnøysundregistrenes wallet used to deploy contracts in the dev environment | | `SEED_STAGE` | Mnemonic key for Brønnøysundregistrenes wallet used to deploy contracts in the stage environment | | `SEED_PROD` | Mnemonic key for Brønnøysundregistrenes wallet used to deploy contracts in the production environment **NB: contains real money** | @@ -37,15 +37,15 @@ Based on the generated contracts, [tsup](https://www.npmjs.com/package/tsup) is | `RPC_TESTNET` | Network address to the Arbitrum Goerli network | | `RPC_STAGENET` | Network address to the Arbitrum One network | | `RPC_MAINNET` | Network address to the Arbitrum One network | -| `REPORT_GAS` | ??? @jon | -| `CONTRACT_SIZER` | Zips down the size of the smart contract ??? @jon | +| `CONTRACT_SIZER` | Boolean for turning on verbose compilation where contract sizes are being outputted when they are compiled. | +| `REPORT_GAS` | Same as `CONTRACT_SIZER` but with finer granularity output. This outputs gas used for each test and every smart contract method | | `DEV_ENTERPRISE_SYSTEM_ADDRESS` | Give this wallet address the permission to publish CapTables to the CapTableRegistry | ## Hardhat networks There are several hardhat networks configured in [hardhat.config.ts](./hardhat.config.ts#L83). These networks are configured to use a url from the .env file `RPC_*` and mnemonic frases, `SEED_*`, to access the account on the network used to deploy the smart contracts. -**Be very careful about the `SEED_PROD` because this wallet holds real money, that wil be quickly stolen if the key is leaked to the public!** +**Be very careful about the `SEED_PROD` because this wallet holds real money, they will be quickly stolen if the key is leaked to the public!** These networks are used in the Hardhat cli as `hardhat --network ` e.g. `hardhat --network brokStage` diff --git a/packages/captable/scripts/deploy.ts b/packages/captable/scripts/deploy.ts deleted file mode 100644 index 6cdf2cb..0000000 --- a/packages/captable/scripts/deploy.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ethers } from "hardhat"; - -async function main() { - const currentTimestampInSeconds = Math.round(Date.now() / 1000); - const ONE_YEAR_IN_SECS = 365 * 24 * 60 * 60; - const unlockTime = currentTimestampInSeconds + ONE_YEAR_IN_SECS; - - const lockedAmount = ethers.utils.parseEther("1"); - - const Lock = await ethers.getContractFactory("Lock"); - const lock = await Lock.deploy(unlockTime, { value: lockedAmount }); - - await lock.deployed(); - - console.log(`Lock with 1 ETH and unlock timestamp ${unlockTime} deployed to ${lock.address}`); -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main().catch((error) => { - console.error(error); - process.exitCode = 1; -}); diff --git a/packages/graph/abis/CapTable.json b/packages/graph/abis/CapTable.json deleted file mode 100644 index 4a57cc8..0000000 --- a/packages/graph/abis/CapTable.json +++ /dev/null @@ -1,1876 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "CapTable", - "sourceName": "contracts/capTable/CapTable.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "orgnr", - "type": "string" - }, - { - "internalType": "uint256", - "name": "granularity", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "controllers", - "type": "address[]" - }, - { - "internalType": "bytes32[]", - "name": "defaultPartitions", - "type": "bytes32[]" - }, - { - "internalType": "address", - "name": "capTableRegistry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "ApprovalByPartition", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenHolder", - "type": "address" - } - ], - "name": "AuthorizedOperator", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenHolder", - "type": "address" - } - ], - "name": "AuthorizedOperatorByPartition", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "string", - "name": "orgnr", - "type": "string" - }, - { - "indexed": true, - "internalType": "address", - "name": "oldFagsystem", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newFagsystem", - "type": "address" - } - ], - "name": "CaptableChangedFagsystem", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "fromPartition", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "toPartition", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "ChangedPartition", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "string", - "name": "uri", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "documentHash", - "type": "bytes32" - } - ], - "name": "DocumentRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "string", - "name": "uri", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "documentHash", - "type": "bytes32" - } - ], - "name": "DocumentUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "Issued", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "operatorData", - "type": "bytes" - } - ], - "name": "IssuedByPartition", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "MinterAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "MinterRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "string", - "name": "orgnr", - "type": "string" - }, - { - "indexed": true, - "internalType": "address", - "name": "fagsystem", - "type": "address" - } - ], - "name": "NewCapTable", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "Redeemed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "operatorData", - "type": "bytes" - } - ], - "name": "RedeemedByPartition", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenHolder", - "type": "address" - } - ], - "name": "RevokedOperator", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenHolder", - "type": "address" - } - ], - "name": "RevokedOperatorByPartition", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "fromPartition", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "operatorData", - "type": "bytes" - } - ], - "name": "TransferByPartition", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "addMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowanceByPartition", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approveByPartition", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "authorizeOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "authorizeOperatorByPartition", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenHolder", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "tokenHolder", - "type": "address" - } - ], - "name": "balanceOfByPartition", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "interfaceHash", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "canImplementInterfaceForAddress", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "controllers", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - } - ], - "name": "controllersByPartition", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "domainName", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "domainVersion", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "generateDomainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getAllDocuments", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDefaultPartitions", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "documentName", - "type": "bytes32" - } - ], - "name": "getDocument", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFagsystem", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFagsystemDid", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOrgnr", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "granularity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isControllable", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isIssuable", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "isMinter", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenHolder", - "type": "address" - } - ], - "name": "isOperator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenHolder", - "type": "address" - } - ], - "name": "isOperatorForPartition", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenHolder", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "issue", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "tokenHolder", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "issueByPartition", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "partition", - "type": "bytes32[]" - }, - { - "internalType": "address[]", - "name": "to", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "value", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "kapitalforhoyselse_nye_aksjer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "partition", - "type": "bytes32[]" - }, - { - "internalType": "address[]", - "name": "from", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "value", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "operatorData", - "type": "bytes" - } - ], - "name": "kapitalnedsettelse_reduksjon_aksjer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newContractAddress", - "type": "address" - }, - { - "internalType": "bool", - "name": "definitive", - "type": "bool" - } - ], - "name": "migrate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "tokenHolder", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "operatorData", - "type": "bytes" - } - ], - "name": "operatorRedeemByPartition", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "operatorData", - "type": "bytes" - } - ], - "name": "operatorTransferByPartition", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenHolder", - "type": "address" - } - ], - "name": "partitionsOf", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "redeem", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "redeemByPartition", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "redeemFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "documentName", - "type": "bytes32" - } - ], - "name": "removeDocument", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "removeMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceControl", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceIssuance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "revokeOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "revokeOperatorByPartition", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "capTableRegistryAddress", - "type": "address" - } - ], - "name": "setCapTableRegistry", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "operators", - "type": "address[]" - } - ], - "name": "setControllers", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "partitions", - "type": "bytes32[]" - } - ], - "name": "setDefaultPartitions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "documentName", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "uri", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "documentHash", - "type": "bytes32" - } - ], - "name": "setDocument", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address[]", - "name": "operators", - "type": "address[]" - } - ], - "name": "setPartitionControllers", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "extension", - "type": "address" - }, - { - "internalType": "string", - "name": "interfaceLabel", - "type": "string" - }, - { - "internalType": "bool", - "name": "removeOldExtensionRoles", - "type": "bool" - }, - { - "internalType": "bool", - "name": "addMinterRoleForExtension", - "type": "bool" - }, - { - "internalType": "bool", - "name": "addControllerRoleForExtension", - "type": "bool" - } - ], - "name": "setTokenExtension", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "partition", - "type": "bytes32[]" - }, - { - "internalType": "address[]", - "name": "from", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "value", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "operatorData", - "type": "bytes" - } - ], - "name": "spleis", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "partition", - "type": "bytes32[]" - }, - { - "internalType": "address[]", - "name": "to", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "value", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "splitt", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalPartitions", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - } - ], - "name": "totalSupplyByPartition", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "partition", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "transferByPartition", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "transferFromWithData", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "transferWithData", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "updateFagsystem", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162005994380380620059948339810160408190526200003491620009ee565b858585858562000044336200021f565b6200004f336200026f565b62000059620002c1565b50600462000068868262000b51565b50600562000077858262000b51565b50600060075560018310156200008c57600080fd5b60068390556200009c82620002e7565b8051620000b19060149060208401906200072b565b506008805462ffff0019166201010017905560408051808201909152600c81526b22a921989a18182a37b5b2b760a11b6020808301919091526200010191903090620003e4811b6200244417901c565b6200013a6040518060400160405280600a81526020016922a92199182a37b5b2b760b11b81525030620003e460201b620024441760201c565b620001746040518060400160405280600c81526020016b22a921989a18182a37b5b2b760a11b8152506200049260201b620024ee1760201c565b620001ac6040518060400160405280600a81526020016922a92199182a37b5b2b760b11b8152506200049260201b620024ee1760201c565b5050604051339350620001c3925088915062000c1d565b604051908190038120907fbaae3ce00d3ceedebee4e035d2bab26a15d5d5e0c97fa14e2dee257f25b077f690600090a3601c80546001600160a01b0319166001600160a01b03929092169190911790555062000c799350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200028a816002620004e160201b6200253b1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60004681620002cf62000565565b60009283526003602052604090922082905550919050565b60005b6016548110156200035a576000601760006016848154811062000311576200031162000c3b565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905580620003518162000c51565b915050620002ea565b5060005b8151811015620003ca5760016017600084848151811062000383576200038362000c3b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620003c18162000c51565b9150506200035e565b508051620003e09060169060208401906200077b565b5050565b600082604051602001620003f9919062000c1d565b60408051808303601f190181529082905280516020909101206329965a1d60e01b8252306004830152602482018190526001600160a01b03841660448301529150731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156200047457600080fd5b505af115801562000489573d6000803e3d6000fd5b50505050505050565b600180600083604051602001620004aa919062000c1d565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff191691151591909117905550565b620004ed82826200060c565b15620005405760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650060448201526064015b60405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600046817f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6200059462000691565b8051602090910120620005bb6040805180820190915260018152603160f81b602082015290565b80516020918201206040805192830194909452928101919091526060810191909152608081018390523060a082015260c00160408051601f1981840301815291905280516020909101209392505050565b60006001600160a01b038216620006715760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840162000537565b506001600160a01b03166000908152602091909152604090205460ff1690565b606060048054620006a29062000ac2565b80601f0160208091040260200160405190810160405280929190818152602001828054620006d09062000ac2565b8015620007215780601f10620006f55761010080835404028352916020019162000721565b820191906000526020600020905b8154815290600101906020018083116200070357829003601f168201915b5050505050905090565b82805482825590600052602060002090810192821562000769579160200282015b82811115620007695782518255916020019190600101906200074c565b5062000777929150620007d3565b5090565b82805482825590600052602060002090810192821562000769579160200282015b828111156200076957825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200079c565b5b80821115620007775760008155600101620007d4565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200082b576200082b620007ea565b604052919050565b60005b838110156200085057818101518382015260200162000836565b50506000910152565b600082601f8301126200086b57600080fd5b81516001600160401b03811115620008875762000887620007ea565b6200089c601f8201601f191660200162000800565b818152846020838601011115620008b257600080fd5b620008c582602083016020870162000833565b949350505050565b60006001600160401b03821115620008e957620008e9620007ea565b5060051b60200190565b80516001600160a01b03811681146200090b57600080fd5b919050565b600082601f8301126200092257600080fd5b815160206200093b6200093583620008cd565b62000800565b82815260059290921b840181019181810190868411156200095b57600080fd5b8286015b8481101562000981576200097381620008f3565b83529183019183016200095f565b509695505050505050565b600082601f8301126200099e57600080fd5b81516020620009b16200093583620008cd565b82815260059290921b84018101918181019086841115620009d157600080fd5b8286015b84811015620009815780518352918301918301620009d5565b60008060008060008060c0878903121562000a0857600080fd5b86516001600160401b038082111562000a2057600080fd5b62000a2e8a838b0162000859565b9750602089015191508082111562000a4557600080fd5b62000a538a838b0162000859565b965060408901519550606089015191508082111562000a7157600080fd5b62000a7f8a838b0162000910565b9450608089015191508082111562000a9657600080fd5b5062000aa589828a016200098c565b92505062000ab660a08801620008f3565b90509295509295509295565b600181811c9082168062000ad757607f821691505b60208210810362000af857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000b4c57600081815260208120601f850160051c8101602086101562000b275750805b601f850160051c820191505b8181101562000b485782815560010162000b33565b5050505b505050565b81516001600160401b0381111562000b6d5762000b6d620007ea565b62000b858162000b7e845462000ac2565b8462000afe565b602080601f83116001811462000bbd576000841562000ba45750858301515b600019600386901b1c1916600185901b17855562000b48565b600085815260208120601f198616915b8281101562000bee5788860151825594840194600190910190840162000bcd565b508582101562000c0d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825162000c3181846020870162000833565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b60006001820162000c7257634e487b7160e01b600052601160045260246000fd5b5060010190565b614d0b8062000c896000396000f3fe608060405234801561001057600080fd5b50600436106103175760003560e01c8063010648ca1461031c57806305494afa1461033157806306fdde0314610344578063095ea7b3146103625780630a4e4f2214610385578063103ef9e11461038d57806314d1e62f146103a0578063168ecec5146103b357806316e1aed4146103c657806317ec83ca146103d957806318160ddd146104255780631d43e1c01461042d57806323b872dd14610435578063249cb3fa146104485780632535f7621461045b57806326ab56501461046e5780632f1cae85146104765780633092afd51461048757806330e828031461049a578063313ce567146104cd5780634c783bf5146104dc57806352ebf263146104ec578063556f0dc7146104ff57806362eb0068146105075780636572974f1461051a57806367c849191461052d57806369598efe146105405780636c30d170146105555780636d77cad61461055d5780636fd00b341461057057806370a0823114610578578063715018a6146105a1578063740ab8f4146105a95780637cc0c3a7146105bc5780638357839e146105d1578063861ed3ea146105e4578063895d7386146103445780638c0dee9c146105f75780638da5cb5b1461060a578063933964c71461061f578063959b8c3f1461063257806395d89b41146105705780639675193c14610645578063983b2d5614610658578063986502751461066b57806398ddcec7146106735780639fa5f50b14610686578063a26734dc1461068e578063a6f4f105146106ae578063a8082cb0146106c1578063a9059cbb146106c9578063aa271e1a146106dc578063b10d6b41146106ef578063b6363cf214610711578063bb3acde914610724578063bb54f8c314610737578063bcfdc0cf1461074a578063c350184814610752578063ca281fd914610765578063dd62ed3e1461076d578063e77c646d146107a6578063e83c43f5146107b9578063ea74838a146107c1578063ec9a6e87146107d4578063ee532f31146107e7578063f2fde38b146107fa578063f3d490db1461080d578063f698da2514610820578063fad8b32a14610828575b600080fd5b61032f61032a366004613df3565b61083b565b005b61032f61033f36600461400a565b610974565b61034c6109f3565b604051610359919061412b565b60405180910390f35b61037561037036600461413e565b610a85565b6040519015158152602001610359565b61032f610b1b565b61032f61039b36600461416a565b610c11565b6103756103ae36600461419a565b610c75565b61032f6103c136600461416a565b610d0d565b61032f6103d4366004614216565b610d6e565b6104176103e7366004614261565b60009283526018602090815260408085206001600160a01b03948516865282528085209290931684525290205490565b604051908152602001610359565b600754610417565b61034c610db8565b6103756104433660046142a3565b610dd3565b61041761045636600461416a565b610ef5565b61032f6104693660046142d3565b610f54565b61034c610f9d565b60085462010000900460ff16610375565b61032f61049536600461432e565b611025565b6104176104a836600461416a565b6001600160a01b03166000908152601360209081526040808320938352929052205490565b60405160128152602001610359565b600854610100900460ff16610375565b61032f6104fa36600461400a565b61105d565b600654610417565b61032f61051536600461434b565b611090565b61032f610528366004614385565b6110e1565b61032f61053b366004614431565b6111b2565b610548611249565b604051610359919061449a565b61032f6112a0565b61037561056b366004614261565b6112b6565b61034c6112cb565b61041761058636600461432e565b6001600160a01b031660009081526009602052604090205490565b61032f6112da565b6105486105b736600461432e565b6112ee565b6105c461135a565b60405161035991906144de565b61032f6105df36600461432e565b6113bb565b6105c46105f236600461451f565b6113e5565b610417610605366004614538565b611450565b6106126115f5565b60405161035991906145df565b61032f61062d366004614608565b611604565b61032f61064036600461432e565b61161a565b61032f6106533660046142d3565b611688565b61032f61066636600461432e565b6117c4565b61032f6117f9565b61032f610681366004614431565b611802565b610548611988565b61041761069c36600461451f565b60009081526010602052604090205490565b61032f6106bc36600461463d565b6119de565b610417611a2b565b6103756106d736600461413e565b611ab8565b6103756106ea36600461432e565b611adf565b6107026106fd36600461451f565b611aec565b604051610359939291906146c3565b61037561071f3660046146e8565b611bcb565b61032f6107323660046142d3565b611bde565b61032f610745366004614385565b611cb5565b610548611d6c565b61032f61076036600461451f565b611dc2565b61032f612098565b61041761077b3660046146e8565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b61032f6107b4366004614716565b6120ad565b6106126120ef565b61032f6107cf366004614754565b612166565b61032f6107e2366004614754565b6121aa565b61032f6107f5366004614795565b6121be565b61032f61080836600461432e565b6122fb565b61041761081b366004614431565b612371565b6104176123cf565b61032f61083636600461432e565b6123d9565b3360009081526017602052604090205460ff1661085757600080fd5b604051806060016040528084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602080830185905242604093840152878252600b905220815181906108bf9082614848565b506020820151816001015560408201518160020155905050600c60008281526020019081526020016000205460000361093257600d80546001810182557fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb501829055546000828152600c60205260409020555b837fb4c22d60cd550a815744f04e3ff5278bf19684565ee00e2b084041b6024bd6f684848460405161096693929190614930565b60405180910390a250505050565b60005b84518110156109eb576109d986828151811061099557610995614954565b6020026020010151338784815181106109b0576109b0614954565b60200260200101518785815181106109ca576109ca614954565b602002602001015187876125b7565b806109e381614980565b915050610977565b505050505050565b606060048054610a02906147c8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2e906147c8565b8015610a7b5780601f10610a5057610100808354040283529160200191610a7b565b820191906000526020600020905b815481529060010190602001808311610a5e57829003601f168201915b5050505050905090565b60006001600160a01b038316610ab65760405162461bcd60e51b8152600401610aad90614999565b60405180910390fd5b336000818152600a602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b60006016600081548110610b3157610b31614954565b60009182526020822001546040805160018082528183019092526001600160a01b0390921693508160200160208202803683370190505090506000610b746120ef565b90508082600081518110610b8a57610b8a614954565b60200260200101906001600160a01b031690816001600160a01b031681525050610bb382612687565b806001600160a01b0316836001600160a01b0316610bcf6112cb565b604051610bdc91906149b5565b604051908190038120907fddf698a82db69118eb57511894eba2074acdc5cdf75459415afe7386360314a290600090a4505050565b33600081815260196020908152604080832086845282528083206001600160a01b0386168085529252808320805460ff1916600117905551909185917f3646a897c70797ecc134b0adc32f471b07bf1d6f451133b0384badab531e3fd69190a45050565b60006001600160a01b038316610c9d5760405162461bcd60e51b8152600401610aad90614999565b6000848152601860209081526040808320338085529083528184206001600160a01b038816808652908452938290208690559051858152909187917ff061499aa77c2f6f5e25e34955a06623705344a88256cc861a121ec0bce5cfec910160405180910390a45060019392505050565b33600081815260196020908152604080832086845282528083206001600160a01b0386168085529252808320805460ff1916905551909185917f3b287c4f1bab4df949b33bceacef984f544dc5d5479930d00e4ee8c9d8dd96f29190a45050565b610d76612770565b610db3838383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127cf92505050565b505050565b6040805180820190915260018152603160f81b602082015290565b6000610ddf33856128f2565b80610e0d57506001600160a01b0384166000908152600a602090815260408083203384529091529020548211155b610e295760405162461bcd60e51b8152600401610aad906149d1565b6001600160a01b0384166000908152600a602090815260408083203384529091529020548211610eaa576001600160a01b0384166000908152600a60209081526040808320338452909152902054610e819083612971565b6001600160a01b0385166000908152600a60209081526040808320338452909152902055610ecf565b6001600160a01b0384166000908152600a602090815260408083203384529091528120555b610eeb338585856040518060200160405280600081525061297d565b5060019392505050565b60008281526001602052604081205460ff1615610f4c5760405173455243313832305f4143434550545f4d4147494360601b6020820152603401604051602081830303815290604052805190602001209050610b15565b506000610b15565b610f973333868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061297d92505050565b50505050565b60606000610fa96120ef565b601c5460405163039dfdcd60e21b81529192506001600160a01b031690630e77f73490610fda9084906004016145df565b600060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261101f91908101906149ed565b91505090565b61102e33611adf565b8061104857503361103d6115f5565b6001600160a01b0316145b61105157600080fd5b61105a81612ac5565b50565b60005b84518110156109eb5761107e86828151811061099557610995614954565b8061108881614980565b915050611060565b610f978433338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080516020810190915290815292506125b7915050565b6110ea33611adf565b806111045750336110f96115f5565b6001600160a01b0316145b61110d57600080fd5b60085462010000900460ff166111355760405162461bcd60e51b8152600401610aad90614a63565b60005b83518110156111ab5761119985828151811061115657611156614954565b60200260200101513386848151811061117157611171614954565b602002602001015186858151811061118b5761118b614954565b602002602001015186612b07565b806111a381614980565b915050611138565b5050505050565b6111bb33611adf565b806111d55750336111ca6115f5565b6001600160a01b0316145b6111de57600080fd5b60085462010000900460ff166112065760405162461bcd60e51b8152600401610aad90614a63565b6111ab8533868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b0792505050565b6060600e805480602002602001604051908101604052809291908181526020018280548015610a7b57602002820191906000526020600020905b815481526020019060010190808311611283575050505050905090565b6112a8612770565b6008805462ff000019169055565b60006112c3848484612bb1565b949350505050565b606060058054610a02906147c8565b6112e2612770565b6112ec6000612c3a565b565b6001600160a01b03811660009081526011602090815260409182902080548351818402810184019094528084526060939283018282801561134e57602002820191906000526020600020905b81548152602001906001019080831161133a575b50505050509050919050565b60606016805480602002602001604051908101604052809291908181526020018280548015610a7b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611394575050505050905090565b6113c3612770565b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152601a602090815260409182902080548351818402810184019094528084526060939283018282801561134e57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114275750505050509050919050565b600061145d89338a612bb1565b80611492575060008981526018602090815260408083206001600160a01b038c16845282528083203384529091529020548611155b6114ae5760405162461bcd60e51b8152600401610aad906149d1565b60008981526018602090815260408083206001600160a01b038c168452825280832033845290915290205486116115445760008981526018602090815260408083206001600160a01b038c16845282528083203384529091529020546115149087612971565b60008a81526018602090815260408083206001600160a01b038d1684528252808320338452909152902055611570565b60008981526018602090815260408083206001600160a01b038c16845282528083203384529091528120555b6115e889338a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8e018190048102820181019092528c815292508c91508b9081908401838280828437600092019190915250612c8a92505050565b9998505050505050505050565b6000546001600160a01b031690565b61160c612770565b6116168282612de2565b5050565b336001600160a01b0382160361162f57600080fd5b6001600160a01b0381166000818152601560209081526040808320338085529252808320805460ff19166001179055519092917ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f991a350565b61169233856128f2565b806116c057506001600160a01b0384166000908152600a602090815260408083203384529091529020548311155b6116dc5760405162461bcd60e51b8152600401610aad906149d1565b6001600160a01b0384166000908152600a60209081526040808320338452909152902054831161175d576001600160a01b0384166000908152600a602090815260408083203384529091529020546117349084612971565b6001600160a01b0385166000908152600a60209081526040808320338452909152902055611782565b6001600160a01b0384166000908152600a602090815260408083203384529091528120555b610f9733858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e5392505050565b6117cd33611adf565b806117e75750336117dc6115f5565b6001600160a01b0316145b6117f057600080fd5b61105a81612f90565b6112ec33612ac5565b61180d853386612bb1565b80611842575060008581526018602090815260408083206001600160a01b038816845282528083203384529091529020548311155b6118735760405162461bcd60e51b815260206004820152600260248201526106a760f31b6044820152606401610aad565b60008581526018602090815260408083206001600160a01b0388168452825280832033845290915290205483116119095760008581526018602090815260408083206001600160a01b038816845282528083203384529091529020546118d99084612971565b60008681526018602090815260408083206001600160a01b03891684528252808320338452909152902055611935565b60008581526018602090815260408083206001600160a01b038816845282528083203384529091528120555b6111ab853386866040518060200160405280600081525087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506125b792505050565b6060600d805480602002602001604051908101604052809291908181526020018280548015610a7b5760200282019190600052602060002090815481526020019060010190808311611283575050505050905090565b6119e6612770565b6109eb8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250879150869050612fd2565b600046817f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611a586109f3565b80519060200120611a67610db8565b80516020918201206040805192830194909452928101919091526060810191909152608081018390523060a082015260c00160408051601f1981840301815291905280516020909101209392505050565b6000611ad6333385856040518060200160405280600081525061297d565b50600192915050565b6000610b1560028361308e565b6000818152600b602052604081208054606092918291611b0b906147c8565b9050600003611b1957600080fd5b6000848152600b602052604090206001810154600282015482548390611b3e906147c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611b6a906147c8565b8015611bb75780601f10611b8c57610100808354040283529160200191611bb7565b820191906000526020600020905b815481529060010190602001808311611b9a57829003601f168201915b505050505092509250925092509193909250565b6000611bd783836128f2565b9392505050565b611be733611adf565b80611c01575033611bf66115f5565b6001600160a01b0316145b611c0a57600080fd5b60085462010000900460ff16611c325760405162461bcd60e51b8152600401610aad90614a63565b601454600003611c545760405162461bcd60e51b8152600401610aad90614a63565b610f976014600081548110611c6b57611c6b614954565b906000526020600020015433868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b0792505050565b60005b83518110156111ab57600060096000868481518110611cd957611cd9614954565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403611d455760405162461bcd60e51b81526020600482015260136024820152724e6f206e6577207368617265686f6c6465727360681b6044820152606401610aad565b611d5a85828151811061115657611156614954565b80611d6481614980565b915050611cb8565b60606014805480602002602001604051908101604052809291908181526020018280548015610a7b5760200282019190600052602060002090815481526020019060010190808311611283575050505050905090565b3360009081526017602052604090205460ff16611e105760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610aad565b6000818152600b602052604090208054611e29906147c8565b9050600003611e725760405162461bcd60e51b8152602060048201526015602482015274111bd8dd5b595b9d08191bd95cdb9d08195e1a5cdd605a1b6044820152606401610aad565b6000818152600b6020526040808220815160608101909252805482908290611e99906147c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec5906147c8565b8015611f125780601f10611ee757610100808354040283529160200191611f12565b820191906000526020600020905b815481529060010190602001808311611ef557829003601f168201915b505050505081526020016001820154815260200160028201548152505090506000600c60008360200151815260200190815260200160002054905060008111611f8d5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610aad565b600d805460009190611fa190600190614a7f565b81548110611fb157611fb1614954565b9060005260206000200154905080600d600184611fce9190614a7f565b81548110611fde57611fde614954565b6000918252602080832090910192909255828152600c90915260409020829055600d80548061200f5761200f614a92565b600082815260208082208301600019908101839055909201909255848101518252600c81526040808320839055868352600b9091528120906120518282613cbc565b506000600182018190556002909101558251602084015160405186927f3d9bba27d3e360d8c80645beed7e991454a8271bf6f269a24f7782be0f0d06549261096692614aa8565b6120a0612770565b6008805461ff0019169055565b610db333338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e5392505050565b601c546040516359fa131b60e01b81526000916001600160a01b0316906359fa131b906121209030906004016145df565b602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190614aca565b905090565b61216e612770565b61161682828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061268792505050565b6121b2612770565b610db360148383613cf6565b6121c833866128f2565b806121f657506001600160a01b0385166000908152600a602090815260408083203384529091529020548311155b6122125760405162461bcd60e51b8152600401610aad906149d1565b6001600160a01b0385166000908152600a602090815260408083203384529091529020548311612293576001600160a01b0385166000908152600a6020908152604080832033845290915290205461226a9084612971565b6001600160a01b0386166000908152600a602090815260408083203384529091529020556122b8565b6001600160a01b0385166000908152600a602090815260408083203384529091528120555b6111ab3386868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061297d92505050565b612303612770565b6001600160a01b0381166123685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aad565b61105a81612c3a565b60006123c5863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612c8a915050565b9695505050505050565b6000612161613111565b336001600160a01b038216036123ee57600080fd5b6001600160a01b0381166000818152601560209081526040808320338085529252808320805460ff19169055519092917f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa191a350565b60008260405160200161245791906149b5565b60408051808303601f190181529082905280516020909101206329965a1d60e01b8252306004830152602482018190526001600160a01b03841660448301529150731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156124d157600080fd5b505af11580156124e5573d6000803e3d6000fd5b50505050505050565b60018060008360405160200161250491906149b5565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff191691151591909117905550565b612545828261308e565b156125925760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610aad565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b03841660009081526013602090815260408083208984529091529020548311156125fa5760405162461bcd60e51b8152600401610aad90614ae7565b61260a8686866000878787613134565b61261a86868660008787876131f6565b61262584878561327e565b61263185858585613540565b836001600160a01b0316856001600160a01b0316877fce306c3dbc4a497124b5a4f2be8388b41084c1d74663da27ecee1186c00239bf8685604051612677929190614b03565b60405180910390a4505050505050565b60005b6016548110156126f357600060176000601684815481106126ad576126ad614954565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055806126eb81614980565b91505061268a565b5060005b815181101561275c5760016017600084848151811061271857612718614954565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061275481614980565b9150506126f7565b508051611616906016906020840190613d41565b336127796115f5565b6001600160a01b0316146112ec5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aad565b60005b6000838152601a602052604090205481101561285b576000838152601b60209081526040808320601a909252822080548391908590811061281557612815614954565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061285381614980565b9150506127d2565b5060005b81518110156128d2576000838152601b6020526040812083516001929085908590811061288e5761288e614954565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806128ca81614980565b91505061285f565b506000828152601a602090815260409091208251610db392840190613d41565b6000816001600160a01b0316836001600160a01b0316148061293957506001600160a01b0380841660009081526015602090815260408083209386168352929052205460ff165b80611bd75750600854610100900460ff168015611bd7575050506001600160a01b031660009081526017602052604090205460ff1690565b6000611bd78284614a7f565b60145460000361299f5760405162461bcd60e51b8152600401610aad90614a63565b816000805b601454811015612aa6576001600160a01b038716600090815260136020526040812060148054919291849081106129dd576129dd614954565b90600052602060002001548152602001908152602001600020549150818311612a4557612a3b60148281548110612a1657612a16614954565b9060005260206000200154898989878960405180602001604052806000815250612c8a565b5060009250612aa6565b8115612a9457612a8660148281548110612a6157612a61614954565b9060005260206000200154898989868960405180602001604052806000815250612c8a565b50612a918284614a7f565b92505b80612a9e81614980565b9150506129a4565b5081156124e55760405162461bcd60e51b8152600401610aad90614ae7565b612ad06002826136b8565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b612b2685856000868686604051806020016040528060008152506131f6565b612b328484848461373a565b612b3d838684613863565b612b5c85856000868686604051806020016040528060008152506139a7565b826001600160a01b0316846001600160a01b0316867ff0ded82afbb1bb3ff3fc48cb2a26584aa84e4af0bf309c804ecdb94d0f6a98bb8585604051612ba2929190614b1c565b60405180910390a45050505050565b6000612bbd83836128f2565b80612bf557506001600160a01b03808316600090815260196020908152604080832088845282528083209387168352929052205460ff165b806112c35750600854610100900460ff1680156112c3575050506000918252601b602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03851660009081526013602090815260408083208a8452909152812054841115612ccd5760405162461bcd60e51b8152600401610aad90614ae7565b8151889015801590612ce157506040845110155b15612cf357612cf08985613a2f565b90505b612d0289898989898989613134565b612d11898989898989896131f6565b612d1c878a8761327e565b612d27878787613a5b565b612d32868287613863565b612d41818989898989896139a7565b856001600160a01b0316876001600160a01b03168a7fff4e9a26af4eb73b8bacfaa4abd4fea03d9448e7b912dc5ff4019048875aa2d48b898989604051612d8b9493929190614b4f565b60405180910390a4888114612dd65780897f67c8ba31d2dd11f1384577b3405b04ed91eed1231e408432ad2458cab37b2fa187604051612dcd91815260200190565b60405180910390a35b98975050505050505050565b612e0e6040518060400160405280600a81526020016922a92199182a37b5b2b760b11b81525083612444565b612e3c6040518060400160405280600c81526020016b22a921989a18182a37b5b2b760a11b81525083612444565b8015611616576008805460ff191660011790555050565b601454600003612e755760405162461bcd60e51b8152600401610aad90614a63565b816000805b601454811015612f71576001600160a01b03861660009081526013602052604081206014805491929184908110612eb357612eb3614954565b90600052602060002001548152602001908152602001600020549150818311612f1957612f1060148281548110612eec57612eec614954565b906000526020600020015488888688604051806020016040528060008152506125b7565b60009250612f71565b612f5360148281548110612f2f57612f2f614954565b906000526020600020015488888588604051806020016040528060008152506125b7565b612f5d8284614a7f565b925080612f6981614980565b915050612e7a565b5081156109eb5760405162461bcd60e51b8152600401610aad90614ae7565b612f9b60028261253b565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6000612fde3086613ba2565b90506001600160a01b03811615801590612ff55750835b156130325761300381611adf565b156130115761301181612ac5565b6001600160a01b0381166000908152601760205260409020805460ff191690555b61303c8587612444565b82801561304f575061304d86611adf565b155b1561305d5761305d86612f90565b81156109eb576001600160a01b0386166000908152601760205260409020805460ff19166001179055505050505050565b60006001600160a01b0382166130f15760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610aad565b506001600160a01b03166000908152602091909152604090205460ff1690565b46600090815260036020526040812054801561312c57919050565b61101f613c51565b600061316b866040518060400160405280601381526020017222a921989a18182a37b5b2b739a9b2b73232b960691b815250613ba2565b90506001600160a01b038116156131ec5760405163139d569560e21b81526001600160a01b03821690634e755a54906131b99060009036908d908d908d908d908d908d908d90600401614b93565b600060405180830381600087803b1580156131d357600080fd5b505af11580156131e7573d6000803e3d6000fd5b505050505b5050505050505050565b6000613230306040518060400160405280601681526020017522a921989a18182a37b5b2b739ab30b634b230ba37b960511b815250613ba2565b90506001600160a01b038116156131ec57604051632907d53b60e11b81526001600160a01b0382169063520faa76906131b99060009036908d908d908d908d908d908d908d90600401614b93565b6001600160a01b03831660009081526013602090815260408083208584529091529020546132ac9082612971565b6001600160a01b03841660009081526013602090815260408083208684528252808320939093556010905220546132e39082612971565b6000838152601060205260408120829055036133d1576000828152600f6020526040902054806133255760405162461bcd60e51b8152600401610aad90614c0d565b600e80546000919061333990600190614a7f565b8154811061334957613349614954565b9060005260206000200154905080600e6001846133669190614a7f565b8154811061337657613376614954565b6000918252602080832090910192909255828152600f90915260409020829055600e8054806133a7576133a7614a92565b600082815260208082208301600019908101839055909201909255858252600f9052604081205550505b6001600160a01b03831660009081526013602090815260408083208584529091528120549003610db3576001600160a01b03831660009081526012602090815260408083208584529091529020548061343c5760405162461bcd60e51b8152600401610aad90614c0d565b6001600160a01b0384166000908152601160205260408120805461346290600190614a7f565b8154811061347257613472614954565b60009182526020808320909101546001600160a01b03881683526011909152604090912090915081906134a6600185614a7f565b815481106134b6576134b6614954565b60009182526020808320909101929092556001600160a01b038716808252601283526040808320858452845280832086905590825260119092522080548061350057613500614a92565b6000828152602080822083016000199081018390559092019092556001600160a01b03871682526012815260408083208784529091528120555050505050565b60085460ff16156135635760405162461bcd60e51b8152600401610aad90614c29565b61356c82613c75565b6135885760405162461bcd60e51b8152600401610aad90614c0d565b6001600160a01b0383166135ae5760405162461bcd60e51b8152600401610aad90614999565b6001600160a01b0383166000908152600960205260409020548211156135e65760405162461bcd60e51b8152600401610aad90614ae7565b6001600160a01b0383166000908152600960205260409020546136099083612971565b6001600160a01b03841660009081526009602052604090205560075461362f9083612971565b600781905550826001600160a01b0316846001600160a01b03167fb7d0d6b60740753e9f16692a2f479472a1385aec2420fa43225b02f2ffa1afe7848460405161367a929190614b03565b60405180910390a36040518281526000906001600160a01b03851690600080516020614cb6833981519152906020015b60405180910390a350505050565b6136c2828261308e565b6137185760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610aad565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60085460ff161561375d5760405162461bcd60e51b8152600401610aad90614c29565b61376682613c75565b6137825760405162461bcd60e51b8152600401610aad90614c0d565b6001600160a01b0383166137a85760405162461bcd60e51b8152600401610aad90614c45565b6007546137b59083613c98565b6007556001600160a01b0383166000908152600960205260409020546137db9083613c98565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907f0e9905d62635f049c2f4e11678ebf9dc3d1f8c4a653e290759b772e47ba00d009061382f9086908690614b03565b60405180910390a36040518281526001600160a01b03841690600090600080516020614cb6833981519152906020016136aa565b8015610db3576001600160a01b038316600090815260126020908152604080832085845290915281205490036138d7576001600160a01b0383166000818152601160209081526040808320805460018101825581855283852001879055938352925460128252838320868452909152919020555b6001600160a01b03831660009081526013602090815260408083208584529091529020546139059082613c98565b6001600160a01b0384166000908152601360209081526040808320868452825280832093909355600f905290812054900361397a57600e80546001810182557fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd01839055546000838152600f60205260409020555b6000828152601060205260409020546139939082613c98565b600083815260106020526040902055505050565b60006139e18560405180604001604052806016815260200175115490cc4d0c0c151bdad95b9cd49958da5c1a595b9d60521b815250613ba2565b90506001600160a01b038116156131ec57604051637a325abb60e11b81526001600160a01b0382169063f464b576906131b99060009036908d908d908d908d908d908d908d90600401614b93565b60208101516000906000199060018101613a4f5760408401519250613a53565b8492505b505092915050565b60085460ff1615613a7e5760405162461bcd60e51b8152600401610aad90614c29565b613a8781613c75565b613aa35760405162461bcd60e51b8152600401610aad90614c0d565b6001600160a01b038216613ac95760405162461bcd60e51b8152600401610aad90614c45565b6001600160a01b038316600090815260096020526040902054811115613b015760405162461bcd60e51b8152600401610aad90614ae7565b6001600160a01b038316600090815260096020526040902054613b249082612971565b6001600160a01b038085166000908152600960205260408082209390935590841681522054613b539082613c98565b6001600160a01b038084166000818152600960205260409081902093909355915190851690600080516020614cb683398151915290613b959085815260200190565b60405180910390a3505050565b60008082604051602001613bb691906149b5565b60408051808303601f1901815290829052805160209091012063555ddc6560e11b82526001600160a01b0386166004830152602482018190529150731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613c2d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c39190614aca565b60004681613c5d611a2b565b60009283526003602052604090922082905550919050565b6006546000908290613c9190613c8b8382613ca4565b90613cb0565b1492915050565b6000611bd78284614c61565b6000611bd78284614c74565b6000611bd78284614c96565b508054613cc8906147c8565b6000825580601f10613cd8575050565b601f01602090049060005260206000209081019061105a9190613d96565b828054828255906000526020600020908101928215613d31579160200282015b82811115613d31578235825591602001919060010190613d16565b50613d3d929150613d96565b5090565b828054828255906000526020600020908101928215613d31579160200282015b82811115613d3157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613d61565b5b80821115613d3d5760008155600101613d97565b60008083601f840112613dbd57600080fd5b5081356001600160401b03811115613dd457600080fd5b602083019150836020828501011115613dec57600080fd5b9250929050565b60008060008060608587031215613e0957600080fd5b8435935060208501356001600160401b03811115613e2657600080fd5b613e3287828801613dab565b9598909750949560400135949350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613e8357613e83613e45565b604052919050565b60006001600160401b03821115613ea457613ea4613e45565b5060051b60200190565b600082601f830112613ebf57600080fd5b81356020613ed4613ecf83613e8b565b613e5b565b82815260059290921b84018101918181019086841115613ef357600080fd5b8286015b84811015613f0e5780358352918301918301613ef7565b509695505050505050565b6001600160a01b038116811461105a57600080fd5b600082601f830112613f3f57600080fd5b81356020613f4f613ecf83613e8b565b82815260059290921b84018101918181019086841115613f6e57600080fd5b8286015b84811015613f0e578035613f8581613f19565b8352918301918301613f72565b60006001600160401b03821115613fab57613fab613e45565b50601f01601f191660200190565b600082601f830112613fca57600080fd5b8135613fd8613ecf82613f92565b818152846020838601011115613fed57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561402257600080fd5b85356001600160401b038082111561403957600080fd5b61404589838a01613eae565b9650602088013591508082111561405b57600080fd5b61406789838a01613f2e565b9550604088013591508082111561407d57600080fd5b61408989838a01613eae565b9450606088013591508082111561409f57600080fd5b6140ab89838a01613fb9565b935060808801359150808211156140c157600080fd5b506140ce88828901613fb9565b9150509295509295909350565b60005b838110156140f65781810151838201526020016140de565b50506000910152565b600081518084526141178160208601602086016140db565b601f01601f19169290920160200192915050565b602081526000611bd760208301846140ff565b6000806040838503121561415157600080fd5b823561415c81613f19565b946020939093013593505050565b6000806040838503121561417d57600080fd5b82359150602083013561418f81613f19565b809150509250929050565b6000806000606084860312156141af57600080fd5b8335925060208401356141c181613f19565b929592945050506040919091013590565b60008083601f8401126141e457600080fd5b5081356001600160401b038111156141fb57600080fd5b6020830191508360208260051b8501011115613dec57600080fd5b60008060006040848603121561422b57600080fd5b8335925060208401356001600160401b0381111561424857600080fd5b614254868287016141d2565b9497909650939450505050565b60008060006060848603121561427657600080fd5b83359250602084013561428881613f19565b9150604084013561429881613f19565b809150509250925092565b6000806000606084860312156142b857600080fd5b83356142c381613f19565b925060208401356141c181613f19565b600080600080606085870312156142e957600080fd5b84356142f481613f19565b93506020850135925060408501356001600160401b0381111561431657600080fd5b61432287828801613dab565b95989497509550505050565b60006020828403121561434057600080fd5b8135611bd781613f19565b6000806000806060858703121561436157600080fd5b843593506020850135925060408501356001600160401b0381111561431657600080fd5b6000806000806080858703121561439b57600080fd5b84356001600160401b03808211156143b257600080fd5b6143be88838901613eae565b955060208701359150808211156143d457600080fd5b6143e088838901613f2e565b945060408701359150808211156143f657600080fd5b61440288838901613eae565b9350606087013591508082111561441857600080fd5b5061442587828801613fb9565b91505092959194509250565b60008060008060006080868803121561444957600080fd5b85359450602086013561445b81613f19565b93506040860135925060608601356001600160401b0381111561447d57600080fd5b61448988828901613dab565b969995985093965092949392505050565b6020808252825182820181905260009190848201906040850190845b818110156144d2578351835292840192918401916001016144b6565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156144d25783516001600160a01b0316835292840192918401916001016144fa565b60006020828403121561453157600080fd5b5035919050565b60008060008060008060008060c0898b03121561455457600080fd5b88359750602089013561456681613f19565b9650604089013561457681613f19565b95506060890135945060808901356001600160401b038082111561459957600080fd5b6145a58c838d01613dab565b909650945060a08b01359150808211156145be57600080fd5b506145cb8b828c01613dab565b999c989b5096995094979396929594505050565b6001600160a01b0391909116815260200190565b8035801515811461460357600080fd5b919050565b6000806040838503121561461b57600080fd5b823561462681613f19565b9150614634602084016145f3565b90509250929050565b60008060008060008060a0878903121561465657600080fd5b863561466181613f19565b955060208701356001600160401b0381111561467c57600080fd5b61468889828a01613dab565b909650945061469b9050604088016145f3565b92506146a9606088016145f3565b91506146b7608088016145f3565b90509295509295509295565b6060815260006146d660608301866140ff565b60208301949094525060400152919050565b600080604083850312156146fb57600080fd5b823561470681613f19565b9150602083013561418f81613f19565b60008060006040848603121561472b57600080fd5b8335925060208401356001600160401b0381111561474857600080fd5b61425486828701613dab565b6000806020838503121561476757600080fd5b82356001600160401b0381111561477d57600080fd5b614789858286016141d2565b90969095509350505050565b6000806000806000608086880312156147ad57600080fd5b85356147b881613f19565b9450602086013561445b81613f19565b600181811c908216806147dc57607f821691505b6020821081036147fc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610db357600081815260208120601f850160051c810160208610156148295750805b601f850160051c820191505b818110156109eb57828155600101614835565b81516001600160401b0381111561486157614861613e45565b6148758161486f84546147c8565b84614802565b602080601f8311600181146148aa57600084156148925750858301515b600019600386901b1c1916600185901b1785556109eb565b600085815260208120601f198616915b828110156148d9578886015182559484019460019091019084016148ba565b50858210156148f75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000614944604083018587614907565b9050826020830152949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016149925761499261496a565b5060010190565b6020808252600290820152611a9b60f11b604082015260600190565b600082516149c78184602087016140db565b9190910192915050565b602080825260029082015261353360f01b604082015260600190565b6000602082840312156149ff57600080fd5b81516001600160401b03811115614a1557600080fd5b8201601f81018413614a2657600080fd5b8051614a34613ecf82613f92565b818152856020838501011115614a4957600080fd5b614a5a8260208301602086016140db565b95945050505050565b602080825260029082015261353560f01b604082015260600190565b81810381811115610b1557610b1561496a565b634e487b7160e01b600052603160045260246000fd5b604081526000614abb60408301856140ff565b90508260208301529392505050565b600060208284031215614adc57600080fd5b8151611bd781613f19565b6020808252600290820152611a9960f11b604082015260600190565b8281526040602082015260006112c360408301846140ff565b828152606060208201526000614b3560608301846140ff565b828103604084015260008152602081019150509392505050565b60018060a01b0385168152836020820152608060408201526000614b7660808301856140ff565b8281036060840152614b8881856140ff565b979650505050505050565b6000610100808352614ba88184018c8e614907565b602084018b90526001600160a01b038a8116604086015289811660608601528816608085015260a0840187905283810360c08501529050614be981866140ff565b905082810360e0840152614bfd81856140ff565b9c9b505050505050505050505050565b602080825260029082015261035360f41b604082015260600190565b6020808252600290820152610d4d60f21b604082015260600190565b602080825260029082015261353760f01b604082015260600190565b80820180821115610b1557610b1561496a565b600082614c9157634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615614cb057614cb061496a565b50029056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205cf5517dca73d781329c4527ec52d9a9d1ff50b2ff7a28ca63e5ac9dff20a17d64736f6c63430008100033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103175760003560e01c8063010648ca1461031c57806305494afa1461033157806306fdde0314610344578063095ea7b3146103625780630a4e4f2214610385578063103ef9e11461038d57806314d1e62f146103a0578063168ecec5146103b357806316e1aed4146103c657806317ec83ca146103d957806318160ddd146104255780631d43e1c01461042d57806323b872dd14610435578063249cb3fa146104485780632535f7621461045b57806326ab56501461046e5780632f1cae85146104765780633092afd51461048757806330e828031461049a578063313ce567146104cd5780634c783bf5146104dc57806352ebf263146104ec578063556f0dc7146104ff57806362eb0068146105075780636572974f1461051a57806367c849191461052d57806369598efe146105405780636c30d170146105555780636d77cad61461055d5780636fd00b341461057057806370a0823114610578578063715018a6146105a1578063740ab8f4146105a95780637cc0c3a7146105bc5780638357839e146105d1578063861ed3ea146105e4578063895d7386146103445780638c0dee9c146105f75780638da5cb5b1461060a578063933964c71461061f578063959b8c3f1461063257806395d89b41146105705780639675193c14610645578063983b2d5614610658578063986502751461066b57806398ddcec7146106735780639fa5f50b14610686578063a26734dc1461068e578063a6f4f105146106ae578063a8082cb0146106c1578063a9059cbb146106c9578063aa271e1a146106dc578063b10d6b41146106ef578063b6363cf214610711578063bb3acde914610724578063bb54f8c314610737578063bcfdc0cf1461074a578063c350184814610752578063ca281fd914610765578063dd62ed3e1461076d578063e77c646d146107a6578063e83c43f5146107b9578063ea74838a146107c1578063ec9a6e87146107d4578063ee532f31146107e7578063f2fde38b146107fa578063f3d490db1461080d578063f698da2514610820578063fad8b32a14610828575b600080fd5b61032f61032a366004613df3565b61083b565b005b61032f61033f36600461400a565b610974565b61034c6109f3565b604051610359919061412b565b60405180910390f35b61037561037036600461413e565b610a85565b6040519015158152602001610359565b61032f610b1b565b61032f61039b36600461416a565b610c11565b6103756103ae36600461419a565b610c75565b61032f6103c136600461416a565b610d0d565b61032f6103d4366004614216565b610d6e565b6104176103e7366004614261565b60009283526018602090815260408085206001600160a01b03948516865282528085209290931684525290205490565b604051908152602001610359565b600754610417565b61034c610db8565b6103756104433660046142a3565b610dd3565b61041761045636600461416a565b610ef5565b61032f6104693660046142d3565b610f54565b61034c610f9d565b60085462010000900460ff16610375565b61032f61049536600461432e565b611025565b6104176104a836600461416a565b6001600160a01b03166000908152601360209081526040808320938352929052205490565b60405160128152602001610359565b600854610100900460ff16610375565b61032f6104fa36600461400a565b61105d565b600654610417565b61032f61051536600461434b565b611090565b61032f610528366004614385565b6110e1565b61032f61053b366004614431565b6111b2565b610548611249565b604051610359919061449a565b61032f6112a0565b61037561056b366004614261565b6112b6565b61034c6112cb565b61041761058636600461432e565b6001600160a01b031660009081526009602052604090205490565b61032f6112da565b6105486105b736600461432e565b6112ee565b6105c461135a565b60405161035991906144de565b61032f6105df36600461432e565b6113bb565b6105c46105f236600461451f565b6113e5565b610417610605366004614538565b611450565b6106126115f5565b60405161035991906145df565b61032f61062d366004614608565b611604565b61032f61064036600461432e565b61161a565b61032f6106533660046142d3565b611688565b61032f61066636600461432e565b6117c4565b61032f6117f9565b61032f610681366004614431565b611802565b610548611988565b61041761069c36600461451f565b60009081526010602052604090205490565b61032f6106bc36600461463d565b6119de565b610417611a2b565b6103756106d736600461413e565b611ab8565b6103756106ea36600461432e565b611adf565b6107026106fd36600461451f565b611aec565b604051610359939291906146c3565b61037561071f3660046146e8565b611bcb565b61032f6107323660046142d3565b611bde565b61032f610745366004614385565b611cb5565b610548611d6c565b61032f61076036600461451f565b611dc2565b61032f612098565b61041761077b3660046146e8565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b61032f6107b4366004614716565b6120ad565b6106126120ef565b61032f6107cf366004614754565b612166565b61032f6107e2366004614754565b6121aa565b61032f6107f5366004614795565b6121be565b61032f61080836600461432e565b6122fb565b61041761081b366004614431565b612371565b6104176123cf565b61032f61083636600461432e565b6123d9565b3360009081526017602052604090205460ff1661085757600080fd5b604051806060016040528084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602080830185905242604093840152878252600b905220815181906108bf9082614848565b506020820151816001015560408201518160020155905050600c60008281526020019081526020016000205460000361093257600d80546001810182557fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb501829055546000828152600c60205260409020555b837fb4c22d60cd550a815744f04e3ff5278bf19684565ee00e2b084041b6024bd6f684848460405161096693929190614930565b60405180910390a250505050565b60005b84518110156109eb576109d986828151811061099557610995614954565b6020026020010151338784815181106109b0576109b0614954565b60200260200101518785815181106109ca576109ca614954565b602002602001015187876125b7565b806109e381614980565b915050610977565b505050505050565b606060048054610a02906147c8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2e906147c8565b8015610a7b5780601f10610a5057610100808354040283529160200191610a7b565b820191906000526020600020905b815481529060010190602001808311610a5e57829003601f168201915b5050505050905090565b60006001600160a01b038316610ab65760405162461bcd60e51b8152600401610aad90614999565b60405180910390fd5b336000818152600a602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b60006016600081548110610b3157610b31614954565b60009182526020822001546040805160018082528183019092526001600160a01b0390921693508160200160208202803683370190505090506000610b746120ef565b90508082600081518110610b8a57610b8a614954565b60200260200101906001600160a01b031690816001600160a01b031681525050610bb382612687565b806001600160a01b0316836001600160a01b0316610bcf6112cb565b604051610bdc91906149b5565b604051908190038120907fddf698a82db69118eb57511894eba2074acdc5cdf75459415afe7386360314a290600090a4505050565b33600081815260196020908152604080832086845282528083206001600160a01b0386168085529252808320805460ff1916600117905551909185917f3646a897c70797ecc134b0adc32f471b07bf1d6f451133b0384badab531e3fd69190a45050565b60006001600160a01b038316610c9d5760405162461bcd60e51b8152600401610aad90614999565b6000848152601860209081526040808320338085529083528184206001600160a01b038816808652908452938290208690559051858152909187917ff061499aa77c2f6f5e25e34955a06623705344a88256cc861a121ec0bce5cfec910160405180910390a45060019392505050565b33600081815260196020908152604080832086845282528083206001600160a01b0386168085529252808320805460ff1916905551909185917f3b287c4f1bab4df949b33bceacef984f544dc5d5479930d00e4ee8c9d8dd96f29190a45050565b610d76612770565b610db3838383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127cf92505050565b505050565b6040805180820190915260018152603160f81b602082015290565b6000610ddf33856128f2565b80610e0d57506001600160a01b0384166000908152600a602090815260408083203384529091529020548211155b610e295760405162461bcd60e51b8152600401610aad906149d1565b6001600160a01b0384166000908152600a602090815260408083203384529091529020548211610eaa576001600160a01b0384166000908152600a60209081526040808320338452909152902054610e819083612971565b6001600160a01b0385166000908152600a60209081526040808320338452909152902055610ecf565b6001600160a01b0384166000908152600a602090815260408083203384529091528120555b610eeb338585856040518060200160405280600081525061297d565b5060019392505050565b60008281526001602052604081205460ff1615610f4c5760405173455243313832305f4143434550545f4d4147494360601b6020820152603401604051602081830303815290604052805190602001209050610b15565b506000610b15565b610f973333868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061297d92505050565b50505050565b60606000610fa96120ef565b601c5460405163039dfdcd60e21b81529192506001600160a01b031690630e77f73490610fda9084906004016145df565b600060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261101f91908101906149ed565b91505090565b61102e33611adf565b8061104857503361103d6115f5565b6001600160a01b0316145b61105157600080fd5b61105a81612ac5565b50565b60005b84518110156109eb5761107e86828151811061099557610995614954565b8061108881614980565b915050611060565b610f978433338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080516020810190915290815292506125b7915050565b6110ea33611adf565b806111045750336110f96115f5565b6001600160a01b0316145b61110d57600080fd5b60085462010000900460ff166111355760405162461bcd60e51b8152600401610aad90614a63565b60005b83518110156111ab5761119985828151811061115657611156614954565b60200260200101513386848151811061117157611171614954565b602002602001015186858151811061118b5761118b614954565b602002602001015186612b07565b806111a381614980565b915050611138565b5050505050565b6111bb33611adf565b806111d55750336111ca6115f5565b6001600160a01b0316145b6111de57600080fd5b60085462010000900460ff166112065760405162461bcd60e51b8152600401610aad90614a63565b6111ab8533868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b0792505050565b6060600e805480602002602001604051908101604052809291908181526020018280548015610a7b57602002820191906000526020600020905b815481526020019060010190808311611283575050505050905090565b6112a8612770565b6008805462ff000019169055565b60006112c3848484612bb1565b949350505050565b606060058054610a02906147c8565b6112e2612770565b6112ec6000612c3a565b565b6001600160a01b03811660009081526011602090815260409182902080548351818402810184019094528084526060939283018282801561134e57602002820191906000526020600020905b81548152602001906001019080831161133a575b50505050509050919050565b60606016805480602002602001604051908101604052809291908181526020018280548015610a7b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611394575050505050905090565b6113c3612770565b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152601a602090815260409182902080548351818402810184019094528084526060939283018282801561134e57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114275750505050509050919050565b600061145d89338a612bb1565b80611492575060008981526018602090815260408083206001600160a01b038c16845282528083203384529091529020548611155b6114ae5760405162461bcd60e51b8152600401610aad906149d1565b60008981526018602090815260408083206001600160a01b038c168452825280832033845290915290205486116115445760008981526018602090815260408083206001600160a01b038c16845282528083203384529091529020546115149087612971565b60008a81526018602090815260408083206001600160a01b038d1684528252808320338452909152902055611570565b60008981526018602090815260408083206001600160a01b038c16845282528083203384529091528120555b6115e889338a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8e018190048102820181019092528c815292508c91508b9081908401838280828437600092019190915250612c8a92505050565b9998505050505050505050565b6000546001600160a01b031690565b61160c612770565b6116168282612de2565b5050565b336001600160a01b0382160361162f57600080fd5b6001600160a01b0381166000818152601560209081526040808320338085529252808320805460ff19166001179055519092917ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f991a350565b61169233856128f2565b806116c057506001600160a01b0384166000908152600a602090815260408083203384529091529020548311155b6116dc5760405162461bcd60e51b8152600401610aad906149d1565b6001600160a01b0384166000908152600a60209081526040808320338452909152902054831161175d576001600160a01b0384166000908152600a602090815260408083203384529091529020546117349084612971565b6001600160a01b0385166000908152600a60209081526040808320338452909152902055611782565b6001600160a01b0384166000908152600a602090815260408083203384529091528120555b610f9733858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e5392505050565b6117cd33611adf565b806117e75750336117dc6115f5565b6001600160a01b0316145b6117f057600080fd5b61105a81612f90565b6112ec33612ac5565b61180d853386612bb1565b80611842575060008581526018602090815260408083206001600160a01b038816845282528083203384529091529020548311155b6118735760405162461bcd60e51b815260206004820152600260248201526106a760f31b6044820152606401610aad565b60008581526018602090815260408083206001600160a01b0388168452825280832033845290915290205483116119095760008581526018602090815260408083206001600160a01b038816845282528083203384529091529020546118d99084612971565b60008681526018602090815260408083206001600160a01b03891684528252808320338452909152902055611935565b60008581526018602090815260408083206001600160a01b038816845282528083203384529091528120555b6111ab853386866040518060200160405280600081525087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506125b792505050565b6060600d805480602002602001604051908101604052809291908181526020018280548015610a7b5760200282019190600052602060002090815481526020019060010190808311611283575050505050905090565b6119e6612770565b6109eb8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250879150869050612fd2565b600046817f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611a586109f3565b80519060200120611a67610db8565b80516020918201206040805192830194909452928101919091526060810191909152608081018390523060a082015260c00160408051601f1981840301815291905280516020909101209392505050565b6000611ad6333385856040518060200160405280600081525061297d565b50600192915050565b6000610b1560028361308e565b6000818152600b602052604081208054606092918291611b0b906147c8565b9050600003611b1957600080fd5b6000848152600b602052604090206001810154600282015482548390611b3e906147c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611b6a906147c8565b8015611bb75780601f10611b8c57610100808354040283529160200191611bb7565b820191906000526020600020905b815481529060010190602001808311611b9a57829003601f168201915b505050505092509250925092509193909250565b6000611bd783836128f2565b9392505050565b611be733611adf565b80611c01575033611bf66115f5565b6001600160a01b0316145b611c0a57600080fd5b60085462010000900460ff16611c325760405162461bcd60e51b8152600401610aad90614a63565b601454600003611c545760405162461bcd60e51b8152600401610aad90614a63565b610f976014600081548110611c6b57611c6b614954565b906000526020600020015433868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b0792505050565b60005b83518110156111ab57600060096000868481518110611cd957611cd9614954565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403611d455760405162461bcd60e51b81526020600482015260136024820152724e6f206e6577207368617265686f6c6465727360681b6044820152606401610aad565b611d5a85828151811061115657611156614954565b80611d6481614980565b915050611cb8565b60606014805480602002602001604051908101604052809291908181526020018280548015610a7b5760200282019190600052602060002090815481526020019060010190808311611283575050505050905090565b3360009081526017602052604090205460ff16611e105760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610aad565b6000818152600b602052604090208054611e29906147c8565b9050600003611e725760405162461bcd60e51b8152602060048201526015602482015274111bd8dd5b595b9d08191bd95cdb9d08195e1a5cdd605a1b6044820152606401610aad565b6000818152600b6020526040808220815160608101909252805482908290611e99906147c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec5906147c8565b8015611f125780601f10611ee757610100808354040283529160200191611f12565b820191906000526020600020905b815481529060010190602001808311611ef557829003601f168201915b505050505081526020016001820154815260200160028201548152505090506000600c60008360200151815260200190815260200160002054905060008111611f8d5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610aad565b600d805460009190611fa190600190614a7f565b81548110611fb157611fb1614954565b9060005260206000200154905080600d600184611fce9190614a7f565b81548110611fde57611fde614954565b6000918252602080832090910192909255828152600c90915260409020829055600d80548061200f5761200f614a92565b600082815260208082208301600019908101839055909201909255848101518252600c81526040808320839055868352600b9091528120906120518282613cbc565b506000600182018190556002909101558251602084015160405186927f3d9bba27d3e360d8c80645beed7e991454a8271bf6f269a24f7782be0f0d06549261096692614aa8565b6120a0612770565b6008805461ff0019169055565b610db333338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e5392505050565b601c546040516359fa131b60e01b81526000916001600160a01b0316906359fa131b906121209030906004016145df565b602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190614aca565b905090565b61216e612770565b61161682828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061268792505050565b6121b2612770565b610db360148383613cf6565b6121c833866128f2565b806121f657506001600160a01b0385166000908152600a602090815260408083203384529091529020548311155b6122125760405162461bcd60e51b8152600401610aad906149d1565b6001600160a01b0385166000908152600a602090815260408083203384529091529020548311612293576001600160a01b0385166000908152600a6020908152604080832033845290915290205461226a9084612971565b6001600160a01b0386166000908152600a602090815260408083203384529091529020556122b8565b6001600160a01b0385166000908152600a602090815260408083203384529091528120555b6111ab3386868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061297d92505050565b612303612770565b6001600160a01b0381166123685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aad565b61105a81612c3a565b60006123c5863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612c8a915050565b9695505050505050565b6000612161613111565b336001600160a01b038216036123ee57600080fd5b6001600160a01b0381166000818152601560209081526040808320338085529252808320805460ff19169055519092917f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa191a350565b60008260405160200161245791906149b5565b60408051808303601f190181529082905280516020909101206329965a1d60e01b8252306004830152602482018190526001600160a01b03841660448301529150731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156124d157600080fd5b505af11580156124e5573d6000803e3d6000fd5b50505050505050565b60018060008360405160200161250491906149b5565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff191691151591909117905550565b612545828261308e565b156125925760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610aad565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b03841660009081526013602090815260408083208984529091529020548311156125fa5760405162461bcd60e51b8152600401610aad90614ae7565b61260a8686866000878787613134565b61261a86868660008787876131f6565b61262584878561327e565b61263185858585613540565b836001600160a01b0316856001600160a01b0316877fce306c3dbc4a497124b5a4f2be8388b41084c1d74663da27ecee1186c00239bf8685604051612677929190614b03565b60405180910390a4505050505050565b60005b6016548110156126f357600060176000601684815481106126ad576126ad614954565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055806126eb81614980565b91505061268a565b5060005b815181101561275c5760016017600084848151811061271857612718614954565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061275481614980565b9150506126f7565b508051611616906016906020840190613d41565b336127796115f5565b6001600160a01b0316146112ec5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aad565b60005b6000838152601a602052604090205481101561285b576000838152601b60209081526040808320601a909252822080548391908590811061281557612815614954565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061285381614980565b9150506127d2565b5060005b81518110156128d2576000838152601b6020526040812083516001929085908590811061288e5761288e614954565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806128ca81614980565b91505061285f565b506000828152601a602090815260409091208251610db392840190613d41565b6000816001600160a01b0316836001600160a01b0316148061293957506001600160a01b0380841660009081526015602090815260408083209386168352929052205460ff165b80611bd75750600854610100900460ff168015611bd7575050506001600160a01b031660009081526017602052604090205460ff1690565b6000611bd78284614a7f565b60145460000361299f5760405162461bcd60e51b8152600401610aad90614a63565b816000805b601454811015612aa6576001600160a01b038716600090815260136020526040812060148054919291849081106129dd576129dd614954565b90600052602060002001548152602001908152602001600020549150818311612a4557612a3b60148281548110612a1657612a16614954565b9060005260206000200154898989878960405180602001604052806000815250612c8a565b5060009250612aa6565b8115612a9457612a8660148281548110612a6157612a61614954565b9060005260206000200154898989868960405180602001604052806000815250612c8a565b50612a918284614a7f565b92505b80612a9e81614980565b9150506129a4565b5081156124e55760405162461bcd60e51b8152600401610aad90614ae7565b612ad06002826136b8565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b612b2685856000868686604051806020016040528060008152506131f6565b612b328484848461373a565b612b3d838684613863565b612b5c85856000868686604051806020016040528060008152506139a7565b826001600160a01b0316846001600160a01b0316867ff0ded82afbb1bb3ff3fc48cb2a26584aa84e4af0bf309c804ecdb94d0f6a98bb8585604051612ba2929190614b1c565b60405180910390a45050505050565b6000612bbd83836128f2565b80612bf557506001600160a01b03808316600090815260196020908152604080832088845282528083209387168352929052205460ff165b806112c35750600854610100900460ff1680156112c3575050506000918252601b602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03851660009081526013602090815260408083208a8452909152812054841115612ccd5760405162461bcd60e51b8152600401610aad90614ae7565b8151889015801590612ce157506040845110155b15612cf357612cf08985613a2f565b90505b612d0289898989898989613134565b612d11898989898989896131f6565b612d1c878a8761327e565b612d27878787613a5b565b612d32868287613863565b612d41818989898989896139a7565b856001600160a01b0316876001600160a01b03168a7fff4e9a26af4eb73b8bacfaa4abd4fea03d9448e7b912dc5ff4019048875aa2d48b898989604051612d8b9493929190614b4f565b60405180910390a4888114612dd65780897f67c8ba31d2dd11f1384577b3405b04ed91eed1231e408432ad2458cab37b2fa187604051612dcd91815260200190565b60405180910390a35b98975050505050505050565b612e0e6040518060400160405280600a81526020016922a92199182a37b5b2b760b11b81525083612444565b612e3c6040518060400160405280600c81526020016b22a921989a18182a37b5b2b760a11b81525083612444565b8015611616576008805460ff191660011790555050565b601454600003612e755760405162461bcd60e51b8152600401610aad90614a63565b816000805b601454811015612f71576001600160a01b03861660009081526013602052604081206014805491929184908110612eb357612eb3614954565b90600052602060002001548152602001908152602001600020549150818311612f1957612f1060148281548110612eec57612eec614954565b906000526020600020015488888688604051806020016040528060008152506125b7565b60009250612f71565b612f5360148281548110612f2f57612f2f614954565b906000526020600020015488888588604051806020016040528060008152506125b7565b612f5d8284614a7f565b925080612f6981614980565b915050612e7a565b5081156109eb5760405162461bcd60e51b8152600401610aad90614ae7565b612f9b60028261253b565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6000612fde3086613ba2565b90506001600160a01b03811615801590612ff55750835b156130325761300381611adf565b156130115761301181612ac5565b6001600160a01b0381166000908152601760205260409020805460ff191690555b61303c8587612444565b82801561304f575061304d86611adf565b155b1561305d5761305d86612f90565b81156109eb576001600160a01b0386166000908152601760205260409020805460ff19166001179055505050505050565b60006001600160a01b0382166130f15760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610aad565b506001600160a01b03166000908152602091909152604090205460ff1690565b46600090815260036020526040812054801561312c57919050565b61101f613c51565b600061316b866040518060400160405280601381526020017222a921989a18182a37b5b2b739a9b2b73232b960691b815250613ba2565b90506001600160a01b038116156131ec5760405163139d569560e21b81526001600160a01b03821690634e755a54906131b99060009036908d908d908d908d908d908d908d90600401614b93565b600060405180830381600087803b1580156131d357600080fd5b505af11580156131e7573d6000803e3d6000fd5b505050505b5050505050505050565b6000613230306040518060400160405280601681526020017522a921989a18182a37b5b2b739ab30b634b230ba37b960511b815250613ba2565b90506001600160a01b038116156131ec57604051632907d53b60e11b81526001600160a01b0382169063520faa76906131b99060009036908d908d908d908d908d908d908d90600401614b93565b6001600160a01b03831660009081526013602090815260408083208584529091529020546132ac9082612971565b6001600160a01b03841660009081526013602090815260408083208684528252808320939093556010905220546132e39082612971565b6000838152601060205260408120829055036133d1576000828152600f6020526040902054806133255760405162461bcd60e51b8152600401610aad90614c0d565b600e80546000919061333990600190614a7f565b8154811061334957613349614954565b9060005260206000200154905080600e6001846133669190614a7f565b8154811061337657613376614954565b6000918252602080832090910192909255828152600f90915260409020829055600e8054806133a7576133a7614a92565b600082815260208082208301600019908101839055909201909255858252600f9052604081205550505b6001600160a01b03831660009081526013602090815260408083208584529091528120549003610db3576001600160a01b03831660009081526012602090815260408083208584529091529020548061343c5760405162461bcd60e51b8152600401610aad90614c0d565b6001600160a01b0384166000908152601160205260408120805461346290600190614a7f565b8154811061347257613472614954565b60009182526020808320909101546001600160a01b03881683526011909152604090912090915081906134a6600185614a7f565b815481106134b6576134b6614954565b60009182526020808320909101929092556001600160a01b038716808252601283526040808320858452845280832086905590825260119092522080548061350057613500614a92565b6000828152602080822083016000199081018390559092019092556001600160a01b03871682526012815260408083208784529091528120555050505050565b60085460ff16156135635760405162461bcd60e51b8152600401610aad90614c29565b61356c82613c75565b6135885760405162461bcd60e51b8152600401610aad90614c0d565b6001600160a01b0383166135ae5760405162461bcd60e51b8152600401610aad90614999565b6001600160a01b0383166000908152600960205260409020548211156135e65760405162461bcd60e51b8152600401610aad90614ae7565b6001600160a01b0383166000908152600960205260409020546136099083612971565b6001600160a01b03841660009081526009602052604090205560075461362f9083612971565b600781905550826001600160a01b0316846001600160a01b03167fb7d0d6b60740753e9f16692a2f479472a1385aec2420fa43225b02f2ffa1afe7848460405161367a929190614b03565b60405180910390a36040518281526000906001600160a01b03851690600080516020614cb6833981519152906020015b60405180910390a350505050565b6136c2828261308e565b6137185760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610aad565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60085460ff161561375d5760405162461bcd60e51b8152600401610aad90614c29565b61376682613c75565b6137825760405162461bcd60e51b8152600401610aad90614c0d565b6001600160a01b0383166137a85760405162461bcd60e51b8152600401610aad90614c45565b6007546137b59083613c98565b6007556001600160a01b0383166000908152600960205260409020546137db9083613c98565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907f0e9905d62635f049c2f4e11678ebf9dc3d1f8c4a653e290759b772e47ba00d009061382f9086908690614b03565b60405180910390a36040518281526001600160a01b03841690600090600080516020614cb6833981519152906020016136aa565b8015610db3576001600160a01b038316600090815260126020908152604080832085845290915281205490036138d7576001600160a01b0383166000818152601160209081526040808320805460018101825581855283852001879055938352925460128252838320868452909152919020555b6001600160a01b03831660009081526013602090815260408083208584529091529020546139059082613c98565b6001600160a01b0384166000908152601360209081526040808320868452825280832093909355600f905290812054900361397a57600e80546001810182557fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd01839055546000838152600f60205260409020555b6000828152601060205260409020546139939082613c98565b600083815260106020526040902055505050565b60006139e18560405180604001604052806016815260200175115490cc4d0c0c151bdad95b9cd49958da5c1a595b9d60521b815250613ba2565b90506001600160a01b038116156131ec57604051637a325abb60e11b81526001600160a01b0382169063f464b576906131b99060009036908d908d908d908d908d908d908d90600401614b93565b60208101516000906000199060018101613a4f5760408401519250613a53565b8492505b505092915050565b60085460ff1615613a7e5760405162461bcd60e51b8152600401610aad90614c29565b613a8781613c75565b613aa35760405162461bcd60e51b8152600401610aad90614c0d565b6001600160a01b038216613ac95760405162461bcd60e51b8152600401610aad90614c45565b6001600160a01b038316600090815260096020526040902054811115613b015760405162461bcd60e51b8152600401610aad90614ae7565b6001600160a01b038316600090815260096020526040902054613b249082612971565b6001600160a01b038085166000908152600960205260408082209390935590841681522054613b539082613c98565b6001600160a01b038084166000818152600960205260409081902093909355915190851690600080516020614cb683398151915290613b959085815260200190565b60405180910390a3505050565b60008082604051602001613bb691906149b5565b60408051808303601f1901815290829052805160209091012063555ddc6560e11b82526001600160a01b0386166004830152602482018190529150731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613c2d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c39190614aca565b60004681613c5d611a2b565b60009283526003602052604090922082905550919050565b6006546000908290613c9190613c8b8382613ca4565b90613cb0565b1492915050565b6000611bd78284614c61565b6000611bd78284614c74565b6000611bd78284614c96565b508054613cc8906147c8565b6000825580601f10613cd8575050565b601f01602090049060005260206000209081019061105a9190613d96565b828054828255906000526020600020908101928215613d31579160200282015b82811115613d31578235825591602001919060010190613d16565b50613d3d929150613d96565b5090565b828054828255906000526020600020908101928215613d31579160200282015b82811115613d3157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613d61565b5b80821115613d3d5760008155600101613d97565b60008083601f840112613dbd57600080fd5b5081356001600160401b03811115613dd457600080fd5b602083019150836020828501011115613dec57600080fd5b9250929050565b60008060008060608587031215613e0957600080fd5b8435935060208501356001600160401b03811115613e2657600080fd5b613e3287828801613dab565b9598909750949560400135949350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613e8357613e83613e45565b604052919050565b60006001600160401b03821115613ea457613ea4613e45565b5060051b60200190565b600082601f830112613ebf57600080fd5b81356020613ed4613ecf83613e8b565b613e5b565b82815260059290921b84018101918181019086841115613ef357600080fd5b8286015b84811015613f0e5780358352918301918301613ef7565b509695505050505050565b6001600160a01b038116811461105a57600080fd5b600082601f830112613f3f57600080fd5b81356020613f4f613ecf83613e8b565b82815260059290921b84018101918181019086841115613f6e57600080fd5b8286015b84811015613f0e578035613f8581613f19565b8352918301918301613f72565b60006001600160401b03821115613fab57613fab613e45565b50601f01601f191660200190565b600082601f830112613fca57600080fd5b8135613fd8613ecf82613f92565b818152846020838601011115613fed57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561402257600080fd5b85356001600160401b038082111561403957600080fd5b61404589838a01613eae565b9650602088013591508082111561405b57600080fd5b61406789838a01613f2e565b9550604088013591508082111561407d57600080fd5b61408989838a01613eae565b9450606088013591508082111561409f57600080fd5b6140ab89838a01613fb9565b935060808801359150808211156140c157600080fd5b506140ce88828901613fb9565b9150509295509295909350565b60005b838110156140f65781810151838201526020016140de565b50506000910152565b600081518084526141178160208601602086016140db565b601f01601f19169290920160200192915050565b602081526000611bd760208301846140ff565b6000806040838503121561415157600080fd5b823561415c81613f19565b946020939093013593505050565b6000806040838503121561417d57600080fd5b82359150602083013561418f81613f19565b809150509250929050565b6000806000606084860312156141af57600080fd5b8335925060208401356141c181613f19565b929592945050506040919091013590565b60008083601f8401126141e457600080fd5b5081356001600160401b038111156141fb57600080fd5b6020830191508360208260051b8501011115613dec57600080fd5b60008060006040848603121561422b57600080fd5b8335925060208401356001600160401b0381111561424857600080fd5b614254868287016141d2565b9497909650939450505050565b60008060006060848603121561427657600080fd5b83359250602084013561428881613f19565b9150604084013561429881613f19565b809150509250925092565b6000806000606084860312156142b857600080fd5b83356142c381613f19565b925060208401356141c181613f19565b600080600080606085870312156142e957600080fd5b84356142f481613f19565b93506020850135925060408501356001600160401b0381111561431657600080fd5b61432287828801613dab565b95989497509550505050565b60006020828403121561434057600080fd5b8135611bd781613f19565b6000806000806060858703121561436157600080fd5b843593506020850135925060408501356001600160401b0381111561431657600080fd5b6000806000806080858703121561439b57600080fd5b84356001600160401b03808211156143b257600080fd5b6143be88838901613eae565b955060208701359150808211156143d457600080fd5b6143e088838901613f2e565b945060408701359150808211156143f657600080fd5b61440288838901613eae565b9350606087013591508082111561441857600080fd5b5061442587828801613fb9565b91505092959194509250565b60008060008060006080868803121561444957600080fd5b85359450602086013561445b81613f19565b93506040860135925060608601356001600160401b0381111561447d57600080fd5b61448988828901613dab565b969995985093965092949392505050565b6020808252825182820181905260009190848201906040850190845b818110156144d2578351835292840192918401916001016144b6565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156144d25783516001600160a01b0316835292840192918401916001016144fa565b60006020828403121561453157600080fd5b5035919050565b60008060008060008060008060c0898b03121561455457600080fd5b88359750602089013561456681613f19565b9650604089013561457681613f19565b95506060890135945060808901356001600160401b038082111561459957600080fd5b6145a58c838d01613dab565b909650945060a08b01359150808211156145be57600080fd5b506145cb8b828c01613dab565b999c989b5096995094979396929594505050565b6001600160a01b0391909116815260200190565b8035801515811461460357600080fd5b919050565b6000806040838503121561461b57600080fd5b823561462681613f19565b9150614634602084016145f3565b90509250929050565b60008060008060008060a0878903121561465657600080fd5b863561466181613f19565b955060208701356001600160401b0381111561467c57600080fd5b61468889828a01613dab565b909650945061469b9050604088016145f3565b92506146a9606088016145f3565b91506146b7608088016145f3565b90509295509295509295565b6060815260006146d660608301866140ff565b60208301949094525060400152919050565b600080604083850312156146fb57600080fd5b823561470681613f19565b9150602083013561418f81613f19565b60008060006040848603121561472b57600080fd5b8335925060208401356001600160401b0381111561474857600080fd5b61425486828701613dab565b6000806020838503121561476757600080fd5b82356001600160401b0381111561477d57600080fd5b614789858286016141d2565b90969095509350505050565b6000806000806000608086880312156147ad57600080fd5b85356147b881613f19565b9450602086013561445b81613f19565b600181811c908216806147dc57607f821691505b6020821081036147fc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610db357600081815260208120601f850160051c810160208610156148295750805b601f850160051c820191505b818110156109eb57828155600101614835565b81516001600160401b0381111561486157614861613e45565b6148758161486f84546147c8565b84614802565b602080601f8311600181146148aa57600084156148925750858301515b600019600386901b1c1916600185901b1785556109eb565b600085815260208120601f198616915b828110156148d9578886015182559484019460019091019084016148ba565b50858210156148f75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000614944604083018587614907565b9050826020830152949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016149925761499261496a565b5060010190565b6020808252600290820152611a9b60f11b604082015260600190565b600082516149c78184602087016140db565b9190910192915050565b602080825260029082015261353360f01b604082015260600190565b6000602082840312156149ff57600080fd5b81516001600160401b03811115614a1557600080fd5b8201601f81018413614a2657600080fd5b8051614a34613ecf82613f92565b818152856020838501011115614a4957600080fd5b614a5a8260208301602086016140db565b95945050505050565b602080825260029082015261353560f01b604082015260600190565b81810381811115610b1557610b1561496a565b634e487b7160e01b600052603160045260246000fd5b604081526000614abb60408301856140ff565b90508260208301529392505050565b600060208284031215614adc57600080fd5b8151611bd781613f19565b6020808252600290820152611a9960f11b604082015260600190565b8281526040602082015260006112c360408301846140ff565b828152606060208201526000614b3560608301846140ff565b828103604084015260008152602081019150509392505050565b60018060a01b0385168152836020820152608060408201526000614b7660808301856140ff565b8281036060840152614b8881856140ff565b979650505050505050565b6000610100808352614ba88184018c8e614907565b602084018b90526001600160a01b038a8116604086015289811660608601528816608085015260a0840187905283810360c08501529050614be981866140ff565b905082810360e0840152614bfd81856140ff565b9c9b505050505050505050505050565b602080825260029082015261035360f41b604082015260600190565b6020808252600290820152610d4d60f21b604082015260600190565b602080825260029082015261353760f01b604082015260600190565b80820180821115610b1557610b1561496a565b600082614c9157634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615614cb057614cb061496a565b50029056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205cf5517dca73d781329c4527ec52d9a9d1ff50b2ff7a28ca63e5ac9dff20a17d64736f6c63430008100033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/graph/abis/CapTableRegistry.json b/packages/graph/abis/CapTableRegistry.json deleted file mode 100644 index 24d9ab1..0000000 --- a/packages/graph/abis/CapTableRegistry.json +++ /dev/null @@ -1,692 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "CapTableRegistry", - "sourceName": "contracts/capTable/CapTableRegistry.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "authenticatedAddress", - "type": "address" - } - ], - "name": "AuthenticatedPerson", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "capTableAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "string", - "name": "id", - "type": "string" - } - ], - "name": "CapTableAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "capTableAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "string", - "name": "id", - "type": "string" - } - ], - "name": "CapTableRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ContractRevoked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "PersonAuthenticatedContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "OPERATOR_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "adr", - "type": "address" - }, - { - "internalType": "string", - "name": "id", - "type": "string" - } - ], - "name": "addCapTable", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_operatorAddress", - "type": "address" - }, - { - "internalType": "string", - "name": "_operatorName", - "type": "string" - } - ], - "name": "authenticateOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_operatorAddress", - "type": "address" - }, - { - "internalType": "string", - "name": "_operatorName", - "type": "string" - }, - { - "internalType": "string", - "name": "_did", - "type": "string" - } - ], - "name": "authenticateOperatorWithDID", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "changeAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_operatorAddress", - "type": "address" - }, - { - "internalType": "string", - "name": "_operatorName", - "type": "string" - } - ], - "name": "changeOperatorName", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timeValid", - "type": "uint256" - } - ], - "name": "checkAuthenticated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "checkAuthenticatedOnce", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getActiveCapTablesCount", - "outputs": [ - { - "internalType": "uint256", - "name": "activeCapTables", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "id", - "type": "string" - } - ], - "name": "getAddress", - "outputs": [ - { - "internalType": "address", - "name": "capTableAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapTableList", - "outputs": [ - { - "internalType": "address[]", - "name": "capTableList", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "adr", - "type": "address" - } - ], - "name": "getId", - "outputs": [ - { - "internalType": "string", - "name": "id", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "adr", - "type": "address" - } - ], - "name": "getOperatorDID", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "adr", - "type": "address" - } - ], - "name": "getOperatorForCapTable", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_operatorAddress", - "type": "address" - } - ], - "name": "getOperatorName", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getOperatorOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "adr", - "type": "address" - } - ], - "name": "getStatus", - "outputs": [ - { - "internalType": "uint256", - "name": "status", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "adr", - "type": "address" - } - ], - "name": "removeCapTable", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "revokeAuthenticationContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "revokeAuthenticationPerson", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "revokeOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "setAuthenticatedContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "setAuthenticatedPerson", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001c60003361004b565b6100467f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9293361004b565b6100ea565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166100e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100a53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611ca780620000fa6000396000f3fe608060405234801561001057600080fd5b506004361061016a5760003560e01c806301ffc9a71461016f5780630e77f734146101975780631302cd52146101b75780631a24cd8f146101cc578063248a9ca3146101df578063265967b4146102005780632f2ff15d1461021357806330ccebb51461022657806336568abe1461024f57806359fa131b146102625780635c7c363b1461028d57806365f68c89146102a05780636ceb121c146102b3578063757fa2a5146102c85780637f7fe058146102d05780638938119e146102fc5780638f2839701461030f57806391d148541461032257806391e6afa714610335578063936d76e314610348578063a0e0ce3d1461035b578063a217fddf1461036e578063b3cf6e5214610376578063bf40fac114610389578063d547741f1461039c578063e32313ab146103af578063f1801c99146103c2578063f4f3d37b146103d5578063f5b541a6146103e8578063fad8b32a146103fd575b600080fd5b61018261017d36600461164d565b610410565b60405190151581526020015b60405180910390f35b6101aa6101a5366004611693565b610447565b60405161018e91906116d2565b6101ca6101c536600461174d565b610521565b005b6101ca6101da36600461174d565b610562565b6101f26101ed36600461179f565b6107f8565b60405190815260200161018e565b6101ca61020e366004611693565b61080d565b6101ca6102213660046117b8565b6108b9565b6101f2610234366004611693565b6001600160a01b031660009081526008602052604090205490565b6101ca61025d3660046117b8565b6108d5565b610275610270366004611693565b610953565b6040516001600160a01b03909116815260200161018e565b6101ca61029b366004611693565b61099c565b6101aa6102ae366004611693565b610ac7565b6102bb610aee565b60405161018e91906117e4565b6005546101f2565b6102756102de366004611693565b6001600160a01b039081166000908152600160205260409020541690565b6101ca61030a366004611693565b610b50565b6101ca61031d366004611693565b610c9e565b6101826103303660046117b8565b610cb7565b6101ca610343366004611693565b610ce0565b6101ca610356366004611831565b610e15565b6101aa610369366004611693565b610e95565b6101f2600081565b6101ca61038436600461174d565b610ebc565b6102756103973660046118b1565b610ef1565b6101ca6103aa3660046117b8565b610f26565b6101ca6103bd366004611693565b610f42565b6101826103d0366004611693565b6111b8565b6101826103e33660046118f2565b61123b565b6101f2600080516020611c5283398151915281565b6101ca61040b366004611693565b61133c565b60006001600160e01b03198216637965db0b60e01b148061044157506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060610461600080516020611c5283398151915283610cb7565b61047a5760405180602001604052806000815250610441565b6001600160a01b0382166000908152600a60205260409020805461049d9061191c565b80601f01602080910402602001604051908101604052809291908181526020018280546104c99061191c565b80156105165780601f106104eb57610100808354040283529160200191610516565b820191906000526020600020905b8154815290600101906020018083116104f957829003601f168201915b505050505092915050565b6001600160a01b03831660009081526003602052604090206105448284836119cf565b5061055d600080516020611c52833981519152846108b9565b505050565b600080516020611c5283398151915261057a81611354565b60006001600160a01b031660078484604051610597929190611a88565b908152604051908190036020019020546001600160a01b0316146105fa5760405162461bcd60e51b8152602060048201526015602482015274696420697320616c6c726561647920696e2075736560581b60448201526064015b60405180910390fd5b6001600160a01b0384166106505760405162461bcd60e51b815260206004820152601e60248201527f616464726573732063616e6e6f74206265207a65726f2061646472657373000060448201526064016105f1565b6001600160a01b038416600090815260066020526040812080546106739061191c565b1591508190506106c25760405162461bcd60e51b815260206004820152601a6024820152796164647265737320697320616c6c726561647920696e2075736560301b60448201526064016105f1565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b03871617905560405185906007906107229087908790611a88565b908152604080516020928190038301902080546001600160a01b0319166001600160a01b0394851617905591871660009081526006909152206107668486836119cf565b506005805460010190556001600160a01b038516600090815260096020908152604080832080546001600160a01b0319163317905560089091529081902060029055516107b69085908590611a88565b604051908190038120906001600160a01b038716907f1f680ae2258d5672c8d8f3f2e4e5d4a4ee688f56e74c9ee8ef327c3d1205247390600090a35050505050565b60009081526020819052604090206001015490565b6001600160a01b0381811660009081526001602052604090205416331461089c5760405162461bcd60e51b815260206004820152603e60248201527f4f6e6c7920746865206f70657261746f7220746861742061757468656e74696360448201527f617465642074686520616464726573732063616e207265766f6b65206974000060648201526084016105f1565b6001600160a01b0316600090815260016020819052604082200155565b6108c2826107f8565b6108cb81611354565b61055d838361135e565b6001600160a01b03811633146109455760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105f1565b61094f82826113e2565b5050565b6001600160a01b03808216600090815260096020526040812054909116610988600080516020611c5283398151915282610cb7565b610993576000610995565b805b9392505050565b3360009081526001602081905260409091200154610a085760405162461bcd60e51b8152602060048201526024808201527f4d73672e73656e646572206e6565647320746f2062652061757468656e746963604482015263185d195960e21b60648201526084016105f1565b6001600160a01b038181166000908152600260205260409020541615610a705760405162461bcd60e51b815260206004820152601e60248201527f436f6e747261637420616c72656164792061757468656e74696361746564000060448201526064016105f1565b6001600160a01b03811660008181526002602052604080822080546001600160a01b0319163390811790915590519092917f6923f8bdded817154d389a68dd1653189da4bb64316742f2e8715f5666fe765291a350565b6001600160a01b038116600090815260066020526040902080546060919061049d9061191c565b60606004805480602002602001604051908101604052809291908181526020018280548015610b4657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b28575b5050505050905090565b600080516020611c52833981519152610b6881611354565b6001600160a01b038281166000908152600160205260409020541615610c26576001600160a01b03828116600090815260016020526040902054163314610c265760405162461bcd60e51b815260206004820152604660248201527f41206e6577206f70657261746f722063616e206e6f742061757468656e74696360448201527f61746520612077616c6c6574206f776e656420627920616e6f74686572206f7060648201526532b930ba37b960d11b608482015260a4016105f1565b6040805180820182523381524260208083019182526001600160a01b038681166000818152600193849052868120955186546001600160a01b03191693169290921785559251939091019290925591517fa9586a145b7f42b11f0f9c50b278e7859233b30d9908848bc7c43e3c3a6895c29190a25050565b610ca96000826108b9565b610cb4600033610f26565b50565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6001600160a01b03808216600090815260026020908152604080832054841680845260019092529091205490911633821480610d2457506001600160a01b03811633145b610da85760405162461bcd60e51b815260206004820152604960248201527f4f6e6c7920746865206f776e6572206f662074686520636f6e7472616374206f60448201527f722069742773206f70657261746f722063616e207265766f6b65206175746865606482015268373a34b1b0ba34b7b760b91b608482015260a4016105f1565b6001600160a01b038084166000818152600260205260408082205490519316927f23dd6441bb4f9d75ec0b57c0dcc3825318a042cb2b024bb8c89dfaf77dbe0e5a9190a350506001600160a01b0316600090815260026020526040902080546001600160a01b0319169055565b600080516020611c52833981519152610e2d81611354565b6001600160a01b0386166000908152600360205260409020610e508587836119cf565b50610e69600080516020611c52833981519152876108b9565b6001600160a01b0386166000908152600a60205260409020610e8c8385836119cf565b50505050505050565b6001600160a01b038116600090815260036020526040902080546060919061049d9061191c565b6000610ec781611354565b6001600160a01b0384166000908152600360205260409020610eea8385836119cf565b5050505050565b600060078383604051610f05929190611a88565b908152604051908190036020019020546001600160a01b0316905092915050565b610f2f826107f8565b610f3881611354565b61055d83836113e2565b600080516020611c52833981519152610f5a81611354565b6001600160a01b03821660009081526006602052604081208054610f7d9061191c565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa99061191c565b8015610ff65780601f10610fcb57610100808354040283529160200191610ff6565b820191906000526020600020905b815481529060010190602001808311610fd957829003601f168201915b5050505050905060006001600160a01b03166007826040516110189190611a98565b908152604051908190036020019020546001600160a01b03160361107c5760405162461bcd60e51b815260206004820152601b60248201527a1b9bc81859191c995cdcc81c9959da5cdd195c9959081bdb881a59602a1b60448201526064016105f1565b80511580156110cb5760405162461bcd60e51b815260206004820152601b60248201527a6e6f2069642072656769737465726564206f6e206164647265737360281b60448201526064016105f1565b60006007836040516110dd9190611a98565b908152604080516020928190038301812080546001600160a01b0319166001600160a01b0395861617905582810182526000808252938816845260069092529091209061112a9082611ab4565b50600580546000190190556001600160a01b038416600090815260096020908152604080832080546001600160a01b03191690556008909152908190206004905551611177908390611a98565b604051908190038120906001600160a01b038616907f354a20d8f57c2c26bc5615304de4d496a4b210244ad6f04f55f67e035acc904290600090a350505050565b6000806111d3600080516020611c5283398151915284610cb7565b806111e457506111e4600084610cb7565b6001600160a01b03848116600081815260026020908152604080832054600192839052922001549394509091161515911515901582806112215750815b806112295750835b806112315750805b9695505050505050565b6000611255600080516020611c5283398151915284610cb7565b806112665750611266600084610cb7565b1561127357506001610441565b6001600160a01b0383811660009081526002602052604090205416156112cd576001600160a01b0380841660009081526002602090815260408083205490931682526001908190529190200154156112cd57506001610441565b6001600160a01b0383166000908152600160208190526040909120015415611333576001600160a01b038316600090815260016020819052604082200154906113168483611b83565b90506000808311801561132857508142105b935061044192505050565b50600092915050565b610cb4600080516020611c5283398151915282610f26565b610cb48133611447565b6113688282610cb7565b61094f576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561139e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6113ec8282610cb7565b1561094f576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6114518282610cb7565b61094f5761145e816114a0565b6114698360206114b2565b60405160200161147a929190611b96565b60408051601f198184030181529082905262461bcd60e51b82526105f1916004016116d2565b60606104416001600160a01b03831660145b606060006114c1836002611c05565b6114cc906002611b83565b6001600160401b038111156114e3576114e3611956565b6040519080825280601f01601f19166020018201604052801561150d576020820181803683370190505b509050600360fc1b8160008151811061152857611528611c24565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061155757611557611c24565b60200101906001600160f81b031916908160001a905350600061157b846002611c05565b611586906001611b83565b90505b60018111156115fe576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106115ba576115ba611c24565b1a60f81b8282815181106115d0576115d0611c24565b60200101906001600160f81b031916908160001a90535060049490941c936115f781611c3a565b9050611589565b5083156109955760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105f1565b60006020828403121561165f57600080fd5b81356001600160e01b03198116811461099557600080fd5b80356001600160a01b038116811461168e57600080fd5b919050565b6000602082840312156116a557600080fd5b61099582611677565b60005b838110156116c95781810151838201526020016116b1565b50506000910152565b60208152600082518060208401526116f18160408501602087016116ae565b601f01601f19169190910160400192915050565b60008083601f84011261171757600080fd5b5081356001600160401b0381111561172e57600080fd5b60208301915083602082850101111561174657600080fd5b9250929050565b60008060006040848603121561176257600080fd5b61176b84611677565b925060208401356001600160401b0381111561178657600080fd5b61179286828701611705565b9497909650939450505050565b6000602082840312156117b157600080fd5b5035919050565b600080604083850312156117cb57600080fd5b823591506117db60208401611677565b90509250929050565b6020808252825182820181905260009190848201906040850190845b818110156118255783516001600160a01b031683529284019291840191600101611800565b50909695505050505050565b60008060008060006060868803121561184957600080fd5b61185286611677565b945060208601356001600160401b038082111561186e57600080fd5b61187a89838a01611705565b9096509450604088013591508082111561189357600080fd5b506118a088828901611705565b969995985093965092949392505050565b600080602083850312156118c457600080fd5b82356001600160401b038111156118da57600080fd5b6118e685828601611705565b90969095509350505050565b6000806040838503121561190557600080fd5b61190e83611677565b946020939093013593505050565b600181811c9082168061193057607f821691505b60208210810361195057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561055d57600081815260208120601f850160051c810160208610156119935750805b601f850160051c820191505b818110156119b25782815560010161199f565b505050505050565b600019600383901b1c191660019190911b1790565b6001600160401b038311156119e6576119e6611956565b6119fa836119f4835461191c565b8361196c565b6000601f841160018114611a285760008515611a165750838201355b611a2086826119ba565b845550610eea565b600083815260209020601f19861690835b82811015611a595786850135825560209485019460019092019101611a39565b5086821015611a765760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183823760009101908152919050565b60008251611aaa8184602087016116ae565b9190910192915050565b81516001600160401b03811115611acd57611acd611956565b611ae181611adb845461191c565b8461196c565b602080601f831160018114611b105760008415611afe5750858301515b611b0885826119ba565b8655506119b2565b600085815260208120601f198616915b82811015611b3f57888601518255948401946001909101908401611b20565b5085821015611b5d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044157610441611b6d565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611bc88160178501602088016116ae565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611bf98160288401602088016116ae565b01602801949350505050565b6000816000190483118215151615611c1f57611c1f611b6d565b500290565b634e487b7160e01b600052603260045260246000fd5b600081611c4957611c49611b6d565b50600019019056fe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a26469706673582212209c0969a2e541138027f7f309636a3ae9f0679dd7603f4b5561221bb49bbe7d2b64736f6c63430008100033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016a5760003560e01c806301ffc9a71461016f5780630e77f734146101975780631302cd52146101b75780631a24cd8f146101cc578063248a9ca3146101df578063265967b4146102005780632f2ff15d1461021357806330ccebb51461022657806336568abe1461024f57806359fa131b146102625780635c7c363b1461028d57806365f68c89146102a05780636ceb121c146102b3578063757fa2a5146102c85780637f7fe058146102d05780638938119e146102fc5780638f2839701461030f57806391d148541461032257806391e6afa714610335578063936d76e314610348578063a0e0ce3d1461035b578063a217fddf1461036e578063b3cf6e5214610376578063bf40fac114610389578063d547741f1461039c578063e32313ab146103af578063f1801c99146103c2578063f4f3d37b146103d5578063f5b541a6146103e8578063fad8b32a146103fd575b600080fd5b61018261017d36600461164d565b610410565b60405190151581526020015b60405180910390f35b6101aa6101a5366004611693565b610447565b60405161018e91906116d2565b6101ca6101c536600461174d565b610521565b005b6101ca6101da36600461174d565b610562565b6101f26101ed36600461179f565b6107f8565b60405190815260200161018e565b6101ca61020e366004611693565b61080d565b6101ca6102213660046117b8565b6108b9565b6101f2610234366004611693565b6001600160a01b031660009081526008602052604090205490565b6101ca61025d3660046117b8565b6108d5565b610275610270366004611693565b610953565b6040516001600160a01b03909116815260200161018e565b6101ca61029b366004611693565b61099c565b6101aa6102ae366004611693565b610ac7565b6102bb610aee565b60405161018e91906117e4565b6005546101f2565b6102756102de366004611693565b6001600160a01b039081166000908152600160205260409020541690565b6101ca61030a366004611693565b610b50565b6101ca61031d366004611693565b610c9e565b6101826103303660046117b8565b610cb7565b6101ca610343366004611693565b610ce0565b6101ca610356366004611831565b610e15565b6101aa610369366004611693565b610e95565b6101f2600081565b6101ca61038436600461174d565b610ebc565b6102756103973660046118b1565b610ef1565b6101ca6103aa3660046117b8565b610f26565b6101ca6103bd366004611693565b610f42565b6101826103d0366004611693565b6111b8565b6101826103e33660046118f2565b61123b565b6101f2600080516020611c5283398151915281565b6101ca61040b366004611693565b61133c565b60006001600160e01b03198216637965db0b60e01b148061044157506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060610461600080516020611c5283398151915283610cb7565b61047a5760405180602001604052806000815250610441565b6001600160a01b0382166000908152600a60205260409020805461049d9061191c565b80601f01602080910402602001604051908101604052809291908181526020018280546104c99061191c565b80156105165780601f106104eb57610100808354040283529160200191610516565b820191906000526020600020905b8154815290600101906020018083116104f957829003601f168201915b505050505092915050565b6001600160a01b03831660009081526003602052604090206105448284836119cf565b5061055d600080516020611c52833981519152846108b9565b505050565b600080516020611c5283398151915261057a81611354565b60006001600160a01b031660078484604051610597929190611a88565b908152604051908190036020019020546001600160a01b0316146105fa5760405162461bcd60e51b8152602060048201526015602482015274696420697320616c6c726561647920696e2075736560581b60448201526064015b60405180910390fd5b6001600160a01b0384166106505760405162461bcd60e51b815260206004820152601e60248201527f616464726573732063616e6e6f74206265207a65726f2061646472657373000060448201526064016105f1565b6001600160a01b038416600090815260066020526040812080546106739061191c565b1591508190506106c25760405162461bcd60e51b815260206004820152601a6024820152796164647265737320697320616c6c726561647920696e2075736560301b60448201526064016105f1565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b03871617905560405185906007906107229087908790611a88565b908152604080516020928190038301902080546001600160a01b0319166001600160a01b0394851617905591871660009081526006909152206107668486836119cf565b506005805460010190556001600160a01b038516600090815260096020908152604080832080546001600160a01b0319163317905560089091529081902060029055516107b69085908590611a88565b604051908190038120906001600160a01b038716907f1f680ae2258d5672c8d8f3f2e4e5d4a4ee688f56e74c9ee8ef327c3d1205247390600090a35050505050565b60009081526020819052604090206001015490565b6001600160a01b0381811660009081526001602052604090205416331461089c5760405162461bcd60e51b815260206004820152603e60248201527f4f6e6c7920746865206f70657261746f7220746861742061757468656e74696360448201527f617465642074686520616464726573732063616e207265766f6b65206974000060648201526084016105f1565b6001600160a01b0316600090815260016020819052604082200155565b6108c2826107f8565b6108cb81611354565b61055d838361135e565b6001600160a01b03811633146109455760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105f1565b61094f82826113e2565b5050565b6001600160a01b03808216600090815260096020526040812054909116610988600080516020611c5283398151915282610cb7565b610993576000610995565b805b9392505050565b3360009081526001602081905260409091200154610a085760405162461bcd60e51b8152602060048201526024808201527f4d73672e73656e646572206e6565647320746f2062652061757468656e746963604482015263185d195960e21b60648201526084016105f1565b6001600160a01b038181166000908152600260205260409020541615610a705760405162461bcd60e51b815260206004820152601e60248201527f436f6e747261637420616c72656164792061757468656e74696361746564000060448201526064016105f1565b6001600160a01b03811660008181526002602052604080822080546001600160a01b0319163390811790915590519092917f6923f8bdded817154d389a68dd1653189da4bb64316742f2e8715f5666fe765291a350565b6001600160a01b038116600090815260066020526040902080546060919061049d9061191c565b60606004805480602002602001604051908101604052809291908181526020018280548015610b4657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b28575b5050505050905090565b600080516020611c52833981519152610b6881611354565b6001600160a01b038281166000908152600160205260409020541615610c26576001600160a01b03828116600090815260016020526040902054163314610c265760405162461bcd60e51b815260206004820152604660248201527f41206e6577206f70657261746f722063616e206e6f742061757468656e74696360448201527f61746520612077616c6c6574206f776e656420627920616e6f74686572206f7060648201526532b930ba37b960d11b608482015260a4016105f1565b6040805180820182523381524260208083019182526001600160a01b038681166000818152600193849052868120955186546001600160a01b03191693169290921785559251939091019290925591517fa9586a145b7f42b11f0f9c50b278e7859233b30d9908848bc7c43e3c3a6895c29190a25050565b610ca96000826108b9565b610cb4600033610f26565b50565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6001600160a01b03808216600090815260026020908152604080832054841680845260019092529091205490911633821480610d2457506001600160a01b03811633145b610da85760405162461bcd60e51b815260206004820152604960248201527f4f6e6c7920746865206f776e6572206f662074686520636f6e7472616374206f60448201527f722069742773206f70657261746f722063616e207265766f6b65206175746865606482015268373a34b1b0ba34b7b760b91b608482015260a4016105f1565b6001600160a01b038084166000818152600260205260408082205490519316927f23dd6441bb4f9d75ec0b57c0dcc3825318a042cb2b024bb8c89dfaf77dbe0e5a9190a350506001600160a01b0316600090815260026020526040902080546001600160a01b0319169055565b600080516020611c52833981519152610e2d81611354565b6001600160a01b0386166000908152600360205260409020610e508587836119cf565b50610e69600080516020611c52833981519152876108b9565b6001600160a01b0386166000908152600a60205260409020610e8c8385836119cf565b50505050505050565b6001600160a01b038116600090815260036020526040902080546060919061049d9061191c565b6000610ec781611354565b6001600160a01b0384166000908152600360205260409020610eea8385836119cf565b5050505050565b600060078383604051610f05929190611a88565b908152604051908190036020019020546001600160a01b0316905092915050565b610f2f826107f8565b610f3881611354565b61055d83836113e2565b600080516020611c52833981519152610f5a81611354565b6001600160a01b03821660009081526006602052604081208054610f7d9061191c565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa99061191c565b8015610ff65780601f10610fcb57610100808354040283529160200191610ff6565b820191906000526020600020905b815481529060010190602001808311610fd957829003601f168201915b5050505050905060006001600160a01b03166007826040516110189190611a98565b908152604051908190036020019020546001600160a01b03160361107c5760405162461bcd60e51b815260206004820152601b60248201527a1b9bc81859191c995cdcc81c9959da5cdd195c9959081bdb881a59602a1b60448201526064016105f1565b80511580156110cb5760405162461bcd60e51b815260206004820152601b60248201527a6e6f2069642072656769737465726564206f6e206164647265737360281b60448201526064016105f1565b60006007836040516110dd9190611a98565b908152604080516020928190038301812080546001600160a01b0319166001600160a01b0395861617905582810182526000808252938816845260069092529091209061112a9082611ab4565b50600580546000190190556001600160a01b038416600090815260096020908152604080832080546001600160a01b03191690556008909152908190206004905551611177908390611a98565b604051908190038120906001600160a01b038616907f354a20d8f57c2c26bc5615304de4d496a4b210244ad6f04f55f67e035acc904290600090a350505050565b6000806111d3600080516020611c5283398151915284610cb7565b806111e457506111e4600084610cb7565b6001600160a01b03848116600081815260026020908152604080832054600192839052922001549394509091161515911515901582806112215750815b806112295750835b806112315750805b9695505050505050565b6000611255600080516020611c5283398151915284610cb7565b806112665750611266600084610cb7565b1561127357506001610441565b6001600160a01b0383811660009081526002602052604090205416156112cd576001600160a01b0380841660009081526002602090815260408083205490931682526001908190529190200154156112cd57506001610441565b6001600160a01b0383166000908152600160208190526040909120015415611333576001600160a01b038316600090815260016020819052604082200154906113168483611b83565b90506000808311801561132857508142105b935061044192505050565b50600092915050565b610cb4600080516020611c5283398151915282610f26565b610cb48133611447565b6113688282610cb7565b61094f576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561139e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6113ec8282610cb7565b1561094f576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6114518282610cb7565b61094f5761145e816114a0565b6114698360206114b2565b60405160200161147a929190611b96565b60408051601f198184030181529082905262461bcd60e51b82526105f1916004016116d2565b60606104416001600160a01b03831660145b606060006114c1836002611c05565b6114cc906002611b83565b6001600160401b038111156114e3576114e3611956565b6040519080825280601f01601f19166020018201604052801561150d576020820181803683370190505b509050600360fc1b8160008151811061152857611528611c24565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061155757611557611c24565b60200101906001600160f81b031916908160001a905350600061157b846002611c05565b611586906001611b83565b90505b60018111156115fe576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106115ba576115ba611c24565b1a60f81b8282815181106115d0576115d0611c24565b60200101906001600160f81b031916908160001a90535060049490941c936115f781611c3a565b9050611589565b5083156109955760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105f1565b60006020828403121561165f57600080fd5b81356001600160e01b03198116811461099557600080fd5b80356001600160a01b038116811461168e57600080fd5b919050565b6000602082840312156116a557600080fd5b61099582611677565b60005b838110156116c95781810151838201526020016116b1565b50506000910152565b60208152600082518060208401526116f18160408501602087016116ae565b601f01601f19169190910160400192915050565b60008083601f84011261171757600080fd5b5081356001600160401b0381111561172e57600080fd5b60208301915083602082850101111561174657600080fd5b9250929050565b60008060006040848603121561176257600080fd5b61176b84611677565b925060208401356001600160401b0381111561178657600080fd5b61179286828701611705565b9497909650939450505050565b6000602082840312156117b157600080fd5b5035919050565b600080604083850312156117cb57600080fd5b823591506117db60208401611677565b90509250929050565b6020808252825182820181905260009190848201906040850190845b818110156118255783516001600160a01b031683529284019291840191600101611800565b50909695505050505050565b60008060008060006060868803121561184957600080fd5b61185286611677565b945060208601356001600160401b038082111561186e57600080fd5b61187a89838a01611705565b9096509450604088013591508082111561189357600080fd5b506118a088828901611705565b969995985093965092949392505050565b600080602083850312156118c457600080fd5b82356001600160401b038111156118da57600080fd5b6118e685828601611705565b90969095509350505050565b6000806040838503121561190557600080fd5b61190e83611677565b946020939093013593505050565b600181811c9082168061193057607f821691505b60208210810361195057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561055d57600081815260208120601f850160051c810160208610156119935750805b601f850160051c820191505b818110156119b25782815560010161199f565b505050505050565b600019600383901b1c191660019190911b1790565b6001600160401b038311156119e6576119e6611956565b6119fa836119f4835461191c565b8361196c565b6000601f841160018114611a285760008515611a165750838201355b611a2086826119ba565b845550610eea565b600083815260209020601f19861690835b82811015611a595786850135825560209485019460019092019101611a39565b5086821015611a765760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183823760009101908152919050565b60008251611aaa8184602087016116ae565b9190910192915050565b81516001600160401b03811115611acd57611acd611956565b611ae181611adb845461191c565b8461196c565b602080601f831160018114611b105760008415611afe5750858301515b611b0885826119ba565b8655506119b2565b600085815260208120601f198616915b82811015611b3f57888601518255948401946001909101908401611b20565b5085821015611b5d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044157610441611b6d565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611bc88160178501602088016116ae565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611bf98160288401602088016116ae565b01602801949350505050565b6000816000190483118215151615611c1f57611c1f611b6d565b500290565b634e487b7160e01b600052603260045260246000fd5b600081611c4957611c49611b6d565b50600019019056fe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a26469706673582212209c0969a2e541138027f7f309636a3ae9f0679dd7603f4b5561221bb49bbe7d2b64736f6c63430008100033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/graph/generated/CapTableRegistry/CapTable.ts b/packages/graph/generated/CapTableRegistry/CapTable.ts index dee89b5..583bbe1 100644 --- a/packages/graph/generated/CapTableRegistry/CapTable.ts +++ b/packages/graph/generated/CapTableRegistry/CapTable.ts @@ -114,32 +114,6 @@ export class AuthorizedOperatorByPartition__Params { } } -export class CaptableChangedFagsystem extends ethereum.Event { - get params(): CaptableChangedFagsystem__Params { - return new CaptableChangedFagsystem__Params(this); - } -} - -export class CaptableChangedFagsystem__Params { - _event: CaptableChangedFagsystem; - - constructor(event: CaptableChangedFagsystem) { - this._event = event; - } - - get orgnr(): Bytes { - return this._event.parameters[0].value.toBytes(); - } - - get oldFagsystem(): Address { - return this._event.parameters[1].value.toAddress(); - } - - get newFagsystem(): Address { - return this._event.parameters[2].value.toAddress(); - } -} - export class ChangedPartition extends ethereum.Event { get params(): ChangedPartition__Params { return new ChangedPartition__Params(this); @@ -1003,44 +977,6 @@ export class CapTable extends ethereum.SmartContract { ); } - getFagsystem(): Address { - let result = super.call("getFagsystem", "getFagsystem():(address)", []); - - return result[0].toAddress(); - } - - try_getFagsystem(): ethereum.CallResult
{ - let result = super.tryCall("getFagsystem", "getFagsystem():(address)", []); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toAddress()); - } - - getFagsystemDid(): string { - let result = super.call( - "getFagsystemDid", - "getFagsystemDid():(string)", - [] - ); - - return result[0].toString(); - } - - try_getFagsystemDid(): ethereum.CallResult { - let result = super.tryCall( - "getFagsystemDid", - "getFagsystemDid():(string)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toString()); - } - getOrgnr(): string { let result = super.call("getOrgnr", "getOrgnr():(string)", []); @@ -1071,6 +1007,29 @@ export class CapTable extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } + isAddedToRegistry(): boolean { + let result = super.call( + "isAddedToRegistry", + "isAddedToRegistry():(bool)", + [] + ); + + return result[0].toBoolean(); + } + + try_isAddedToRegistry(): ethereum.CallResult { + let result = super.tryCall( + "isAddedToRegistry", + "isAddedToRegistry():(bool)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBoolean()); + } + isControllable(): boolean { let result = super.call("isControllable", "isControllable():(bool)", []); @@ -1507,10 +1466,6 @@ export class ConstructorCall__Inputs { get defaultPartitions(): Array { return this._call.inputValues[4].value.toBytesArray(); } - - get capTableRegistry(): Address { - return this._call.inputValues[5].value.toAddress(); - } } export class ConstructorCall__Outputs { @@ -1695,6 +1650,36 @@ export class AuthorizeOperatorByPartitionCall__Outputs { } } +export class ConfirmAddedToRegistryCall extends ethereum.Call { + get inputs(): ConfirmAddedToRegistryCall__Inputs { + return new ConfirmAddedToRegistryCall__Inputs(this); + } + + get outputs(): ConfirmAddedToRegistryCall__Outputs { + return new ConfirmAddedToRegistryCall__Outputs(this); + } +} + +export class ConfirmAddedToRegistryCall__Inputs { + _call: ConfirmAddedToRegistryCall; + + constructor(call: ConfirmAddedToRegistryCall) { + this._call = call; + } + + get registryAddress(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class ConfirmAddedToRegistryCall__Outputs { + _call: ConfirmAddedToRegistryCall; + + constructor(call: ConfirmAddedToRegistryCall) { + this._call = call; + } +} + export class DomainSeparatorCall extends ethereum.Call { get inputs(): DomainSeparatorCall__Inputs { return new DomainSeparatorCall__Inputs(this); @@ -2361,36 +2346,6 @@ export class RevokeOperatorByPartitionCall__Outputs { } } -export class SetCapTableRegistryCall extends ethereum.Call { - get inputs(): SetCapTableRegistryCall__Inputs { - return new SetCapTableRegistryCall__Inputs(this); - } - - get outputs(): SetCapTableRegistryCall__Outputs { - return new SetCapTableRegistryCall__Outputs(this); - } -} - -export class SetCapTableRegistryCall__Inputs { - _call: SetCapTableRegistryCall; - - constructor(call: SetCapTableRegistryCall) { - this._call = call; - } - - get capTableRegistryAddress(): Address { - return this._call.inputValues[0].value.toAddress(); - } -} - -export class SetCapTableRegistryCall__Outputs { - _call: SetCapTableRegistryCall; - - constructor(call: SetCapTableRegistryCall) { - this._call = call; - } -} - export class SetControllersCall extends ethereum.Call { get inputs(): SetControllersCall__Inputs { return new SetControllersCall__Inputs(this); @@ -2892,29 +2847,3 @@ export class TransferWithDataCall__Outputs { this._call = call; } } - -export class UpdateFagsystemCall extends ethereum.Call { - get inputs(): UpdateFagsystemCall__Inputs { - return new UpdateFagsystemCall__Inputs(this); - } - - get outputs(): UpdateFagsystemCall__Outputs { - return new UpdateFagsystemCall__Outputs(this); - } -} - -export class UpdateFagsystemCall__Inputs { - _call: UpdateFagsystemCall; - - constructor(call: UpdateFagsystemCall) { - this._call = call; - } -} - -export class UpdateFagsystemCall__Outputs { - _call: UpdateFagsystemCall; - - constructor(call: UpdateFagsystemCall) { - this._call = call; - } -} diff --git a/packages/graph/generated/CapTableRegistry/CapTableRegistry.ts b/packages/graph/generated/CapTableRegistry/CapTableRegistry.ts index 5993ad9..10cb3b8 100644 --- a/packages/graph/generated/CapTableRegistry/CapTableRegistry.ts +++ b/packages/graph/generated/CapTableRegistry/CapTableRegistry.ts @@ -10,24 +10,6 @@ import { BigInt } from "@graphprotocol/graph-ts"; -export class AuthenticatedPerson extends ethereum.Event { - get params(): AuthenticatedPerson__Params { - return new AuthenticatedPerson__Params(this); - } -} - -export class AuthenticatedPerson__Params { - _event: AuthenticatedPerson; - - constructor(event: AuthenticatedPerson) { - this._event = event; - } - - get authenticatedAddress(): Address { - return this._event.parameters[0].value.toAddress(); - } -} - export class CapTableAdded extends ethereum.Event { get params(): CapTableAdded__Params { return new CapTableAdded__Params(this); @@ -72,50 +54,6 @@ export class CapTableRemoved__Params { } } -export class ContractRevoked extends ethereum.Event { - get params(): ContractRevoked__Params { - return new ContractRevoked__Params(this); - } -} - -export class ContractRevoked__Params { - _event: ContractRevoked; - - constructor(event: ContractRevoked) { - this._event = event; - } - - get contractAddress(): Address { - return this._event.parameters[0].value.toAddress(); - } - - get owner(): Address { - return this._event.parameters[1].value.toAddress(); - } -} - -export class PersonAuthenticatedContract extends ethereum.Event { - get params(): PersonAuthenticatedContract__Params { - return new PersonAuthenticatedContract__Params(this); - } -} - -export class PersonAuthenticatedContract__Params { - _event: PersonAuthenticatedContract; - - constructor(event: PersonAuthenticatedContract) { - this._event = event; - } - - get contractAddress(): Address { - return this._event.parameters[0].value.toAddress(); - } - - get owner(): Address { - return this._event.parameters[1].value.toAddress(); - } -} - export class RoleAdminChanged extends ethereum.Event { get params(): RoleAdminChanged__Params { return new RoleAdminChanged__Params(this); @@ -241,61 +179,6 @@ export class CapTableRegistry extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBytes()); } - checkAuthenticated(_address: Address, timeValid: BigInt): boolean { - let result = super.call( - "checkAuthenticated", - "checkAuthenticated(address,uint256):(bool)", - [ - ethereum.Value.fromAddress(_address), - ethereum.Value.fromUnsignedBigInt(timeValid) - ] - ); - - return result[0].toBoolean(); - } - - try_checkAuthenticated( - _address: Address, - timeValid: BigInt - ): ethereum.CallResult { - let result = super.tryCall( - "checkAuthenticated", - "checkAuthenticated(address,uint256):(bool)", - [ - ethereum.Value.fromAddress(_address), - ethereum.Value.fromUnsignedBigInt(timeValid) - ] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBoolean()); - } - - checkAuthenticatedOnce(_address: Address): boolean { - let result = super.call( - "checkAuthenticatedOnce", - "checkAuthenticatedOnce(address):(bool)", - [ethereum.Value.fromAddress(_address)] - ); - - return result[0].toBoolean(); - } - - try_checkAuthenticatedOnce(_address: Address): ethereum.CallResult { - let result = super.tryCall( - "checkAuthenticatedOnce", - "checkAuthenticatedOnce(address):(bool)", - [ethereum.Value.fromAddress(_address)] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBoolean()); - } - getActiveCapTablesCount(): BigInt { let result = super.call( "getActiveCapTablesCount", @@ -380,29 +263,6 @@ export class CapTableRegistry extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toString()); } - getOperatorDID(adr: Address): string { - let result = super.call( - "getOperatorDID", - "getOperatorDID(address):(string)", - [ethereum.Value.fromAddress(adr)] - ); - - return result[0].toString(); - } - - try_getOperatorDID(adr: Address): ethereum.CallResult { - let result = super.tryCall( - "getOperatorDID", - "getOperatorDID(address):(string)", - [ethereum.Value.fromAddress(adr)] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toString()); - } - getOperatorForCapTable(adr: Address): Address { let result = super.call( "getOperatorForCapTable", @@ -426,52 +286,6 @@ export class CapTableRegistry extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } - getOperatorName(_operatorAddress: Address): string { - let result = super.call( - "getOperatorName", - "getOperatorName(address):(string)", - [ethereum.Value.fromAddress(_operatorAddress)] - ); - - return result[0].toString(); - } - - try_getOperatorName(_operatorAddress: Address): ethereum.CallResult { - let result = super.tryCall( - "getOperatorName", - "getOperatorName(address):(string)", - [ethereum.Value.fromAddress(_operatorAddress)] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toString()); - } - - getOperatorOf(_address: Address): Address { - let result = super.call( - "getOperatorOf", - "getOperatorOf(address):(address)", - [ethereum.Value.fromAddress(_address)] - ); - - return result[0].toAddress(); - } - - try_getOperatorOf(_address: Address): ethereum.CallResult
{ - let result = super.tryCall( - "getOperatorOf", - "getOperatorOf(address):(address)", - [ethereum.Value.fromAddress(_address)] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toAddress()); - } - getRoleAdmin(role: Bytes): Bytes { let result = super.call("getRoleAdmin", "getRoleAdmin(bytes32):(bytes32)", [ ethereum.Value.fromFixedBytes(role) @@ -617,142 +431,6 @@ export class AddCapTableCall__Outputs { } } -export class AuthenticateOperatorCall extends ethereum.Call { - get inputs(): AuthenticateOperatorCall__Inputs { - return new AuthenticateOperatorCall__Inputs(this); - } - - get outputs(): AuthenticateOperatorCall__Outputs { - return new AuthenticateOperatorCall__Outputs(this); - } -} - -export class AuthenticateOperatorCall__Inputs { - _call: AuthenticateOperatorCall; - - constructor(call: AuthenticateOperatorCall) { - this._call = call; - } - - get _operatorAddress(): Address { - return this._call.inputValues[0].value.toAddress(); - } - - get _operatorName(): string { - return this._call.inputValues[1].value.toString(); - } -} - -export class AuthenticateOperatorCall__Outputs { - _call: AuthenticateOperatorCall; - - constructor(call: AuthenticateOperatorCall) { - this._call = call; - } -} - -export class AuthenticateOperatorWithDIDCall extends ethereum.Call { - get inputs(): AuthenticateOperatorWithDIDCall__Inputs { - return new AuthenticateOperatorWithDIDCall__Inputs(this); - } - - get outputs(): AuthenticateOperatorWithDIDCall__Outputs { - return new AuthenticateOperatorWithDIDCall__Outputs(this); - } -} - -export class AuthenticateOperatorWithDIDCall__Inputs { - _call: AuthenticateOperatorWithDIDCall; - - constructor(call: AuthenticateOperatorWithDIDCall) { - this._call = call; - } - - get _operatorAddress(): Address { - return this._call.inputValues[0].value.toAddress(); - } - - get _operatorName(): string { - return this._call.inputValues[1].value.toString(); - } - - get _did(): string { - return this._call.inputValues[2].value.toString(); - } -} - -export class AuthenticateOperatorWithDIDCall__Outputs { - _call: AuthenticateOperatorWithDIDCall; - - constructor(call: AuthenticateOperatorWithDIDCall) { - this._call = call; - } -} - -export class ChangeAdminCall extends ethereum.Call { - get inputs(): ChangeAdminCall__Inputs { - return new ChangeAdminCall__Inputs(this); - } - - get outputs(): ChangeAdminCall__Outputs { - return new ChangeAdminCall__Outputs(this); - } -} - -export class ChangeAdminCall__Inputs { - _call: ChangeAdminCall; - - constructor(call: ChangeAdminCall) { - this._call = call; - } - - get newAdmin(): Address { - return this._call.inputValues[0].value.toAddress(); - } -} - -export class ChangeAdminCall__Outputs { - _call: ChangeAdminCall; - - constructor(call: ChangeAdminCall) { - this._call = call; - } -} - -export class ChangeOperatorNameCall extends ethereum.Call { - get inputs(): ChangeOperatorNameCall__Inputs { - return new ChangeOperatorNameCall__Inputs(this); - } - - get outputs(): ChangeOperatorNameCall__Outputs { - return new ChangeOperatorNameCall__Outputs(this); - } -} - -export class ChangeOperatorNameCall__Inputs { - _call: ChangeOperatorNameCall; - - constructor(call: ChangeOperatorNameCall) { - this._call = call; - } - - get _operatorAddress(): Address { - return this._call.inputValues[0].value.toAddress(); - } - - get _operatorName(): string { - return this._call.inputValues[1].value.toString(); - } -} - -export class ChangeOperatorNameCall__Outputs { - _call: ChangeOperatorNameCall; - - constructor(call: ChangeOperatorNameCall) { - this._call = call; - } -} - export class GrantRoleCall extends ethereum.Call { get inputs(): GrantRoleCall__Inputs { return new GrantRoleCall__Inputs(this); @@ -851,96 +529,6 @@ export class RenounceRoleCall__Outputs { } } -export class RevokeAuthenticationContractCall extends ethereum.Call { - get inputs(): RevokeAuthenticationContractCall__Inputs { - return new RevokeAuthenticationContractCall__Inputs(this); - } - - get outputs(): RevokeAuthenticationContractCall__Outputs { - return new RevokeAuthenticationContractCall__Outputs(this); - } -} - -export class RevokeAuthenticationContractCall__Inputs { - _call: RevokeAuthenticationContractCall; - - constructor(call: RevokeAuthenticationContractCall) { - this._call = call; - } - - get _address(): Address { - return this._call.inputValues[0].value.toAddress(); - } -} - -export class RevokeAuthenticationContractCall__Outputs { - _call: RevokeAuthenticationContractCall; - - constructor(call: RevokeAuthenticationContractCall) { - this._call = call; - } -} - -export class RevokeAuthenticationPersonCall extends ethereum.Call { - get inputs(): RevokeAuthenticationPersonCall__Inputs { - return new RevokeAuthenticationPersonCall__Inputs(this); - } - - get outputs(): RevokeAuthenticationPersonCall__Outputs { - return new RevokeAuthenticationPersonCall__Outputs(this); - } -} - -export class RevokeAuthenticationPersonCall__Inputs { - _call: RevokeAuthenticationPersonCall; - - constructor(call: RevokeAuthenticationPersonCall) { - this._call = call; - } - - get _address(): Address { - return this._call.inputValues[0].value.toAddress(); - } -} - -export class RevokeAuthenticationPersonCall__Outputs { - _call: RevokeAuthenticationPersonCall; - - constructor(call: RevokeAuthenticationPersonCall) { - this._call = call; - } -} - -export class RevokeOperatorCall extends ethereum.Call { - get inputs(): RevokeOperatorCall__Inputs { - return new RevokeOperatorCall__Inputs(this); - } - - get outputs(): RevokeOperatorCall__Outputs { - return new RevokeOperatorCall__Outputs(this); - } -} - -export class RevokeOperatorCall__Inputs { - _call: RevokeOperatorCall; - - constructor(call: RevokeOperatorCall) { - this._call = call; - } - - get operator(): Address { - return this._call.inputValues[0].value.toAddress(); - } -} - -export class RevokeOperatorCall__Outputs { - _call: RevokeOperatorCall; - - constructor(call: RevokeOperatorCall) { - this._call = call; - } -} - export class RevokeRoleCall extends ethereum.Call { get inputs(): RevokeRoleCall__Inputs { return new RevokeRoleCall__Inputs(this); @@ -974,63 +562,3 @@ export class RevokeRoleCall__Outputs { this._call = call; } } - -export class SetAuthenticatedContractCall extends ethereum.Call { - get inputs(): SetAuthenticatedContractCall__Inputs { - return new SetAuthenticatedContractCall__Inputs(this); - } - - get outputs(): SetAuthenticatedContractCall__Outputs { - return new SetAuthenticatedContractCall__Outputs(this); - } -} - -export class SetAuthenticatedContractCall__Inputs { - _call: SetAuthenticatedContractCall; - - constructor(call: SetAuthenticatedContractCall) { - this._call = call; - } - - get _address(): Address { - return this._call.inputValues[0].value.toAddress(); - } -} - -export class SetAuthenticatedContractCall__Outputs { - _call: SetAuthenticatedContractCall; - - constructor(call: SetAuthenticatedContractCall) { - this._call = call; - } -} - -export class SetAuthenticatedPersonCall extends ethereum.Call { - get inputs(): SetAuthenticatedPersonCall__Inputs { - return new SetAuthenticatedPersonCall__Inputs(this); - } - - get outputs(): SetAuthenticatedPersonCall__Outputs { - return new SetAuthenticatedPersonCall__Outputs(this); - } -} - -export class SetAuthenticatedPersonCall__Inputs { - _call: SetAuthenticatedPersonCall; - - constructor(call: SetAuthenticatedPersonCall) { - this._call = call; - } - - get _address(): Address { - return this._call.inputValues[0].value.toAddress(); - } -} - -export class SetAuthenticatedPersonCall__Outputs { - _call: SetAuthenticatedPersonCall; - - constructor(call: SetAuthenticatedPersonCall) { - this._call = call; - } -} diff --git a/packages/graph/generated/templates/CapTable/CapTable.ts b/packages/graph/generated/templates/CapTable/CapTable.ts index dee89b5..583bbe1 100644 --- a/packages/graph/generated/templates/CapTable/CapTable.ts +++ b/packages/graph/generated/templates/CapTable/CapTable.ts @@ -114,32 +114,6 @@ export class AuthorizedOperatorByPartition__Params { } } -export class CaptableChangedFagsystem extends ethereum.Event { - get params(): CaptableChangedFagsystem__Params { - return new CaptableChangedFagsystem__Params(this); - } -} - -export class CaptableChangedFagsystem__Params { - _event: CaptableChangedFagsystem; - - constructor(event: CaptableChangedFagsystem) { - this._event = event; - } - - get orgnr(): Bytes { - return this._event.parameters[0].value.toBytes(); - } - - get oldFagsystem(): Address { - return this._event.parameters[1].value.toAddress(); - } - - get newFagsystem(): Address { - return this._event.parameters[2].value.toAddress(); - } -} - export class ChangedPartition extends ethereum.Event { get params(): ChangedPartition__Params { return new ChangedPartition__Params(this); @@ -1003,44 +977,6 @@ export class CapTable extends ethereum.SmartContract { ); } - getFagsystem(): Address { - let result = super.call("getFagsystem", "getFagsystem():(address)", []); - - return result[0].toAddress(); - } - - try_getFagsystem(): ethereum.CallResult
{ - let result = super.tryCall("getFagsystem", "getFagsystem():(address)", []); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toAddress()); - } - - getFagsystemDid(): string { - let result = super.call( - "getFagsystemDid", - "getFagsystemDid():(string)", - [] - ); - - return result[0].toString(); - } - - try_getFagsystemDid(): ethereum.CallResult { - let result = super.tryCall( - "getFagsystemDid", - "getFagsystemDid():(string)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toString()); - } - getOrgnr(): string { let result = super.call("getOrgnr", "getOrgnr():(string)", []); @@ -1071,6 +1007,29 @@ export class CapTable extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } + isAddedToRegistry(): boolean { + let result = super.call( + "isAddedToRegistry", + "isAddedToRegistry():(bool)", + [] + ); + + return result[0].toBoolean(); + } + + try_isAddedToRegistry(): ethereum.CallResult { + let result = super.tryCall( + "isAddedToRegistry", + "isAddedToRegistry():(bool)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBoolean()); + } + isControllable(): boolean { let result = super.call("isControllable", "isControllable():(bool)", []); @@ -1507,10 +1466,6 @@ export class ConstructorCall__Inputs { get defaultPartitions(): Array { return this._call.inputValues[4].value.toBytesArray(); } - - get capTableRegistry(): Address { - return this._call.inputValues[5].value.toAddress(); - } } export class ConstructorCall__Outputs { @@ -1695,6 +1650,36 @@ export class AuthorizeOperatorByPartitionCall__Outputs { } } +export class ConfirmAddedToRegistryCall extends ethereum.Call { + get inputs(): ConfirmAddedToRegistryCall__Inputs { + return new ConfirmAddedToRegistryCall__Inputs(this); + } + + get outputs(): ConfirmAddedToRegistryCall__Outputs { + return new ConfirmAddedToRegistryCall__Outputs(this); + } +} + +export class ConfirmAddedToRegistryCall__Inputs { + _call: ConfirmAddedToRegistryCall; + + constructor(call: ConfirmAddedToRegistryCall) { + this._call = call; + } + + get registryAddress(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class ConfirmAddedToRegistryCall__Outputs { + _call: ConfirmAddedToRegistryCall; + + constructor(call: ConfirmAddedToRegistryCall) { + this._call = call; + } +} + export class DomainSeparatorCall extends ethereum.Call { get inputs(): DomainSeparatorCall__Inputs { return new DomainSeparatorCall__Inputs(this); @@ -2361,36 +2346,6 @@ export class RevokeOperatorByPartitionCall__Outputs { } } -export class SetCapTableRegistryCall extends ethereum.Call { - get inputs(): SetCapTableRegistryCall__Inputs { - return new SetCapTableRegistryCall__Inputs(this); - } - - get outputs(): SetCapTableRegistryCall__Outputs { - return new SetCapTableRegistryCall__Outputs(this); - } -} - -export class SetCapTableRegistryCall__Inputs { - _call: SetCapTableRegistryCall; - - constructor(call: SetCapTableRegistryCall) { - this._call = call; - } - - get capTableRegistryAddress(): Address { - return this._call.inputValues[0].value.toAddress(); - } -} - -export class SetCapTableRegistryCall__Outputs { - _call: SetCapTableRegistryCall; - - constructor(call: SetCapTableRegistryCall) { - this._call = call; - } -} - export class SetControllersCall extends ethereum.Call { get inputs(): SetControllersCall__Inputs { return new SetControllersCall__Inputs(this); @@ -2892,29 +2847,3 @@ export class TransferWithDataCall__Outputs { this._call = call; } } - -export class UpdateFagsystemCall extends ethereum.Call { - get inputs(): UpdateFagsystemCall__Inputs { - return new UpdateFagsystemCall__Inputs(this); - } - - get outputs(): UpdateFagsystemCall__Outputs { - return new UpdateFagsystemCall__Outputs(this); - } -} - -export class UpdateFagsystemCall__Inputs { - _call: UpdateFagsystemCall; - - constructor(call: UpdateFagsystemCall) { - this._call = call; - } -} - -export class UpdateFagsystemCall__Outputs { - _call: UpdateFagsystemCall; - - constructor(call: UpdateFagsystemCall) { - this._call = call; - } -} diff --git a/packages/graph/subgraph.example.yaml b/packages/graph/subgraph.example.yaml index bf9f5ca..2a92f59 100644 --- a/packages/graph/subgraph.example.yaml +++ b/packages/graph/subgraph.example.yaml @@ -20,9 +20,9 @@ dataSources: - CapTableRegistry abis: - name: CapTableRegistry - file: ./abis/CapTableRegistry.json + file: ./../captable/artifacts/contracts/capTable/CapTableRegistry.sol/CapTableRegistry.json - name: CapTable - file: ./abis/CapTable.json + file: ./../captable/artifacts/contracts/capTable/CapTable.sol/CapTable.json eventHandlers: - event: CapTableAdded(indexed address,indexed string) handler: handleCapTableAdded @@ -46,7 +46,7 @@ templates: - TokenBalance abis: - name: CapTable - file: ./abis/CapTable.json + file: ./../captable/artifacts/contracts/capTable/CapTable.sol/CapTable.json eventHandlers: - event: >- TransferByPartition(indexed bytes32,address,indexed address,indexed