Wondering what’s next for npm?Check out our public roadmap! »

    swapable
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.2 • Public • Published

    Swapable: Automated Liquidity Pools

    npm version Build Status

    The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.

    This repository contains the source code for swapable, a peer-to-peer automated liquidity pool which enables smart digital markets.

    Installation

    npm install swapable

    Usage

    ⚠️ The following example usage for the swapable library is subject to change. ⚠️ This command execution creates at least one- or more than one - network-wide account restriction. Restrictions can potentially lock you out of your account, so please use this only with caution and only if you understand the risks.

    import { AggregateTransaction, PublicAccount, SignedTransaction } from 'symbol-sdk'
    import { MnemonicPassPhrase } from 'symbol-hd-wallets'
    import { Swapable, NetworkConfig, TransactionParameters } from 'swapable'
    import { TransactionURI } from 'symbol-uri-scheme'
    
    // :warning: The following settings are network specific and may need changes
    const transactionParams = new TransactionParameters(
      1573430400,
      Deadline.create(1573430400),
      750000, // maxFee
    )
    
    // :warning: You should create separate backups of
    // providers and swapable assets pass phrases.
    const assetKeys = MnemonicPassPhrase.createRandom() // backup the resulting 24-words safely!
    
    // :warning: It is recommended to create provider
    // keys offline and using a separate device.
    const provider = new PublicAccount('PUBLIC_KEY_PROVIDER', 'ADDRESS_PROVIDER')
    
    // initialize Swapable library
    const reader = new Symbol.Reader(...)
    const signer = new Symbol.Signer() 
    const swapable = new Swapable.AutomatedPool(
      'SWP:XYM',
      reader,
      signer,
      assetKeys,
    )
    
    // offline creation of the `CreatePool` contract
    const poolId = swapable.create(
      swapable.getTarget().publicAccount, // actor
      provider, // liquidity provider
      new AssetAmount(Symbol_Testnet_SWP, 10),
      new AssetAmount(Symbol_Testnet_XYM, 10),
      transactionParams,
    )
    
    // get the transaction URI for `CreatePool` execution
    const resultURI: TransactionURI = swapable.result
    
    // It is important to denote that given the **aggregate** nature of digital
    // contracts, multiple parties MAY be involved in the transaction and
    // it is therefor required to issue a HashLockTransaction before announcing
    // the aggregate bonded transaction that represents the contract.
    
    // :warning: It is recommended to sign the resulting transactions
    // using a hardware wallet rather than any type of software generated
    // wallets.

    Donations / Pot de vin

    Donations can also be made with cryptocurrencies and will be used for running the project!

    NEM      (XEM):     NB72EM6TTSX72O47T3GQFL345AB5WYKIDODKPPYW
    Symbol   (XYM):     NDQALDK4XWLOUYKPE7RDEWUI25YNRQ7VCGXMPCI
    Ethereum (ETH):     0x7a846fd5Daa4b904caF7C59f866bb906153305D2
    Bitcoin  (BTC):     3EVqgUqYFRYbf9RjhyjBgKXcEwAQxhaf6o
    

    Sponsor us

    Platform Sponsor Link
    Paypal https://paypal.me/usingblockchainltd
    Patreon https://patreon.com/usingblockchainltd
    Github https://github.com/sponsors/UsingBlockchain

    Credits

    Name Contributions
    Using Blockchain Ltd (@UsingBlockchain) info@using-blockchain.org Product Owner
    Grégory Saive (@eVias) Lead Engineering

    License

    Copyright 2020-2021 Using Blockchain Ltd, Reg No.: 12658136, United Kingdom, All rights reserved.

    Licensed under the AGPL v3 License.

    Install

    npm i swapable

    DownloadsWeekly Downloads

    3

    Version

    1.0.2

    License

    AGPL-3.0

    Unpacked Size

    239 kB

    Total Files

    81

    Last publish

    Collaborators

    • avatar