@etherisc/gif-next 0.0.2-f30e0eb-805 → 0.0.2-f398177-971
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -83
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +47 -6
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +70 -13
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +137 -6
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +144 -13
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +161 -20
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +151 -20
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +71 -20
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +62 -21
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +310 -2004
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +101 -52
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -2757
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +95 -58
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +348 -58
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +153 -207
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +38 -83
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2788 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +113 -34
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +8 -8
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +6 -6
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +6 -6
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +186 -236
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +38 -55
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +377 -182
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +74 -39
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +713 -83
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +147 -32
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +266 -442
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +82 -107
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +111 -174
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +233 -128
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +385 -51
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +109 -282
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +210 -99
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +682 -33
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.json +510 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +85 -27
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +420 -160
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +104 -53
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +880 -82
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +90 -39
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +688 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +144 -57
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +28 -37
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -37
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +22 -49
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +21 -34
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +23 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +10 -23
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +85 -27
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -19
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +14 -27
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +6 -19
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +91 -28
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +6 -19
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +106 -39
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +281 -0
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +83 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +74 -19
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +116 -7
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/components/Component.sol +25 -4
- package/contracts/components/Distribution.sol +11 -6
- package/contracts/components/IComponent.sol +19 -3
- package/contracts/components/IPoolComponent.sol +8 -7
- package/contracts/components/IProductComponent.sol +5 -4
- package/contracts/components/Pool.sol +17 -14
- package/contracts/components/Product.sol +144 -62
- package/contracts/instance/BundleManager.sol +3 -4
- package/contracts/instance/IInstance.sol +32 -53
- package/contracts/instance/IInstanceService.sol +15 -14
- package/contracts/instance/Instance.sol +107 -205
- package/contracts/instance/InstanceAccessManager.sol +44 -25
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +85 -7
- package/contracts/instance/InstanceService.sol +102 -289
- package/contracts/instance/InstanceStore.sol +212 -0
- package/contracts/instance/ObjectManager.sol +1 -1
- package/contracts/instance/base/ComponentService.sol +53 -39
- package/contracts/instance/base/KeyValueStore.sol +8 -34
- package/contracts/instance/base/Lifecycle.sol +15 -4
- package/contracts/instance/module/IAccess.sol +2 -2
- package/contracts/instance/module/IBundle.sol +6 -4
- package/contracts/instance/module/IComponents.sol +7 -1
- package/contracts/instance/module/IDistribution.sol +3 -2
- package/contracts/instance/module/IPolicy.sol +13 -8
- package/contracts/instance/service/ApplicationService.sol +62 -226
- package/contracts/instance/service/BundleService.sol +172 -126
- package/contracts/instance/service/ClaimService.sol +318 -32
- package/contracts/instance/service/DistributionService.sol +71 -190
- package/contracts/instance/service/IApplicationService.sol +8 -28
- package/contracts/instance/service/IBundleService.sol +82 -26
- package/contracts/instance/service/IClaimService.sol +52 -23
- package/contracts/instance/service/IDistributionService.sol +11 -22
- package/contracts/instance/service/IPolicyService.sol +24 -16
- package/contracts/instance/service/IPoolService.sol +82 -3
- package/contracts/instance/service/IPricingService.sol +37 -0
- package/contracts/instance/service/PolicyService.sol +152 -179
- package/contracts/instance/service/PoolService.sol +239 -56
- package/contracts/instance/service/PricingService.sol +275 -0
- package/contracts/instance/service/PricingServiceManager.sol +51 -0
- package/contracts/instance/service/ProductService.sol +27 -58
- package/contracts/registry/IRegistryService.sol +2 -3
- package/contracts/registry/RegistryService.sol +24 -21
- package/contracts/registry/ReleaseManager.sol +20 -18
- package/contracts/shared/IPolicyHolder.sol +23 -9
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +6 -6
- package/contracts/shared/NftOwnable.sol +0 -2
- package/contracts/shared/PolicyHolder.sol +30 -17
- package/contracts/shared/Registerable.sol +10 -9
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +21 -7
- package/contracts/shared/TokenHandler.sol +4 -2
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/Amount.sol +109 -0
- package/contracts/types/ClaimId.sol +25 -2
- package/contracts/types/Fee.sol +16 -8
- package/contracts/types/ObjectType.sol +9 -5
- package/contracts/types/PayoutId.sol +33 -5
- package/contracts/types/StateId.sol +6 -2
- package/contracts/types/Timestamp.sol +5 -0
- package/package.json +1 -1
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
| @@ -141,8 +141,8 @@ | |
| 141 141 | 
             
                  "type": "function"
         | 
| 142 142 | 
             
                }
         | 
| 143 143 | 
             
              ],
         | 
| 144 | 
            -
              "bytecode": "0x61031c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806340a8cd9e1161006557806340a8cd9e1461010757806352694ee81461013d578063bc1b392d14610158578063c4cade9d1461015f57600080fd5b806308dc895e1461008c57806330b8415f146100ba5780633889a4c8146100e6575b600080fd5b61009d61009a366004610242565b90565b6040516001600160601b0390911681526020015b60405180910390f35b6100d66100c8366004610242565b6001600160601b0316151590565b60405190151581526020016100b1565b6100f96100f436600461025d565b610183565b6040519081526020016100b1565b61012a610115366004610242565b60081b6cffffffffffffffffffffffff001690565b60405160ff1990911681526020016100b1565b6100d661014b366004610242565b6001600160601b03161590565b600061009d565b6100d661016d36600461029a565b60006001600160601b038084169083161461021f565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$ | 
| 145 | 
            -
              "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806340a8cd9e1161006557806340a8cd9e1461010757806352694ee81461013d578063bc1b392d14610158578063c4cade9d1461015f57600080fd5b806308dc895e1461008c57806330b8415f146100ba5780633889a4c8146100e6575b600080fd5b61009d61009a366004610242565b90565b6040516001600160601b0390911681526020015b60405180910390f35b6100d66100c8366004610242565b6001600160601b0316151590565b60405190151581526020016100b1565b6100f96100f436600461025d565b610183565b6040519081526020016100b1565b61012a610115366004610242565b60081b6cffffffffffffffffffffffff001690565b60405160ff1990911681526020016100b1565b6100d661014b366004610242565b6001600160601b03161590565b600061009d565b6100d661016d36600461029a565b60006001600160601b038084169083161461021f565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$ | 
| 144 | 
            +
              "bytecode": "0x61031c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806340a8cd9e1161006557806340a8cd9e1461010757806352694ee81461013d578063bc1b392d14610158578063c4cade9d1461015f57600080fd5b806308dc895e1461008c57806330b8415f146100ba5780633889a4c8146100e6575b600080fd5b61009d61009a366004610242565b90565b6040516001600160601b0390911681526020015b60405180910390f35b6100d66100c8366004610242565b6001600160601b0316151590565b60405190151581526020016100b1565b6100f96100f436600461025d565b610183565b6040519081526020016100b1565b61012a610115366004610242565b60081b6cffffffffffffffffffffffff001690565b60405160ff1990911681526020016100b1565b6100d661014b366004610242565b6001600160601b03161590565b600061009d565b6100d661016d36600461029a565b60006001600160601b038084169083161461021f565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce83600886901b6cffffffffffffffffffffffff00166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021f91906102cd565b9392505050565b80356001600160601b038116811461023d57600080fd5b919050565b60006020828403121561025457600080fd5b61021f82610226565b6000806040838503121561027057600080fd5b61027983610226565b9150602083013560ff8116811461028f57600080fd5b809150509250929050565b600080604083850312156102ad57600080fd5b6102b683610226565b91506102c460208401610226565b90509250929050565b6000602082840312156102df57600080fd5b505191905056fea264697066735822122079f3c69b4b2df08ead6ff0a86b2076405ff488efec7e0791d0ec36c248aa472464736f6c63430008140033",
         | 
