Options
All
  • Public
  • Public/Protected
  • All
Menu

Index

Enumerations

Interfaces

Type aliases

Variables

Functions

Object literals

Type aliases

Curve

Curve: "Secp256k1" | "Secp256r1"

Secp256k1 for BTC, ETH Secp256r1 for NEO

FillPoolFn

FillPoolFn: function

Type declaration

    • (arg: object): Promise<string[]>
    • Parameters

      • arg: object

      Returns Promise<string[]>

GenerateProofFn

GenerateProofFn: function

Type declaration

    • (arg: __type): Promise<Proof>
    • Parameters

      • arg: __type

      Returns Promise<Proof>

Variables

Const BuyOrSellBuy

BuyOrSellBuy: "BUY" = "BUY"

Const BuyOrSellSell

BuyOrSellSell: "SELL" = "SELL"

Const MovementTypeDeposit

MovementTypeDeposit: "DEPOSIT" = "DEPOSIT"

Const MovementTypeWithdrawal

MovementTypeWithdrawal: "WITHDRAWAL" = "WITHDRAWAL"

Const canonicalString

canonicalString: function = compose(toLower,JSON.stringify,o =>Object.keys(o).sort().reduce((acc, el) => ({ ...acc, [el]: o[el] }), {}),deep(mapKeys(snakeCase)))

Generates the canonical string for a given payload.

The canonical string is a human-readable JSON representation of the payload parameters. The keys are alphabetized, and are represented in snake case.

Type declaration

    • (a1: A1): R4
    • Parameters

      • a1: A1

      Returns R4

Const ellipticContext

ellipticContext: ec = new EC.ec('secp256k1')

Const maxFeeRate

maxFeeRate: 250000 = 250000

Const maxOrderRate

maxOrderRate: "ffffffffffffffff" = "ffffffffffffffff"

Const minOrderRate

minOrderRate: 0 = 0

Functions

Keccak256

  • Keccak256(data: string): Buffer
  • Parameters

    • data: string

    Returns Buffer

addRawBlockchainOrderData

  • todo

    Add documentation.

    Parameters

    Returns object

addRawPresignBlockchainOrderData

alterOrderPayloadForGraphql

  • alterOrderPayloadForGraphql(payload: any): any
  • Parameters

    • payload: any

    Returns any

bufferize

  • bufferize(str: string): Buffer
  • Converts a hex string to a buffer. Used for consistency to ensure the proper canonical string representation for buffers.

    See bufferize.ts.

    Parameters

    • str: string

    Returns Buffer

buildETHMovementSignatureData

  • buildETHMovementSignatureData(address: string, payloadAndKind: PayloadAndKind): string
  • Parameters

    Returns string

buildETHOrderSignatureData

  • Parameters

    Returns string

buildNEOMovementSignatureData

  • buildNEOMovementSignatureData(address: string, publicKey: string, assetData: object, payloadAndKind: PayloadAndKind): string
  • Parameters

    • address: string
    • publicKey: string
    • assetData: object
    • payloadAndKind: PayloadAndKind

    Returns string

buildNEOOrderSignatureData

  • buildNEOOrderSignatureData(address: string, publicKey: string, assetData: object, marketData: object, payloadAndKind: PayloadAndKind, chainNoncePair: ChainNoncePair): string
  • Parameters

    Returns string

Const canonicalizePayload

  • Different payload types have different preprocessing strategies. This is a convenience function to properly process various payloads.

    Parameters

    Returns string

Const coinTypeFromString

  • coinTypeFromString(s: string): CoinType
  • Parameters

    • s: string

    Returns CoinType

computePresig

convertEthNonce

  • convertEthNonce(nonce: number): string
  • Parameters

    • nonce: number

    Returns string

createAPIKey

  • createAPIKey(__namedParameters: object): Promise<SignKey>
  • Parameters

    • __namedParameters: object

    Returns Promise<SignKey>

createAccountPortfolioParams

  • createAccountPortfolioParams(fiatSymbol?: undefined | string, period?: undefined | string): PayloadAndKind
  • Parameters

    • Optional fiatSymbol: undefined | string
    • Optional period: undefined | string

    Returns PayloadAndKind

createAddMovementParams

  • Parameters

    • address: string
    • quantity: object
    • type: string
    • nonce: number
    • Optional timestamp: undefined | number
    • Optional recycledOrders: ClientSignedState[]
    • Optional digests: TransactionDigest[]

    Returns PayloadAndKind

createCancelOrderParams

  • createCancelOrderParams(id: string, marketName: string): PayloadAndKind
  • Parameters

    • id: string
    • marketName: string

    Returns PayloadAndKind

createGetAccountAddressParams

  • Parameters

    • currency: string

    Returns PayloadAndKind

createGetAccountBalanceParams

  • Parameters

    • currency: string

    Returns PayloadAndKind

createGetAccountOrderParams

  • Parameters

    • id: string

    Returns PayloadAndKind

createGetAccountVolumesParams

createGetAssetsNoncesParams

  • Parameters

    • assets: string[]

    Returns PayloadAndKind

createGetDepositAddressParams

  • Parameters

    • currency: string

    Returns PayloadAndKind

createGetMovementParams

  • Parameters

    • id: number

    Returns PayloadAndKind

createGetOrdersForMovementParams

  • Parameters

    • unit: string

    Returns PayloadAndKind

createGetStatesParams

createListAccountBalanceParams

  • createListAccountBalanceParams(ignoreLowBalance?: boolean): PayloadAndKind
  • Parameters

    • Default value ignoreLowBalance: boolean = false

    Returns PayloadAndKind

createListAccountOrdersParams

  • createListAccountOrdersParams(before?: undefined | string, buyOrSell?: undefined | string, limit?: undefined | number, marketName?: undefined | string, rangeStart?: undefined | string, rangeStop?: undefined | string, status?: [string], type?: [string]): PayloadAndKind
  • Parameters

    • Optional before: undefined | string
    • Optional buyOrSell: undefined | string
    • Optional limit: undefined | number
    • Optional marketName: undefined | string
    • Optional rangeStart: undefined | string
    • Optional rangeStop: undefined | string
    • Optional status: [string]
    • Optional type: [string]

    Returns PayloadAndKind

createListAccountTradesParams

  • createListAccountTradesParams(before?: undefined | string, limit?: undefined | number, marketName?: undefined | string): PayloadAndKind
  • Parameters

    • Optional before: undefined | string
    • Optional limit: undefined | number
    • Optional marketName: undefined | string

    Returns PayloadAndKind

createListAccountTransactionsParams

  • createListAccountTransactionsParams(cursor?: undefined | string, fiatSymbol?: undefined | string, limit?: undefined | number): PayloadAndKind
  • Parameters

    • Optional cursor: undefined | string
    • Optional fiatSymbol: undefined | string
    • Optional limit: undefined | number

    Returns PayloadAndKind

createListMovementsParams

  • createListMovementsParams(currency?: undefined | string, status?: undefined | string, type?: undefined | string): PayloadAndKind
  • Parameters

    • Optional currency: undefined | string
    • Optional status: undefined | string
    • Optional type: undefined | string

    Returns PayloadAndKind

createPlaceLimitOrderParams

  • createPlaceLimitOrderParams(allowTaker: boolean, amount: object, buyOrSell: string, cancellationPolicy: string, limitPrice: object, marketName: string, noncesFrom: number[], noncesTo: number[], nonceOrder?: undefined | number, cancelAt?: undefined | string): PayloadAndKind
  • Parameters

    • allowTaker: boolean
    • amount: object
    • buyOrSell: string
    • cancellationPolicy: string
    • limitPrice: object
    • marketName: string
    • noncesFrom: number[]
    • noncesTo: number[]
    • Optional nonceOrder: undefined | number
    • Optional cancelAt: undefined | string

    Returns PayloadAndKind

createPlaceMarketOrderParams

  • createPlaceMarketOrderParams(amount: object, buyOrSell: string, marketName: string, noncesFrom: number[], noncesTo: number[], nonceOrder?: undefined | number): PayloadAndKind
  • Parameters

    • amount: object
    • buyOrSell: string
    • marketName: string
    • noncesFrom: number[]
    • noncesTo: number[]
    • Optional nonceOrder: undefined | number

    Returns PayloadAndKind

createPlaceStopLimitOrderParams

  • createPlaceStopLimitOrderParams(allowTaker: boolean, amount: object, buyOrSell: string, cancellationPolicy: string, limitPrice: object, marketName: string, stopPrice: object, noncesFrom: number[], noncesTo: number[], nonceOrder?: undefined | number, cancelAt?: undefined | string): PayloadAndKind
  • Parameters

    • allowTaker: boolean
    • amount: object
    • buyOrSell: string
    • cancellationPolicy: string
    • limitPrice: object
    • marketName: string
    • stopPrice: object
    • noncesFrom: number[]
    • noncesTo: number[]
    • Optional nonceOrder: undefined | number
    • Optional cancelAt: undefined | string

    Returns PayloadAndKind

createPlaceStopMarketOrderParams

  • createPlaceStopMarketOrderParams(amount: object, buyOrSell: string, marketName: string, stopPrice: object, noncesFrom: number[], noncesTo: number[], nonceOrder?: undefined | number): PayloadAndKind
  • Parameters

    • amount: object
    • buyOrSell: string
    • marketName: string
    • stopPrice: object
    • noncesFrom: number[]
    • noncesTo: number[]
    • Optional nonceOrder: undefined | number

    Returns PayloadAndKind

createPrepareMovementParams

  • createPrepareMovementParams(address: string, quantity: object, type: string, timestamp?: undefined | number): PayloadAndKind
  • Parameters

    • address: string
    • quantity: object
    • type: string
    • Optional timestamp: undefined | number

    Returns PayloadAndKind

createSendBlockchainRawTransactionParams

  • createSendBlockchainRawTransactionParams(blockchain: string, transactionPayload: string): PayloadAndKind
  • Parameters

    • blockchain: string
    • transactionPayload: string

    Returns PayloadAndKind

createSignStatesParams

createSyncStatesParams

Const createTimestamp

  • createTimestamp(): number
  • Returns the number of milliseconds since the Unix Epoch.

    Returns number

Const createTimestamp32

  • createTimestamp32(): number
  • Returns number

decodeAPIKeys

  • decodeAPIKeys(encoded: string): APIKey
  • Parameters

    • encoded: string

    Returns APIKey

decryptSecretKey

  • decryptSecretKey(encryptionKey: Buffer, aead: AEAD): Promise<Buffer>
  • Decrypts an encrypted secret key via AEAD. Takes an AEAD object.

    See encryptSecretKey.ts.

    Parameters

    • encryptionKey: Buffer
    • aead: AEAD

    Returns Promise<Buffer>

deriveIndex

  • deriveIndex(extendedKey: BIP32Interface, index: number): BIP32Interface
  • Derives a new key from the extended key for the given index.

    Parameters

    • extendedKey: BIP32Interface
    • index: number

    Returns BIP32Interface

determineSignatureNonceTuplesNeeded

  • todo

    Add documentation.

    Parameters

    Returns ChainNoncePair[]

encodeApiKeys

  • encodeApiKeys(key: APIKey): string
  • Parameters

    Returns string

encryptSecretKey

  • encryptSecretKey(encryptionKey: Buffer, secretKey: Buffer): AEAD
  • Encrypts a secret key via AEAD. Returns an AEAD object. This object is stored server-side, while the encryption key is never stored. When authenticating, the server returns the AEAD object while the client must generate the encryption key on the fly from the user's password using getHKDFKeyFromPassword.ts.

    Uses aes-256-gcm.

    See decryptSecretKey.ts.

    Parameters

    • encryptionKey: Buffer
    • secretKey: Buffer

    Returns AEAD

fillRPool

  • fillRPool(__namedParameters: object): Promise<void>
  • Parameters

    • __namedParameters: object

    Returns Promise<void>

fillRPoolIfNeeded

  • Parameters

    Returns Promise<void>

generateAPIKeys

generateBIP44Key

  • generateBIP44Key(masterSeed: Buffer, coinType: CoinType, index: number): BIP32Interface
  • Generates a deterministic key according to the BIP-44 spec.

    M' / purpose' / coin' / account' / change / index M' / 44' / coin' / 0' / 0

    Parameters

    • masterSeed: Buffer
    • coinType: CoinType
    • index: number

    Returns BIP32Interface

generateNashPayloadSigningKey

  • generateNashPayloadSigningKey(masterSeed: Buffer, index: number): Wallet
  • Creates the keypair used for signing payloads. Used during Nash Protocol initialization.

    Parameters

    • masterSeed: Buffer
    • index: number

    Returns Wallet

generateWallet

  • generateWallet(masterSeed: Buffer, coinType: CoinType, index: number, net?: undefined | string): Wallet
  • Creates a wallet for a given token via the BIP-44 protocol.

    Requires the user's master seed.

    Parameters

    • masterSeed: Buffer
    • coinType: CoinType
    • index: number
    • Optional net: undefined | string

    Returns Wallet

getBlockchainMovement

getETHAssetID

  • getETHAssetID(asset: string): string
  • Parameters

    • asset: string

    Returns string

getHKDFKeysFromPassword

  • getHKDFKeysFromPassword(password: string, salt: string): Promise<HKDFKeys>
  • Derives two keys from a given input key via HKDF.

    Specifically, we use this to derive keys from a user's hashed password and never use the hashed password directly. Thus, if one derived key is compromised, other keys are not affected.

    See the HKDFKeys interface for information on how Nash uses these keys.

    Parameters

    • password: string
    • salt: string

    Returns Promise<HKDFKeys>

getLimitPrice

  • getLimitPrice(marketName: string, buyOrSell: string, limitPrice: any): string
  • Parameters

    • marketName: string
    • buyOrSell: string
    • limitPrice: any

    Returns string

getNEOAssetHash

  • getNEOAssetHash(asset: Asset): string
  • Parameters

    Returns string

getNEOScriptHash

  • getNEOScriptHash(address: string): string
  • Parameters

    • address: string

    Returns string

getSecretKey

  • getSecretKey(): Buffer
  • Generates a secret key of Nash's desired length from a random entropy.

    This secret key is ultimately the foundation of a user's wallets, so should be treated with extreme care.

    Returns Buffer

getUnitPairs

  • getUnitPairs(market: string): any
  • Parameters

    • market: string

    Returns any

hashPassword

  • hashPassword(password: string, salt: string): Promise<Buffer>
  • Hashes a plaintext password via the scrypt key derivation function.

    Parameters

    • password: string
    • salt: string

    Returns Promise<Buffer>

inferBlockchainData

initialize

  • Parameters

    Returns Promise<Config>

isLimitOrderPayload

  • Parameters

    Returns boolean

isOrderPayload

  • Parameters

    Returns boolean

isStateSigning

  • Parameters

    Returns boolean

kindToName

  • Parameters

    Returns string

kindToOrderPrefix

  • Parameters

    Returns string

mnemonicToMasterSeed

  • mnemonicToMasterSeed(mnemonic: ReadonlyArray<string>): Buffer
  • Converts a BIP-39 mnemonic to its master seed representation. This representation is used to generate blockchain wallets.

    Parameters

    • mnemonic: ReadonlyArray<string>

    Returns Buffer

mnemonicToSecretKey

  • mnemonicToSecretKey(mnemonic: ReadonlyArray<string>): Buffer
  • Converts a BIP-39 mnemonic to its secret key representation.

    See secretKeyToMnemonic.ts.

    Parameters

    • mnemonic: ReadonlyArray<string>

    Returns Buffer

needBlockchainMovement

  • Parameters

    Returns boolean

needBlockchainSignature

  • Parameters

    Returns boolean

normalizeAmount

  • normalizeAmount(amount: string, precision: number): number
  • Parameters

    • amount: string
    • precision: number

    Returns number

normalizeString

  • normalizeString(str: string): Buffer
  • Parameters

    • str: string

    Returns Buffer

preSignBTC

  • Parameters

    Returns Promise<BlockchainSignature>

preSignPayload

preSignStateListAndRecycledOrders

precisionDiff

  • precisionDiff(amount: string, precision: number): number
  • Parameters

    • amount: string
    • precision: number

    Returns number

presignBlockchainData

  • Presign blockchain data. Returns an array of signatures. Needed for operations such as order placement.

    If the operation occurs within the same blockchain origin, 1 signature is returned. For example, 1 signature is returned when trading NEO for GAS.

    If the operation is cross-chain, 2 signatures are returned. For example, two signatures are returned for a BTC-ETH trade.

    Parameters

    Returns Promise<ReadonlyArray<BlockchainSignature>>

presignETHBlockchainData

presignNEOBlockchainData

presignRecycledOrdersForAddMovement

presignStateList

presignTransactionDigestsForAddMovement

publicKeyFromSecretKey

  • publicKeyFromSecretKey(__namedParameters: object): Promise<string>
  • Parameters

    • __namedParameters: object

    Returns Promise<string>

randomBytes

  • randomBytes(bytes: number): Buffer
  • Returns an entropy with the given number of bytes. Works in both Node and the browser.

    Parameters

    • bytes: number

    Returns Buffer

