@etherisc/gif-next 0.0.2-95b223b-528 → 0.0.2-95f0eec-843
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +134 -59
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +93 -49
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +85 -9
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +105 -153
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -95
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +149 -81
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +45 -82
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +145 -114
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +183 -144
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +163 -169
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +380 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -68
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +175 -141
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +259 -146
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +380 -45
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +474 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +377 -10
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +485 -83
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +999 -334
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +380 -52
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +724 -412
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +381 -77
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +82 -56
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +434 -358
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +77 -49
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +49 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -33
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +98 -54
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -82
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +119 -75
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -44
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +574 -360
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +145 -73
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +292 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +105 -45
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +87 -59
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +171 -174
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +120 -84
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +234 -3
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +63 -17
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +70 -42
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +150 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -84
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +102 -74
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +81 -53
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +218 -76
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +102 -46
- 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/IRegistry.sol/IRegistry.json +51 -16
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
- 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 +89 -54
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +728 -480
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +75 -39
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +78 -42
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +385 -63
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +60 -32
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +211 -250
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +104 -68
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +49 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -153
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +49 -21
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -32
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +268 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +163 -10
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +341 -103
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +112 -50
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +90 -61
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +218 -58
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -47
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +162 -148
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +60 -50
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +64 -26
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +18 -7
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +419 -254
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -42
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +247 -33
- package/contracts/distribution/BasicDistribution.sol +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
- package/contracts/distribution/Distribution.sol +18 -58
- package/contracts/distribution/DistributionService.sol +168 -77
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +34 -19
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +2 -7
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +26 -11
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +91 -17
- package/contracts/instance/IInstanceService.sol +50 -4
- package/contracts/instance/Instance.sol +159 -52
- package/contracts/instance/InstanceAdmin.sol +265 -170
- package/contracts/instance/InstanceAuthorizationV3.sol +75 -34
- package/contracts/instance/InstanceReader.sol +415 -379
- package/contracts/instance/InstanceService.sol +251 -144
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectLifecycle.sol +0 -3
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +16 -5
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +20 -19
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +2 -15
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +55 -94
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +27 -32
- package/contracts/pool/IPoolService.sol +57 -40
- package/contracts/pool/Pool.sol +11 -23
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +192 -193
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +85 -17
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +31 -9
- package/contracts/product/ClaimService.sol +127 -169
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +23 -1
- package/contracts/product/IClaimService.sol +2 -3
- package/contracts/product/IPolicyService.sol +20 -8
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +11 -7
- package/contracts/product/PolicyService.sol +104 -195
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +38 -35
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +30 -21
- package/contracts/product/RiskService.sol +85 -29
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +21 -19
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +19 -8
- package/contracts/registry/RegistryAdmin.sol +100 -369
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +150 -116
- package/contracts/registry/ServiceAuthorizationV3.sol +159 -22
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +17 -26
- package/contracts/shared/ComponentService.sol +263 -283
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +163 -76
- package/contracts/shared/IComponent.sol +1 -5
- package/contracts/shared/IComponentService.sol +21 -26
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +4 -7
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +41 -19
- package/contracts/staking/IStakingService.sol +21 -8
- package/contracts/staking/Staking.sol +159 -69
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +28 -19
- package/contracts/staking/StakingService.sol +74 -46
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +3 -2
- package/contracts/staking/TargetManagerLib.sol +1 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/ObjectType.sol +69 -52
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +27 -10
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -44,10 +44,7 @@ contract ObjectLifecycle is
|
|
44
44
|
|
45
45
|
function _setupBundleLifecycle() private {
|
46
46
|
setInitialState(BUNDLE(), ACTIVE());
|
47
|
-
setStateTransition(BUNDLE(), ACTIVE(), PAUSED());
|
48
47
|
setStateTransition(BUNDLE(), ACTIVE(), CLOSED());
|
49
|
-
setStateTransition(BUNDLE(), PAUSED(), ACTIVE());
|
50
|
-
setStateTransition(BUNDLE(), PAUSED(), CLOSED());
|
51
48
|
}
|
52
49
|
|
53
50
|
function _setupPolicyLifecycle() private {
|
@@ -3,7 +3,6 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Cloneable} from "./Cloneable.sol";
|
5
5
|
|
6
|
-
import {IInstance} from "../IInstance.sol";
|
7
6
|
import {LibKey32Set} from "../../type/Key32Set.sol";
|
8
7
|
import {NftId} from "../../type/NftId.sol";
|
9
8
|
import {Key32} from "../../type/Key32.sol";
|
@@ -19,21 +18,21 @@ contract ObjectSet is
|
|
19
18
|
|
20
19
|
mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
|
21
20
|
mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
|
22
|
-
|
21
|
+
address internal _instanceAddress;
|
23
22
|
|
24
23
|
/// @dev This initializer needs to be called from the instance itself.
|
25
|
-
function initialize()
|
24
|
+
function initialize(address authority, address registry)
|
26
25
|
external
|
27
26
|
initializer()
|
28
27
|
{
|
29
|
-
|
30
|
-
__Cloneable_init(
|
28
|
+
_instanceAddress = msg.sender;
|
29
|
+
__Cloneable_init(authority, registry);
|
31
30
|
|
32
|
-
emit LogObjectSetInitialized(address(
|
31
|
+
emit LogObjectSetInitialized(address(_instanceAddress));
|
33
32
|
}
|
34
33
|
|
35
|
-
function
|
36
|
-
return
|
34
|
+
function getInstanceAddress() external view returns (address) {
|
35
|
+
return _instanceAddress;
|
37
36
|
}
|
38
37
|
|
39
38
|
function _add(NftId componentNftId, Key32 key) internal {
|
@@ -0,0 +1,30 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IBundle} from "../module/IBundle.sol";
|
5
|
+
import {IInstance} from "../IInstance.sol";
|
6
|
+
import {IRisk} from "../module/IRisk.sol";
|
7
|
+
import {NftId} from "../../type/NftId.sol";
|
8
|
+
import {RiskId} from "../../type/RiskId.sol";
|
9
|
+
|
10
|
+
|
11
|
+
library ObjectSetHelperLib {
|
12
|
+
|
13
|
+
function getRiskInfo(address instanceAddress, RiskId riskId) public view returns (IRisk.RiskInfo memory) {
|
14
|
+
|
15
|
+
return IInstance(instanceAddress).getInstanceReader().getRiskInfo(riskId);
|
16
|
+
}
|
17
|
+
|
18
|
+
function getProductNftId(address instanceAddress, RiskId riskId) public view returns (NftId) {
|
19
|
+
return getRiskInfo(instanceAddress, riskId).productNftId;
|
20
|
+
}
|
21
|
+
|
22
|
+
function getBundleInfo(address instanceAddress, NftId bundleNftId) public view returns (IBundle.BundleInfo memory) {
|
23
|
+
return IInstance(instanceAddress).getInstanceReader().getBundleInfo(bundleNftId);
|
24
|
+
}
|
25
|
+
|
26
|
+
function getPoolNftId(address instanceAddress, NftId bundleNftId) public view returns (NftId) {
|
27
|
+
return getBundleInfo(instanceAddress, bundleNftId).poolNftId;
|
28
|
+
}
|
29
|
+
|
30
|
+
}
|
@@ -1,20 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../../type/Amount.sol";
|
5
4
|
import {NftId} from "../../type/NftId.sol";
|
6
5
|
import {Fee} from "../../type/Fee.sol";
|
7
|
-
import {Seconds} from "../../type/Seconds.sol";
|
8
6
|
import {Timestamp} from "../../type/Timestamp.sol";
|
9
7
|
|
10
8
|
interface IBundle {
|
11
9
|
|
12
10
|
struct BundleInfo {
|
13
|
-
|
14
|
-
Fee fee; // bundle fee on net premium amounts
|
15
|
-
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
11
|
+
// slot 0
|
16
12
|
Timestamp activatedAt;
|
17
13
|
Timestamp expiredAt; // no new policies starting with this timestamp
|
18
14
|
Timestamp closedAt; // no open policies, locked amount = 0
|
15
|
+
NftId poolNftId;
|
16
|
+
// slot 1
|
17
|
+
Fee fee; // bundle fee on net premium amounts
|
18
|
+
// slot 2
|
19
|
+
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
19
20
|
}
|
20
21
|
}
|
@@ -1,8 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
4
|
import {Amount} from "../../type/Amount.sol";
|
7
5
|
import {Fee} from "../../type/Fee.sol";
|
8
6
|
import {NftId} from "../../type/NftId.sol";
|
@@ -12,13 +10,16 @@ import {UFixed} from "../../type/UFixed.sol";
|
|
12
10
|
interface IComponents {
|
13
11
|
|
14
12
|
struct ComponentInfo {
|
13
|
+
// slot 0
|
15
14
|
string name; // component name (needs to be unique per instance)
|
16
|
-
|
15
|
+
// slot 1
|
17
16
|
TokenHandler tokenHandler;
|
17
|
+
// slot 2
|
18
18
|
bytes data; // will hold component type specific additional info (eg encoded pool info)
|
19
19
|
}
|
20
20
|
|
21
21
|
struct ProductInfo {
|
22
|
+
// slot 0
|
22
23
|
bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
|
23
24
|
bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
|
24
25
|
bool hasDistribution; // flag to indicate if distribution is enabled
|
@@ -26,26 +27,36 @@ interface IComponents {
|
|
26
27
|
uint8 numberOfOracles; // actual number of oracles
|
27
28
|
NftId poolNftId; // mandatory
|
28
29
|
NftId distributionNftId; // 0..1 (optional)
|
30
|
+
// slot 1
|
29
31
|
NftId [] oracleNftId; // 0..n (optional)
|
30
32
|
}
|
31
33
|
|
32
34
|
struct FeeInfo {
|
35
|
+
// slot 0
|
33
36
|
Fee productFee; // product fee on net premium
|
37
|
+
// slot 1
|
34
38
|
Fee processingFee; // product fee on payout amounts
|
39
|
+
// slot 2
|
35
40
|
Fee distributionFee; // distribution fee for sales that do not include commissions
|
41
|
+
// slot 3
|
36
42
|
Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
|
43
|
+
// slot 4
|
37
44
|
Fee poolFee; // pool fee on net premium
|
45
|
+
// slot 5
|
38
46
|
Fee stakingFee; // pool fee on staked capital from investor
|
47
|
+
// slot 6
|
39
48
|
Fee performanceFee; // pool fee on profits from capital investors
|
40
49
|
}
|
41
50
|
|
42
51
|
struct PoolInfo {
|
52
|
+
// slot 0
|
43
53
|
Amount maxBalanceAmount; // max balance amount allowed for pool
|
54
|
+
UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
|
55
|
+
// slot 1
|
56
|
+
UFixed retentionLevel; // amount of collateral held in pool (default 100%)
|
44
57
|
bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
|
45
58
|
bool isProcessingConfirmedClaims; // custom logic for claims confirmation
|
46
59
|
bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
|
47
60
|
bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
|
48
|
-
UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
|
49
|
-
UFixed retentionLevel; // amount of collateral held in pool (default 100%)
|
50
61
|
}
|
51
62
|
}
|
@@ -1,40 +1,53 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../../type/Amount.sol";
|
5
4
|
import {DistributorType} from "../../type/DistributorType.sol";
|
6
5
|
import {NftId} from "../../type/NftId.sol";
|
6
|
+
import {Seconds} from "../../type/Seconds.sol";
|
7
7
|
import {Timestamp} from "../../type/Timestamp.sol";
|
8
8
|
import {UFixed} from "../../type/UFixed.sol";
|
9
9
|
|
10
10
|
interface IDistribution {
|
11
11
|
|
12
12
|
struct DistributorTypeInfo {
|
13
|
-
|
13
|
+
// slot 0
|
14
14
|
UFixed minDiscountPercentage;
|
15
|
+
NftId distributionNftId;
|
16
|
+
// slot 1
|
15
17
|
UFixed maxDiscountPercentage;
|
16
|
-
UFixed commissionPercentage;
|
17
18
|
uint32 maxReferralCount;
|
18
|
-
|
19
|
+
Seconds maxReferralLifetime;
|
19
20
|
bool allowSelfReferrals;
|
20
21
|
bool allowRenewals;
|
22
|
+
// slot 2
|
23
|
+
UFixed commissionPercentage;
|
24
|
+
// slot 3
|
25
|
+
string name;
|
26
|
+
// slot 4
|
21
27
|
bytes data;
|
22
28
|
}
|
23
29
|
|
24
30
|
struct DistributorInfo {
|
31
|
+
// slot 0
|
25
32
|
DistributorType distributorType;
|
26
33
|
bool active;
|
27
|
-
bytes data;
|
28
34
|
uint32 numPoliciesSold;
|
35
|
+
// slot 1
|
36
|
+
bytes data;
|
29
37
|
}
|
30
38
|
|
31
|
-
struct ReferralInfo {
|
39
|
+
struct ReferralInfo {
|
40
|
+
// slot 0
|
41
|
+
NftId distributionNftId;
|
32
42
|
NftId distributorNftId;
|
33
|
-
string referralCode;
|
34
|
-
UFixed discountPercentage;
|
35
43
|
uint32 maxReferrals;
|
36
44
|
uint32 usedReferrals;
|
45
|
+
// slot 1
|
46
|
+
UFixed discountPercentage;
|
37
47
|
Timestamp expiryAt;
|
48
|
+
// slot 2
|
49
|
+
string referralCode;
|
50
|
+
// slot 3
|
38
51
|
bytes data;
|
39
52
|
}
|
40
53
|
|
@@ -12,29 +12,38 @@ import {Timestamp} from "../../type/Timestamp.sol";
|
|
12
12
|
interface IPolicy {
|
13
13
|
|
14
14
|
struct PremiumInfo {
|
15
|
+
// slot 0
|
15
16
|
// premium splitting per target wallet
|
16
17
|
Amount productFeeAmount;
|
17
18
|
Amount distributionFeeAndCommissionAmount;
|
19
|
+
// slot 1
|
18
20
|
Amount poolPremiumAndFeeAmount;
|
19
21
|
|
20
22
|
// detailed positions
|
21
23
|
// this is the net premium calculated by the product
|
22
24
|
Amount netPremiumAmount;
|
25
|
+
// slot 2
|
23
26
|
// fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
|
24
27
|
Amount fullPremiumAmount;
|
25
28
|
// effective premium = fullPremium - discount
|
26
29
|
Amount premiumAmount;
|
30
|
+
// slot 3
|
27
31
|
Amount productFeeFixAmount;
|
28
32
|
Amount poolFeeFixAmount;
|
33
|
+
// slot 4
|
29
34
|
Amount bundleFeeFixAmount;
|
30
35
|
Amount distributionFeeFixAmount;
|
36
|
+
// slot 5
|
31
37
|
Amount productFeeVarAmount;
|
32
38
|
Amount poolFeeVarAmount;
|
39
|
+
// slot 6
|
33
40
|
Amount bundleFeeVarAmount;
|
34
41
|
Amount distributionFeeVarAmount;
|
42
|
+
// slot 7
|
35
43
|
Amount distributionOwnerFeeFixAmount;
|
36
44
|
// this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
|
37
45
|
Amount distributionOwnerFeeVarAmount;
|
46
|
+
// slot 8
|
38
47
|
// this value is based on distributor type referenced in the referral
|
39
48
|
Amount commissionAmount;
|
40
49
|
// this is based on referral used
|
@@ -43,43 +52,54 @@ interface IPolicy {
|
|
43
52
|
|
44
53
|
/// @dev policy data for the full policy lifecycle
|
45
54
|
struct PolicyInfo {
|
46
|
-
//
|
55
|
+
// slot 0
|
47
56
|
NftId productNftId;
|
48
57
|
NftId bundleNftId;
|
49
|
-
ReferralId referralId;
|
50
58
|
RiskId riskId;
|
59
|
+
// slot 1
|
51
60
|
Amount sumInsuredAmount;
|
52
61
|
Amount premiumAmount; // expected premium at application time
|
53
|
-
|
54
|
-
|
55
|
-
// policy data that may change during the lifecycle
|
56
|
-
bytes processData;
|
62
|
+
ReferralId referralId;
|
63
|
+
// slot 2
|
57
64
|
uint16 claimsCount;
|
58
65
|
uint16 openClaimsCount;
|
59
66
|
Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
|
60
67
|
Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
|
68
|
+
// slot 3
|
61
69
|
Timestamp activatedAt; // time of underwriting
|
70
|
+
Seconds lifetime;
|
62
71
|
Timestamp expiredAt; // no new claims (activatedAt + lifetime)
|
63
72
|
Timestamp closedAt; // no locked capital (or declinedAt)
|
73
|
+
// slot 4
|
74
|
+
bytes applicationData;
|
75
|
+
// slot 5
|
76
|
+
bytes processData;
|
64
77
|
}
|
65
78
|
|
66
79
|
// claimId neeeds to be encoded policyNftId:claimId combination
|
67
80
|
struct ClaimInfo {
|
81
|
+
// slot 0
|
68
82
|
Amount claimAmount;
|
69
83
|
Amount paidAmount;
|
84
|
+
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
70
85
|
uint24 payoutsCount;
|
86
|
+
// slot 1
|
71
87
|
uint24 openPayoutsCount;
|
88
|
+
// slot 2
|
72
89
|
bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
|
90
|
+
// slot 3
|
73
91
|
bytes processData; // use case specific data that may include information supporting confirm or decline
|
74
|
-
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
75
92
|
}
|
76
93
|
|
77
94
|
// claimId neeeds to be encoded policyNftId:claimId combination
|
78
95
|
struct PayoutInfo {
|
96
|
+
// slot 0
|
79
97
|
ClaimId claimId;
|
80
98
|
Amount amount;
|
99
|
+
Timestamp paidAt; // timestamp for actual payout
|
100
|
+
// slot 1
|
81
101
|
address beneficiary; // for address(0) beneficiary is policy nft owner
|
102
|
+
// slot 2
|
82
103
|
bytes data; // use case specific supporting data
|
83
|
-
Timestamp paidAt; // timestamp for actual payout
|
84
104
|
}
|
85
105
|
}
|
@@ -2,11 +2,15 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {NftId} from "../../type/NftId.sol";
|
5
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
5
6
|
|
6
7
|
interface IRisk {
|
7
8
|
|
8
9
|
struct RiskInfo {
|
10
|
+
// slot 0
|
9
11
|
NftId productNftId;
|
12
|
+
Timestamp createdAt;
|
13
|
+
// slot 1
|
10
14
|
bytes data;
|
11
15
|
}
|
12
16
|
}
|
@@ -27,8 +27,7 @@ contract BasicOracle is
|
|
27
27
|
NftId instanceNftId,
|
28
28
|
IAuthorization authorization,
|
29
29
|
address initialOwner,
|
30
|
-
string memory name
|
31
|
-
address token
|
30
|
+
string memory name
|
32
31
|
)
|
33
32
|
internal
|
34
33
|
virtual
|
@@ -41,7 +40,6 @@ contract BasicOracle is
|
|
41
40
|
authorization,
|
42
41
|
initialOwner,
|
43
42
|
name,
|
44
|
-
token,
|
45
43
|
"");
|
46
44
|
}
|
47
45
|
}
|
@@ -14,19 +14,26 @@ contract BasicOracleAuthorization
|
|
14
14
|
is Authorization
|
15
15
|
{
|
16
16
|
|
17
|
-
constructor(
|
18
|
-
|
17
|
+
constructor(
|
18
|
+
string memory componentName,
|
19
|
+
string memory commitHash
|
20
|
+
)
|
21
|
+
Authorization(
|
22
|
+
componentName,
|
23
|
+
ORACLE(),
|
24
|
+
3,
|
25
|
+
commitHash,
|
26
|
+
true,
|
27
|
+
false)
|
19
28
|
{}
|
20
29
|
|
21
|
-
function
|
30
|
+
function _setupServiceTargets()
|
22
31
|
internal
|
23
32
|
virtual override
|
24
33
|
{
|
25
|
-
|
26
|
-
_addComponentTargetWithRole(ORACLE());
|
34
|
+
_authorizeServiceDomain(ORACLE(), address(15));
|
27
35
|
}
|
28
36
|
|
29
|
-
|
30
37
|
function _setupTargetAuthorizations()
|
31
38
|
internal
|
32
39
|
virtual override
|
@@ -34,12 +41,12 @@ contract BasicOracleAuthorization
|
|
34
41
|
IAccess.FunctionInfo[] storage functions;
|
35
42
|
|
36
43
|
// authorize public role (open access to any account, only allows to lock target)
|
37
|
-
functions = _authorizeForTarget(
|
44
|
+
functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
|
38
45
|
_authorize(functions, IOracle.request.selector, "request");
|
39
46
|
_authorize(functions, IOracle.cancel.selector, "cancel");
|
40
47
|
|
41
48
|
// authorize public role (open access to any account, only allows to lock target)
|
42
|
-
functions = _authorizeForTarget(
|
49
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
43
50
|
_authorize(functions, BasicOracle.respond.selector, "respond");
|
44
51
|
}
|
45
52
|
}
|
@@ -9,14 +9,19 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
9
9
|
interface IOracle {
|
10
10
|
|
11
11
|
struct RequestInfo {
|
12
|
+
// slot 0
|
12
13
|
NftId requesterNftId; // originator of the request
|
13
|
-
string callbackMethodName; // callback function of the requestor to call to provide response data
|
14
14
|
NftId oracleNftId; // responsible oracle component
|
15
|
-
|
16
|
-
bytes responseData;
|
15
|
+
bool isCancelled;
|
17
16
|
Timestamp respondedAt; // response timestamp
|
17
|
+
// slot 1
|
18
18
|
Timestamp expiredAt; // expiry timestamp
|
19
|
-
|
19
|
+
// slot 2
|
20
|
+
string callbackMethodName; // callback function of the requestor to call to provide response data
|
21
|
+
// slot 3
|
22
|
+
bytes requestData;
|
23
|
+
// slot 4
|
24
|
+
bytes responseData;
|
20
25
|
}
|
21
26
|
|
22
27
|
|
@@ -69,7 +69,7 @@ abstract contract Oracle is
|
|
69
69
|
override(IInstanceLinkedComponent, InstanceLinkedComponent)
|
70
70
|
onlyOwner()
|
71
71
|
restricted()
|
72
|
-
returns (Amount
|
72
|
+
returns (Amount)
|
73
73
|
{
|
74
74
|
revert ErrorOracleNotImplemented("withdrawFees");
|
75
75
|
}
|
@@ -81,7 +81,6 @@ abstract contract Oracle is
|
|
81
81
|
IAuthorization authorization,
|
82
82
|
address initialOwner,
|
83
83
|
string memory name,
|
84
|
-
address token,
|
85
84
|
bytes memory componentData // component specifidc data
|
86
85
|
)
|
87
86
|
internal
|
@@ -92,7 +91,6 @@ abstract contract Oracle is
|
|
92
91
|
registry,
|
93
92
|
productNftId,
|
94
93
|
name,
|
95
|
-
token,
|
96
94
|
ORACLE(),
|
97
95
|
authorization,
|
98
96
|
true,
|
@@ -32,11 +32,11 @@ contract OracleService is
|
|
32
32
|
initializer()
|
33
33
|
{
|
34
34
|
(
|
35
|
-
address
|
36
|
-
address
|
35
|
+
address authority,
|
36
|
+
address registry
|
37
37
|
) = abi.decode(data, (address, address));
|
38
38
|
|
39
|
-
|
39
|
+
__Service_init(authority, registry, owner);
|
40
40
|
_registerInterface(type(IOracleService).interfaceId);
|
41
41
|
}
|
42
42
|
|
@@ -48,15 +48,14 @@ contract OracleService is
|
|
48
48
|
)
|
49
49
|
external
|
50
50
|
virtual
|
51
|
-
|
51
|
+
restricted()
|
52
52
|
onlyNftOfType(oracleNftId, ORACLE())
|
53
53
|
returns (RequestId requestId)
|
54
54
|
{
|
55
|
-
//
|
56
|
-
|
55
|
+
// checks
|
57
56
|
// get and check active caller
|
58
57
|
(
|
59
|
-
IRegistry.ObjectInfo memory
|
58
|
+
IRegistry.ObjectInfo memory requesterInfo,
|
60
59
|
address instance
|
61
60
|
) = ContractLib.getAndVerifyAnyComponent(
|
62
61
|
getRegistry(), msg.sender, true);
|
@@ -65,8 +64,9 @@ contract OracleService is
|
|
65
64
|
NftId requesterNftId,
|
66
65
|
IOracleComponent oracle
|
67
66
|
) = _checkRequestParams(
|
68
|
-
getRegistry(), oracleNftId,
|
67
|
+
getRegistry(), oracleNftId, requesterInfo, expiryAt, callbackMethodName);
|
69
68
|
|
69
|
+
// effects
|
70
70
|
{
|
71
71
|
// create request info
|
72
72
|
IOracle.RequestInfo memory request = IOracle.RequestInfo({
|
@@ -84,14 +84,15 @@ contract OracleService is
|
|
84
84
|
requestId = IInstance(instance).getInstanceStore().createRequest(request);
|
85
85
|
}
|
86
86
|
|
87
|
+
emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
|
88
|
+
|
89
|
+
// interactions
|
87
90
|
// callback to oracle component
|
88
91
|
oracle.request(
|
89
92
|
requestId,
|
90
93
|
requesterNftId,
|
91
94
|
requestData,
|
92
95
|
expiryAt);
|
93
|
-
|
94
|
-
emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
|
95
96
|
}
|
96
97
|
|
97
98
|
|
@@ -103,7 +104,7 @@ contract OracleService is
|
|
103
104
|
)
|
104
105
|
external
|
105
106
|
virtual
|
106
|
-
|
107
|
+
restricted()
|
107
108
|
returns (bool success)
|
108
109
|
{
|
109
110
|
(
|
@@ -152,7 +153,7 @@ contract OracleService is
|
|
152
153
|
function resend(RequestId requestId)
|
153
154
|
external
|
154
155
|
virtual
|
155
|
-
|
156
|
+
restricted()
|
156
157
|
{
|
157
158
|
(
|
158
159
|
IRegistry.ObjectInfo memory info,
|
@@ -191,7 +192,7 @@ contract OracleService is
|
|
191
192
|
function cancel(RequestId requestId)
|
192
193
|
external
|
193
194
|
virtual
|
194
|
-
|
195
|
+
restricted()
|
195
196
|
{
|
196
197
|
(
|
197
198
|
IRegistry.ObjectInfo memory info,
|
@@ -220,7 +221,7 @@ contract OracleService is
|
|
220
221
|
function _checkRequestParams(
|
221
222
|
IRegistry registry,
|
222
223
|
NftId oracleNftId,
|
223
|
-
IRegistry.ObjectInfo memory
|
224
|
+
IRegistry.ObjectInfo memory requesterInfo,
|
224
225
|
Timestamp expiryAt,
|
225
226
|
string memory callbackMethodName
|
226
227
|
)
|
@@ -237,17 +238,17 @@ contract OracleService is
|
|
237
238
|
registry, oracleNftId, true);
|
238
239
|
|
239
240
|
// obtain return values
|
240
|
-
requesterNftId =
|
241
|
+
requesterNftId = requesterInfo.nftId;
|
241
242
|
oracle = IOracleComponent(oracleInfo.objectAddress);
|
242
243
|
|
243
244
|
// check that requester and oracle share same product cluster
|
244
|
-
if (
|
245
|
+
if (requesterInfo.objectType == PRODUCT()) {
|
245
246
|
if (oracleInfo.parentNftId != requesterNftId) {
|
246
|
-
revert ErrorOracleServiceProductMismatch(
|
247
|
+
revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterNftId, oracleInfo.parentNftId);
|
247
248
|
}
|
248
249
|
} else {
|
249
|
-
if (oracleInfo.parentNftId !=
|
250
|
-
revert ErrorOracleServiceProductMismatch(
|
250
|
+
if (oracleInfo.parentNftId != requesterInfo.parentNftId) {
|
251
|
+
revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterInfo.parentNftId, oracleInfo.parentNftId);
|
251
252
|
}
|
252
253
|
}
|
253
254
|
|
@@ -17,7 +17,7 @@ contract OracleServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
OracleService svc = new OracleService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -21,7 +21,6 @@ abstract contract BasicPool is
|
|
21
21
|
address registry,
|
22
22
|
NftId productNftId,
|
23
23
|
string memory name,
|
24
|
-
address token,
|
25
24
|
IComponents.PoolInfo memory poolInfo,
|
26
25
|
IAuthorization authorization,
|
27
26
|
address initialOwner
|
@@ -34,7 +33,6 @@ abstract contract BasicPool is
|
|
34
33
|
registry,
|
35
34
|
productNftId,
|
36
35
|
name,
|
37
|
-
token,
|
38
36
|
poolInfo,
|
39
37
|
authorization,
|
40
38
|
initialOwner,
|
@@ -84,25 +82,14 @@ abstract contract BasicPool is
|
|
84
82
|
}
|
85
83
|
|
86
84
|
|
87
|
-
function
|
85
|
+
function setBundleLocked(NftId bundleNftId, bool locked)
|
88
86
|
public
|
89
87
|
virtual
|
90
88
|
restricted()
|
91
89
|
onlyBundleOwner(bundleNftId)
|
92
90
|
onlyNftOfType(bundleNftId, BUNDLE())
|
93
91
|
{
|
94
|
-
|
95
|
-
}
|
96
|
-
|
97
|
-
|
98
|
-
function unlockBundle(NftId bundleNftId)
|
99
|
-
public
|
100
|
-
virtual
|
101
|
-
restricted()
|
102
|
-
onlyBundleOwner(bundleNftId)
|
103
|
-
onlyNftOfType(bundleNftId, BUNDLE())
|
104
|
-
{
|
105
|
-
_unlockBundle(bundleNftId);
|
92
|
+
_setBundleLocked(bundleNftId, locked);
|
106
93
|
}
|
107
94
|
|
108
95
|
|