| 145 | 
            +
              "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806340a8cd9e1161006557806340a8cd9e1461010757806352694ee81461013d578063bc1b392d14610158578063c4cade9d1461015f57600080fd5b806308dc895e1461008c57806330b8415f146100ba5780633889a4c8146100e6575b600080fd5b61009d61009a366004610242565b90565b6040516001600160601b0390911681526020015b60405180910390f35b6100d66100c8366004610242565b6001600160601b0316151590565b60405190151581526020016100b1565b6100f96100f436600461025d565b610183565b6040519081526020016100b1565b61012a610115366004610242565b60081b6cffffffffffffffffffffffff001690565b60405160ff1990911681526020016100b1565b6100d661014b366004610242565b6001600160601b03161590565b600061009d565b6100d661016d36600461029a565b60006001600160601b038084169083161461021f565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce83600886901b6cffffffffffffffffffffffff00166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021f91906102cd565b9392505050565b80356001600160601b038116811461023d57600080fd5b919050565b60006020828403121561025457600080fd5b61021f82610226565b6000806040838503121561027057600080fd5b61027983610226565b9150602083013560ff8116811461028f57600080fd5b809150509250929050565b600080604083850312156102ad57600080fd5b6102b683610226565b91506102c460208401610226565b90509250929050565b6000602082840312156102df57600080fd5b505191905056fea264697066735822122079f3c69b4b2df08ead6ff0a86b2076405ff488efec7e0791d0ec36c248aa472464736f6c63430008140033",
         | 
| 146 146 | 
             
              "linkReferences": {
         | 
| 147 147 | 
             
                "contracts/types/Key32.sol": {
         | 
| 148 148 | 
             
                  "Key32Lib": [
         | 
| @@ -26,8 +26,8 @@ | |
| 26 26 | 
             
                  "type": "error"
         | 
| 27 27 | 
             
                }
         | 
| 28 28 | 
             
              ],
         | 
| 29 | 
            -
              "bytecode": " | 
| 30 | 
            -
              "deployedBytecode": " | 
| 29 | 
            +
              "bytecode": "0x6104c261003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c80632bfdd6b91461007157806331a97de2146100995780638b6233dd146100ac578063a3082a18146100cc578063a73d5756146100ee578063e797d8991461010e575b600080fd5b61008461007f3660046103c8565b610139565b60405190151581526020015b60405180910390f35b6100846100a7366004610404565b541590565b6100be6100ba366004610404565b5490565b604051908152602001610090565b8180156100d857600080fd5b506100ec6100e73660046103c8565b61015d565b005b8180156100fa57600080fd5b506100ec6101093660046103c8565b6101f8565b61012161011c36600461041d565b610380565b6040516001600160601b039091168152602001610090565b6001600160601b038116600090815260018301602052604090205415155b92915050565b6001600160601b0381166000908152600183016020526040902054156101a6576040516301eae2c560e61b81526001600160601b03821660048201526024015b60405180910390fd5b81546001818101845560008481526020808220600285040180546001600160601b03968716600c968616969096026101000a868102970219169590951790945584549281529301909152604090912055565b6001600160601b03811660009081526001830160205260408120549081900361023f5760405163482084f160e01b81526001600160601b038316600482015260240161019d565b600061024c60018361043f565b84549091506000906102609060019061043f565b905081811461030a57600085600001828154811061028057610280610460565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b03169050808660000184815481106102c1576102c1610460565b60009182526020808320600283040180546001600160601b03958616600c6001958616026101000a90810290870219909116179055939092168152908701909152604090208390555b845485908061031b5761031b610476565b6001900381819060005260206000209060029182820401919006600c026101000a8154906001600160601b0302191690559055846001016000856001600160601b03166001600160601b03168152602001908152602001600020600090555050505050565b600082600001828154811061039757610397610460565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b0316905092915050565b600080604083850312156103db57600080fd5b8235915060208301356001600160601b03811681146103f957600080fd5b809150509250929050565b60006020828403121561041657600080fd5b5035919050565b6000806040838503121561043057600080fd5b50508035926020909101359150565b8181038181111561015757634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a77dfba6df8781a1240fd13ee997b0d55bc768bc1587ac066f5922b6be9dec7a64736f6c63430008140033",
         | 
| 30 | 
            +
              "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c80632bfdd6b91461007157806331a97de2146100995780638b6233dd146100ac578063a3082a18146100cc578063a73d5756146100ee578063e797d8991461010e575b600080fd5b61008461007f3660046103c8565b610139565b60405190151581526020015b60405180910390f35b6100846100a7366004610404565b541590565b6100be6100ba366004610404565b5490565b604051908152602001610090565b8180156100d857600080fd5b506100ec6100e73660046103c8565b61015d565b005b8180156100fa57600080fd5b506100ec6101093660046103c8565b6101f8565b61012161011c36600461041d565b610380565b6040516001600160601b039091168152602001610090565b6001600160601b038116600090815260018301602052604090205415155b92915050565b6001600160601b0381166000908152600183016020526040902054156101a6576040516301eae2c560e61b81526001600160601b03821660048201526024015b60405180910390fd5b81546001818101845560008481526020808220600285040180546001600160601b03968716600c968616969096026101000a868102970219169590951790945584549281529301909152604090912055565b6001600160601b03811660009081526001830160205260408120549081900361023f5760405163482084f160e01b81526001600160601b038316600482015260240161019d565b600061024c60018361043f565b84549091506000906102609060019061043f565b905081811461030a57600085600001828154811061028057610280610460565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b03169050808660000184815481106102c1576102c1610460565b60009182526020808320600283040180546001600160601b03958616600c6001958616026101000a90810290870219909116179055939092168152908701909152604090208390555b845485908061031b5761031b610476565b6001900381819060005260206000209060029182820401919006600c026101000a8154906001600160601b0302191690559055846001016000856001600160601b03166001600160601b03168152602001908152602001600020600090555050505050565b600082600001828154811061039757610397610460565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b0316905092915050565b600080604083850312156103db57600080fd5b8235915060208301356001600160601b03811681146103f957600080fd5b809150509250929050565b60006020828403121561041657600080fd5b5035919050565b6000806040838503121561043057600080fd5b50508035926020909101359150565b8181038181111561015757634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a77dfba6df8781a1240fd13ee997b0d55bc768bc1587ac066f5922b6be9dec7a64736f6c63430008140033",
         | 
| 31 31 | 
             
              "linkReferences": {},
         | 
| 32 32 | 
             
              "deployedLinkReferences": {}
         | 
| 33 33 | 
             
            }
         | 
| @@ -85,8 +85,8 @@ | |
| 85 85 | 
             
                  "type": "function"
         | 
| 86 86 | 
             
                }
         | 
| 87 87 | 
             
              ],
         | 
| 88 | 
            -
              "bytecode": " | 
