change Vault to LPVault and comment
This commit is contained in:
parent
ee8e2b777b
commit
7982f9ca1b
|
@ -9,8 +9,8 @@ pragma solidity ^0.4.11;
|
||||||
/// to allow for an optional escape hatch to be implemented
|
/// to allow for an optional escape hatch to be implemented
|
||||||
import "./Owned.sol";
|
import "./Owned.sol";
|
||||||
|
|
||||||
/// @dev This is declares a few functions from `LiquidPledging` so that the
|
/// @dev `LiquidPledging` is a basic interface to allow the `Vault` contract
|
||||||
/// `Vault` contract can interface with the `LiquidPledging` contract
|
/// to confirm and cancel payments in the `LiquidPledging` contract.
|
||||||
contract LiquidPledging {
|
contract LiquidPledging {
|
||||||
function confirmPayment(uint64 idNote, uint amount);
|
function confirmPayment(uint64 idNote, uint amount);
|
||||||
function cancelPayment(uint64 idNote, uint amount);
|
function cancelPayment(uint64 idNote, uint amount);
|
||||||
|
@ -19,7 +19,7 @@ contract LiquidPledging {
|
||||||
|
|
||||||
/// @dev `Vault` is a higher level contract built off of the `Owned`
|
/// @dev `Vault` is a higher level contract built off of the `Owned`
|
||||||
/// contract that holds funds for the liquid pledging system.
|
/// contract that holds funds for the liquid pledging system.
|
||||||
contract Vault is Owned {
|
contract LPVault is Owned {
|
||||||
|
|
||||||
LiquidPledging public liquidPledging; // liquidPledging contract's address
|
LiquidPledging public liquidPledging; // liquidPledging contract's address
|
||||||
bool public autoPay; // if false, payments will take 2 txs to be completed
|
bool public autoPay; // if false, payments will take 2 txs to be completed
|
||||||
|
@ -57,16 +57,30 @@ contract Vault is Owned {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice `setLiquidPledging` is used to attach a specific liquid pledging
|
||||||
|
/// instance to this vault. Keep in mind this isn't a single pledge but
|
||||||
|
/// instead an entire liquid pledging contract.
|
||||||
|
/// @param _newLiquidPledging A full liquid pledging contract
|
||||||
function setLiquidPledging(address _newLiquidPledging) onlyOwner {
|
function setLiquidPledging(address _newLiquidPledging) onlyOwner {
|
||||||
require(address(liquidPledging) == 0x0);
|
require(address(liquidPledging) == 0x0);
|
||||||
liquidPledging = LiquidPledging(_newLiquidPledging);
|
liquidPledging = LiquidPledging(_newLiquidPledging);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice `setAutopay` is used to toggle whether the vault will
|
||||||
|
/// automatically confirm a payment after the payment has been authorized.
|
||||||
|
/// @param _automatic If true payments will confirm automatically
|
||||||
function setAutopay(bool _automatic) onlyOwner {
|
function setAutopay(bool _automatic) onlyOwner {
|
||||||
autoPay = _automatic;
|
autoPay = _automatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice `authorizePayment` is used in order to approve a payment
|
||||||
|
/// from the liquid pledging contract. Whenever a project or other address
|
||||||
|
/// needs to receve a payment it needs to be authorized with this contract.
|
||||||
|
/// @param _ref This parameter is used to reference details about the
|
||||||
|
/// payment from another conttract.
|
||||||
|
/// @param _dest This is the address that payments will end up being sent to
|
||||||
|
/// @param _amount This is the amount that the payment is being authorized
|
||||||
|
/// for.
|
||||||
function authorizePayment(bytes32 _ref, address _dest, uint _amount) onlyLiquidPledging returns (uint) {
|
function authorizePayment(bytes32 _ref, address _dest, uint _amount) onlyLiquidPledging returns (uint) {
|
||||||
uint idPayment = payments.length;
|
uint idPayment = payments.length;
|
||||||
payments.length ++;
|
payments.length ++;
|
||||||
|
@ -82,10 +96,20 @@ contract Vault is Owned {
|
||||||
return idPayment;
|
return idPayment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice `confirmPayment` is a basic function used to allow the
|
||||||
|
/// owner of the vault to initiate a payment confirmation. Since
|
||||||
|
/// `authorizePayment` is the only pay to populate the `payments` array
|
||||||
|
/// this is generally used when `autopay` is `false` after a payment has
|
||||||
|
/// has been authorized.
|
||||||
|
/// @param _idPayment Array lookup for the payment.
|
||||||
function confirmPayment(uint _idPayment) onlyOwner {
|
function confirmPayment(uint _idPayment) onlyOwner {
|
||||||
doConfirmPayment(_idPayment);
|
doConfirmPayment(_idPayment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice `doConfirmPayment` is used to actually initiate a payment
|
||||||
|
/// to the final destination. All of the payment information should be
|
||||||
|
/// set before calling this function.
|
||||||
|
/// @param _idPayment Array lookup for the payment.
|
||||||
function doConfirmPayment(uint _idPayment) internal {
|
function doConfirmPayment(uint _idPayment) internal {
|
||||||
require(_idPayment < payments.length);
|
require(_idPayment < payments.length);
|
||||||
Payment storage p = payments[_idPayment];
|
Payment storage p = payments[_idPayment];
|
||||||
|
@ -99,10 +123,16 @@ contract Vault is Owned {
|
||||||
ConfirmPayment(_idPayment);
|
ConfirmPayment(_idPayment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice `cancelPayment` is used when `autopay` is `false` in order
|
||||||
|
/// to allow the owner to cancel a payment instead of confirming it.
|
||||||
|
/// @param _idPayment Array lookup for the payment.
|
||||||
function cancelPayment(uint _idPayment) onlyOwner {
|
function cancelPayment(uint _idPayment) onlyOwner {
|
||||||
doCancelPayment(_idPayment);
|
doCancelPayment(_idPayment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice `doCancelPayment` This carries out the task of actually
|
||||||
|
/// canceling a payment instead of confirming it.
|
||||||
|
/// @param _idPayment Array lookup for the payment.
|
||||||
function doCancelPayment(uint _idPayment) internal {
|
function doCancelPayment(uint _idPayment) internal {
|
||||||
require(_idPayment < payments.length);
|
require(_idPayment < payments.length);
|
||||||
Payment storage p = payments[_idPayment];
|
Payment storage p = payments[_idPayment];
|
||||||
|
@ -116,18 +146,27 @@ contract Vault is Owned {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice `multiConfirm` allows for more efficient confirmation of
|
||||||
|
/// multiple payments.
|
||||||
|
/// @param _idPayments An array of multiple payment ids
|
||||||
function multiConfirm(uint[] _idPayments) onlyOwner {
|
function multiConfirm(uint[] _idPayments) onlyOwner {
|
||||||
for (uint i=0; i < _idPayments.length; i++) {
|
for (uint i=0; i < _idPayments.length; i++) {
|
||||||
doConfirmPayment(_idPayments[i]);
|
doConfirmPayment(_idPayments[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice `multiCancel` allows for more efficient cancellation of
|
||||||
|
/// multiple payments.
|
||||||
|
/// @param _idPayments An array of multiple payment ids
|
||||||
function multiCancel(uint[] _idPayments) onlyOwner {
|
function multiCancel(uint[] _idPayments) onlyOwner {
|
||||||
for (uint i=0; i < _idPayments.length; i++) {
|
for (uint i=0; i < _idPayments.length; i++) {
|
||||||
doCancelPayment(_idPayments[i]);
|
doCancelPayment(_idPayments[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice `nPayments` Basic getter to return the number of payments
|
||||||
|
/// currently held in the system. Since payments are not removed from
|
||||||
|
/// the array this represents all payments over all time.
|
||||||
function nPayments() constant returns (uint) {
|
function nPayments() constant returns (uint) {
|
||||||
return payments.length;
|
return payments.length;
|
||||||
}
|
}
|
|
@ -21,7 +21,7 @@ import "./ILiquidPledgingPlugin.sol";
|
||||||
|
|
||||||
/// @dev `Vault` serves as an interface to allow the `LiquidPledgingBase`
|
/// @dev `Vault` serves as an interface to allow the `LiquidPledgingBase`
|
||||||
/// contract to interface with a `Vault` contract
|
/// contract to interface with a `Vault` contract
|
||||||
contract Vault {
|
contract LPVault {
|
||||||
function authorizePayment(bytes32 _ref, address _dest, uint _amount);
|
function authorizePayment(bytes32 _ref, address _dest, uint _amount);
|
||||||
function () payable;
|
function () payable;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
const VaultAbi = require('../build/Vault.sol').VaultAbi;
|
const VaultAbi = require('../build/LPVault.sol').VaultAbi;
|
||||||
const VaultByteCode = require('../build/Vault.sol').VaultByteCode;
|
const VaultByteCode = require('../build/LPVault.sol').VaultByteCode;
|
||||||
const generateClass = require('eth-contract-class').default;
|
const generateClass = require('eth-contract-class').default;
|
||||||
|
|
||||||
module.exports = generateClass(VaultAbi, VaultByteCode);
|
module.exports = generateClass(VaultAbi, VaultByteCode);
|
||||||
|
|
Loading…
Reference in New Issue