npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

origin

v0.8.6

Published

![origin_github_banner](https://user-images.githubusercontent.com/673455/37314301-f8db9a90-2618-11e8-8fee-b44f38febf38.png)

Downloads

48

Readme

origin_github_banner

origin_npm_version origin_license origin_travis_banner

Head to https://www.originprotocol.com/developers to learn more about what we're building and how to get involved.

origin-js

origin-js is a library of javascript code and Ethereum smart contracts which allow anyone to create decentralized marketplaces, including for fractional usage. It is an open source project created by Origin Protocol.

⚠️ This is an alpha version which is not suitable for production environments.

Documentation

origin-js documentation

Demo

origin-js is showcased in our Demo DApp currently running on the Rinkeby testnet.

Using origin-js in your project

As a node package

npm install origin --save

or

yarn add origin

Plain javascript

A browser-compatible plain javascript file origin.js is available in the Releases section. A hosted version can be directly included in your html as:

<script src="https://code.originprotocol.com/origin-js/origin-v0.7.1.js"></script>

npm build will generate this file and save it to dist/origin.js.

Local development

Fully integrated with origin-dapp and origin-bridge

We recommend using Origin Box for development and testing on your local machine. This saves you the headache of spinning up several environments and running multiple, different processes.

Without origin-bridge

  1. Clone this repo.
git clone https://github.com/OriginProtocol/origin-js.git && cd origin-js
  1. Install dependencies and link by running npm run install:dev. This script is a shortcut for npm install && npm link. Linking means that changes to origin-js code are immediately available to local DApps without an npm install.

  2. Start the local blockchain and build origin-js by running npm start. Code changes will trigger a live rebuild.

  3. To interact with your local origin-js and local blockahin, see the instructions in our Demo DApp.

Tests

Command Line (All Tests)

Our full test suite can be run with:

npm run test

Note: you should not have the server running at this time, as these tests start their own local blockchain instance.

Command Line (Non-Solidity Tests)

To run non-contract tests (test/**.js):

npm run test:js

To run non-contract tests and automatically re-run when files change:

npm run test:jsw

Command Line (Only Solidity Tests)

Our Solidity tests (which use Truffle) are located at contracts/test.

npm run test:contracts

Note: you should not have the server running at this time, as these tests start their own local blockchain instance.

To run contract tests and automatically re-run when files change:

npm run test:contractsw

To run contract tests and measure test coverage of Solidity code:

npm run test:contracts-coverage

Browser Tests

A subset of our tests can be run from the browser. These tests are automatically served at http://localhost:8081 when you run npm start. These tests are automatically rerun when source or test code is changed.

Run a subset of these tests using the grep query string parameter, for example: http://localhost:8081/?grep=IpfsService

Using the Ganache GUI

By default, starting origin-js locally starts ganache-cli automatically. However, for development you might want to connect to the GUI version of Ganache. This provides a nice interface for browsing your local blockchain activity and can be useful for debugging.

To use the Ganache GUI:

  1. Install Ganache
  2. Start Ganache
  3. Navigate to the settings in Ganache (click on the gear in the upper right-hand corner)
  4. Set Port Number to 8545
  5. Set Network ID to 999
  6. Under the Accounts & Keys tab, set the mnemonic to candy maple cake sugar pudding cream honey rich smooth crumble sweet treat
  7. When starting origin-js locally, run npm run start:no-ganache (instead of npm run start)

Troubleshooting

Python 3

If you have Python 3 installed, you may see this error when installing dependencies:

gyp ERR! stack Error: Python executable "/Users/aiham/.pyenv/shims/python" is v3.6.4, which is not supported by gyp.

Resolve this by configuring npm to use Python 2 (where python2.7 is a binary accessible from your $PATH):

npm config set python python2.7

Contributing

Origin is an 100% open-source and community-driven project and we welcome contributions of all sorts. There are many ways to help, from reporting issues, contributing code, and helping us improve our community.

To get involved, please join our Discord channel and review our guide to contributing.