UNPKG

metaapi.cloud-sdk

Version:

SDK for MetaApi, a professional cloud forex API which includes MetaTrader REST API and MetaTrader websocket API. Supports both MetaTrader 5 (MT5) and MetaTrader 4 (MT4). CopyFactory copy trading API included. (https://metaapi.cloud)

89 lines (88 loc) 11.8 kB
'use strict'; import MetaApiClient from '../metaApi.client'; import randomstring from 'randomstring'; let MetatraderAccountGeneratorClient = class MetatraderAccountGeneratorClient extends MetaApiClient { /** * New MetaTrader 4 demo account request model * @typedef {Object} NewMT4DemoAccount * @property {string} accountType account type. Available account type values can be found in mobile MT application or * in MT terminal downloaded from our broker * @property {number} balance account balance * @property {string} email account holder's email * @property {number} leverage account leverage * @property {string} name account holder's name * @property {string} phone account holder's phone, in international format * @property {string} serverName server name * @property {Array<String>} [keywords] keywords to be used for broker server search. * We recommend to include exact broker company name in this list */ /** * New MetaTrader 5 demo account request model * @typedef {Object} NewMT5DemoAccount * @property {string} accountType account type. Available account type values can be found in mobile MT application or * in MT terminal downloaded from our broker * @property {number} balance account balance * @property {string} email account holder's email * @property {number} leverage account leverage * @property {string} name account holder's name * @property {string} phone account holder's phone, in international format * @property {string} serverName server name * @property {Array<String>} [keywords] keywords to be used for broker server search. * We recommend to include exact broker company name in this list */ /** * MetaTrader account credetials model * @typedef {Object} MetatraderAccountCredentialsDto * @property {String} login account login * @property {String} password account password * @property {String} serverName MetaTrader server name * @property {String} investorPassword account investor (read-only) password */ /** * Creates new MetaTrader 4 demo account * See https://metaapi.cloud/docs/provisioning/api/generateAccount/createMT4DemoAccount/ * Method is accessible only with API access token * @param {NewMT4DemoAccount} account account to create * @param {string} [profileId] id of the provisioning profile that will be used as the basis for creating this account * @return {Promise<MetatraderAccountCredentialsDto>} promise resolving with MetaTrader account credetials */ createMT4DemoAccount(account, profileId) { if (this._isNotJwtToken()) { return this._handleNoAccessError('createMT4DemoAccount'); } const opts = { url: `${this._host}/users/current/provisioning-profiles/${profileId || 'default'}/mt4-demo-accounts`, method: 'POST', headers: { 'auth-token': this._token, 'transaction-id': randomstring.generate(32) }, json: true, data: account }; return this._httpClient.request(opts, 'createMT4DemoAccount'); } /** * Creates new MetaTrader 5 demo account. * See https://metaapi.cloud/docs/provisioning/api/generateAccount/createMT5DemoAccount/ * Method is accessible only with API access token * @param {NewMT5DemoAccount} account account to create * @param {string} [profileId] id of the provisioning profile that will be used as the basis for creating this account * @return {Promise<MetatraderAccountCredentialsDto>} promise resolving with MetaTrader account credentials */ createMT5DemoAccount(account, profileId) { if (this._isNotJwtToken()) { return this._handleNoAccessError('createMT5DemoAccount'); } const opts = { url: `${this._host}/users/current/provisioning-profiles/${profileId || 'default'}/mt5-demo-accounts`, method: 'POST', headers: { 'auth-token': this._token, 'transaction-id': randomstring.generate(32) }, json: true, data: account }; return this._httpClient.request(opts, 'createMT5DemoAccount'); } }; /** * metaapi.cloud MetaTrader account generator API client */ export { MetatraderAccountGeneratorClient as default }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxhbm9uPiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBNZXRhQXBpQ2xpZW50IGZyb20gJy4uL21ldGFBcGkuY2xpZW50JztcbmltcG9ydCByYW5kb21zdHJpbmcgZnJvbSAncmFuZG9tc3RyaW5nJztcblxuLyoqXG4gKiBtZXRhYXBpLmNsb3VkIE1ldGFUcmFkZXIgYWNjb3VudCBnZW5lcmF0b3IgQVBJIGNsaWVudFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZXRhdHJhZGVyQWNjb3VudEdlbmVyYXRvckNsaWVudCBleHRlbmRzIE1ldGFBcGlDbGllbnQge1xuXG4gIC8qKlxuICAgKiBOZXcgTWV0YVRyYWRlciA0IGRlbW8gYWNjb3VudCByZXF1ZXN0IG1vZGVsXG4gICAqIEB0eXBlZGVmIHtPYmplY3R9IE5ld01UNERlbW9BY2NvdW50XG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhY2NvdW50VHlwZSBhY2NvdW50IHR5cGUuIEF2YWlsYWJsZSBhY2NvdW50IHR5cGUgdmFsdWVzIGNhbiBiZSBmb3VuZCBpbiBtb2JpbGUgTVQgYXBwbGljYXRpb24gb3JcbiAgICogaW4gTVQgdGVybWluYWwgZG93bmxvYWRlZCBmcm9tIG91ciBicm9rZXJcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGJhbGFuY2UgYWNjb3VudCBiYWxhbmNlXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBlbWFpbCBhY2NvdW50IGhvbGRlcidzIGVtYWlsXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBsZXZlcmFnZSBhY2NvdW50IGxldmVyYWdlXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIGFjY291bnQgaG9sZGVyJ3MgbmFtZVxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gcGhvbmUgYWNjb3VudCBob2xkZXIncyBwaG9uZSwgaW4gaW50ZXJuYXRpb25hbCBmb3JtYXRcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHNlcnZlck5hbWUgc2VydmVyIG5hbWVcbiAgICogQHByb3BlcnR5IHtBcnJheTxTdHJpbmc+fSBba2V5d29yZHNdIGtleXdvcmRzIHRvIGJlIHVzZWQgZm9yIGJyb2tlciBzZXJ2ZXIgc2VhcmNoLlxuICAgKiBXZSByZWNvbW1lbmQgdG8gaW5jbHVkZSBleGFjdCBicm9rZXIgY29tcGFueSBuYW1lIGluIHRoaXMgbGlzdCBcbiAgICovXG5cbiAgLyoqXG4gICAqIE5ldyBNZXRhVHJhZGVyIDUgZGVtbyBhY2NvdW50IHJlcXVlc3QgbW9kZWxcbiAgICogQHR5cGVkZWYge09iamVjdH0gTmV3TVQ1RGVtb0FjY291bnRcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGFjY291bnRUeXBlIGFjY291bnQgdHlwZS4gQXZhaWxhYmxlIGFjY291bnQgdHlwZSB2YWx1ZXMgY2FuIGJlIGZvdW5kIGluIG1vYmlsZSBNVCBhcHBsaWNhdGlvbiBvclxuICAgKiBpbiBNVCB0ZXJtaW5hbCBkb3dubG9hZGVkIGZyb20gb3VyIGJyb2tlclxuICAgKiBAcHJvcGVydHkge251bWJlcn0gYmFsYW5jZSBhY2NvdW50IGJhbGFuY2VcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGVtYWlsIGFjY291bnQgaG9sZGVyJ3MgZW1haWxcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGxldmVyYWdlIGFjY291bnQgbGV2ZXJhZ2VcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IG5hbWUgYWNjb3VudCBob2xkZXIncyBuYW1lXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwaG9uZSBhY2NvdW50IGhvbGRlcidzIHBob25lLCBpbiBpbnRlcm5hdGlvbmFsIGZvcm1hdFxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gc2VydmVyTmFtZSBzZXJ2ZXIgbmFtZVxuICAgKiBAcHJvcGVydHkge0FycmF5PFN0cmluZz59IFtrZXl3b3Jkc10ga2V5d29yZHMgdG8gYmUgdXNlZCBmb3IgYnJva2VyIHNlcnZlciBzZWFyY2guXG4gICAqIFdlIHJlY29tbWVuZCB0byBpbmNsdWRlIGV4YWN0IGJyb2tlciBjb21wYW55IG5hbWUgaW4gdGhpcyBsaXN0XG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRhVHJhZGVyIGFjY291bnQgY3JlZGV0aWFscyBtb2RlbFxuICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBNZXRhdHJhZGVyQWNjb3VudENyZWRlbnRpYWxzRHRvXG4gICAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBsb2dpbiBhY2NvdW50IGxvZ2luXG4gICAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBwYXNzd29yZCBhY2NvdW50IHBhc3N3b3JkXG4gICAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBzZXJ2ZXJOYW1lIE1ldGFUcmFkZXIgc2VydmVyIG5hbWVcbiAgICogQHByb3BlcnR5IHtTdHJpbmd9IGludmVzdG9yUGFzc3dvcmQgYWNjb3VudCBpbnZlc3RvciAocmVhZC1vbmx5KSBwYXNzd29yZFxuICAgKi9cblxuICAvKipcbiAgICogQ3JlYXRlcyBuZXcgTWV0YVRyYWRlciA0IGRlbW8gYWNjb3VudFxuICAgKiBTZWUgaHR0cHM6Ly9tZXRhYXBpLmNsb3VkL2RvY3MvcHJvdmlzaW9uaW5nL2FwaS9nZW5lcmF0ZUFjY291bnQvY3JlYXRlTVQ0RGVtb0FjY291bnQvXG4gICAqIE1ldGhvZCBpcyBhY2Nlc3NpYmxlIG9ubHkgd2l0aCBBUEkgYWNjZXNzIHRva2VuXG4gICAqIEBwYXJhbSB7TmV3TVQ0RGVtb0FjY291bnR9IGFjY291bnQgYWNjb3VudCB0byBjcmVhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtwcm9maWxlSWRdIGlkIG9mIHRoZSBwcm92aXNpb25pbmcgcHJvZmlsZSB0aGF0IHdpbGwgYmUgdXNlZCBhcyB0aGUgYmFzaXMgZm9yIGNyZWF0aW5nIHRoaXMgYWNjb3VudFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1ldGF0cmFkZXJBY2NvdW50Q3JlZGVudGlhbHNEdG8+fSBwcm9taXNlIHJlc29sdmluZyB3aXRoIE1ldGFUcmFkZXIgYWNjb3VudCBjcmVkZXRpYWxzXG4gICAqL1xuICBjcmVhdGVNVDREZW1vQWNjb3VudChhY2NvdW50LCBwcm9maWxlSWQpIHtcbiAgICBpZiAodGhpcy5faXNOb3RKd3RUb2tlbigpKSB7XG4gICAgICByZXR1cm4gdGhpcy5faGFuZGxlTm9BY2Nlc3NFcnJvcignY3JlYXRlTVQ0RGVtb0FjY291bnQnKTtcbiAgICB9XG4gICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgIHVybDogYCR7dGhpcy5faG9zdH0vdXNlcnMvY3VycmVudC9wcm92aXNpb25pbmctcHJvZmlsZXMvJHtwcm9maWxlSWQgfHwgJ2RlZmF1bHQnfS9tdDQtZGVtby1hY2NvdW50c2AsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ2F1dGgtdG9rZW4nOiB0aGlzLl90b2tlbixcbiAgICAgICAgJ3RyYW5zYWN0aW9uLWlkJzogcmFuZG9tc3RyaW5nLmdlbmVyYXRlKDMyKVxuICAgICAgfSxcbiAgICAgIGpzb246IHRydWUsXG4gICAgICBkYXRhOiBhY2NvdW50XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5yZXF1ZXN0KG9wdHMsICdjcmVhdGVNVDREZW1vQWNjb3VudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgbmV3IE1ldGFUcmFkZXIgNSBkZW1vIGFjY291bnQuXG4gICAqIFNlZSBodHRwczovL21ldGFhcGkuY2xvdWQvZG9jcy9wcm92aXNpb25pbmcvYXBpL2dlbmVyYXRlQWNjb3VudC9jcmVhdGVNVDVEZW1vQWNjb3VudC9cbiAgICogTWV0aG9kIGlzIGFjY2Vzc2libGUgb25seSB3aXRoIEFQSSBhY2Nlc3MgdG9rZW5cbiAgICogQHBhcmFtIHtOZXdNVDVEZW1vQWNjb3VudH0gYWNjb3VudCBhY2NvdW50IHRvIGNyZWF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3Byb2ZpbGVJZF0gaWQgb2YgdGhlIHByb3Zpc2lvbmluZyBwcm9maWxlIHRoYXQgd2lsbCBiZSB1c2VkIGFzIHRoZSBiYXNpcyBmb3IgY3JlYXRpbmcgdGhpcyBhY2NvdW50XG4gICAqIEByZXR1cm4ge1Byb21pc2U8TWV0YXRyYWRlckFjY291bnRDcmVkZW50aWFsc0R0bz59IHByb21pc2UgcmVzb2x2aW5nIHdpdGggTWV0YVRyYWRlciBhY2NvdW50IGNyZWRlbnRpYWxzXG4gICAqL1xuICBjcmVhdGVNVDVEZW1vQWNjb3VudChhY2NvdW50LCBwcm9maWxlSWQpIHtcbiAgICBpZiAodGhpcy5faXNOb3RKd3RUb2tlbigpKSB7XG4gICAgICByZXR1cm4gdGhpcy5faGFuZGxlTm9BY2Nlc3NFcnJvcignY3JlYXRlTVQ1RGVtb0FjY291bnQnKTtcbiAgICB9XG4gICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgIHVybDogYCR7dGhpcy5faG9zdH0vdXNlcnMvY3VycmVudC9wcm92aXNpb25pbmctcHJvZmlsZXMvJHtwcm9maWxlSWQgfHwgJ2RlZmF1bHQnfS9tdDUtZGVtby1hY2NvdW50c2AsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ2F1dGgtdG9rZW4nOiB0aGlzLl90b2tlbixcbiAgICAgICAgJ3RyYW5zYWN0aW9uLWlkJzogcmFuZG9tc3RyaW5nLmdlbmVyYXRlKDMyKVxuICAgICAgfSxcbiAgICAgIGpzb246IHRydWUsXG4gICAgICBkYXRhOiBhY2NvdW50XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5yZXF1ZXN0KG9wdHMsICdjcmVhdGVNVDVEZW1vQWNjb3VudCcpO1xuICB9XG5cbn1cbiJdLCJuYW1lcyI6WyJNZXRhQXBpQ2xpZW50IiwicmFuZG9tc3RyaW5nIiwiTWV0YXRyYWRlckFjY291bnRHZW5lcmF0b3JDbGllbnQiLCJjcmVhdGVNVDREZW1vQWNjb3VudCIsImFjY291bnQiLCJwcm9maWxlSWQiLCJfaXNOb3RKd3RUb2tlbiIsIl9oYW5kbGVOb0FjY2Vzc0Vycm9yIiwib3B0cyIsInVybCIsIl9ob3N0IiwibWV0aG9kIiwiaGVhZGVycyIsIl90b2tlbiIsImdlbmVyYXRlIiwianNvbiIsImRhdGEiLCJfaHR0cENsaWVudCIsInJlcXVlc3QiLCJjcmVhdGVNVDVEZW1vQWNjb3VudCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFFQSxPQUFPQSxtQkFBbUIsb0JBQW9CO0FBQzlDLE9BQU9DLGtCQUFrQixlQUFlO0FBS3pCLElBQUEsQUFBTUMsbUNBQU4sTUFBTUEseUNBQXlDRjtJQUU1RDs7Ozs7Ozs7Ozs7OztHQWFDLEdBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhQyxHQUVEOzs7Ozs7O0dBT0MsR0FFRDs7Ozs7OztHQU9DLEdBQ0RHLHFCQUFxQkMsT0FBTyxFQUFFQyxTQUFTLEVBQUU7UUFDdkMsSUFBSSxJQUFJLENBQUNDLGNBQWMsSUFBSTtZQUN6QixPQUFPLElBQUksQ0FBQ0Msb0JBQW9CLENBQUM7UUFDbkM7UUFDQSxNQUFNQyxPQUFPO1lBQ1hDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQ0MsS0FBSyxDQUFDLHFDQUFxQyxFQUFFTCxhQUFhLFVBQVUsa0JBQWtCLENBQUM7WUFDcEdNLFFBQVE7WUFDUkMsU0FBUztnQkFDUCxjQUFjLElBQUksQ0FBQ0MsTUFBTTtnQkFDekIsa0JBQWtCWixhQUFhYSxRQUFRLENBQUM7WUFDMUM7WUFDQUMsTUFBTTtZQUNOQyxNQUFNWjtRQUNSO1FBQ0EsT0FBTyxJQUFJLENBQUNhLFdBQVcsQ0FBQ0MsT0FBTyxDQUFDVixNQUFNO0lBQ3hDO0lBRUE7Ozs7Ozs7R0FPQyxHQUNEVyxxQkFBcUJmLE9BQU8sRUFBRUMsU0FBUyxFQUFFO1FBQ3ZDLElBQUksSUFBSSxDQUFDQyxjQUFjLElBQUk7WUFDekIsT0FBTyxJQUFJLENBQUNDLG9CQUFvQixDQUFDO1FBQ25DO1FBQ0EsTUFBTUMsT0FBTztZQUNYQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUNDLEtBQUssQ0FBQyxxQ0FBcUMsRUFBRUwsYUFBYSxVQUFVLGtCQUFrQixDQUFDO1lBQ3BHTSxRQUFRO1lBQ1JDLFNBQVM7Z0JBQ1AsY0FBYyxJQUFJLENBQUNDLE1BQU07Z0JBQ3pCLGtCQUFrQlosYUFBYWEsUUFBUSxDQUFDO1lBQzFDO1lBQ0FDLE1BQU07WUFDTkMsTUFBTVo7UUFDUjtRQUNBLE9BQU8sSUFBSSxDQUFDYSxXQUFXLENBQUNDLE9BQU8sQ0FBQ1YsTUFBTTtJQUN4QztBQUVGO0FBOUZBOztDQUVDLEdBQ0QsU0FBcUJOLDhDQTJGcEIifQ==