.github | ||
integration | ||
plugins | ||
scripts | ||
src | ||
test | ||
.bumpversion.cfg | ||
.editorconfig | ||
.gitignore | ||
.npmignore | ||
.travis.yml | ||
bumpversion.sh | ||
CHANGELOG.md | ||
library.json | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md | ||
SQUID_INTERFACE.md | ||
tsconfig.json | ||
tslint.json | ||
webpack.common.js | ||
webpack.config.js | ||
webpack.development.js | ||
webpack.parts.js | ||
webpack.production.js |
squid-js
🦑 JavaScript client library for Ocean Protocol oceanprotocol.com
🐲🦑 THERE BE DRAGONS AND SQUIDS. This is in alpha state and you can expect running into problems. If you run into them, please open up a new issue. 🦑🐲
Get started
Start by adding the package to your dependencies:
npm i @oceanprotocol/squid --save
The package exposes Ocean
and Logger
which you can import in your code like this:
// ES6
import { Ocean, Logger } from '@oceanprotocol/squid'
// ES2015
const { Ocean, Logger } = require('@oceanprotocol/squid')
You can then connect to a running Keeper & Aquarius instance, e.g.:
const ocean: Ocean = await Ocean.getInstance({
// the node of the blockchain to connect to, could also be infura
nodeUri: "http://localhost:8545",
// the uri of aquarius
aquariusUri: "http://localhost:5000",
// the uri of brizo
brizoUri: "http://localhost:8030",
// address that brizo uses
brizoAddress: "0x00bd138abd70e2f00903268f3db08f2d25677c9e"
// the uri to the parity node you want to use for encryption and decryption
parityUri: "http://localhost:9545",
// the uri of the secret store that holds the keys
secretStoreUri: "http://localhost:12001"
})
Examples
You can see how squid-js
is used on:
Documentation
Docs: squid-js API Reference →
Alternatively, you can generate the raw TypeDoc documentation locally by running:
# will output to ./doc folder
npm run doc
Development
To start development you need to:
npm i
npm start
Testing
Unit Tests
For unit tests, running ganache-cli
is required before starting the tests:
npm i -g ganache-cli
ganache-cli
To start unit tests, run:
npm test
or to watch for changes:
npm run test:watch
to create code coverage information:
npm run test:cover
Integration Tests
Besides a running ganache-cli
instance, a locally running Ocean network is required. To do so before running the tests, use Barge:
git clone https://github.com/oceanprotocol/barge
cd barge
./start_ocean.sh --latest --no-pleuston --local-spree-node
In another terminal window, run this script and export the seed phrase:
# copies the contract artifacts once the local Ocean network is up and running
./scripts/wait_for_migration_and_extract_keeper_artifacts.sh
# export Spree accounts seed phrase
export SEED_WORDS="taxi music thumb unique chat sand crew more leg another off lamp"
Once everything is up, run the integration tests:
npm run integration
to generate code coverage information during test, run:
npm run integration:cover
Production build
npm run build
Releases
For a new patch release, execute on the machine where you're logged into your npm account:
./bumpversion path
git tag with the latest version and git push
License
Copyright 2019 Ocean Protocol Foundation Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.