| 89 | 
            -
              "deployedBytecode": " | 
| 88 | 
            +
              "bytecode": "0x61018c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80632c2f8a671461005b5780636f91962014610083578063ac43d83414610098578063b2466acf146100c9575b600080fd5b61006e610069366004610108565b6100df565b60405190151581526020015b60405180910390f35b61006e61009136600461013b565b60ff161590565b6100ac6100a636600461013b565b60ff1690565b6040516bffffffffffffffffffffffff909116815260200161007a565b61006e6100d736600461013b565b60ff16151590565b600060ff808416908316145b9392505050565b803560ff8116811461010357600080fd5b919050565b6000806040838503121561011b57600080fd5b610124836100f2565b9150610132602084016100f2565b90509250929050565b60006020828403121561014d57600080fd5b6100eb826100f256fea2646970667358221220a05598860810f4a0e7e5f7213578f3d434700569bbd80c6f7d3653667cfd84b764736f6c63430008140033",
         | 
| 89 | 
            +
              "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80632c2f8a671461005b5780636f91962014610083578063ac43d83414610098578063b2466acf146100c9575b600080fd5b61006e610069366004610108565b6100df565b60405190151581526020015b60405180910390f35b61006e61009136600461013b565b60ff161590565b6100ac6100a636600461013b565b60ff1690565b6040516bffffffffffffffffffffffff909116815260200161007a565b61006e6100d736600461013b565b60ff16151590565b600060ff808416908316145b9392505050565b803560ff8116811461010357600080fd5b919050565b6000806040838503121561011b57600080fd5b610124836100f2565b9150610132602084016100f2565b90509250929050565b60006020828403121561014d57600080fd5b6100eb826100f256fea2646970667358221220a05598860810f4a0e7e5f7213578f3d434700569bbd80c6f7d3653667cfd84b764736f6c63430008140033",
         | 
| 90 90 | 
             
              "linkReferences": {},
         | 
| 91 91 | 
             
              "deployedLinkReferences": {}
         | 
| 92 92 | 
             
            }
         | 
| @@ -41,6 +41,25 @@ | |
| 41 41 | 
             
                  "stateMutability": "pure",
         | 
| 42 42 | 
             
                  "type": "function"
         | 
| 43 43 | 
             
                },
         | 
| 44 | 
            +
                {
         | 
| 45 | 
            +
                  "inputs": [
         | 
| 46 | 
            +
                    {
         | 
| 47 | 
            +
                      "internalType": "PayoutId",
         | 
| 48 | 
            +
                      "name": "payoutId",
         | 
| 49 | 
            +
                      "type": "uint24"
         | 
| 50 | 
            +
                    }
         | 
| 51 | 
            +
                  ],
         | 
| 52 | 
            +
                  "name": "toClaimId",
         | 
| 53 | 
            +
                  "outputs": [
         | 
| 54 | 
            +
                    {
         | 
| 55 | 
            +
                      "internalType": "ClaimId",
         | 
| 56 | 
            +
                      "name": "",
         | 
| 57 | 
            +
                      "type": "uint16"
         | 
| 58 | 
            +
                    }
         | 
| 59 | 
            +
                  ],
         | 
| 60 | 
            +
                  "stateMutability": "pure",
         | 
| 61 | 
            +
                  "type": "function"
         | 
| 62 | 
            +
                },
         | 
