Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
211 commits
Select commit Hold shift + click to select a range
1b7cbdf
CLIENT-1661: fix modal
pakrulin Mar 20, 2019
2750bfb
CLIENT-1661: add ticke
pakrulin Mar 21, 2019
22bfe0b
CLIENT-1661: add type
pakrulin Mar 21, 2019
f392da3
CLIENT-1661: fix array assets
pakrulin Mar 22, 2019
33ac7ff
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
pakrulin Mar 22, 2019
e13eed7
CLIENT-1661: fix setAsset
pakrulin Mar 22, 2019
a9ab7b0
CLIENT-1784: refactor important info toolti, added components to stand
Delik Mar 28, 2019
66c8d4c
CLIENT-1784: tooltip to component
Delik Mar 28, 2019
4f8ea76
CLIENT-1784: tooltip to component
Delik Mar 28, 2019
b477cf0
CLIENT-1246: edit addversions logic
Mar 29, 2019
4266cc5
CLIENT-1784: add expandable block component, some refactoring
Delik Mar 29, 2019
26d19e7
CLIENT-1800: add assetInfoHead component
pakrulin Apr 5, 2019
49ddc6e
CLIENT-1800: replace component
pakrulin Apr 5, 2019
73164b0
Merge branch 'client-1661-add-stub-script' of github.com:wavesplatfor…
pakrulin Apr 5, 2019
b355961
CLIENT-1800: add constant
pakrulin Apr 5, 2019
ae00b42
CLIENT-1800: fix
pakrulin Apr 5, 2019
49362f6
CLIENT-1246: doesn't show whats new, after rollback
Apr 8, 2019
f6a206b
CLIENT-1800: fix
pakrulin Apr 9, 2019
314cc4d
CLIENT-1800: fix
pakrulin Apr 9, 2019
a256253
CLIENT-1809: change data transaction
ekomarovskaya Apr 9, 2019
0d62ddb
CLIENT-1809: change data transaction
ekomarovskaya Apr 10, 2019
de0713e
CLIENT-1809: change fix change data transaction
ekomarovskaya Apr 10, 2019
75e715a
CLIENT-1800: fix binding
pakrulin Apr 10, 2019
7c58c57
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
pakrulin Apr 11, 2019
5862e05
CLIENT-1800: fix
pakrulin Apr 11, 2019
036bf21
CLIENT-1800: fix jsdoc
pakrulin Apr 11, 2019
bb0a562
CLIENT-1762:
pakrulin Apr 11, 2019
80c6db7
CLIENT-1432: add export 10k transaction
pakrulin Apr 12, 2019
68fbaed
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
ekomarovskaya Apr 12, 2019
8f66155
CLIENT-1661: change set asset script
ekomarovskaya Apr 12, 2019
fe5e419
CLIENT-1432: add Blob
pakrulin Apr 15, 2019
bf955ae
CLIENT-1432: fix filter scam
pakrulin Apr 15, 2019
5613e6c
CLIENT-1432: getSeries fix
pakrulin Apr 15, 2019
f69b406
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
ekomarovskaya Apr 15, 2019
cdc0181
Merge branch 'dev' of https://github.com/wavesplatform/WavesGUI into …
Delik Apr 15, 2019
87b3aab
CLIENT-1432: fix promise
pakrulin Apr 15, 2019
6821437
CLIENT-1432: fix arguments
pakrulin Apr 15, 2019
58c0a72
CLIENT-1432: fix defalt value
pakrulin Apr 15, 2019
045243f
CLIENT-1809: change data transaction
ekomarovskaya Apr 16, 2019
4b761fc
CLIENT-1809: change data transaction
ekomarovskaya Apr 16, 2019
b84fbdf
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
pakrulin Apr 16, 2019
43531e0
CLIENT-1762: fix
pakrulin Apr 16, 2019
371ddd2
CIENT-1831: change fix color border
ekomarovskaya Apr 17, 2019
673d37d
CLIENT-1563: add anim
pakrulin Apr 17, 2019
52b2995
CLIENT-1563: add anim
pakrulin Apr 17, 2019
990c267
CLIENT-1829: init oracle for tokenomica, edit getOracleData for diffe…
Apr 17, 2019
1269df7
CLIENT-1563: add fast anim
pakrulin Apr 17, 2019
b725c35
CLIENT-1563: add prepere anim
pakrulin Apr 17, 2019
dd1e99d
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
pakrulin Apr 17, 2019
56ead02
CLIENT-1432: add notification
pakrulin Apr 18, 2019
b01a552
CLIENT-1536: add-api-address-field-and-helpers
Apr 18, 2019
4b52586
CLIENT-1432: fix
pakrulin Apr 18, 2019
0262577
CLIENT-1536: fix some helpers
Apr 18, 2019
6474b71
CLIENT-1536: fix helpers type
Apr 18, 2019
98828a5
CLIENT-1829: refactor oracles
Apr 18, 2019
335e97d
CLIENT-1432: add literals
pakrulin Apr 18, 2019
9f9b1e4
CLIENT-1832: refactoring app.less
ekomarovskaya Apr 18, 2019
a784c11
CLIENT-1829: getOracleData in utils
Apr 19, 2019
03e9108
CLIENT-1829: refactor get oracle data in components
Apr 19, 2019
6ca12e2
CLIENT-1829: added tokenomica testnet address
Apr 19, 2019
c382fa2
CLIENT-1829: remove comment
Apr 19, 2019
22bb1d8
CLIENT-1796: change time to text
Apr 19, 2019
89cc669
CLIENT-1796: remove other fixes
Apr 19, 2019
fdccd46
CLIENT-1774: add delay
pakrulin Apr 19, 2019
50b4070
CLIENT-1829: fix ticker from oracle
Apr 22, 2019
194aa8f
CLIENT-1825: fix loading
Apr 22, 2019
6128ebe
CLIENT-1563: add amim delete order
ekomarovskaya Apr 22, 2019
dc589b4
CLIENT-1829:
Apr 22, 2019
4625159
CLIENT-1825: fix ledger
vba2000 Apr 22, 2019
18d23d2
Merge branch 'master' of github.com:wavesplatform/WavesGUI into clien…
vba2000 Apr 22, 2019
c0036d0
CLIENT-1825: fixes
vba2000 Apr 22, 2019
8863481
CLIENT-1825: Up versuin + whats new 1.2.3
Apr 22, 2019
fd15457
CLIENT-1432: add notyfi emtry transactions
pakrulin Apr 22, 2019
31098d8
CLIENT-1432: add locales
pakrulin Apr 22, 2019
7ca044f
Merge branch 'client-1800-asset-info-head' of github.com:wavesplatfor…
pakrulin Apr 22, 2019
a6bcae7
CLIENT-1839: fix
pakrulin Apr 23, 2019
b185eda
CLIENT-1777: filter candles with null values
Apr 23, 2019
6ef4036
CLIENT-1777: filter only for last candle
Apr 23, 2019
0e5b474
CLIENT-1808: add icon headers and transfer components
Apr 23, 2019
6cd6407
CLIENT-1796: remove useless
Apr 23, 2019
494c2ca
CLIENT-1839: add assetStatus
pakrulin Apr 23, 2019
4c77968
CLIENT-1839: delete
pakrulin Apr 23, 2019
59b2f59
CLIENT-1839: delete code
pakrulin Apr 23, 2019
2a69ac2
CLIENT-1772: edit setInterval
Apr 23, 2019
5e6f40e
CLIENT-1839: fix double plate
pakrulin Apr 23, 2019
7056961
CLIENT-1839: fix asset info head
pakrulin Apr 23, 2019
62e7f3c
CLIENT-1813: remove underscores
Apr 23, 2019
a0ad99c
CLIENT-1821: update-logo-dash
ekomarovskaya Apr 23, 2019
465254a
CLIENT-1808: refactoring save
Apr 23, 2019
1efcc14
CLIENT-1808: add create-alias component
Apr 24, 2019
c14b068
CLIENT-1808: fix create-alias component
Apr 24, 2019
bbe6974
CLIENT-1808: add mass-transfer
Apr 24, 2019
83680cc
CLIENT-1808: add lease
Apr 24, 2019
6541f03
CLIENT-1808: add cancel-leasing
Apr 24, 2019
8ad1149
CLIENT-1808: add exchange
Apr 24, 2019
b0862a4
CLIENT-1840: fix adapters
vba2000 Apr 24, 2019
40e2a69
CLIENT-1808: add sponsorship
Apr 24, 2019
343991f
Merge branch 'master' of github.com:wavesplatform/WavesGUI into clien…
vba2000 Apr 24, 2019
279c93a
CLIENT-1840: merge
vba2000 Apr 24, 2019
8cf7e85
CLIENT-1826: change event-sender version
tsigel Apr 24, 2019
90aab8b
CLIENT-1840: fix
vba2000 Apr 24, 2019
04dda23
Merge pull request #1282 from wavesplatform/client-1825-fix-wavesApi-…
vba2000 Apr 24, 2019
7d133db
CLIENT-1808: add sponsorship-fee
Apr 24, 2019
99b538c
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
vba2000 Apr 25, 2019
e642d3b
CLIENT-1808: add issue
Apr 25, 2019
5e0c95b
CLIENT-1808: add reissue
Apr 25, 2019
c6130d9
CLIENT-1808: refactoring save
Apr 25, 2019
3258a01
CLIENT-1826: apiToken ganalytics to dev
Apr 25, 2019
f96605c
CLIENT-1843: fix icon
ekomarovskaya Apr 25, 2019
fd78521
Merge pull request #1288 from wavesplatform/client-1840-fix-keeper-ad…
Jahsus Apr 25, 2019
cc98243
CLIENT-1826: save
Apr 25, 2019
c8d8b5a
Update package.json
Jahsus Apr 25, 2019
d0dc7a8
CLIENT-1844: fix security alert
tsigel Apr 25, 2019
c62a8b0
Merge pull request #1291 from wavesplatform/client-1844-fix-security-…
tsigel Apr 25, 2019
5356e3d
Merge branch 'client-1826-fix-referrer' of github.com:wavesplatform/W…
tsigel Apr 25, 2019
19f0f49
CLIENT-1845: change api token
tsigel Apr 25, 2019
601e375
CLIENT-1772: edit downloading locales in dev mode
Apr 25, 2019
eb8f8ba
CLIENT-1772: fix time
Apr 25, 2019
8257a0f
CLIENT-1772: remove redunant stuff
Apr 25, 2019
55de745
CLIENT-1808: add set asset script
Apr 25, 2019
7f35234
CLIENT-1808: add data
Apr 25, 2019
ff5741f
CLIENT-1808: add set-script
Apr 25, 2019
e78b316
CLIENT-1808: refactoring transfer and mass-transfer
Apr 25, 2019
eaa1cd1
CLIENT-1843: change select disabled
ekomarovskaya Apr 25, 2019
21ff8d5
CLIENT-1808: refactoring remove useless
Apr 25, 2019
1d72759
CLIENT-1808: add unknown
Apr 25, 2019
5d4365a
CLIENT-1808: add unknown
Apr 25, 2019
ba328fe
CLIENT-1841: fix url
tsigel Apr 26, 2019
9b65724
CLIENT-1772: rename getLocales and handle error
Apr 26, 2019
69a1177
CLIENT-1772: rename in gulpfile
Apr 26, 2019
da25453
CLIENT-1772: fix typo
Apr 26, 2019
7413584
Merge pull request #1292 from wavesplatform/client-1845-release
tsigel Apr 26, 2019
a84e810
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
tsigel Apr 26, 2019
91b9fed
CLIENT-1847: up package json version
tsigel Apr 26, 2019
d30a297
CLIENT-1808: delete useless
Apr 26, 2019
46da402
Merge branch 'dev' of https://github.com/wavesplatform/WavesGUI into …
Delik Apr 26, 2019
91c790c
Merge branch 'dev' of https://github.com/wavesplatform/WavesGUI into …
Delik Apr 26, 2019
66e3084
Merge branch 'dev' of https://github.com/wavesplatform/WavesGUI into …
Delik Apr 26, 2019
487f282
Merge pull request #1249 from wavesplatform/client-1784-stand-update
GIvanovWaves Apr 26, 2019
079a55b
Merge pull request #1258 from wavesplatform/client-1809-change-data-t…
GIvanovWaves Apr 26, 2019
efefb14
Merge pull request #1273 from wavesplatform/client-1762-fix-send-moda…
GIvanovWaves Apr 26, 2019
ab975b0
Merge pull request #1227 from wavesplatform/client-1661-add-stub-script
GIvanovWaves Apr 26, 2019
7ee5ad0
Merge pull request #1283 from wavesplatform/client-1777-lost-last-pri…
GIvanovWaves Apr 26, 2019
4956268
Merge pull request #1284 from wavesplatform/client-1772-locales-in-dev
GIvanovWaves Apr 26, 2019
f61503c
Merge pull request #1280 from wavesplatform/client-1796-delete-double…
GIvanovWaves Apr 26, 2019
0487593
Merge pull request #1269 from wavesplatform/client-1432-export-over-9…
Jahsus Apr 26, 2019
0ac4606
Merge pull request #1286 from wavesplatform/client-1821-update-logo-dash
Jahsus Apr 26, 2019
b0db2dc
Merge pull request #1274 from wavesplatform/cient-1831-checkout-input…
Jahsus Apr 26, 2019
8094357
Merge pull request #1281 from wavesplatform/client-1774-add-delay-new…
Jahsus Apr 26, 2019
e1abb7b
CLIENT-1848: fix json bignumber lib
tsigel Apr 29, 2019
18ed798
CLIENT-1808: refactoring
Apr 29, 2019
adfdce0
CLIENT-1829: fix literal
Apr 29, 2019
5942ba6
Merge pull request #1275 from wavesplatform/client-1829-tokenomica-label
Jahsus Apr 29, 2019
73c7af3
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
Apr 29, 2019
8a81431
Merge pull request #1287 from wavesplatform/client-1839-nameplate-ref…
Jahsus Apr 29, 2019
404d1d4
Merge pull request #1248 from wavesplatform/client-1246-whats-new-rol…
Jahsus Apr 29, 2019
85ba92d
CLIENT-1784: stand update 2
ekomarovskaya Apr 29, 2019
66844b9
Merge remote-tracking branch 'origin/client-1808-transaction-refactor…
Apr 29, 2019
9e90cb7
CLIENT-1690: add some constants
Apr 26, 2019
aba784a
Merge branch 'dev' of https://github.com/wavesplatform/WavesGUI into …
Delik Apr 30, 2019
b4e7b53
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
ekomarovskaya Apr 30, 2019
157d46a
CLIENT-1784: stand update 2
ekomarovskaya Apr 30, 2019
696e0ee
CLIENT-1784: stand update 2
ekomarovskaya Apr 30, 2019
ef6ffdc
CLIENT-1690: parse script invocation
Apr 30, 2019
9df1448
CLIENT-1690: less complexity
Apr 30, 2019
99d3ace
CLIENT-1690: script-invocation-row template
May 6, 2019
879b83b
CLIENT-1690: edit template
May 6, 2019
9c25f24
CLIENT-1690: edit parse script invocation, added field with function …
May 7, 2019
ce40e99
CLIENT-1690: edit show btn literal, copy json
May 7, 2019
3d3d8c1
CLIENT-1690: added txid, payment, script address fields
May 7, 2019
adc3c35
CLIENT-1690: add icon
ekomarovskaya May 7, 2019
632c162
CLIENT-1690: fix parse payment
May 7, 2019
1ee2182
Merge branch 'client-1690-script-invocation-supporting' of github.com…
May 7, 2019
2713d5c
CLIENT-1690: styled popup
ekomarovskaya May 7, 2019
3403fbd
Merge remote-tracking branch 'origin/client-1690-script-invocation-su…
ekomarovskaya May 7, 2019
83326e3
Merge pull request #1297 from wavesplatform/client-1808-transaction-r…
Jahsus May 13, 2019
5e0ccb0
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
May 13, 2019
e4a0876
Merge pull request #1300 from wavesplatform/client-1848-fix-json-bign…
Jahsus May 13, 2019
779abd6
Merge branch 'dev' of github.com:wavesplatform/WavesGUI into client-1…
May 13, 2019
392ea06
Merge pull request #1302 from wavesplatform/client-1784-stand-update-2
Jahsus May 13, 2019
64b87b9
CLIENT-1563: add amim delete order
ekomarovskaya Apr 22, 2019
e932304
Merge branch 'client-1563-add-anim-delete-order' of github.com:wavesp…
vba2000 May 13, 2019
50cd143
Merge pull request #1276 from wavesplatform/client-1563-add-anim-dele…
Jahsus May 13, 2019
a7a5372
CLIENT-1690: new adapter, dapp name, style for invoke info
May 13, 2019
575d12f
CLIENT-1690: tooltip in title
May 13, 2019
34baca0
CLIENT-1690: edit hide animation
May 13, 2019
3052120
CLIENT-1690: add scroll to top
May 13, 2019
ab1e5d3
CLIENT-1690: edit data tx
May 13, 2019
0a5b42a
Merge pull request #1285 from wavesplatform/client-1813-fix-literals
Jahsus May 14, 2019
bef4e44
Merge branch 'client-1847-release-1.2.5' of github.com:wavesplatform/…
tsigel May 14, 2019
9410a6f
CLIENT-1852: fix
tsigel May 14, 2019
c32340c
CLIENT-1832: merge conflict
ekomarovskaya May 14, 2019
1777a78
CLIENT-1690: support tx if there is not function in it
May 14, 2019
5ed42f8
Merge branch 'dev' of https://github.com/wavesplatform/WavesGUI into …
Delik May 14, 2019
895de15
CLIENT-1843: fix sign in by device order icon
Delik May 14, 2019
30f8a56
Merge pull request #1305 from wavesplatform/client-1690-script-invoca…
Jahsus May 14, 2019
3783aee
CLIENT-1832: merge conflict
ekomarovskaya May 14, 2019
1c7318b
Merge pull request #1279 from wavesplatform/client-1832-refactoring-a…
Jahsus May 14, 2019
0e30544
Merge pull request #1308 from wavesplatform/client-1852-fix-analytics
Jahsus May 14, 2019
c285b4d
CLIENT-1854: fix layout
Delik May 14, 2019
9910b4f
CLIENT-1854: fix isVerifiedOrGateway
May 14, 2019
24557d2
Merge branch 'client-1854-release-1.2.6' of github.com:wavesplatform/…
May 14, 2019
fd4477e
CLIENT-1854: fix asset's name in asset info
May 14, 2019
e98d174
CLIENT-1854: fix tooltip
Delik May 14, 2019
904c864
CLIENT-1854: fix tooltip
Delik May 14, 2019
b006b4e
Merge branch 'client-1854-release-1.2.6' of https://github.com/wavesp…
Delik May 14, 2019
383a8f7
CLIENT-1854: fix sponsored modal
May 14, 2019
ea54145
Merge branch 'client-1854-release-1.2.6' of github.com:wavesplatform/…
May 14, 2019
21305cd
Merge pull request #1290 from wavesplatform/client-1843-fix-icon
Jahsus May 14, 2019
5534ab5
Merge remote-tracking branch 'origin/dev' into client-1854-release-1.2.6
Jahsus May 14, 2019
25fffb7
CLIENT-1854:up version + whats new
Jahsus May 14, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 44 additions & 1 deletion data-service/api/transactions/interface.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ export type T_API_TX =
txApi.IData |
txApi.ISponsorship |
txApi.ISetScript |
txApi.ISetAssetScript;
txApi.ISetAssetScript |
tx.Api.IScriptInvocation;

