diff --git a/build/ILiquidPledgingPlugin.sol.js b/build/ILiquidPledgingPlugin.sol.js index 300b1b4..173e048 100644 --- a/build/ILiquidPledgingPlugin.sol.js +++ b/build/ILiquidPledgingPlugin.sol.js @@ -3,4 +3,4 @@ exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" -exports._sha256 = "0x0b78eb5f7fc9ad0a36150ca9c8750a9d2e1fc98fa75dbf9627f3abdd201119c4" +exports._sha256 = "0xb71d787e74b5f7556b28ef7760fdad95c17568c094a14665d6f394726d5b22c8" diff --git a/build/ILiquidPledgingPlugin_all.sol b/build/ILiquidPledgingPlugin_all.sol index e315124..37ffea6 100644 --- a/build/ILiquidPledgingPlugin_all.sol +++ b/build/ILiquidPledgingPlugin_all.sol @@ -3,19 +3,32 @@ pragma solidity ^0.4.11; contract ILiquidPledgingPlugin { - - /// @param context In which context it is affected. - /// 0 -> owner from - /// 1 -> First delegate from - /// 2 -> Second delegate from + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party /// ... - /// 255 -> proposedProject from + /// 255 -> Plugin for the proposedProject transferring pledge to another party /// - /// 256 -> owner to - /// 257 -> First delegate to - /// 258 -> Second delegate to + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party /// ... - /// 511 -> proposedProject to - function beforeTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); - function afterTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount); + /// 511 -> Plugin for the proposedProject receiving pledge to another party + function beforeTransfer( + uint64 noteManager, + uint64 noteFrom, + uint64 noteTo, + uint64 context, + uint amount + ) returns (uint maxAllowed); + function afterTransfer( + uint64 noteManager, + uint64 noteFrom, + uint64 noteTo, + uint64 context, + uint amount); } diff --git a/build/LiquidPledging.sol.js b/build/LiquidPledging.sol.js index 594cec1..e2c8301 100644 --- a/build/LiquidPledging.sol.js +++ b/build/LiquidPledging.sol.js @@ -2,11 +2,11 @@ exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"}],"name":"normalizeNote","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelNote","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notes","type":"uint256[]"}],"name":"mNormalizeNote","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[{"name":"idDonor","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"notesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DeegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b604051602080620047c3833981016040528080519150505b805b60016200003881806200006e565b50600162000048600082620000a3565b5060028054600160a060020a031916600160a060020a0383161790555b505b5062000249565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d9190620000d8565b5b505050565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d91906200013c565b5b505050565b6200013991905b8082111562000135578054600160a860020a03191681556000620001076001830182620001ae565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000df565b5090565b90565b6200013991905b808211156200013557600080825560018201805467ffffffffffffffff19169055620001736002830182620001fa565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000143565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d65750620001f6565b601f016020900490600052602060002090810190620001f6919062000225565b5b50565b508054600082556003016004900490600052602060002090810190620001f6919062000225565b5b50565b6200013991905b808211156200013557600081556001016200022c565b5090565b90565b61456a80620002596000396000f300606060405236156101435763ffffffff60e060020a60003504166313734d8781146101485780631e215648146101c35780632101a6ad1461024957806322ec902c1461027c5780632ee88808146102b7578063424e3796146102db578063433879831461035657806347c5ef431461037a57806357adafb6146103ab57806374653bcb146103fc578063796d5654146104215780637d0e6d171461044257806391090937146104665780639398f5a2146105205780639834bf2f14610571578063a374399914610654578063b165af41146106bf578063b9d82bd71461073a578063bde60ac9146107d0578063c40b51fd146107ec578063cb199fa414610811578063cb9123ff14610897578063d639cd7314610915578063e9c211e21461097f578063ef3766e4146109a3578063f5184705146109f4578063fbfa77cf14610a27575b600080fd5b341561015357600080fd5b6101c1600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250610a56915050565b005b34156101ce57600080fd5b61022d60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610b2c915050565b6040516001604060020a03909116815260200160405180910390f35b341561025457600080fd5b6102686001604060020a0360043516610cf9565b604051901515815260200160405180910390f35b341561028757600080fd5b61022d6001604060020a0360043516610dab565b6040516001604060020a03909116815260200160405180910390f35b34156102c257600080fd5b6101c16001604060020a0360043516602435610f77565b005b34156102e657600080fd5b6101c1600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506110bd915050565b005b341561036157600080fd5b6101c16001604060020a0360043516602435611193565b005b341561038557600080fd5b6101c16001604060020a036004358116906024358116906044359060643516611495565b005b34156103b657600080fd5b6101c16004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611a9395505050505050565b005b341561040757600080fd5b61040f611b06565b60405190815260200160405180910390f35b341561042c57600080fd5b6101c16001604060020a0360043516611b11565b005b341561044d57600080fd5b6101c16001604060020a0360043516602435611c95565b005b341561047157600080fd5b6104886001604060020a0360043516602435611e40565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156104e35780820151818401525b6020016104ca565b50505050905090810190601f1680156105105780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561052b57600080fd5b6101c16004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f6795505050505050565b005b341561057c57600080fd5b6105906001604060020a0360043516611fda565b604051808760028111156105a057fe5b60ff168152600160a060020a03871660208201526001604060020a0385811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b838110156106145780820151818401525b6020016105fb565b50505050905090810190601f1680156106415780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561065f57600080fd5b61022d60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506120e595505050505050565b6040516001604060020a03909116815260200160405180910390f35b34156106ca57600080fd5b6101c1600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612132915050565b005b341561074557600080fd5b61022d60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506122089050565b6040516001604060020a03909116815260200160405180910390f35b6101c16001604060020a0360043581169060243516612590565b005b34156107f757600080fd5b61040f6127e8565b60405190815260200160405180910390f35b341561081c57600080fd5b61022d60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506127f3915050565b6040516001604060020a03909116815260200160405180910390f35b34156108a257600080fd5b6108b66001604060020a03600435166129c0565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156108fb57fe5b60ff16815260200197505050505050505060405180910390f35b341561092057600080fd5b6101c1600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612a2d915050565b005b341561098a57600080fd5b6101c16001604060020a0360043516602435612aa4565b005b34156109ae57600080fd5b6101c16004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612bce95505050505050565b005b34156109ff57600080fd5b6102686001604060020a0360043516612c41565b604051901515815260200160405180910390f35b3415610a3257600080fd5b610a3a612cf9565b604051600160a060020a03909116815260200160405180910390f35b6000610a6185612d08565b905060015b815460ff166002811115610a7657fe5b14610a8057600080fd5b805433600160a060020a039081166101009092041614610a9f57600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610ad2929160200190614157565b5060028101805467ffffffffffffffff19166001604060020a038481169190911790915585167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b5050505050565b600180549081808201610b3f83826141d6565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018a90526001604060020a038916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff19166001836002811115610bb857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610bfe929160200190614157565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b9392505050565b600080610d0583612d08565b905060005b815460ff166002811115610d1a57fe5b1415610d295760009150610da5565b60025b815460ff166002811115610d3c57fe5b14610d4357fe5b6002810154608060020a900460ff1615610d605760019150610da5565b6002810154604060020a90046001604060020a03161515610d845760009150610da5565b6002810154610da290604060020a90046001604060020a0316610cf9565b91505b50919050565b600080600080610dba85612d53565b925060005b600384015460c060020a900460ff166002811115610dd957fe5b14610de657849350610f6f565b600383015460006001604060020a03909116118015610e1f57506003830154604060020a90046001604060020a0316610e1d612d9c565b115b15610f3d576001830154600284018054610edc926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610eb757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e745790505b505050506003870154600091508190608060020a90046001604060020a031681612da1565b6003840154909250610f1d906001604060020a03166000604051805910610f005750595b908082528060200260200182016040525b50600080866000612da1565b9050610f2e85828560000154613093565b809450610f3a85612d53565b92505b610f468561315d565b90506001604060020a0380821690861614610f6a57610f6a85828560000154613093565b5b8093505b505050919050565b600254600090819033600160a060020a03908116911614610f9757600080fd5b610fa084612d53565b915060015b600383015460c060020a900460ff166002811115610fbf57fe5b14610fc957600080fd5b836001604060020a0316610fdc8561315d565b6001604060020a031614610fef57600080fd5b60018201546002830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561108257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161103f5790505b505050506003860154600091508190608060020a90046001604060020a03166002612da1565b90506110b5848285613093565b5b5b50505050565b60006110c885612d08565b905060005b815460ff1660028111156110dd57fe5b146110e757600080fd5b805433600160a060020a03908116610100909204161461110657600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051611139929160200190614157565b5060028101805467ffffffffffffffff19166001604060020a038481169190911790915585167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b5050505050565b60008060006111a185610dab565b94506111ac85612d53565b925060005b600384015460c060020a900460ff1660028111156111cb57fe5b146111d557600080fd5b60018301546111ec906001604060020a0316612d08565b915061133e8260e06040519081016040528154909190829060ff16600281111561121257fe5b600281111561121d57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613227565b60018301546002840180546113f7926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113d157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161138e5790505b505050506003870154600091508190608060020a90046001604060020a03166001612da1565b9050611404858286613093565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561147957600080fd5b6102c65a03f1151561148a57600080fd5b5050505b5050505050565b60008060008060006114a688610dab565b97506114b188612d53565b94506114bc86612d08565b93506114c789612d08565b92506116198360e06040519081016040528154909190829060ff16600281111561121257fe5b600281111561121d57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613227565b60005b600386015460c060020a900460ff16600281111561163657fe5b1461164057600080fd5b60018501546001604060020a038a8116911614156116dd5760005b845460ff16600281111561166b57fe5b14156116815761167c88888861326f565b6116d5565b60025b845460ff16600281111561169457fe5b14156116aa5761167c8888886132b5565b6116d5565b60015b845460ff1660028111156116bd57fe5b14156116d35761167c888888613501565b6116d5565bfe5b5b5b5b611a87565b61180e8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156117a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117645790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156117fa57fe5b600281111561180557fe5b9052508a613635565b6001604060020a03908116925082146116d35760005b845460ff16600281111561183457fe5b141561186a5760018501546001604060020a0387811691161461185357fe5b6116d58888876002018054905061369c565b611a87565b60015b845460ff16600281111561187d57fe5b1415611a44576119b48560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561194d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161190a5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156119a057fe5b60028111156119ab57fe5b90525087613635565b6001604060020a0390811691508114156119ef576119df88886001858960020180549050030361369c565b61167c888888613501565b6116d5565b81811115611a1e576119df88886001858960020180549050030361369c565b61167c888888613501565b6116d5565b8181116116d5576116d588886001848960020180549050030361369c565b5b5b5b611a87565b60025b845460ff166002811115611a5757fe5b14156116d357611a7488886001858960020180549050030361369c565b6116d58888886137a2565b611a87565b5bfe5b5b505050505050505050565b600080805b83518310156110b5576001604060020a03848481518110611ab557fe5b90602001906020020151169150604060020a848481518110611ad357fe5b90602001906020020151811515611ae657fe5b049050611af38282611193565b5b600190920191611a98565b5b50505050565b600054600019015b90565b6000611b1c82612d08565b9050611c6e8160e06040519081016040528154909190829060ff16600281111561121257fe5b600281111561121d57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613227565b60028101805470ff000000000000000000000000000000001916608060020a1790555b5050565b600080611ca184610dab565b9350611cac84612d53565b6001810154909250611cc6906001604060020a0316612d08565b9050611e188160e06040519081016040528154909190829060ff16600281111561121257fe5b600281111561121d57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613227565b60038201546110b5908590608060020a90046001604060020a031685613093565b5b50505050565b600080611e4b614287565b600080611e5787612d53565b91508160020160018703815481101515611e6d57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03169450611ea285612d08565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f565780601f10611f2b57610100808354040283529160200191611f56565b820191906000526020600020905b815481529060010190602001808311611f3957829003601f168201915b505050505092505b50509250925092565b600080805b83518310156110b5576001604060020a03848481518110611f8957fe5b90602001906020020151169150604060020a848481518110611fa757fe5b90602001906020020151811515611fba57fe5b049050611fc78282610f77565b5b600190920191611f6c565b5b50505050565b600080611fe5614287565b600080600080611ff488612d08565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156120aa5780601f1061207f576101008083540402835291602001916120aa565b820191906000526020600020905b81548152906001019060200180831161208d57829003601f168201915b505050506002830154919650506001604060020a038082169550604060020a8204169350608060020a900460ff1691505b5091939550919395565b600080805b835182101561212a576001604060020a0384838151811061210757fe5b9060200190602002015116905061211d81610dab565b505b6001909101906120ea565b5b5050919050565b600061213d85612d08565b905060025b815460ff16600281111561215257fe5b1461215c57600080fd5b805433600160a060020a03908116610100909204161461217b57600080fd5b805461010060a860020a031916610100600160a060020a03861602178155600181018380516121ae929160200190614157565b5060028101805467ffffffffffffffff19166001604060020a038481169190911790915585167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b5050505050565b6000806001604060020a038516156123bd5761222385612d08565b905060025b815460ff16600281111561223857fe5b1461224257600080fd5b805433600160a060020a03908116610100909204161461226157600080fd5b60146123b38260e06040519081016040528154909190829060ff16600281111561228757fe5b600281111561229257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561235e5780601f106123335761010080835404028352916020019161235e565b820191906000526020600020905b81548152906001019060200180831161234157829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613af1565b106123bd57600080fd5b5b600180549250828082016123d283826141d6565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808c166020830152604082018d90526001604060020a03808b1660608401528b166080830152600060a0830152881660c09091015291905081518154829060ff1916600183600281111561244c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612492929160200190614157565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b5095945050505050565b60008060008061259f86612d08565b93506126f18460e06040519081016040528154909190829060ff16600281111561121257fe5b600281111561121d57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613227565b60005b845460ff16600281111561270457fe5b1461270e57600080fd5b3492506000831161271e57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561275157600080fd5b6127818660006040518059106127645750595b908082528060200260200182016040525b50600080600080612da1565b915061278c82612d53565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36127df86838588611495565b5b505050505050565b600154600019015b90565b60018054908180820161280683826141d6565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018a90526001604060020a038916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff1916600183600281111561287f57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516128c5929160200190614157565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b9392505050565b6000806000806000806000806129d589612d53565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b600080805b84518310156127df576001604060020a03858481518110612a4f57fe5b90602001906020020151169150604060020a858481518110612a6d57fe5b90602001906020020151811515612a8057fe5b049050612a8f86838387611495565b5b600190920191612a32565b5b505050505050565b600254600090819033600160a060020a03908116911614612ac457600080fd5b612acd84612d53565b915060015b600383015460c060020a900460ff166002811115612aec57fe5b14612af657600080fd5b6001820154600283018054612bae926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612b8957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612b465790505b505050506003860154600091508190608060020a90046001604060020a031681612da1565b90506110a881610dab565b90506110b5848285613093565b5b5b50505050565b600080805b83518310156110b5576001604060020a03848481518110612bf057fe5b90602001906020020151169150604060020a848481518110612c0e57fe5b90602001906020020151811515612c2157fe5b049050612c2e8282612aa4565b5b600190920191612bd3565b5b50505050565b600080612c4d83612d08565b905060009150610da5565b815460ff166002811115612c6857fe5b1415612c775760009150610da5565b60025b815460ff166002811115612c8a57fe5b14612c9157fe5b6002810154608060020a900460ff1615612cae5760019150610da5565b6002810154604060020a90046001604060020a03161515612cd25760009150610da5565b6002810154610da290604060020a90046001604060020a0316612c41565b91505b50919050565b600254600160a060020a031681565b6001546000906001604060020a03831610612d2257600080fd5b600180546001604060020a038416908110612d3957fe5b906000526020600020906004020160005b5090505b919050565b600080546001604060020a03831610612d6b57600080fd5b600080546001604060020a038416908110612d3957fe5b906000526020600020906004020160005b5090505b919050565b425b90565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612def5780820151818401525b602001612dd6565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612e5c57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612ec557809250613087565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612f038382614299565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612f7557fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612fc09291602001906142cb565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561307b57fe5b02179055505050508092505b50509695505050505050565b60008060006130a56001878787613c90565b9250846001604060020a0316866001604060020a031614156130c6576127df565b8215156130d2576127df565b6130db86612d53565b91506130e685612d53565b8254909150839010156130f857600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36131536000878786613c90565b505b505050505050565b600080806001604060020a038416151561317a576000925061212a565b61318384612d53565b600181015490925061319d906001604060020a0316612d08565b905060005b815460ff1660028111156131b257fe5b14156131c05783925061212a565b60025b815460ff1660028111156131d357fe5b146131da57fe5b60018201546131f1906001604060020a0316610cf9565b15156131ff5783925061212a565b600382015461321d90608060020a90046001604060020a031661315d565b92505b5050919050565b8060200151600160a060020a031633600160a060020a0316148061326057508060c00151600160a060020a031633600160a060020a0316145b151561326b57600080fd5b5b50565b60006110a88260006040518059106127645750595b908082528060200260200182016040525b50600080600080612da1565b90506110b5848285613093565b5b50505050565b60008060006132c386612d53565b925060146133f78460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561339157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161334e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156133e457fe5b60028111156133ef57fe5b905250613cb8565b1061340157600080fd5b60018301546002840180546134b9926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610eb757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e745790505b505050506003870154600091508190608060020a90046001604060020a031681612da1565b91506134eb846000604051805910610f005750595b908082528060200260200182016040525b50600080866000612da1565b90506127df868287613093565b5b505050505050565b600061350b614287565b60008061351787612d53565b60028101549094506014901061352c57600080fd5b60028401546001016040518059106135415750595b908082528060200260200182016040525b509250600091505b60028401548210156135cf576002840180548390811061357657fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03168383815181106135ac57fe5b6001604060020a039092166020928302909101909101525b60019091019061355a565b600284015485908490815181106135e257fe5b6001604060020a03928316602091820290920101526001850154600386015461361e929182169186916000918291608060020a90041681612da1565b9050613153878288613093565b5b50505050505050565b6000805b83604001515181101561368a57826001604060020a03168460400151828151811061366057fe5b906020019060200201516001604060020a0316141561368157809150613695565b5b600101613639565b6001604060020a0391505b5092915050565b60006136a6614287565b6000806136b287612d53565b60028101549094508590036040518059106136ca5750595b908082528060200260200182016040525b509250600091505b600284015485900382101561375b576002840180548390811061370257fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a031683838151811061373857fe5b6001604060020a039092166020928302909101909101525b6001909101906136e3565b6001840154600385015461361e916001604060020a039081169186916000918291608060020a9091041681612da1565b9050613153878288613093565b5b50505050505050565b6000806137ae85612d53565b915060146138e28360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561339157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161334e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156133e457fe5b60028111156133ef57fe5b905250613cb8565b106138ec57600080fd5b6001820154600283018054613adc926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561397f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161393c5790505b505050505085613ab58660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613a4f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a0c5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613aa257fe5b6002811115613aad57fe5b905250613e23565b613abd612d9c565b6003880154910190608060020a90046001604060020a03166000612da1565b9050610b25858286613093565b5b5050505050565b60008060025b83516002811115613b0457fe5b14613b0b57fe5b82608001516001604060020a03161515613b285760019150610da5565b613b358360800151612d08565b9050610da28160e06040519081016040528154909190829060ff16600281111561228757fe5b600281111561229257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561235e5780601f106123335761010080835404028352916020019161235e565b820191906000526020600020905b81548152906001019060200180831161234157829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613af1565b91505b50919050565b80613c9e8585808685613eb6565b9050613cad8584868685613eb6565b90505b949350505050565b6000808260a001516001604060020a03161515613cd85760009150610da5565b613ce58360a00151612d53565b9050613e178160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561339157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161334e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156133e457fe5b60028111156133ef57fe5b905250613cb8565b60010191505b50919050565b6000806000613e358460200151612d08565b60028101546001604060020a031693509150600090505b83604001515181101561212a57613e7b84604001518281518110613e6c57fe5b90602001906020020151612d08565b60028101549092506001604060020a031683901115613ea55760028201546001604060020a031692505b5b600101613e4c565b5b5050919050565b600080600080866001604060020a0316886001604060020a031614613edd57610100613ee0565b60005b61ffff169250849350613ef288612d53565b6001810154909250613f12908a906001604060020a031689898789613fd7565b9350600090505b60028201546001604060020a0382161015613f8f57613f848983600201836001604060020a0316815481101515613f4c57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316898985880160010189613fd7565b93505b600101613f19565b600382015460006001604060020a039091161115613fca576003820154613fc7908a906001604060020a0316898960ff880189613fd7565b93505b5b50505095945050505050565b80600080613fe488612d08565b6003810154909150600160a060020a0316158015906140035750600083115b156130875788156140be576003810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561408d57600080fd5b6102c65a03f1151561409e57600080fd5b5050506040518051925050828211156140b657600080fd5b819250613087565b6003810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b151561413457600080fd5b6102c65a03f1151561414557600080fd5b5050505b5b5b50509695505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061419857805160ff19168380011785556141c5565b828001600101855582156141c5579182015b828111156141c55782518255916020019190600101906141aa565b5b506141d2929150614395565b5090565b8154818355818115116142025760040281600402836000526020600020918201910161420291906143b6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061419857805160ff19168380011785556141c5565b828001600101855582156141c5579182015b828111156141c55782518255916020019190600101906141aa565b5b506141d2929150614395565b5090565b60206040519081016040526000815290565b81548183558181151161420257600402816004028360005260206000209182019101614202919061443a565b5b505050565b828054828255906000526020600020906003016004900481019282156143735791602002820160005b8382111561433e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026142f4565b80156143715782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261433e565b505b506141d29291506144a1565b5090565b60206040519081016040526000815290565b611b0e91905b808211156141d2576000815560010161439b565b5090565b90565b611b0e91905b808211156141d257805474ffffffffffffffffffffffffffffffffffffffffff1916815560006143ef60018301826144cd565b5060028101805470ffffffffffffffffffffffffffffffffff1916905560038101805473ffffffffffffffffffffffffffffffffffffffff191690556004016143bc565b5090565b90565b611b0e91905b808211156141d257600080825560018201805467ffffffffffffffff1916905561446d6002830182614515565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401614440565b5090565b90565b611b0e91905b808211156141d257805467ffffffffffffffff191681556001016144a7565b5090565b90565b50805460018160011615610100020316600290046000825580601f106144f3575061326b565b601f01602090049060005260206000209081019061326b9190614395565b5b50565b50805460008255600301600490049060005260206000209081019061326b9190614395565b5b505600a165627a7a7230582048caf92fb2acf416c2ed4e600d287af568312bbd024973d13f499586721ceb5b0029" -exports.LiquidPledgingBaseAbi = [{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[{"name":"idDonor","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DeegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001c06833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000245565b8154818355818115116200009957600402816004028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000138565b5b505050565b6200013591905b8082111562000131578054600160a860020a03191681556000620001036001830182620001aa565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000db565b5090565b90565b6200013591905b808211156200013157600080825560018201805467ffffffffffffffff191690556200016f6002830182620001f6565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200013f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d25750620001f2565b601f016020900490600052602060002090810190620001f2919062000221565b5b50565b508054600082556003016004900490600052602060002090810190620001f2919062000221565b5b50565b6200013591905b8082111562000131576000815560010162000228565b5090565b90565b6119b180620002556000396000f300606060405236156100cd5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313734d8781146100d25780631e2156481461014f5780632101a6ad146101d7578063424e37961461020b57806374653bcb1461028857806391090937146102ad5780639834bf2f14610369578063b165af411461044e578063b9d82bd7146104cb578063c40b51fd14610563578063cb199fa414610588578063cb9123ff14610610578063f518470514610690578063fbfa77cf146106c4575b600080fd5b34156100dd57600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506106f3915050565b005b341561015a57600080fd5b6101ba60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506107ca915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156101e257600080fd5b6101f767ffffffffffffffff6004351661099c565b604051901515815260200160405180910390f35b341561021657600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610a5a915050565b005b341561029357600080fd5b61029b610b31565b60405190815260200160405180910390f35b34156102b857600080fd5b6102d067ffffffffffffffff60043516602435610b3c565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561032c5780820151818401525b602001610313565b50505050905090810190601f1680156103595780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561037457600080fd5b61038967ffffffffffffffff60043516610c64565b6040518087600281111561039957fe5b60ff168152600160a060020a038716602082015267ffffffffffffffff85811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b8381101561040e5780820151818401525b6020016103f5565b50505050905090810190601f16801561043b5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561045957600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610d75915050565b005b34156104d657600080fd5b6101ba60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610e4c9050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561056e57600080fd5b61029b6111e0565b60405190815260200160405180910390f35b341561059357600080fd5b6101ba60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506111eb915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561061b57600080fd5b61063067ffffffffffffffff600435166113bd565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561067657fe5b60ff16815260200197505050505050505060405180910390f35b341561069b57600080fd5b6101f767ffffffffffffffff60043516611445565b604051901515815260200160405180910390f35b34156106cf57600080fd5b6106d7611509565b604051600160a060020a03909116815260200160405180910390f35b60006106fe85611518565b905060015b815460ff16600281111561071357fe5b1461071d57600080fd5b805433600160a060020a03908116610100909204161461073c57600080fd5b805461010060a860020a031916610100600160a060020a038616021781556001810183805161076f929160200190611756565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b5050505050565b6001805490818082016107dd83826117d5565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018a905267ffffffffffffffff8916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff1916600183600281111561085757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161089d929160200190611756565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b9392505050565b6000806109a883611518565b905060005b815460ff1660028111156109bd57fe5b14156109cc5760009150610a54565b60025b815460ff1660028111156109df57fe5b146109e657fe5b6002810154608060020a900460ff1615610a035760019150610a54565b600281015468010000000000000000900467ffffffffffffffff161515610a2d5760009150610a54565b6002810154610a519068010000000000000000900467ffffffffffffffff1661099c565b91505b50919050565b6000610a6585611518565b905060005b815460ff166002811115610a7a57fe5b14610a8457600080fd5b805433600160a060020a039081166101009092041614610aa357600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610ad6929160200190611756565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b5050505050565b600054600019015b90565b600080610b47611886565b600080610b5387611565565b91508160020160018703815481101515610b6957fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff169450610b9f85611518565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c535780601f10610c2857610100808354040283529160200191610c53565b820191906000526020600020905b815481529060010190602001808311610c3657829003601f168201915b505050505092505b50509250925092565b600080610c6f611886565b600080600080610c7e88611518565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d345780601f10610d0957610100808354040283529160200191610d34565b820191906000526020600020905b815481529060010190602001808311610d1757829003601f168201915b5050505060028301549196505067ffffffffffffffff8082169550680100000000000000008204169350608060020a900460ff1691505b5091939550919395565b6000610d8085611518565b905060025b815460ff166002811115610d9557fe5b14610d9f57600080fd5b805433600160a060020a039081166101009092041614610dbe57600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610df1929160200190611756565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b5050505050565b60008067ffffffffffffffff85161561100857610e6885611518565b905060025b815460ff166002811115610e7d57fe5b14610e8757600080fd5b805433600160a060020a039081166101009092041614610ea657600080fd5b6014610ffe8260e06040519081016040528154909190829060ff166002811115610ecc57fe5b6002811115610ed757fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fa35780601f10610f7857610100808354040283529160200191610fa3565b820191906000526020600020905b815481529060010190602001808311610f8657829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115b0565b1061100857600080fd5b5b6001805492508280820161101d83826117d5565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808c166020830152604082018d905267ffffffffffffffff808b1660608401528b166080830152600060a0830152881660c09091015291905081518154829060ff1916600183600281111561109857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516110de929160200190611756565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b5095945050505050565b600154600019015b90565b6001805490818082016111fe83826117d5565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018a905267ffffffffffffffff8916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff1916600183600281111561127857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516112be929160200190611756565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b9392505050565b6000806000806000806000806113d289611565565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b60008061145183611518565b905060009150610a54565b815460ff16600281111561146c57fe5b141561147b5760009150610a54565b60025b815460ff16600281111561148e57fe5b1461149557fe5b6002810154608060020a900460ff16156114b25760019150610a54565b600281015468010000000000000000900467ffffffffffffffff1615156114dc5760009150610a54565b6002810154610a519068010000000000000000900467ffffffffffffffff16611445565b91505b50919050565b600254600160a060020a031681565b60015460009067ffffffffffffffff83161061153357600080fd5b6001805467ffffffffffffffff841690811061154b57fe5b906000526020600020906004020160005b5090505b919050565b6000805467ffffffffffffffff83161061157e57600080fd5b6000805467ffffffffffffffff841690811061154b57fe5b906000526020600020906004020160005b5090505b919050565b60008060025b835160028111156115c357fe5b146115ca57fe5b826080015167ffffffffffffffff1615156115e85760019150610a54565b6115f58360800151611518565b9050610a518160e06040519081016040528154909190829060ff166002811115610ecc57fe5b6002811115610ed757fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fa35780601f10610f7857610100808354040283529160200191610fa3565b820191906000526020600020905b815481529060010190602001808311610f8657829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115b0565b91505b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061179757805160ff19168380011785556117c4565b828001600101855582156117c4579182015b828111156117c45782518255916020019190600101906117a9565b5b506117d1929150611898565b5090565b8154818355818115116118015760040281600402836000526020600020918201910161180191906118b9565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061179757805160ff19168380011785556117c4565b828001600101855582156117c4579182015b828111156117c45782518255916020019190600101906117a9565b5b506117d1929150611898565b5090565b60206040519081016040526000815290565b610b3991905b808211156117d1576000815560010161189e565b5090565b90565b610b3991905b808211156117d157805474ffffffffffffffffffffffffffffffffffffffffff1916815560006118f2600183018261193d565b5060028101805470ffffffffffffffffffffffffffffffffff1916905560038101805473ffffffffffffffffffffffffffffffffffffffff191690556004016118bf565b5090565b90565b50805460018160011615610100020316600290046000825580601f106119635750611981565b601f0160209004906000526020600020908101906119819190611898565b5b505600a165627a7a723058204bbf9e6666f0fd0177ec0778b803ac98a2425935004c75e08a0362451d665b3a0029" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"}],"name":"normalizeNote","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelNote","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notes","type":"uint256[]"}],"name":"mNormalizeNote","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[{"name":"idDonor","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"notesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"notesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b60405160208062004845833981016040528080519150505b805b60016200003881806200006e565b50600162000048600082620000a3565b5060028054600160a060020a031916600160a060020a0383161790555b505b5062000249565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d9190620000d8565b5b505050565b8154818355818115116200009d576004028160040283600052602060002091820191016200009d91906200013c565b5b505050565b6200013991905b8082111562000135578054600160a860020a03191681556000620001076001830182620001ae565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000df565b5090565b90565b6200013991905b808211156200013557600080825560018201805467ffffffffffffffff19169055620001736002830182620001fa565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000143565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d65750620001f6565b601f016020900490600052602060002090810190620001f6919062000225565b5b50565b508054600082556003016004900490600052602060002090810190620001f6919062000225565b5b50565b6200013991905b808211156200013557600081556001016200022c565b5090565b90565b6145ec80620002596000396000f300606060405236156101435763ffffffff60e060020a60003504166313734d8781146101485780631e215648146101c35780632101a6ad1461024957806322ec902c1461027c5780632ee88808146102b7578063424e3796146102db578063433879831461035657806347c5ef431461037a57806357adafb6146103ab57806374653bcb146103fc578063796d5654146104215780637d0e6d171461044257806391090937146104665780639398f5a2146105205780639834bf2f14610571578063a37439991461065d578063b165af41146106c8578063b9d82bd714610743578063bde60ac9146107d9578063c40b51fd146107f5578063cb199fa41461081a578063cb9123ff146108a0578063d639cd731461091e578063e9c211e214610988578063ef3766e4146109ac578063f5184705146109fd578063fbfa77cf14610a30575b600080fd5b341561015357600080fd5b6101c1600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250610a5f915050565b005b34156101ce57600080fd5b61022d60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250610b35915050565b6040516001604060020a03909116815260200160405180910390f35b341561025457600080fd5b6102686001604060020a0360043516610d02565b604051901515815260200160405180910390f35b341561028757600080fd5b61022d6001604060020a0360043516610db4565b6040516001604060020a03909116815260200160405180910390f35b34156102c257600080fd5b6101c16001604060020a0360043516602435610f80565b005b34156102e657600080fd5b6101c1600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506110c6915050565b005b341561036157600080fd5b6101c16001604060020a036004351660243561119c565b005b341561038557600080fd5b6101c16001604060020a03600435811690602435811690604435906064351661149e565b005b34156103b657600080fd5b6101c16004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611a9c95505050505050565b005b341561040757600080fd5b61040f611b0f565b60405190815260200160405180910390f35b341561042c57600080fd5b6101c16001604060020a0360043516611b1a565b005b341561044d57600080fd5b6101c16001604060020a0360043516602435611cd4565b005b341561047157600080fd5b6104886001604060020a0360043516602435611e7f565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156104e35780820151818401525b6020016104ca565b50505050905090810190601f1680156105105780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561052b57600080fd5b6101c16004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611fa695505050505050565b005b341561057c57600080fd5b6105906001604060020a0360043516612019565b604051808860028111156105a057fe5b60ff168152600160a060020a0388811660208301526001604060020a0387811660608401528616608083015284151560a0830152831660c082015260e0828203810160408301908152910187818151815260200191508051906020019080838360005b8381101561061c5780820151818401525b602001610603565b50505050905090810190601f1680156106495780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b341561066857600080fd5b61022d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061213895505050505050565b6040516001604060020a03909116815260200160405180910390f35b34156106d357600080fd5b6101c1600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612185915050565b005b341561074e57600080fd5b61022d60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061225b9050565b6040516001604060020a03909116815260200160405180910390f35b6101c16001604060020a03600435811690602435166125e3565b005b341561080057600080fd5b61040f61286a565b60405190815260200160405180910390f35b341561082557600080fd5b61022d60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612875915050565b6040516001604060020a03909116815260200160405180910390f35b34156108ab57600080fd5b6108bf6001604060020a0360043516612a42565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561090457fe5b60ff16815260200197505050505050505060405180910390f35b341561092957600080fd5b6101c1600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612aaf915050565b005b341561099357600080fd5b6101c16001604060020a0360043516602435612b26565b005b34156109b757600080fd5b6101c16004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612c5095505050505050565b005b3415610a0857600080fd5b6102686001604060020a0360043516612cc3565b604051901515815260200160405180910390f35b3415610a3b57600080fd5b610a43612d7b565b604051600160a060020a03909116815260200160405180910390f35b6000610a6a85612d8a565b905060015b815460ff166002811115610a7f57fe5b14610a8957600080fd5b805433600160a060020a039081166101009092041614610aa857600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610adb9291602001906141d9565b5060028101805467ffffffffffffffff19166001604060020a038481169190911790915585167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b5050505050565b600180549081808201610b488382614258565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018a90526001604060020a038916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff19166001836002811115610bc157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610c079291602001906141d9565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a25b9392505050565b600080610d0e83612d8a565b905060005b815460ff166002811115610d2357fe5b1415610d325760009150610dae565b60025b815460ff166002811115610d4557fe5b14610d4c57fe5b6002810154608060020a900460ff1615610d695760019150610dae565b6002810154604060020a90046001604060020a03161515610d8d5760009150610dae565b6002810154610dab90604060020a90046001604060020a0316610d02565b91505b50919050565b600080600080610dc385612dd5565b925060005b600384015460c060020a900460ff166002811115610de257fe5b14610def57849350610f78565b600383015460006001604060020a03909116118015610e2857506003830154604060020a90046001604060020a0316610e26612e1e565b115b15610f46576001830154600284018054610ee5926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610ec057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e7d5790505b505050506003870154600091508190608060020a90046001604060020a031681612e23565b6003840154909250610f26906001604060020a03166000604051805910610f095750595b908082528060200260200182016040525b50600080866000612e23565b9050610f3785828560000154613115565b809450610f4385612dd5565b92505b610f4f856131df565b90506001604060020a0380821690861614610f7357610f7385828560000154613115565b5b8093505b505050919050565b600254600090819033600160a060020a03908116911614610fa057600080fd5b610fa984612dd5565b915060015b600383015460c060020a900460ff166002811115610fc857fe5b14610fd257600080fd5b836001604060020a0316610fe5856131df565b6001604060020a031614610ff857600080fd5b60018201546002830180546110b1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561108b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110485790505b505050506003860154600091508190608060020a90046001604060020a03166002612e23565b90506110be848285613115565b5b5b50505050565b60006110d185612d8a565b905060005b815460ff1660028111156110e657fe5b146110f057600080fd5b805433600160a060020a03908116610100909204161461110f57600080fd5b805461010060a860020a031916610100600160a060020a03861602178155600181018380516111429291602001906141d9565b5060028101805467ffffffffffffffff19166001604060020a038481169190911790915585167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b5050505050565b60008060006111aa85610db4565b94506111b585612dd5565b925060005b600384015460c060020a900460ff1660028111156111d457fe5b146111de57600080fd5b60018301546111f5906001604060020a0316612d8a565b91506113478260e06040519081016040528154909190829060ff16600281111561121b57fe5b600281111561122657fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112f25780601f106112c7576101008083540402835291602001916112f2565b820191906000526020600020905b8154815290600101906020018083116112d557829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526132a9565b6001830154600284018054611400926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113da57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113975790505b505050506003870154600091508190608060020a90046001604060020a03166001612e23565b905061140d858286613115565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561148257600080fd5b6102c65a03f1151561149357600080fd5b5050505b5050505050565b60008060008060006114af88610db4565b97506114ba88612dd5565b94506114c586612d8a565b93506114d089612d8a565b92506116228360e06040519081016040528154909190829060ff16600281111561121b57fe5b600281111561122657fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112f25780601f106112c7576101008083540402835291602001916112f2565b820191906000526020600020905b8154815290600101906020018083116112d557829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526132a9565b60005b600386015460c060020a900460ff16600281111561163f57fe5b1461164957600080fd5b60018501546001604060020a038a8116911614156116e65760005b845460ff16600281111561167457fe5b141561168a576116858888886132f1565b6116de565b60025b845460ff16600281111561169d57fe5b14156116b357611685888888613337565b6116de565b60015b845460ff1660028111156116c657fe5b14156116dc57611685888888613583565b6116de565bfe5b5b5b5b611a90565b6118178560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156117b057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161176d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561180357fe5b600281111561180e57fe5b9052508a6136b7565b6001604060020a03908116925082146116dc5760005b845460ff16600281111561183d57fe5b14156118735760018501546001604060020a0387811691161461185c57fe5b6116de8888876002018054905061371e565b611a90565b60015b845460ff16600281111561188657fe5b1415611a4d576119bd8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561195657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119135790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156119a957fe5b60028111156119b457fe5b905250876136b7565b6001604060020a0390811691508114156119f8576119e888886001858960020180549050030361371e565b611685888888613583565b6116de565b81811115611a27576119e888886001858960020180549050030361371e565b611685888888613583565b6116de565b8181116116de576116de88886001848960020180549050030361371e565b5b5b5b611a90565b60025b845460ff166002811115611a6057fe5b14156116dc57611a7d88886001858960020180549050030361371e565b6116de888888613824565b611a90565b5bfe5b5b505050505050505050565b600080805b83518310156110be576001604060020a03848481518110611abe57fe5b90602001906020020151169150604060020a848481518110611adc57fe5b90602001906020020151811515611aef57fe5b049050611afc828261119c565b5b600190920191611aa1565b5b50505050565b600054600019015b90565b6000611b2582612d8a565b9050611c778160e06040519081016040528154909190829060ff16600281111561121b57fe5b600281111561122657fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112f25780601f106112c7576101008083540402835291602001916112f2565b820191906000526020600020905b8154815290600101906020018083116112d557829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526132a9565b60028101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25b5050565b600080611ce084610db4565b9350611ceb84612dd5565b6001810154909250611d05906001604060020a0316612d8a565b9050611e578160e06040519081016040528154909190829060ff16600281111561121b57fe5b600281111561122657fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112f25780601f106112c7576101008083540402835291602001916112f2565b820191906000526020600020905b8154815290600101906020018083116112d557829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526132a9565b60038201546110be908590608060020a90046001604060020a031685613115565b5b50505050565b600080611e8a614309565b600080611e9687612dd5565b91508160020160018703815481101515611eac57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03169450611ee185612d8a565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f955780601f10611f6a57610100808354040283529160200191611f95565b820191906000526020600020905b815481529060010190602001808311611f7857829003601f168201915b505050505092505b50509250925092565b600080805b83518310156110be576001604060020a03848481518110611fc857fe5b90602001906020020151169150604060020a848481518110611fe657fe5b90602001906020020151811515611ff957fe5b0490506120068282610f80565b5b600190920191611fab565b5b50505050565b600080612024614309565b600080600080600061203589612d8a565b80546001808301805460ff84169c5061010093849004600160a060020a03169b509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156120eb5780601f106120c0576101008083540402835291602001916120eb565b820191906000526020600020905b8154815290600101906020018083116120ce57829003601f168201915b50505050600283015460038401549298506001604060020a038082169850604060020a8204169650608060020a900460ff16945050600160a060020a031691505b50919395979092949650565b600080805b835182101561217d576001604060020a0384838151811061215a57fe5b9060200190602002015116905061217081610db4565b505b60019091019061213d565b5b5050919050565b600061219085612d8a565b905060025b815460ff1660028111156121a557fe5b146121af57600080fd5b805433600160a060020a0390811661010090920416146121ce57600080fd5b805461010060a860020a031916610100600160a060020a03861602178155600181018380516122019291602001906141d9565b5060028101805467ffffffffffffffff19166001604060020a038481169190911790915585167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b5050505050565b6000806001604060020a038516156124105761227685612d8a565b905060025b815460ff16600281111561228b57fe5b1461229557600080fd5b805433600160a060020a0390811661010090920416146122b457600080fd5b60146124068260e06040519081016040528154909190829060ff1660028111156122da57fe5b60028111156122e557fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123b15780601f10612386576101008083540402835291602001916123b1565b820191906000526020600020905b81548152906001019060200180831161239457829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613b73565b1061241057600080fd5b5b600180549250828082016124258382614258565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808c166020830152604082018d90526001604060020a03808b1660608401528b166080830152600060a0830152881660c09091015291905081518154829060ff1916600183600281111561249f57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516124e59291602001906141d9565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b5095945050505050565b60008080806001604060020a038616151561261857612615602060405190810160405260008082526203f48090612875565b95505b61262186612d8a565b93506127738460e06040519081016040528154909190829060ff16600281111561121b57fe5b600281111561122657fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112f25780601f106112c7576101008083540402835291602001916112f2565b820191906000526020600020905b8154815290600101906020018083116112d557829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526132a9565b60005b845460ff16600281111561278657fe5b1461279057600080fd5b349250600083116127a057600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f1935050505015156127d357600080fd5b6128038660006040518059106127e65750595b908082528060200260200182016040525b50600080600080612e23565b915061280e82612dd5565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36128618683858861149e565b5b505050505050565b600154600019015b90565b6001805490818082016128888382614258565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018a90526001604060020a038916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff1916600183600281111561290157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516129479291602001906141d9565b50606082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b9392505050565b600080600080600080600080612a5789612dd5565b8054600182015460028301546003840154929b506001604060020a039182169a5098508082169750604060020a820481169650608060020a820416945060c060020a900460ff16925090505b50919395979092949650565b600080805b8451831015612861576001604060020a03858481518110612ad157fe5b90602001906020020151169150604060020a858481518110612aef57fe5b90602001906020020151811515612b0257fe5b049050612b118683838761149e565b5b600190920191612ab4565b5b505050505050565b600254600090819033600160a060020a03908116911614612b4657600080fd5b612b4f84612dd5565b915060015b600383015460c060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6001820154600283018054612c30926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612c0b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612bc85790505b505050506003860154600091508190608060020a90046001604060020a031681612e23565b90506110b181610db4565b90506110be848285613115565b5b5b50505050565b600080805b83518310156110be576001604060020a03848481518110612c7257fe5b90602001906020020151169150604060020a848481518110612c9057fe5b90602001906020020151811515612ca357fe5b049050612cb08282612b26565b5b600190920191612c55565b5b50505050565b600080612ccf83612d8a565b905060009150610dae565b815460ff166002811115612cea57fe5b1415612cf95760009150610dae565b60025b815460ff166002811115612d0c57fe5b14612d1357fe5b6002810154608060020a900460ff1615612d305760019150610dae565b6002810154604060020a90046001604060020a03161515612d545760009150610dae565b6002810154610dab90604060020a90046001604060020a0316612cc3565b91505b50919050565b600254600160a060020a031681565b6001546000906001604060020a03831610612da457600080fd5b600180546001604060020a038416908110612dbb57fe5b906000526020600020906004020160005b5090505b919050565b600080546001604060020a03831610612ded57600080fd5b600080546001604060020a038416908110612dbb57fe5b906000526020600020906004020160005b5090505b919050565b425b90565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612e715780820151818401525b602001612e58565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612ede57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612f4757809250613109565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612f85838261431b565b916000526020600020906004020160005b60e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612ff757fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a039290921691909117905560408201518160020190805161304292916020019061434d565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a8360028111156130fd57fe5b02179055505050508092505b50509695505050505050565b60008060006131276001878787613d12565b9250846001604060020a0316866001604060020a0316141561314857612861565b82151561315457612861565b61315d86612dd5565b915061316885612dd5565b82549091508390101561317a57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36131d56000878786613d12565b505b505050505050565b600080806001604060020a03841615156131fc576000925061217d565b61320584612dd5565b600181015490925061321f906001604060020a0316612d8a565b905060005b815460ff16600281111561323457fe5b14156132425783925061217d565b60025b815460ff16600281111561325557fe5b1461325c57fe5b6001820154613273906001604060020a0316610d02565b15156132815783925061217d565b600382015461329f90608060020a90046001604060020a03166131df565b92505b5050919050565b8060200151600160a060020a031633600160a060020a031614806132e257508060c00151600160a060020a031633600160a060020a0316145b15156132ed57600080fd5b5b50565b60006110b18260006040518059106127e65750595b908082528060200260200182016040525b50600080600080612e23565b90506110be848285613115565b5b50505050565b600080600061334586612dd5565b925060146134798460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561341357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116133d05790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561346657fe5b600281111561347157fe5b905250613d3a565b1061348357600080fd5b600183015460028401805461353b926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610ec057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e7d5790505b505050506003870154600091508190608060020a90046001604060020a031681612e23565b915061356d846000604051805910610f095750595b908082528060200260200182016040525b50600080866000612e23565b9050612861868287613115565b5b505050505050565b600061358d614309565b60008061359987612dd5565b6002810154909450601490106135ae57600080fd5b60028401546001016040518059106135c35750595b908082528060200260200182016040525b509250600091505b600284015482101561365157600284018054839081106135f857fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a031683838151811061362e57fe5b6001604060020a039092166020928302909101909101525b6001909101906135dc565b6002840154859084908151811061366457fe5b6001604060020a0392831660209182029092010152600185015460038601546136a0929182169186916000918291608060020a90041681612e23565b90506131d5878288613115565b5b50505050505050565b6000805b83604001515181101561370c57826001604060020a0316846040015182815181106136e257fe5b906020019060200201516001604060020a0316141561370357809150613717565b5b6001016136bb565b6001604060020a0391505b5092915050565b6000613728614309565b60008061373487612dd5565b600281015490945085900360405180591061374c5750595b908082528060200260200182016040525b509250600091505b60028401548590038210156137dd576002840180548390811061378457fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a03168383815181106137ba57fe5b6001604060020a039092166020928302909101909101525b600190910190613765565b600184015460038501546136a0916001604060020a039081169186916000918291608060020a9091041681612e23565b90506131d5878288613115565b5b50505050505050565b60008061383085612dd5565b915060146139648360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561341357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116133d05790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561346657fe5b600281111561347157fe5b905250613d3a565b1061396e57600080fd5b6001820154600283018054613b5e926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613a0157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116139be5790505b505050505085613b378660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613ad157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a8e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613b2457fe5b6002811115613b2f57fe5b905250613ea5565b613b3f612e1e565b6003880154910190608060020a90046001604060020a03166000612e23565b9050610b2e858286613115565b5b5050505050565b60008060025b83516002811115613b8657fe5b14613b8d57fe5b82608001516001604060020a03161515613baa5760019150610dae565b613bb78360800151612d8a565b9050610dab8160e06040519081016040528154909190829060ff1660028111156122da57fe5b60028111156122e557fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123b15780601f10612386576101008083540402835291602001916123b1565b820191906000526020600020905b81548152906001019060200180831161239457829003601f168201915b505050918352505060028201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600390910154600160a060020a0316608090910152613b73565b91505b50919050565b80613d208585808685613f38565b9050613d2f8584868685613f38565b90505b949350505050565b6000808260a001516001604060020a03161515613d5a5760009150610dae565b613d678360a00151612dd5565b9050613e998160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561341357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116133d05790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561346657fe5b600281111561347157fe5b905250613d3a565b60010191505b50919050565b6000806000613eb78460200151612d8a565b60028101546001604060020a031693509150600090505b83604001515181101561217d57613efd84604001518281518110613eee57fe5b90602001906020020151612d8a565b60028101549092506001604060020a031683901115613f275760028201546001604060020a031692505b5b600101613ece565b5b5050919050565b600080600080866001604060020a0316886001604060020a031614613f5f57610100613f62565b60005b61ffff169250849350613f7488612dd5565b6001810154909250613f94908a906001604060020a031689898789614059565b9350600090505b60028201546001604060020a0382161015614011576140068983600201836001604060020a0316815481101515613fce57fe5b90600052602060002090600491828204019190066008025b9054906101000a90046001604060020a0316898985880160010189614059565b93505b600101613f9b565b600382015460006001604060020a03909116111561404c576003820154614049908a906001604060020a0316898960ff880189614059565b93505b5b50505095945050505050565b8060008061406688612d8a565b6003810154909150600160a060020a0316158015906140855750600083115b15613109578815614140576003810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561410f57600080fd5b6102c65a03f1151561412057600080fd5b50505060405180519250508282111561413857600080fd5b819250613109565b6003810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156141b657600080fd5b6102c65a03f115156141c757600080fd5b5050505b5b5b50509695505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061421a57805160ff1916838001178555614247565b82800160010185558215614247579182015b8281111561424757825182559160200191906001019061422c565b5b50614254929150614417565b5090565b815481835581811511614284576004028160040283600052602060002091820191016142849190614438565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061421a57805160ff1916838001178555614247565b82800160010185558215614247579182015b8281111561424757825182559160200191906001019061422c565b5b50614254929150614417565b5090565b60206040519081016040526000815290565b8154818355818115116142845760040281600402836000526020600020918201910161428491906144bc565b5b505050565b828054828255906000526020600020906003016004900481019282156143f55791602002820160005b838211156143c057835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302614376565b80156143f35782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026143c0565b505b50614254929150614523565b5090565b60206040519081016040526000815290565b611b1791905b80821115614254576000815560010161441d565b5090565b90565b611b1791905b8082111561425457805474ffffffffffffffffffffffffffffffffffffffffff191681556000614471600183018261454f565b5060028101805470ffffffffffffffffffffffffffffffffff1916905560038101805473ffffffffffffffffffffffffffffffffffffffff1916905560040161443e565b5090565b90565b611b1791905b8082111561425457600080825560018201805467ffffffffffffffff191690556144ef6002830182614597565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff191690556004016144c2565b5090565b90565b611b1791905b8082111561425457805467ffffffffffffffff19168155600101614529565b5090565b90565b50805460018160011615610100020316600290046000825580601f1061457557506132ed565b601f0160209004906000526020600020908101906132ed9190614417565b5b50565b5080546000825560030160049004906000526020600020908101906132ed9190614417565b5b505600a165627a7a723058208ed500e38651450b749e601724a26d9874553e57dfc8fa2ac718c3243bb17a860029" +exports.LiquidPledgingBaseAbi = [{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[{"name":"idDonor","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001c23833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000245565b8154818355818115116200009957600402816004028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000138565b5b505050565b6200013591905b8082111562000131578054600160a860020a03191681556000620001036001830182620001aa565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000db565b5090565b90565b6200013591905b808211156200013157600080825560018201805467ffffffffffffffff191690556200016f6002830182620001f6565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200013f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d25750620001f2565b601f016020900490600052602060002090810190620001f2919062000221565b5b50565b508054600082556003016004900490600052602060002090810190620001f2919062000221565b5b50565b6200013591905b8082111562000131576000815560010162000228565b5090565b90565b6119ce80620002556000396000f300606060405236156100cd5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313734d8781146100d25780631e2156481461014f5780632101a6ad146101d7578063424e37961461020b57806374653bcb1461028857806391090937146102ad5780639834bf2f14610369578063b165af4114610457578063b9d82bd7146104d4578063c40b51fd1461056c578063cb199fa414610591578063cb9123ff14610619578063f518470514610699578063fbfa77cf146106cd575b600080fd5b34156100dd57600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506106fc915050565b005b341561015a57600080fd5b6101ba60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506107d3915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156101e257600080fd5b6101f767ffffffffffffffff600435166109a5565b604051901515815260200160405180910390f35b341561021657600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610a63915050565b005b341561029357600080fd5b61029b610b3a565b60405190815260200160405180910390f35b34156102b857600080fd5b6102d067ffffffffffffffff60043516602435610b45565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561032c5780820151818401525b602001610313565b50505050905090810190601f1680156103595780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561037457600080fd5b61038967ffffffffffffffff60043516610c6d565b6040518088600281111561039957fe5b60ff168152600160a060020a03888116602083015267ffffffffffffffff87811660608401528616608083015284151560a0830152831660c082015260e0828203810160408301908152910187818151815260200191508051906020019080838360005b838110156104165780820151818401525b6020016103fd565b50505050905090810190601f1680156104435780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b341561046257600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610d92915050565b005b34156104df57600080fd5b6101ba60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610e699050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561057757600080fd5b61029b6111fd565b60405190815260200160405180910390f35b341561059c57600080fd5b6101ba60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611208915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561062457600080fd5b61063967ffffffffffffffff600435166113da565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561067f57fe5b60ff16815260200197505050505050505060405180910390f35b34156106a457600080fd5b6101f767ffffffffffffffff60043516611462565b604051901515815260200160405180910390f35b34156106d857600080fd5b6106e0611526565b604051600160a060020a03909116815260200160405180910390f35b600061070785611535565b905060015b815460ff16600281111561071c57fe5b1461072657600080fd5b805433600160a060020a03908116610100909204161461074557600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610778929160200190611773565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b5050505050565b6001805490818082016107e683826117f2565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018a905267ffffffffffffffff8916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff1916600183600281111561086057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516108a6929160200190611773565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a25b9392505050565b6000806109b183611535565b905060005b815460ff1660028111156109c657fe5b14156109d55760009150610a5d565b60025b815460ff1660028111156109e857fe5b146109ef57fe5b6002810154608060020a900460ff1615610a0c5760019150610a5d565b600281015468010000000000000000900467ffffffffffffffff161515610a365760009150610a5d565b6002810154610a5a9068010000000000000000900467ffffffffffffffff166109a5565b91505b50919050565b6000610a6e85611535565b905060005b815460ff166002811115610a8357fe5b14610a8d57600080fd5b805433600160a060020a039081166101009092041614610aac57600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610adf929160200190611773565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b5050505050565b600054600019015b90565b600080610b506118a3565b600080610b5c87611582565b91508160020160018703815481101515610b7257fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff169450610ba885611535565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5c5780601f10610c3157610100808354040283529160200191610c5c565b820191906000526020600020905b815481529060010190602001808311610c3f57829003601f168201915b505050505092505b50509250925092565b600080610c786118a3565b6000806000806000610c8989611535565b80546001808301805460ff84169c5061010093849004600160a060020a03169b509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d3f5780601f10610d1457610100808354040283529160200191610d3f565b820191906000526020600020905b815481529060010190602001808311610d2257829003601f168201915b505050506002830154600384015492985067ffffffffffffffff8082169850680100000000000000008204169650608060020a900460ff16945050600160a060020a031691505b50919395979092949650565b6000610d9d85611535565b905060025b815460ff166002811115610db257fe5b14610dbc57600080fd5b805433600160a060020a039081166101009092041614610ddb57600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610e0e929160200190611773565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b5050505050565b60008067ffffffffffffffff85161561102557610e8585611535565b905060025b815460ff166002811115610e9a57fe5b14610ea457600080fd5b805433600160a060020a039081166101009092041614610ec357600080fd5b601461101b8260e06040519081016040528154909190829060ff166002811115610ee957fe5b6002811115610ef457fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fc05780601f10610f9557610100808354040283529160200191610fc0565b820191906000526020600020905b815481529060010190602001808311610fa357829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115cd565b1061102557600080fd5b5b6001805492508280820161103a83826117f2565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808c166020830152604082018d905267ffffffffffffffff808b1660608401528b166080830152600060a0830152881660c09091015291905081518154829060ff191660018360028111156110b557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516110fb929160200190611773565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b5095945050505050565b600154600019015b90565b60018054908180820161121b83826117f2565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018a905267ffffffffffffffff8916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff1916600183600281111561129557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516112db929160200190611773565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b9392505050565b6000806000806000806000806113ef89611582565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b60008061146e83611535565b905060009150610a5d565b815460ff16600281111561148957fe5b14156114985760009150610a5d565b60025b815460ff1660028111156114ab57fe5b146114b257fe5b6002810154608060020a900460ff16156114cf5760019150610a5d565b600281015468010000000000000000900467ffffffffffffffff1615156114f95760009150610a5d565b6002810154610a5a9068010000000000000000900467ffffffffffffffff16611462565b91505b50919050565b600254600160a060020a031681565b60015460009067ffffffffffffffff83161061155057600080fd5b6001805467ffffffffffffffff841690811061156857fe5b906000526020600020906004020160005b5090505b919050565b6000805467ffffffffffffffff83161061159b57600080fd5b6000805467ffffffffffffffff841690811061156857fe5b906000526020600020906004020160005b5090505b919050565b60008060025b835160028111156115e057fe5b146115e757fe5b826080015167ffffffffffffffff1615156116055760019150610a5d565b6116128360800151611535565b9050610a5a8160e06040519081016040528154909190829060ff166002811115610ee957fe5b6002811115610ef457fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fc05780601f10610f9557610100808354040283529160200191610fc0565b820191906000526020600020905b815481529060010190602001808311610fa357829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115cd565b91505b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117b457805160ff19168380011785556117e1565b828001600101855582156117e1579182015b828111156117e15782518255916020019190600101906117c6565b5b506117ee9291506118b5565b5090565b81548183558181151161181e5760040281600402836000526020600020918201910161181e91906118d6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117b457805160ff19168380011785556117e1565b828001600101855582156117e1579182015b828111156117e15782518255916020019190600101906117c6565b5b506117ee9291506118b5565b5090565b60206040519081016040526000815290565b610b4291905b808211156117ee57600081556001016118bb565b5090565b90565b610b4291905b808211156117ee57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061190f600183018261195a565b5060028101805470ffffffffffffffffffffffffffffffffff1916905560038101805473ffffffffffffffffffffffffffffffffffffffff191690556004016118dc565b5090565b90565b50805460018160011615610100020316600290046000825580601f10611980575061199e565b601f01602090049060005260206000209081019061199e91906118b5565b5b505600a165627a7a723058206b2df6f322e0e322313b42fc3f999be7033dff752acbe6c7ca161c82dec446f00029" exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"type":"function"},{"payable":true,"type":"fallback"}] exports.VaultByteCode = "0x" exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" -exports._sha256 = "0x27297eb1623d596c5608a2629660b87940a9850148454cfaee8088dd44f5135f" +exports._sha256 = "0x6648d5d7110cb6e68d8ce955179ec2fc3011771f9fb493fb4a29315e7e72d8ad" diff --git a/build/LiquidPledgingBase.sol.js b/build/LiquidPledgingBase.sol.js index f9c23d5..512d952 100644 --- a/build/LiquidPledgingBase.sol.js +++ b/build/LiquidPledgingBase.sol.js @@ -2,9 +2,9 @@ exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"noteManager","type":"uint64"},{"name":"noteFrom","type":"uint64"},{"name":"noteTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" -exports.LiquidPledgingBaseAbi = [{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[{"name":"idDonor","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DeegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001c06833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000245565b8154818355818115116200009957600402816004028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000138565b5b505050565b6200013591905b8082111562000131578054600160a860020a03191681556000620001036001830182620001aa565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000db565b5090565b90565b6200013591905b808211156200013157600080825560018201805467ffffffffffffffff191690556200016f6002830182620001f6565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200013f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d25750620001f2565b601f016020900490600052602060002090810190620001f2919062000221565b5b50565b508054600082556003016004900490600052602060002090810190620001f2919062000221565b5b50565b6200013591905b8082111562000131576000815560010162000228565b5090565b90565b6119b180620002556000396000f300606060405236156100cd5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313734d8781146100d25780631e2156481461014f5780632101a6ad146101d7578063424e37961461020b57806374653bcb1461028857806391090937146102ad5780639834bf2f14610369578063b165af411461044e578063b9d82bd7146104cb578063c40b51fd14610563578063cb199fa414610588578063cb9123ff14610610578063f518470514610690578063fbfa77cf146106c4575b600080fd5b34156100dd57600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506106f3915050565b005b341561015a57600080fd5b6101ba60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506107ca915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156101e257600080fd5b6101f767ffffffffffffffff6004351661099c565b604051901515815260200160405180910390f35b341561021657600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610a5a915050565b005b341561029357600080fd5b61029b610b31565b60405190815260200160405180910390f35b34156102b857600080fd5b6102d067ffffffffffffffff60043516602435610b3c565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561032c5780820151818401525b602001610313565b50505050905090810190601f1680156103595780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561037457600080fd5b61038967ffffffffffffffff60043516610c64565b6040518087600281111561039957fe5b60ff168152600160a060020a038716602082015267ffffffffffffffff85811660608301528416608082015282151560a082015260c0828203810160408301908152910186818151815260200191508051906020019080838360005b8381101561040e5780820151818401525b6020016103f5565b50505050905090810190601f16801561043b5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561045957600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610d75915050565b005b34156104d657600080fd5b6101ba60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610e4c9050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561056e57600080fd5b61029b6111e0565b60405190815260200160405180910390f35b341561059357600080fd5b6101ba60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506111eb915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561061b57600080fd5b61063067ffffffffffffffff600435166113bd565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561067657fe5b60ff16815260200197505050505050505060405180910390f35b341561069b57600080fd5b6101f767ffffffffffffffff60043516611445565b604051901515815260200160405180910390f35b34156106cf57600080fd5b6106d7611509565b604051600160a060020a03909116815260200160405180910390f35b60006106fe85611518565b905060015b815460ff16600281111561071357fe5b1461071d57600080fd5b805433600160a060020a03908116610100909204161461073c57600080fd5b805461010060a860020a031916610100600160a060020a038616021781556001810183805161076f929160200190611756565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b5050505050565b6001805490818082016107dd83826117d5565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018a905267ffffffffffffffff8916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff1916600183600281111561085757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161089d929160200190611756565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167fc36351e19f7c8c017ff53420a3359a15746de6a7eb3b16b64053ca70ee98164f60405160405180910390a25b9392505050565b6000806109a883611518565b905060005b815460ff1660028111156109bd57fe5b14156109cc5760009150610a54565b60025b815460ff1660028111156109df57fe5b146109e657fe5b6002810154608060020a900460ff1615610a035760019150610a54565b600281015468010000000000000000900467ffffffffffffffff161515610a2d5760009150610a54565b6002810154610a519068010000000000000000900467ffffffffffffffff1661099c565b91505b50919050565b6000610a6585611518565b905060005b815460ff166002811115610a7a57fe5b14610a8457600080fd5b805433600160a060020a039081166101009092041614610aa357600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610ad6929160200190611756565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b5050505050565b600054600019015b90565b600080610b47611886565b600080610b5387611565565b91508160020160018703815481101515610b6957fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff169450610b9f85611518565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c535780601f10610c2857610100808354040283529160200191610c53565b820191906000526020600020905b815481529060010190602001808311610c3657829003601f168201915b505050505092505b50509250925092565b600080610c6f611886565b600080600080610c7e88611518565b80546001808301805460ff84169b5061010093849004600160a060020a03169a509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d345780601f10610d0957610100808354040283529160200191610d34565b820191906000526020600020905b815481529060010190602001808311610d1757829003601f168201915b5050505060028301549196505067ffffffffffffffff8082169550680100000000000000008204169350608060020a900460ff1691505b5091939550919395565b6000610d8085611518565b905060025b815460ff166002811115610d9557fe5b14610d9f57600080fd5b805433600160a060020a039081166101009092041614610dbe57600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610df1929160200190611756565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b5050505050565b60008067ffffffffffffffff85161561100857610e6885611518565b905060025b815460ff166002811115610e7d57fe5b14610e8757600080fd5b805433600160a060020a039081166101009092041614610ea657600080fd5b6014610ffe8260e06040519081016040528154909190829060ff166002811115610ecc57fe5b6002811115610ed757fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fa35780601f10610f7857610100808354040283529160200191610fa3565b820191906000526020600020905b815481529060010190602001808311610f8657829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115b0565b1061100857600080fd5b5b6001805492508280820161101d83826117d5565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808c166020830152604082018d905267ffffffffffffffff808b1660608401528b166080830152600060a0830152881660c09091015291905081518154829060ff1916600183600281111561109857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516110de929160200190611756565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b5095945050505050565b600154600019015b90565b6001805490818082016111fe83826117d5565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018a905267ffffffffffffffff8916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff1916600183600281111561127857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516112be929160200190611756565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b9392505050565b6000806000806000806000806113d289611565565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b60008061145183611518565b905060009150610a54565b815460ff16600281111561146c57fe5b141561147b5760009150610a54565b60025b815460ff16600281111561148e57fe5b1461149557fe5b6002810154608060020a900460ff16156114b25760019150610a54565b600281015468010000000000000000900467ffffffffffffffff1615156114dc5760009150610a54565b6002810154610a519068010000000000000000900467ffffffffffffffff16611445565b91505b50919050565b600254600160a060020a031681565b60015460009067ffffffffffffffff83161061153357600080fd5b6001805467ffffffffffffffff841690811061154b57fe5b906000526020600020906004020160005b5090505b919050565b6000805467ffffffffffffffff83161061157e57600080fd5b6000805467ffffffffffffffff841690811061154b57fe5b906000526020600020906004020160005b5090505b919050565b60008060025b835160028111156115c357fe5b146115ca57fe5b826080015167ffffffffffffffff1615156115e85760019150610a54565b6115f58360800151611518565b9050610a518160e06040519081016040528154909190829060ff166002811115610ecc57fe5b6002811115610ed757fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fa35780601f10610f7857610100808354040283529160200191610fa3565b820191906000526020600020905b815481529060010190602001808311610f8657829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115b0565b91505b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061179757805160ff19168380011785556117c4565b828001600101855582156117c4579182015b828111156117c45782518255916020019190600101906117a9565b5b506117d1929150611898565b5090565b8154818355818115116118015760040281600402836000526020600020918201910161180191906118b9565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061179757805160ff19168380011785556117c4565b828001600101855582156117c4579182015b828111156117c45782518255916020019190600101906117a9565b5b506117d1929150611898565b5090565b60206040519081016040526000815290565b610b3991905b808211156117d1576000815560010161189e565b5090565b90565b610b3991905b808211156117d157805474ffffffffffffffffffffffffffffffffffffffffff1916815560006118f2600183018261193d565b5060028101805470ffffffffffffffffffffffffffffffffff1916905560038101805473ffffffffffffffffffffffffffffffffffffffff191690556004016118bf565b5090565b90565b50805460018160011615610100020316600290046000825580601f106119635750611981565b601f0160209004906000526020600020908101906119819190611898565b5b505600a165627a7a72305820688b9bee1ff0954d59f97cebe49c9d589f0d3d14060eb2e0094de19c5eb2ab770029" +exports.LiquidPledgingBaseAbi = [{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idDonor","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDonor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getNoteDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idManager","type":"uint64"}],"name":"getNoteManager","outputs":[{"name":"managerType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"projectManager","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfNoteManagers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDonor","outputs":[{"name":"idDonor","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"idNote","type":"uint64"}],"name":"getNote","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"proposedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldNote","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDonor","type":"uint64"}],"name":"DonorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idManager","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001c23833981016040528080519150505b60016200003681806200006a565b506001620000466000826200009f565b5060028054600160a060020a031916600160a060020a0383161790555b5062000245565b8154818355818115116200009957600402816004028360005260206000209182019101620000999190620000d4565b5b505050565b815481835581811511620000995760040281600402836000526020600020918201910162000099919062000138565b5b505050565b6200013591905b8082111562000131578054600160a860020a03191681556000620001036001830182620001aa565b506002810180546001608860020a0319169055600381018054600160a060020a0319169055600401620000db565b5090565b90565b6200013591905b808211156200013157600080825560018201805467ffffffffffffffff191690556200016f6002830182620001f6565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200013f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001d25750620001f2565b601f016020900490600052602060002090810190620001f2919062000221565b5b50565b508054600082556003016004900490600052602060002090810190620001f2919062000221565b5b50565b6200013591905b8082111562000131576000815560010162000228565b5090565b90565b6119ce80620002556000396000f300606060405236156100cd5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313734d8781146100d25780631e2156481461014f5780632101a6ad146101d7578063424e37961461020b57806374653bcb1461028857806391090937146102ad5780639834bf2f14610369578063b165af4114610457578063b9d82bd7146104d4578063c40b51fd1461056c578063cb199fa414610591578063cb9123ff14610619578063f518470514610699578063fbfa77cf146106cd575b600080fd5b34156100dd57600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506106fc915050565b005b341561015a57600080fd5b6101ba60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506107d3915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156101e257600080fd5b6101f767ffffffffffffffff600435166109a5565b604051901515815260200160405180910390f35b341561021657600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610a63915050565b005b341561029357600080fd5b61029b610b3a565b60405190815260200160405180910390f35b34156102b857600080fd5b6102d067ffffffffffffffff60043516602435610b45565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561032c5780820151818401525b602001610313565b50505050905090810190601f1680156103595780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561037457600080fd5b61038967ffffffffffffffff60043516610c6d565b6040518088600281111561039957fe5b60ff168152600160a060020a03888116602083015267ffffffffffffffff87811660608401528616608083015284151560a0830152831660c082015260e0828203810160408301908152910187818151815260200191508051906020019080838360005b838110156104165780820151818401525b6020016103fd565b50505050905090810190601f1680156104435780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b341561046257600080fd5b61014d6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610d92915050565b005b34156104df57600080fd5b6101ba60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610e699050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561057757600080fd5b61029b6111fd565b60405190815260200160405180910390f35b341561059c57600080fd5b6101ba60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611208915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561062457600080fd5b61063967ffffffffffffffff600435166113da565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561067f57fe5b60ff16815260200197505050505050505060405180910390f35b34156106a457600080fd5b6101f767ffffffffffffffff60043516611462565b604051901515815260200160405180910390f35b34156106d857600080fd5b6106e0611526565b604051600160a060020a03909116815260200160405180910390f35b600061070785611535565b905060015b815460ff16600281111561071c57fe5b1461072657600080fd5b805433600160a060020a03908116610100909204161461074557600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610778929160200190611773565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25b5050505050565b6001805490818082016107e683826117f2565b916000526020600020906004020160005b60e06040519081016040528060015b8152600160a060020a033381166020830152604082018a905267ffffffffffffffff8916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff1916600183600281111561086057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516108a6929160200190611773565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a25b9392505050565b6000806109b183611535565b905060005b815460ff1660028111156109c657fe5b14156109d55760009150610a5d565b60025b815460ff1660028111156109e857fe5b146109ef57fe5b6002810154608060020a900460ff1615610a0c5760019150610a5d565b600281015468010000000000000000900467ffffffffffffffff161515610a365760009150610a5d565b6002810154610a5a9068010000000000000000900467ffffffffffffffff166109a5565b91505b50919050565b6000610a6e85611535565b905060005b815460ff166002811115610a8357fe5b14610a8d57600080fd5b805433600160a060020a039081166101009092041614610aac57600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610adf929160200190611773565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f4328d70c188988fd55d2d7f624cbf5d070fbd36696af297439ce03612786cdc560405160405180910390a25b5050505050565b600054600019015b90565b600080610b506118a3565b600080610b5c87611582565b91508160020160018703815481101515610b7257fe5b90600052602060002090600491828204019190066008025b9054906101000a900467ffffffffffffffff169450610ba885611535565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5c5780601f10610c3157610100808354040283529160200191610c5c565b820191906000526020600020905b815481529060010190602001808311610c3f57829003601f168201915b505050505092505b50509250925092565b600080610c786118a3565b6000806000806000610c8989611535565b80546001808301805460ff84169c5061010093849004600160a060020a03169b509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d3f5780601f10610d1457610100808354040283529160200191610d3f565b820191906000526020600020905b815481529060010190602001808311610d2257829003601f168201915b505050506002830154600384015492985067ffffffffffffffff8082169850680100000000000000008204169650608060020a900460ff16945050600160a060020a031691505b50919395979092949650565b6000610d9d85611535565b905060025b815460ff166002811115610db257fe5b14610dbc57600080fd5b805433600160a060020a039081166101009092041614610ddb57600080fd5b805461010060a860020a031916610100600160a060020a0386160217815560018101838051610e0e929160200190611773565b5060028101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915585167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25b5050505050565b60008067ffffffffffffffff85161561102557610e8585611535565b905060025b815460ff166002811115610e9a57fe5b14610ea457600080fd5b805433600160a060020a039081166101009092041614610ec357600080fd5b601461101b8260e06040519081016040528154909190829060ff166002811115610ee957fe5b6002811115610ef457fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fc05780601f10610f9557610100808354040283529160200191610fc0565b820191906000526020600020905b815481529060010190602001808311610fa357829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115cd565b1061102557600080fd5b5b6001805492508280820161103a83826117f2565b916000526020600020906004020160005b60e06040519081016040528060025b8152600160a060020a03808c166020830152604082018d905267ffffffffffffffff808b1660608401528b166080830152600060a0830152881660c09091015291905081518154829060ff191660018360028111156110b557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516110fb929160200190611773565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25b5095945050505050565b600154600019015b90565b60018054908180820161121b83826117f2565b916000526020600020906004020160005b60e06040519081016040528060005b8152600160a060020a033381166020830152604082018a905267ffffffffffffffff8916606083015260006080830181905260a0830152871660c09091015291905081518154829060ff1916600183600281111561129557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516112db929160200190611773565b50606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a0820151600282018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560c0820151600391909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f13e5becd81bd8e4cb84ee96d841c855caac77003482e6a2ef3db83d52a61f0f760405160405180910390a25b9392505050565b6000806000806000806000806113ef89611582565b8054600182015460028301546003840154929b5067ffffffffffffffff9182169a509850808216975068010000000000000000820481169650608060020a82041694507801000000000000000000000000000000000000000000000000900460ff16925090505b50919395979092949650565b60008061146e83611535565b905060009150610a5d565b815460ff16600281111561148957fe5b14156114985760009150610a5d565b60025b815460ff1660028111156114ab57fe5b146114b257fe5b6002810154608060020a900460ff16156114cf5760019150610a5d565b600281015468010000000000000000900467ffffffffffffffff1615156114f95760009150610a5d565b6002810154610a5a9068010000000000000000900467ffffffffffffffff16611462565b91505b50919050565b600254600160a060020a031681565b60015460009067ffffffffffffffff83161061155057600080fd5b6001805467ffffffffffffffff841690811061156857fe5b906000526020600020906004020160005b5090505b919050565b6000805467ffffffffffffffff83161061159b57600080fd5b6000805467ffffffffffffffff841690811061156857fe5b906000526020600020906004020160005b5090505b919050565b60008060025b835160028111156115e057fe5b146115e757fe5b826080015167ffffffffffffffff1615156116055760019150610a5d565b6116128360800151611535565b9050610a5a8160e06040519081016040528154909190829060ff166002811115610ee957fe5b6002811115610ef457fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fc05780601f10610f9557610100808354040283529160200191610fc0565b820191906000526020600020905b815481529060010190602001808311610fa357829003601f168201915b5050509183525050600282015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600390910154600160a060020a03166080909101526115cd565b91505b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117b457805160ff19168380011785556117e1565b828001600101855582156117e1579182015b828111156117e15782518255916020019190600101906117c6565b5b506117ee9291506118b5565b5090565b81548183558181151161181e5760040281600402836000526020600020918201910161181e91906118d6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117b457805160ff19168380011785556117e1565b828001600101855582156117e1579182015b828111156117e15782518255916020019190600101906117c6565b5b506117ee9291506118b5565b5090565b60206040519081016040526000815290565b610b4291905b808211156117ee57600081556001016118bb565b5090565b90565b610b4291905b808211156117ee57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061190f600183018261195a565b5060028101805470ffffffffffffffffffffffffffffffffff1916905560038101805473ffffffffffffffffffffffffffffffffffffffff191690556004016118dc565b5090565b90565b50805460018160011615610100020316600290046000825580601f10611980575061199e565b601f01602090049060005260206000209081019061199e91906118b5565b5b505600a165627a7a723058202a84b172c099cec662678fd13db473feecd0eddd955fb1503d60fa27292565da0029" exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"type":"function"},{"payable":true,"type":"fallback"}] exports.VaultByteCode = "0x" exports._solcVersion = "0.4.15+commit.bbb8e64f.Emscripten.clang" -exports._sha256 = "0x66e5d6b40a5d6c2ae190133a138f9a1dd1fcd1efabfef25474a15ed43df7d9d1" +exports._sha256 = "0x0390b8a3ace7c484b47ea447b9487fb6dd5cd2842ac025e132f5d1cf070e91eb" diff --git a/build/LiquidPledgingBase_all.sol b/build/LiquidPledgingBase_all.sol index ec1c1c0..044914a 100644 --- a/build/LiquidPledgingBase_all.sol +++ b/build/LiquidPledgingBase_all.sol @@ -3,21 +3,34 @@ pragma solidity ^0.4.11; contract ILiquidPledgingPlugin { - - /// @param context In which context it is affected. - /// 0 -> owner from - /// 1 -> First delegate from - /// 2 -> Second delegate from + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party /// ... - /// 255 -> proposedProject from + /// 255 -> Plugin for the proposedProject transferring pledge to another party /// - /// 256 -> owner to - /// 257 -> First delegate to - /// 258 -> Second delegate to + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party /// ... - /// 511 -> proposedProject to - function beforeTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); - function afterTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount); + /// 511 -> Plugin for the proposedProject receiving pledge to another party + function beforeTransfer( + uint64 noteManager, + uint64 noteFrom, + uint64 noteTo, + uint64 context, + uint amount + ) returns (uint maxAllowed); + function afterTransfer( + uint64 noteManager, + uint64 noteFrom, + uint64 noteTo, + uint64 context, + uint amount); } //File: ./contracts/LiquidPledgingBase.sol @@ -25,43 +38,46 @@ pragma solidity ^0.4.11; +/// @dev This is declares a few functions from `Vault` so that the +/// `LiquidPledgingBase` contract can interface with the `Vault` contract contract Vault { function authorizePayment(bytes32 _ref, address _dest, uint _amount); function () payable; } contract LiquidPledgingBase { - + // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 20; uint constant MAX_SUBPROJECT_LEVEL = 20; uint constant MAX_INTERPROJECT_LEVEL = 20; - enum NoteManagerType { Donor, Delegate, Project }// todo change name - enum PaymentState { NotPaid, Paying, Paid } + enum NoteManagerType { Donor, Delegate, Project } // todo change name Donor Project + enum PaymentState { NotPaid, Paying, Paid } // TODO name change NotPaid - // This struct defines the details of each the NoteManager, these NoteManagers can create - struct NoteManager {// change manager - NoteManagerType managerType; - address addr; - string name; - uint64 commitTime; // Only used in donors and projects, its the precommitment time - uint64 parentProject; // Only for projects - bool canceled; // Only for project - ILiquidPledgingPlugin plugin; // Handler that is called when one call is affected. + /// @dev This struct defines the details of each the NoteManager, these + /// NoteManagers can own notes and act as delegates + struct NoteManager { // TODO name change NoteManager + NoteManagerType managerType; // Giver, Delegate or Campaign + address addr; // account or contract address for admin + string name; + uint64 commitTime; // In seconds, used for Givers' & Delegates' vetos + uint64 parentProject; // Only for campaigns + bool canceled; //Always false except for canceled campaigns + ILiquidPledgingPlugin plugin; // if the plugin is 0x0 then nothing happens if its a contract address than that smart contract is called via the milestone contract } struct Note { uint amount; - uint64 owner; - uint64[] delegationChain; //index numbers!!!!! + uint64 owner; //NoteManager + uint64[] delegationChain; // list of index numbers uint64 proposedProject; // TODO change the name only used for when delegates are precommiting to a project - uint64 commitTime; // At what time the upcoming time will become an owner. + uint64 commitTime; // When the proposedProject will become the owner uint64 oldNote; // this points to the Note[] index that the Note was derived from PaymentState paymentState; } Note[] notes; - NoteManager[] managers; // the list of all the note managers 0 is reserved for no manager + NoteManager[] managers; //The list of noteManagers 0 means there is no manager Vault public vault; // this mapping allows you to search for a specific note's index number by the hash of that note @@ -82,6 +98,8 @@ contract LiquidPledgingBase { // Constructor ////// + /// @notice The Constructor creates the `LiquidPledgingBase` on the blockchain + /// @param _vault Where the ETH is stored that the pledges represent function LiquidPledgingBase(address _vault) { managers.length = 1; // we reserve the 0 manager notes.length = 1; // we reserve the 0 note @@ -93,7 +111,9 @@ contract LiquidPledgingBase { // Managers functions ////// - function addDonor(string name, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDonor) {//Todo return idManager + /// @notice Creates a donor. + function addDonor(string name, uint64 commitTime, ILiquidPledgingPlugin plugin + ) returns (uint64 idDonor) { idDonor = uint64(managers.length); @@ -111,6 +131,7 @@ contract LiquidPledgingBase { event DonorAdded(uint64 indexed idDonor); + ///@notice Changes the address, name or commitTime associated with a specific donor function updateDonor( uint64 idDonor, address newAddr, @@ -118,8 +139,8 @@ contract LiquidPledgingBase { uint64 newCommitTime) { NoteManager storage donor = findManager(idDonor); - require(donor.managerType == NoteManagerType.Donor); - require(donor.addr == msg.sender); + require(donor.managerType == NoteManagerType.Donor);//Must be a Giver + require(donor.addr == msg.sender);//current addr had to originate this tx donor.addr = newAddr; donor.name = newName; donor.commitTime = newCommitTime; @@ -128,6 +149,7 @@ contract LiquidPledgingBase { event DonorUpdated(uint64 indexed idDonor); + /// @notice Creates a new Delegate function addDelegate(string name, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDelegate) { //TODO return index number idDelegate = uint64(managers.length); @@ -141,11 +163,12 @@ contract LiquidPledgingBase { false, plugin)); - DeegateAdded(idDelegate); + DelegateAdded(idDelegate); } - event DeegateAdded(uint64 indexed idDelegate); + event DelegateAdded(uint64 indexed idDelegate); + ///@notice Changes the address, name or commitTime associated with a specific delegate function updateDelegate( uint64 idDelegate, address newAddr, @@ -162,6 +185,7 @@ contract LiquidPledgingBase { event DelegateUpdated(uint64 indexed idDelegate); + /// @notice Creates a new Campaign function addProject(string name, address projectManager, uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idProject) { if (parentProject != 0) { NoteManager storage pm = findManager(parentProject); @@ -187,6 +211,7 @@ contract LiquidPledgingBase { event ProjectAdded(uint64 indexed idProject); + ///@notice Changes the address, name or commitTime associated with a specific Campaign function updateProject( uint64 idProject, address newAddr, @@ -209,11 +234,11 @@ contract LiquidPledgingBase { // Public constant functions ////////// - + /// @notice Public constant that states how many notes are in the system function numberOfNotes() constant returns (uint) { return notes.length - 1; } - + /// @notice Public constant that states the details of the specified Note function getNote(uint64 idNote) constant returns( uint amount, uint64 owner, @@ -232,7 +257,8 @@ contract LiquidPledgingBase { oldNote = n.oldNote; paymentState = n.paymentState; } - // This is to return the delegates one by one, because you can not return an array + /// @notice Public constant that states the delegates one by one, because + /// an array cannot be returned function getNoteDelegate(uint64 idNote, uint idxDelegate) constant returns( uint64 idDelegate, address addr, @@ -244,18 +270,19 @@ contract LiquidPledgingBase { addr = delegate.addr; name = delegate.name; } - + /// @notice Public constant that states the number of admins in the system function numberOfNoteManagers() constant returns(uint) { return managers.length - 1; } - + /// @notice Public constant that states the details of the specified admin function getNoteManager(uint64 idManager) constant returns ( NoteManagerType managerType, address addr, string name, uint64 commitTime, uint64 parentProject, - bool canceled) + bool canceled, + address plugin) { NoteManager storage m = findManager(idManager); managerType = m.managerType; @@ -264,15 +291,17 @@ contract LiquidPledgingBase { commitTime = m.commitTime; parentProject = m.parentProject; canceled = m.canceled; + plugin = address(m.plugin); } //////// // Private methods /////// - // All notes exist... but if the note hasn't been created in this system yet then it wouldn't - // be in the hash array hNoteddx[] - // this function creates a balloon if one is not created already... this ballon has 0 for the amount + /// @notice All notes technically exist... but if the note hasn't been + /// created in this system yet then it wouldn't be in the hash array + /// hNoteddx[]; this creates a Pledge with and amount of 0 if one is not + /// created already... function findNote( uint64 owner, uint64[] delegationChain, @@ -305,7 +334,7 @@ contract LiquidPledgingBase { uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; // helper function that searches the delegationChain fro a specific delegate and - // level of delegation returns their idx in the delegation cahin which reflect their level of authority + // level of delegation returns their idx in the delegation chain which reflect their level of authority function getDelegateIdx(Note n, uint64 idDelegate) internal returns(uint64) { for (uint i=0; i owner from - /// 1 -> First delegate from - /// 2 -> Second delegate from + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party /// ... - /// 255 -> proposedProject from + /// 255 -> Plugin for the proposedProject transferring pledge to another party /// - /// 256 -> owner to - /// 257 -> First delegate to - /// 258 -> Second delegate to + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party /// ... - /// 511 -> proposedProject to - function beforeTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); - function afterTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount); + /// 511 -> Plugin for the proposedProject receiving pledge to another party + function beforeTransfer( + uint64 noteManager, + uint64 noteFrom, + uint64 noteTo, + uint64 context, + uint amount + ) returns (uint maxAllowed); + function afterTransfer( + uint64 noteManager, + uint64 noteFrom, + uint64 noteTo, + uint64 context, + uint amount); } //File: contracts/LiquidPledgingBase.sol @@ -25,43 +38,46 @@ pragma solidity ^0.4.11; +/// @dev This is declares a few functions from `Vault` so that the +/// `LiquidPledgingBase` contract can interface with the `Vault` contract contract Vault { function authorizePayment(bytes32 _ref, address _dest, uint _amount); function () payable; } contract LiquidPledgingBase { - + // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 20; uint constant MAX_SUBPROJECT_LEVEL = 20; uint constant MAX_INTERPROJECT_LEVEL = 20; - enum NoteManagerType { Donor, Delegate, Project }// todo change name - enum PaymentState { NotPaid, Paying, Paid } + enum NoteManagerType { Donor, Delegate, Project } // todo change name Donor Project + enum PaymentState { NotPaid, Paying, Paid } // TODO name change NotPaid - // This struct defines the details of each the NoteManager, these NoteManagers can create - struct NoteManager {// change manager - NoteManagerType managerType; - address addr; - string name; - uint64 commitTime; // Only used in donors and projects, its the precommitment time - uint64 parentProject; // Only for projects - bool canceled; // Only for project - ILiquidPledgingPlugin plugin; // Handler that is called when one call is affected. + /// @dev This struct defines the details of each the NoteManager, these + /// NoteManagers can own notes and act as delegates + struct NoteManager { // TODO name change NoteManager + NoteManagerType managerType; // Giver, Delegate or Campaign + address addr; // account or contract address for admin + string name; + uint64 commitTime; // In seconds, used for Givers' & Delegates' vetos + uint64 parentProject; // Only for campaigns + bool canceled; //Always false except for canceled campaigns + ILiquidPledgingPlugin plugin; // if the plugin is 0x0 then nothing happens if its a contract address than that smart contract is called via the milestone contract } struct Note { uint amount; - uint64 owner; - uint64[] delegationChain; //index numbers!!!!! + uint64 owner; //NoteManager + uint64[] delegationChain; // list of index numbers uint64 proposedProject; // TODO change the name only used for when delegates are precommiting to a project - uint64 commitTime; // At what time the upcoming time will become an owner. + uint64 commitTime; // When the proposedProject will become the owner uint64 oldNote; // this points to the Note[] index that the Note was derived from PaymentState paymentState; } Note[] notes; - NoteManager[] managers; // the list of all the note managers 0 is reserved for no manager + NoteManager[] managers; //The list of noteManagers 0 means there is no manager Vault public vault; // this mapping allows you to search for a specific note's index number by the hash of that note @@ -82,6 +98,8 @@ contract LiquidPledgingBase { // Constructor ////// + /// @notice The Constructor creates the `LiquidPledgingBase` on the blockchain + /// @param _vault Where the ETH is stored that the pledges represent function LiquidPledgingBase(address _vault) { managers.length = 1; // we reserve the 0 manager notes.length = 1; // we reserve the 0 note @@ -93,7 +111,9 @@ contract LiquidPledgingBase { // Managers functions ////// - function addDonor(string name, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDonor) {//Todo return idManager + /// @notice Creates a donor. + function addDonor(string name, uint64 commitTime, ILiquidPledgingPlugin plugin + ) returns (uint64 idDonor) { idDonor = uint64(managers.length); @@ -111,6 +131,7 @@ contract LiquidPledgingBase { event DonorAdded(uint64 indexed idDonor); + ///@notice Changes the address, name or commitTime associated with a specific donor function updateDonor( uint64 idDonor, address newAddr, @@ -118,8 +139,8 @@ contract LiquidPledgingBase { uint64 newCommitTime) { NoteManager storage donor = findManager(idDonor); - require(donor.managerType == NoteManagerType.Donor); - require(donor.addr == msg.sender); + require(donor.managerType == NoteManagerType.Donor);//Must be a Giver + require(donor.addr == msg.sender);//current addr had to originate this tx donor.addr = newAddr; donor.name = newName; donor.commitTime = newCommitTime; @@ -128,6 +149,7 @@ contract LiquidPledgingBase { event DonorUpdated(uint64 indexed idDonor); + /// @notice Creates a new Delegate function addDelegate(string name, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDelegate) { //TODO return index number idDelegate = uint64(managers.length); @@ -141,11 +163,12 @@ contract LiquidPledgingBase { false, plugin)); - DeegateAdded(idDelegate); + DelegateAdded(idDelegate); } - event DeegateAdded(uint64 indexed idDelegate); + event DelegateAdded(uint64 indexed idDelegate); + ///@notice Changes the address, name or commitTime associated with a specific delegate function updateDelegate( uint64 idDelegate, address newAddr, @@ -162,6 +185,7 @@ contract LiquidPledgingBase { event DelegateUpdated(uint64 indexed idDelegate); + /// @notice Creates a new Campaign function addProject(string name, address projectManager, uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idProject) { if (parentProject != 0) { NoteManager storage pm = findManager(parentProject); @@ -187,6 +211,7 @@ contract LiquidPledgingBase { event ProjectAdded(uint64 indexed idProject); + ///@notice Changes the address, name or commitTime associated with a specific Campaign function updateProject( uint64 idProject, address newAddr, @@ -209,11 +234,11 @@ contract LiquidPledgingBase { // Public constant functions ////////// - + /// @notice Public constant that states how many notes are in the system function numberOfNotes() constant returns (uint) { return notes.length - 1; } - + /// @notice Public constant that states the details of the specified Note function getNote(uint64 idNote) constant returns( uint amount, uint64 owner, @@ -232,7 +257,8 @@ contract LiquidPledgingBase { oldNote = n.oldNote; paymentState = n.paymentState; } - // This is to return the delegates one by one, because you can not return an array + /// @notice Public constant that states the delegates one by one, because + /// an array cannot be returned function getNoteDelegate(uint64 idNote, uint idxDelegate) constant returns( uint64 idDelegate, address addr, @@ -244,18 +270,19 @@ contract LiquidPledgingBase { addr = delegate.addr; name = delegate.name; } - + /// @notice Public constant that states the number of admins in the system function numberOfNoteManagers() constant returns(uint) { return managers.length - 1; } - + /// @notice Public constant that states the details of the specified admin function getNoteManager(uint64 idManager) constant returns ( NoteManagerType managerType, address addr, string name, uint64 commitTime, uint64 parentProject, - bool canceled) + bool canceled, + address plugin) { NoteManager storage m = findManager(idManager); managerType = m.managerType; @@ -264,15 +291,17 @@ contract LiquidPledgingBase { commitTime = m.commitTime; parentProject = m.parentProject; canceled = m.canceled; + plugin = address(m.plugin); } //////// // Private methods /////// - // All notes exist... but if the note hasn't been created in this system yet then it wouldn't - // be in the hash array hNoteddx[] - // this function creates a balloon if one is not created already... this ballon has 0 for the amount + /// @notice All notes technically exist... but if the note hasn't been + /// created in this system yet then it wouldn't be in the hash array + /// hNoteddx[]; this creates a Pledge with and amount of 0 if one is not + /// created already... function findNote( uint64 owner, uint64[] delegationChain, @@ -305,7 +334,7 @@ contract LiquidPledgingBase { uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; // helper function that searches the delegationChain fro a specific delegate and - // level of delegation returns their idx in the delegation cahin which reflect their level of authority + // level of delegation returns their idx in the delegation chain which reflect their level of authority function getDelegateIdx(Note n, uint64 idDelegate) internal returns(uint64) { for (uint i=0; i owner from - /// 1 -> First delegate from - /// 2 -> Second delegate from + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party /// ... - /// 255 -> proposedProject from + /// 255 -> Plugin for the proposedProject transferring pledge to another party /// - /// 256 -> owner to - /// 257 -> First delegate to - /// 258 -> Second delegate to + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party /// ... - /// 511 -> proposedProject to - function beforeTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount) returns (uint maxAllowed); - function afterTransfer(uint64 noteManager, uint64 noteFrom, uint64 noteTo, uint64 context, uint amount); + /// 511 -> Plugin for the proposedProject receiving pledge to another party + function beforeTransfer( + uint64 noteManager, + uint64 noteFrom, + uint64 noteTo, + uint64 context, + uint amount + ) returns (uint maxAllowed); + function afterTransfer( + uint64 noteManager, + uint64 noteFrom, + uint64 noteTo, + uint64 context, + uint amount); } //File: contracts/LiquidPledgingBase.sol @@ -25,43 +38,46 @@ pragma solidity ^0.4.11; +/// @dev This is declares a few functions from `Vault` so that the +/// `LiquidPledgingBase` contract can interface with the `Vault` contract contract Vault { function authorizePayment(bytes32 _ref, address _dest, uint _amount); function () payable; } contract LiquidPledgingBase { - + // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 20; uint constant MAX_SUBPROJECT_LEVEL = 20; uint constant MAX_INTERPROJECT_LEVEL = 20; - enum NoteManagerType { Donor, Delegate, Project }// todo change name - enum PaymentState { NotPaid, Paying, Paid } + enum NoteManagerType { Donor, Delegate, Project } // todo change name Donor Project + enum PaymentState { NotPaid, Paying, Paid } // TODO name change NotPaid - // This struct defines the details of each the NoteManager, these NoteManagers can create - struct NoteManager {// change manager - NoteManagerType managerType; - address addr; - string name; - uint64 commitTime; // Only used in donors and projects, its the precommitment time - uint64 parentProject; // Only for projects - bool canceled; // Only for project - ILiquidPledgingPlugin plugin; // Handler that is called when one call is affected. + /// @dev This struct defines the details of each the NoteManager, these + /// NoteManagers can own notes and act as delegates + struct NoteManager { // TODO name change NoteManager + NoteManagerType managerType; // Giver, Delegate or Campaign + address addr; // account or contract address for admin + string name; + uint64 commitTime; // In seconds, used for Givers' & Delegates' vetos + uint64 parentProject; // Only for campaigns + bool canceled; //Always false except for canceled campaigns + ILiquidPledgingPlugin plugin; // if the plugin is 0x0 then nothing happens if its a contract address than that smart contract is called via the milestone contract } struct Note { uint amount; - uint64 owner; - uint64[] delegationChain; //index numbers!!!!! + uint64 owner; //NoteManager + uint64[] delegationChain; // list of index numbers uint64 proposedProject; // TODO change the name only used for when delegates are precommiting to a project - uint64 commitTime; // At what time the upcoming time will become an owner. + uint64 commitTime; // When the proposedProject will become the owner uint64 oldNote; // this points to the Note[] index that the Note was derived from PaymentState paymentState; } Note[] notes; - NoteManager[] managers; // the list of all the note managers 0 is reserved for no manager + NoteManager[] managers; //The list of noteManagers 0 means there is no manager Vault public vault; // this mapping allows you to search for a specific note's index number by the hash of that note @@ -82,6 +98,8 @@ contract LiquidPledgingBase { // Constructor ////// + /// @notice The Constructor creates the `LiquidPledgingBase` on the blockchain + /// @param _vault Where the ETH is stored that the pledges represent function LiquidPledgingBase(address _vault) { managers.length = 1; // we reserve the 0 manager notes.length = 1; // we reserve the 0 note @@ -93,7 +111,9 @@ contract LiquidPledgingBase { // Managers functions ////// - function addDonor(string name, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDonor) {//Todo return idManager + /// @notice Creates a donor. + function addDonor(string name, uint64 commitTime, ILiquidPledgingPlugin plugin + ) returns (uint64 idDonor) { idDonor = uint64(managers.length); @@ -111,6 +131,7 @@ contract LiquidPledgingBase { event DonorAdded(uint64 indexed idDonor); + ///@notice Changes the address, name or commitTime associated with a specific donor function updateDonor( uint64 idDonor, address newAddr, @@ -118,8 +139,8 @@ contract LiquidPledgingBase { uint64 newCommitTime) { NoteManager storage donor = findManager(idDonor); - require(donor.managerType == NoteManagerType.Donor); - require(donor.addr == msg.sender); + require(donor.managerType == NoteManagerType.Donor);//Must be a Giver + require(donor.addr == msg.sender);//current addr had to originate this tx donor.addr = newAddr; donor.name = newName; donor.commitTime = newCommitTime; @@ -128,6 +149,7 @@ contract LiquidPledgingBase { event DonorUpdated(uint64 indexed idDonor); + /// @notice Creates a new Delegate function addDelegate(string name, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDelegate) { //TODO return index number idDelegate = uint64(managers.length); @@ -141,11 +163,12 @@ contract LiquidPledgingBase { false, plugin)); - DeegateAdded(idDelegate); + DelegateAdded(idDelegate); } - event DeegateAdded(uint64 indexed idDelegate); + event DelegateAdded(uint64 indexed idDelegate); + ///@notice Changes the address, name or commitTime associated with a specific delegate function updateDelegate( uint64 idDelegate, address newAddr, @@ -162,6 +185,7 @@ contract LiquidPledgingBase { event DelegateUpdated(uint64 indexed idDelegate); + /// @notice Creates a new Campaign function addProject(string name, address projectManager, uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idProject) { if (parentProject != 0) { NoteManager storage pm = findManager(parentProject); @@ -187,6 +211,7 @@ contract LiquidPledgingBase { event ProjectAdded(uint64 indexed idProject); + ///@notice Changes the address, name or commitTime associated with a specific Campaign function updateProject( uint64 idProject, address newAddr, @@ -209,11 +234,11 @@ contract LiquidPledgingBase { // Public constant functions ////////// - + /// @notice Public constant that states how many notes are in the system function numberOfNotes() constant returns (uint) { return notes.length - 1; } - + /// @notice Public constant that states the details of the specified Note function getNote(uint64 idNote) constant returns( uint amount, uint64 owner, @@ -232,7 +257,8 @@ contract LiquidPledgingBase { oldNote = n.oldNote; paymentState = n.paymentState; } - // This is to return the delegates one by one, because you can not return an array + /// @notice Public constant that states the delegates one by one, because + /// an array cannot be returned function getNoteDelegate(uint64 idNote, uint idxDelegate) constant returns( uint64 idDelegate, address addr, @@ -244,18 +270,19 @@ contract LiquidPledgingBase { addr = delegate.addr; name = delegate.name; } - + /// @notice Public constant that states the number of admins in the system function numberOfNoteManagers() constant returns(uint) { return managers.length - 1; } - + /// @notice Public constant that states the details of the specified admin function getNoteManager(uint64 idManager) constant returns ( NoteManagerType managerType, address addr, string name, uint64 commitTime, uint64 parentProject, - bool canceled) + bool canceled, + address plugin) { NoteManager storage m = findManager(idManager); managerType = m.managerType; @@ -264,15 +291,17 @@ contract LiquidPledgingBase { commitTime = m.commitTime; parentProject = m.parentProject; canceled = m.canceled; + plugin = address(m.plugin); } //////// // Private methods /////// - // All notes exist... but if the note hasn't been created in this system yet then it wouldn't - // be in the hash array hNoteddx[] - // this function creates a balloon if one is not created already... this ballon has 0 for the amount + /// @notice All notes technically exist... but if the note hasn't been + /// created in this system yet then it wouldn't be in the hash array + /// hNoteddx[]; this creates a Pledge with and amount of 0 if one is not + /// created already... function findNote( uint64 owner, uint64[] delegationChain, @@ -305,7 +334,7 @@ contract LiquidPledgingBase { uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; // helper function that searches the delegationChain fro a specific delegate and - // level of delegation returns their idx in the delegation cahin which reflect their level of authority + // level of delegation returns their idx in the delegation chain which reflect their level of authority function getDelegateIdx(Note n, uint64 idDelegate) internal returns(uint64) { for (uint i=0; i { assert.equal(collected, 0.95); }).timeout(8000); it('Should make a donation and create donor', async () => { + const oldNNotes = await liquidPledging.numberOfNotes(); + const oldNManagers = await liquidPledging.numberOfNoteManagers(); await liquidPledging.donate(0, 1, { from: donor2, value: web3.toWei(1) }); const nNotes = await liquidPledging.numberOfNotes(); - assert.equal(nNotes.toNumber(), 14); + assert.equal(nNotes.toNumber(), oldNNotes.toNumber() + 1); const nManagers = await liquidPledging.numberOfNoteManagers(); - assert.equal(nManagers.toNumber(), 7); - const res = await liquidPledging.getNoteManager(7); + assert.equal(nManagers.toNumber(), oldNManagers.toNumber() + 1); + const res = await liquidPledging.getNoteManager(nManagers); assert.equal(res[0], 0); // Donor assert.equal(res[1], donor2); assert.equal(res[2], '');