@etherisc/gif-next 3.0.0-495114d-923 → 3.0.0-52a6f7a-323
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/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- 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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- 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/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +136 -34
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +2 -2
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +2 -2
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- 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/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.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/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- 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/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- 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/IRelease.sol/IRelease.dbg.json +1 -1
- 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/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2 -2
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +2 -2
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +2 -2
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +2 -2
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- 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 +1 -1
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.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/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -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/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.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/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2 -2
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +2 -2
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- 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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/examples/flight/FlightNft.sol +85 -82
- package/contracts/registry/ChainNft.sol +1 -1
- package/package.json +1 -1
@@ -5,8 +5,10 @@ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
|
|
5
5
|
import {IERC721Metadata} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
|
6
6
|
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
7
7
|
|
8
|
+
import {IPolicy} from "../../instance/module/IPolicy.sol";
|
8
9
|
import {IRegistry} from "../../registry/IRegistry.sol";
|
9
10
|
|
11
|
+
import {Amount} from "../../type/Amount.sol";
|
10
12
|
import {ChainNft} from "../../registry/ChainNft.sol";
|
11
13
|
import {FlightProduct} from "./FlightProduct.sol";
|
12
14
|
import {InstanceReader} from "../../instance/InstanceReader.sol";
|
@@ -24,13 +26,28 @@ contract FlightNft is
|
|
24
26
|
Ownable
|
25
27
|
{
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
29
|
+
error ErrorFlightNftNotMinter();
|
30
|
+
error ErrorFlightNftAlreadyMinted(uint256 tokenId);
|
31
|
+
error ErrorFlightNftNotAvailable(uint256 tokenId);
|
32
|
+
error ErrorFlightNftNotFlightPolicy(uint256 tokenId);
|
33
|
+
|
34
|
+
ChainNft public immutable chainNft;
|
35
|
+
FlightProduct public immutable flightProduct;
|
36
|
+
InstanceReader public immutable instanceReader;
|
37
|
+
IRegistry public registry;
|
38
|
+
|
39
|
+
address public minter;
|
31
40
|
string private _baseUri;
|
32
41
|
|
33
42
|
|
43
|
+
modifier onlyMinter() {
|
44
|
+
if(msg.sender != minter) {
|
45
|
+
revert ErrorFlightNftNotMinter();
|
46
|
+
}
|
47
|
+
_;
|
48
|
+
}
|
49
|
+
|
50
|
+
|
34
51
|
constructor(
|
35
52
|
address flightProductAddress,
|
36
53
|
string memory nftName,
|
@@ -40,10 +57,12 @@ contract FlightNft is
|
|
40
57
|
ERC721(nftName, nftSymbol)
|
41
58
|
Ownable(msg.sender)
|
42
59
|
{
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
60
|
+
flightProduct = FlightProduct(flightProductAddress);
|
61
|
+
registry = flightProduct.getRegistry();
|
62
|
+
chainNft = ChainNft(registry.getChainNftAddress());
|
63
|
+
instanceReader = flightProduct.getInstance().getInstanceReader();
|
64
|
+
|
65
|
+
minter = msg.sender;
|
47
66
|
_baseUri = baseUri;
|
48
67
|
}
|
49
68
|
|
@@ -60,6 +79,43 @@ contract FlightNft is
|
|
60
79
|
}
|
61
80
|
|
62
81
|
|
82
|
+
/**
|
83
|
+
* Set the minter address.
|
84
|
+
*/
|
85
|
+
function setMinter(address minterAddress)
|
86
|
+
public
|
87
|
+
onlyOwner()
|
88
|
+
{
|
89
|
+
minter = minterAddress;
|
90
|
+
}
|
91
|
+
|
92
|
+
|
93
|
+
/**
|
94
|
+
* Mints a metadata NFT for the specified chainNft NFT.
|
95
|
+
* Only the minter can mint such NFTs.
|
96
|
+
*/
|
97
|
+
function mint(uint256 tokenId)
|
98
|
+
external
|
99
|
+
onlyMinter()
|
100
|
+
{
|
101
|
+
// verify nft does not yet exist
|
102
|
+
if (_ownerOf(tokenId) != address(0)) {
|
103
|
+
revert ErrorFlightNftAlreadyMinted(tokenId);
|
104
|
+
}
|
105
|
+
|
106
|
+
// verify nft on chainNft exists
|
107
|
+
// also checks if nft exists (ERC721NonexistentToken)
|
108
|
+
address nftOwner = chainNft.ownerOf(tokenId);
|
109
|
+
|
110
|
+
// verify nft is flight delay policy
|
111
|
+
if (registry.getParentNftId(NftIdLib.toNftId(tokenId)) != registry.getNftIdForAddress(address(flightProduct))) {
|
112
|
+
revert ErrorFlightNftNotFlightPolicy(tokenId);
|
113
|
+
}
|
114
|
+
|
115
|
+
_mint(nftOwner, tokenId);
|
116
|
+
}
|
117
|
+
|
118
|
+
|
63
119
|
/**
|
64
120
|
* @dev Return the NFT token URI for the specified token.
|
65
121
|
* No check is performed to ensure the token exists.
|
@@ -86,76 +142,27 @@ contract FlightNft is
|
|
86
142
|
function transferFrom(address from, address to, uint256 tokenId) public override { _revert(); }
|
87
143
|
|
88
144
|
function balanceOf(address owner) public override view returns (uint256 balance) {
|
89
|
-
return
|
145
|
+
return chainNft.balanceOf(owner);
|
90
146
|
}
|
91
147
|
|
92
148
|
function getApproved(uint256 tokenId) public override view returns (address operator) {
|
93
|
-
return
|
149
|
+
return chainNft.getApproved(tokenId);
|
94
150
|
}
|
95
151
|
|
96
152
|
function isApprovedForAll(address owner, address operator) public override view returns (bool) {
|
97
|
-
return
|
153
|
+
return chainNft.isApprovedForAll(owner, operator);
|
98
154
|
}
|
99
155
|
|
100
156
|
function ownerOf(uint256 tokenId) public override view returns (address owner) {
|
101
|
-
return
|
157
|
+
return chainNft.ownerOf(tokenId);
|
102
158
|
}
|
103
159
|
|
104
160
|
function supportsInterface(bytes4 interfaceId) public override view returns (bool) {
|
105
|
-
return
|
161
|
+
return chainNft.supportsInterface(interfaceId);
|
106
162
|
}
|
107
163
|
|
108
164
|
|
109
|
-
|
110
|
-
// * @dev See {IERC721Metadata-name}.
|
111
|
-
// */
|
112
|
-
// function name() public override view returns (string memory) {
|
113
|
-
// return _nftName;
|
114
|
-
// }
|
115
|
-
|
116
|
-
|
117
|
-
// /**
|
118
|
-
// * @dev See {IERC721Metadata-name}.
|
119
|
-
// */
|
120
|
-
// function symbol() public override view returns (string memory) {
|
121
|
-
// return _nftSymbol;
|
122
|
-
// }
|
123
|
-
|
124
|
-
|
125
|
-
/**
|
126
|
-
* @dev Return the NFT metadata in JSON format.
|
127
|
-
* examples:
|
128
|
-
* - https://basescan.org/address/0x4ed83635e2309a7c067d0f98efca47b920bf79b1#readContract
|
129
|
-
* {"name":"No-Punk #7580","image":"https://gateway.irys.xyz/InMDGHEx3L1YyRz6boihZGDHw4CKCRlLBlKnW6D83i4/7580.png","attributes":[{"trait_type":"Hair","value":"Cap"},{"trait_type":"Mouth","value":"Purple Lipstick"},{"trait_type":"Type","value":"Female"}]}
|
130
|
-
* - ,
|
131
|
-
* {"name":"My NFT","description": "A unique digital asset", "image": "https://example.com/nft/1.png" }
|
132
|
-
*/
|
133
|
-
function getMetadataJson(uint256 tokenId) external view returns (string memory) {
|
134
|
-
(
|
135
|
-
, // risk id
|
136
|
-
string memory flightData,
|
137
|
-
string memory departureTimeLocal,
|
138
|
-
string memory arrivalTimeLocal,
|
139
|
-
, // status
|
140
|
-
// delay minutes
|
141
|
-
) = getRiskData(NftIdLib.toNftId(tokenId));
|
142
|
-
|
143
|
-
return string(
|
144
|
-
abi.encodePacked(
|
145
|
-
"{\"name\":\"Flight Delay Policy #",
|
146
|
-
toString(tokenId),
|
147
|
-
"\",\"description\":\"Flight: ",
|
148
|
-
flightData,
|
149
|
-
", Scheduled Departure: ",
|
150
|
-
departureTimeLocal,
|
151
|
-
", Scheduled Arrival: ",
|
152
|
-
arrivalTimeLocal,
|
153
|
-
"\"}"
|
154
|
-
));
|
155
|
-
}
|
156
|
-
|
157
|
-
|
158
|
-
function getRiskData(NftId policyNftId)
|
165
|
+
function getPolicyData(NftId policyNftId)
|
159
166
|
public
|
160
167
|
view
|
161
168
|
returns (
|
@@ -163,15 +170,27 @@ contract FlightNft is
|
|
163
170
|
string memory flightData,
|
164
171
|
string memory departureTimeLocal,
|
165
172
|
string memory arrivalTimeLocal,
|
173
|
+
Amount premiumAmount,
|
174
|
+
Amount[5] memory payoutAmounts,
|
166
175
|
bytes1 status,
|
167
176
|
int256 delayMinutes
|
168
177
|
)
|
169
178
|
{
|
170
|
-
|
171
|
-
|
179
|
+
IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
|
180
|
+
|
181
|
+
// get financial data
|
182
|
+
premiumAmount = info.premiumAmount;
|
183
|
+
|
184
|
+
if (info.applicationData.length > 0) {
|
185
|
+
(, payoutAmounts) = abi.decode(info.applicationData, (Amount, Amount[5]));
|
186
|
+
}
|
187
|
+
|
188
|
+
// get risk data
|
189
|
+
riskId = info.riskId;
|
190
|
+
bytes memory data = instanceReader.getRiskInfo(riskId).data;
|
172
191
|
|
173
192
|
if (data.length > 0) {
|
174
|
-
FlightProduct.FlightRisk memory flightRisk =
|
193
|
+
FlightProduct.FlightRisk memory flightRisk = flightProduct.decodeFlightRiskData(data);
|
175
194
|
flightData = flightRisk.flightData.toString();
|
176
195
|
departureTimeLocal = flightRisk.departureTimeLocal;
|
177
196
|
arrivalTimeLocal = flightRisk.arrivalTimeLocal;
|
@@ -181,22 +200,6 @@ contract FlightNft is
|
|
181
200
|
}
|
182
201
|
|
183
202
|
|
184
|
-
/**
|
185
|
-
* returns the flight product address.
|
186
|
-
*/
|
187
|
-
function getChainNft() external view returns (address) {
|
188
|
-
return address(_chainNft);
|
189
|
-
}
|
190
|
-
|
191
|
-
|
192
|
-
/**
|
193
|
-
* returns the flight product address.
|
194
|
-
*/
|
195
|
-
function getFlightProduct() external view returns (address) {
|
196
|
-
return address(_flightProduct);
|
197
|
-
}
|
198
|
-
|
199
|
-
|
200
203
|
function toString(uint256 value) public pure returns (string memory) {
|
201
204
|
if (value == 0) {
|
202
205
|
return "0";
|
@@ -11,7 +11,7 @@ contract ChainNft is ERC721Enumerable {
|
|
11
11
|
event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
|
12
12
|
|
13
13
|
// constants
|
14
|
-
string public constant NAME = "
|
14
|
+
string public constant NAME = "Decentralized Insurance Protocol NFT";
|
15
15
|
string public constant SYMBOL = "DIPNFT";
|
16
16
|
|
17
17
|
uint256 public constant PROTOCOL_NFT_ID = 1101;
|
package/package.json
CHANGED