Unpermissioned example components
This directory contains a set of unpermissioned example compoents that are mainly used for testing purposes. The expose all the available functions of the component without requiring any permissions (and thereby setup) to use them.
Components that are built in such a way should never be used in production, as they expose functions that can move tokens or other assets without any authorization.
Contracts
SimpleDistribution
import "@etherisc/gif-next/contracts/examples/unpermissioned/SimpleDistribution.sol";
-
[
constructor(registry, productNftId, authorization, initialOwner)
] -
[
initialize(registry, productNftId, authorization, initialOwner, name)
] -
[
approveTokenHandler(token, amount)
] -
[
setLocked(locked)
] -
[
setWallet(newWallet)
] -
[
createReferral2(distributorNftId, code, discountPercentage, maxReferrals, expiryAt, data)
]
-
[
setFees(distributionFee, minDistributionOwnerFee)
] -
[
createDistributorType(name, minDiscountPercentage, maxDiscountPercentage, commissionPercentage, maxReferralCount, maxReferralLifetime, allowSelfReferrals, allowRenewals, data)
] -
[
createDistributor(distributor, distributorType, data)
] -
[
changeDistributorType(distributorNftId, distributorType, data)
] -
[
createReferral(distributorNftId, code, discountPercentage, maxReferrals, expiryAt, data)
] -
[
_initializeBasicDistribution(registry, instanceNftId, authorization, initialOwner, name)
]
-
[
processRenewal(referralId, feeAmount)
] -
[
withdrawCommission(distributorNftId, amount)
] -
[
getDiscountPercentage(referralCode)
] -
[
getReferralId(referralCode)
] -
[
calculateRenewalFeeAmount(, netPremiumAmount)
] -
[
isVerifying()
] -
[
__Distribution_init(registry, productNftId, authorization, isInterceptor, initialOwner, name)
] -
[
_setFees(distributionFee, minDistributionOwnerFee)
] -
[
_createDistributorType(name, minDiscountPercentage, maxDiscountPercentage, commissionPercentage, maxReferralCount, maxReferralLifetime, allowSelfReferrals, allowRenewals, data)
] -
[
_createDistributor(distributor, distributorType, data)
] -
[
_changeDistributorType(distributorNftId, distributorType, data)
] -
[
_createReferral(distributorNftId, code, discountPercentage, maxReferrals, expiryAt, data)
] -
[
_withdrawCommission(distributorNftId, amount)
]
-
[
getInstance()
] -
[
getAuthorization()
] -
[
withdrawFees(amount)
] -
[
_sendRequest(oracleNftId, requestData, expiryAt, callbackMethod)
] -
[
_cancelRequest(requestId)
] -
[
_resendRequest(requestId)
] -
[
__InstanceLinkedComponent_init(registry, parentNftId, name, componentType, authorization, isInterceptor, initialOwner)
] -
[
_checkAndGetInstanceNftId(registryAddress, parentNftId, componentType)
] -
[
_checkAndGetRegistry(registryAddress, objectNftId, requiredType)
] -
[
_setWallet(newWallet)
] -
[
_getComponentInfo()
] -
[
_getInstanceReader()
] -
[
_withdrawFees(amount)
]
-
[
__Component_init(authority, registry, parentNftId, name, componentType, isInterceptor, initialOwner, registryData)
] -
[
nftTransferFrom(from, to, tokenId, operator)
] -
[
getWallet()
] -
[
getTokenHandler()
] -
[
getToken()
] -
[
getName()
] -
[
getVersion()
] -
[
getComponentInfo()
] -
[
getInitialComponentInfo()
] -
[
isNftInterceptor()
] -
[
isRegistered()
] -
[
_approveTokenHandler(token, amount)
] -
[
_nftTransferFrom(from, to, tokenId, operator)
] -
[
_setLocked(locked)
] -
[
_getServiceAddress(domain)
]
-
[
__Registerable_init(authority, registry, parentNftId, objectType, isInterceptor, initialOwner, data)
] -
[
isActive()
] -
[
getRelease()
] -
[
getInitialInfo()
]
-
[
_checkNftType(nftId, expectedObjectType)
] -
[
__NftOwnable_init(registry, initialOwner)
] -
[
linkToRegisteredNftId()
] -
[
getNftId()
] -
[
getOwner()
] -
[
_linkToNftOwnable(nftOwnableAddress)
]
-
[
__RegistryLinked_init(registry)
] -
[
getRegistry()
]
-
[
__ERC165_init()
] -
[
_initializeERC165()
] -
[
_registerInterface(interfaceId)
] -
[
_registerInterfaceNotInitializing(interfaceId)
] -
[
supportsInterface(interfaceId)
]
-
[
__AccessManaged_init(initialAuthority)
] -
[
__AccessManaged_init_unchained(initialAuthority)
] -
[
authority()
] -
[
setAuthority(newAuthority)
] -
[
isConsumingScheduledOp()
] -
[
_setAuthority(newAuthority)
] -
[
_checkCanCall(caller, data)
]
-
[
__Context_init()
] -
[
__Context_init_unchained()
] -
[
_msgSender()
] -
[
_msgData()
] -
[
_contextSuffixLength()
]
-
[
_checkInitializing()
] -
[
_disableInitializers()
] -
[
_getInitializedVersion()
] -
[
_isInitializing()
]
-
[
LogDistributorUpdated(to, operator)
]
-
[
LogComponentWalletAddressChanged(oldWallet, newWallet)
] -
[
LogComponentWalletTokensTransferred(from, to, amount)
] -
[
LogComponentTokenHandlerApproved(tokenHandler, token, limit, isMaxAmount)
]
-
[
LogNftOwnableNftLinkedToAddress(nftId, owner)
]
-
[
AuthorityUpdated(authority)
]
-
[
Initialized(version)
]
constructor(address registry, NftId productNftId, contract IAuthorization authorization, address initialOwner)
public
SimpleOracle
import "@etherisc/gif-next/contracts/examples/unpermissioned/SimpleOracle.sol";
-
[
constructor(registry, productNftId, authorization, initialOwner)
] -
[
initialize(registry, productNftId, authorization, initialOwner, name)
] -
[
_request(requestId, requesterId, requestData, expiryAt)
] -
[
_cancel(requestId)
] -
[
respondAsync(requestId, responseText, revertInCall, revertUntil)
] -
[
_respondSync(requestId)
]
-
[
respond(requestId, responseData)
] -
[
_initializeBasicOracle(registry, instanceNftId, authorization, initialOwner, name)
]
-
[
request(requestId, requesterId, requestData, expiryAt)
] -
[
cancel(requestId)
] -
[
isVerifying()
] -
[
withdrawFees(amount)
] -
[
__Oracle_init(registry, productNftId, authorization, initialOwner, name)
] -
[
_respond(requestId, responseData)
]
-
[
getInstance()
] -
[
getAuthorization()
] -
[
_sendRequest(oracleNftId, requestData, expiryAt, callbackMethod)
] -
[
_cancelRequest(requestId)
] -
[
_resendRequest(requestId)
] -
[
__InstanceLinkedComponent_init(registry, parentNftId, name, componentType, authorization, isInterceptor, initialOwner)
] -
[
_checkAndGetInstanceNftId(registryAddress, parentNftId, componentType)
] -
[
_checkAndGetRegistry(registryAddress, objectNftId, requiredType)
] -
[
_setWallet(newWallet)
] -
[
_getComponentInfo()
] -
[
_getInstanceReader()
] -
[
_withdrawFees(amount)
]
-
[
__Component_init(authority, registry, parentNftId, name, componentType, isInterceptor, initialOwner, registryData)
] -
[
nftTransferFrom(from, to, tokenId, operator)
] -
[
getWallet()
] -
[
getTokenHandler()
] -
[
getToken()
] -
[
getName()
] -
[
getVersion()
] -
[
getComponentInfo()
] -
[
getInitialComponentInfo()
] -
[
isNftInterceptor()
] -
[
isRegistered()
] -
[
_approveTokenHandler(token, amount)
] -
[
_nftTransferFrom(from, to, tokenId, operator)
] -
[
_setLocked(locked)
] -
[
_getServiceAddress(domain)
]
-
[
__Registerable_init(authority, registry, parentNftId, objectType, isInterceptor, initialOwner, data)
] -
[
isActive()
] -
[
getRelease()
] -
[
getInitialInfo()
]
-
[
_checkNftType(nftId, expectedObjectType)
] -
[
__NftOwnable_init(registry, initialOwner)
] -
[
linkToRegisteredNftId()
] -
[
getNftId()
] -
[
getOwner()
] -
[
_linkToNftOwnable(nftOwnableAddress)
]
-
[
__RegistryLinked_init(registry)
] -
[
getRegistry()
]
-
[
__ERC165_init()
] -
[
_initializeERC165()
] -
[
_registerInterface(interfaceId)
] -
[
_registerInterfaceNotInitializing(interfaceId)
] -
[
supportsInterface(interfaceId)
]
-
[
__AccessManaged_init(initialAuthority)
] -
[
__AccessManaged_init_unchained(initialAuthority)
] -
[
authority()
] -
[
setAuthority(newAuthority)
] -
[
isConsumingScheduledOp()
] -
[
_setAuthority(newAuthority)
] -
[
_checkCanCall(caller, data)
]
-
[
__Context_init()
] -
[
__Context_init_unchained()
] -
[
_msgSender()
] -
[
_msgData()
] -
[
_contextSuffixLength()
]
-
[
_checkInitializing()
] -
[
_disableInitializers()
] -
[
_getInitializedVersion()
] -
[
_isInitializing()
]
-
[
LogSimpleOracleRequestReceived(requestId, requesterId, synchronous, requestText)
] -
[
LogSimpleOracleCancellingReceived(requestId)
] -
[
LogSimpleOracleAsyncResponseSent(requestId, responseText)
] -
[
LogSimpleOracleSyncResponseSent(requestId, responseText)
]
-
[
LogComponentWalletAddressChanged(oldWallet, newWallet)
] -
[
LogComponentWalletTokensTransferred(from, to, amount)
] -
[
LogComponentTokenHandlerApproved(tokenHandler, token, limit, isMaxAmount)
]
-
[
LogNftOwnableNftLinkedToAddress(nftId, owner)
]
-
[
AuthorityUpdated(authority)
]
-
[
Initialized(version)
]
constructor(address registry, NftId productNftId, contract IAuthorization authorization, address initialOwner)
public
initialize(address registry, NftId productNftId, contract IAuthorization authorization, address initialOwner, string name)
public
_request(RequestId requestId, NftId requesterId, bytes requestData, Timestamp expiryAt)
internal
use case specific handling of oracle requests for now only log is emitted to verify that request has been received by oracle component
_cancel(RequestId requestId)
internal
use case specific handling of oracle requests for now only log is emitted to verify that cancelling has been received by oracle component
respondAsync(RequestId requestId, string responseText, bool revertInCall, Timestamp revertUntil)
external
SimplePool
import "@etherisc/gif-next/contracts/examples/unpermissioned/SimplePool.sol";
-
[
constructor(registry, productNftId, poolInfo, authorization, initialOwner)
] -
[
initialize(registry, productNftId, poolInfo, authorization, initialOwner)
] -
[
createBundle(fee, initialAmount, lifetime, filter)
] -
[
fundPoolWallet(amount)
] -
[
defundPoolWallet(amount)
] -
[
approveTokenHandler(token, amount)
] -
[
setLocked(locked)
] -
[
setWallet(newWallet)
]
-
[
_initializeBasicPool(registry, productNftId, name, poolInfo, authorization, initialOwner)
] -
[
stake(bundleNftId, amount)
] -
[
unstake(bundleNftId, amount)
] -
[
extend(bundleNftId, lifetimeExtension)
] -
[
setBundleLocked(bundleNftId, locked)
] -
[
closeBundle(bundleNftId)
] -
[
setBundleFee(bundleNftId, fee)
] -
[
withdrawBundleFees(bundleNftId, amount)
] -
[
setMaxBalanceAmount(maxBalanceAmount)
] -
[
setFees(poolFee, stakingFee, performanceFee)
]
-
[
getContractLocation(name)
] -
[
verifyApplication(applicationNftId, bundleNftId, collateralizationAmount)
] -
[
processConfirmedClaim(policyNftId, claimId, amount)
] -
[
applicationMatchesBundle(applicationNftId, applicationData, bundleNftId, bundleFilter, collateralizationAmount)
] -
[
getInitialPoolInfo()
] -
[
__Pool_init(registry, productNftId, name, poolInfo, authorization, initialOwner)
] -
[
_setPoolFees(poolFee, stakingFee, performanceFee)
] -
[
_setMaxBalanceAmount(maxBalanceAmount)
] -
[
_fundPoolWallet(amount)
] -
[
_defundPoolWallet(amount)
] -
[
_createBundle(bundleOwner, fee, lifetime, filter)
] -
[
_setBundleFee(bundleNftId, fee)
] -
[
_stake(bundleNftId, amount)
] -
[
_unstake(bundleNftId, amount)
] -
[
_extend(bundleNftId, lifetimeExtension)
] -
[
_setBundleLocked(bundleNftId, locked)
] -
[
_closeBundle(bundleNftId)
] -
[
_withdrawBundleFees(bundleNftId, amount)
] -
[
_processFundedClaim(policyNftId, claimId, availableAmount)
]
-
[
getInstance()
] -
[
getAuthorization()
] -
[
withdrawFees(amount)
] -
[
_sendRequest(oracleNftId, requestData, expiryAt, callbackMethod)
] -
[
_cancelRequest(requestId)
] -
[
_resendRequest(requestId)
] -
[
__InstanceLinkedComponent_init(registry, parentNftId, name, componentType, authorization, isInterceptor, initialOwner)
] -
[
_checkAndGetInstanceNftId(registryAddress, parentNftId, componentType)
] -
[
_checkAndGetRegistry(registryAddress, objectNftId, requiredType)
] -
[
_setWallet(newWallet)
] -
[
_getComponentInfo()
] -
[
_getInstanceReader()
] -
[
_withdrawFees(amount)
]
-
[
__Component_init(authority, registry, parentNftId, name, componentType, isInterceptor, initialOwner, registryData)
] -
[
nftTransferFrom(from, to, tokenId, operator)
] -
[
getWallet()
] -
[
getTokenHandler()
] -
[
getToken()
] -
[
getName()
] -
[
getVersion()
] -
[
getComponentInfo()
] -
[
getInitialComponentInfo()
] -
[
isNftInterceptor()
] -
[
isRegistered()
] -
[
_approveTokenHandler(token, amount)
] -
[
_nftTransferFrom(from, to, tokenId, operator)
] -
[
_setLocked(locked)
] -
[
_getServiceAddress(domain)
]
-
[
__Registerable_init(authority, registry, parentNftId, objectType, isInterceptor, initialOwner, data)
] -
[
isActive()
] -
[
getRelease()
] -
[
getInitialInfo()
]
-
[
_checkNftType(nftId, expectedObjectType)
] -
[
__NftOwnable_init(registry, initialOwner)
] -
[
linkToRegisteredNftId()
] -
[
getNftId()
] -
[
getOwner()
] -
[
_linkToNftOwnable(nftOwnableAddress)
]
-
[
__RegistryLinked_init(registry)
] -
[
getRegistry()
]
-
[
__ERC165_init()
] -
[
_initializeERC165()
] -
[
_registerInterface(interfaceId)
] -
[
_registerInterfaceNotInitializing(interfaceId)
] -
[
supportsInterface(interfaceId)
]
-
[
__AccessManaged_init(initialAuthority)
] -
[
__AccessManaged_init_unchained(initialAuthority)
] -
[
authority()
] -
[
setAuthority(newAuthority)
] -
[
isConsumingScheduledOp()
] -
[
_setAuthority(newAuthority)
] -
[
_checkCanCall(caller, data)
]
-
[
__Context_init()
] -
[
__Context_init_unchained()
] -
[
_msgSender()
] -
[
_msgData()
] -
[
_contextSuffixLength()
]
-
[
_checkInitializing()
] -
[
_disableInitializers()
] -
[
_getInitializedVersion()
] -
[
_isInitializing()
]
-
[
LogPoolVerifiedByPool(pool, applicationNftId, collateralizationAmount)
]
-
[
LogComponentWalletAddressChanged(oldWallet, newWallet)
] -
[
LogComponentWalletTokensTransferred(from, to, amount)
] -
[
LogComponentTokenHandlerApproved(tokenHandler, token, limit, isMaxAmount)
]
-
[
LogNftOwnableNftLinkedToAddress(nftId, owner)
]
-
[
AuthorityUpdated(authority)
]
-
[
Initialized(version)
]
constructor(address registry, NftId productNftId, struct IComponents.PoolInfo poolInfo, contract IAuthorization authorization, address initialOwner)
public
initialize(address registry, NftId productNftId, struct IComponents.PoolInfo poolInfo, contract IAuthorization authorization, address initialOwner)
public
SimpleProduct
import "@etherisc/gif-next/contracts/examples/unpermissioned/SimpleProduct.sol";
-
[
constructor(registry, instanceNftId, name, productInfo, feeInfo, authorization, initialOwner)
] -
[
initialize(registry, instanceNftid, name, productInfo, feeInfo, authorization, initialOwner)
] -
[
createRisk(id, data)
] -
[
updateRisk(id, data)
] -
[
setRiskLocked(id, locked)
] -
[
closeRisk(id)
] -
[
createApplication(applicationOwner, riskId, sumInsured, lifetime, applicationData, bundleNftId, referralId)
] -
[
createApplication2(applicationOwner, riskId, sumInsuredAmount, premiumAmount, lifetime, applicationData, bundleNftId, referralId)
] -
[
revoke(applicationNftId)
] -
[
createPolicy(applicationNftId, requirePremiumPayment, activateAt)
] -
[
createPolicy2(applicationNftId, requirePremiumPayment, activateAt, maxPremiumAmount)
] -
[
decline(policyNftId)
] -
[
expire(policyNftId, expireAt)
] -
[
collectPremium(policyNftId, activateAt)
] -
[
activate(policyNftId, activateAt)
] -
[
adjustActivation(policyNftId, activateAt)
] -
[
close(policyNftId)
] -
[
submitClaim(policyNftId, claimAmount, submissionData)
] -
[
revokeClaim(policyNftId, claimId)
] -
[
confirmClaim(policyNftId, claimId, confirmedAmount, processData)
] -
[
declineClaim(policyNftId, claimId, processData)
] -
[
cancelConfirmedClaim(policyNftId, claimId)
] -
[
createPayout(policyNftId, claimId, amount, data)
] -
[
cancelPayout(policyNftId, payoutId)
] -
[
createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data)
] -
[
processPayout(policyNftId, payoutId)
] -
[
createOracleRequest(oracleNftId, requestText, expiryAt, synchronous)
] -
[
createOracleRequest2(oracleNftId, requestText, expiryAt, synchronous, callbackMethod)
] -
[
cancelOracleRequest(requestId)
] -
[
fulfillOracleRequestSync(requestId, responseData)
] -
[
fulfillOracleRequestAsync(requestId, responseData)
] -
[
resend(requestId)
] -
[
doSomethingOnlyWhenActive()
] -
[
getOracleService()
] -
[
approveTokenHandler(token, amount)
] -
[
setLocked(locked)
] -
[
setWallet(newWallet)
]
-
[
setFees(productFee, processingFee)
] -
[
_initializeBasicProduct(registry, instanceNftId, name, productInfo, feeInfo, authorization, initialOwner)
]
-
[
registerComponent(component)
] -
[
processFundedClaim(policyNftId, claimId, availableAmount)
] -
[
calculatePremium(sumInsuredAmount, riskId, lifetime, applicationData, bundleNftId, referralId)
] -
[
calculateNetPremium(sumInsuredAmount, , , )
] -
[
getInitialProductInfo()
] -
[
getInitialFeeInfo()
] -
[
__Product_init(registry, instanceNftId, name, productInfo, feeInfo, authorization, initialOwner)
] -
[
_setFees(productFee, processingFee)
] -
[
_createRisk(id, data)
] -
[
_updateRisk(id, data)
] -
[
_setRiskLocked(id, locked)
] -
[
_closeRisk(id)
] -
[
_createApplication(applicationOwner, riskId, sumInsuredAmount, premiumAmount, lifetime, bundleNftId, referralId, applicationData)
] -
[
_revoke(applicationNftId)
] -
[
_createPolicy(applicationNftId, activateAt, maxPremiumAmount)
] -
[
_decline(policyNftId)
] -
[
_expire(policyNftId, expireAt)
] -
[
_adjustActivation(policyNftId, activateAt)
] -
[
_collectPremium(policyNftId, activateAt)
] -
[
_activate(policyNftId, activateAt)
] -
[
_close(policyNftId)
] -
[
_submitClaim(policyNftId, claimAmount, claimData)
] -
[
_revokeClaim(policyNftId, claimId)
] -
[
_confirmClaim(policyNftId, claimId, confirmedAmount, data)
] -
[
_declineClaim(policyNftId, claimId, data)
] -
[
_cancelConfirmedClaim(policyNftId, claimId)
] -
[
_createPayout(policyNftId, claimId, amount, data)
] -
[
_createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data)
] -
[
_processPayout(policyNftId, payoutId)
] -
[
_cancelPayout(policyNftId, payoutId)
] -
[
_getProductStorage()
]
-
[
getInstance()
] -
[
getAuthorization()
] -
[
withdrawFees(amount)
] -
[
_sendRequest(oracleNftId, requestData, expiryAt, callbackMethod)
] -
[
_cancelRequest(requestId)
] -
[
_resendRequest(requestId)
] -
[
__InstanceLinkedComponent_init(registry, parentNftId, name, componentType, authorization, isInterceptor, initialOwner)
] -
[
_checkAndGetInstanceNftId(registryAddress, parentNftId, componentType)
] -
[
_checkAndGetRegistry(registryAddress, objectNftId, requiredType)
] -
[
_setWallet(newWallet)
] -
[
_getComponentInfo()
] -
[
_getInstanceReader()
] -
[
_withdrawFees(amount)
]
-
[
__Component_init(authority, registry, parentNftId, name, componentType, isInterceptor, initialOwner, registryData)
] -
[
nftTransferFrom(from, to, tokenId, operator)
] -
[
getWallet()
] -
[
getTokenHandler()
] -
[
getToken()
] -
[
getName()
] -
[
getVersion()
] -
[
getComponentInfo()
] -
[
getInitialComponentInfo()
] -
[
isNftInterceptor()
] -
[
isRegistered()
] -
[
_approveTokenHandler(token, amount)
] -
[
_nftTransferFrom(from, to, tokenId, operator)
] -
[
_setLocked(locked)
] -
[
_getServiceAddress(domain)
]
-
[
__Registerable_init(authority, registry, parentNftId, objectType, isInterceptor, initialOwner, data)
] -
[
isActive()
] -
[
getRelease()
] -
[
getInitialInfo()
]
-
[
_checkNftType(nftId, expectedObjectType)
] -
[
__NftOwnable_init(registry, initialOwner)
] -
[
linkToRegisteredNftId()
] -
[
getNftId()
] -
[
getOwner()
] -
[
_linkToNftOwnable(nftOwnableAddress)
]
-
[
__RegistryLinked_init(registry)
] -
[
getRegistry()
]
-
[
__ERC165_init()
] -
[
_initializeERC165()
] -
[
_registerInterface(interfaceId)
] -
[
_registerInterfaceNotInitializing(interfaceId)
] -
[
supportsInterface(interfaceId)
]
-
[
__AccessManaged_init(initialAuthority)
] -
[
__AccessManaged_init_unchained(initialAuthority)
] -
[
authority()
] -
[
setAuthority(newAuthority)
] -
[
isConsumingScheduledOp()
] -
[
_setAuthority(newAuthority)
] -
[
_checkCanCall(caller, data)
]
-
[
__Context_init()
] -
[
__Context_init_unchained()
] -
[
_msgSender()
] -
[
_msgData()
] -
[
_contextSuffixLength()
]
-
[
_checkInitializing()
] -
[
_disableInitializers()
] -
[
_getInitializedVersion()
] -
[
_isInitializing()
]
-
[
LogSimpleProductRequestAsyncFulfilled(requestId, responseText, responseDataLength)
] -
[
LogSimpleProductRequestSyncFulfilled(requestId, responseText, responseDataLength)
]
-
[
LogComponentWalletAddressChanged(oldWallet, newWallet)
] -
[
LogComponentWalletTokensTransferred(from, to, amount)
] -
[
LogComponentTokenHandlerApproved(tokenHandler, token, limit, isMaxAmount)
]
-
[
LogNftOwnableNftLinkedToAddress(nftId, owner)
]
-
[
AuthorityUpdated(authority)
]
-
[
Initialized(version)
]