| Commit message (Expand) | Author | Age | Files | Lines |
* | Added support for breakpoints on specific instructions | obscuren | 2014-07-02 | 1 | -3/+13 |
* | Removed comment | obscuren | 2014-07-02 | 1 | -1/+0 |
* | Moved debug hook to Vm directly | obscuren | 2014-07-02 | 3 | -9/+11 |
* | Suicide is deferred to update | obscuren | 2014-07-02 | 1 | -6/+10 |
* | Updated to generic padding function | obscuren | 2014-07-02 | 1 | -4/+3 |
* | Removed old method | obscuren | 2014-07-02 | 3 | -43/+36 |
* | ethutil -> ethtrie.NewTrie | zelig | 2014-07-01 | 2 | -2/+3 |
* | merge upstream | zelig | 2014-07-01 | 10 | -101/+93 |
|\ |
|
| * | Merge branch 'develop' of github.com-obscure:ethereum/eth-go into develop | obscuren | 2014-07-01 | 2 | -1/+2 |
| |\ |
|
| | * | Update min GasLimit | Maran | 2014-07-01 | 2 | -1/+2 |
| * | | Up | obscuren | 2014-07-01 | 1 | -1/+1 |
| |/ |
|
| * | The dragon has been slain. Consensus reached! | obscuren | 2014-07-01 | 4 | -21/+45 |
| * | Paranoia | obscuren | 2014-07-01 | 1 | -1/+1 |
| * | Added Paranoia check for VM execution | obscuren | 2014-07-01 | 5 | -108/+26 |
| * | Merge branch 'develop' into interop | obscuren | 2014-06-30 | 4 | -5/+13 |
| |\ |
|
| * | | wip | obscuren | 2014-06-30 | 3 | -2/+51 |
* | | | change all modified calls to ethtrie, ethutil and ethcrypto functions | zelig | 2014-06-30 | 9 | -24/+36 |
* | | | refactor ethutil/trie to ethtrie | zelig | 2014-06-29 | 1 | -2/+3 |
| |/
|/| |
|
* | | transitional ethutil.ReadConfig fixes in ethchain tests (they still fail! FIX... | zelig | 2014-06-27 | 4 | -5/+13 |
|/ |
|
* | nil check | obscuren | 2014-06-27 | 1 | -1/+8 |
* | go fmt | zelig | 2014-06-27 | 5 | -6/+5 |
* | merge upstream; fix port in use warning; new logger API | zelig | 2014-06-26 | 3 | -24/+22 |
|\ |
|
| * | Logging, variable rearrangement | obscuren | 2014-06-26 | 2 | -22/+20 |
| * | Added instruction numbers | obscuren | 2014-06-26 | 1 | -2/+2 |
* | | merge upstream | zelig | 2014-06-25 | 2 | -5/+7 |
|\| |
|
| * | Logging order | obscuren | 2014-06-23 | 2 | -6/+8 |
* | | put back extra debug detail logging to the right places using logger.DebugDet... | zelig | 2014-06-25 | 1 | -1/+1 |
* | | Merge remote-tracking branch 'upstream/develop' into feature/logging | zelig | 2014-06-25 | 1 | -1/+3 |
|\| |
|
| * | Let the state create the object | obscuren | 2014-06-23 | 1 | -1/+3 |
* | | merge upstream | zelig | 2014-06-23 | 4 | -48/+60 |
|\| |
|
| * | Minor fixes to vm output | obscuren | 2014-06-23 | 1 | -8/+6 |
| * | Removed comments | obscuren | 2014-06-23 | 1 | -1/+1 |
| * | Make sure that public key always uses 64 bytes | obscuren | 2014-06-23 | 1 | -10/+10 |
| * | Clean up & refactored methods | obscuren | 2014-06-23 | 1 | -26/+27 |
| * | Append zero's in R & S | obscuren | 2014-06-21 | 1 | -3/+7 |
| * | Moved 0 check to state object for now | obscuren | 2014-06-21 | 2 | -12/+21 |
* | | modified logging API | zelig | 2014-06-23 | 8 | -51/+59 |
|/ |
|
* | CALLDATACOPY | obscuren | 2014-06-20 | 1 | -2/+21 |
* | Returned to single method | obscuren | 2014-06-20 | 1 | -29/+6 |
* | Removed some logging | obscuren | 2014-06-20 | 2 | -9/+10 |
* | Changed copy/set | obscuren | 2014-06-20 | 1 | -1/+22 |
* | Renamed snapshot to copy/set and added it back to the VM | obscuren | 2014-06-20 | 2 | -26/+28 |
* | Length check on get | obscuren | 2014-06-20 | 1 | -2/+8 |
* | Removed log | obscuren | 2014-06-19 | 1 | -2/+0 |
* | Fixed call | obscuren | 2014-06-19 | 1 | -35/+42 |
* | Method for checking contract addresses | obscuren | 2014-06-19 | 1 | -1/+5 |
* | Added missing types | obscuren | 2014-06-19 | 1 | -0/+1 |
* | Update after each transition instead of at the end. | obscuren | 2014-06-19 | 1 | -11/+22 |
* | Reset state when a transition fails | obscuren | 2014-06-19 | 2 | -46/+93 |
* | Logging | obscuren | 2014-06-18 | 1 | -3/+5 |
* | CALLDATALOAD return 32 byte at all times | obscuren | 2014-06-18 | 1 | -11/+31 |
* | log | obscuren | 2014-06-18 | 1 | -2/+9 |
* | Swapped vars | obscuren | 2014-06-18 | 1 | -17/+9 |
* | Fixed GT and LT | obscuren | 2014-06-18 | 3 | -13/+26 |
* | Verbose logging for VM | obscuren | 2014-06-18 | 2 | -5/+41 |
* | Fixed issue where JUMPI would do an equally check with 1 instead of GT | obscuren | 2014-06-18 | 4 | -26/+14 |
* | Removed deprecated states | obscuren | 2014-06-17 | 2 | -240/+2 |
* | Removal of manual updating of state objects | obscuren | 2014-06-17 | 5 | -39/+63 |
* | comment | obscuren | 2014-06-17 | 1 | -1/+1 |
* | Refund gas | obscuren | 2014-06-16 | 2 | -4/+22 |
* | Check for nil receiver | obscuren | 2014-06-16 | 1 | -2/+7 |
* | Fixed minor issue with the gas pool | obscuren | 2014-06-16 | 3 | -9/+11 |
* | Moved gas limit err check to buy gas | obscuren | 2014-06-16 | 4 | -40/+56 |
* | Removed old fees | obscuren | 2014-06-16 | 1 | -1/+1 |
* | Removed old fees | obscuren | 2014-06-16 | 1 | -24/+0 |
* | Removed some comments | obscuren | 2014-06-16 | 1 | -2/+1 |
* | Keeping old code for reference | obscuren | 2014-06-16 | 1 | -88/+89 |
* | Cache whole objects instead of states only | obscuren | 2014-06-16 | 2 | -2/+117 |
* | Run contracts | obscuren | 2014-06-15 | 1 | -0/+7 |
* | Set contract addr for new transactions | obscuren | 2014-06-15 | 1 | -1/+1 |
* | Moving closer to interop | obscuren | 2014-06-14 | 4 | -8/+14 |
* | Moving a head closer to interop | obscuren | 2014-06-13 | 4 | -36/+61 |
* | comments & refactor | obscuren | 2014-06-13 | 2 | -5/+19 |
* | Refactored state transitioning to its own model | obscuren | 2014-06-13 | 1 | -0/+206 |
* | Refactored state transitioning to its own model | obscuren | 2014-06-13 | 2 | -200/+13 |
* | Refactoring state transitioning | obscuren | 2014-06-13 | 10 | -191/+509 |
* | Changed opcode numbers and added missing opcodes | obscuren | 2014-06-12 | 4 | -19/+43 |
* | Merge branch 'develop' into interop | obscuren | 2014-06-12 | 1 | -0/+6 |
|\ |
|
| * | log changes | obscuren | 2014-06-12 | 1 | -0/+6 |
* | | Merge branch 'develop' into interop | obscuren | 2014-06-12 | 5 | -13/+76 |
|\| |
|
| * | Fix compare | Maran | 2014-06-11 | 1 | -1/+2 |
| * | Implemented counting of usedGas | Maran | 2014-06-11 | 1 | -0/+3 |
| * | Don't mine transactions if they would go over the GasLimit implements ethereu... | Maran | 2014-06-10 | 2 | -0/+35 |
| * | Refactor to use new method | Maran | 2014-06-10 | 1 | -13/+1 |
| * | Implement CalcGasPrice for ethereum/go-ethereum#77 | Maran | 2014-06-10 | 1 | -0/+29 |
| * | Validate minimum gasPrice and reject if not met | Maran | 2014-06-10 | 1 | -0/+7 |
* | | Minor changes | obscuren | 2014-06-12 | 1 | -2/+1 |
* | | Added a buy gas method | obscuren | 2014-06-12 | 1 | -3/+18 |
* | | Moved process transaction to state manager | obscuren | 2014-06-12 | 2 | -22/+100 |
|/ |
|
* | sha | obscuren | 2014-06-10 | 1 | -1/+1 |
* | Make contract creation error more explicit by mentioning the sneder | Maran | 2014-06-03 | 1 | -1/+1 |
* | Added faux latency for peeroverview | Maran | 2014-06-03 | 1 | -0/+1 |
* | Implemented Public Peer interface | Maran | 2014-06-02 | 1 | -0/+12 |
* | fixed test | obscuren | 2014-05-30 | 2 | -2/+1 |
* | Fixed state object gas return | obscuren | 2014-05-29 | 2 | -7/+13 |
* | Fixes #60 | obscuren | 2014-05-28 | 2 | -4/+7 |
* | Added StringToBytesFunc | obscuren | 2014-05-28 | 1 | -1/+1 |
* | Set initial used gas | obscuren | 2014-05-28 | 1 | -0/+1 |
* | Sort transactions based on the nonce | obscuren | 2014-05-28 | 1 | -16/+12 |
* | Closure call now returns the total usage as well | obscuren | 2014-05-28 | 4 | -104/+138 |
* | Changed opcode names | obscuren | 2014-05-28 | 2 | -172/+165 |
* | Hooks can now quit the vm | obscuren | 2014-05-27 | 2 | -2/+4 |
* | Changed debug hook and added state iterator | obscuren | 2014-05-27 | 3 | -2/+7 |
* | State snapshotting | obscuren | 2014-05-26 | 4 | -6/+65 |
* | The body of contracts are now returned instead | obscuren | 2014-05-25 | 3 | -58/+50 |
* | Updated to work with the new config | obscuren | 2014-05-25 | 2 | -4/+4 |
* | Canonical contract creation | obscuren | 2014-05-23 | 4 | -16/+25 |
* | Transaction querying | obscuren | 2014-05-22 | 2 | -3/+14 |
* | Working on interop | obscuren | 2014-05-22 | 8 | -77/+191 |
* | Removed old contract creation code | obscuren | 2014-05-22 | 1 | -26/+11 |
* | Removed some logging and refactored a bit | obscuren | 2014-05-21 | 1 | -1/+1 |
* | Improved miner so it won't include invalid transactions | obscuren | 2014-05-21 | 1 | -5/+7 |
* | Apply to parent | obscuren | 2014-05-21 | 1 | -3/+2 |
* | Proper log statement | obscuren | 2014-05-21 | 1 | -4/+3 |
* | Changed numbers | obscuren | 2014-05-21 | 1 | -6/+6 |
* | Fixed competing block method | obscuren | 2014-05-21 | 1 | -2/+13 |
* | Merge branch 'hotfix/4' into develop | obscuren | 2014-05-21 | 3 | -10/+7 |
|\ |
|
| * | Fixed state overwriting issue | obscuren | 2014-05-21 | 3 | -10/+7 |
* | | Fixed couple issues | obscuren | 2014-05-21 | 5 | -26/+62 |
|/ |
|
* | Fixed state issue | obscuren | 2014-05-21 | 1 | -3/+0 |
* | Fixed casting issue | obscuren | 2014-05-21 | 1 | -1/+9 |
* | Fixed crash | obscuren | 2014-05-21 | 1 | -1/+4 |
* | Merge branch 'develop' of github.com-obscure:ethereum/eth-go into develop | obscuren | 2014-05-20 | 1 | -2/+1 |
|\ |
|
| * | Fix notification when processing block that didn't have this client as origin | Maran | 2014-05-20 | 1 | -2/+1 |
* | | Changed transaction hash for poc 5 | obscuren | 2014-05-20 | 3 | -38/+57 |
* | | Fixed genesis and block data | obscuren | 2014-05-20 | 2 | -12/+74 |
|/ |
|
* | added roman | obscuren | 2014-05-20 | 1 | -0/+1 |
* | ... | obscuren | 2014-05-20 | 1 | -5/+0 |
* | Merge branch 'develop' of github.com-obscure:ethereum/eth-go into develop | obscuren | 2014-05-20 | 1 | -0/+5 |
|\ |
|
| * | Re-arranged transaction RLP encoding... | Nick Savers | 2014-05-20 | 1 | -7/+7 |
* | | Rearranged according to YP | obscuren | 2014-05-20 | 1 | -7/+5 |
|/ |
|
* | Merge branch 'develop' of github.com-obscure:ethereum/eth-go into develop | obscuren | 2014-05-20 | 1 | -1/+1 |
|\ |
|
| * | Refactored a lot of the chain catchup/reorg. | Maran | 2014-05-20 | 1 | -1/+1 |
* | | Added Maran to premine | obscuren | 2014-05-20 | 1 | -2/+1 |
* | | No longer store script directly in the state tree | obscuren | 2014-05-20 | 8 | -49/+59 |
|/ |
|
* | Increment nonce in the public api | obscuren | 2014-05-19 | 1 | -1/+0 |
* | Testing different mining state | obscuren | 2014-05-19 | 2 | -3/+3 |
* | Changed how changes are being applied to states | obscuren | 2014-05-17 | 5 | -66/+69 |
* | M | obscuren | 2014-05-15 | 2 | -3/+3 |
* | Removed old tx pool notification system. Fixes #19 | obscuren | 2014-05-15 | 2 | -17/+5 |
* | Remove any invalid transactions after block processing | obscuren | 2014-05-14 | 2 | -3/+16 |
* | Moved keyring to ethutil & removed old methods. Implements #20 | obscuren | 2014-05-14 | 1 | -87/+0 |
* | Do not queue messages if the peer isn't connected (e.g. timing out) | obscuren | 2014-05-14 | 1 | -1/+0 |
* | Propagate back to network | obscuren | 2014-05-13 | 1 | -0/+3 |
* | Implemented new JS/EthPub methods | Maran | 2014-05-13 | 1 | -0/+3 |
* | Fixed some tests | obscuren | 2014-05-10 | 1 | -66/+1 |
* | Moved seeding and moved manifest | obscuren | 2014-05-09 | 2 | -43/+37 |
* | Auto update state changes notifications | obscuren | 2014-05-09 | 5 | -51/+18 |
* | Cleaned up | obscuren | 2014-05-09 | 2 | -51/+11 |
* | Added trans state and removed watch address etc | obscuren | 2014-05-09 | 2 | -18/+9 |
* | Removed value from closure. | obscuren | 2014-05-08 | 4 | -15/+21 |
* | Fixed disasamble for all pushes | obscuren | 2014-05-08 | 1 | -3/+4 |
* | Merge branch 'develop' of github.com:ethereum/eth-go into develop | Maran | 2014-05-07 | 4 | -63/+133 |
|\ |
|
| * | Optimizations | obscuren | 2014-05-06 | 3 | -55/+125 |
| * | Changed to lower case | obscuren | 2014-05-05 | 1 | -8/+8 |
* | | Implemented value() | Maran | 2014-05-07 | 2 | -2/+5 |
|/ |
|
* | Added different storage notification object | obscuren | 2014-05-05 | 2 | -1/+7 |
* | Added receipts for tx creation | obscuren | 2014-05-02 | 1 | -0/+4 |
* | Added a KeyPairFromSec function which creates a new keypair based on the give... | obscuren | 2014-05-02 | 1 | -0/+10 |
* | Added suicide back in | obscuren | 2014-05-02 | 1 | -26/+18 |
* | Removed debug log | obscuren | 2014-05-02 | 2 | -9/+6 |
* | Removed debugging log | obscuren | 2014-04-30 | 1 | -8/+10 |
* | Removed debug logging | obscuren | 2014-04-30 | 3 | -9/+26 |
* | Added manifest changes and changed closures | obscuren | 2014-04-30 | 3 | -31/+58 |
* | Fixed state problem | obscuren | 2014-04-29 | 3 | -11/+10 |
* | Removed old code | obscuren | 2014-04-28 | 1 | -68/+0 |
* | Using mutan assembler stage | obscuren | 2014-04-28 | 1 | -20/+2 |
* | Upped version number | obscuren | 2014-04-27 | 5 | -10/+112 |
* | Actually convert gas | obscuren | 2014-04-26 | 1 | -5/+12 |
* | Notify of changes | obscuren | 2014-04-26 | 1 | -5/+4 |
* | Fixed tests | obscuren | 2014-04-26 | 1 | -3/+3 |
* | Added new state object change echanism | obscuren | 2014-04-26 | 3 | -43/+63 |
* | Removed debug & unused functions | obscuren | 2014-04-24 | 1 | -25/+0 |
* | Fixed Base problem and sload/sstore | obscuren | 2014-04-24 | 1 | -3/+4 |
* | Minor improvements and bug fixes | obscuren | 2014-04-24 | 4 | -8/+12 |
* | Call initial closure with proper tx argument | obscuren | 2014-04-23 | 3 | -33/+5 |
* | Copy over bytes from previous root | obscuren | 2014-04-23 | 1 | -1/+4 |
* | Fixed minor issue with gas and added state object init | obscuren | 2014-04-23 | 5 | -33/+68 |
* | Fixed gas, price & value setters on initialization | obscuren | 2014-04-23 | 1 | -1/+9 |
* | Updated VM | obscuren | 2014-04-20 | 4 | -36/+89 |
* | Added proper gas handling | obscuren | 2014-04-18 | 5 | -20/+26 |
* | comments | obscuren | 2014-04-16 | 1 | -0/+1 |
* | Merged accounts and contracts in to StateObject | obscuren | 2014-04-16 | 11 | -300/+219 |
* | Moved assembler stage processing to it's own file | obscuren | 2014-04-16 | 5 | -213/+430 |
* | Added pre processing of script data | obscuren | 2014-04-12 | 2 | -3/+4 |
* | Renamed | obscuren | 2014-04-12 | 6 | -37/+124 |
* | Added the possibility for debug hooks during closure call | obscuren | 2014-04-11 | 4 | -44/+11 |
* | Merge branch 'split' into develop | obscuren | 2014-04-11 | 8 | -136/+154 |
|\ |
|
| * | Added push20 | obscuren | 2014-04-11 | 2 | -14/+12 |
| * | Added better address format | obscuren | 2014-04-11 | 1 | -1/+1 |
| * | Added better address format | obscuren | 2014-04-11 | 3 | -3/+14 |
| * | Call fixed | obscuren | 2014-04-11 | 1 | -3/+1 |
| * | Call fixed | obscuren | 2014-04-11 | 4 | -14/+43 |
| * | Changed how txs define their data & added init field | obscuren | 2014-04-10 | 2 | -94/+25 |
| * | Split code for contracts | obscuren | 2014-04-10 | 5 | -20/+33 |
| * | Added new insruction methods | obscuren | 2014-04-09 | 3 | -1/+39 |
* | | Switched variable names | obscuren | 2014-04-09 | 1 | -5/+5 |
* | | Added a length for copy | obscuren | 2014-04-09 | 1 | -1/+1 |
* | | Merge branch 'miner' of github.com-obscure:ethereum/eth-go into miner | obscuren | 2014-04-09 | 1 | -0/+2 |
|\ \ |
|
| * | | Added todo | Maran | 2014-04-09 | 1 | -0/+2 |
* | | | Reverted changes | obscuren | 2014-04-09 | 2 | -7/+7 |
* | | | Typo fix | obscuren | 2014-04-09 | 1 | -1/+1 |
* | | | Merge branch 'develop' into miner | obscuren | 2014-04-05 | 3 | -15/+30 |
|\ \ \
| |/ /
|/| /
| |/ |
|
| * | Update | obscuren | 2014-04-05 | 1 | -5/+10 |
| * | Handle contract messages | obscuren | 2014-04-01 | 2 | -10/+20 |
* | | Small tweaks | Maran | 2014-04-01 | 1 | -3/+0 |
* | | Finalize blockchain reverting test | Maran | 2014-04-01 | 1 | -8/+14 |
* | | Merge conflicts | Maran | 2014-04-01 | 7 | -179/+199 |
|\| |
|
| * | Fixed some state issues | obscuren | 2014-03-31 | 4 | -6/+7 |
| * | Added storage test | obscuren | 2014-03-31 | 1 | -2/+10 |
| * | Fixed bug in stack to expand beyond expectations. Fixed EQ and NOT opcode | obscuren | 2014-03-31 | 3 | -23/+32 |
| * | Changed to new mutan API | obscuren | 2014-03-30 | 2 | -25/+28 |
| * | Added missing GetTx (0x16) wire message | obscuren | 2014-03-28 | 1 | -1/+7 |
| * | Update vm_test.go | Jeffrey Wilcke | 2014-03-28 | 1 | -1/+1 |
| * | Fixed tests | obscuren | 2014-03-28 | 1 | -8/+8 |
| * | Fixed IsContract method to use the contractCreation flag | obscuren | 2014-03-28 | 1 | -2/+1 |
| * | Removed debug and comments | obscuren | 2014-03-28 | 1 | -19/+0 |
| * | Updated transaction model | obscuren | 2014-03-28 | 1 | -30/+12 |
| * | Reworked transaction constructors | obscuren | 2014-03-27 | 3 | -14/+58 |
| * | Test fixes and removed old code. Added VM gas fees | obscuren | 2014-03-24 | 3 | -109/+94 |
* | | More blockchain testing | Maran | 2014-03-31 | 2 | -8/+40 |
* | | initial testcode for canonical chain | Maran | 2014-03-24 | 3 | -13/+117 |
* | | Remove some xtra logs | Maran | 2014-03-24 | 2 | -5/+2 |
* | | Merge branch 'master' into miner | Maran | 2014-03-24 | 11 | -443/+658 |
|\| |
|
| * | Removed old VM code | obscuren | 2014-03-22 | 2 | -369/+4 |
| * | Removed regular ints from the virtual machine and closures | obscuren | 2014-03-22 | 4 | -10/+33 |
| * | Changes 'compiler' to work with any type | obscuren | 2014-03-21 | 1 | -16/+14 |
| * | Closure return, arguments fixed. Added proper tests | obscuren | 2014-03-21 | 6 | -45/+79 |
| * | Implemented closure arguments | obscuren | 2014-03-21 | 3 | -21/+220 |
| * | New tx methods and added new vm to state manager | obscuren | 2014-03-21 | 2 | -15/+22 |
| * | Added address to account and contract | obscuren | 2014-03-21 | 5 | -26/+38 |
| * | Removed caller from tx and added "callership" to account. | obscuren | 2014-03-21 | 7 | -29/+31 |
| * | Rewrote opcodes again | obscuren | 2014-03-21 | 3 | -192/+155 |
| * | Fixed MSTORE and added some more commets | obscuren | 2014-03-21 | 4 | -18/+51 |
| * | Comply to Callee interface | obscuren | 2014-03-21 | 1 | -0/+9 |
| * | Moved code around | obscuren | 2014-03-21 | 1 | -11/+29 |
| * | Fixed issue with stack where it sliced of the wrong values | obscuren | 2014-03-21 | 1 | -5/+63 |
| * | Closures and vm based on closures | obscuren | 2014-03-21 | 3 | -5/+217 |
| * | Comply to Callee structure | obscuren | 2014-03-21 | 1 | -2/+7 |
| * | Commented out code due to rewrite vm | obscuren | 2014-03-21 | 1 | -1/+4 |
| * | Added AddFunds method | obscuren | 2014-03-21 | 1 | -1/+5 |
* | | FindCanonicalChain returns true or false when we are on the Canonical chain o... | Maran | 2014-03-24 | 1 | -1/+4 |
* | | Initial block reorganisation code | Maran | 2014-03-21 | 2 | -1/+100 |
* | | More mining rework | Maran | 2014-03-20 | 5 | -38/+21 |
* | | Merge branch 'develop' into miner | Maran | 2014-03-17 | 2 | -1/+5 |
|\| |
|
| * | Added a copy method to state | obscuren | 2014-03-17 | 1 | -0/+4 |
| * | Pretty print nonce | obscuren | 2014-03-17 | 1 | -1/+1 |
* | | Merge conflicts | Maran | 2014-03-17 | 2 | -26/+27 |
|\| |
|
| * | Moved on to the state manager | obscuren | 2014-03-17 | 2 | -26/+27 |
| * | Wip keychains | obscuren | 2014-03-07 | 1 | -0/+74 |