| 44 63 | 
             
                {
         | 
| 45 64 | 
             
                  "inputs": [
         | 
| 46 65 | 
             
                    {
         | 
| @@ -63,9 +82,62 @@ | |
| 63 82 | 
             
                {
         | 
| 64 83 | 
             
                  "inputs": [
         | 
| 65 84 | 
             
                    {
         | 
| 66 | 
            -
                      "internalType": " | 
| 67 | 
            -
                      "name": " | 
| 68 | 
            -
                      "type": " | 
| 85 | 
            +
                      "internalType": "PayoutId",
         | 
| 86 | 
            +
                      "name": "payoutId",
         | 
| 87 | 
            +
                      "type": "uint24"
         | 
| 88 | 
            +
                    },
         | 
| 89 | 
            +
                    {
         | 
| 90 | 
            +
                      "internalType": "NftId",
         | 
| 91 | 
            +
                      "name": "policyNftId",
         | 
| 92 | 
            +
                      "type": "uint96"
         | 
| 93 | 
            +
                    }
         | 
| 94 | 
            +
                  ],
         | 
| 95 | 
            +
                  "name": "toKey32",
         | 
| 96 | 
            +
                  "outputs": [
         | 
| 97 | 
            +
                    {
         | 
| 98 | 
            +
                      "internalType": "Key32",
         | 
| 99 | 
            +
                      "name": "",
         | 
| 100 | 
            +
                      "type": "bytes32"
         | 
| 101 | 
            +
                    }
         | 
| 102 | 
            +
                  ],
         | 
| 103 | 
            +
                  "stateMutability": "pure",
         | 
| 104 | 
            +
                  "type": "function"
         | 
| 105 | 
            +
                },
         | 
| 106 | 
            +
                {
         | 
| 107 | 
            +
                  "inputs": [
         | 
| 108 | 
            +
                    {
         | 
| 109 | 
            +
                      "internalType": "PayoutId",
         | 
| 110 | 
            +
                      "name": "payoutId",
         | 
| 111 | 
            +
                      "type": "uint24"
         | 
| 112 | 
            +
                    },
         | 
| 113 | 
            +
                    {
         | 
| 114 | 
            +
                      "internalType": "NftId",
         | 
| 115 | 
            +
                      "name": "policyNftId",
         | 
| 116 | 
            +
                      "type": "uint96"
         | 
| 117 | 
            +
                    }
         | 
| 118 | 
            +
                  ],
         | 
| 119 | 
            +
                  "name": "toKeyId",
         | 
| 120 | 
            +
                  "outputs": [
         | 
| 121 | 
            +
                    {
         | 
| 122 | 
            +
                      "internalType": "KeyId",
         | 
| 123 | 
            +
                      "name": "",
         | 
| 124 | 
            +
                      "type": "bytes31"
         | 
| 125 | 
            +
                    }
         | 
| 126 | 
            +
                  ],
         | 
| 127 | 
            +
                  "stateMutability": "pure",
         | 
| 128 | 
            +
                  "type": "function"
         | 
| 129 | 
            +
                },
         | 
| 130 | 
            +
                {
         | 
| 131 | 
            +
                  "inputs": [
         | 
| 132 | 
            +
                    {
         | 
| 133 | 
            +
                      "internalType": "ClaimId",
         | 
| 134 | 
            +
                      "name": "claimId",
         | 
| 135 | 
            +
                      "type": "uint16"
         | 
| 136 | 
            +
                    },
         | 
| 137 | 
            +
                    {
         | 
| 138 | 
            +
                      "internalType": "uint8",
         | 
| 139 | 
            +
                      "name": "payoutNo",
         | 
| 140 | 
            +
                      "type": "uint8"
         | 
| 69 141 | 
             
                    }
         | 
| 70 142 | 
             
                  ],
         | 
| 71 143 | 
             
                  "name": "toPayoutId",
         | 
| @@ -79,6 +151,25 @@ | |
| 79 151 | 
             
                  "stateMutability": "pure",
         | 
| 80 152 | 
             
                  "type": "function"
         | 
| 81 153 | 
             
                },
         | 
| 154 | 
            +
                {
         | 
| 155 | 
            +
                  "inputs": [
         | 
| 156 | 
            +
                    {
         | 
| 157 | 
            +
                      "internalType": "PayoutId",
         | 
| 158 | 
            +
                      "name": "payoutId",
         | 
| 159 | 
            +
                      "type": "uint24"
         | 
| 160 | 
            +
                    }
         | 
| 161 | 
            +
                  ],
         | 
| 162 | 
            +
                  "name": "toPayoutNo",
         | 
| 163 | 
            +
                  "outputs": [
         | 
| 164 | 
            +
                    {
         | 
| 165 | 
            +
                      "internalType": "uint8",
         | 
| 166 | 
            +
                      "name": "",
         | 
| 167 | 
            +
                      "type": "uint8"
         | 
| 168 | 
            +
                    }
         | 
| 169 | 
            +
                  ],
         | 
| 170 | 
            +
                  "stateMutability": "pure",
         | 
| 171 | 
            +
                  "type": "function"
         | 
| 172 | 
            +
                },
         | 
| 82 173 | 
             
                {
         | 
| 83 174 | 
             
                  "inputs": [],
         | 
| 84 175 | 
             
                  "name": "zero",
         | 
| @@ -93,8 +184,26 @@ | |
| 93 184 | 
             
                  "type": "function"
         | 
| 94 185 | 
             
                }
         | 
| 95 186 | 
             
              ],
         | 
| 96 | 
            -
              "bytecode": " | 
| 97 | 
            -
              "deployedBytecode": " | 
| 98 | 
            -
              "linkReferences": { | 
| 99 | 
            -
             | 
| 187 | 
            +
              "bytecode": "0x61041d61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063691d05ec11610070578063691d05ec1461013b5780637d464fd414610152578063bc1b392d14610178578063d5b5ee5d1461017f578063de5f11a21461019257600080fd5b806302985c61146100a2578063455d3483146100cf57806355601007146100f5578063592734111461011a575b600080fd5b6100ba6100b03660046102d3565b62ffffff16151590565b60405190151581526020015b60405180910390f35b6100e26100dd3660046102ee565b6101bd565b60405160ff1990911681526020016100c6565b6101066101033660046102d3565b90565b60405162ffffff90911681526020016100c6565b61012d6101283660046102ee565b6101fe565b6040519081526020016100c6565b6100ba6101493660046102d3565b62ffffff161590565b6101666101603660046102d3565b60ff1690565b60405160ff90911681526020016100c6565b6000610106565b61010661018d366004610336565b610298565b6101aa6101a03660046102d3565b60081c61ffff1690565b60405161ffff90911681526020016100c6565b60006101e362ffffff84166effffffffffffffffffffffff000000601885901b16610387565b60881b6bffffffffffffffffffffffff60881b169392505050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce60d561022686866101bd565b6040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af415801561026d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029191906103b3565b9392505050565b60006102b060ff831662ffff00600886901b166103cc565b61ffff169392505050565b803562ffffff811681146102ce57600080fd5b919050565b6000602082840312156102e557600080fd5b610291826102bb565b6000806040838503121561030157600080fd5b61030a836102bb565b915060208301356bffffffffffffffffffffffff8116811461032b57600080fd5b809150509250929050565b6000806040838503121561034957600080fd5b823561ffff8116811461035b57600080fd5b9150602083013560ff8116811461032b57600080fd5b634e487b7160e01b600052601160045260246000fd5b6bffffffffffffffffffffffff8181168382160190808211156103ac576103ac610371565b5092915050565b6000602082840312156103c557600080fd5b5051919050565b61ffff8181168382160190808211156103ac576103ac61037156fea2646970667358221220912aee446512676a01553c6e58f95a1683cc6430c6e201d02ea16dd1bf437f7564736f6c63430008140033",
         | 
| 188 | 
            +
              "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063691d05ec11610070578063691d05ec1461013b5780637d464fd414610152578063bc1b392d14610178578063d5b5ee5d1461017f578063de5f11a21461019257600080fd5b806302985c61146100a2578063455d3483146100cf57806355601007146100f5578063592734111461011a575b600080fd5b6100ba6100b03660046102d3565b62ffffff16151590565b60405190151581526020015b60405180910390f35b6100e26100dd3660046102ee565b6101bd565b60405160ff1990911681526020016100c6565b6101066101033660046102d3565b90565b60405162ffffff90911681526020016100c6565b61012d6101283660046102ee565b6101fe565b6040519081526020016100c6565b6100ba6101493660046102d3565b62ffffff161590565b6101666101603660046102d3565b60ff1690565b60405160ff90911681526020016100c6565b6000610106565b61010661018d366004610336565b610298565b6101aa6101a03660046102d3565b60081c61ffff1690565b60405161ffff90911681526020016100c6565b60006101e362ffffff84166effffffffffffffffffffffff000000601885901b16610387565b60881b6bffffffffffffffffffffffff60881b169392505050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce60d561022686866101bd565b6040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af415801561026d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029191906103b3565b9392505050565b60006102b060ff831662ffff00600886901b166103cc565b61ffff169392505050565b803562ffffff811681146102ce57600080fd5b919050565b6000602082840312156102e557600080fd5b610291826102bb565b6000806040838503121561030157600080fd5b61030a836102bb565b915060208301356bffffffffffffffffffffffff8116811461032b57600080fd5b809150509250929050565b6000806040838503121561034957600080fd5b823561ffff8116811461035b57600080fd5b9150602083013560ff8116811461032b57600080fd5b634e487b7160e01b600052601160045260246000fd5b6bffffffffffffffffffffffff8181168382160190808211156103ac576103ac610371565b5092915050565b6000602082840312156103c557600080fd5b5051919050565b61ffff8181168382160190808211156103ac576103ac61037156fea2646970667358221220912aee446512676a01553c6e58f95a1683cc6430c6e201d02ea16dd1bf437f7564736f6c63430008140033",
         | 
| 189 | 
            +
              "linkReferences": {
         | 
| 190 | 
            +
                "contracts/types/Key32.sol": {
         | 
| 191 | 
            +
                  "Key32Lib": [
         | 
| 192 | 
            +
                    {
         | 
| 193 | 
            +
                      "length": 20,
         | 
| 194 | 
            +
                      "start": 572
         | 
| 195 | 
            +
                    }
         | 
| 196 | 
            +
                  ]
         | 
| 197 | 
            +
                }
         | 
| 198 | 
            +
              },
         | 
| 199 | 
            +
              "deployedLinkReferences": {
         | 
| 200 | 
            +
                "contracts/types/Key32.sol": {
         | 
| 201 | 
            +
                  "Key32Lib": [
         | 
| 202 | 
            +
                    {
         | 
| 203 | 
            +
                      "length": 20,
         | 
| 204 | 
            +
                      "start": 514
         | 
| 205 | 
            +
                    }
         | 
| 206 | 
            +
                  ]
         | 
| 207 | 
            +
                }
         | 
| 208 | 
            +
              }
         | 
| 100 209 | 
             
            }
         | 
| @@ -117,8 +117,8 @@ | |
| 117 117 | 
             
                  "type": "function"
         | 
| 118 118 | 
             
                }
         | 
| 119 119 | 
             
              ],
         | 
