The StableFX smart contract (FxEscrow) has a set of interfaces you can use to
execute trades either as a maker or a taker. This page describes the user-facing
methods of the StableFX contract.
recordTradeRecords a trade agreement onchain. Returns the contract ID of the trade.
function recordTrade(
address taker,
TakerDetails calldata takerDetails,
bytes calldata takerSignature,
address maker,
MakerDetails calldata makerDetails,
bytes calldata makerSignature
) external returns (uint256);
Parameters
| Name | Type | Description |
|---|---|---|
taker | address | The address of the taker |
takerDetails | TakerDetails | The details of the taker |
takerSignature | bytes | The signature of the taker |
maker | address | The address of the maker |
makerDetails | MakerDetails | The details of the maker |
makerSignature | bytes | The signature of the maker |
Returns
| Name | Type | Description |
|---|---|---|
id | uint256 | The contract ID of the trade |
takerDeliverDelivers quote currency for a single trade using Permit2 on the taker side.
function takerDeliver(uint256 id, IPermit2.PermitTransferFrom memory permit, bytes calldata signature) external;
Parameters
| Name | Type | Description |
|---|---|---|
id | uint256 | The ID of the trade |
permit | IPermit2.PermitTransferFrom | The Permit2-compliant transfer permit |
signature | bytes | The signature for the transfer permit |
takerBatchDeliverDelivers quote currency for multiple trades using Permit2 on the taker side.
function takerBatchDeliver(uint256[] calldata ids, IPermit2.PermitBatchTransferFrom memory permit, bytes calldata signature) external;
Parameters
| Name | Type | Description |
|---|---|---|
ids | uint256[] | An array of trade IDs |
permit | IPermit2.PermitBatchTransferFrom | The Permit2-compliant batch transfer permit |
signature | bytes | The signature for the batch permit |
makerDeliverDelivers base currency for a single trade using Permit2 on the maker side.
function makerDeliver(uint256 id, IPermit2.PermitTransferFrom memory permit, bytes calldata signature) external
Parameters
| Name | Type | Description |
|---|---|---|
id | uint256 | The ID of the trade |
permit | IPermit2.PermitTransferFrom | The Permit2-compliant transfer permit |
signature | bytes | The signature for the transfer permit |
makerBatchDeliverDelivers quote currency for multiple trades using Permit2 on the maker side.
function makerBatchDeliver(uint256[] calldata ids, IPermit2.PermitBatchTransferFrom memory permit, bytes calldata signature) external;
Parameters
| Name | Type | Description |
|---|---|---|
ids | uint256[] | An array of trade IDs |
permit | IPermit2.PermitBatchTransferFrom | The Permit2-compliant batch transfer permit |
signature | bytes | The signature for the batch permit |
makerNetDeliverNet settlement for multiple trades on the maker side.
function makerNetDeliver(uint256[] calldata ids, IPermit2.PermitBatchTransferFrom memory permit, bytes calldata signature) external
Parameters
| Name | Type | Description |
|---|---|---|
ids | uint256[] | An array of trade IDs |
permit | IPermit2.PermitBatchTransferFrom | The Permit2-compliant batch transfer permit |
signature | bytes | The signature for the batch permit |
breachMarks a trade as breached after maturity.
function breach(uint256 id) external;
Parameters
| Name | Type | Description |
|---|---|---|
id | uint256 | The ID of the trade |
breach (batch)Marks multiple trades as breached after maturity.
function breach(uint256[] ids) external;
Parameters
| Name | Type | Description |
|---|---|---|
ids | uint256[] | An array of trade IDs |
calculateMakerNetCalculate maker net token positions for batch operations. Returns an array of Balance structs representing net positions.
function calculateMakerNet(address maker, uint256[] calldata ids) public view returns (Balance[] memory balances);
Parameters
| Name | Type | Description |
|---|---|---|
maker | address | The address of the maker |
ids | uint256[] | An array of trade IDs |
Returns
| Name | Type | Description |
|---|---|---|
balances | Balance[] | An array of Balance structs representing net positions |