Commit Graph

694 Commits

Author SHA1 Message Date
Ivan Socolsky 0922a5fa6e integration tests 2016-01-13 16:03:05 -03:00
Ivan Socolsky 450da4ecdc add fiat rate service 2016-01-13 16:03:05 -03:00
Ivan Socolsky 86c36eba84 Merge pull request #429 from gabrielbazan7/feat/pushNotifications
push notifications
2016-01-13 15:44:02 -03:00
Gabriel Bazán 5c1a95d5d2 refactor 2016-01-13 13:14:42 -03:00
Kosta Korenkov 6a9db29192 Return tx customData wth txHistory 2016-01-13 19:11:47 +03:00
Gabriel Bazán ba1c603977 add integrations test - should exclude outgoing notifications 2016-01-12 17:26:44 -03:00
Gabriel Bazán f6aef2de7c add join test 2016-01-12 15:19:29 -03:00
Gabriel Bazán 925e83b74a pushnotificationsservice path fix 2016-01-12 10:09:06 -03:00
Gabriel Bazán 92aac31b4c template path fix 2016-01-12 09:53:44 -03:00
Javier a8f1bdd3c9 WIP integrations test 2016-01-11 17:58:39 -03:00
Ivan Socolsky 08f37a97b6 additional tests 2015-12-22 17:05:54 -03:00
Ivan Socolsky a002ff0cfc return both totalSize & confirmedSize 2015-12-22 16:53:25 -03:00
Ivan Socolsky 3bef4f30b6 initialize amount field on multiple_output tx proposals 2015-12-16 00:21:58 -03:00
Matias Alejo Garcia 60e69a3856 Merge pull request #418 from isocolsky/feat/cache
Optimize balance computation
2015-12-15 12:51:54 -03:00
Ivan Socolsky 4198d5c47c handle initial conditions (empty cache) 2015-12-14 17:04:37 -03:00
Matias Alejo Garcia 0968de59dd enforce txhistory limit 2015-12-14 16:41:06 -03:00
Ivan Socolsky 87b96d4a8f keep getStatus() method, add twoStep param 2015-12-11 16:32:38 -03:00
Ivan Socolsky cc94b19e82 rebase 2015-12-10 13:04:31 -03:00
Ivan Socolsky 56d1562e92 express endpoint 2015-12-10 13:03:18 -03:00
Ivan Socolsky 4e7241e86d add v2/balance endpoint 2015-12-10 13:03:18 -03:00
Ivan Socolsky 9dcae6f4bc introduce threshold for nb of addresses 2015-12-10 13:03:18 -03:00
Ivan Socolsky 0ab57133fd fix tests 2015-12-10 13:03:17 -03:00
Ivan Socolsky 2914584d50 test new addresses 2015-12-10 13:03:17 -03:00
Ivan Socolsky 94a376ca33 store cached data in db 2015-12-10 13:03:17 -03:00
Ivan Socolsky 3874d14f71 2 step getBalance 2015-12-10 13:03:17 -03:00
Matias Alejo Garcia a1596e4dd6 Merge pull request #407 from isocolsky/ref/proposal-flow
WIP: Ref/proposal flow
2015-12-09 10:25:11 -03:00
Ivan Socolsky 6f280d07da Revert "Temporarily disable max address gap limit" 2015-12-08 17:10:18 -03:00
Ivan Socolsky 89b2a08f9f rename sendTx -> publishTx 2015-12-08 12:01:49 -03:00
Ivan Socolsky 3f35d8f141 return upgrade_needed for legacy clients 2015-12-08 10:30:27 -03:00
Ivan Socolsky 0bb043d034 simplify proposal creation + allow non-validated outputs (external txps) 2015-12-08 10:30:27 -03:00
Ivan Socolsky 5054c1d9f4 reorganize integration tests 2015-12-08 10:30:27 -03:00
Ivan Socolsky 092c3ff37e make self contained signature keys optional 2015-12-08 10:30:27 -03:00
Ivan Socolsky 87d7a1bd92 tests for proposal signature & signing key 2015-12-08 10:30:27 -03:00
Ivan Socolsky 76831caf50 verify proposal signature over raw tx 2015-12-08 10:30:26 -03:00
Ivan Socolsky 4a7614e2d5 rename createTx -> createTxLegacy 2015-12-08 10:30:26 -03:00
Ivan Socolsky 8ef05c8841 check available utxos when sending temporary txp 2015-12-08 10:30:26 -03:00
Ivan Socolsky 30c8072b8b send tx (publish) + tests 2015-12-08 10:30:26 -03:00
Ivan Socolsky 2211847d0c remove type from txproposal model 2015-12-08 10:30:26 -03:00
Ivan Socolsky 9db456550f create temporary proposal + test 2015-12-08 10:30:26 -03:00
Ivan Socolsky 6deb9e77f6 txproposalv3 -> txproposal 2015-12-08 10:30:26 -03:00
Ivan Socolsky 563ee14dc1 txproposal.js -> txproposal_legacy.js 2015-12-08 10:30:26 -03:00
Ivan Socolsky ebce4629ff test getEstimatedSize() 2015-12-08 10:28:21 -03:00
Ivan Socolsky 63eca6b529 txProposal v3 2015-12-08 10:28:21 -03:00
Ivan Socolsky 8630b03c40 skip tests 2015-12-06 01:20:47 -03:00
Ivan Socolsky 98773fe40a handle invalid xpub on wallet join 2015-12-01 11:25:59 -03:00
Ivan Socolsky 80d1d31130 Merge pull request #330 from troggy/txp/manual-outputs
Add EXTERNAL proposal type
2015-11-20 15:10:40 -03:00
Ivan Socolsky 6476de0461 remove unused elements in output order array 2015-11-16 17:59:48 -03:00
Ivan Socolsky fa7e2ef6ce test multiple-output with no change 2015-11-16 17:46:34 -03:00
Ivan Socolsky af70af4de7 test single output tx with no change 2015-11-16 17:34:28 -03:00
Kosta Korenkov 2bdc6cf19d Make API.createTx accept preselected inputs
Add EXTERNAL tx type