| 120 | 
            -
              "bytecode": "0x61041061003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c80632cf96bf9146100715780633f093cd6146100a457806355ee6275146100d05780637bc32ecf146100f1578063a420c78714610114578063bc1b392d14610137575b600080fd5b61008c61007f36600461021e565b6001600160c01b03191690565b60405160ff1990911681526020015b60405180910390f35b6100b76100b2366004610265565b61013e565b6040516001600160c01b0319909116815260200161009b565b6100e36100de36600461021e565b610171565b60405190815260200161009b565b6101046100ff36600461021e565b61020b565b604051901515815260200161009b565b61012561012236600461033a565b90565b60405160ff909116815260200161009b565b60006100b7565b6000828260405160200161015392919061035d565b60405160208183030381529060405280519060200120905092915050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$ | 
| 121 | 
            -
              "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c80632cf96bf9146100715780633f093cd6146100a457806355ee6275146100d05780637bc32ecf146100f1578063a420c78714610114578063bc1b392d14610137575b600080fd5b61008c61007f36600461021e565b6001600160c01b03191690565b60405160ff1990911681526020015b60405180910390f35b6100b76100b2366004610265565b61013e565b6040516001600160c01b0319909116815260200161009b565b6100e36100de36600461021e565b610171565b60405190815260200161009b565b6101046100ff36600461021e565b61020b565b604051901515815260200161009b565b61012561012236600461033a565b90565b60405160ff909116815260200161009b565b60006100b7565b6000828260405160200161015392919061035d565b60405160208183030381529060405280519060200120905092915050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$ | 
| 120 | 
            +
              "bytecode": "0x61041061003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c80632cf96bf9146100715780633f093cd6146100a457806355ee6275146100d05780637bc32ecf146100f1578063a420c78714610114578063bc1b392d14610137575b600080fd5b61008c61007f36600461021e565b6001600160c01b03191690565b60405160ff1990911681526020015b60405180910390f35b6100b76100b2366004610265565b61013e565b6040516001600160c01b0319909116815260200161009b565b6100e36100de36600461021e565b610171565b60405190815260200161009b565b6101046100ff36600461021e565b61020b565b604051901515815260200161009b565b61012561012236600461033a565b90565b60405160ff909116815260200161009b565b60006100b7565b6000828260405160200161015392919061035d565b60405160208183030381529060405280519060200120905092915050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce607b6001600160c01b031985166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020591906103c1565b92915050565b60006001600160c01b0319821615610205565b60006020828403121561023057600080fd5b81356001600160c01b03198116811461024857600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561027857600080fd5b82356bffffffffffffffffffffffff8116811461029457600080fd5b9150602083013567ffffffffffffffff808211156102b157600080fd5b818501915085601f8301126102c557600080fd5b8135818111156102d7576102d761024f565b604051601f8201601f19908116603f011681019083821181831017156102ff576102ff61024f565b8160405282815288602084870101111561031857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561034c57600080fd5b813560ff8116811461024857600080fd5b6bffffffffffffffffffffffff8316815260006020604081840152835180604085015260005b8181101561039f57858101830151858201606001528201610383565b506000606082860101526060601f19601f830116850101925050509392505050565b6000602082840312156103d357600080fd5b505191905056fea2646970667358221220dd056262c1202693d24667cc3fa292c0c78f308163ae1c9263c67dab81491f8564736f6c63430008140033",
         | 
| 121 | 
            +
              "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c80632cf96bf9146100715780633f093cd6146100a457806355ee6275146100d05780637bc32ecf146100f1578063a420c78714610114578063bc1b392d14610137575b600080fd5b61008c61007f36600461021e565b6001600160c01b03191690565b60405160ff1990911681526020015b60405180910390f35b6100b76100b2366004610265565b61013e565b6040516001600160c01b0319909116815260200161009b565b6100e36100de36600461021e565b610171565b60405190815260200161009b565b6101046100ff36600461021e565b61020b565b604051901515815260200161009b565b61012561012236600461033a565b90565b60405160ff909116815260200161009b565b60006100b7565b6000828260405160200161015392919061035d565b60405160208183030381529060405280519060200120905092915050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce607b6001600160c01b031985166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020591906103c1565b92915050565b60006001600160c01b0319821615610205565b60006020828403121561023057600080fd5b81356001600160c01b03198116811461024857600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561027857600080fd5b82356bffffffffffffffffffffffff8116811461029457600080fd5b9150602083013567ffffffffffffffff808211156102b157600080fd5b818501915085601f8301126102c557600080fd5b8135818111156102d7576102d761024f565b604051601f8201601f19908116603f011681019083821181831017156102ff576102ff61024f565b8160405282815288602084870101111561031857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561034c57600080fd5b813560ff8116811461024857600080fd5b6bffffffffffffffffffffffff8316815260006020604081840152835180604085015260005b8181101561039f57858101830151858201606001528201610383565b506000606082860101526060601f19601f830116850101925050509392505050565b6000602082840312156103d357600080fd5b505191905056fea2646970667358221220dd056262c1202693d24667cc3fa292c0c78f308163ae1c9263c67dab81491f8564736f6c63430008140033",
         | 
