@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
| @@ -75,16 +75,16 @@ contract BundleService is | |
| 75 75 | 
             
                function _updatePoolWithStakes(
         | 
| 76 76 | 
             
                    IInstance instance,
         | 
| 77 77 | 
             
                    NftId poolNftId,
         | 
| 78 | 
            -
                     | 
| 78 | 
            +
                    Amount stakingAmount
         | 
| 79 79 | 
             
                )
         | 
| 80 80 | 
             
                    internal
         | 
| 81 81 | 
             
                    returns (
         | 
| 82 82 | 
             
                        TokenHandler tokenHandler,
         | 
| 83 83 | 
             
                        address wallet,
         | 
| 84 | 
            -
                         | 
| 84 | 
            +
                        Amount netStakingAmount
         | 
| 85 85 | 
             
                    )
         | 
| 86 86 | 
             
                {
         | 
| 87 | 
            -
                    if(stakingAmount | 
| 87 | 
            +
                    if(stakingAmount.gtz()) {
         | 
| 88 88 | 
             
                        InstanceReader instanceReader = instance.getInstanceReader();
         | 
| 89 89 | 
             
                        IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
         | 
| 90 90 |  | 
| @@ -92,21 +92,21 @@ contract BundleService is | |
| 92 92 | 
             
                        wallet = componentInfo.wallet;
         | 
| 93 93 |  | 
| 94 94 | 
             
                        IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
         | 
| 95 | 
            -
                         | 
| 95 | 
            +
                        Amount poolFeeAmount;
         | 
| 96 96 |  | 
| 97 97 | 
             
                        // calculate pool fee and net staking amount
         | 
| 98 98 | 
             
                        (poolFeeAmount, netStakingAmount) = FeeLib.calculateFee(poolInfo.stakingFee, stakingAmount);
         | 
| 99 99 |  | 
| 100 100 | 
             
                        // update pool balance and fee amount
         | 
| 101 | 
            -
                        poolInfo.balanceAmount  | 
| 101 | 
            +
                        poolInfo.balanceAmount = poolInfo.balanceAmount + netStakingAmount;
         | 
| 102 102 |  | 
| 103 | 
            -
                        if(poolFeeAmount | 
| 104 | 
            -
                            poolInfo.feeAmount  | 
| 103 | 
            +
                        if(poolFeeAmount.gtz()) {
         | 
| 104 | 
            +
                            poolInfo.feeAmount = poolInfo.feeAmount + poolFeeAmount;
         | 
| 105 105 | 
             
                        }
         | 
| 106 106 |  | 
| 107 107 | 
             
                        // save updated pool info
         | 
| 108 108 | 
             
                        componentInfo.data = abi.encode(poolInfo);
         | 
| 109 | 
            -
                        instance.updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
         | 
| 109 | 
            +
                        instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
         | 
| 110 110 | 
             
                    }
         | 
| 111 111 | 
             
                }
         | 
| 112 112 |  | 
| @@ -115,7 +115,7 @@ contract BundleService is | |
| 115 115 | 
             
                    IInstance instance,
         | 
| 116 116 | 
             
                    NftId poolNftId,
         | 
| 117 117 | 
             
                    address owner, 
         | 
| 118 | 
            -
                    Fee memory  | 
| 118 | 
            +
                    Fee memory bundleFee, 
         | 
| 119 119 | 
             
                    Amount stakingAmount, 
         | 
| 120 120 | 
             
                    Seconds lifetime, 
         | 
| 121 121 | 
             
                    bytes calldata filter
         | 
| @@ -125,21 +125,6 @@ contract BundleService is | |
| 125 125 | 
             
                    // TODO add restricted and add authz for pool service
         | 
| 126 126 | 
             
                    returns(NftId bundleNftId)
         | 
| 127 127 | 
             
                {
         | 
| 128 | 
            -
                    InstanceReader instanceReader = instance.getInstanceReader();
         | 
| 129 | 
            -
             | 
| 130 | 
            -
                    // create initial bundle info
         | 
| 131 | 
            -
                    IBundle.BundleInfo  memory bundleInfo = IBundle.BundleInfo(
         | 
| 132 | 
            -
                        poolNftId,
         | 
| 133 | 
            -
                        fee,
         | 
| 134 | 
            -
                        filter,
         | 
| 135 | 
            -
                        stakingAmount,
         | 
| 136 | 
            -
                        AmountLib.zero(),
         | 
| 137 | 
            -
                        AmountLib.zero(),
         | 
| 138 | 
            -
                        lifetime,
         | 
| 139 | 
            -
                        TimestampLib.blockTimestamp().addSeconds(lifetime),
         | 
| 140 | 
            -
                        zeroTimestamp()
         | 
| 141 | 
            -
                    );
         | 
| 142 | 
            -
             | 
| 143 128 | 
             
                    // register bundle with registry
         | 
| 144 129 | 
             
                    bundleNftId = getRegistryService().registerBundle(
         | 
| 145 130 | 
             
                        IRegistry.ObjectInfo(
         | 
| @@ -154,23 +139,27 @@ contract BundleService is | |
| 154 139 | 
             
                    );
         | 
| 155 140 |  | 
| 156 141 | 
             
                    // create bundle info in instance
         | 
| 157 | 
            -
                    instance.createBundle( | 
| 142 | 
            +
                    instance.getInstanceStore().createBundle(
         | 
| 143 | 
            +
                        bundleNftId, 
         | 
| 144 | 
            +
                        IBundle.BundleInfo(
         | 
| 145 | 
            +
                            poolNftId,
         | 
| 146 | 
            +
                            bundleFee,
         | 
| 147 | 
            +
                            filter,
         | 
| 148 | 
            +
                            stakingAmount,
         | 
| 149 | 
            +
                            AmountLib.zero(),
         | 
| 150 | 
            +
                            AmountLib.zero(),
         | 
| 151 | 
            +
                            lifetime,
         | 
| 152 | 
            +
                            TimestampLib.blockTimestamp().addSeconds(lifetime),
         | 
| 153 | 
            +
                            zeroTimestamp()));
         | 
| 158 154 |  | 
| 159 155 | 
             
                    // put bundle under bundle managemet
         | 
| 160 156 | 
             
                    BundleManager bundleManager = instance.getBundleManager();
         | 
| 161 157 | 
             
                    bundleManager.add(bundleNftId);
         | 
| 162 | 
            -
                    
         | 
| 163 | 
            -
                    // transfer full staking amount to pool wallet
         | 
| 164 | 
            -
                    IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
         | 
| 165 | 
            -
                    componentInfo.tokenHandler.transfer(
         | 
| 166 | 
            -
                        owner,
         | 
| 167 | 
            -
                        componentInfo.wallet,
         | 
| 168 | 
            -
                        stakingAmount.toInt()
         | 
| 169 | 
            -
                    );
         | 
| 170 158 |  | 
| 171 159 | 
             
                    // TODO add logging
         | 
| 172 160 | 
             
                }
         | 
| 173 161 |  | 
| 162 | 
            +
             | 
| 174 163 | 
             
                function setFee(
         | 
| 175 164 | 
             
                    NftId bundleNftId,
         | 
| 176 165 | 
             
                    Fee memory fee
         | 
| @@ -178,21 +167,19 @@ contract BundleService is | |
| 178 167 | 
             
                    external
         | 
| 179 168 | 
             
                    override
         | 
| 180 169 | 
             
                {
         | 
| 181 | 
            -
                    (NftId poolNftId | 
| 170 | 
            +
                    (NftId poolNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(POOL());
         | 
| 182 171 | 
             
                    InstanceReader instanceReader = instance.getInstanceReader();
         | 
| 183 | 
            -
             | 
| 184 172 | 
             
                    IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
         | 
| 185 173 | 
             
                    if(bundleInfo.poolNftId.eqz()) {
         | 
| 186 174 | 
             
                        revert ErrorBundleServiceBundleUnknown(bundleNftId);
         | 
| 187 175 | 
             
                    }
         | 
| 188 176 |  | 
| 189 177 | 
             
                    if(bundleInfo.poolNftId != poolNftId) {
         | 
| 190 | 
            -
                        revert ErrorBundleServiceBundlePoolMismatch( | 
| 178 | 
            +
                        revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
         | 
| 191 179 | 
             
                    }
         | 
| 192 180 |  | 
| 193 181 | 
             
                    bundleInfo.fee = fee;
         | 
| 194 | 
            -
             | 
| 195 | 
            -
                    instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
         | 
| 182 | 
            +
                    instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
         | 
| 196 183 | 
             
                }
         | 
| 197 184 |  | 
| 198 185 |  | 
| @@ -201,8 +188,8 @@ contract BundleService is | |
| 201 188 | 
             
                    IInstance instance,
         | 
| 202 189 | 
             
                    NftId policyNftId, 
         | 
| 203 190 | 
             
                    NftId bundleNftId, 
         | 
| 204 | 
            -
                     | 
| 205 | 
            -
                     | 
| 191 | 
            +
                    Amount collateralAmount, // required amount to collateralize policy
         | 
| 192 | 
            +
                    Amount premiumAmount // premium part that reaches bundle for this policy
         | 
| 206 193 | 
             
                ) 
         | 
| 207 194 | 
             
                    external
         | 
| 208 195 | 
             
                    onlyService // TODO replace with restricted + appropriate granting
         | 
| @@ -217,7 +204,7 @@ contract BundleService is | |
| 217 204 | 
             
                    }
         | 
| 218 205 |  | 
| 219 206 | 
             
                    // ensure bundle capacity is sufficent to collateralize policy
         | 
| 220 | 
            -
                     | 
| 207 | 
            +
                    Amount capacity = bundleInfo.capitalAmount + premiumAmount - bundleInfo.lockedAmount;
         | 
| 221 208 | 
             
                    if(capacity < collateralAmount) {
         | 
| 222 209 | 
             
                        revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
         | 
| 223 210 | 
             
                    }
         | 
| @@ -225,7 +212,7 @@ contract BundleService is | |
| 225 212 | 
             
                    // TODO add more validation
         | 
| 226 213 |  | 
| 227 214 | 
             
                    // updated locked amount
         | 
| 228 | 
            -
                    bundleInfo.lockedAmount =  | 
| 215 | 
            +
                    bundleInfo.lockedAmount = bundleInfo.lockedAmount + collateralAmount;
         | 
| 229 216 |  | 
| 230 217 | 
             
                    // update capital and fees when premiums are involved
         | 
| 231 218 | 
             
                    _updateBundleWithPremium(instance, bundleNftId, bundleInfo, premiumAmount);
         | 
| @@ -239,40 +226,46 @@ contract BundleService is | |
| 239 226 | 
             
                    IInstance instance,
         | 
| 240 227 | 
             
                    NftId bundleNftId,
         | 
| 241 228 | 
             
                    IBundle.BundleInfo memory bundleInfo,
         | 
| 242 | 
            -
                     | 
| 229 | 
            +
                    Amount premiumAmount
         | 
| 243 230 | 
             
                )
         | 
| 244 231 | 
             
                    internal
         | 
| 245 232 | 
             
                {
         | 
| 246 233 | 
             
                    // update bundle capital and fee amounts
         | 
| 247 | 
            -
                    if(premiumAmount | 
| 234 | 
            +
                    if(premiumAmount.gtz()) {
         | 
| 248 235 | 
             
                        // calculate fees and net premium amounts
         | 
| 249 236 | 
             
                        (
         | 
| 250 | 
            -
                             | 
| 251 | 
            -
                             | 
| 237 | 
            +
                            , 
         | 
| 238 | 
            +
                            Amount netPremiumAmount
         | 
| 252 239 | 
             
                        ) = FeeLib.calculateFee(bundleInfo.fee, premiumAmount);
         | 
| 253 240 |  | 
| 254 241 | 
             
                        // update bundle info with additional capital
         | 
| 255 | 
            -
                        bundleInfo.capitalAmount =  | 
| 256 | 
            -
             | 
| 257 | 
            -
                        // update bundle info with additional fees
         | 
| 258 | 
            -
                        if(feeAmount > 0) {
         | 
| 259 | 
            -
                            bundleInfo.feeAmount = AmountLib.toAmount(bundleInfo.feeAmount.toInt() + feeAmount);
         | 
| 260 | 
            -
                        }
         | 
| 242 | 
            +
                        bundleInfo.capitalAmount = bundleInfo.capitalAmount + netPremiumAmount;
         | 
| 261 243 | 
             
                    }
         | 
| 262 244 |  | 
| 263 245 | 
             
                    // save updated bundle info
         | 
| 264 | 
            -
                    instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
         | 
| 246 | 
            +
                    instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
         | 
| 265 247 | 
             
                }
         | 
| 266 248 |  | 
| 249 | 
            +
                function updateBundleFees(
         | 
| 250 | 
            +
                    IInstance instance,
         | 
| 251 | 
            +
                    NftId bundleNftId,
         | 
| 252 | 
            +
                    Amount feeAmount
         | 
| 253 | 
            +
                )
         | 
| 254 | 
            +
                    external
         | 
| 255 | 
            +
                {
         | 
| 256 | 
            +
                    IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
         | 
| 257 | 
            +
                    bundleInfo.feeAmount = bundleInfo.feeAmount.add(feeAmount);
         | 
| 258 | 
            +
                    instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
         | 
| 259 | 
            +
                }
         | 
| 267 260 |  | 
| 268 261 | 
             
                function lock(NftId bundleNftId) 
         | 
| 269 262 | 
             
                    external
         | 
| 270 263 | 
             
                    virtual
         | 
| 271 264 | 
             
                {
         | 
| 272 | 
            -
                    (,, IInstance instance) =  | 
| 265 | 
            +
                    (,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(POOL());
         | 
| 273 266 |  | 
| 274 267 | 
             
                    // udpate bundle state
         | 
| 275 | 
            -
                    instance.updateBundleState(bundleNftId, PAUSED());
         | 
| 268 | 
            +
                    instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
         | 
| 276 269 |  | 
| 277 270 | 
             
                    // update set of active bundles
         | 
| 278 271 | 
             
                    BundleManager bundleManager = instance.getBundleManager();
         | 
| @@ -286,10 +279,10 @@ contract BundleService is | |
| 286 279 | 
             
                    external
         | 
| 287 280 | 
             
                    virtual
         | 
| 288 281 | 
             
                {
         | 
| 289 | 
            -
                    (,, IInstance instance) =  | 
| 282 | 
            +
                    (,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(POOL());
         | 
| 290 283 |  | 
| 291 284 | 
             
                    // udpate bundle state
         | 
| 292 | 
            -
                    instance.updateBundleState(bundleNftId, ACTIVE());
         | 
| 285 | 
            +
                    instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
         | 
| 293 286 |  | 
| 294 287 | 
             
                    // update set of active bundles
         | 
| 295 288 | 
             
                    BundleManager bundleManager = instance.getBundleManager();
         | 
| @@ -308,7 +301,7 @@ contract BundleService is | |
| 308 301 | 
             
                    // TODO add restricted and autz for pool service
         | 
| 309 302 | 
             
                {
         | 
| 310 303 | 
             
                    // udpate bundle state
         | 
| 311 | 
            -
                    instance.updateBundleState(bundleNftId, CLOSED());
         | 
| 304 | 
            +
                    instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
         | 
| 312 305 |  | 
| 313 306 | 
             
                    // ensure no open policies attached to bundle
         | 
| 314 307 | 
             
                    BundleManager bundleManager = instance.getBundleManager();
         | 
| @@ -325,7 +318,7 @@ contract BundleService is | |
| 325 318 | 
             
                function increaseBalance(
         | 
| 326 319 | 
             
                    IInstance instance,
         | 
| 327 320 | 
             
                    NftId bundleNftId, 
         | 
| 328 | 
            -
                     | 
| 321 | 
            +
                    Amount premiumAmount
         | 
| 329 322 | 
             
                ) 
         | 
| 330 323 | 
             
                    external
         | 
| 331 324 | 
             
                    onlyService 
         | 
| @@ -342,7 +335,7 @@ contract BundleService is | |
| 342 335 | 
             
                function releaseCollateral(IInstance instance,
         | 
| 343 336 | 
             
                    NftId policyNftId, 
         | 
| 344 337 | 
             
                    NftId bundleNftId, 
         | 
| 345 | 
            -
                     | 
| 338 | 
            +
                    Amount collateralAmount
         | 
| 346 339 | 
             
                ) 
         | 
| 347 340 | 
             
                    external
         | 
| 348 341 | 
             
                    onlyService 
         | 
| @@ -351,11 +344,8 @@ contract BundleService is | |
| 351 344 | 
             
                    IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
         | 
| 352 345 |  | 
| 353 346 | 
             
                    // reduce locked amount by released collateral amount
         | 
| 354 | 
            -
                    bundleInfo.lockedAmount =  | 
| 355 | 
            -
             | 
| 356 | 
            -
                    instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
         | 
| 357 | 
            -
                    
         | 
| 358 | 
            -
                    _unlinkPolicy(instance, policyNftId);
         | 
| 347 | 
            +
                    bundleInfo.lockedAmount = bundleInfo.lockedAmount - collateralAmount;
         | 
| 348 | 
            +
                    instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
         | 
| 359 349 | 
             
                }
         | 
| 360 350 |  | 
| 361 351 | 
             
                /// @dev links policy to bundle
         | 
| @@ -374,63 +364,19 @@ contract BundleService is | |
| 374 364 | 
             
                    bundleManager.linkPolicy(policyNftId);
         | 
| 375 365 | 
             
                }
         | 
| 376 366 |  | 
| 377 | 
            -
             | 
| 378 | 
            -
                function  | 
| 379 | 
            -
                     | 
| 367 | 
            +
                /// @dev unlinks policy from bundle
         | 
| 368 | 
            +
                function unlinkPolicy(
         | 
| 369 | 
            +
                    IInstance instance, 
         | 
| 370 | 
            +
                    NftId policyNftId
         | 
| 371 | 
            +
                ) 
         | 
| 372 | 
            +
                    external
         | 
| 373 | 
            +
                    virtual
         | 
| 380 374 | 
             
                {
         | 
| 381 | 
            -
                    InstanceReader instanceReader = instance.getInstanceReader();
         | 
| 382 | 
            -
                    IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
         | 
| 383 | 
            -
             | 
| 384 | 
            -
                    // ensure policy has no open claims
         | 
| 385 | 
            -
                    if (policyInfo.openClaimsCount > 0) {
         | 
| 386 | 
            -
                        revert BundleManager.ErrorBundleManagerPolicyWithOpenClaims(
         | 
| 387 | 
            -
                            policyNftId, 
         | 
| 388 | 
            -
                            policyInfo.openClaimsCount);
         | 
| 389 | 
            -
                    }
         | 
| 390 | 
            -
             | 
| 391 375 | 
             
                    // ensure policy is closeable
         | 
| 392 | 
            -
                    if ( | 
| 393 | 
            -
                         | 
| 394 | 
            -
                    {
         | 
| 395 | 
            -
                        revert BundleManager.ErrorBundleManagerPolicyNotCloseable(policyNftId);
         | 
| 376 | 
            +
                    if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
         | 
| 377 | 
            +
                        revert ErrorBundleServicePolicyNotCloseable(policyNftId);
         | 
| 396 378 | 
             
                    }
         | 
| 397 | 
            -
                    
         | 
| 398 | 
            -
                    BundleManager bundleManager = instance.getBundleManager();
         | 
| 399 | 
            -
                    bundleManager.unlinkPolicy(policyNftId);
         | 
| 400 | 
            -
                }
         | 
| 401 379 |  | 
| 402 | 
            -
             | 
| 403 | 
            -
                function _processStakingByTreasury(
         | 
| 404 | 
            -
                    InstanceReader instanceReader,
         | 
| 405 | 
            -
                    NftId poolNftId,
         | 
| 406 | 
            -
                    NftId bundleNftId,
         | 
| 407 | 
            -
                    Amount stakingAmount
         | 
| 408 | 
            -
                )
         | 
| 409 | 
            -
                    internal
         | 
| 410 | 
            -
                {
         | 
| 411 | 
            -
                    // process token transfer(s)
         | 
| 412 | 
            -
                    if(stakingAmount.gtz()) {
         | 
| 413 | 
            -
                        IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
         | 
| 414 | 
            -
                        IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
         | 
| 415 | 
            -
             | 
| 416 | 
            -
                        TokenHandler tokenHandler = componentInfo.tokenHandler;
         | 
| 417 | 
            -
                        address bundleOwner = getRegistry().ownerOf(bundleNftId);
         | 
| 418 | 
            -
                        Fee memory stakingFee = poolInfo.stakingFee;
         | 
| 419 | 
            -
             | 
| 420 | 
            -
                        // pool fee and bundle capital book keeping
         | 
| 421 | 
            -
                        if (FeeLib.gtz(stakingFee)) {
         | 
| 422 | 
            -
                            (uint256 stakingFeeAmount, uint256 netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount.toInt());
         | 
| 423 | 
            -
             | 
| 424 | 
            -
             | 
| 425 | 
            -
                            // TODO: track staking fees in pool's state (issue #177)
         | 
| 426 | 
            -
                        }
         | 
| 427 | 
            -
             | 
| 428 | 
            -
                        // transfer full staking amount to pool wallet
         | 
| 429 | 
            -
                        tokenHandler.transfer(
         | 
| 430 | 
            -
                            bundleOwner,
         | 
| 431 | 
            -
                            componentInfo.wallet,
         | 
| 432 | 
            -
                            stakingAmount.toInt()
         | 
| 433 | 
            -
                        );
         | 
| 434 | 
            -
                    }
         | 
| 380 | 
            +
                    instance.getBundleManager().unlinkPolicy(policyNftId);
         | 
| 435 381 | 
             
                }
         | 
| 436 382 | 
             
            }
         |