It will allow clients to specify inputs and outputs when creating proposals

Extract _validateOutputs method

Use for-loop to simplify and make it fail-fast.

Do not validate outputs for EXTERNAL tx type

Outputs may be of any kind (e.g. OP_RETURN). It is assumed that outputs are validated by caller.

Move output validation to a single place

Check tx and estimate fees for EXTERNAL proposal

Set amount for external proposals

Use changeAddress to determine network

Do not shuffle outputs for EXTERNAL txp

Fix input selection to respect fees

Add more inputs, if we selected exactly the amount to spend, so we avoid 'Insufficient funds for a fee' error

Properly handle UTXO with 0 satoshis

Minor fixes

ignore invalid utxos
2015-11-11 21:23:44 +03:00
Matias Alejo Garcia a1f58a6c8c Merge pull request #393 from isocolsky/remove-bwu-dep
Remove BWU dependency
2015-11-09 10:48:09 -03:00
Ivan Socolsky 714b95b32c remove derivationStrategy field from txp 2015-11-06 12:02:41 -03:00
Ivan Socolsky 2367365707 fix GET v1/addresses/ endpoint 2015-11-04 12:36:39 -03:00
Ivan Socolsky c629b02419 test address derivation from PKR 2015-11-03 16:57:34 -03:00
Ivan Socolsky f5f530e3b3 add tests to utils.js 2015-11-03 16:15:15 -03:00
Ivan Socolsky c7611231a5 refactor email notification tests into a separate test suite 2015-11-03 15:59:52 -03:00
Ivan Socolsky 7042e240f8 refactor testing setup/teardown in helpers 2015-11-03 15:45:38 -03:00
Ivan Socolsky c1a456d32a extract helpers from integration tests 2015-11-03 13:29:52 -03:00
Ivan Socolsky e55983b151 mv Utils.buildTx -> TxProposal 2015-11-03 13:01:12 -03:00
Ivan Socolsky 795097bf04 refactor constants+defaults+utils -> common 2015-10-30 17:16:20 -03:00
Ivan Socolsky d451fff6fc clean up address scan config 2015-10-30 15:39:33 -03:00
Ivan Socolsky eb006c3db3 remove bitcore-wallet-utils dependency 2015-10-30 15:24:47 -03:00
Matias Alejo Garcia 3425f9ec57 Merge pull request #392 from isocolsky/feat/get-main-addresses-params
Add params to getMainAddresses
2015-10-29 16:38:22 -03:00
Matias Alejo Garcia 5edfe3d384 Merge pull request #390 from isocolsky/limit-address-gap
Limit nb of consecutive addresses without activity
2015-10-29 16:37:47 -03:00
Ivan Socolsky 22a19ff8cb rm .only 2015-10-29 15:46:02 -03:00
Ivan Socolsky ef18c786fb handle limit & reverse params 2015-10-29 15:17:39 -03:00
Ivan Socolsky ea8db8bb19 test getMainAddresses 2015-10-29 14:48:04 -03:00
Matias Alejo Garcia ade6458b6c add tests 2015-10-28 18:34:05 -03:00
Ivan Socolsky ff1ca22825 test cache 2015-10-28 13:42:38 -03:00
Ivan Socolsky 64a48db991 check single address activity on blockchain 2015-10-28 13:25:32 -03:00
Ivan Socolsky cf37d013b6 changed stub methods & more tests 2015-10-27 16:22:42 -03:00
Ivan Socolsky a8a6962c74 check activity of previous addresses before generating a new one 2015-10-27 16:00:29 -03:00
Ivan Socolsky 2f990f42a8 test 2015-10-27 15:38:11 -03:00
Ivan Socolsky 0a7ef7588d test new change address on every tx 2015-10-27 13:01:41 -03:00
Ivan Socolsky a84d2ae2d1 test existing addresses do not get rewinded on scan error 2015-10-27 11:28:34 -03:00
Ivan Socolsky 284c2540f9 do not go beyond max gap addresses 2015-10-26 18:31:10 -03:00
Ivan Socolsky c21683ca6f all #scan tests passing 2015-10-26 18:17:48 -03:00
Ivan Socolsky 9ffcb7e470 scan addresses 1 by 1 and rewind to last used one 2015-10-26 18:05:53 -03:00
Ivan Socolsky e7855e1e89 replace minTs with timeSpan (in secs) in /v1/notifications 2015-10-19 17:23:50 -03:00
Ivan Socolsky d6f9633a73 improve tests 2015-10-19 15:04:09 -03:00
Ivan Socolsky 09c5af073d accept minTs arg on v1/notifications but limit it to now - 60s 2015-10-19 14:58:38 -03:00
Ivan Socolsky 5c048e390c fetch new block notifications along with regular wallet notifications 2015-10-19 14:28:43 -03:00
Ivan Socolsky 19da3f8fd5 add x-service-version header 2015-10-19 11:18:26 -03:00
Braydon Fuller 8277f78df4 bitcore -> bitcore-lib 2015-10-16 18:48:21 -04:00
Ivan Socolsky c35a504696 test notifications return empty set if no new data 2015-10-15 16:37:25 -03:00
Ivan Socolsky 685df45e36 express endpoint + tests 2015-10-15 16:30:14 -03:00
Ivan Socolsky bf40b5a000 getLatestNotifications -> getNotifications 2015-10-15 16:01:23 -03:00
Ivan Socolsky 3bb097c7f4 rm getNotifications 2015-10-15 16:01:23 -03:00
Ivan Socolsky b23f412bf3 getLatestNotifications + tests 2015-10-15 16:01:23 -03:00
Braydon Fuller ab7b08cb0e Add test coverage to express app. 2015-10-06 15:03:03 -04:00
Braydon Fuller e476e86b7d Use defaults from config.js 2015-10-06 13:01:08 -04:00
Braydon Fuller 1696d38d1b Add tests for bitcore node wallet service 2015-10-06 13:01:08 -04:00
Braydon Fuller 8ea3e6c278 Single process when running as a Bitcore Node service. 2015-10-06 13:01:08 -04:00
Braydon Fuller 7f6425c74a Start of BWS as a Bitcore Node Service. 2015-10-06 13:01:08 -04:00
Ivan Socolsky 6df6c00821 do not send new txp email for 1-of-N 2015-09-25 17:07:41 -03:00
Ivan Socolsky 88240dce1a Merge pull request #362 from greggzigler/feat/get_version
clients want bws version for logging and debugging
2015-09-18 14:33:26 -03:00
Gregg Zigler 19cb11abeb rename server to service 2015-09-18 10:20:38 -07:00
Ivan Socolsky e346184339 add dryRun param 2015-09-17 11:39:23 -03:00
Ivan Socolsky d86dae7d17 test 2015-09-17 11:34:46 -03:00
Gregg Zigler bf76023869 use 'bws-' prefix to match style of bwc clientVersion values 2015-09-15 09:57:10 -07:00
Gregg Zigler 9b630002ae rename to disambiguate from clientVersion 2015-09-15 09:43:24 -07:00
Ivan Socolsky 63a7e47543 test 2015-09-11 11:15:38 -03:00
Matias Alejo Garcia 0a09dac821 Merge pull request #357 from isocolsky/ref/bip44
Ref/bip44
2015-09-10 15:46:41 -03:00
Ivan Socolsky a77c81ee7a test legacy/new clients interacting 2015-09-10 14:53:33 -03:00
Matias Alejo Garcia a8607fa11b better insight error handling
add check to getPending