| 122 122 | 
             
              "linkReferences": {
         | 
| 123 123 | 
             
                "contracts/types/Key32.sol": {
         | 
| 124 124 | 
             
                  "Key32Lib": [
         | 
| @@ -61,8 +61,8 @@ | |
| 61 61 | 
             
                  "type": "function"
         | 
| 62 62 | 
             
                }
         | 
| 63 63 | 
             
              ],
         | 
| 64 | 
            -
              "bytecode": "0x61032f61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80632cf96bf9146100505780634a7485ba1461008357806355ee6275146100af575b600080fd5b61006b61005e36600461019a565b6001600160c01b03191690565b60405160ff1990911681526020015b60405180910390f35b6100966100913660046101e1565b6100d0565b6040516001600160c01b0319909116815260200161007a565b6100c26100bd36600461019a565b610100565b60405190815260200161007a565b6000816040516020016100e39190610292565b604051602081830303815290604052805190602001209050919050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$ | 
| 65 | 
            -
              "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80632cf96bf9146100505780634a7485ba1461008357806355ee6275146100af575b600080fd5b61006b61005e36600461019a565b6001600160c01b03191690565b60405160ff1990911681526020015b60405180910390f35b6100966100913660046101e1565b6100d0565b6040516001600160c01b0319909116815260200161007a565b6100c26100bd36600461019a565b610100565b60405190815260200161007a565b6000816040516020016100e39190610292565b604051602081830303815290604052805190602001209050919050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$ | 
| 64 | 
            +
              "bytecode": "0x61032f61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80632cf96bf9146100505780634a7485ba1461008357806355ee6275146100af575b600080fd5b61006b61005e36600461019a565b6001600160c01b03191690565b60405160ff1990911681526020015b60405180910390f35b6100966100913660046101e1565b6100d0565b6040516001600160c01b0319909116815260200161007a565b6100c26100bd36600461019a565b610100565b60405190815260200161007a565b6000816040516020016100e39190610292565b604051602081830303815290604052805190602001209050919050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce60c86001600160c01b031985166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af4158015610170573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019491906102e0565b92915050565b6000602082840312156101ac57600080fd5b81356001600160c01b0319811681146101c457600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156101f357600080fd5b813567ffffffffffffffff8082111561020b57600080fd5b818401915084601f83011261021f57600080fd5b813581811115610231576102316101cb565b604051601f8201601f19908116603f01168101908382118183101715610259576102596101cb565b8160405282815287602084870101111561027257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b818110156102bf578581018301518582016040015282016102a3565b506000604082860101526040601f19601f8301168501019250505092915050565b6000602082840312156102f257600080fd5b505191905056fea26469706673582212200548278561b146a0e65573d2f79dc26313cd18b7687b0aef81ef6cfd019f487d64736f6c63430008140033",
         | 
| 65 | 
            +
              "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80632cf96bf9146100505780634a7485ba1461008357806355ee6275146100af575b600080fd5b61006b61005e36600461019a565b6001600160c01b03191690565b60405160ff1990911681526020015b60405180910390f35b6100966100913660046101e1565b6100d0565b6040516001600160c01b0319909116815260200161007a565b6100c26100bd36600461019a565b610100565b60405190815260200161007a565b6000816040516020016100e39190610292565b604051602081830303815290604052805190602001209050919050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce60c86001600160c01b031985166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af4158015610170573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019491906102e0565b92915050565b6000602082840312156101ac57600080fd5b81356001600160c01b0319811681146101c457600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156101f357600080fd5b813567ffffffffffffffff8082111561020b57600080fd5b818401915084601f83011261021f57600080fd5b813581811115610231576102316101cb565b604051601f8201601f19908116603f01168101908382118183101715610259576102596101cb565b8160405282815287602084870101111561027257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b818110156102bf578581018301518582016040015282016102a3565b506000604082860101526040601f19601f8301168501019250505092915050565b6000602082840312156102f257600080fd5b505191905056fea26469706673582212200548278561b146a0e65573d2f79dc26313cd18b7687b0aef81ef6cfd019f487d64736f6c63430008140033",
         | 
| 66 66 | 
             
              "linkReferences": {
         | 
| 67 67 | 
             
                "contracts/types/Key32.sol": {
         | 
| 68 68 | 
             
                  "Key32Lib": [
         | 
| @@ -131,8 +131,8 @@ | |
| 131 131 | 
             
                  "type": "function"
         | 
| 132 132 | 
             
                }
         | 
| 133 133 | 
             
              ],
         | 
| 134 | 
            -
              "bytecode": "0x6102a461003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806368aebf7b1161006557806368aebf7b14610119578063a42e52e914610127578063bc1b392d14610144578063f37f38f01461014b57600080fd5b8063057182b41461008c578063545ce21c146100bd57806367cb8ec1146100e7575b600080fd5b6100a861009a36600461020b565b67ffffffffffffffff161590565b60405190151581526020015b60405180910390f35b6100ce6100cb36600461020b565b90565b60405167ffffffffffffffff90911681526020016100b4565b6101066100f536600461020b565b60081b68ffffffffffffffff001690565b60405160ff1990911681526020016100b4565b6100ce6100cb36600461023c565b6100a861013536600461020b565b67ffffffffffffffff16151590565b60006100ce565b61015e61015936600461020b565b61016c565b6040519081526020016100b4565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$ | 
| 135 | 
            -
              "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806368aebf7b1161006557806368aebf7b14610119578063a42e52e914610127578063bc1b392d14610144578063f37f38f01461014b57600080fd5b8063057182b41461008c578063545ce21c146100bd57806367cb8ec1146100e7575b600080fd5b6100a861009a36600461020b565b67ffffffffffffffff161590565b60405190151581526020015b60405180910390f35b6100ce6100cb36600461020b565b90565b60405167ffffffffffffffff90911681526020016100b4565b6101066100f536600461020b565b60081b68ffffffffffffffff001690565b60405160ff1990911681526020016100b4565b6100ce6100cb36600461023c565b6100a861013536600461020b565b67ffffffffffffffff16151590565b60006100ce565b61015e61015936600461020b565b61016c565b6040519081526020016100b4565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$ | 
| 134 | 
            +
              "bytecode": "0x6102a461003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806368aebf7b1161006557806368aebf7b14610119578063a42e52e914610127578063bc1b392d14610144578063f37f38f01461014b57600080fd5b8063057182b41461008c578063545ce21c146100bd57806367cb8ec1146100e7575b600080fd5b6100a861009a36600461020b565b67ffffffffffffffff161590565b60405190151581526020015b60405180910390f35b6100ce6100cb36600461020b565b90565b60405167ffffffffffffffff90911681526020016100b4565b6101066100f536600461020b565b60081b68ffffffffffffffff001690565b60405160ff1990911681526020016100b4565b6100ce6100cb36600461023c565b6100a861013536600461020b565b67ffffffffffffffff16151590565b60006100ce565b61015e61015936600461020b565b61016c565b6040519081526020016100b4565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce6014600885901b68ffffffffffffffff00166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102059190610255565b92915050565b60006020828403121561021d57600080fd5b813567ffffffffffffffff8116811461023557600080fd5b9392505050565b60006020828403121561024e57600080fd5b5035919050565b60006020828403121561026757600080fd5b505191905056fea26469706673582212203660a82977ddfc4eba71f947431e7a360093cacc7d8cf235484f4ea935646cb464736f6c63430008140033",
         | 
| 135 | 
            +
              "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806368aebf7b1161006557806368aebf7b14610119578063a42e52e914610127578063bc1b392d14610144578063f37f38f01461014b57600080fd5b8063057182b41461008c578063545ce21c146100bd57806367cb8ec1146100e7575b600080fd5b6100a861009a36600461020b565b67ffffffffffffffff161590565b60405190151581526020015b60405180910390f35b6100ce6100cb36600461020b565b90565b60405167ffffffffffffffff90911681526020016100b4565b6101066100f536600461020b565b60081b68ffffffffffffffff001690565b60405160ff1990911681526020016100b4565b6100ce6100cb36600461023c565b6100a861013536600461020b565b67ffffffffffffffff16151590565b60006100ce565b61015e61015936600461020b565b61016c565b6040519081526020016100b4565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce6014600885901b68ffffffffffffffff00166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102059190610255565b92915050565b60006020828403121561021d57600080fd5b813567ffffffffffffffff8116811461023557600080fd5b9392505050565b60006020828403121561024e57600080fd5b5035919050565b60006020828403121561026757600080fd5b505191905056fea26469706673582212203660a82977ddfc4eba71f947431e7a360093cacc7d8cf235484f4ea935646cb464736f6c63430008140033",
         | 
| 136 136 | 
             
              "linkReferences": {
         | 
| 137 137 | 
             
                "contracts/types/Key32.sol": {
         | 
| 138 138 | 
             
                  "Key32Lib": [
         | 
| @@ -85,8 +85,8 @@ | |
| 85 85 | 
             
                  "type": "function"
         | 
| 86 86 | 
             
                }
         | 
| 87 87 | 
             
              ],
         | 
| 88 | 
            -
              "bytecode": " | 
| 89 | 
            -
              "deployedBytecode": " | 
| 88 | 
            +
              "bytecode": "0x61018c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80632c2f8a671461005b5780636f91962014610083578063ac43d83414610098578063b2466acf146100c9575b600080fd5b61006e610069366004610108565b6100df565b60405190151581526020015b60405180910390f35b61006e61009136600461013b565b60ff161590565b6100ac6100a636600461013b565b60ff1690565b6040516bffffffffffffffffffffffff909116815260200161007a565b61006e6100d736600461013b565b60ff16151590565b600060ff808416908316145b9392505050565b803560ff8116811461010357600080fd5b919050565b6000806040838503121561011b57600080fd5b610124836100f2565b9150610132602084016100f2565b90509250929050565b60006020828403121561014d57600080fd5b6100eb826100f256fea264697066735822122049f6558c0cb157a85a73ed50ebe855848931d039aa28f12620ce338c3e8bec8364736f6c63430008140033",
         | 
| 89 | 
            +
              "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80632c2f8a671461005b5780636f91962014610083578063ac43d83414610098578063b2466acf146100c9575b600080fd5b61006e610069366004610108565b6100df565b60405190151581526020015b60405180910390f35b61006e61009136600461013b565b60ff161590565b6100ac6100a636600461013b565b60ff1690565b6040516bffffffffffffffffffffffff909116815260200161007a565b61006e6100d736600461013b565b60ff16151590565b600060ff808416908316145b9392505050565b803560ff8116811461010357600080fd5b919050565b6000806040838503121561011b57600080fd5b610124836100f2565b9150610132602084016100f2565b90509250929050565b60006020828403121561014d57600080fd5b6100eb826100f256fea264697066735822122049f6558c0cb157a85a73ed50ebe855848931d039aa28f12620ce338c3e8bec8364736f6c63430008140033",
         | 
| 90 90 | 
             
              "linkReferences": {},
         | 
| 91 91 | 
             
              "deployedLinkReferences": {}
         | 
| 92 92 | 
             
            }
         | 
| @@ -240,16 +240,29 @@ | |
| 240 240 | 
             
                  ],
         | 
| 241 241 | 
             
                  "stateMutability": "pure",
         | 
| 242 242 | 
             
                  "type": "function"
         | 
| 243 | 
            +
                },
         | 
