Compare commits

...
15 Commits
Author SHA1 Message Date
Daniel Gonzalez 0b72895102 feat(tests): Added manual e2e tests 2021-08-18 01:10:03 -04:00
Chris Troutner f41cac9fc7 Merge pull request #16 from Permissionless-Software-Foundation/ct-unstable
fix(broadcast): Fixing bug in broadcast JSON RPC
2021-08-15 09:07:09 -07:00
Chris Troutner 8ad1400d3c fix(error reporting): Adding JSON RPC error reporting 2021-08-15 08:32:39 -07:00
Chris Troutner e48a9213c5 fix(broadcast): Fixing bug in broadcast JSON RPC 2021-08-13 16:15:44 -07:00
Chris Troutner 2e2d092b18 Merge pull request #15 from Permissionless-Software-Foundation/ct-unstable
fix(protocol): Adding protocol field to announceJsonLd
2021-08-05 17:18:31 -07:00
Chris Troutner c8aefae0cc fix(protocol): Adding protocol property to announceJsonLd 2021-08-05 17:16:37 -07:00
Chris Troutner 17e465b3ab Merge branch 'master' of https://github.com/Permissionless-Software-Foundation/ipfs-service-provider into ct-unstable 2021-08-05 17:14:40 -07:00
Chris Troutner 40bb75bf33 Merge pull request #18 from Permissionless-Software-Foundation/ct-unstable
fix(protocol): Adding protocol field to announceJsonLd
2021-08-05 17:11:00 -07:00
Chris Troutner 02201afc59 fix(protocol): Adding protocol field to announceJsonLd 2021-08-05 17:08:56 -07:00
Chris Troutner bae98bba28 Merge pull request #14 from Permissionless-Software-Foundation/ct-unstable
feat(about): Adding npm version to JSON RPC About endpoint output
2021-08-03 13:13:25 -07:00
Chris Troutner 0eb7aeaed1 feat(version): Adding npm version to ipfs-coord announce payload 2021-08-03 13:12:02 -07:00
Chris Troutner dbd5022c4c Merge pull request #17 from Permissionless-Software-Foundation/ct-unstable
feat(about): Adding npm version to JSON RPC About endpoint output
2021-08-03 13:07:57 -07:00
Chris Troutner 72ac73c410 feat(about): Adding npm version to JSON RPC About endpoint output 2021-08-03 13:05:45 -07:00
Chris Troutner 9b52c81b25 Adding startup script to gitignore 2021-08-03 12:53:35 -07:00
Chris Troutner 7cc13b9ba9 Adding todo in comments 2021-07-31 16:07:47 -07:00
10 changed files with 104 additions and 30 deletions
+2
View File
@@ -64,6 +64,8 @@ database/
system-user-*.json
orbitdb
ipfsdata
.ipfsdata
ipfs-service-provider.sh
start-bch-wallet-service.sh
!README.md
-15
View File
@@ -1,15 +0,0 @@
/*
This file should be customized for your app. The string in this file is
displayed when a user makes the 'about' JSON RPC call.
*/
module.exports = `
This is the about string for the ipfs-service-provider repository:
https://github.com/Permissionless-Software-Foundation/ipfs-service-provider
Brought to you by the Permissionless Software Foundation:
https://PSFoundation.cash
Documentation:
https://ipfs-service-provider.fullstack.cash/
`
+6
View File
@@ -5,6 +5,10 @@
/* eslint no-unneeded-ternary:0 */
// Get the version from the package.json file.
const pkgInfo = require('../../package.json')
const version = pkgInfo.version
const ipfsCoordName = process.env.COORD_NAME
? process.env.COORD_NAME
: 'ipfs-bch-wallet-service'
@@ -52,6 +56,8 @@ module.exports = {
'@context': 'https://schema.org/',
'@type': 'WebAPI',
name: ipfsCoordName,
version,
protocol: 'bch-wallet',
description:
'IPFS service providing BCH blockchain access needed by a wallet.',
documentation: 'https://ipfs-bch-wallet-service.fullstack.cash/',
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "ipfs-bch-wallet-service",
"version": "1.0.0",
"version": "1.9.1",
"description": "IPFS and REST service providing blockchain access needed by a wallet. ",
"main": "index.js",
"scripts": {
@@ -28,7 +28,7 @@
"bcryptjs": "^2.4.3",
"glob": "^7.1.6",
"ipfs": "^0.54.4",
"ipfs-coord": "^4.0.1",
"ipfs-coord": "^5.0.0",
"jsonrpc-lite": "^2.2.0",
"jsonwebtoken": "^8.5.1",
"jwt-bch-lib": "^1.3.0",
+5 -1
View File
@@ -58,7 +58,11 @@ class IpfsCoordAdapter {
if (!process.env.E2ETEST) {
// Wait for the ipfs-coord library to signal that it is ready.
await this.ipfsCoord.ipfs.start()
await this.ipfsCoord.isReady()
// some ipfs-coord versions do not have this function
if (this.ipfsCoord.isReady) {
await this.ipfsCoord.isReady()
}
}
// Signal that this adapter is ready.
+3 -2
View File
@@ -6,7 +6,7 @@
const jsonrpc = require('jsonrpc-lite')
// Local libraries
const aboutStr = require('../../../../config/about')
const config = require('../../../../config')
class AboutRPC {
constructor (localConfig) {
@@ -36,7 +36,8 @@ class AboutRPC {
return {
success: true,
status: 200,
message: aboutStr,
// message: aboutStr,
message: JSON.stringify(config.announceJsonLd),
endpoint: 'about'
}
}
+13 -7
View File
@@ -146,7 +146,7 @@ class BCHRPC {
return retObj
} catch (err) {
// console.error('Error in createUser()')
console.error('Error in JSON RPC BCH transactions()')
// throw err
// Return an error response
@@ -223,7 +223,7 @@ class BCHRPC {
return retObj
} catch (err) {
// console.error('Error in createUser()')
console.error('Error in JSON RPC BCH balance()')
// throw err
// Return an error response
@@ -336,7 +336,8 @@ class BCHRPC {
return retObj
} catch (err) {
// console.error('Error in createUser()')
console.error('Error in JSON RPC BCH utxos()')
console.error('Error in JSON RPC utxos(): ', err)
// throw err
// Return an error response
@@ -388,12 +389,17 @@ class BCHRPC {
const data = await this.bchjs.RawTransactions.sendRawTransaction(hex)
// console.log(`data: ${JSON.stringify(data, null, 2)}`)
const retObj = data
retObj.status = 200
const retObj = {
success: true,
status: 200,
endpoint: 'broadcast',
txid: data
}
// retObj.status = 200
return retObj
} catch (err) {
// console.error('Error in createUser()')
console.error('Error in JSON RPC BCH broadcast()')
// throw err
// Return an error response
@@ -514,7 +520,7 @@ class BCHRPC {
return retObj
} catch (err) {
// console.error('Error in createUser()')
console.error('Error in JSON RPC BCH transaction()')
// throw err
// Return an error response
+4
View File
@@ -20,6 +20,10 @@ async function startTest () {
await testUtils.testTransaction(testData.uutId)
await testUtils.testTransactions(testData.uutId)
await testUtils.testUtxos(testData.uutId)
console.log('E2E TEST: Tests completed successfully!')
process.exit()
} catch (err) {
+67 -1
View File
@@ -99,7 +99,10 @@ class TestUtils {
announceJsonLd: announceJsonLd
})
await this.ipfsCoord.ipfs.start()
await this.ipfsCoord.isReady()
// some ipfs-coord versions do not have this function
if (this.ipfsCoord.isReady) {
await this.ipfsCoord.isReady()
}
// Wait to let ipfs-coord connect to subnet peers.
await this.bchjs.Util.sleep(30000)
@@ -195,6 +198,69 @@ class TestUtils {
}
}
// Get the info a on transaction over JSON RPC.
async testTransactions (ipfsId) {
try {
// Generate the JSON RPC command
const id = uid()
const cmd = jsonrpc.request(id, 'bch', {
endpoint: 'transactions',
addresses: ['bitcoincash:qrl2nlsaayk6ekxn80pq0ks32dya8xfclyktem2mqj']
})
const cmdStr = JSON.stringify(cmd)
// console.log(`Publishing message to ${ipfsId}`)
console.log('E2E TEST: Sending Transactions command...')
const result = await this.sendRPC(ipfsId, cmdStr)
// console.log('result: ', result)
if (result.result.value.status && Array.isArray(result.result.value.transactions)) {
console.log('E2E TEST: transactions test passed.')
return true
} else {
console.log('E2E TEST: transactions test failed.')
this.failTest()
}
} catch (err) {
console.error('Error in testTransactions()')
throw err
}
}
// Get the utxos for a BCH address over JSON RPC.
async testUtxos (ipfsId) {
try {
// Generate the JSON RPC command
const id = uid()
const cmd = jsonrpc.request(id, 'bch', {
endpoint: 'utxos',
address: 'bitcoincash:qrl2nlsaayk6ekxn80pq0ks32dya8xfclyktem2mqj'
})
const cmdStr = JSON.stringify(cmd)
// console.log(`Publishing message to ${ipfsId}`)
console.log('E2E TEST: Sending Utxos command...')
const result = await this.sendRPC(ipfsId, cmdStr)
// console.log('result', result.result.value)
const bchUtxos = result.result.value[0].bchUtxos
const slpUtxos = result.result.value[0].slpUtxos
if (result.result.value && bchUtxos && slpUtxos) {
console.log('E2E TEST: utxos test passed.')
return true
} else {
console.log('E2E TEST: utxos test failed.')
this.failTest()
}
} catch (err) {
console.error('Error in testUtxos()')
throw err
}
}
failTest () {
console.log('Exiting test program.')
process.exit()
+2 -2
View File
@@ -1,4 +1,4 @@
{
"uutAddr": "/ip4/127.0.0.1/tcp/5668/p2p/QmZSyLnRQWMBknVNjUroLQnrcmDnUVAUU4pMQ2LGhh6b9v",
"uutId": "QmZSyLnRQWMBknVNjUroLQnrcmDnUVAUU4pMQ2LGhh6b9v"
"uutAddr": "/ip4/192.168.43.115/tcp/5668/p2p/QmVBWvFxao7smhRjUUh1q8rNAEwMqbg4X3dqsQDMSjUpmx",
"uutId": "QmfUjMqUeXSCzNkFGrzvf79yvV62dtjsnwtBSYKx3wegXw"
}