@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
|
}
|