Inherits: IBasicFrictionlessToken
Author: DEFYCA Labs S.à.r.l
Copyright © 2023 DEFYCA Labs S.à.r.l Permission is hereby granted, free of charge, to any person obtaining a copy of the Frictionless protocol smart contracts (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL DEFYCA LABS S.à.r.l BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
A Fund Deposit Token represents a permissioned Investors FIAT contribution to a specific fund IBAN in a denominated FIAT currency. The Fund Deposit Token is used as a means of payment and settlement. The Fund Deposit Token can only be transferred between permissioned Investors in the fund. A daily attestation of the fund IBAN serves to prove the 1:1 backing with FIAT. Exclusively under Frictionless Markets S.à.r.l issuance terms Investors holding a FrictionlessFundDepositToken
have the legal right to the FIAT value held in the fund IBAN account.
Sets the immutable data for the FrictionlessFundDepositToken
Parameters
initData
FFDImmutableData
the immutable data for the FrictionlessFundDepositToken
Get the currency the FIAT denomination of the deposit token.
Returns
<none>
string
the currency the FIAT denomination of the deposit token.
Get the description the description of the deposit token.
Returns
<none>
string
the description the description of the deposit token
Get the IBAN which Frictionless Markets S.à.r.l holds a matching FIAT currency ledger with a G-SIB for this currency, attestations are provided on this IBAN. This is restricted to onlyAgent roles.
Returns
<none>
string
the IBAN which Frictionless Markets S.à.r.l holds a matching FIAT currency ledger with a G-SIB for this currency, attestations are provided on this IBAN.
error throw if there is an attempt to modify the immutable data.
Struct which represents the immutable data in the Token. Once set it cannot be modified.
Author: DEFYCA Labs S.à.r.l
Copyright © 2023 DEFYCA Labs S.à.r.l Permission is hereby granted, free of charge, to any person obtaining a copy of the Frictionless protocol smart contracts (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL DEFYCA LABS S.à.r.l BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Interface defining the token factory for all tokens in the Frictionless protocol.
Sets the Treasury Manager to be the specified address.
Parameters
newTreasuryManager_
address
the addresses of the treasury manager to set throws FrictionlessTokensFactoryZeroAddress
if the newTreasuryManager_ is a zero address
Deploys the FrictionlessFundDepositToken
contract as a proxy
Parameters
tokenOwner_
address
The owner of the deployed contract
baseTokenInitParams_
BaseTokenInitParams
the base contract data to deploy a Frictionless token contract
initData_
IFrictionlessFundDepositToken.FFDImmutableData
the immutable data for the FrictionlessFundDepositToken
Returns
tokenProxyAddr_
address
the address of the deployed token contract FrictionlessFundDepositToken
throws FrictionlessTokensFactoryNotATreasuryManager
if the msg.sender is not the treasury manager emits FrictionlessTokenDeployed
event upon successful deployment of the token contract.
Deploys the FrictionlessDigitalSecurityToken
contract as a proxy
Parameters
tokenOwner_
address
The owner of the deployed contract
baseTokenInitParams_
BaseTokenInitParams
the base contract data to deploy a Frictionless token contract
initData_
IFrictionlessDigitalSecurityToken.FDSImmutableData
the immutable data for the FrictionlessDigitalSecurityToken
updateData_
IFrictionlessDigitalSecurityToken.FDSMutableData
the mutable data for the FrictionlessDigitalSecurityToken
Returns
tokenProxyAddr_
address
the address of the deployed token contract FrictionlessDigitalSecurityToken
throws FrictionlessTokensFactoryNotATreasuryManager
if the msg.sender is not the treasury manager emits FrictionlessTokenDeployed
event upon successful deployment of the token contract.
Deploys the FrictionlessOnChainAssetToken
contract as a proxy
Parameters
tokenOwner_
address
The owner of the deployed contract
baseTokenInitParams_
BaseTokenInitParams
the base contract data to deploy a Frictionless token contract
specData_
IFrictionlessOnChainAssetToken.FOCASpecData
the immutable specification data for the FrictionlessOnChainAssetToken
issuanceData_
IFrictionlessOnChainAssetToken.FOCAIssuanceData
the immutable issuance data for the FrictionlessOnChainAssetToken
updateData_
IFrictionlessOnChainAssetToken.FOCAUpdateData
the mutable update data for the FrictionlessOnChainAssetToken
Returns
tokenProxyAddr_
address
the address of the deployed token contract FrictionlessOnChainAssetToken
throws FrictionlessTokensFactoryNotATreasuryManager
if the msg.sender is not the treasury manager emits FrictionlessTokenDeployed
event upon successful deployment of the token contract.
returns the address of the treasuryManager
Returns
<none>
address
the address of the treasuryManager
Checks whether a given token address is an existing frictionless token
Parameters
tokenAddr_
address
the address of the token to check
Returns
<none>
bool
A boolean indicating whether the token is an existing frictionless token
Event emitted upon successful deployment of a compliance contract.
error thrown if an attempt to set a zero address contract during function setTreasuryManager
error thrown if the msg.sender
is not the treasury manager during the functions deployFundDepositToken
, deployDigitalSecurityToken
, or deployOnChainAssetToken
Struct to represent the base contract data to deploy a Frictionless token contract.
Inherits: IToken
Author: DEFYCA Labs S.à.r.l
Copyright © 2023 DEFYCA Labs S.à.r.l Permission is hereby granted, free of charge, to any person obtaining a copy of the Frictionless protocol smart contracts (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL DEFYCA LABS S.à.r.l BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The IBasicFrictionlessToken Represents the base interface for Frictionless protocol tokens, this interface is used to determine a token type.
Sets the token type according to the specified enumeration
Parameters
newTokenType_
FrictionlessTokenTypes
the token type to set
Returns the token type according to the specified enumeration
Returns
<none>
FrictionlessTokenTypes
FrictionlessTokenTypes the token type according to the specified enumeration
error thrown if an attempt to set an invalid token type during function setFrictionlessTokenType
Enumeration to represent each of the tokens in the Frictionless protocol.
Inherits: IBasicFrictionlessToken
Author: DEFYCA Labs S.à.r.l
Copyright © 2023 DEFYCA Labs S.à.r.l Permission is hereby granted, free of charge, to any person obtaining a copy of the Frictionless protocol smart contracts (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL DEFYCA LABS S.à.r.l BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This is the permissioned & transferable digital security which represents the future cash flow from the FrictionlessOnChainAssetToken
and is purchased by the Investor using FrictionlessFundDepositTokens
. These digital securities are permissioned and transferable between permissioned Investors in a permissioned secondary market. This token is linked to the FrictionlessOnChainAssetToken
and denominated in a FIAT currency at a future date for settlement.
Sets the immutable data for the FrictionlessDigitalSecurityToken
Parameters
initData
FDSImmutableData
the immutable data for the FrictionlessDigitalSecurityToken
Sets the updatable data for the FrictionlessDigitalSecurityToken
Parameters
mutableData
FDSMutableData
the updatable data for the FrictionlessDigitalSecurityToken
Get the baseCurrency is the FIAT denomination of the digital security, this is the currency the FrictionlessOnChainAssetToken
is issued in.
Returns
<none>
string
the baseCurrency is the FIAT denomination of the digital security, this is the currency the FrictionlessOnChainAssetToken
is issued in.
Get the type of the token as defined in the enum FrictionlessDigitalSecurityTokenType
.
Returns
<none>
FrictionlessDigitalSecurityTokenType
the type of the token as defined in the enum.
Get the onChainAssetAddress the address of the FrictionlessOnChainAssetToken
for which this token is a future cash distribution.
Returns
<none>
address
onChainAssetAddress the address of the FrictionlessOnChainAssetToken
for which this token is a future cash distribution.
Get the maturity date of the digital security.
Returns
<none>
uint256
the maturity date of the digital security.
error throw if there is an attempt to modify the immutable data.
Struct which represents the immutable data in the Token. Once set it cannot be modified.
Struct which represents the updatable data in the Token. This data can be modified by the Agent only.
Inherits: IBasicFrictionlessToken
Author: DEFYCA Labs S.à.r.l
Copyright © 2023 DEFYCA Labs S.à.r.l Permission is hereby granted, free of charge, to any person obtaining a copy of the Frictionless protocol smart contracts (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL DEFYCA LABS S.à.r.l BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Implementation of the storage of the underlying OnChain Asset and it's data.
Sets the specData data for the FrictionlessOnChainAssetToken
. throws FrictionlessOnChainAssetTokenUnableToUpdateData
This data is immutable, an attempt to modify will generate the error FrictionlessOnChainAssetTokenUnableToUpdateData
Parameters
specData
FOCASpecData
the specData data for the FrictionlessOnChainAssetToken
Sets the issuanceData data for the FrictionlessOnChainAssetToken
throws FrictionlessOnChainAssetTokenUnableToUpdateData
This data is immutable, an attempt to modify will generate the error FrictionlessOnChainAssetTokenUnableToUpdateData
Parameters
issuanceData
FOCAIssuanceData
the updatable data for the FrictionlessOnChainAssetToken
Sets the updatable data for the FrictionlessOnChainAssetToken
Parameters
updateData
FOCAUpdateData
the updatable data for the FrictionlessOnChainAssetToken
Get the specData data for the FrictionlessOnChainAssetToken
.
Returns
<none>
FOCASpecData
the specData data for the FrictionlessOnChainAssetToken
Get the issuanceData data for the FrictionlessOnChainAssetToken
.
Returns
<none>
FOCAIssuanceData
the issuanceData data for the FrictionlessOnChainAssetToken
Get the updateData data for the FrictionlessOnChainAssetToken
.
Returns
<none>
FOCAUpdateData
the updateData data for the FrictionlessOnChainAssetToken
Get the currency the FrictionlessOnChainAssetToken
is issued in.
Returns
<none>
string
the currency the FrictionlessOnChainAssetToken
is issued in.
error throw if there is an attempt to modify the immutable data.
The specification data for the FrictionlessOnChainAssetToken
, this is an immutable data struct.
The issuance data for the FrictionlessOnChainAssetToken
, this is an immutable data struct.
The uopdatable data for the FrictionlessOnChainAssetToken
.
Enum for the schedule of the payments by the Manager, either pro_rat or coupon/bullet style.
Enum for the periodicity of payments by the Manager
Enum for the yield for this FrictionlessOnChainAssetToken
is a fixed/floating rate
Enum for the price quote status obtained at auction
Enum for the current status of the FrictionlessOnChainAssetToken
. Updated over time by the Treasury
Enum for the current S&P style riskGrade of the FrictionlessOnChainAssetToken
. Updated over time by the Manager/Treasury/Risk Oracle.
The Frictionless Tokens describe the tokens which are emitted by the Frictionless protocol to represent Asset, Securities and Deposits. These tokens are based on the ERC-3643 specification of IToken.
The following diagram describes the high-level interaction and composition of a Frictionless token.