liuzhixiang avatar

steemit上的Escrow Transfer怎么这么奇怪?

liuzhixiang

Published: 12 Nov 2018 › Updated: 12 Nov 2018steemit上的Escrow Transfer怎么这么奇怪?

steemit上的Escrow Transfer怎么这么奇怪?

steemit上的Escrow Transfer过了有效期居然不会自动付款。

被娃吵醒了,睡不着,干脆起了个早。
想起昨天davidke20@davidke20 让看一下escrow,遂研究了一番。
研究后发现,steemit实现的escrow有点奇怪。

一共有四个Escrow操作,分别是
escrow_transfer
escrow_approve
escrow_release
escrow_dispute

官方文档看这里:https://developers.steem.io/apidefinitions/#broadcast_ops_escrow_transfer

1.escrow_transfer

steem.broadcast.escrowTransfer(
    wif, // active key
    from,
    to, 
    agent, 
    escrow_id,
    sbd_amount,
    steem_amount,
    fee, 
    ratification_deadline,
    escrow_expiration,
    JSON.stringify({'test':'test'}),
    function(err, response) {
        console.log(err, response);
    }
);

这些字段字面理解即可,我就不做过多说明了。
执行后会产生这样一条交易记录。

2.escrow_approve

steem.broadcast.escrowApprove(
        wif,
        from,
        to,
        agent,
        who,
        escrow_id,
        'true',
        function(err, response) {
            console.log(err, response);
        }
);

产生区块记录如下:

交易发起后,需要收款方和escrow代理各自执行approve操作。然后,escrow交易才算正式开始。
如果收款方和代理没有在ratification_deadline规定的时间内approve。发起方被暂扣的款项将退回发起方帐号。

3.escrow_release

steem.broadcast.escrowRelease(
        wif,
        from,
        to,
        agent,
        who,
        receiver,
        escrow_id,
        sbd_balance,
        steem_balance,
        function(err, response) {
            console.log(err, response);
        }
);

这个是用来付款的。官方规则如下:
如果没有纠纷,没人调用escrow_dispute方法:
那么分为有效期内和过期两种情况。
有效期内,付款和收款方可以分多次分批支付或退回款项给对方。
过有效期后,“诡异”的事情出现了。付款和收款方可以任意支配escrow交易里的余额了,可以付给对方,也可以付给自己。到期后,难道款项不是应该自动付给收款方的吗? 这样的话,这个方法似乎就只适合大宗贸易而不太适合普通电商支付了。
(另外,没有纠纷的情况下,escrow代理是无权执行此方法的。)

如果有纠纷,那么就只能由escrow代理来执行该方法了。

4.escrow_dispute

由于其他方法测试一切正常,这个方法我就没测了。这个是发起纠纷仲裁的。付款和收款方可以调用该方法让escrow代理来仲裁。这样付款权限就交到escrow代理手里了。

经测试,escrow交易正常可用。只是到期不会自动给把款项付给收款方,这个有点诡异。不太适合收款方有大量交易的应用场景。

Leave steemit上的Escrow Transfer怎么这么奇怪? to:

Written by

Read more #cn posts


Best Posts From liuzhixiang

We have not curated any of liuzhixiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From liuzhixiang