| 244 | 
            +
                {
         | 
| 245 | 
            +
                  "inputs": [],
         | 
| 246 | 
            +
                  "name": "zero",
         | 
| 247 | 
            +
                  "outputs": [
         | 
| 248 | 
            +
                    {
         | 
| 249 | 
            +
                      "internalType": "Timestamp",
         | 
| 250 | 
            +
                      "name": "",
         | 
| 251 | 
            +
                      "type": "uint40"
         | 
| 252 | 
            +
                    }
         | 
| 253 | 
            +
                  ],
         | 
| 254 | 
            +
                  "stateMutability": "pure",
         | 
| 255 | 
            +
                  "type": "function"
         | 
| 243 256 | 
             
                }
         | 
| 244 257 | 
             
              ],
         | 
| 245 | 
            -
              "bytecode": " | 
| 246 | 
            -
              "deployedBytecode": " | 
| 258 | 
            +
              "bytecode": "0x6103d161003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100be5760003560e01c8063adb618321161007b578063adb618321461016d578063add9ce9914610173578063bc1b392d14610186578063c24922ce1461018d578063da09d484146101a0578063ddf3d631146101c657600080fd5b8063790a38ad146100c357806383ffcdef146100f15780638d38cd4b1461010457806394335b1a1461011e5780639df8763914610131578063a5798b4e14610144575b600080fd5b6100dc6100d1366004610304565b64ffffffffff161590565b60405190151581526020015b60405180910390f35b6100dc6100ff366004610328565b6101d9565b6100dc610112366004610304565b64ffffffffff16151590565b6100dc61012c366004610328565b6101f2565b6100dc61013f366004610328565b610207565b610157610152366004610328565b61021b565b60405164ffffffffff90911681526020016100e8565b42610157565b6100dc610181366004610328565b6102b0565b6000610157565b6100dc61019b366004610328565b6102c4565b6101b86101ae366004610304565b64ffffffffff1690565b6040519081526020016100e8565b6100dc6101d4366004610328565b6102d9565b600064ffffffffff808316908416115b90505b92915050565b600064ffffffffff80831690841611156101e9565b600064ffffffffff808416908316146101e9565b604051633682752160e21b815264ffffffffff821660048201526000906101e99073__$a3c3b8d16d3b00e17e1b34e034b17e7fd4$__9063da09d48490602401602060405180830381865af4158015610278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029c9190610361565b6102ad9064ffffffffff861661037a565b90565b600064ffffffffff808316908416106101e9565b600064ffffffffff80831690841610156101e9565b600064ffffffffff80841690831614156101e9565b64ffffffffff8116811461030157600080fd5b50565b60006020828403121561031657600080fd5b8135610321816102ee565b9392505050565b6000806040838503121561033b57600080fd5b8235610346816102ee565b91506020830135610356816102ee565b809150509250929050565b60006020828403121561037357600080fd5b5051919050565b808201808211156101ec57634e487b7160e01b600052601160045260246000fdfea26469706673582212209a859a9d2e862bf8df4a8ca5002e1814474f9c343aa91fa3f113da71f0d1f3dc64736f6c63430008140033",
         | 
| 259 | 
            +
              "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100be5760003560e01c8063adb618321161007b578063adb618321461016d578063add9ce9914610173578063bc1b392d14610186578063c24922ce1461018d578063da09d484146101a0578063ddf3d631146101c657600080fd5b8063790a38ad146100c357806383ffcdef146100f15780638d38cd4b1461010457806394335b1a1461011e5780639df8763914610131578063a5798b4e14610144575b600080fd5b6100dc6100d1366004610304565b64ffffffffff161590565b60405190151581526020015b60405180910390f35b6100dc6100ff366004610328565b6101d9565b6100dc610112366004610304565b64ffffffffff16151590565b6100dc61012c366004610328565b6101f2565b6100dc61013f366004610328565b610207565b610157610152366004610328565b61021b565b60405164ffffffffff90911681526020016100e8565b42610157565b6100dc610181366004610328565b6102b0565b6000610157565b6100dc61019b366004610328565b6102c4565b6101b86101ae366004610304565b64ffffffffff1690565b6040519081526020016100e8565b6100dc6101d4366004610328565b6102d9565b600064ffffffffff808316908416115b90505b92915050565b600064ffffffffff80831690841611156101e9565b600064ffffffffff808416908316146101e9565b604051633682752160e21b815264ffffffffff821660048201526000906101e99073__$a3c3b8d16d3b00e17e1b34e034b17e7fd4$__9063da09d48490602401602060405180830381865af4158015610278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029c9190610361565b6102ad9064ffffffffff861661037a565b90565b600064ffffffffff808316908416106101e9565b600064ffffffffff80831690841610156101e9565b600064ffffffffff80841690831614156101e9565b64ffffffffff8116811461030157600080fd5b50565b60006020828403121561031657600080fd5b8135610321816102ee565b9392505050565b6000806040838503121561033b57600080fd5b8235610346816102ee565b91506020830135610356816102ee565b809150509250929050565b60006020828403121561037357600080fd5b5051919050565b808201808211156101ec57634e487b7160e01b600052601160045260246000fdfea26469706673582212209a859a9d2e862bf8df4a8ca5002e1814474f9c343aa91fa3f113da71f0d1f3dc64736f6c63430008140033",
         | 
