mirror of
https://github.com/Instadapp/dsa-connectors-old.git
synced 2024-07-29 22:47:46 +00:00
Added vault transfer function
This commit is contained in:
parent
e87a70e4db
commit
076a836c03
|
@ -81,6 +81,10 @@ interface EventInterface {
|
||||||
function emitEvent(uint _connectorType, uint _connectorID, bytes32 _eventCode, bytes calldata _eventData) external;
|
function emitEvent(uint _connectorType, uint _connectorID, bytes32 _eventCode, bytes calldata _eventData) external;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface AccountInterface {
|
||||||
|
function isAuth(address _user) external view returns (bool);
|
||||||
|
}
|
||||||
|
|
||||||
contract DSMath {
|
contract DSMath {
|
||||||
|
|
||||||
uint256 constant RAY = 10 ** 27;
|
uint256 constant RAY = 10 ** 27;
|
||||||
|
@ -333,6 +337,7 @@ contract MakerHelpers is MakerMCDAddresses {
|
||||||
contract BasicResolver is MakerHelpers {
|
contract BasicResolver is MakerHelpers {
|
||||||
event LogOpen(uint256 indexed vault, bytes32 indexed ilk);
|
event LogOpen(uint256 indexed vault, bytes32 indexed ilk);
|
||||||
event LogClose(uint256 indexed vault, bytes32 indexed ilk);
|
event LogClose(uint256 indexed vault, bytes32 indexed ilk);
|
||||||
|
event LogTransfer(uint256 indexed vault, bytes32 indexed ilk, address newOwner);
|
||||||
event LogDeposit(uint256 indexed vault, bytes32 indexed ilk, uint256 tokenAmt, uint256 getId, uint256 setId);
|
event LogDeposit(uint256 indexed vault, bytes32 indexed ilk, uint256 tokenAmt, uint256 getId, uint256 setId);
|
||||||
event LogWithdraw(uint256 indexed vault, bytes32 indexed ilk, uint256 tokenAmt, uint256 getId, uint256 setId);
|
event LogWithdraw(uint256 indexed vault, bytes32 indexed ilk, uint256 tokenAmt, uint256 getId, uint256 setId);
|
||||||
event LogBorrow(uint256 indexed vault, bytes32 indexed ilk, uint256 tokenAmt, uint256 getId, uint256 setId);
|
event LogBorrow(uint256 indexed vault, bytes32 indexed ilk, uint256 tokenAmt, uint256 getId, uint256 setId);
|
||||||
|
@ -377,6 +382,29 @@ contract BasicResolver is MakerHelpers {
|
||||||
EventInterface(getEventAddr()).emitEvent(_type, _id, _eventCode, _eventParam);
|
EventInterface(getEventAddr()).emitEvent(_type, _id, _eventCode, _eventParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dev Transfer Vault
|
||||||
|
* @param vault Vault ID to transfer.
|
||||||
|
*/
|
||||||
|
function transfer(uint vault, address nextOwner) external payable {
|
||||||
|
require(AccountInterface(address(this)).isAuth(nextOwner), "nextOwner-is-not-auth");
|
||||||
|
|
||||||
|
ManagerLike managerContract = ManagerLike(getMcdManager());
|
||||||
|
|
||||||
|
uint _vault = getVault(managerContract, vault);
|
||||||
|
(bytes32 ilk,) = getVaultData(managerContract, _vault);
|
||||||
|
|
||||||
|
require(managerContract.owns(_vault) == address(this), "not-owner");
|
||||||
|
|
||||||
|
managerContract.give(_vault, nextOwner);
|
||||||
|
|
||||||
|
emit LogTransfer(_vault, ilk, nextOwner);
|
||||||
|
bytes32 _eventCode = keccak256("LogTransfer(uint256,bytes32,address)");
|
||||||
|
bytes memory _eventParam = abi.encode(_vault, ilk, nextOwner);
|
||||||
|
(uint _type, uint _id) = connectorID();
|
||||||
|
EventInterface(getEventAddr()).emitEvent(_type, _id, _eventCode, _eventParam);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dev Deposit ETH/ERC20_Token Collateral.
|
* @dev Deposit ETH/ERC20_Token Collateral.
|
||||||
* @param vault Vault ID.
|
* @param vault Vault ID.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user