@etherisc/gif-next 0.0.2-f2df3e2-873 → 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/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +37 -6
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +44 -13
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +37 -6
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +44 -13
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +55 -24
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +52 -21
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +55 -24
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +52 -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 +252 -2210
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +21 -38
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +346 -2685
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +67 -49
- 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 +219 -53
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +59 -220
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +32 -117
- 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 +37 -13
- 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 +2 -2
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- 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 +75 -217
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +33 -66
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +155 -133
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +35 -64
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +463 -119
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +109 -42
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +181 -399
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +81 -94
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +11 -145
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +79 -30
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +229 -88
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +23 -273
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +40 -326
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +265 -32
- 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 +5 -13
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +213 -443
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +74 -75
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +439 -54
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +84 -37
- 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 +55 -31
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +22 -35
- 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 -13
- 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 +17 -25
- 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 +2 -2
- 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 +5 -13
- 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 +5 -13
- 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 +17 -25
- 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 +1 -1
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +100 -4
- 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 +2 -2
- 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 +42 -18
- 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 +2 -2
- 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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- 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 +21 -2
- package/contracts/components/Distribution.sol +5 -4
- package/contracts/components/IComponent.sol +16 -2
- package/contracts/components/IPoolComponent.sol +7 -6
- package/contracts/components/IProductComponent.sol +5 -4
- package/contracts/components/Pool.sol +8 -8
- package/contracts/components/Product.sol +21 -17
- package/contracts/instance/IInstance.sol +28 -53
- package/contracts/instance/IInstanceService.sol +15 -10
- package/contracts/instance/Instance.sol +90 -171
- package/contracts/instance/InstanceAccessManager.sol +35 -21
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +56 -5
- package/contracts/instance/InstanceService.sol +96 -266
- package/contracts/instance/InstanceStore.sol +212 -0
- package/contracts/instance/ObjectManager.sol +1 -1
- package/contracts/instance/base/ComponentService.sol +47 -20
- package/contracts/instance/base/KeyValueStore.sol +0 -31
- package/contracts/instance/base/Lifecycle.sol +7 -4
- package/contracts/instance/module/IComponents.sol +3 -3
- package/contracts/instance/module/IDistribution.sol +3 -2
- package/contracts/instance/module/IPolicy.sol +5 -5
- package/contracts/instance/service/ApplicationService.sol +58 -227
- package/contracts/instance/service/BundleService.sol +65 -119
- package/contracts/instance/service/ClaimService.sol +232 -34
- package/contracts/instance/service/DistributionService.sol +51 -134
- package/contracts/instance/service/IApplicationService.sol +5 -21
- package/contracts/instance/service/IBundleService.sol +32 -10
- package/contracts/instance/service/IClaimService.sol +37 -39
- package/contracts/instance/service/IDistributionService.sol +10 -22
- package/contracts/instance/service/IPolicyService.sol +15 -72
- package/contracts/instance/service/IPoolService.sol +18 -3
- package/contracts/instance/service/IPricingService.sol +37 -0
- package/contracts/instance/service/PolicyService.sol +112 -277
- package/contracts/instance/service/PoolService.sol +121 -21
- package/contracts/instance/service/PricingService.sol +275 -0
- package/contracts/instance/service/PricingServiceManager.sol +51 -0
- package/contracts/instance/service/ProductService.sol +10 -10
- package/contracts/registry/IRegistryService.sol +0 -2
- package/contracts/registry/RegistryService.sol +14 -10
- package/contracts/shared/IPolicyHolder.sol +23 -9
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +2 -0
- 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/TokenHandler.sol +4 -2
- package/contracts/types/Amount.sol +44 -0
- package/contracts/types/Fee.sol +7 -6
- package/contracts/types/ObjectType.sol +5 -1
- package/package.json +1 -1
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
@@ -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": [
|
@@ -20,6 +20,7 @@ import {VersionPart} from "../types/Version.sol";
|
|
20
20
|
import {Registerable} from "../shared/Registerable.sol";
|
21
21
|
import {RoleId, RoleIdLib} from "../types/RoleId.sol";
|
22
22
|
import {IAccess} from "../instance/module/IAccess.sol";
|
23
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
23
24
|
import {VersionPart} from "../types/Version.sol";
|
24
25
|
|
25
26
|
// TODO discuss to inherit from oz accessmanaged
|
@@ -95,14 +96,28 @@ abstract contract Component is
|
|
95
96
|
registerInterface(type(IComponent).interfaceId);
|
96
97
|
}
|
97
98
|
|
98
|
-
function lock() external onlyOwner
|
99
|
+
function lock() external onlyOwner {
|
99
100
|
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
|
100
101
|
}
|
101
102
|
|
102
|
-
function unlock() external onlyOwner
|
103
|
+
function unlock() external onlyOwner {
|
103
104
|
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
|
104
105
|
}
|
105
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
|
+
|
106
121
|
function setWallet(address newWallet)
|
107
122
|
external
|
108
123
|
override
|
@@ -197,6 +212,10 @@ abstract contract Component is
|
|
197
212
|
return _getComponentStorage()._token;
|
198
213
|
}
|
199
214
|
|
215
|
+
function getTokenHandler() public view returns (TokenHandler tokenHandler) {
|
216
|
+
return getComponentInfo().tokenHandler;
|
217
|
+
}
|
218
|
+
|
200
219
|
function isNftInterceptor() public view override returns(bool isInterceptor) {
|
201
220
|
return _getComponentStorage()._isNftInterceptor;
|
202
221
|
}
|
@@ -140,10 +140,11 @@ abstract contract Distribution is
|
|
140
140
|
// and add it
|
141
141
|
{
|
142
142
|
DistributionStorage storage $ = _getDistributionStorage();
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
143
|
+
// TODO re-enable once implemented
|
144
|
+
// $._distributionService.updateDistributorType(
|
145
|
+
// distributorNftId,
|
146
|
+
// distributorType,
|
147
|
+
// data);
|
147
148
|
}
|
148
149
|
|
149
150
|
/**
|
@@ -12,6 +12,7 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
12
12
|
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
13
13
|
import {NftId} from "../types/NftId.sol";
|
14
14
|
import {ObjectType} from "../types/ObjectType.sol";
|
15
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
15
16
|
|
16
17
|
/// @dev component base class
|
17
18
|
/// component examples are product, distribution, pool and oracle
|
@@ -29,9 +30,13 @@ interface IComponent is
|
|
29
30
|
error ErrorComponentWalletAddressIsSameAsCurrent();
|
30
31
|
error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
|
31
32
|
|
33
|
+
error ErrorComponentWalletNotComponent();
|
34
|
+
|
32
35
|
event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
|
33
36
|
event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
|
34
37
|
|
38
|
+
event LogComponentTokenHandlerApproved(uint256 limit);
|
39
|
+
|
35
40
|
/// @dev locks component to disable functions that may change state related to this component, the only exception is function "unlock"
|
36
41
|
/// only component owner (nft holder) is authorizes to call this function
|
37
42
|
function lock() external;
|
@@ -40,6 +45,11 @@ interface IComponent is
|
|
40
45
|
/// only component owner (nft holder) is authorizes to call this function
|
41
46
|
function unlock() external;
|
42
47
|
|
48
|
+
/// @dev approves token hanlder to spend up to the specified amount of tokens
|
49
|
+
/// reverts if component wallet is not component itself
|
50
|
+
/// only component owner (nft holder) is authorizes to call this function
|
51
|
+
function approveTokenHandler(uint256 spendingLimitAmount) external;
|
52
|
+
|
43
53
|
/// @dev sets the wallet address for the component
|
44
54
|
/// if the current wallet has tokens, these will be transferred
|
45
55
|
/// if the new wallet address is externally owned, an approval from the
|
@@ -49,6 +59,9 @@ interface IComponent is
|
|
49
59
|
/// @dev only product service may set product nft id during registration of product setup
|
50
60
|
function setProductNftId(NftId productNftId) external;
|
51
61
|
|
62
|
+
/// @dev defines the instance to which this component is linked to
|
63
|
+
function getInstance() external view returns (IInstance instance);
|
64
|
+
|
52
65
|
/// @dev returns the name of this component
|
53
66
|
/// to successfully register the component with an instance the name MUST be unique in the linked instance
|
54
67
|
function getName() external view returns (string memory name);
|
@@ -56,8 +69,9 @@ interface IComponent is
|
|
56
69
|
/// @dev defines which ERC20 token is used by this component
|
57
70
|
function getToken() external view returns (IERC20Metadata token);
|
58
71
|
|
59
|
-
/// @dev
|
60
|
-
|
72
|
+
/// @dev returns token handler for this component
|
73
|
+
/// only registered components return a non zero token handler
|
74
|
+
function getTokenHandler() external view returns (TokenHandler tokenHandler);
|
61
75
|
|
62
76
|
/// @dev defines the wallet address used to hold the ERC20 tokens related to this component
|
63
77
|
/// the default address is the component token address
|
@@ -1,6 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {Amount} from "../types/Amount.sol";
|
4
5
|
import {Fee} from "../types/Fee.sol";
|
5
6
|
import {IComponent} from "./IComponent.sol";
|
6
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
@@ -18,17 +19,17 @@ interface IPoolComponent is IComponent {
|
|
18
19
|
|
19
20
|
error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
|
20
21
|
|
21
|
-
event LogPoolVerifiedByPool(address pool, NftId applicationNftId,
|
22
|
+
event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
|
22
23
|
|
23
24
|
/// @dev increases the staked tokens by the specified amount
|
24
25
|
/// only the bundle owner may stake tokens
|
25
26
|
/// bundle MUST be in active or locked state
|
26
|
-
function stake(NftId bundleNftId,
|
27
|
+
function stake(NftId bundleNftId, Amount amount) external;
|
27
28
|
|
28
29
|
/// @dev decreases the staked tokens by the specified amount
|
29
30
|
/// only the bundle owner may unstake tokens from the bundle
|
30
31
|
/// bundle MUST be in active, locked or closed state
|
31
|
-
function unstake(NftId bundleNftId,
|
32
|
+
function unstake(NftId bundleNftId, Amount amount) external;
|
32
33
|
|
33
34
|
/// @dev extends the bundle lifetime of the bundle by the specified time
|
34
35
|
/// only the bundle owner may extend the bundle's lifetime
|
@@ -61,7 +62,7 @@ interface IPoolComponent is IComponent {
|
|
61
62
|
|
62
63
|
/// @dev sets the maximum overall capital amound held by this pool
|
63
64
|
/// function may only be called by pool owner
|
64
|
-
function setMaxCapitalAmount(
|
65
|
+
function setMaxCapitalAmount(Amount maxCapitalAmount) external;
|
65
66
|
|
66
67
|
/// @dev sets the required role to create/own bundles
|
67
68
|
/// may only be called once after setting up a pool
|
@@ -88,7 +89,7 @@ interface IPoolComponent is IComponent {
|
|
88
89
|
bytes memory applicationData,
|
89
90
|
NftId bundleNftId,
|
90
91
|
bytes memory bundleFilter,
|
91
|
-
|
92
|
+
Amount collateralizationAmount
|
92
93
|
) external;
|
93
94
|
|
94
95
|
/// @dev returns true iff the application matches with the bundle
|
@@ -99,7 +100,7 @@ interface IPoolComponent is IComponent {
|
|
99
100
|
bytes memory applicationData,
|
100
101
|
NftId bundleNftId,
|
101
102
|
bytes memory bundleFilter,
|
102
|
-
|
103
|
+
Amount collateralizationAmount
|
103
104
|
)
|
104
105
|
external
|
105
106
|
view
|
@@ -1,6 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {Amount} from "../types/Amount.sol";
|
4
5
|
import {Fee} from "../types/Fee.sol";
|
5
6
|
import {IComponent} from "./IComponent.sol";
|
6
7
|
import {ISetup} from "../instance/module/ISetup.sol";
|
@@ -19,20 +20,20 @@ interface IProductComponent is IComponent {
|
|
19
20
|
) external;
|
20
21
|
|
21
22
|
function calculatePremium(
|
22
|
-
|
23
|
+
Amount sumInsuredAmount,
|
23
24
|
RiskId riskId,
|
24
25
|
Seconds lifetime,
|
25
26
|
bytes memory applicationData,
|
26
27
|
NftId bundleNftId,
|
27
28
|
ReferralId referralId
|
28
|
-
) external view returns (
|
29
|
+
) external view returns (Amount premiumAmount);
|
29
30
|
|
30
31
|
function calculateNetPremium(
|
31
|
-
|
32
|
+
Amount sumInsuredAmount,
|
32
33
|
RiskId riskId,
|
33
34
|
Seconds lifetime,
|
34
35
|
bytes memory applicationData
|
35
|
-
) external view returns (
|
36
|
+
) external view returns (Amount netPremiumAmount);
|
36
37
|
|
37
38
|
|
38
39
|
function getPoolNftId() external view returns (NftId poolNftId);
|
@@ -69,7 +69,7 @@ abstract contract Pool is
|
|
69
69
|
|
70
70
|
function stake(
|
71
71
|
NftId bundleNftId,
|
72
|
-
|
72
|
+
Amount amount
|
73
73
|
)
|
74
74
|
public
|
75
75
|
virtual
|
@@ -82,7 +82,7 @@ abstract contract Pool is
|
|
82
82
|
|
83
83
|
function unstake(
|
84
84
|
NftId bundleNftId,
|
85
|
-
|
85
|
+
Amount amount
|
86
86
|
)
|
87
87
|
public
|
88
88
|
virtual
|
@@ -149,7 +149,7 @@ abstract contract Pool is
|
|
149
149
|
}
|
150
150
|
|
151
151
|
|
152
|
-
function setMaxCapitalAmount(
|
152
|
+
function setMaxCapitalAmount(Amount maxCapitalAmount)
|
153
153
|
public
|
154
154
|
virtual
|
155
155
|
restricted()
|
@@ -189,7 +189,7 @@ abstract contract Pool is
|
|
189
189
|
bytes memory applicationData,
|
190
190
|
NftId bundleNftId,
|
191
191
|
bytes memory bundleFilter,
|
192
|
-
|
192
|
+
Amount collateralizationAmount
|
193
193
|
)
|
194
194
|
public
|
195
195
|
virtual
|
@@ -218,7 +218,7 @@ abstract contract Pool is
|
|
218
218
|
bytes memory applicationData,
|
219
219
|
NftId bundleNftId,
|
220
220
|
bytes memory bundleFilter,
|
221
|
-
|
221
|
+
Amount collateralizationAmount
|
222
222
|
)
|
223
223
|
public
|
224
224
|
view
|
@@ -279,9 +279,9 @@ abstract contract Pool is
|
|
279
279
|
IComponents.PoolInfo(
|
280
280
|
NftIdLib.zero(), // will be set when GIF registers the related product
|
281
281
|
PUBLIC_ROLE(), // bundleOwnerRole
|
282
|
-
|
283
|
-
|
284
|
-
|
282
|
+
AmountLib.max(), // maxCapitalAmount,
|
283
|
+
AmountLib.zero(), // initial balance amount
|
284
|
+
AmountLib.zero(), // initial fee amount
|
285
285
|
isNftInterceptor(), // isInterceptingBundleTransfers
|
286
286
|
false, // isExternallyManaged,
|
287
287
|
false, // isVerifyingApplications,
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
|
-
import {Amount} from "../types/Amount.sol";
|
6
|
+
import {Amount, AmountLib} from "../types/Amount.sol";
|
7
7
|
import {ClaimId} from "../types/ClaimId.sol";
|
8
8
|
import {Component} from "./Component.sol";
|
9
9
|
import {Fee} from "../types/Fee.sol";
|
@@ -12,10 +12,11 @@ import {IApplicationService} from "../instance/service/IApplicationService.sol";
|
|
12
12
|
import {IPolicyService} from "../instance/service/IPolicyService.sol";
|
13
13
|
import {IProductService} from "../instance/service/IProductService.sol";
|
14
14
|
import {IClaimService} from "../instance/service/IClaimService.sol";
|
15
|
+
import {IPricingService} from "../instance/service/IPricingService.sol";
|
15
16
|
import {IProductComponent} from "./IProductComponent.sol";
|
16
17
|
import {NftId, NftIdLib} from "../types/NftId.sol";
|
17
18
|
import {PayoutId} from "../types/PayoutId.sol";
|
18
|
-
import {PRODUCT, APPLICATION, POLICY, CLAIM } from "../types/ObjectType.sol";
|
19
|
+
import {PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../types/ObjectType.sol";
|
19
20
|
import {ReferralId} from "../types/Referral.sol";
|
20
21
|
import {RiskId, RiskIdLib} from "../types/RiskId.sol";
|
21
22
|
import {Seconds} from "../types/Seconds.sol";
|
@@ -43,6 +44,7 @@ abstract contract Product is
|
|
43
44
|
IApplicationService _applicationService;
|
44
45
|
IPolicyService _policyService;
|
45
46
|
IClaimService _claimService;
|
47
|
+
IPricingService _pricingService;
|
46
48
|
Pool _pool;
|
47
49
|
Distribution _distribution;
|
48
50
|
Fee _initialProductFee;
|
@@ -78,6 +80,7 @@ abstract contract Product is
|
|
78
80
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
79
81
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
80
82
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
83
|
+
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
81
84
|
$._pool = Pool(pool);
|
82
85
|
$._distribution = Distribution(distribution);
|
83
86
|
$._initialProductFee = productFee;
|
@@ -139,7 +142,7 @@ abstract contract Product is
|
|
139
142
|
function _createApplication(
|
140
143
|
address applicationOwner,
|
141
144
|
RiskId riskId,
|
142
|
-
|
145
|
+
Amount sumInsuredAmount,
|
143
146
|
Seconds lifetime,
|
144
147
|
NftId bundleNftId,
|
145
148
|
ReferralId referralId,
|
@@ -211,7 +214,7 @@ abstract contract Product is
|
|
211
214
|
internal
|
212
215
|
returns(ClaimId)
|
213
216
|
{
|
214
|
-
return _getProductStorage().
|
217
|
+
return _getProductStorage()._claimService.submit(
|
215
218
|
policyNftId,
|
216
219
|
claimAmount,
|
217
220
|
claimData);
|
@@ -224,7 +227,7 @@ abstract contract Product is
|
|
224
227
|
)
|
225
228
|
internal
|
226
229
|
{
|
227
|
-
_getProductStorage().
|
230
|
+
_getProductStorage()._claimService.confirm(
|
228
231
|
policyNftId,
|
229
232
|
claimId,
|
230
233
|
confirmedAmount);
|
@@ -236,7 +239,7 @@ abstract contract Product is
|
|
236
239
|
)
|
237
240
|
internal
|
238
241
|
{
|
239
|
-
_getProductStorage().
|
242
|
+
_getProductStorage()._claimService.decline(
|
240
243
|
policyNftId,
|
241
244
|
claimId);
|
242
245
|
}
|
@@ -247,7 +250,7 @@ abstract contract Product is
|
|
247
250
|
)
|
248
251
|
internal
|
249
252
|
{
|
250
|
-
_getProductStorage().
|
253
|
+
_getProductStorage()._claimService.close(
|
251
254
|
policyNftId,
|
252
255
|
claimId);
|
253
256
|
}
|
@@ -261,7 +264,7 @@ abstract contract Product is
|
|
261
264
|
internal
|
262
265
|
returns (PayoutId)
|
263
266
|
{
|
264
|
-
return _getProductStorage().
|
267
|
+
return _getProductStorage()._claimService.createPayout(
|
265
268
|
policyNftId,
|
266
269
|
claimId,
|
267
270
|
amount,
|
@@ -274,13 +277,13 @@ abstract contract Product is
|
|
274
277
|
)
|
275
278
|
internal
|
276
279
|
{
|
277
|
-
_getProductStorage().
|
280
|
+
_getProductStorage()._claimService.processPayout(
|
278
281
|
policyNftId,
|
279
282
|
payoutId);
|
280
283
|
}
|
281
284
|
|
282
285
|
function calculatePremium(
|
283
|
-
|
286
|
+
Amount sumInsuredAmount,
|
284
287
|
RiskId riskId,
|
285
288
|
Seconds lifetime,
|
286
289
|
bytes memory applicationData,
|
@@ -290,9 +293,9 @@ abstract contract Product is
|
|
290
293
|
external
|
291
294
|
view
|
292
295
|
override
|
293
|
-
returns (
|
296
|
+
returns (Amount premiumAmount)
|
294
297
|
{
|
295
|
-
IPolicy.Premium memory premium = _getProductStorage().
|
298
|
+
IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
|
296
299
|
getNftId(),
|
297
300
|
riskId,
|
298
301
|
sumInsuredAmount,
|
@@ -301,11 +304,12 @@ abstract contract Product is
|
|
301
304
|
bundleNftId,
|
302
305
|
referralId
|
303
306
|
);
|
304
|
-
|
307
|
+
|
308
|
+
return AmountLib.toAmount(premium.premiumAmount);
|
305
309
|
}
|
306
310
|
|
307
311
|
function calculateNetPremium(
|
308
|
-
|
312
|
+
Amount sumInsuredAmount,
|
309
313
|
RiskId riskId,
|
310
314
|
Seconds lifetime,
|
311
315
|
bytes memory applicationData
|
@@ -313,10 +317,10 @@ abstract contract Product is
|
|
313
317
|
external
|
314
318
|
view
|
315
319
|
virtual override
|
316
|
-
returns (
|
320
|
+
returns (Amount netPremiumAmount)
|
317
321
|
{
|
318
322
|
// default 10% of sum insured
|
319
|
-
return sumInsuredAmount / 10;
|
323
|
+
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
320
324
|
}
|
321
325
|
|
322
326
|
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
@@ -368,4 +372,4 @@ abstract contract Product is
|
|
368
372
|
function _getProductService() internal view returns (IProductService) {
|
369
373
|
return _getProductStorage()._productService;
|
370
374
|
}
|
371
|
-
}
|
375
|
+
}
|