Interface defining the token factory for all tokens in the Frictionless protocol.
Functions
setTreasuryManager
Sets the Treasury Manager to be the specified address.
Parameters
Name
Type
Description
deployFundDepositToken
Deploys the FrictionlessFundDepositToken contract as a proxy
Parameters
Name
Type
Description
Returns
Name
Type
Description
deployDigitalSecurityToken
Deploys the FrictionlessDigitalSecurityToken contract as a proxy
Parameters
Name
Type
Description
Returns
Name
Type
Description
deployOnChainAssetToken
Deploys the FrictionlessOnChainAssetToken contract as a proxy
Parameters
Name
Type
Description
Returns
Name
Type
Description
treasuryManager
returns the address of the treasuryManager
Returns
Name
Type
Description
existingFrictionlessTokens
Checks whether a given token address is an existing frictionless token
Parameters
Name
Type
Description
Returns
Name
Type
Description
Events
FrictionlessTokenDeployed
Event emitted upon successful deployment of a compliance contract.
Errors
FrictionlessTokensFactoryZeroAddress
error thrown if an attempt to set a zero address contract during function setTreasuryManager
FrictionlessTokensFactoryNotATreasuryManager
error thrown if the msg.sender is not the treasury manager during the functions deployFundDepositToken, deployDigitalSecurityToken, or deployOnChainAssetToken
Structs
BaseTokenInitParams
Struct to represent the base contract data to deploy a Frictionless token contract.
IFrictionlessDigitalSecurityToken.FDSMutableData
the mutable data for the FrictionlessDigitalSecurityToken
IFrictionlessOnChainAssetToken.FOCAIssuanceData
the immutable issuance data for the FrictionlessOnChainAssetToken
updateData_
IFrictionlessOnChainAssetToken.FOCAUpdateData
the mutable update data for the FrictionlessOnChainAssetToken
newTreasuryManager_
address
the addresses of the treasury manager to set throws FrictionlessTokensFactoryZeroAddress if the newTreasuryManager_ is a zero address
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
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.
tokenOwner_
address
The owner of the deployed contract
baseTokenInitParams_
BaseTokenInitParams
the base contract data to deploy a Frictionless token contract
the immutable data for the FrictionlessDigitalSecurityToken
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.
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
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.
<none>
address
the address of the treasuryManager
tokenAddr_
address
the address of the token to check
<none>
bool
A boolean indicating whether the token is an existing frictionless token
updateData_
issuanceData_
function setTreasuryManager(address newTreasuryManager_) external;
The Frictionless Tokens describe the tokens which are emitted by the Frictionless protocol to represent Asset, Securities and Deposits. These tokens are based on thespecification of IToken.
The following diagram describes the high-level interaction and composition of a Frictionless token.
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.
Functions
setInitData
Sets the immutable data for the FrictionlessDigitalSecurityToken
Parameters
Name
Type
Description
setUpdateData
Sets the updatable data for the FrictionlessDigitalSecurityToken
Parameters
Name
Type
Description
getCurrency
Get the baseCurrency is the FIAT denomination of the digital security, this is the currency the FrictionlessOnChainAssetToken is issued in.
Returns
Name
Type
Description
getTokenType
Get the type of the token as defined in the enum FrictionlessDigitalSecurityTokenType.
Returns
Name
Type
Description
getOnChainAssetAddress
Get the onChainAssetAddress the address of the FrictionlessOnChainAssetToken for which this token is a future cash distribution.
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.
Functions
setInitData
Sets the immutable data for the FrictionlessFundDepositToken
Parameters
Name
Type
Description
getCurrency
Get the currency the FIAT denomination of the deposit token.
Returns
Name
Type
Description
getDescription
Get the description the description of the deposit token.
Returns
Name
Type
Description
getFundIBAN
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.
error throw if there is an attempt to modify the immutable data.
Structs
FFDImmutableData
Struct which represents the immutable data in the Token. Once set it cannot be modified.
initData
FDSImmutableData
the immutable data for the FrictionlessDigitalSecurityToken
mutableData
FDSMutableData
the updatable data for the FrictionlessDigitalSecurityToken
<none>
string
the baseCurrency is the FIAT denomination of the digital security, this is the currency the FrictionlessOnChainAssetToken is issued in.
<none>
FrictionlessDigitalSecurityTokenType
the type of the token as defined in the enum.
<none>
address
onChainAssetAddress the address of the FrictionlessOnChainAssetToken for which this token is a future cash distribution.
<none>
uint256
the maturity date of the digital security.
initData
FFDImmutableData
the immutable data for the FrictionlessFundDepositToken
<none>
string
the currency the FIAT denomination of the deposit token.
<none>
string
the description the description of the deposit token
<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.
function setInitData(FDSImmutableData calldata initData) external;
function setUpdateData(FDSMutableData calldata mutableData) external;
function getCurrency() external view returns (string memory);
function getTokenType() external view returns (FrictionlessDigitalSecurityTokenType);
function getOnChainAssetAddress() external view returns (address);
function getMaturesOn() external view returns (uint256);
Implementation of the storage of the underlying OnChain Asset and it's data.
Functions
setSpecificationData
Sets the specData data for the FrictionlessOnChainAssetToken. throws FrictionlessOnChainAssetTokenUnableToUpdateData This data is immutable, an attempt to modify will generate the error FrictionlessOnChainAssetTokenUnableToUpdateData
Parameters
Name
Type
Description
setIssuanceData
Sets the issuanceData data for the FrictionlessOnChainAssetToken throws FrictionlessOnChainAssetTokenUnableToUpdateData This data is immutable, an attempt to modify will generate the error FrictionlessOnChainAssetTokenUnableToUpdateData
Parameters
Name
Type
Description
setUpdateData
Sets the updatable data for the FrictionlessOnChainAssetToken
Parameters
Name
Type
Description
getSpecificationData
Get the specData data for the FrictionlessOnChainAssetToken.
Returns
Name
Type
Description
getIssuanceData
Get the issuanceData data for the FrictionlessOnChainAssetToken.
Returns
Name
Type
Description
getUpdateData
Get the updateData data for the FrictionlessOnChainAssetToken.
Returns
Name
Type
Description
getCurrency
Get the currency the FrictionlessOnChainAssetToken is issued in.
Returns
Name
Type
Description
Errors
FrictionlessOnChainAssetTokenUnableToUpdateData
error throw if there is an attempt to modify the immutable data.
Structs
FOCASpecData
The specification data for the FrictionlessOnChainAssetToken, this is an immutable data struct.
FOCAIssuanceData
The issuance data for the FrictionlessOnChainAssetToken, this is an immutable data struct.
FOCAUpdateData
The uopdatable data for the FrictionlessOnChainAssetToken.
Enums
FrictionlessOnChainAssetSchedule
Enum for the schedule of the payments by the Manager, either pro_rat or coupon/bullet style.
FrictionlessOnChainAssetPaymentFrequency
Enum for the periodicity of payments by the Manager
FrictionlessOnChainAssetYieldType
Enum for the yield for this FrictionlessOnChainAssetToken is a fixed/floating rate
FrictionlessOnChainAssetPriceStatus
Enum for the price quote status obtained at auction
FrictionlessOnChainAssetStatus
Enum for the current status of the FrictionlessOnChainAssetToken. Updated over time by the Treasury
FrictionlessOnChainAssetRiskGrade
Enum for the current S&P style riskGrade of the FrictionlessOnChainAssetToken. Updated over time by the Manager/Treasury/Risk Oracle.
specData
FOCASpecData
the specData data for the FrictionlessOnChainAssetToken
issuanceData
FOCAIssuanceData
the updatable data for the FrictionlessOnChainAssetToken
updateData
FOCAUpdateData
the updatable data for the FrictionlessOnChainAssetToken
<none>
FOCASpecData
the specData data for the FrictionlessOnChainAssetToken
<none>
FOCAIssuanceData
the issuanceData data for the FrictionlessOnChainAssetToken
<none>
FOCAUpdateData
the updateData data for the FrictionlessOnChainAssetToken
<none>
string
the currency the FrictionlessOnChainAssetToken is issued in.
function setSpecificationData(FOCASpecData calldata specData) external;
function setIssuanceData(FOCAIssuanceData calldata issuanceData) external;
function setUpdateData(FOCAUpdateData calldata updateData) external;
function getSpecificationData() external view returns (FOCASpecData memory);
function getIssuanceData() external view returns (FOCAIssuanceData memory);
function getUpdateData() external view returns (FOCAUpdateData memory);
function getCurrency() external view returns (string memory);