瀏覽代碼

refactor and document PullPaymentCapable

Manuel Araoz 9 年之前
父節點
當前提交
ae60987f58
共有 1 個文件被更改,包括 14 次插入7 次删除
  1. 14 7
      contracts/PullPaymentCapable.sol

+ 14 - 7
contracts/PullPaymentCapable.sol

@@ -1,15 +1,22 @@
+/*
+ * PullPaymentCapable
+ * Base contract supporting async send for pull payments.
+ * Inherit from this contract and use asyncSend instead of send.
+ */
 contract PullPaymentCapable {
-  mapping(address => uint) refunds;
+  mapping(address => uint) payments;
 
+  // store sent amount as credit to be pulled, called by payer
   function asyncSend(address dest, uint amount) internal {
-    refunds[dest] += amount;
+    payments[dest] += amount;
   }
 
-  function withdrawRefund() external {
-    uint refund = refunds[msg.sender];
-    refunds[msg.sender] = 0;
-    if (!msg.sender.send(refund)) {
-      refunds[msg.sender] = refund;
+  // withdraw accumulated balance, called by payee
+  function withdrawPayments() external {
+    uint payment = payments[msg.sender];
+    payments[msg.sender] = 0;
+    if (!msg.sender.send(payment)) {
+      payments[msg.sender] = payment;
     }
   }
 }