价格由你定。市场来找你。
prove.cash 是 PulseChain 上的兑换订单簿。你按自己的价格挂出报价。它一直挂着,直到有人来接。没有资金池价格,没有滑点,你也不用发交易。
它按你的价格或更好的价格成交,否则就不成交。你可以让价格随时间下降,直到一个底价:你愿意接受的最低价。你也可以允许它部分成交。
一个已签名报价的示例,画在真实的 DAI/WBTC 价格之上。
- 签署人
- 0x7a3f…c19d
- 你付出
- 至多17,243
DAI
- 你收到
- 成交于0.274872
WBTC
- 成交方
- 任何人
你至少能拿到你要的数额
合约让对方遵守你签下的数字,取整时朝你这边取。如果你加了手续费,应用会签一个更大的数额来覆盖它。你拿到的仍然是你要的数额。
谁都可以成交
没有白名单,没有保证金,不用注册。谁成交你的报价,谁就付燃料费。市场给出的、高于你所签数字的部分,都归他们。
挂单不花燃料费
你的浏览器做一小会儿计算,就能把它挂出去。不花燃料费,不用发交易,也不用注册。
运作方式
- 你
签署报价
最多拿走这么多某种代币,至少交付这么多另一种代币,都在这个时间窗内。全部承诺就是这些。
- 留言板
传递报价
报价走的是留言板,不是链。挂出去只花你的浏览器一小会儿计算。不用发交易,不花燃料费,也不用账户。
- 任何人
完成成交
没有白名单,没有保证金,不用注册。谁成交它,谁就是执行者。执行者付燃料费,也付你签下的那个数字,并留下市场给出的、高于这个数字的部分。
你签什么,取决于你的代币
成交时,你的代币有五种转移方式。应用读取你的代币,挑出它支持的最便宜的一种,所以这个选择不归你做,也就无从选错。
- EIP-30092 次签名代币仅凭一个签名就能转移。你从不发交易,也没有任何东西被预先授权。
- EIP-2612 permit2 次签名两次签名。你的代币一直留在钱包里,直到有人成交的那一刻。
- Permit22 次签名,1 笔交易仅一次给 Permit2 授权一次。它的地址在每条链上都一样,而且谁都挪不动它。此后每笔报价都只要两个签名,你的代币也不需要任何特殊支持。
- 一次授权1 笔交易,仅一次给合约授权一次。此后每笔报价都只要一个签名。
- 托管1 笔交易先存进去。这要花一笔交易,换来的是报价有资金支撑,执行者一眼就能信。
你的代币放在哪里。
报价有多牢靠,取决于背后撑着它的东西。
授权书
成交时到位代币留在你的钱包里。你签的授权书恰好在成交那一刻把它们转入合约。
- 你支付
- 花费 2 次签名 和 0 笔交易
- 退出方式
- validBefore你的签名在成交那一刻转移代币,而且只绑定这一笔报价。有效期是签名的一部分。在链上取消会立刻让它失效。
托管
在托管中代币放在合约里,只绑定这一笔报价,直到你取回。
- 你支付
- 花费 1 次签名 和 1 到 2 笔交易
- 退出方式
- withdraw · 1 笔交易一次取出就退还你的资金,并结束这笔报价。没有冷却期,没有解锁步骤,也没有会错过的时间窗。从未注资的报价则不同:别人可以用已经存放在你名下的资金为它注资。把你不想要的那些取消掉。
permit2
成交时到位代币留在你的钱包里。你签的 Permit2 转账恰好在成交那一刻把它们转入合约,只此一次。
- 你支付
- 花费 2 次签名 和 至多 1 笔交易
- 退出方式
- deadlinePermit2 的转账只能用一次,并随报价一同过期。之后不会留下任何给我们的长期授权。你唯一的那次授权给的是 Permit2 本身,它的地址我们挪不动。在链上取消会立刻结束这笔报价。
permit
在钱包里代币在一份授权之下留在你的钱包里。这份授权由第二个签名设置,所以你不用发交易。你仍然可以在成交前花掉这些代币,那样成交就会失败。
- 你支付
- 花费 2 次签名 和 0 笔交易
- 退出方式
- cancel · 1 txpermit 是一份由签名设置的授权,所以不用花一笔交易。它仍然是一份授权。撤销它并不会结束报价,因为你签的 permit 会在下一次成交时把它重新设上。要关掉报价,就取消它。抢先用掉你 permit 的陌生人,也挡不住这次成交。
授权
在钱包里代币在一份授权之下留在你的钱包里。你可以在成交前花掉它们,那样成交就会失败。
- 你支付
- 花费 1 次签名 和 至多 1 笔交易
- 退出方式
- cancel · 1 tx撤销授权是在代币那里进行的,合约看不到。它能阻止成交,但不会取消报价。以后再次授权这个代币,报价就会重新生效。只有取消能结束它,而且要花一笔交易。
全部账单。
实测的燃料用量,不是估算。挂单免费。其余的由成交你报价的人支付。
常见情况。收款余额里已经有一些这种代币。
挂出一笔报价
你- 签好并挂到板上工作量证明留言板要你的浏览器做一小会儿计算,而不是要你付钱。不花燃料费,不用发交易,也不用注册。0
用托管为它注资
你- 存入,让报价有资金支撑首次写入为一个空的托管注资总是首次写入,所以它没有热价。这一步是可选的:授权不需要任何预付。124,790
成交一笔报价
执行者- 来自你的授权115,763
- 来自托管123,037
- 带回调原因执行者借走你的代币,在别处卖出,再在同一次调用里还上。他们不需要自己的资金。130,533
一次成交二十笔
执行者- 单一交易对,每笔57,245
- 混合交易对,每笔62,945
- 第二十一笔报价边际往一批已经在跑的成交里再加一笔报价,会多出多少。薄利值不值得接,就看这个数。52,869
- 带回调,每笔报价+505 信用在一批之内借入,每笔报价都要多付一点。这个数字是差值:多加一笔带回调的报价,减去多加一笔不带回调的。它小到在这些柱子上看不出来。56,579
在主网上,一次热成交只花几分之一美分。执行者付这笔钱,并留下市场给出的、高于你所签数字的部分。
你的 gas 由一个陌生人来付。这是他换到的东西。
没有人会出于好心替陌生人付 gas。你是挂单方。谁成交你的报价,谁就是求解者。他们赚的是市场付的价钱和你签下的数字之间的差额。那就是他们的全部收入,而追这笔差额要花他们这么多。
他们会亏什么
求解者为自己尝试的每一笔报价付 gas,事后才知道哪些成交了。一次成交要花 62,480 gas。下面这三种只花 gas,一分不赚。
报价过期了
花费 13,327 gas从他们定价的那一刻到区块落下的那一刻之间,报价过期了。合约在任何代币转移之前就拒绝它,所以这是代价最小的一种。
别人更快
花费 14,070 gas另一个求解者先成交了同一笔报价。这在公开的挂单板上很正常:两个求解者读同一块板,一定会撞车,慢的那个为重复的那份买单。
挂单的人收回去了
花费 76,389 gas求解者查看时,报价还有效。随后挂单方在区块落下之前把钱抽走了。只有这一种失败是有人能故意制造的,而每试一次都要花挂单方一笔交易。一开始就无效的报价,在发出任何东西之前就会被发现,一分钱不花。
他们赚什么
剩下的部分,此外什么都没有。我们不给手续费,没有返点,没有优先权,也不用排队。他们付 gas。他们付你签下的数字。剩下的都归他们。你的手续费从你签下的数字里出,不从求解者的那一份里出。什么都不剩,他们就亏掉 gas。
这为什么对你是安全的
少给你,他们赚不到更多。
你的价格在签名里。不管市场怎么走,合约都按那个数字向求解者收钱。他们只能靠找到更好的价钱多赚,绝不能靠塞给你更差的价钱。
任何人都可以当。
没有白名单,没有保证金,没有注册,没有质押。求解者就是发出那笔交易的任意地址。没有人会被挡在外面,也没有人会被锁在里面。
填满你挂单的是竞争。
求解者不会压你的价。价格是你定的。他们比的是肯接受多薄的利润。利润越薄,就有越多报价按挂单方想要的价格成交。
钱去了哪里
一笔成交
点开一步,查看算式窗口期内执行者支付的价格
报价开盘时高于资金池今天的价格,然后一路下降直到收盘:在 24h 0m 内从 1,005.17 DAI 降到 964.65 DAI。这两个都是你签下的数额。把手续费从收盘数字里扣掉,就是你输入的底价。虚线是同一笔报价在不收手续费和收百分之二手续费时的样子:一个输入的数字,三个签下的数额。每个点标出这笔报价在这里画出的这一周里与市场相遇的位置,已扣除 gas。换一周,这些点就会落在别处。手续费由你支付,从你签下的数额里出。手续费越高,报价成交得越晚。这就是手续费让你付出的全部代价。
谁都不能对你做的事
你签了一份东西。这里有三件它不允许任何人做的事,以及每一条写在哪里。
谁都改不了你拿到的数额。
你的价格就写在你签的报价里。合约用那个数算出整笔付款,从中扣掉你指定的手续费,再把余下的付给你。算式必须取整的地方,它朝你这边取。
去哪里核对_quote 用 _ceilDiv 把总额向上取整,再把手续费向下取整从中扣出,余下的付给你。我们不收任何手续费,也没有开关能加上一笔。
手续费是你签署的报价里的两个数字:一个费率,和它付往哪里。不指定地址,就什么都不收。我们不从中拿走任何部分,也不另加我们自己的手续费。能收取这种手续费的代码已经删除,所以任何所有者都无法把它打开。要向我们收手续费,就需要另一个地址上的另一份合约,而你的签名只绑定这一份。之后做出的任何决定,都影响不到你已经签署的报价。
去哪里核对_quote 按 i.feeRate 收费,并记在 i.feeTo 名下,claim 再从那里把它付出去。提交 3961c2a 删除了 feeSink、feeFloorRate、protocolShare、feePolicy、setFees 和 setFeePolicy。既没有暂停,也没有升级。
任何地方的任何开关都够不着你的钱。所有者能选择无主代币被送到哪里。权限就这么多。没有任何所有者函数能动用你给出的授权。
去哪里核对setDefaultProceeds 和 transferOwnership 是仅有的两个留给所有者的函数。
我们付钱请两个人来尝试攻破上面这些:一次安全审查和一次经济审查。安全审查的每一项发现都已修复。经济审查有一项发现是有意留着的,它自己的测试断言这个攻击仍然成立。它是我们量过、接受并写下来的十一条限制之一。审计范围、静态分析的分类判定、合约和测试都在 一个代码仓库。PulseChain 上的地址在 部署记录。
签一笔试试看。
给我们一个地址,我们会标出它在这条链上已经动过的代币。挑一个,应用打开时就会选好它。价格仍然由你来定,而且在签任何东西之前,你就能看到每一项花费。
或者从这些里随便挑一个开始。