@etherisc/gif-next 0.0.2-704b918-802 → 0.0.2-70b1050-183

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.
Files changed (176) hide show
  1. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  2. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  4. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  12. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  14. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  15. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  16. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  17. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  18. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  19. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +14 -14
  20. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  22. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  23. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +56 -62
  24. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +16 -20
  26. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  27. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  28. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  29. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  30. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  31. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  32. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  33. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  34. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  35. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  36. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  37. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  38. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  39. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  40. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  41. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  42. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  51. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  52. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  53. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  54. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  55. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  56. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  57. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  58. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  62. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  65. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  66. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  67. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  68. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  69. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  70. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  72. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  74. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  75. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  76. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  79. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  80. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  81. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  82. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  83. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +28 -44
  85. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +15 -23
  87. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  88. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  89. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  90. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  91. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  92. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  93. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  94. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  95. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  96. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  97. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  98. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  99. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  100. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  101. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  102. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  103. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  104. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  105. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  106. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  108. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  109. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  110. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  111. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  112. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  113. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  114. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  115. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  116. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  117. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  118. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  119. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  120. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  121. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  122. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  123. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  124. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  125. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  126. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  127. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  128. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  129. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  130. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  131. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  132. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  133. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  134. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  135. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  136. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  137. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  138. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  139. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  140. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  142. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  143. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  144. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  145. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  146. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  147. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  148. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  149. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  150. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  151. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  152. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  153. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  154. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  155. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  156. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  157. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  158. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  159. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  160. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  161. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  162. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  163. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  164. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  165. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  166. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  167. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  168. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  169. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  170. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  171. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  172. package/contracts/examples/fire/FirePool.sol +1 -0
  173. package/contracts/examples/fire/FireProduct.sol +13 -15
  174. package/contracts/examples/fire/FireProductAuthorization.sol +1 -4
  175. package/contracts/product/PolicyService.sol +7 -12
  176. package/package.json +1 -1
@@ -35,9 +35,7 @@ function ONE_YEAR() pure returns (Seconds) {
35
35
  contract FireProduct is
36
36
  BasicProduct
37
37
  {
38
- error ErrorFireProductCityUnknown(string cityName);
39
-
40
- string[] private _cities;
38
+ string[] _cities;
41
39
  // map from city name to the RiskId
42
40
  mapping(string cityName => RiskId risk) private _riskMapping;
43
41
 
@@ -105,7 +103,7 @@ contract FireProduct is
105
103
  restricted()
106
104
  {
107
105
  if (_riskMapping[cityName].eqz()) {
108
- revert ErrorFireProductCityUnknown(cityName);
106
+ revert(); // TODO: custom error
109
107
  }
110
108
 
111
109
  _updateRiskState(
@@ -121,7 +119,7 @@ contract FireProduct is
121
119
  restricted()
122
120
  {
123
121
  if (_riskMapping[cityName].eqz()) {
124
- revert ErrorFireProductCityUnknown(cityName);
122
+ revert(); // TODO: custom error
125
123
  }
126
124
 
127
125
  _updateRiskState(
@@ -142,7 +140,7 @@ contract FireProduct is
142
140
  {
143
141
  RiskId riskId = _riskMapping[cityName];
144
142
  if (riskId.eqz()) {
145
- revert ErrorFireProductCityUnknown(cityName);
143
+ revert(); // TODO: custom error
146
144
  }
147
145
  premiumAmount = calculatePremium(
148
146
  sumInsured,
@@ -219,17 +217,17 @@ contract FireProduct is
219
217
  _riskMapping[cityName] = riskId;
220
218
  }
221
219
 
222
- /// @dev Calling this method will lock the sum insured amount in the pool and activate the policy at the given time.
223
- /// It will also collect the tokens payment for the premium. An approval with the correct amount towards the TokenHandler of the product is therefor required.
224
220
  function createPolicy(
225
- NftId policyNftId,
221
+ NftId applicationNftId,
222
+ bool requirePremiumPayment,
226
223
  Timestamp activateAt
227
- )
228
- public
229
- restricted()
230
- {
231
- _createPolicy(policyNftId, activateAt);
232
- _collectPremium(policyNftId, activateAt);
224
+ ) public {
225
+ // TODO: implement createPolicy
226
+
227
+ // _createPolicy(applicationNftId, activateAt);
228
+ // if (requirePremiumPayment == true) {
229
+ // _collectPremium(applicationNftId, activateAt);
230
+ // }
233
231
  }
234
232
 
235
233
  function decline(
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
5
5
  import {FireProduct} from "./FireProduct.sol";
6
6
  import {IAccess} from "../../../contracts/authorization/IAccess.sol";
7
- import {PRODUCT_OWNER_ROLE, PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
7
+ import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
8
8
 
9
9
 
10
10
  contract FireProductAuthorization
@@ -25,9 +25,6 @@ contract FireProductAuthorization
25
25
  // authorize public role (open access to any account, only allows to lock target)
26
26
  functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
27
27
  _authorize(functions, FireProduct.createApplication.selector, "createApplication");
28
-
29
- functions = _authorizeForTarget(getTargetName(), PRODUCT_OWNER_ROLE());
30
- _authorize(functions, FireProduct.createPolicy.selector, "createPolicy");
31
28
  }
32
29
 
33
30
  }
@@ -178,12 +178,9 @@ contract PolicyService is
178
178
  // update referral counter
179
179
  {
180
180
  IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
181
-
182
- if (! productInfo.distributionNftId.eqz()) { // only call distribution service if a distribution component is connected to the product
183
- _distributionService.processReferral(
184
- productInfo.distributionNftId,
185
- applicationInfo.referralId);
186
- }
181
+ _distributionService.processReferral(
182
+ productInfo.distributionNftId,
183
+ applicationInfo.referralId);
187
184
  }
188
185
 
189
186
  // log policy creation before interactions with token and policy holder
@@ -456,12 +453,10 @@ contract PolicyService is
456
453
  premium.productFeeVarAmount + premium.productFeeFixAmount);
457
454
 
458
455
  // update distribution fees and distributor commission and pool fees
459
- if (!distributionNftId.eqz()) { // only call distribution service if a distribution component is connected to the product
460
- _distributionService.processSale(
461
- distributionNftId,
462
- referralId,
463
- premium);
464
- }
456
+ _distributionService.processSale(
457
+ distributionNftId,
458
+ referralId,
459
+ premium);
465
460
 
466
461
  // update pool and bundle fees
467
462
  _poolService.processSale(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-704b918-802",
3
+ "version": "0.0.2-70b1050-183",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {