melis-api-js
Version:
Melis Javascript API bindings
303 lines (268 loc) • 12.4 kB
JavaScript
var C = {}
C.CLIENT_API_VERSION = "0.10.0"
// Websocket official urls
C.MELIS_DISCOVER = "https://discover.melis.io/api/v1/endpoint/stomp"
C.MELIS_TEST_DISCOVER = "https://discover-test.melis.io/api/v1/endpoint/stomp"
// Standard queues used for communication
C.QUEUE_RPC_REPLY = "/user/queue/rpc"
C.QUEUE_RPC_ERROR = "/user/queue/errors"
C.QUEUE_SERVER_EVENTS = "/user/queue/messages"
C.QUEUE_TICKERS_PREFIX = "/topic/tickers/"
C.QUEUE_TICKERS_HISTORY_PREFIX = "/topic/tickersHistory/"
C.QUEUE_BLOCKS = "/topic/blocks"
C.QUEUE_PUBLIC_MSGS = "/topic/messages"
C.EX_TOO_MANY_REQUESTS = "CmTooManyRequestException"
// application prefixes
C.PREFIX_APP = "/app/"
C.QUEUE_CONFIG = C.PREFIX_APP + "v1/config"
// Public methods (no auth required)
C.PREFIX_PUBLIC_METHODS = C.PREFIX_APP + "v1/public/"
C.GET_PAYMENT_ADDRESS = C.PREFIX_PUBLIC_METHODS + "getPaymentAddress"
C.GET_ACCOUNT_PUBLIC_INFO = C.PREFIX_PUBLIC_METHODS + "getAccountPublicInfo"
// Wallet methods
C.PREFIX_WALLET_METHODS = C.PREFIX_APP + "v1/wallet/"
C.GET_CHALLENGE = C.PREFIX_WALLET_METHODS + "getChallenge"
C.WALLET_LOGIN = C.PREFIX_WALLET_METHODS + "login"
C.WALLET_OPEN = C.PREFIX_WALLET_METHODS + "open"
C.WALLET_CLOSE = C.PREFIX_WALLET_METHODS + "close"
C.WALLET_REGISTER = C.PREFIX_WALLET_METHODS + "register"
C.WALLET_ACCOUNTS_GET = C.PREFIX_WALLET_METHODS + "accountsGet"
C.WALLET_GET_FREE_ACCOUNT_NUM = C.PREFIX_WALLET_METHODS + "getFreeAccountNumber"
C.WALLET_ADD_LEGACY_ADDRESS = C.PREFIX_WALLET_METHODS + "legacyAddressAdd"
//C.WALLET_GET_CUSTOM_KEY = C.PREFIX_WALLET_METHODS + "getCustomPubKey"
//C.WALLET_GET_CUSTOM_KEYS = C.PREFIX_WALLET_METHODS + "getCustomPubKeys"
C.WALLET_META_SET = C.PREFIX_WALLET_METHODS + "metaSet"
C.WALLET_META_GET = C.PREFIX_WALLET_METHODS + "metaGet"
C.WALLET_META_DELETE = C.PREFIX_WALLET_METHODS + "metaDelete"
C.WALLET_METAS_GET = C.PREFIX_WALLET_METHODS + "metasGet"
C.WALLET_GET_INFO = C.PREFIX_WALLET_METHODS + "info"
C.WALLET_GET_ACCOUNTS_STATUS = C.PREFIX_WALLET_METHODS + "getAccountsStatus"
C.WALLET_GET_NOTIFICATIONS = C.PREFIX_WALLET_METHODS + "getNotifications"
C.WALLET_GET_NUM_SESSIONS = C.PREFIX_WALLET_METHODS + "getNumSessions"
C.WALLET_DEVICE_SET_PASSWORD = C.PREFIX_WALLET_METHODS + "deviceSetPassword"
C.WALLET_DEVICE_GET_PASSWORD = C.PREFIX_WALLET_METHODS + "deviceGetPassword"
C.WALLET_DEVICE_UPDATE = C.PREFIX_WALLET_METHODS + "deviceUpdate"
C.WALLET_DEVICE_CHANGE_PIN = C.PREFIX_WALLET_METHODS + "deviceChangePin"
C.WALLET_DEVICE_PROMOTE_TO_PRIMARY = C.PREFIX_WALLET_METHODS + "devicePromoteToPrimary"
C.WALLET_DEVICE_CANCEL_PROMOTION = C.PREFIX_WALLET_METHODS + "deviceCancelPromotion"
C.WALLET_DEVICE_GET_RECOVERY_HOURS = C.PREFIX_WALLET_METHODS + "deviceGetRecoveryHours"
C.WALLET_DEVICE_SET_RECOVERY_HOURS = C.PREFIX_WALLET_METHODS + "deviceSetRecoveryHours"
C.WALLET_DEVICES_GET = C.PREFIX_WALLET_METHODS + "devicesGet"
C.WALLET_DEVICES_DELETE = C.PREFIX_WALLET_METHODS + "devicesDelete"
C.WALLET_DEVICES_DELETE_ALL = C.PREFIX_WALLET_METHODS + "devicesDeleteAll"
C.WALLET_PUSH_REGISTER_GOOGLE = C.PREFIX_WALLET_METHODS + "addPushToken/google"
// Wallet types
C.TYPE_LEGACY = 'L'
C.TYPE_PLAIN_HD = 'H'
C.TYPE_2OF2_SERVER = '2'
C.TYPE_MULTISIG_MANDATORY_SERVER = 'M'
C.TYPE_MULTISIG_NON_MANDATORY_SERVER = 'O'
C.TYPE_MULTISIG_NO_SERVER = 'N'
C.TYPE_COSIGNER = 'C'
// Account methods
C.PREFIX_ACCOUNT_METHODS = C.PREFIX_APP + "v1/account/"
C.ACCOUNT_OPEN = C.PREFIX_ACCOUNT_METHODS + "open"
C.ACCOUNT_REFRESH = C.PREFIX_ACCOUNT_METHODS + "refresh"
C.ACCOUNT_JOIN = C.PREFIX_ACCOUNT_METHODS + "join"
C.ACCOUNT_REGISTER = C.PREFIX_ACCOUNT_METHODS + "register"
C.ACCOUNT_UPDATE = C.PREFIX_ACCOUNT_METHODS + "update"
C.ACCOUNT_DELETE = C.PREFIX_ACCOUNT_METHODS + "delete"
C.ACCOUNT_GET_UNUSED_ADDRESS = C.PREFIX_ACCOUNT_METHODS + "getUnusedAddress"
C.ACCOUNT_ADDRESS_UPDATE = C.PREFIX_ACCOUNT_METHODS + "addressUpdate"
C.ACCOUNT_ADDRESS_RELEASE = C.PREFIX_ACCOUNT_METHODS + "addressRelease"
C.ACCOUNT_ADDRESS_GET = C.PREFIX_ACCOUNT_METHODS + "addressGet"
C.ACCOUNT_ADDRESSES_GET = C.PREFIX_ACCOUNT_METHODS + "addressesGet"
C.ACCOUNT_GET_UNSPENTS = C.PREFIX_ACCOUNT_METHODS + "getUnspents"
C.ACCOUNT_GET_EXPIRING_UNSPENTS = C.PREFIX_ACCOUNT_METHODS + "getExpiringUnspents"
C.ACCOUNT_GET_JOIN_CODE_INFO = C.PREFIX_ACCOUNT_METHODS + "getJoinCodeInfo"
C.ACCOUNT_GET_NOTIFICATIONS = C.PREFIX_ACCOUNT_METHODS + "getNotifications"
C.ACCOUNT_PTX_PREPARE = C.PREFIX_ACCOUNT_METHODS + "ptxPrepare"
C.ACCOUNT_PTX_GET = C.PREFIX_ACCOUNT_METHODS + "ptxGet"
C.ACCOUNT_PTXS_GET = C.PREFIX_ACCOUNT_METHODS + "ptxsGet"
C.ACCOUNT_PTX_CANCEL = C.PREFIX_ACCOUNT_METHODS + "ptxCancel"
C.ACCOUNT_PTX_SIGN_FIELDS = C.PREFIX_ACCOUNT_METHODS + "ptxSignFields"
C.ACCOUNT_PTX_FEE_BUMP = C.PREFIX_ACCOUNT_METHODS + "ptxFeeBump"
C.ACCOUNT_SUBMIT_SIGNATURES = C.PREFIX_ACCOUNT_METHODS + "signaturesSubmit"
C.ACCOUNT_GET_TX_INFOS = C.PREFIX_ACCOUNT_METHODS + "txInfosGet"
C.ACCOUNT_GET_TX_INFO = C.PREFIX_ACCOUNT_METHODS + "txInfoGet"
C.ACCOUNT_SET_TX_INFO = C.PREFIX_ACCOUNT_METHODS + "txInfoSet"
C.ACCOUNT_GET_ALL_LABELS = C.PREFIX_ACCOUNT_METHODS + "getAllLabels"
C.ACCOUNT_LIMITS_GET = C.PREFIX_ACCOUNT_METHODS + "limitsGet"
C.ACCOUNT_LIMIT_SET = C.PREFIX_ACCOUNT_METHODS + "limitSet"
C.ACCOUNT_LIMIT_CANCEL_CHANGE = C.PREFIX_ACCOUNT_METHODS + "limitCancelChange"
C.ACCOUNT_ALIAS_INFO = C.PREFIX_ACCOUNT_METHODS + "aliasInfo"
C.ACCOUNT_ALIAS_AVAILABLE = C.PREFIX_ACCOUNT_METHODS + "aliasAvailable"
C.ACCOUNT_ALIAS_DEFINE = C.PREFIX_ACCOUNT_METHODS + "aliasDefine"
C.ACCOUNT_GET_LOCKTIME_DAYS = C.PREFIX_ACCOUNT_METHODS + "getLockTimeDays"
C.ACCOUNT_SET_LOCKTIME_DAYS = C.PREFIX_ACCOUNT_METHODS + "setLockTimeDays"
C.ACCOUNT_GET_RECOVERY_INFO = C.PREFIX_ACCOUNT_METHODS + "getRecoveryInfo"
// Account status
C.STATUS_ALL_COSIGNERS_OK = 'A'
C.STATUS_WAITING_COSIGNERS = 'W'
C.STATUS_DELETED = 'D'
// Message methods to chat with other users
C.PREFIX_MSG_METHODS = C.PREFIX_APP + "v1/msg/"
C.MSG_SEND_TO_ACCOUNT = C.PREFIX_MSG_METHODS + "sendToAccount"
C.MSG_SEND_TO_PTX = C.PREFIX_MSG_METHODS + "sendToPtx"
C.MSG_GET_ALL_TO_WALLET = C.PREFIX_MSG_METHODS + "getToWallet"
C.MSG_GET_ALL_TO_PTX = C.PREFIX_MSG_METHODS + "getToPtx"
C.MSG_GET_ALL_TO_PTXS = C.PREFIX_MSG_METHODS + "getToPtxs"
// TFA methods
C.PREFIX_TFA_METHODS = C.PREFIX_APP + "v1/tfa/"
C.TFA_AUTH_REQUEST = C.PREFIX_TFA_METHODS + "authRequest"
C.TFA_AUTH_VALIDATE = C.PREFIX_TFA_METHODS + "authValidate"
C.TFA_ENROLL_START = C.PREFIX_TFA_METHODS + "enrollStart"
C.TFA_ENROLL_FINISH = C.PREFIX_TFA_METHODS + "enrollFinish"
C.TFA_DEVICE_SET_META = C.PREFIX_TFA_METHODS + "deviceSetMeta"
C.TFA_DEVICE_SET_NOTIFICATIONS = C.PREFIX_TFA_METHODS + "deviceSetNotifications"
C.TFA_DEVICE_DELETE = C.PREFIX_TFA_METHODS + "deviceDelete"
C.TFA_PROPOSE_DELETE_DEVICES = C.PREFIX_TFA_METHODS + "proposeDeleteDevices"
C.TFA_GET_WALLET_CONFIG = C.PREFIX_TFA_METHODS + "wallet/getConfig"
C.TFA_GET_ACCOUNT_CONFIG = C.PREFIX_TFA_METHODS + "account/getConfig"
C.TFA_SET_ACCOUNT_CONFIG = C.PREFIX_TFA_METHODS + "account/setConfig"
// Session methods
C.PREFIX_SESSION_METHODS = C.PREFIX_APP + "v1/session/"
C.SESSION_SET_PARAMS = C.PREFIX_SESSION_METHODS + "setParams"
// SLP specific methods
C.PREFIX_SLP_METHODS = C.PREFIX_APP + "v1/slp/"
C.SLP_CREATE_GENESIS = C.PREFIX_SLP_METHODS + "createGenesisPtx"
C.SLP_CREATE_MINT = C.PREFIX_SLP_METHODS + "createMintPtx"
C.SLP_GET_TOKEN_INFO_BY_TICKER = C.PREFIX_SLP_METHODS + "tokenInfo/byTicker"
C.SLP_GET_TOKEN_INFO_BY_TOKENID = C.PREFIX_SLP_METHODS + "tokenInfo/byTockenId"
C.SLP_GET_TOKEN_INFOS = C.PREFIX_SLP_METHODS + "tokenInfo/all"
C.SLP_GET_TX_INFO = C.PREFIX_SLP_METHODS + "txInfoGet"
C.SLP_SET_TX_INFO = C.PREFIX_SLP_METHODS + "txInfoSet"
// TFA Constants
C.TFA_POLICY_DEFAULT = "default"
C.TFA_POLICY_ANY = "any"
C.TFA_POLICY_NONE = "none"
C.TFA_DEVICE_RFC6238 = "rfc6238"
C.TFA_DEVICE_EMAIL = "email"
C.TFA_DEVICE_SMS = "sms"
// Addressbook methods
C.PREFIX_AB_METHODS = C.PREFIX_APP + "v1/ab/"
C.AB_ADD = C.PREFIX_AB_METHODS + "add"
C.AB_GET = C.PREFIX_AB_METHODS + "get"
C.AB_DELETE = C.PREFIX_AB_METHODS + "delete"
C.AB_UPDATE = C.PREFIX_AB_METHODS + "update"
// Addressbook entry types
C.AB_TYPE_MELIS = 'melis'
C.AB_TYPE_ADDRESS = 'addr'
// Utilities methods
C.PREFIX_UTILS_METHODS = C.PREFIX_APP + "v1/utils/"
C.UTILS_PUSH_TX = C.PREFIX_UTILS_METHODS + "pushTx"
C.UTILS_FEE_INFO = C.PREFIX_UTILS_METHODS + "feeInfo"
C.UTILS_LOG_EX = C.PREFIX_UTILS_METHODS + "logException"
C.UTILS_LOG_DATA = C.PREFIX_UTILS_METHODS + "logData"
C.UTILS_PING = C.PREFIX_UTILS_METHODS + "ping"
C.UTILS_PONG = C.PREFIX_UTILS_METHODS + "pong"
// Fork Claiming methods
C.PREFIX_CLAIMER_METHODS = C.PREFIX_APP + "v1/forkClaimer/"
C.PREPARE_UNSPENT_FORK_CLAIM = C.PREFIX_CLAIMER_METHODS + "prepareUnspentForkClaim"
C.SUBMIT_FORK_CLAIM = C.PREFIX_CLAIMER_METHODS + "submitClaim"
// Events
C.UNHANDLED_EVENT = 'unhandled'
C.EVENT_CONNECT = 'connect'
C.EVENT_DISCONNECT = 'disconnect'
C.EVENT_SESSION_RESTORED = 'sessionRestored'
C.EVENT_BLOCK = 'block'
C.EVENT_NEW_SESSION = 'newSession'
C.EVENT_CLOSE_SESSION = 'closeSession'
C.EVENT_WALLET_OPENED = 'walletOpened'
C.EVENT_RPC_ACTIVITY_START = 'rpcActivityStart'
C.EVENT_RPC_ACTIVITY_END = 'rpcActivityEnd'
C.EVENT_CONFIG = 'config'
C.EVENT_JOINED = "joined"
C.EVENT_JOIN_REQUEST = "joinRequest"
C.EVENT_TX_INFO_NEW = "txInfoNew"
C.EVENT_TX_INFO_UPDATED = "txInfoUpdated"
C.EVENT_SLP_TX_INFO_NEW = "slpTxInfoNew"
C.EVENT_SLP_TX_INFO_UPDATED = "slpTxInfoUpdated"
C.EVENT_PTX_NEW = "newPtx"
C.EVENT_PTX_UPDATED = "ptxUpdated"
C.EVENT_ACCOUNT = "accountMsg"
C.EVENT_NEW_ACCOUNT = "newAccount"
C.EVENT_ACCOUNT_UPDATED = "accountUpdated"
C.EVENT_ACCOUNT_DELETED = "accountDeleted"
C.EVENT_ADDRESS_UPDATED = "addrUpdated"
C.EVENT_NEW_PRIMARY_DEVICE = "newPrimaryDevice"
C.EVENT_DEVICE_LOGIN = "newDeviceLogin"
C.EVENT_DEVICE_DELETED = "deviceDeleted"
C.EVENT_PUBLIC_MESSAGE = "publicMsg"
C.EVENT_LIMITS = "limits"
C.EVENT_TFA_DISABLE_PROPOSAL = "tfaDisableProposal"
C.EVENT_MESSAGE = "msg"
C.EVENT_PING = "ping"
C.EVENT_SYSTEM_STATUS = "systemStatus"
C.EVENT_DISCONNECT_REQ = "disconnectReq"
C.EVENT_SLP_BALANCES = "slpBalances"
// ptx statuses
C.PTX_STATUS_ACTIVE = "ACTIVE"
C.PTX_STATUS_RESPENT = "RESPENT"
C.PTX_STATUS_BROADCASTED = "BROADCASTED"
C.PTX_STATUS_CANCELED = "CANCELED"
// Spending limits types
C.LIMIT_DAILY = "daily"
C.LIMIT_WEEKLY = "weekly"
C.LIMIT_MONTHLY = "monthly"
C.LIMIT_NONE = -1
C.LIMIT_REQ_CHANGE = "limitChangeRequest"
C.LIMIT_REQ_CANCEL = "limitChangeCancel"
// Chat message types
C.CHAT_MSG_TYPE_MSG = "M"
C.CHAT_MSG_TYPE_SIG = "S"
// Supported production coins
C.COIN_PROD_BTC = "BTC"
C.COIN_PROD_BCH = "BCH"
C.COIN_PROD_LTC = "LTC"
C.COIN_PROD_GRS = "GRS"
C.COIN_PROD_BSV = "BSV"
C.COIN_PROD_ABC = "ABC"
C.COIN_PROD_DOGE = "DOGE"
// Supported testnet coins
C.COIN_TEST_BTC = "TBTC"
C.COIN_TEST_BCH = "TBCH"
C.COIN_TEST_LTC = "TLTC"
C.COIN_TEST_GRS = "TGRS"
C.COIN_TEST_BSV = "TBSV"
C.COIN_TEST_ABC = "TABC"
C.COIN_TEST_DOGE = "TDOG"
// Supported regtest coins
C.COIN_REGTEST_BTC = "RBTC"
C.COIN_REGTEST_BCH = "RBCH"
C.COIN_REGTEST_LTC = "RLTC"
C.COIN_REGTEST_GRS = "RGRS"
C.COIN_REGTEST_BSV = "RBSV"
C.COIN_REGTEST_ABC = "RABC"
C.COIN_REGTEST_DOGE = "RDOG"
C.MAX_SUBPATH = 16777216
C.SATOSHIS_ONE_BIT = 100
C.SATOSHIS_ONE_MBTC = 100000
C.SATOSHIS_ONE_BTC = 100000000
C.CURRENCY_EUR = "EUR"
C.CURRENCY_USD = "USD"
C.CURRENCY_GBP = "GBP"
C.CURRENCY_CNY = "CNY"
C.HISTORY_SLIDING_24H = "sliding-24h"
C.HISTORY_SLIDING_30D = "sliding-30d"
C.HISTORY_SLIDING_365D = "sliding-365d"
C.HISTORY_SLIDING_DAILY = "daily"
C.HISTORY_SLIDING_MONTHLY = "monthly"
C.HISTORY_SLIDING_YEARLY = "yearly"
C.DIR_ASCENDING = "ASC"
C.DIR_DESCENDING = "DESC"
C.FIELD_ADDRESS = "address"
C.FIELD_AMOUNT = "amount"
C.FIELD_CREATION_DATE = "creationDate"
C.FIELD_BLOCK_EXPIRE = "blockExpire"
C.FIELD_LAST_UPDATED = "lastUpdated"
C.FIELD_LAST_REQUESTED = "lastRequested"
C.MSG_PREFIX_LEGACY_ADDR = "Legacy Address: "
C.MSG_PREFIX_INSTANT_VERIFY = "Verify Melis instantTx: "
C.MELIS_USER_AGENT = "/melis-api-js/"
C.VALID_BASE58_CHARS = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
C.VALID_PUB_ID_REGEX = new RegExp("^((CM)|(M[0-5U-Zu-z]))[" + C.VALID_BASE58_CHARS + "]{26,28}$")
C.VALID_ALIAS_REGEX = new RegExp(/^[a-z0-9][a-z0-9-\\.]{2,61}$/)
C.LEGACY_BITCOIN_REGEX = new RegExp(/^[132mn][a-km-zA-HJ-NP-Z0-9]{25,34}$/)
C.BECH32_CHARSET = "qpzry9x8gf2tvdw0s3jn54khce6mua7l"
module.exports = C