Maciej Hirsz
a58fad06a7
JSON-RPC interfaces with documentation ( #4276 )
...
* Extended Markdown generator
* Synced and extended all JSON-RPC interfaces
* Fix linter errors
* Format `parity_listAccounts` output in API
* typo
2017-01-24 22:02:52 +01:00
Jaco Greeff
75c2588920
Skip misbehaving test until properly fixed ( #4283 )
2017-01-24 19:35:01 +00:00
Jaco Greeff
155bbc328f
Feature selector ( #4074 )
...
* WIP
* ParityBar verification
* import from index.js
* i18n expansion & tests
* Features component
* Adapt language selector to use features
* Add features to settings view
* typo
* Convert logging
* Fix earlier merge issues resulting in test failures
* Lint failure fixes (new rules)
* Fix additional listing rules
* Re-add FormattedMessage (missing after merge), fix tests
* Fix loader overrides
* grumble: split item rendering (& test)
* grumble: allow enable/disable while testing (default on)
* grumble: move LanguageSelector below Features
* grumble: don't pass visiblity prop (& update tests)
* grumble: missing observable (onClick misbehaving)
* grumble: don't reset to defaults per session
* Fix to single store instance
2017-01-24 17:20:10 +01:00
Jaco Greeff
06433033d9
AccountCreate updates ( #3988 )
...
* Add esjify for mocha + ejs
* First pass through, intl + basic smoketests
* Create store
* Update for renames
* Pass store around
* createType into store
* Move stage into store
* Update labels
* Define stages
* address into store
* Add @observer
* Retrieve name from store
* Store phrase in store
* isWindowsPhrase into store
* gethAddresses to store
* Store manages geth addresses
* passwordHint into store
* Fix build
* rawKey into store
* import json files
* name set direct from component
* No parent change callbacks
* canCreate from store
* createAccounts into store
* expand create tests
* Windows phrase testcases
* Properly bind newError
* FirstRun use of new CreateAccount
* Add fix & test for selectedAddress match
* Call into store from props
* onChangeIdentity fix & test
* Phrase set fix & test
* RecoveryPhrase tested manually (issues addressed via tests)
* Hex import manual test (& tests added for errors)
* New eslint update fixes
* grumble: set default type from store (with test)
* grumble: pass copy of accounts (observable injection)
* grumble: Summary owners can be array or array-like
2017-01-24 16:18:23 +01:00
Maciej Hirsz
a30a108ac9
Extended JS interface -> Markdown generator ( #4275 )
...
* Extended Markdown generator
* Fix linter errors
* Review fixes
2017-01-24 16:05:21 +01:00
Jaco Greeff
53bbc76d06
Ledger Communication toolkit ( #4268 )
2017-01-24 11:46:59 +01:00
Jaco Greeff
ea44555f44
Add parity_accountsInfo as available subscription ( #4273 )
2017-01-23 19:39:49 +01:00
Jaco Greeff
183efe9d19
Display AccountCard name via IdentityName ( #4235 )
...
* Display AccountCard name via IdentityName
* Pass name through (catches registry reverse display)
2017-01-23 17:33:03 +01:00
Jaco Greeff
3d1162e3d9
Dapp visibility save/load tests ( #4150 )
...
* Start of tests to replicate issue
* Expand visibility tests
* Cleanups
* typo
* Extend saving tests as requested (pre-emptive)
* tests for new setDisplayApps action
* Address PR oversights
2017-01-23 16:45:56 +01:00
Nicolas Gotchac
b5a53284cf
Fix wrong output format of peers ( #4270 )
...
* Fix wrong output format of peers
* Add outPeer tests
2017-01-23 16:25:20 +01:00
Jaco Greeff
66e540edf8
Eslint formatting updates ( #4234 )
...
* Eslint updated (newline-after-var)
* Fix newline-after-var
* Eslint updated (one-var-declaration-per-line)
* Fix one-var-declaration-per-line
* Fix additional errors
* Lint after merge
2017-01-23 13:39:52 +01:00
Tomasz Drwięga
3e70e886a0
Embeddable ParityBar ( #4222 )
...
* Embeddable ParityBar
* Replacing storage with store
* Fixing references.
* Addressing style issues
* Supporting parity background
2017-01-23 13:04:08 +01:00
Nicolas Gotchac
6b52ed4dfa
Adjust the location of the signer snippet ( #4155 )
...
* Move signer tab
* WIP
* Better movments
* Save Parity Bar position per dapp
* Add position to Dapp Manifest
* Stick Parity Bar to the four corners
2017-01-21 14:44:13 +01:00
Nicolas Gotchac
8edaab806e
Fix wrong token handling ( #4254 )
...
* Fixing wrong token displayed
* Linting
* Revert filtering out
* Revert the revert
2017-01-20 19:49:09 +01:00
Jaco Greeff
e9e63a4a88
Additional building-block UI components ( #4239 )
...
* Currency WIP
* Expand tests
* Pass className
* Add QrCode
* Export new components in ~/ui
* s/this.props.netSymbol/netSymbol/
* Fix import case
2017-01-20 19:38:18 +01:00
Jaco Greeff
29e91f80d1
Disable notifications ( #4243 )
2017-01-20 15:48:14 +01:00
Jannis Redmann
1f77c4301a
verification: don't request a code twice ( #4221 )
...
* verification: check if user has received code
* verification: don't request a code twice
* code style :lint:
2017-01-20 13:23:21 +01:00
Jaco Greeff
4e35fd215e
s/Delete Contract/Forget Contract/ ( #4237 )
2017-01-20 13:21:51 +01:00
Jannis Redmann
df9110dd5e
cache registry reverses in local storage ( #4182 )
...
* cache reverses in localStorage
* bugfixes 🐛 , linting fixes 👕
* registry caching: store last block
* registry caching: store per chain
* localStorage -> store
* code style ✨
* code style 👕
2017-01-20 10:07:47 +01:00
Jaco Greeff
e62cda36c7
Use single source of info for dapp meta (build & display) ( #4217 )
...
* Add skipBuild flag
* Only use builtin.json to specify location
* Re-remove dapps/index.js
2017-01-19 14:07:41 +01:00
Jaco Greeff
46081de886
Non-secure for DappReg ( #4216 )
2017-01-19 10:59:49 +01:00
Gav Wood
0826bf75d1
Console now has admin ( #4220 )
...
Fixes #4210
2017-01-19 10:24:34 +01:00
Jannis Redmann
b9031953e0
verification: add mainnet BadgeReg ids ( #4190 )
...
* verification: mainnet BadgeReg ids
* verification: fetch contracts by name
* verification: better wording
* typo
* reregistered badges
2017-01-19 08:45:32 +01:00
Jaco Greeff
08f80f2695
ESLint additional rules ( #4186 )
...
* Add eslint rule for consistent block padding
* Fix padding consistency issues
* Eslint test for duplicate imports
* Eslint closing bracket location
* Fix eslint jsx closing bracket
* missed a file
* Formatting
* Manual overrides for auto
* Manual overrides for auto
* More minor auto-override manual adjustments
2017-01-18 13:05:01 +01:00
Jaco Greeff
c1ce65c870
Poll for upgrades as part of global status (long) ( #4197 )
...
* Poll for upgrades as part of global status (long)
* Fix path
2017-01-18 12:44:18 +01:00
Evan Saulpaugh
7dde80fdf3
Minor refactor for clarity ( #4174 )
...
* Spelling & grammar in TxQueue Viewer description
* minor refactor for clarity
* Fix lint.
2017-01-17 11:17:38 +01:00
Jannis Redmann
1d618faaa6
fix subscribeToEvents test ( #4166 )
...
* try to fix freaking test
* fix subscribeToEvents test
This fix is a workaround. I would have used sinon fake timers, but I
couldn't get them to work.
* subscribeToEvent test: simplify code
2017-01-16 10:48:20 +01:00
Nicolas Gotchac
51ac34f1cc
Fix dapps not loading ( #4170 )
...
* Add secure to dappsreg
* Remove trailing slash // fix dapps
2017-01-13 18:14:56 +01:00
Nicolas Gotchac
42ddb4f26c
Fix token images // Error in Contract Queries ( #4169 )
2017-01-13 18:14:25 +01:00
Nicolas Gotchac
4a714d4a3e
Add a password strength component ( #4153 )
...
* Added new PasswordStrength Component
* Added tests
* PR Grumbles
2017-01-13 15:52:42 +01:00
Nicolas Gotchac
57ce845e4c
Stop flickering + added loader in AddressSelector ( #4149 )
...
* Stop UI flickering + added loader to AddressSelector #4103
* PR Grumbles
2017-01-13 15:52:24 +01:00
Jaco Greeff
ee4ede915a
Pull in console dapp as builtin ( #4145 )
...
* Copy static dapps from static (no build)
* Console sources
* Add console to builtins
* Remove console assets
* Disable eslint on console.js
* Enable eslint after disable
* Webpack copy
2017-01-13 08:53:57 +00:00
Jannis Redmann
6f1c55ef5d
verification: check if server is running ( #4140 )
...
* verification: check if server is running
See also ethcore/email-verification#67c6466 and ethcore/sms-verification#a585e42.
* verification: show in the UI if server is running
* verification: code style ✨ , more i18n
* fix i18n key
2017-01-13 08:51:25 +00:00
Jaco Greeff
bff0f8ec5d
Remove onSubmit of current (no auto-change on password edit) ( #4151 )
...
* Remove onSubmit from current password
* Remove onSubmit from hint
2017-01-12 15:18:16 +01:00
Jaco Greeff
0de34774b1
Trim spaces from InputAddress ( #4126 )
...
* Trim spaces for addresses
* onSubmit has only value, not event
* onSubmit (again)
* Length check on trimmed value
2017-01-12 14:25:41 +01:00
Nicolas Gotchac
81beec1352
Don't pop-up notifications after network switch ( #4076 )
...
* Better notifications
* Don't pollute with notifs if switched networks
* Better connection close/open events / No more notifs on change network
* PR Grumbles
* Add close and open events to HTTP // Add tests
* Fix tests
* WIP Signer Fix
* Fix Signer // Better reconnection handling
* PR Grumbles
* PR Grumbles
* Fixes wrong fetching of balances + Notifications
* Secure API WIP
* Updated Secure API Connection + Status
* Linting
* Linting
* Updated Secure API Logic
* Proper handling of token updates // Fixing poping notifications
* PR Grumbles
* PR Grumbles
* Fixing tests
2017-01-12 14:25:32 +01:00
Jaco Greeff
389e4e3bc0
Use estimateGas error (as per updated implementation) ( #4131 )
...
* Use estimateGas error (as per updated implementation)
* EXCEPTION_ERROR as per #4142
2017-01-12 13:56:37 +01:00
Jannis Redmann
f0c831d63f
temporarily skip failing test ( #4138 )
2017-01-11 20:01:19 +01:00
Nicolas Gotchac
8d3d76c107
Add proper label to method decoding inputs ( #4136 )
2017-01-11 17:44:56 +01:00
Jaco Greeff
3e74d46a06
Remove bindActionCreators({}, dispatch) (empty) ( #4135 )
2017-01-11 17:02:53 +01:00
Jaco Greeff
32dbf9958e
Better error log reporting & handling ( #4128 )
2017-01-11 17:02:39 +01:00
Nicolas Gotchac
b54709605a
Fix broken transfer total balance ( #4127 )
2017-01-11 17:01:35 +01:00
Tomasz Drwięga
26500af8c0
Fixing decoding API with signatures in names ( #4125 )
2017-01-11 12:17:04 +01:00
Jannis Redmann
4ecd9da6e4
basic tests for subscribeToEvents ( #4115 )
...
* subscribeToEvent fixtures ✅
* subscribeToEvent tests ✅
2017-01-11 12:14:04 +01:00
Tomasz Drwięga
7aa2af3e21
Auto-detect hex encoded bytes in sha3 ( #4108 )
...
* Auto-detect hex encoded bytes in sha3
* Using types/isHex
* Removing unused imports
2017-01-10 18:56:56 +01:00
Jaco Greeff
f0e017fe6c
Wrong log output address ( #4106 )
2017-01-10 13:42:29 +01:00
Nicolas Gotchac
cee2ac43c0
Update Transfer logic + Better logging ( #4098 )
...
* Add logs and better Transfer Store logic
* Fix wallet transfer
* Fix wrong gas in Wallet
* Move log levels to Parity tab
2017-01-10 13:26:30 +01:00
Nicolas Gotchac
ae7619431b
Fix Signer ( #4104 )
2017-01-10 13:19:18 +01:00
Jannis Redmann
8958603f64
merge #4066 from jr-reverse-caching
...
cache registry reverses, completion in address selector
2017-01-10 12:30:57 +01:00
Jannis R
f12937a21e
reverse caching: use subscribeToEvents
2017-01-09 19:09:22 +01:00
Jannis R
67c2981975
subscribeToEvent -> subscribeToEvents
2017-01-09 19:09:21 +01:00
Jannis R
cca7627fb8
reverse caching: PR grumbles
2017-01-09 17:49:06 +01:00
Jannis R
61a42cc7e4
reverse caching: pass API into middleware
2017-01-09 16:59:33 +01:00
Jannis R
8c2aa4d87c
address selector: unique registry results
2017-01-09 14:24:04 +01:00
Jannis R
f05ffd2e09
address selector: complete reverses by name as well
2017-01-09 14:13:11 +01:00
Jannis R
38734c92c2
address selector: lower case for reverse completion
2017-01-09 14:03:52 +01:00
Jannis R
92742e663a
merge master into jr-reverse-caching
2017-01-09 12:50:26 +01:00
Jaco Greeff
378739fae1
Use shallow-only rendering in all tests ( #4087 )
...
* Container/Title with shallow
* IdentityName with shallow
* IdentityIcon with shallow
* TypedInput to shallow
* DetailsStep to shallow
2017-01-09 12:40:29 +01:00
Nicolas Gotchac
e1847442cc
Fix balances update ( #4077 )
...
* Fix balances fetching
* Fix fetching balances while syncing
2017-01-09 11:15:00 +01:00
Nicolas Gotchac
40f0ee004f
Key derivation in Worker ( #4071 )
...
* Add Signer Key Derivation in Service Worker
* Several fixes throughout the UI
* Hint for external account // working Worker
* Add Worker state change
* PR Grumbles
2017-01-09 11:14:36 +01:00
Nicolas Gotchac
cf0a20f08b
Display contract block creation ( #4069 )
...
* Add contract block creation to metadata
* Display mined block for contract on Contracts view
* Better use of Summary for Accounts
* Add sorted by mined block for contracts
* Proper Block Number sort // display in contract page
* PR Grumble
* Linting issues
2017-01-09 09:38:27 +01:00
Jannis R
ba4263e33f
fix tests ✅
2017-01-06 18:55:18 +01:00
Nicolas Gotchac
761ed913a8
Passwords are valid by default ( #4075 )
...
* Passwords are valid by default #4059
* Actually fixing the issue
2017-01-06 17:56:57 +01:00
Nicolas Gotchac
30394bdb1c
Add Origin to events table ( #4073 )
2017-01-06 17:24:35 +01:00
Nicolas Gotchac
81641a5839
Fix tags after Account view ( #4070 )
2017-01-06 17:23:04 +01:00
Jannis R
c4f7b8fb96
merge master into jr-reverse-caching
2017-01-06 16:03:05 +01:00
Tomasz Drwięga
f6349187ef
Bringing back js-sha3
to fix in-browser signing ( #4063 )
...
* Bring back Uint8Array sha3 support
* Added SHA3 test with HEX encoding
* Rename hex2Ascii => hexToAscii
Add tests or the api/util/format functions
Use js-sha3 for sha3 with hex encoding support
* Adding Uint8Array test
* Fixing Transaction import
2017-01-06 15:36:24 +01:00
Jannis R
ad3b89dc14
Merge master into jr-reverse-caching
2017-01-06 13:35:50 +01:00
Nicolas Gotchac
9ab9ff2381
Fix wrong transaction input for contract deployments ( #4052 )
...
* Fix mutable options in Contract API
* Add Swarm hash and meta data from Solidity
* Updates tests for contract deployment
* Add test for deploy without constructor Params
2017-01-06 10:39:18 +01:00
Jannis Redmann
20c1d37b59
let users open urls from dapps view ( #4042 )
...
* browser: better url handling
* browser: pass url as param
* dapps: button to open browser
* dapps url button: remove url validation
* PR grumbles, better URL parsing
* code style ✨
* better URL parsing, react to changed URL fragment
2017-01-05 21:15:01 +01:00
Jannis R
2aa76e5acc
address selector: simple completion for reversed addresses
2017-01-05 18:21:15 +01:00
Jannis R
71e80f10d8
reverse caching: optimize timing
...
Users quickly want all reverses registered in the path,
but don't care so much about live data.
2017-01-05 17:27:25 +01:00
Jannis R
6f492a4945
address selector: use cached reverses
2017-01-05 17:19:26 +01:00
Jannis R
b38aa8d01f
reverse caching: middleware
2017-01-05 16:56:40 +01:00
Jannis R
ac2c678e69
reverse caching: redux boilerplate
2017-01-05 16:56:11 +01:00
Jaco Greeff
20ad2e7d42
Util/validation update ( #4051 )
...
* Fix code validation for null inputs
* tests WIP
* tests WIP
* Update validation tests
* Adjust block names, slice (PR comments)
2017-01-05 16:51:27 +01:00
Jaco Greeff
9613145464
Convert ShapeShift modal to store ( #4035 )
...
* WIP
* WIP store
* Store in-place
* WIP tests
* Store completed
* Expand option tests for events
* Fix & test for errors found in manual testing
* Add missing @observer (rookie mistake)
* Fix intl formatting error (completed step)
* Pass store to ErrorStep, test all stages for components
* Add warning messages (e.g. no price found)
* Fix typo
2017-01-05 16:51:16 +01:00
Jaco Greeff
1ef67f68ed
Starting on homestead shows reload snackbar ( #4043 )
...
* Fix issue where starting on homestead showed reload
* Align snackbar timing with errors (60s)
2017-01-05 12:07:10 +01:00
Nicolas Gotchac
d16ab5eac5
Show contract parameters in MethodDecoding ( #4024 )
...
* Add decoding of Inner Contract Deployment params #3715
* Fixed TypedInput when formatted value
* Fix TypedInput
* PR Grumble
* Add test to `Param.toParams`
2017-01-05 12:06:58 +01:00
Jaco Greeff
ddeb06d9cc
UI component updates ( #4010 )
...
* Update blockStatus & test results
* IdentityIcon rendering tests for #3950
* Update IdentityName with external messages
* Expand to cover basic layout sections
* ConfirmDialog rendering tests
* TxHash expansion & tests
* Cleanup ui/*.spec.js PropType warnings
* Use react-intl plural for confirmation/confirmations (verified manually)
2017-01-05 12:06:46 +01:00
Jaco Greeff
602a4429cc
Account view updates ( #4008 )
...
* Fix null account render issue, add tests
* Add tests for #3999 fix (merged in #4000 )
* Only include sinon-as-promised globally for mocha
* Move transactions state into tested store
* Add esjify for mocha + ejs (cherry-picked)
* Extract store state into store, test it
* Use address (as per PR comments)
* Fix failing test after master merge
2017-01-05 12:06:35 +01:00
Nicolas Gotchac
fbb52ac58b
Fix wallet in main net ( #4038 )
2017-01-04 16:25:39 +01:00
Jannis Redmann
839ee9afd7
address selector: support reverse lookup ( #4033 )
...
* address selector: simplify lookup
* address selector: support reverse lookup
2017-01-04 15:15:36 +01:00
Nicolas Gotchac
71e7a429d7
Only fetch App when necessary ( #4023 )
...
* Only fetch App when necessary. Show loadings + 404 #3914
* PR Grumble
2017-01-04 15:15:25 +01:00
Jaco Greeff
cc8e200ed5
Connection UI cleanups & tests for prior PR ( #4020 )
...
* Cleanups & tests for #3945
* Externalise icons as per PR comments
2017-01-04 15:15:11 +01:00
Jaco Greeff
7cdfaf1a43
Unsubscribe error on ShapeShift modal close ( #4005 )
...
* unsubscribe in onClose (state available)
* Revert "unsubscribe in onClose (state available)"
This reverts commit 1da0a7447563e3cb0d9149b0b9898ec93b483982.
* Fix shapeshift double unsubscribe
* Swap multiple list test addresses
2017-01-04 15:14:51 +01:00
Nicolas Gotchac
63017268ad
Add ownership checks the Registry dApp ( #4001 )
...
* Fixes to the Registry dApp
* WIP Add Owner Lookup
* Proper sha3 implementation
* Add working owner lookup to reg dApp
* Add errors to Name Reg
* Add records error in Reg dApp
* Add errors for reverse in reg dApp
* PR Grumbles
2017-01-04 15:14:37 +01:00
Jannis Redmann
565a1b510e
refresh balances of contacts & contracts when syncing ( #4022 )
2017-01-03 17:42:05 +01:00
Jannis Redmann
9de8ba0cf5
show message on new chain ( #4016 )
...
* clear account infos on new chain
* new chain: show only snackbar
* fix new chain popup 🐛
2017-01-03 17:41:55 +01:00
Nicolas Gotchac
e8ef7b357d
Use TypedInputs in Contracts view ( #4015 )
...
* Use TypedInput in Contracts
* Add right readOnly Bool TypedInput
* PR Grumbles
2017-01-03 17:41:46 +01:00
Nicolas Gotchac
0f41c5b847
Fix focus on Modal ( #4014 )
...
* Fix focus on Modal #3814
* PR Grumble
2017-01-03 17:41:31 +01:00
Jaco Greeff
04ed53e0f2
Fix newError noops when not bound to dispacher ( #4013 )
...
* AddContract properly binds newError
* EditMeta properly binds newError
* PasswordManager properly binds newError
* pass null instead of empty mapStateToProps
* Add openSnackbar test & binded prop
2017-01-03 17:41:21 +01:00
Nicolas Gotchac
0c6a9ebbb9
Work on Portal Style ( #4003 )
...
* Reduce Portal size and close on click outside
* PR Grumbles
2016-12-31 13:28:16 +00:00
Nicolas Gotchac
fd41a10319
Make Wallet first-class citizens ( #3990 )
...
* Fixed hint in Address Select + Wallet as first-class-citizen
* Separate Owned and not Owned Wallets
* Fix balance not updating
* Fix MethodDecoding for Contract Deployment
* Fix TypedInput params
* Fix Token Transfer for Wallet
* Small change to contracts
* Fix wallets shown twice
* Fix separation of accounts and wallets in Accounts
* Fix linting
* Execute contract methods from Wallet ✓
* Fixing linting
* Wallet as first-class citizen: Part 1 (Manual) #3784
* Lower level wallet transaction convertion
* Fix linting
* Proper autoFocus on right Signer input
* PR Grumble: don't show Wallets in dApps Permissions
* Add postTransaction and gasEstimate wrapper methods
* Extract Wallet postTx and gasEstimate to utils + PATCH api
* Remove invalid test
It's totally valid for input's length not to be a multiple of 32 bytes. EG. for Wallet Contracts
* Merge master
* Fix linting
* Fix merge issue
* Rename Portal
* Rename Protal => Portal (typo)
2016-12-30 11:28:12 +00:00
Jaco Greeff
37c607d7b0
Don't slice non-existent tags ( #4000 )
2016-12-29 20:01:36 +00:00
Nicolas Gotchac
75f2644e6a
Update dev dependencies and make Webpack less verbose ( #3997 )
...
* Update dev dependencies // Less verbose Webpack
* Fix linting fro JSX
2016-12-29 18:48:39 +00:00
Nicolas Gotchac
9814251a28
Add Email and Registry lookups to Address Selector ( #3992 )
...
* Move AccountSelect values to MobX store
* Mail registry + small fixes
* Add Registry to AddressSelect lookups + Nav fixes
* Fix linting
* PR Grumbles
* Fix tests and propTypes
2016-12-29 18:47:53 +00:00
Jaco Greeff
8677c3b91f
Cleanup AddContract with store ( #3981 )
...
* Splits (WIP)
* Expand getters & setters
* Initial abi type set
* Expand
* Don't rely on passed api
* Store tests in place
* Allow RadioButtons to accept MobX arrays
* Fixes for manual testing
2016-12-28 17:09:54 +00:00
Jaco Greeff
7e600b5a82
Store for EditPassword Modal ( #3979 )
...
* External store (WIP)
* address & meta
* Add editable (WIP)
* View converted (WIP)
* Single API stub creation
* Testing (WIP)
* Simplified meta assign
* Tests running
* Fix duplicate exports
* Fix tags not editable
2016-12-28 17:09:45 +00:00
Nicolas Gotchac
7581ac635f
Fetch certifiers only when needed ( #3978 )
...
* Fetch certifiers once + on new Logs
* Linting
* BadgeReg First Query
* Rightly fetching badges on page change
* PR Grumbles
* Only fetch certifiers onces
2016-12-27 15:23:58 +00:00