regenerateMnemonic

  • regenerateMnemonic(aead: AEAD, password: string, salt: string): Promise<ReadonlyArray<string>>
  • Convenience function for retrieving a mnemonic from a user's password and AEAD. Simply derives the encryption key from the password, and uses that to decrypt the encrypted secret key, then derives the mnemonic from the key.

    Parameters

    • aead: AEAD
    • password: string
    • salt: string

    Returns Promise<ReadonlyArray<string>>

reverseHexString

  • reverseHexString(hex: string): string
  • Parameters

    • hex: string

    Returns string

secretKeyToMnemonic

  • secretKeyToMnemonic(secretKey: Buffer): ReadonlyArray<string>
  • Converts a given secret key to its BIP-39 mnemonic representation.

    Returns the mnemonic as an array of words.

    See mnemonicToSecretKey.ts.

    Parameters

    • secretKey: Buffer

    Returns ReadonlyArray<string>

signBTC

  • Parameters

    • privateKey: string
    • message: string

    Returns BlockchainSignature

signBlockchainData

  • Signs blockchain data. Returns an array of signatures. Needed for operations such as order placement.

    If the operation occurs within the same blockchain origin, 1 signature is returned. For example, 1 signature is returned when trading NEO for GAS.

    If the operation is cross-chain, 2 signatures are returned. For example, two signatures are returned for a BTC-ETH trade.

    Parameters

    Returns ReadonlyArray<BlockchainSignature>

signETHBlockchainData

  • Parameters

    • privateKey: string
    • data: string

    Returns BlockchainSignature

signNEOBlockchainData

  • Parameters

    • privateKey: string
    • data: string

    Returns BlockchainSignature

signPayload

  • Signs a payload using a private key. The private key should be the key created by initialization of the Nash Protocol. Payloads are signed via ECDSA using secp256k1.

    If the payload to be signed is for a blockchain operation, the Config object must be passed as well to create the blockchain signatures.

    Refer to the documentation for the Config interface and to initialize.ts.

    Parameters

    Returns PayloadSignature

signRecycledOrdersForAddMovement

signStateList

signStateListAndRecycledOrders

signTransactionDigestsForAddMovement

snakeCase

  • snakeCase(obj: Record<string, any>): object
  • Parameters

    • obj: Record<string, any>

    Returns object

stringify

  • stringify(buffer: Buffer): string
  • Converts a buffer to a hex string. Used for consistency to ensure the proper canonical string representation for buffers.

    See bufferize.ts.

    Parameters

    • buffer: Buffer

    Returns string

toBigEndian

  • toBigEndian(n: number): Buffer
  • Parameters

    • n: number

    Returns Buffer

toBigEndianHex

  • toBigEndianHex(n: number): string
  • Parameters

    • n: number

    Returns string

toLittleEndian

  • toLittleEndian(n: number): Buffer
  • Parameters

    • n: number

    Returns Buffer

toLittleEndianHex

  • toLittleEndianHex(n: number): string
  • Parameters

    • n: number

    Returns string

validateMnemonic

  • validateMnemonic(mnemonic: ReadonlyArray<string>): boolean
  • Checks if an array of BIP39 words forms a valid BIP39 mnemonic. Note that Nash uses 12-word mnemonics, but this function will return true for a spec compliant mnemonic of any length.

    Parameters

    • mnemonic: ReadonlyArray<string>

      An array of words to validate.

    Returns boolean

Object literals

Const BlockchainCurve

BlockchainCurve: object

__computed

__computed: "Secp256r1" = "Secp256r1"

Const PayloadIDToName

PayloadIDToName: object

__computed

__computed: string = "prepare_movement"

Legend

  • Module
  • Object literal
  • Variable
  • Function
  • Function with type parameter
  • Index signature
  • Type alias
  • Type alias with type parameter
  • Enumeration
  • Enumeration member
  • Property
  • Method
  • Interface
  • Interface with type parameter
  • Constructor
  • Property
  • Method
  • Index signature
  • Class
  • Class with type parameter
  • Constructor
  • Property
  • Method
  • Accessor
  • Index signature
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Inherited accessor
  • Protected property
  • Protected method
  • Protected accessor
  • Private property
  • Private method
  • Private accessor
  • Static property
  • Static method

Generated using TypeDoc