export type T_TX =
IIssue |
Expand Down Expand Up @@ -158,6 +159,14 @@ export module txApi {
script: string;
}

export interface IScriptInvocation extends IBaseTransaction {
type: 16;
version?: number;
call?: ICall;
dApp: string;
payment?: Array<{ amount: number; assetId: string; }>;
}

export interface IExchangeOrder {
amount: string;
assetPair: IAssetPair;
Expand Down Expand Up @@ -318,6 +327,18 @@ export interface IExchangeOrder {
timestamp: number;
}

export interface IScriptInvocation extends IBaseTransaction {
version?: number;
call?: ICall;
dApp: string;
payment?: Array<Money>;
}

export interface ICall {
args: Array<TCallArgs>;
function: string;
}

export type TDataEntry = TDataEntryInteger | TDataEntryBoolean | TDataEntryBinary | TDataEntryString;

export interface TDataEntryInteger {
Expand All @@ -343,3 +364,25 @@ export interface TDataEntryString {
key: string;
value: string;
}

export type TCallArgs = TCallArgsInteger | TCallArgsBoolean | TCallArgsBinary | TCallArgsString;

export interface TCallArgsInteger {
type: 'integer';
value: number;
}

export interface TCallArgsBoolean {
type: 'boolean';
value: boolean;
}

export interface TCallArgsBinary {
type: 'binary';
value: string; // base64
}

export interface TCallArgsString {
type: 'string';
value: string;
}
9 changes: 9 additions & 0 deletions data-service/api/transactions/parse.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
ISetScript,
ISponsorship,
ISetAssetScript,
IScriptInvocation,
ITransfer,
T_API_TX,
T_TX,
Expand Down Expand Up @@ -100,6 +101,8 @@ export function parseTx(transactions: Array<T_API_TX>, isUTX: boolean, isTokens?
return parseScriptTx(transaction, hash, isUTX);
case TRANSACTION_TYPE_NUMBER.SET_ASSET_SCRIPT:
return parseAssetScript(transaction, hash, isUTX);
case 16:
return parseInvocationTx(transaction, hash, isUTX);
default:
return transaction;
}
Expand Down Expand Up @@ -265,6 +268,12 @@ export function parseDataTx(tx: txApi.IData, assetsHash: IHash<Asset>, isUTX: bo
return { ...tx, stringifiedData, fee, isUTX };
}

export function parseInvocationTx(tx: txApi.IScriptInvocation, assetsHash: IHash<Asset>, isUTX: boolean): IScriptInvocation {
const fee = new Money(tx.fee, assetsHash[WAVES_ID]);
const payment = tx.payment.map(payment => new Money(payment.amount, assetsHash[normalizeAssetId(payment.assetId)]));
return { ...tx, fee, payment, isUTX };
}

function parseSponsorshipTx(tx: txApi.ISponsorship, assetsHash: IHash<Asset>, isUTX: boolean): ISponsorship {
const minSponsoredAssetFee = new Money(tx.minSponsoredAssetFee || 0, assetsHash[tx.assetId]);
const fee = new Money(tx.fee, assetsHash[WAVES_ID]);
Expand Down
14 changes: 7 additions & 7 deletions data-service/api/transactions/transactions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ import { pipe, prop, uniqBy, tap } from 'ramda';
import { ExchangeTxFilters } from '@waves/data-service-client-js';


export function list(address: string, limit = 100): Promise<Array<T_TX>> {
return request({ url: `${configGet('node')}/transactions/address/${address}/limit/${limit}` })
.then(pipe(
prop('0'),
uniqBy(prop('id')) as any,
))
.then(transactions => parseTx(transactions as any, false));
export function list(address: string, limit = 100, after: string): Promise<Array<T_TX>> {
return request({
url: `${configGet('node')}/transactions/address/${address}/limit/${limit}${after ? `?after=${after}` : ''}`
}).then(pipe(
prop('0'),
uniqBy(prop('id')) as any,
)).then(transactions => parseTx(transactions as any, false));
}

export function getExchangeTxList(options: ExchangeTxFilters = Object.create(null)): Promise<Array<IExchange>> {
Expand Down
5 changes: 4 additions & 1 deletion data-service/broadcast/broadcast.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { request } from '../utils/request';
import { parse } from '../api/matcher/getOrders';
import { get } from '../config';
import { stringifyJSON } from "../utils/utils";
import { addOrderToStore, removeOrderFromStore } from '../store';
import { stringifyJSON } from '../utils/utils';


export function broadcast(data) {
Expand Down Expand Up @@ -38,6 +39,7 @@ export function createOrderSend(txData) {
filled: 0
}]);
})
.then(addOrderToStore);
}

export function cancelOrderSend(txData, amountId, priceId, type: 'cancel' | 'delete' = 'cancel') {
Expand All @@ -52,6 +54,7 @@ export function cancelOrderSend(txData, amountId, priceId, type: 'cancel' | 'del
body: stringifyJSON(txData)
}
}).then((data) => {
removeOrderFromStore({ id: txData.orderId });
return data;
});
}
30 changes: 18 additions & 12 deletions data-service/classes/DataManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,10 @@ export class DataManager {
return this.pollControl.getPollHash().aliases.lastData || [];
}

