永续交易

为了与系统交互,用户必须发送包含他们希望被执行的订单的信息。 当前支持以下订单类型:

● 限价单,宣布有意出售一定数量的某种资产以换取一定比例的另一种资产。 资产之一必须是抵押品。

● 条件性转账,如果记某些链上事件被记录,则要求将抵押品从一个保险库转移到另一个保险库。

● 转账,要求将抵押品从一个保险库转移到另一个保险库。

● 提款,要求抵押品从L2状态转移到L1

‌交易通过公开的接口直接发送到应用程序,并且所有字段上签名的有效性由证明系统验证。

提款

提款的签名构造如下:

ECDSA(H(collateral_asset_id,w),kprivate)ECDSA(H(collateral\_asset\_id, w), k_{private})

其中ECDSA是规则的椭圆曲线数字签名算法,

H is Pedersen hash functionPedersen哈希函数,kprivatek_{private} 是用户的私钥,collateral_asset_id是抵押资产ID(USDC),w字被打包如下:

+----+-----------------+---------+-----------+---------+------------+
#bits | 10 | 64 | 32 | 32 | 32 | 49 |
+----+-----------------+---------+-----------+---------+------------+
label A B C D E F

W定义如下:

‌A:提款类型(6)

B:从中提取资金的保险库ID

C:随机数,为每个请求随机生成

D:金额:要提取多少USDC单位(当“ 1”代表106USDC)

E:失效时间戳-请求截止到该时间(纪元后秒数)有效

F:零填充

限价单

限价单的签名构造如下:ECDSA(H(H(H(H(asset_id_sell,asset_id_buy),asset_id_fee),w1),w2),kprivate)ECDSA(H(H(H(H(asset\_id\_sell, asset\_id\_buy),asset\_id\_fee), w_1), w_2), k_{private})

w1 w_1定义如下:

+-------+--------------+--------------+--------------+--------+
#bits | 27 | 64 | 64 . | 64 | 32 |
+-------+--------------+--------------+--------------+--------+
label A B C D . E

A:零填充

B:出售数量

C:购买数量

D:交易费用

E:随机数

W2定义如下:

+---+--------------+--------------+--------------+-----+-----+
#bits | 10| 64 | 64 . | 64 | 32 | 17 |
+---+--------------+--------------+--------------+-----+-----+
label A B C D . E F

A:限价单类型(3)

B,C和D:发起限价单的保险库ID(写3次)

E:失效时间戳

F:零填充

转账

转账的签名构造如下:ECDSA(H(H(H(H(asset_id,asset_id_fee),receiver_public_key),w1),w2),kprivate)ECDSA(H(H(H(H(asset\_id, asset\_id\_fee),receiver\_public\_key), w_1), w_2), k_{private})

W1的定义如下:

+-------+--------------+--------------+--------------+--------+
#bits | 27 | 64 | 64 . | 64 | 32 |
+-------+--------------+--------------+--------------+--------+
label A B C D . E

A:零填充

B:付款方仓位ID

C:收款方仓位ID

D:仓位 手续费ID

E:随机数

W2的定义如下:

+---+--------------+--------------+--------+-----------------+
#bits | 10| 64 | 64 . | 32 | 81 |
+---+--------------+--------------+--------+-----------------+
label A B C D E

‌ A:转帐类型(4)

B:转帐金额

C:最高手续费用

D:失效时间戳

E:零填充

‌条件性转账

条件性转账的签名结构如下:

ECDSA(H(H(H(H(H(asset_id,asset_id_fee),receiver_public_key),condition),w1),w2),kprivate)ECDSA(H(H(H(H(H(asset\_id, asset\_id\_fee),receiver\_public\_key), condition) , w_1), w_2), k_{private})

w1,w2都被定义为转账时,除了w2以CONDITIONAL TRANSFER(条件性转账)类型(5)开头,并且条件是合约地址的Pedersen哈希值和事实