add check to getPending

add tests

rm log

store TXID upon tx completion

monitor accepted txs

change delay

change _checkTxInBlockchain

change _checkTxInBlockchain

rm useless params, refactor txid param

complete tx at fetch
2015-09-09 15:14:11 -03:00
Matias Alejo Garcia 4baaa6dbab Merge pull request #336 from isocolsky/ref/feelevels
Replace feePerKB with feePerKb to match rest of API
2015-09-09 14:46:52 -03:00
Ivan Socolsky 3bf7b4d51f prioritize error messages 2015-09-07 18:52:07 -03:00
Ivan Socolsky 69ae9a63e7 add script type to address 2015-09-07 17:46:45 -03:00
Ivan Socolsky 97e63f9c6f enable both bip44/45 & p2sh/pkh 2015-09-07 17:18:32 -03:00
Ivan Socolsky 595a54322b correctly build tx proposal on P2PKH 2015-09-05 18:49:43 -03:00
Ivan Socolsky 45b7b65e99 allow p2pkh addresses in 1-of-1 2015-09-05 01:18:09 -03:00
Ivan Socolsky a9ad04692b fix tests 2015-09-04 23:11:44 -03:00
Ivan Socolsky 765ccf33a0 restrict BIP44 usage to 1-of-1 wallets 2015-09-04 21:05:39 -03:00
Ivan Socolsky e21d6dabd6 fix scan when blockchain explorer error 2015-09-04 09:38:56 -03:00
Kosta Korenkov 0ccdbf97d7 Fix typo 2015-09-03 12:55:36 +03:00
Kosta Korenkov 20af02e24f Allow arbitrary customData for tx proposals
This way Copay addons may attach related data to proposals
2015-09-03 12:52:12 +03:00
Ivan Socolsky 3f1bae6f25 Merge pull request #340 from matiu/feat/rawTx
add transaction raw HEX if tx status is "accepted"
2015-09-02 13:36:03 -03:00
Matias Alejo Garcia 9de8cfcbf2 add raw HEX if tx is "accepted" 2015-09-02 12:38:28 -03:00
Ivan Socolsky c974cf791a default address manager to BIP45 2015-09-01 12:16:26 -03:00
Ivan Socolsky e11da7cec5 remove AddressManager from copayers on BIP44 2015-08-31 17:38:39 -03:00
Ivan Socolsky fe46f95b32 test for legacy clients trying to join BIP44 wallet 2015-08-31 11:59:54 -03:00
Ivan Socolsky 3ac0bc5e27 switch tests to bip44 2015-08-28 14:54:36 -03:00
Ivan Socolsky a4f1169aa9 allow addressManager to handle BIP44 derivations 2015-08-27 17:09:14 -03:00
Ivan Socolsky 7d9e43fccc initialize version field from #create method 2015-08-27 10:47:32 -03:00
Ivan Socolsky bafe84a2e0 replace feePerKB with feePerKb to match rest of API 2015-08-26 15:02:11 -03:00
Ivan Socolsky 1a047ff2a0 restore previous test 2015-08-26 11:23:13 -03:00
Kosta Korenkov a5e44070b9 Allow to exclude certain UTXO from coin selection
Optional array of lockedUtxos (in ``txid:vout`` form) can be passed with tx proposal options.
When selecting inputs for proposal, these UTXOs will not be used.
2015-08-26 12:47:45 +03:00
Ivan Socolsky 6cba8abc5c add custom data to copayers 2015-08-25 16:12:47 -03:00
Ivan Socolsky 1007ad1b05 includeExtendedInfo switch 2015-08-25 15:15:41 -03:00
Ivan Socolsky f8d9ca542d implement get status & improve tests 2015-08-25 15:15:40 -03:00
Ivan Socolsky d47bb65fdd test 2015-08-25 15:12:41 -03:00
Matias Alejo Garcia 637a1e2d8b refactor create/fromObj 2015-08-20 14:16:43 -03:00
Matias Alejo Garcia dac564f290 adds addAccess call and tests 2015-08-20 14:15:33 -03:00
Matias Alejo Garcia edc3bc6713 supports multiple pubkeys per copayer 2015-08-20 14:15:33 -03:00
Matias Alejo Garcia 3122e9ba7c test passing, rebased 2015-08-20 14:15:33 -03:00
Matias Alejo Garcia cfbf184502 removes isTemporaryRequestKey and replaceTemporaryRequestKey feature. No longer supports joining legacy (<0.9) copayers 2015-08-20 14:15:33 -03:00
Matias Alejo Garcia 3bcabaf9e4 Merge pull request #326 from isocolsky/fee_level_def
Redefine fee levels
2015-08-14 10:29:32 -03:00
Ivan Socolsky 3bd341c65f fee levels set to 1, 2, 6 2015-08-13 17:27:06 -03:00
Ivan Socolsky a8eedc8c01 rename internal constants 2015-08-13 17:24:49 -03:00
Ivan Socolsky 6421790bb1 test 2015-08-13 16:06:14 -03:00
Ivan Socolsky fca67fba8a implement utxos for external addresses 2015-08-13 12:01:22 -03:00
Ivan Socolsky 4dbcb639fe add opts param to getUtxos 2015-08-13 11:00:27 -03:00
Ivan Socolsky ad6102c7ce fix stub 2015-08-12 18:38:38 -03:00
Matias Alejo Garcia c5fc6be856 Merge pull request #322 from isocolsky/fix/fee_rounding
Fix/fee rounding
2015-08-11 17:48:43 -03:00
Ivan Socolsky 3533b60e6b change fee rounding strategy 2015-08-11 16:52:10 -03:00
Ivan Socolsky 256fb0095b improve error message 2015-08-11 16:26:16 -03:00
Ivan Socolsky af9dd5b3fe disallow signing newer txs from legacy clients 2015-08-11 14:16:58 -03:00
Ivan Socolsky e4e138e139 add TX_NOT_FOUND 2015-08-05 10:48:36 -03:00
Ivan Socolsky 76c545b110 add WALLET_NOT_COMPLETE 2015-08-05 10:44:09 -03:00
Ivan Socolsky 03fe48209e add WALLET_NOT_FOUND 2015-08-05 10:41:03 -03:00
Ivan Socolsky 90dfc17ab5 new error for address network mismatch 2015-08-04 12:07:25 -03:00
Ivan Socolsky e1fac88a8e improve error codes 2015-08-03 16:11:09 -03:00
Ivan Socolsky 602bc9a9a3 rm BLOCKCHAINERROR error code 2015-08-02 19:48:18 -03:00
Ivan Socolsky 86779303a9 add UPGRADENEEDED error code 2015-07-30 16:08:17 -03:00
Ivan Socolsky b659333c94 differentiate INSUFFICIENTFUNDS from INSUFFICIENTFUNDSFORFEE 2015-07-30 14:55:35 -03:00
Ivan Socolsky 4f582382bc fix invalid fee on legacy txs 2015-07-29 18:19:53 -03:00
Ivan Socolsky 2558dcbbbd support legacy clients + tests 2015-07-29 17:45:25 -03:00
Matias Alejo Garcia 5b6ade382e Merge pull request #303 from greggzigler/feature/multi-outputs-history
getTxHistory for multiple outputs
2015-07-29 11:20:35 -03:00
Gregg Zigler 730a3269c9 include proposal type, exclude decorations, in txhistory results 2015-07-28 09:25:05 -07:00
Gregg Zigler 20487ab38a return output.message from txproposal if one exists 2015-07-28 08:45:46 -07:00
Ivan Socolsky 26aef25be6 compute total bytes to send max 2015-07-27 12:19:27 -03:00
Ivan Socolsky 5b3671b079 fix tests 2015-07-27 11:37:10 -03:00
Ivan Socolsky fc94c2e0cf return nbBlocks = null when fee level is unavailable 2015-07-23 11:06:04 -03:00
Ivan Socolsky 86d1818940 send back nbBlocks for each level 2015-07-23 11:05:00 -03:00
Ivan Socolsky c85111c5b2 remove emergency level 2015-07-23 11:05:00 -03:00
Ivan Socolsky 626e2a1b06 fix sum of locked confirmed utxos + tests 2015-07-20 21:35:34 -03:00
Ivan Socolsky 1603c200b6 add excludeUnconfirmedUtxos arg to txp creation 2015-07-20 21:35:34 -03:00
Ivan Socolsky 859b1cf042 cleaner code 2015-07-20 21:35:34 -03:00
Ivan Socolsky 9a5daa5bf4 add confirmed amounts to balance 2015-07-20 21:35:34 -03:00
Ivan Socolsky 05de23c1b0 allow stubbing of unconfirmed utxos 2015-07-20 21:35:34 -03:00
Ivan Socolsky c22cfd561e fix tx history normalization 2015-07-20 16:10:08 -03:00
Ivan Socolsky 28a6603032 log failed attempts to fetch network fee 2015-07-16 17:47:27 -03:00
Ivan Socolsky 6c6f726a06 return array instead of object 2015-07-16 16:22:55 -03:00
Ivan Socolsky b59a2a7d58 change fee levels 2015-07-16 16:22:55 -03:00
Ivan Socolsky 2b243cb0a2 dynamic fees 2015-07-16 16:22:55 -03:00
Ivan Socolsky 0cb085b325 change utxo selection order 2015-07-16 12:55:59 -03:00
Ivan Socolsky bdbbd8ac7a use firstSeenTs when available 2015-07-15 10:27:55 -03:00
Matias Alejo Garcia 0349076839 handle invalid txs in history 2015-07-15 10:05:40 -03:00
Ivan Socolsky a46c3aa34a fixes 2015-07-13 17:44:42 -03:00
Ivan Socolsky f8712795b2 remote pagination of tx history 2015-07-13 17:32:12 -03:00
Ivan Socolsky 6e9630e0df Merge pull request #274 from greggzigler/bug/simpleProposalHash
proposals with explicit type = simple need legacy header
2015-07-13 13:56:18 -03:00
Gregg Zigler 6e86332d35 new bwu lets this test pass 2015-07-13 09:28:16 -07:00
Ivan Socolsky 20b3d50ef9 use template for public tx url 2015-07-13 12:52:28 -03:00
Gregg Zigler a6f2b70ef2 proposal header utility needs separate args for simple proposals 2015-07-07 15:02:22 -07:00
Ivan Socolsky 156ce58c49 v0.0.41 2015-07-03 16:54:31 -03:00
Ivan Socolsky 1494b82c35 generate tx url for emails 2015-07-03 15:08:32 -03:00
Ivan Socolsky b1cc7407ee remove subject from html templates 2015-07-03 14:24:24 -03:00
Ivan Socolsky 470df32a09 add getPublicUrlForTx to blockchain explorer 2015-07-03 13:59:45 -03:00
Ivan Socolsky 9c98502969 improve unit format in emails 2015-06-30 18:38:37 -03:00
Matias Alejo Garcia 1d7b635d2a Merge pull request #267 from isocolsky/client_version
Client version
2015-06-29 12:27:12 -03:00
Ivan Socolsky d76cd8ec5a add client-version to expressapp 2015-06-29 12:20:24 -03:00
Ivan Socolsky 8a8f4e7b48 avoid sending email if unable to apply template 2015-06-29 10:57:32 -03:00
Matias Alejo Garcia 4552d3e524 Merge pull request #264 from isocolsky/ref/preferences
Incremental preferences
2015-06-29 09:38:14 -03:00
Ivan Socolsky fb0dcee054 combine new preferences with stored preferences 2015-06-29 09:11:03 -03:00
Matias Alejo Garcia 415d759fd0 Merge pull request #263 from isocolsky/client_version
Store client version
2015-06-29 09:09:08 -03:00
Ivan Socolsky 116bea1aa5 ignore unrecognized preferences 2015-06-29 08:57:53 -03:00
Ivan Socolsky a00b8c3592 test incremental save 2015-06-29 08:50:00 -03:00
Ivan Socolsky efcabce315 store client version on every request 2015-06-29 08:41:59 -03:00
Ivan Socolsky 4139cb0ae7 test client version stored 2015-06-29 08:40:39 -03:00
Ivan Socolsky 15b0f45635 optional html body 2015-06-26 17:39:47 -03:00