32 lines
1.2 KiB
Solidity
32 lines
1.2 KiB
Solidity
pragma solidity >=0.6.12;
|
|
|
|
// Author: Louis Holbrook <dev@holbrook.no> 0826EDA1702D1E87C6E2875121D2E7BB88C2A746
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
// File-version: 2
|
|
|
|
|
|
interface TransferAuthorization {
|
|
event NewRequest(address indexed _sender, address indexed _recipient, address indexed _token, uint256 _value, uint256 _serial);
|
|
event NewExecution(uint256 serial);
|
|
event NewRejection(uint256 serial);
|
|
event TransferFail(uint256 serial);
|
|
|
|
struct Transaction {
|
|
uint256 serial;
|
|
address sender;
|
|
address recipient;
|
|
address token;
|
|
uint256 value;
|
|
}
|
|
|
|
function approvers() external view returns (address[] memory);
|
|
function count() external view returns (uint256);
|
|
function lastSerial() external view returns (uint256);
|
|
function nextSerial() external view returns (uint256);
|
|
function getSerialAt(uint256 _idx) external view returns (uint256);
|
|
function requests(uint256 _serial) external view returns (Transaction memory);
|
|
function createRequest(address _recipient, address _token, uint256 _value) external returns (uint256);
|
|
function executeRequest(uint256 _serial) external returns (bool);
|
|
function rejectRequest(uint256 _serial) external returns (bool);
|
|
}
|