Skip to content

INestorAttestationManager

Git Source

Author: Originally developed by DEFYCA Labs S.a.r.l., maintained by Nestor Exchange OÜ

MIT Licence. Originally Copyright © 2023 DEFYCA Labs S.a.r.l.

The INestorAttestationManager manages the attestation workflow for proof-of-reserve on NestorFundDepositTokens.

Functions

updateAttestationToken

function updateAttestationToken(address tokenAddress_, string calldata iban_, string calldata currency_) external;

confirmAttestation

Confirm the attestation by signing the signature. This is the proof of the attestation by the PERMISSIONED_FUND_ACCOUNTANT.

function confirmAttestation(AttestationData calldata attestationData_, bytes calldata sig_) external;

minBalance

function minBalance() external view returns (uint256);

minWindow

function minWindow() external view returns (uint256);

maxWindow

function maxWindow() external view returns (uint256);

getAccountAttestationDataKeys

function getAccountAttestationDataKeys(string calldata iban_, string calldata currency_) external view returns (bytes32[] memory);

getAccountLastAttestationData

function getAccountLastAttestationData(string calldata iban_, string calldata currency_) external view returns (AttestationData memory);

getAccountLastAttestationDataKey

function getAccountLastAttestationDataKey(string calldata iban_, string calldata currency_) external view returns (bytes32);

getAttestationData

function getAttestationData(bytes32 attestationDataKey_) external view returns (AttestationData memory);

getTokenAddress

function getTokenAddress(string memory iban_, string memory currency_) external view returns (address);

getAttestationDataHash

function getAttestationDataHash(AttestationData calldata attestationData_) external view returns (bytes32);

getAccountAttestationKey

function getAccountAttestationKey(string calldata currency_, string calldata iban_) external pure returns (bytes32);

Events

NestorFundDepositAttestationTokenUpdated

event NestorFundDepositAttestationTokenUpdated(bytes32 accountAttestationKey, address newTokenAddress, address oldTokenAddress);

NestorFundDepositAttestationConfirmed

event NestorFundDepositAttestationConfirmed(AttestationData attestationData);

Errors

NestorAttestationManagerCallerNotAProtocolTreasury

error NestorAttestationManagerCallerNotAProtocolTreasury(address caller);

NestorAttestationManagerTokenZeroAddress

error NestorAttestationManagerTokenZeroAddress();

NestorAttestationManagerPermissionsZeroAddress

error NestorAttestationManagerPermissionsZeroAddress();

NestorAttestationManagerInvalidToken

error NestorAttestationManagerInvalidToken(string iban, string currency);

NestorAttestationManagerInvalidReport

error NestorAttestationManagerInvalidReport(AttestationData attestationData);

NestorAttestationManagerBalanceTooLow

error NestorAttestationManagerBalanceTooLow(uint256 balance);

NestorAttestationManagerDuplicateLastTxHash

error NestorAttestationManagerDuplicateLastTxHash(string lastTxHash);

NestorAttestationManagerInvalidAttestationSigner

error NestorAttestationManagerInvalidAttestationSigner(address signer, bytes32 attestationHash, bytes sig);

Structs

AttestationData

struct AttestationData {
    address tokenAddr;
    string iban;
    string currency;
    uint256 reportStart;
    uint256 reportEnd;
    uint256 balance;
    string lastTxHash;
}

AccountAttestationData

struct AccountAttestationData {
    address attestationTokenAddr;
    bytes32 lastAttestationDataKey;
    EnumerableSet.Bytes32Set allAttestationDataKeys;
}