| 247 260 | 
             
              "linkReferences": {
         | 
| 248 261 | 
             
                "contracts/types/Seconds.sol": {
         | 
| 249 262 | 
             
                  "SecondsLib": [
         | 
| 250 263 | 
             
                    {
         | 
| 251 264 | 
             
                      "length": 20,
         | 
| 252 | 
            -
                      "start":  | 
| 265 | 
            +
                      "start": 632
         | 
| 253 266 | 
             
                    }
         | 
| 254 267 | 
             
                  ]
         | 
| 255 268 | 
             
                }
         | 
| @@ -259,7 +272,7 @@ | |
| 259 272 | 
             
                  "SecondsLib": [
         | 
| 260 273 | 
             
                    {
         | 
| 261 274 | 
             
                      "length": 20,
         | 
| 262 | 
            -
                      "start":  | 
| 275 | 
            +
                      "start": 574
         | 
| 263 276 | 
             
                    }
         | 
| 264 277 | 
             
                  ]
         | 
| 265 278 | 
             
                }
         | 
| @@ -1,9 +1,10 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
         | 
| 5 | 
            -
            import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
         | 
| 6 4 | 
             
            import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
         | 
| 5 | 
            +
            import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
         | 
| 6 | 
            +
            import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
         | 
| 7 | 
            +
            import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
         | 
| 7 8 |  | 
| 8 9 | 
             
            import {IComponent} from "./IComponent.sol";
         | 
| 9 10 | 
             
            import {IComponents} from "../instance/module/IComponents.sol";
         | 
| @@ -19,6 +20,7 @@ import {VersionPart} from "../types/Version.sol"; | |
| 19 20 | 
             
            import {Registerable} from "../shared/Registerable.sol";
         | 
| 20 21 | 
             
            import {RoleId, RoleIdLib} from "../types/RoleId.sol";
         | 
| 21 22 | 
             
            import {IAccess} from "../instance/module/IAccess.sol";
         | 
| 23 | 
            +
            import {TokenHandler} from "../shared/TokenHandler.sol";
         | 
| 22 24 | 
             
            import {VersionPart} from "../types/Version.sol";
         | 
| 23 25 |  | 
| 24 26 | 
             
            // TODO discuss to inherit from oz accessmanaged
         | 
| @@ -90,17 +92,32 @@ abstract contract Component is | |
| 90 92 | 
             
                    $._wallet = address(this);
         | 
| 91 93 | 
             
                    $._token = IERC20Metadata(token);
         | 
| 92 94 |  | 
| 95 | 
            +
                    registerInterface(type(IAccessManaged).interfaceId);
         | 
| 93 96 | 
             
                    registerInterface(type(IComponent).interfaceId);
         | 
| 94 97 | 
             
                }
         | 
| 95 98 |  | 
| 96 | 
            -
                function lock() external onlyOwner  | 
| 99 | 
            +
                function lock() external onlyOwner {
         | 
| 97 100 | 
             
                    IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
         | 
| 98 101 | 
             
                }
         | 
| 99 102 |  | 
| 100 | 
            -
                function unlock() external onlyOwner  | 
| 103 | 
            +
                function unlock() external onlyOwner {
         | 
| 101 104 | 
             
                    IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
         | 
| 102 105 | 
             
                }
         | 
| 103 106 |  | 
| 107 | 
            +
                function approveTokenHandler(uint256 spendingLimitAmount) external onlyOwner {
         | 
| 108 | 
            +
                    IComponents.ComponentInfo memory info = getComponentInfo();
         | 
| 109 | 
            +
             | 
| 110 | 
            +
                    if(info.wallet != address(this)) {
         | 
| 111 | 
            +
                        revert ErrorComponentWalletNotComponent();
         | 
| 112 | 
            +
                    }
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                    info.token.approve(
         | 
| 115 | 
            +
                        address(info.tokenHandler),
         | 
| 116 | 
            +
                        spendingLimitAmount);
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                    emit LogComponentTokenHandlerApproved(spendingLimitAmount);
         | 
| 119 | 
            +
                }
         | 
| 120 | 
            +
             | 
| 104 121 | 
             
                function setWallet(address newWallet)
         | 
| 105 122 | 
             
                    external
         | 
| 106 123 | 
             
                    override
         | 
| @@ -195,6 +212,10 @@ abstract contract Component is | |
| 195 212 | 
             
                    return _getComponentStorage()._token;
         | 
| 196 213 | 
             
                }
         | 
| 197 214 |  | 
| 215 | 
            +
                function getTokenHandler() public view returns (TokenHandler tokenHandler) {
         | 
| 216 | 
            +
                    return getComponentInfo().tokenHandler;
         | 
| 217 | 
            +
                }
         | 
| 218 | 
            +
             | 
| 198 219 | 
             
                function isNftInterceptor() public view override returns(bool isInterceptor) {
         | 
| 199 220 | 
             
                    return _getComponentStorage()._isNftInterceptor;
         | 
| 200 221 | 
             
                }
         | 
| @@ -37,6 +37,8 @@ abstract contract Distribution is | |
| 37 37 | 
             
                    mapping(address distributor => NftId distributorNftId) _distributorNftId;
         | 
| 38 38 | 
             
                }
         | 
| 39 39 |  | 
| 40 | 
            +
                error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
         | 
| 41 | 
            +
             | 
| 40 42 | 
             
                function initializeDistribution(
         | 
| 41 43 | 
             
                    address registry,
         | 
| 42 44 | 
             
                    NftId instanceNftId,
         | 
| @@ -58,7 +60,7 @@ abstract contract Distribution is | |
| 58 60 | 
             
                    $._minDistributionOwnerFee = minDistributionOwnerFee;
         | 
| 59 61 | 
             
                    $._distributionFee = distributionFee;
         | 
| 60 62 | 
             
                    $._tokenHandler = new TokenHandler(token);
         | 
| 61 | 
            -
                    $._distributionService =  | 
| 63 | 
            +
                    $._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION())); 
         | 
| 62 64 |  | 
| 63 65 | 
             
                    registerInterface(type(IDistributionComponent).interfaceId);
         | 
| 64 66 | 
             
                }
         | 
| @@ -116,7 +118,9 @@ abstract contract Distribution is | |
| 116 118 | 
             
                    returns(NftId distributorNftId)
         | 
| 117 119 | 
             
                {
         | 
| 118 120 | 
             
                    DistributionStorage storage $ = _getDistributionStorage();
         | 
| 119 | 
            -
                     | 
| 121 | 
            +
                    if($._distributorNftId[distributor].gtz()) {
         | 
| 122 | 
            +
                        revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
         | 
| 123 | 
            +
                    }
         | 
| 120 124 |  | 
| 121 125 | 
             
                    distributorNftId = $._distributionService.createDistributor(
         | 
| 122 126 | 
             
                        distributor,
         | 
| @@ -136,10 +140,11 @@ abstract contract Distribution is | |
| 136 140 | 
             
                    // and add it
         | 
| 137 141 | 
             
                {
         | 
| 138 142 | 
             
                    DistributionStorage storage $ = _getDistributionStorage();
         | 
| 139 | 
            -
                     | 
| 140 | 
            -
             | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            +
                    // TODO re-enable once implemented
         | 
| 144 | 
            +
                    // $._distributionService.updateDistributorType(
         | 
| 145 | 
            +
                    //     distributorNftId,
         | 
| 146 | 
            +
                    //     distributorType,
         | 
| 147 | 
            +
                    //     data);
         | 
| 143 148 | 
             
                }
         | 
| 144 149 |  | 
| 145 150 | 
             
                /**
         |