public getOracleAssetData(id: string): TProviderAsset & { provider: string } {
public getOracleAssetDataByOracleName(id: string, oracleName: string = 'oracleWaves'): TProviderAsset & { provider: string } {
let pollHash = this.pollControl.getPollHash();
const lastData = <any>path(['oracle', 'lastData'], pollHash);
const lastData = <any>path([oracleName, 'lastData'], pollHash);
const assets = lastData && lastData.assets || Object.create(null);

const WavesApp = (window as any).WavesApp;

const gateways = {
Expand Down Expand Up @@ -108,8 +107,14 @@ export class DataManager {
return assets[id] ? { ...assets[id], provider: lastData.oracle.name } : null;
}

public getOracleData() {
return this.pollControl.getPollHash().oracle.lastData;
public getOraclesAssetData (id: string) {
const dataOracleWaves = this.getOracleAssetDataByOracleName(id, 'oracleWaves');
const dataOracleTokenomica = this.getOracleAssetDataByOracleName(id, 'oracleTokenomica');
return dataOracleWaves || dataOracleTokenomica;
}

public getOracleData(oracleName: string) {
return this.pollControl.getPollHash()[oracleName].lastData;
}

private _getPollBalanceApi(): IPollAPI<Array<IBalanceItem>> {
Expand All @@ -135,10 +140,9 @@ export class DataManager {
};
}

private _getPollOracleApi(): IPollAPI<IOracleData> {
private _getPollOracleApi(address: string): IPollAPI<IOracleData> {
return {
get: () => {
const address = get('oracleAddress');
return address ? getOracleData(address) : Promise.resolve({ assets: Object.create(null) }) as any;
},
set: () => null
Expand All @@ -149,15 +153,16 @@ export class DataManager {
const balance = new Poll(this._getPollBalanceApi(), 1000);
const orders = new Poll(this._getPollOrdersApi(), 1000);
const aliases = new Poll(this._getPollAliasesApi(), 10000);
const oracle = new Poll(this._getPollOracleApi(), 30000);
const oracleWaves = new Poll(this._getPollOracleApi(get('oracleWaves')), 30000);
const oracleTokenomica = new Poll(this._getPollOracleApi(get('oracleTokenomica')), 30000);

change.on((key) => {
if (key === 'oracleAddress') {
oracle.restart();
if (key === 'oracleWaves') {
oracleWaves.restart();
}
});

return { balance, orders, aliases, oracle };
return { balance, orders, aliases, oracleWaves, oracleTokenomica };
}

}
Expand All @@ -166,7 +171,8 @@ type TPollHash = {
balance: Poll<Array<IBalanceItem>>;
orders: Poll<IHash<Money>>;
aliases: Poll<Array<string>>;
oracle: Poll<IOracleData>
oracleWaves: Poll<IOracleData>
oracleTokenomica: Poll<IOracleData>
}

export interface IOracleAsset {
Expand Down
4 changes: 3 additions & 1 deletion data-service/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,7 @@ export interface IConfigParams {
assets: IHash<string>;
minimalSeedLength: number;
remappedAssetNames: IHash<string>;
oracleAddress: string;
// oracleAddress: string;
oracleWaves: string;
oracleTokenomica: string;
}
2 changes: 2 additions & 0 deletions data-service/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ import { TTimeType } from './utils/utils';
export { getAdapterByType, getAvailableList } from '@waves/signature-adapter';
export { Seed } from './classes/Seed';
export { assetStorage } from './utils/AssetStorage';
export * from './store';

export const wavesDataEntities = {
...wavesDataEntitiesModule
};
Expand Down
66 changes: 66 additions & 0 deletions data-service/store.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import { toArray } from './utils/utils';
import { IOrder } from './api/matcher/interface';
import { pipe, concat, eqProps, uniqBy, prop, differenceWith, tap } from 'ramda';

export type TStore<T> = Array<IStoreContainerItem<T>>;

const ordersStore: Array<IStoreContainerItem<IOrder>> = [];
const toRemoveOrders: Array<IStoreContainerItem<IOrder>> = [];

function createAddStore<T>(container: TStore<T>, timeout: number) {
return (item: T | Array<T>) => {
toArray(item).forEach((item) => {
const storeItem = {
data: item,
expiration: window.setTimeout(() => {
container.splice(container.indexOf(storeItem), 1);
}, timeout)
};
container.push(storeItem);
});
return item;
};
}

function removeFromStoreById<T>(container: TStore<T>, idKey: keyof T, item: Partial<T>) {
const id = item[idKey];
for (let i = container.length - 1; i >= 0; i--) {
if (container[i].data[idKey] === id) {
window.clearTimeout(container[i].expiration);
container.splice(i, 1);
break;
}
}
}

function createClearStore<T>(addContainer: TStore<T>, addRemoveF: IRemoveOrderFunc<Partial<T>>, idKey: keyof T) {
return (item: Partial<T> | Array<Partial<T>>) => {
toArray(item).forEach((item) => {
removeFromStoreById(addContainer, idKey, item);
});
addRemoveF(item);
return item;
};
}

function createProcessStore<T>(toAddContainer: TStore<T>, toRemoveContainer: TStore<T>, idKey: string): (list: Array<T>) => Array<T> {
return pipe(
list => concat(toAddContainer.map(prop('data')), list),
list => differenceWith(eqProps(idKey), list, toRemoveContainer.map(prop('data'))) as any,
uniqBy(prop(idKey) as any)
);
}

const addToRemoveStore = createAddStore(toRemoveOrders, 3000);
export const addOrderToStore = createAddStore(ordersStore, 3000);
export const removeOrderFromStore = createClearStore(ordersStore, addToRemoveStore, 'id');
export const processOrdersWithStore = createProcessStore(ordersStore, toRemoveOrders, 'id');

export interface IStoreContainerItem<T> {
data: T;
expiration: number;
}

interface IRemoveOrderFunc<T> {
(item: T | Array<T>): T | Array<T>;
}
6 changes: 3 additions & 3 deletions gulpfile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
getScripts,
getStyles,
getInitScript,
getLocales
loadLocales
} from './ts-scripts/utils';
import { basename, extname, join, sep } from 'path';
import {
Expand Down Expand Up @@ -292,7 +292,7 @@ task('concat-develop-vendors', function () {

task('downloadLocales', ['concat-develop-sources'], function (done) {
const dist = join(__dirname, 'dist');
getLocales(dist).then(() => done());
loadLocales(dist).then(() => done());
});

task('clean', function () {
Expand Down Expand Up @@ -431,7 +431,7 @@ task('electron-debug', function (done) {
.then(excludeTypeScrip)
.then(list => Promise.all(list.map(copyItem)))
.then(makePackageJSON)
.then(() => getLocales(root))
.then(() => loadLocales(root))
.then(() => renameLocaleDirectory())
.then(copyNodeModules)
.then(copyI18next)
Expand Down
3 changes: 2 additions & 1 deletion mocks/waves-client-config/master/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
"CAN_CREATE_ORDER": true,
"CAN_CANCEL_ORDER": true,
"CAN_PAIRING_WITH_MOBILE": true,
"CAN_ANY_TRANSACTION": true
"CAN_ANY_TRANSACTION": true,
"CAN_SET_ASSET_SCRIPT": true
},
"NOTIFICATIONS": [
{
Expand Down
Loading