interledger-deprecated / ilp-kit Goto Github PK
View Code? Open in Web Editor NEWEverything needed to create a ledger and connect it to the Interledger
Home Page: https://interledgerjs.github.io/ilp-kit/apidoc/
Everything needed to create a ledger and connect it to the Interledger
Home Page: https://interledgerjs.github.io/ilp-kit/apidoc/
Good morning.
I tried to install five-bells-wallet on Ubuntu 16.04, but it won't.
npm ERR! git clone --template=/home/m***_/.npm/_git-remotes/templates --mirror [email protected]:interledger/js-ilp-plugin-bells-admin.git /home/m**__/.npm/git-remotes/git-github-com-interledger-js-ilp-plugin-bells-admin-git-e12e5d63: 간략한 저장소로('/home/m**/.npm/_git-remotes/git-github-com-interledger-js-ilp-plugin-bells-admin-git-e12e5d63') 복제합니다...
npm ERR! git clone --template=/home/m**/.npm/git-remotes/templates --mirror [email protected]:interledger/js-ilp-plugin-bells-admin.git /home/m**/.npm/_git-remotes/git-github-com-interledger-js-ilp-plugin-bells-admin-git-e12e5d63: ERROR: Repository not found.
npm ERR! git clone --template=/home/m**/.npm/git-remotes/templates --mirror [email protected]:interledger/js-ilp-plugin-bells-admin.git /home/m**/.npm/_git-remotes/git-github-com-interledger-js-ilp-plugin-bells-admin-git-e12e5d63: fatal: Could not read from remote repository.
npm ERR! git clone --template=/home/m**/.npm/git-remotes/templates --mirror [email protected]:interledger/js-ilp-plugin-bells-admin.git /home/m**/.npm/_git-remotes/git-github-com-interledger-js-ilp-plugin-bells-admin-git-e12e5d63:
npm ERR! git clone --template=/home/m**/.npm/git-remotes/templates --mirror [email protected]:interledger/js-ilp-plugin-bells-admin.git /home/m**/.npm/_git-remotes/git-github-com-interledger-js-ilp-plugin-bells-admin-git-e12e5d63: Please make sure you have the correct access rights
npm ERR! git clone --template=/home/m**/.npm/git-remotes/templates --mirror [email protected]:interledger/js-ilp-plugin-bells-admin.git /home/m**/.npm/_git-remotes/git-github-com-interledger-js-ilp-plugin-bells-admin-git-e12e5d63: and the repository exists.
npm ERR! Linux 4.4.0-38-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v4.2.6
npm ERR! npm v3.5.2
npm ERR! code 128
npm ERR! Command failed: git clone --template=/home/m**/.npm/git-remotes/templates --mirror [email protected]:interledger/js-ilp-plugin-bells-admin.git /home/m**/.npm/git-remotes/git-github-com-interledger-js-ilp-plugin-bells-admin-git-e12e5d63
npm ERR! 간략한 저장소로('/home/m***/.npm/_git-remotes/git-github-com-interledger-js-ilp-plugin-bells-admin-git-e12e5d63') 복제합니다...
npm ERR! ERROR: Repository not found.
npm ERR! fatal: Could not read from remote repository.
npm ERR!
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
npm ERR!
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! https://github.com/npm/npm/issues
Please check that js-ilp-plugin-bells-admin exists.
Many thanks,
misnuge
(If possible) The wallet API should allow you to give the source and destination accounts either in the wallet/OWPS format ([email protected]
) or the ledger URI format (https://ledger.example/accounts/user
for now, though this will be changed when the new routing architecture is finished)
When making two outbound transfers, they get grouped into one despite having different messages. Reloading fixes the issue.
Right now we use two databases: wallet
and wallet-ledger
Under the homepage sending money should be similar to:
Sending Receiving (after fees)
[ x ] [ x - fee ]
Otherwise as is, it appears as if to send a round trip zero sum transaction.
If you send a payment from the account first-last
the wallet UI will show it as a payment from first
This is not listed in the README or in the README of five-bells-ledger
The result is a very obscure error when npm install
tries to install libpq
because of:
/bin/sh: pg_config: command not found
Requested by @emschwartz
[4] 2016-11-02T00:16:15.913Z sequelize DEBUG Executing (default): SELECT "id", "username", "account", "name", "email", "email_verified", "github_id", "profile_picture", "created_at", "updated_at" FROM "Users" AS "User" WHERE "User"."username" = 'mspark' LIMIT 1;
[1] [2016-11-02T00:16:15.927Z] INFO: ledger/21225 on interledger: <-- GET /accounts/mspark (req_id=c50c9a67-48b6-4d14-badb-a3007b3462d3, module=app, query={})
[1] [2016-11-02T00:16:15.944Z] INFO: ledger/21225 on interledger: --> GET /accounts/mspark 200 17ms (req_id=c50c9a67-48b6-4d14-badb-a3007b3462d3, module=app, duration=17, status=200)
[4] normal account
[1] [2016-11-02T00:16:15.960Z] INFO: ledger/21225 on interledger: <-- GET /accounts/mslee (req_id=c4b642de-d199-4f26-88ae-a8719e95cf5b, module=app, query={})
[1] [2016-11-02T00:16:15.965Z] INFO: ledger/21225 on interledger: --> GET /accounts/mslee 200 5ms (req_id=c4b642de-d199-4f26-88ae-a8719e95cf5b, module=app, duration=5, status=200)
[4] 2016-11-02T00:16:15.982Z http INFO <-- GET /receivers/mslee
[4] 2016-11-02T00:16:15.986Z sequelize DEBUG Executing (default): SELECT "id", "username", "account", "name", "email", "email_verified", "github_id", "profile_picture", "created_at", "updated_at" FROM "Users" AS "User" WHERE "User"."username" = 'mslee' LIMIT 1;
[4] 2016-11-02T00:16:15.995Z http INFO --> GET /receivers/mslee 200 13ms -
[4] 2016-11-02T00:16:15.997Z http INFO --> GET /parse/destination?destination=mslee 200 97ms -
[4] 2016-11-02T00:16:23.416Z http INFO <-- POST /payments/quote
[4] 2016-11-02T00:16:23.421Z sequelize DEBUG Executing (default): SELECT "id", "username", "account", "name", "email", "email_verified", "github_id", "profile_picture", "created_at", "updated_at" FROM "Users" AS "User" WHERE "User"."username" = 'mspark' LIMIT 1;
[1] [2016-11-02T00:16:23.442Z] INFO: ledger/21225 on interledger: <-- GET /accounts/mspark (req_id=cad9fb68-5776-4282-b7b9-8c179ce61c1f, module=app, query={})
[1] [2016-11-02T00:16:23.451Z] INFO: ledger/21225 on interledger: --> GET /accounts/mspark 200 9ms (req_id=cad9fb68-5776-4282-b7b9-8c179ce61c1f, module=app, duration=9, status=200)
[4] normal account
[1] [2016-11-02T00:16:23.463Z] INFO: ledger/21225 on interledger: <-- GET /accounts/mslee (req_id=ae5bd936-057d-48a4-91ed-d06d682cdb3f, module=app, query={})
[1] [2016-11-02T00:16:23.466Z] INFO: ledger/21225 on interledger: --> GET /accounts/mslee 200 3ms (req_id=ae5bd936-057d-48a4-91ed-d06d682cdb3f, module=app, duration=3, status=200)
[4] 2016-11-02T00:16:23.474Z http INFO <-- GET /receivers/mslee
[4] 2016-11-02T00:16:23.476Z sequelize DEBUG Executing (default): SELECT "id", "username", "account", "name", "email", "email_verified", "github_id", "profile_picture", "created_at", "updated_at" FROM "Users" AS "User" WHERE "User"."username" = 'mslee' LIMIT 1;
[4] 2016-11-02T00:16:23.484Z http INFO --> GET /receivers/mslee 200 10ms -
[4] Wed, 02 Nov 2016 00:16:23 GMT ilp-kit:spsp created a sender object
[4] Wed, 02 Nov 2016 00:16:23 GMT ilp-plugin-bells-admin:plugin connecting to account https://./ledger/accounts/mspark
[1] [2016-11-02T00:16:23.503Z] INFO: ledger/21225 on interledger: <-- GET /accounts/mspark (req_id=c2f29cbc-c16a-488f-ad12-d89b5f0c6cee, module=app, query={})
[1] [2016-11-02T00:16:23.509Z] INFO: ledger/21225 on interledger: --> GET /accounts/mspark 200 6ms (req_id=c2f29cbc-c16a-488f-ad12-d89b5f0c6cee, module=app, duration=6, status=200)
[4] Wed, 02 Nov 2016 00:16:23 GMT ilp-plugin-bells-admin:plugin request ledger metadata http://.:3000
[1] [2016-11-02T00:16:23.515Z] INFO: ledger/21225 on interledger: <-- GET / (req_id=0cb9b8d8-8daf-4e97-b5fa-3835354ec1bd, module=app, query={})
[1] [2016-11-02T00:16:23.518Z] INFO: ledger/21225 on interledger: --> GET / 200 3ms (req_id=0cb9b8d8-8daf-4e97-b5fa-3835354ec1bd, module=app, duration=3, status=200)
[4] Wed, 02 Nov 2016 00:16:23 GMT ilp-plugin-bells-admin:plugin subscribing to wss://./ledger/accounts//transfers
[4] Wed, 02 Nov 2016 00:16:23 GMT ilp-plugin-bells-admin:plugin 'websocket: connected'
[4] Wed, 02 Nov 2016 00:16:23 GMT ilp:sender got source amount quote response { sourceAmount: '1', destinationAmount: '1' }
[4] 2016-11-02T00:16:23.524Z http INFO --> POST /payments/quote 200 109ms -
[1] [2016-11-02T00:16:23.528Z] INFO: ledger/21225 on interledger: <-- GET /accounts//transfers (req_id=5e912344-a377-4ff3-aac0-9b0b60c198b6, module=app, query={})
[1] [2016-11-02T00:16:23.535Z] WARN: ledger/21225 on interledger: --> GET /accounts//transfers 404 7ms (req_id=5e912344-a377-4ff3-aac0-9b0b60c198b6, module=app, duration=7, status=404)
[4] Wed, 02 Nov 2016 00:16:23 GMT ilp-plugin-bells-admin:plugin 'websocket: error' [Error: unexpected server response (404)]
[4] Wed, 02 Nov 2016 00:16:23 GMT ilp-plugin-bells-admin:plugin ws error on wss://./ledger/accounts//transfers: Error: unexpected server response (404)
[4] Wed, 02 Nov 2016 00:16:23 GMT ilp-plugin-bells-admin:plugin 'websocket: disconnected'
[1] [2016-11-02T00:16:23.645Z] INFO: ledger/21225 on interledger: <-- GET /accounts//transfers (req_id=4e845565-daeb-4f5c-ae42-6550820c4459, module=app, query={})
[1] [2016-11-02T00:16:23.646Z] WARN: ledger/21225 on interledger: --> GET /accounts/*/transfers 404 1ms (req_id=4e845565-daeb-4f5c-ae42-6550820c4459, module=app, duration=1, status=404)
[4] [piping] can't execute file: /home/mspark/ilp-kit/bin/api.js
[4] [piping] error given was: Error: unexpected server response (404)
[4] at ClientRequest.response (/home/mspark/ilp-kit/node_modules/ws/lib/WebSocket.js:719:15)
[4] at ClientRequest.g (events.js:260:16)
[4] at emitOne (events.js:77:13)
[4] at ClientRequest.emit (events.js:169:7)
[4] at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:414:21)
[4] at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)
[4] at TLSSocket.socketOnData (_http_client.js:304:20)
[4] at emitOne (events.js:77:13)
[4] at TLSSocket.emit (events.js:169:7)
[4] at readableAddChunk (_stream_readable.js:146:16)
[4] at TLSSocket.Readable.push (_stream_readable.js:110:10)
[4] at TLSWrap.onread (net.js:523:20)
I am testing ilp-kit on Ubuntu 16.04. I think I have set all the environments variables and apache2 proxy configuration correctly on separate two machines as the README.MD says. The two machines cooperates well except the error above.
Many thanks,
misnuge
When users receive money from me, my avatar is not visible to them. The URL it is trying to access is:
https://[domain]/upload_6248c52f66bc12db22c808ec99e65fe6.jpg
There is no point to set the wallet as your default when you're not logged in. The call to action on the front page should be to register.
The set to default feature should be on the front page when you're logged in.
Can we use a single database or create the database automatically?
We need some way to see the actual payment after it went through. Some button that you can click in the account history that shows you the JSON for the payment would be sufficient for now.
When trying to npm start
with no configuration, ilp-kit should point you to ilp-kit-cli, something like:
$ npm start
...
Error: API_DB_URI is not set. Did you configure ilp-kit?
To configure ilp-kit, run:
npm run configure
The wallet should filter out duplicate notifications on the server side (to take care of duplicates sent by the ledger)
It's becoming clear that a lot of the time developers will want to run five-bells-wallet themselves (instead of just using the public instances or running a naked five-bells-ledger.)
In order to make that as easy as possible we should make it so that if you don't provide config options that point to an external five-bells-ledger instance (i.e. no API_LEDGER_URI
), five-bells-wallet should run five-bells-ledger internally automatically.
It's currently limited to the same ledger.
Implement OAuth for 3rd party apps and services
The admin should be able to generate invite codes to let a user sign up. These should be one-time-use and there should be a field to enter your invite code on the registration page. Related: #40
Right now the admin account is created on the ledger, but cannot be reached by logging in with the UI
Currently, it's not clear how to set up five-bells-wallet just from looking at the README. Here is the feedback we got from some developers trying to do it during the hackathon:
The connector launch commands are broken, because they contain an extra apostrophe '
at the end.
https://github.com/interledgerjs/ilp-kit/blob/0f69baffc550a965b1fc2b02b53aedca843a792e/package.json#L65
https://github.com/interledgerjs/ilp-kit/blob/0f69baffc550a965b1fc2b02b53aedca843a792e/package.json#L92
We're planning to remove the ability to set balances through PUT /accounts/bob
because it's poor accounting practice to create money out of thin air.
Implement payment history
I would like to be able to set a destinationMemo
and sourceMemo
on the payments.
To prevent conflicts with the memo keys used by OWPS, maybe it should put the whole user-defined memo in some nested object like userMemo
.
when running npm configure:
_./node_modules/ilp-kit-cli/bin/configure.js -o env.list
module.js:327
throw err;
^
Error: Cannot find module 'chalk'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module.load (module.js:276:25)
at Module.require (module.js:353:17)
On a fresh install running npm run configure
doesn't work because of the rename of ilp-connector-cli
to ilp-kit-cli
As a receiver, I'd like to be able to add a note on a payment to remind myself what it was for.
Even when LEDGER_ADMIN_NAME
is set to something else, the admin user is named admin
There should be a setting which prevents users from creating accounts by default. They would instead be able to register if the admin user generates an invite code. Related: #41
After using the initial config options in the readme i've got a wallet up and running, am having trouble registering a user, whether using the five bells wallet client or creating my own client using the API. I am running into the following error, whilst registering a user. I've tried to use my own ledger as well as the red.ilpdemo hosted ledger but I get the same error making me think its something else, haven't been able to workout what it is, any help appreciated.
users.js:113 TypeError: Cannot read property 'body' of undefined [3] at Ledger.putAccount (/home/amohame9/five-bells-wallet/api/src/lib/ledger.js:251:20) [3] at throw (native) [3] at onRejected (/home/amohame9/five-bells-wallet/node_modules/koa.io/node_modules/co/index.js:77:24) [3] at process._tickCallback (internal/process/next_tick.js:103:7) [3] 2016-08-16T07:50:37.122Z error-handler ERROR TypeError: Cannot read property 'id' of undefined [3] at Object.postResource (/home/amohame9/five-bells-wallet/api/src/controllers/users.js:138:35) [3] at throw (native) [3] at onRejected (/home/amohame9/five-bells-wallet/node_modules/koa.io/node_modules/co/index.js:77:24) [3] at process._tickCallback (internal/process/next_tick.js:103:7) [3] 2016-08-16T07:50:37.123Z error-handler ERROR TypeError: Cannot read property 'id' of undefined [3] at Object.postResource (/home/amohame9/five-bells-wallet/api/src/controllers/users.js:138:35) [3] at throw (native) [3] at onRejected (/home/amohame9/five-bells-wallet/node_modules/koa.io/node_modules/co/index.js:77:24) [3] at process._tickCallback (internal/process/next_tick.js:103:7) [3] 2016-08-16T07:50:37.123Z http INFO xxx POST /users/alice 500 1,223ms - [3] [3] InternalServerError: TypeError: Cannot read property 'id' of undefined [3] at Object.module.exports.throw (/home/amohame9/five-bells-wallet/node_modules/koa.io/node_modules/koa/lib/context.js:90:23) [3] at Object.handleError (/home/amohame9/five-bells-wallet/node_modules/five-bells-shared/middlewares/error-handler.js:18:19) [3] at throw (native) [3] at onRejected (/home/amohame9/five-bells-wallet/node_modules/koa.io/node_modules/co/index.js:77:24) [3] at process._tickCallback (internal/process/next_tick.js:103:7)
UPDATE: issue was me working on an outdated dependency** see below.
Right now, there's a 10 second delay in package.json
to make the connector start up after the ledger. On lower-resource systems, the ledger will not be fully running after 10 seconds, causing the connector to get a Could not get ledger URI from account URI
error. The delay has to be changed to 20 seconds on those systems.
We should change the way ilp-kit launches components to ensure that connector is always started after the ledger is up and running
Depending on whether it's a local transfer or not it'll return a different format. This should be the same no matter what. This should be fixed by updating to the latest connector.
I just did a run-through of installing five-bells-wallet from scratch and suggest the following changes:
expect
(#31)wallet-ledger
database in postgres (#23)LEDGER_DB_SYNC
to initialize ledger database (interledger-deprecated/five-bells-ledger#339)connector.list
vs env variables)Appears sending amount can be more than balance on ledger.
Lets sender send after getting invalid quote.
Payments of 0.001
show up in the history as -0
Right now, all emails say from: [email protected]
. The domain on the address should instead match the API_MAILGUN_DOMAIN
In addition to looking up the account and ledger, 3rd party clients will also need to look up the endpoint they can use to talk to the wallet API (e.g. for using webhook subscriptions for incoming payments)
It's annoying to have to install some other apt package which depends on X11 and a bunch of other big libraries. It might even prevent installation on other architectures or operating systems if those libraries aren't available.
Can we remove that dependency by using an npm package or some flags like --colors
.
On the new website we're going to direct people to go sign up for accounts on red and blue. It would be great to direct them straight to the register page
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.