outlierventures / buycopoc Goto Github PK
View Code? Open in Web Editor NEWBuyCo.io Proof of Concept on an Ethereum blockchain
License: Apache License 2.0
BuyCo.io Proof of Concept on an Ethereum blockchain
License: Apache License 2.0
Configuration of @bartvanderwal:
POST /api/data/cache/update starts, but stalls with output like this:
Mon Feb 01 2016 17:31:30 GMT+0100 (W. Europe Standard Time) Got contract object at 0x7fa5cf6626047f083649eb67bb6f7972b990e6f3
Mon Feb 01 2016 17:31:30 GMT+0100 (W. Europe Standard Time) Got contract object at 0x99c0ef82fd557903e9535981abe8cf52c8ca69f6
Mon Feb 01 2016 17:31:30 GMT+0100 (W. Europe Standard Time) Got contract object at 0x33dedf368961d6a891406eae04a894859d7d66be
Mon Feb 01 2016 17:31:30 GMT+0100 (W. Europe Standard Time) Got contract object at 0xdd00e421c8f26bf3ec52925a3c447293e62b61ec
Mon Feb 01 2016 17:31:30 GMT+0100 (W. Europe Standard Time) Got contract object at 0x55e99087091033e32c96462f324f6f93944ba530
Mon Feb 01 2016 17:31:30 GMT+0100 (W. Europe Standard Time) Got contract object at 0xac078a50d22f48f93289aef4256ecfb71d8d759c
Mon Feb 01 2016 17:31:30 GMT+0100 (W. Europe Standard Time) Got contract object at 0x2b77bebbfc8d16c1fafb108ddb94971d15252376
Mon Feb 01 2016 17:31:30 GMT+0100 (W. Europe Standard Time) Got contract object at 0xd0177e53f868ba2afc216ae520968154c30678f9
Mon Feb 01 2016 17:31:30 GMT+0100 (W. Europe Standard Time) Got contract object at 0xda7915faa5ccd1fd0a17ba6b9ead04d74df6a037
Please add a favicon just like for the website.
Probably lost with introduction of filter
Filtering for max price works, but it only finds proposals with exactly that price. The parameters are passed to Mongo as {maxPrice: n} which makes it an "equals" filter. Should be "less or equal than" (see Mongoose shorthands for those kinds of queries).
Aron@SuryaNamaskar MINGW64 /p/BuyCo/BuyCo/docker (development)
$ bash ./build-blockchain.sh
Sending build context to Docker daemon 26.11 kB
Step 1 : FROM ubuntu:14.04
---> e9ae3c220b23
Step 2 : MAINTAINER Aron van Ammers
---> Using cache
---> f78695e1864b
Step 3 : RUN apt-get update
---> Using cache
---> 19e168643a5b
Step 4 : RUN apt-get install -y curl git build-essential python screen
---> Using cache
---> dc827b0c4c5b
Step 5 : RUN curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
---> Using cache
---> 77d86cfc6b10
Step 6 : RUN apt-get install -y nodejs
---> Using cache
---> ece5a49199b5
Step 7 : RUN npm install -g embark-framework grunt-cli bower tsd typescript
---> Using cache
---> fb95c899c71a
Step 8 : RUN curl https://install-geth.ethereum.org -L | sed 's/\twait_for_user/\techo "Skipping user confirmation"\n#wait_for_user/g' > installer_geth.sh && bash installer_geth.sh
---> Using cache
---> 40bd6641f4e0
Step 9 : RUN apt-get install -y solc
---> Using cache
---> d7a65fcf3db2
Step 10 : RUN mkdir /root/.ethash
---> Using cache
---> 9daf40f2b119
Step 11 : RUN geth makedag 0 /root/.ethash
---> Using cache
---> ed771f0bb6f6
Step 12 : COPY embark /embark
---> 3c1a99f860d8
Removing intermediate container 5ab77e502dff
Step 13 : WORKDIR /embark
---> Running in 6dcd44b71c2d
---> 285ade23f09b
Removing intermediate container 6dcd44b71c2d
Step 14 : RUN sh ./install.sh
---> Running in 974309c6a5ed
: not foundh: 2: ./install.sh:
: not foundh: 5: ./install.sh:
Usage: npm <command>
where <command> is one of:
access, add-user, adduser, apihelp, author, bin, bugs, c,
cache, completion, config, ddp, dedupe, deprecate, dist-tag,
dist-tags, docs, edit, explore, faq, find, find-dupes, get,
help, help-search, home, i, info, init, install, issues, la,
link, list, ll, ln, login, logout, ls, outdated, owner,
pack, ping, prefix, prune, publish, r, rb, rebuild, remove,
repo, restart, rm, root, run-script, s, se, search, set,
show, shrinkwrap, star, stars, start, stop, t, tag, team,
test, tst, un, uninstall, unlink, unpublish, unstar, up,
update, upgrade, v, verison, version, view, whoami
npm <cmd> -h quick help on <cmd>
npm -l display full usage info
npm faq commonly asked questions
npm help <term> search for help on <term>
npm help npm involved overview
Specify configs in the ini-formatted file:
/root/.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config
[email protected] /usr/lib/node_modules/npm
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended
to double check and reset permissions for sensitive files and directories.
The command '/bin/sh -c sh ./install.sh' returned a non-zero code: 1
Steps:
Expected result: buyer paid 0.50 pledge payment, 4.50 start payment, is refunded 0.50 at end payment for a total payment of 4 GBP. Seller receives start payment of 2.00 GBP and end payment of 2.00 GBP.
Result: buyer paid 0.50 pledge payment, 4.50 start payment. End payment is not refunded because there's no functionality for this. Seller receives start payment of 2.00 GBP, but no end payment, because this is dependent on the buyer payments being complete (and they're not because of no end payment refund).
Strategy to solve: the negative end payment is already computed correctly, but not handled. It should be handled in fulfilmentService
. Likely no further changes necessary.
Saw this on the console of the live dev version:
GET / 416 1.704 ms - 380
RangeNotSatisfiableError: Range Not Satisfiable
at SendStream.error (/app/node_modules/express/node_modules/send/index.js:245:31)
at SendStream.send (/app/node_modules/express/node_modules/send/index.js:564:19)
at /app/node_modules/express/node_modules/send/index.js:669:12
at FSReqWrap.oncomplete (fs.js:95:15)
See subject. Just noticed this.
On analysis you say the problem for postalCode is in storing, and the addressLine2 is iin retrieving, It's both to do with typo's in capitalization..
The development blockchain node at http://blockstars.io:9001 currently gives an error "Exceeds block gas limit" when the ProposalRegistry contract is deployed. This worked well before.
Hypothesis: the gas limit has decreased after a certain block number. Up to now 2500 blocks have been generated.
We use the Embark framework to start the blockchain. I have heard other people in the Embark community mention gas problems. That could be about this.
Steps:
Result: the popover stays visible
Mon Feb 01 2016 20:44:57 GMT+0000 (UTC) Got contract object at 0xdfc0a7de6896019d9158a958553df1db97fe01a0
/app/node_modules/web3/node_modules/bignumber.js/bignumber.js:1209
throw error;
^
BigNumber Error: new BigNumber() not a base 16 number:
at raise (/app/node_modules/web3/node_modules/bignumber.js/bignumber.js:1177:25)
at /app/node_modules/web3/node_modules/bignumber.js/bignumber.js:1165:33
at new BigNumber (/app/node_modules/web3/node_modules/bignumber.js/bignumber.js:212:28)
at formatOutputString [as _outputFormatter] (/app/node_modules/web3/lib/solidity/formatters.js:217:19)
at /app/node_modules/web3/lib/solidity/type.js:235:25
at SolidityType.decode (/app/node_modules/web3/lib/solidity/type.js:236:11)
at /app/node_modules/web3/lib/solidity/coder.js:217:29
at Array.map (native)
at SolidityCoder.decodeParams (/app/node_modules/web3/lib/solidity/coder.js:216:26)
at SolidityFunction.unpackOutput (/app/node_modules/web3/lib/web3/function.js:90:24)
at Object.callback (/app/node_modules/web3/lib/web3/function.js:118:30)
at /app/node_modules/web3/lib/web3/method.js:165:21
at /app/node_modules/web3/lib/web3/requestmanager.js:104:9
at request.onreadystatechange (/app/node_modules/web3/lib/web3/httpprovider.js:114:13)
at dispatchEvent (/app/node_modules/web3/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:591:25)
at setState (/app/node_modules/web3/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:610:14)
at IncomingMessage.<anonymous> (/app/node_modules/web3/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:447:13)
at IncomingMessage.emit (events.js:129:20)
at _stream_readable.js:908:16
at process._tickCallback (node.js:355:11)
When backing a proposal I get this:
There was an error processing your request.
Invalid JSON RPC response:
To be further analysed (with clean situation).
This message appears on every install run. Doesn't seem to have any consequences, but is confusing.
buyco_server_development
Running install...
-
> [email protected] install /app/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild) || (exit 0)
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack at failNoPython (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:116:14)
gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:49:11
gyp ERR! stack at F (/usr/lib/node_modules/npm/node_modules/which/which.js:78:16)
gyp ERR! stack at E (/usr/lib/node_modules/npm/node_modules/which/which.js:82:29)
gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/which/which.js:93:16
gyp ERR! stack at FSReqWrap.oncomplete (fs.js:95:15)
gyp ERR! System Linux 3.19.0-33-generic
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /app/node_modules/mongodb/node_modules/kerberos
gyp ERR! node -v v0.12.9
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
[email protected] node_modules/web3plus
Test discovery gives an output like this:
------ Discover test started ------
Processing: <lot of *.js** files>...
Test discovery error: [TypeError: Cannot read property 'replace' of undefined] in C:\Code\ov\BuyCo\test\sellers\testPersistance.js
Test discovery error: [TypeError: Cannot read property 'replace' of undefined] in C:\Code\ov\BuyCo\test\sellers\testUserPersistance.js
...<andsoon>
Processing finished for framework of Mocha
Discovered 0 testcases.
========== Discover test finished: 0 found (0:00:01.4378126) ==========
Tests are discovered and run fine on the command line with npm test
. There's no property "replace" in any of these test files. What's going on?
The function to ensure users have a minimum balance of "ether" is called twice. Once on loading accounts, once on saving them.
Cause: Because the load function also calls the save function and this happens before any transactions are completed, the second time that ensureMinBalance
is called it still sees a low balance, and sends another transaction.
When adding a proposal I get the error "Insufficient funds for gas * price + value".
The user has a single blockchain account 0x1d81e8e5d60a5a4d812a9d3a84f0eb1ff36a0ff1 which is used for this tx.
web3.eth.getBalance("0x1d81e8e5d60a5a4d812a9d3a84f0eb1ff36a0ff1").toNumber()
10476211699622871000
The gas limit of 2500000 * gas price is about 100 times less than that.
Working on #79. Did a fresh npm install
. grunt
build now gives the below. Maybe triggered by a higher typescript version after updating the references, it uses 1.8.2 now.
Aron@SuryaNamaskar MINGW64 /p/BuyCo/buyco (development)
$ grunt
Running "ts:build" (ts) task
Compiling...
Using tsc v1.8.2
client/js/proposals/proposalController.ts(384,37): error TS7027: Unreachable code detected.
>> 1 non-emit-preventing type warning
>> Error: tsc return code: 2
Warning: Task "ts:build" failed. Use --force to continue.
Aborted due to warnings.
Environment: local blockchain node and MongoDB.
On various occasions, when adding a backer to a proposal, the transaction was processed, but the new backer was not added to the collection of backers
of the proposal. So much so that the unit test for ProposalController to add a backing failed.
This seems like a "not enough gas" error, but no such error was thrown.
I'm trying to finish issue #8, but I cannot debug on my Mac anymore, and I can on my Dell, but there I now cannot run a POST request on https://selfsigned.blockstars.io:4124/api/data/cache/update anymore. I'm using Postman.
I also cannot manually add proposals. I get an error There was an error processing your request. {"name":"BigNumber Error"}
:
`
See #5@BW
This is a workaround that should only activate on Windows systems, and only on first run. However on dev blockchain node on latte.servers.blockstars.io it is shown systematically.
I0114 16:15:48.507345 51 ethash.go:220] Generating DAG for epoch 0 (size 1073739904) (0000000000000000000000000000000000000000000000000000000000000000)
I0114 16:15:49.906532 51 ethash.go:237] Done generating DAG for epoch 0, it took 1.399182354s
I0114 16:15:58.568435 51 worker.go:349] � Mined block (#2539 / 446491b3). Wait 5 blocks for confirmation
I0114 16:15:58.568653 51 worker.go:570] commit new work on block 2540 with 0 txs & 0 uncles. Took 192.99µs
I0114 16:15:58.568848 51 worker.go:570] commit new work on block 2540 with 0 txs & 0 uncles. Took 127.631µs
== No transactions left. Stopping miner...
I0115 02:15:48.506792 51 backend.go:591] checking DAG (ethash dir: /root/.ethash)
I0115 12:15:48.506882 51 backend.go:591] checking DAG (ethash dir: /root/.ethash)
I0115 22:15:48.506988 51 backend.go:591] checking DAG (ethash dir: /root/.ethash)
I0116 08:15:48.507087 51 backend.go:591] checking DAG (ethash dir: /root/.ethash)
I0116 18:15:48.507228 51 backend.go:591] checking DAG (ethash dir: /root/.ethash)
^CBlockchain dapp data dir not created. You are on Windows, right? Trying again...
>> Tasks directory "tasks" not found.
>> Local Npm module "grunt-cli" not found. Is it installed?
Running "blockchain:development" (blockchain) task
^CBlockchain nodes dir not created. You are on Windows, right? Trying again...
^CCommand finished. Press enter to continue. To inspect the container, try running docker exec -ti CONTAINER bash while it is still running and look around.
^C
I've seen various issues with contracts when the blockchain grows over a certain size. This issue is meant to bundle them.
On opening https://selfsigned.blockstars.io:4124/seller/signup I see the error below in the console. The form seems to work fine though. After Submit the message "You signed up as seller" appears fine (suggesting that the ovMessage seems to work).
Error: [$compile:nonassign] Expression 'undefined' used with directive 'ovMessage' is non-assignable!
http://errors.angularjs.org/1.4.9/$compile/nonassign?p0=undefined&p1=ovMessage
at angular.js:68
at parentSet (angular.js:9092)
at parentValueWatch (angular.js:9105)
at Object.regularInterceptedExpression (angular.js:14646)
at Scope.$digest (angular.js:16087)
at Scope.$apply (angular.js:16359)
at done (angular.js:10791)
at completeRequest (angular.js:10989)
at XMLHttpRequest.requestLoaded (angular.js:10930)
On my local blockchain node there's a proposal with address 0x84c3357ff8b7c205e7ac5393fcaba236ee323466
. Getting the backers of this proposal leads to the exception below.
The exception happens in the internals of web3.js, so not much we can do about it other than catch the error.
I don't know what could be the cause; not much string data is stored with the backer. Only further circumstance was that the transaction for this backing was created from the client side, not the server side.
P:\BuyCo\BuyCo\node_modules\utf8\utf8.js:131
throw Error('Invalid continuation byte');
^
Error: Invalid continuation byte
at Error (native)
at readContinuationByte (P:\BuyCo\BuyCo\node_modules\utf8\utf8.js:131:9)
at decodeSymbol (P:\BuyCo\BuyCo\node_modules\utf8\utf8.js:160:16)
at Object.utf8decode [as decode] (P:\BuyCo\BuyCo\node_modules\utf8\utf8.js:206:17)
at Object.toUtf8 (P:\BuyCo\BuyCo\node_modules\web3\lib\utils\utils.js:112:17)
at formatOutputString [as _outputFormatter] (P:\BuyCo\BuyCo\node_modules\web3\lib\solidity\formatters.js:218:18)
at P:\BuyCo\BuyCo\node_modules\web3\lib\solidity\type.js:235:25
at SolidityType.decode (P:\BuyCo\BuyCo\node_modules\web3\lib\solidity\type.js:236:11)
at P:\BuyCo\BuyCo\node_modules\web3\lib\solidity\coder.js:217:29
at Array.map (native)
at SolidityCoder.decodeParams (P:\BuyCo\BuyCo\node_modules\web3\lib\solidity\coder.js:216:26)
at SolidityFunction.unpackOutput (P:\BuyCo\BuyCo\node_modules\web3\lib\web3\function.js:90:24)
at Object.callback (P:\BuyCo\BuyCo\node_modules\web3\lib\web3\function.js:118:30)
at P:\BuyCo\BuyCo\node_modules\web3\lib\web3\method.js:165:21
at P:\BuyCo\BuyCo\node_modules\web3\lib\web3\requestmanager.js:104:9
at HttpProvider.sendAsync.request.onreadystatechange (P:\BuyCo\BuyCo\node_modules\web3\lib\web3\httpprovider.js:114:13)
at exports.XMLHttpRequest.dispatchEvent (P:\BuyCo\BuyCo\node_modules\xmlhttprequest\lib\XMLHttpRequest.js:591:25)
at exports.XMLHttpRequest.setState (P:\BuyCo\BuyCo\node_modules\xmlhttprequest\lib\XMLHttpRequest.js:610:14)
at IncomingMessage.<anonymous> (P:\BuyCo\BuyCo\node_modules\xmlhttprequest\lib\XMLHttpRequest.js:447:13)
at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:893:12)
With the current client/bower.json
a bower install
with an empty client/vendors
folder gives this output:
Aron@SuryaNamaskar MINGW64 /p/BuyCo/buyco/client (development)
$ bower install
bower angular#~1.4.8 cached git://github.com/angular/bower-angular.git#1.4.8
bower angular#~1.4.8 validate 1.4.8 against git://github.com/angular/bower-angular.git#~1.4.8
bower angular-route#~1.3.13 cached git://github.com/angular/bower-angular-route.git#1.3.20
bower angular-route#~1.3.13 validate 1.3.20 against git://github.com/angular/bower-angular-route.git#~1.3.13
bower angular-resource#~1.3.13 cached git://github.com/angular/bower-angular-resource.git#1.3.20
bower angular-resource#~1.3.13 validate 1.3.20 against git://github.com/angular/bower-angular-resource.git#~1.3.13
bower bootstrap#~3.3.0 cached git://github.com/twbs/bootstrap.git#3.3.6
bower bootstrap#~3.3.0 validate 3.3.6 against git://github.com/twbs/bootstrap.git#~3.3.0
bower jquery#~2.0.2 cached git://github.com/jquery/jquery-dist.git#2.0.3
bower jquery#~2.0.2 validate 2.0.3 against git://github.com/jquery/jquery-dist.git#~2.0.2
bower angular-messages#~1.4.8 cached git://github.com/angular/bower-angular-messages.git#1.4.8
bower angular-messages#~1.4.8 validate 1.4.8 against git://github.com/angular/bower-angular-messages.git#~1.4.8
bower angular-sanitize#~1.3.13 cached git://github.com/angular/bower-angular-sanitize.git#1.3.20
bower angular-sanitize#~1.3.13 validate 1.3.20 against git://github.com/angular/bower-angular-sanitize.git#~1.3.13
bower angular-strap#~2.3.7 cached git://github.com/mgcrea/angular-strap.git#2.3.7
bower angular-strap#~2.3.7 validate 2.3.7 against git://github.com/mgcrea/angular-strap.git#~2.3.7
bower async#~0.9.2 cached git://github.com/caolan/async.git#0.9.2
bower async#~0.9.2 validate 0.9.2 against git://github.com/caolan/async.git#~0.9.2
bower font-awesome#~4.4.0 cached git://github.com/FortAwesome/Font-Awesome.git#4.4.0
bower font-awesome#~4.4.0 validate 4.4.0 against git://github.com/FortAwesome/Font-Awesome.git#~4.4.0
bower angular-mocks#~1.4.8 cached git://github.com/angular/bower-angular-mocks.git#1.4.8
bower angular-mocks#~1.4.8 validate 1.4.8 against git://github.com/angular/bower-angular-mocks.git#~1.4.8
bower bignumber.js#~2.0.3 cached git://github.com/MikeMcl/bignumber.js.git#2.0.8
bower bignumber.js#~2.0.3 validate 2.0.8 against git://github.com/MikeMcl/bignumber.js.git#~2.0.3
bower lodash#~3.10.1 cached git://github.com/lodash/lodash.git#3.10.1
bower lodash#~3.10.1 validate 3.10.1 against git://github.com/lodash/lodash.git#~3.10.1
bower underscore#~1.8.3 cached git://github.com/jashkenas/underscore.git#1.8.3
bower underscore#~1.8.3 validate 1.8.3 against git://github.com/jashkenas/underscore.git#~1.8.3
bower angular#1.3.20 cached git://github.com/angular/bower-angular.git#1.3.20
bower angular#1.3.20 validate 1.3.20 against git://github.com/angular/bower-angular.git#1.3.20
bower ECONFLICT Unable to find suitable version for angular
Currently the proof of concept on the public URL https://blockstars.io:4124 is down. Connections will time out.
Cause: the domain blockstars.io has been migrated to a new server. The Docker images for the poc have not been migrated yet.
Steps:
Expected result: pledge payment of 0.5 GBP taken. On process payment, refund of 0.5 GBP paid because no deal.
Result: the 0.5 GBP will be in escrow forever. The payout functionality is dependent on the start payment being paid, and there's no current handling of a refund.
Strategy to solve: drop requirement of start payment > 0 to execute a refund; implement refund.
In the contract, for each consecutive payment there's a check for the previous one. For the end payment of a backer it looks like this:
else if (paymentType == 3) {
// End payment
// Validate that start payment was registered
if(b.startPaymentAmount == 0) return;
// Can only register once
if(b.endPaymentAmount != 0) return;
// Validate correct amount
if(amount != getEndPaymentAmount(backerIndex))
return;
b.endPaymentTransactionID = transactionID;
b.endPaymentAmount = amount;
}
We could add an explicit case for "has accepted offer" && "is closed" in which case an end payment should always be executed. In that case a refund. Also, implement a test to handle this case.
Aron@SuryaNamaskar MINGW64 /p/BuyCo/buyco (development)
$ npm install
npm WARN install Couldn't install optional dependency: Unsupported
npm WARN install Couldn't install optional dependency: Unsupported
npm WARN Invalid version: "0.2-alpha"
npm WARN EPEERINVALID [email protected] requires a peer of kerberos@~0.0 but none was installed.
npm WARN EPACKAGEJSON buyco No description
npm WARN EPACKAGEJSON buyco No repository field.
npm WARN EPACKAGEJSON buyco No README data
npm WARN EPACKAGEJSON buyco No license field.
The default configuration config.default.json
is currently not working, because it refers to the domain name blockstars.io
, which has migrated to another server. TODO: fix that, and ensure default config works.
Transaction ID's for the payments of backers are registered in the Proposal
contract. Currently we assume 3 types:
When registering a payment of type 1, the values for StartPayment are set, however those for the Pledge payment should be set.
See #4. This likely happens after a certain unknown number of blocks. Solution is likely somewhere in the blockchain (genesis) config. See also Embark gitter channel.
There is a typo in the link in the Mailchimp confirmation screen to get Proof of concept white paper. - [ ] - [ ] 1. The link is now:
http://buyco.io/proofofconcept/
But should be (with dashes, e.g. SEO optimized ;):
http://buyco.io/proof-of-concept/
In the seller signup form for when a user is already signed up as a selelr I made a readonly mode for better usability (with an Edit
button to switch back to existing form).
It was drowned because of low prio with the switch to use separate branches instead of repos in GIT. But I'll add it since I already made it and it prevents unwanted edits (or rather the ambiguity of 'have I changed anything?').
Not reproducible, logging issue for later analysis. I've had a situation where ethereumjs-accounts couldn't unlock one of my blockchain accounts. It logged an error about a variable named "s" being 31 bytes, while it should be 32. In my case it caused transactions not to work anymore.
Similarly, the Offer page should be styled. Can stay very plain. Latest version has a button to see it (another thing that should have been merged yesterday).
Since styling the page I've added several buttons. There's a section for sellers and a section for buyers. Both should be visible. It looks decent, but not as nice as the way you delivered it @zinchenko :). So maybe you can improve the layout a bit from this situation.
I just installed angular-timer
, which requires momentjs
. We already had moment
which is required by angular-moment
. moment
and momentjs
seem to be 2 instances of the same thing.
The tests for contracts run very slowly, which is a known issue. However when I ran them today using blockstars.io:9001 as the blockchain node, there were long periods when there were no pending transactions but the test still didn't progress.
See below. On the left the tests running from the command line, on the right the output of the blockchain node. Transactions are usually mined very fast, in about 1 second. Most of the time the miner is idle, signified by == No transactions left. Stopping miner...
. However the app waits in situations like depicted on the left for long times (60+ seconds).
[12:39:15] Alexander Zinchenko: it is possible to make the currently active menu to have an «.active» class?
[12:39:27 | Alexander Zinchenko: I haven’t used standard angular router before
[12:39:53] Alexander Zinchenko: I know how to do in with ui-router though
CC @zinchenko
On the development version the app crashed. This is the latest output:
'cf-ray': '2692354c8d7f2756-FRA' }
REQUEST end event https://api.uphold.com/v0/me
REQUEST has body https://api.uphold.com/v0/me 25
REQUEST emitting complete https://api.uphold.com/v0/me
Error getting user data: null
Sat, 23 Jan 2016 08:42:57 GMT express deprecated res.json(status, obj): Use res.status(status).json(obj) instead at controllers/oauthController.js:63:29
POST /api/auth/uphold/callback 500 1016.629 ms - 84
_http_outgoing.js:335
throw new Error('Can\'t set headers after they are sent.');
^
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:335:11)
at ServerResponse.header (/app/node_modules/express/lib/response.js:718:10)
at ServerResponse.send (/app/node_modules/express/lib/response.js:163:12)
at ServerResponse.json (/app/node_modules/express/lib/response.js:249:15)
at /app/controllers/oauthController.js:99:41
at Query.callback (/app/node_modules/mongoose/lib/query.js:2022:7)
at /app/node_modules/mongoose/node_modules/kareem/index.js:177:19
at /app/node_modules/mongoose/node_modules/kareem/index.js:109:16
at process._tickCallback (node.js:355:11)
[nodemon] app crashed - waiting for file changes before starting...
On the console:
GET /vendors/bootstrap/dist/css/bootstrap.css 304 0.347 ms - -
GET /vendors/font-awesome/css/font-awesome.min.css 304 0.461 ms - -
GET /dist/app.css 304 0.115 ms - -
GET /js/sellers/sellerResourceMock.js.map 200 0.473 ms - 1715
GET /vendors/bootstrap/dist/css/bootstrap.css.map 200 0.329 ms - 389227
POST /api/proposal - - ms - -
Waiting til transaction 0xe948ef8cd19d25ccfb980fc41563cb54abc6a4d0f55dd11c84745166a13109bb has been committed.
The region list for United Kingdom contains many irrelevant items. For example "England and Wales" and even "United Kingdom" definitely shouldn't be there. It also contains cities like "Liverpool" and "Manchester". The list seems to contain several sublists which are ordered alphabetically (i.e. the list as a whole is A-Z A-Z A-Z, not A-Z).
The last list from "Buckinghamshire" to "York" seems the most sensible.
What is the source of the lists anyway?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.