Swapica / core-contracts

Swapica contracts that handle order books

Home Page:https://www.npmjs.com/package/@swapica/core-contracts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Swapica contracts

This repository contains Swapica core contracts. All contracts are managed and indexed by backend services using modified EIP-191 standard signatures.

  • ./contracts/core/Swapica.sol Swapica contract, which allows creating, executing, and canceling orders and matches.
  • ./contracts/relayer/Relayer.sol Relayer contract that facilitates the orders matching by executing executeOrder and executeMatch methods on the Swapica contract. The Relayer is optional, and it charges set fees from users for this service.

Overview

Installation

$ npm install @swapica/core-contracts

Run Tests

$ npm run test

Deployment

To deploy contracts, first configure ./.env based on the ./.env.example file. After that, you can run the migration script with the desired network (see ./package.json scripts):

$ npm run deploy-sepolia

Usage

Once the npm package is installed, one can use the swapica core contracts just like that:

pragma solidity ^0.8.19;

import "@swapica/core-contracts/interfaces/core/ISwapica.sol";

contract ExampleContract {
    function getLatestOrder(address swapica) external view returns (ISwapica.Order memory order) {
        uint256 ordersLength = ISwapica(swapica).getUserOrdersLength(msg.sender);

        require(ordersLength > 0, "ExampleContract: no orders");

        return ISwapica(swapica).getUserOrders(msg.sender, ordersLength - 1, 1)[0];
    }
}

About

Swapica contracts that handle order books

https://www.npmjs.com/package/@swapica/core-contracts

License:MIT License


Languages

Language:TypeScript 63.5%Language:Solidity 36.3%Language:Shell 0.2%