⚙️DoKENHubProxy Deployment
An Alternative way to make your project compatible to DoKEN Dividend Hub
// SPDX-License-Identifier: MIT License
pragma solidity ^0.8.6;
/**
* MainTokenInterface is an interface which represent functions on your
* main token contract that is able to returns the value which is required by DoKENDividendHub
**/
interface MainTokenInterface {
// please adjust the function names below to follow with your real project function names,
// this is just an example
function mainTokenFunctionWhichReturnRewardAddress() external view returns(address);
function mainTokenFunctionWhichReturnRewardOnPool() external view returns(uint256);
function mainTokenFunctionWhichReturnTokenFees() external view returns(uint256,uint256,uint256,uint256,uint256,uint256);
function mainTokenFunctionWhichReturnGetTotalDividendsDistributed() external view returns(uint256);
function mainTokenFunctionWhichReturnGetAccount(address account) external view returns(address,
int256,
int256,
uint256,
uint256,
uint256,
uint256,
uint256,
uint256
);
function mainTokenFunctionWhichProcessAccount(address payable account, bool automatic) external;
function mainTokenFunctionWhichGetNumberOfTokenHolders() external view returns(uint256);
}
contract DoKENHubProxy {
address public realProjectAddress = 0xf9A2d40589271Be17612A3F57A9028A568f56e3d; // change it to your token / project address
address public dividendTrackerAddress = someaddresshere;
MainTokenInterface public realProject = MainTokenInterface(realProjectAddress);
// this function is mandatory,
function DoKENGetMainAddress() external view returns(address){
return realProjectAddress;
}
function DoKENDividendTrackerAddress() external view returns(address){
return dividendTrackerAddress;
}
// You have to make a call to your main contract, which returns the value
// that is required by DoKENDiviendHub Interface
// pls adjust it to follow with your project contract
function DoKENRewardAddress() external view returns (address) {
return realProject.mainTokenFunctionWhichReturnRewardAddress(); // this is just an example
}
function DoKENRewardOnPool() external view returns (uint256) {
return realProject.mainTokenFunctionWhichReturnRewardOnPool();
}
function DoKENTokenFees() external view
returns ( uint256,uint256,uint256,uint256,uint256,uint256)
{
return realProject.mainTokenFunctionWhichReturnTokenFees();
}
function DoKENRewardDistributed() external view returns (uint256) {
return realProject.mainTokenFunctionWhichReturnGetTotalDividendsDistributed();
}
function DoKENGetAccountDividendsInfo(address account)
public
view
returns (
address,
int256,
int256,
uint256,
uint256,
uint256,
uint256,
uint256,
uint256
)
{
return realProject.mainTokenFunctionWhichReturnGetAccount(account);
}
function DoKENRewardPaid(address holder) external view returns (uint256) {
(, , , , uint256 paidAmount, , , , ) = DoKENGetAccountDividendsInfo(holder);
return paidAmount;
}
function DoKENRewardUnPaid(address holder) external view returns (uint256) {
(, , , uint256 unpaidAmount, , , , , ) = DoKENGetAccountDividendsInfo(
holder
);
return unpaidAmount;
}
function DoKENNumberOfDividendTokenHolders() external view returns (uint256) {
return realProject.mainTokenFunctionWhichGetNumberOfTokenHolders();
}
}Last updated
