DashPay Contract
Reference contract of the DashPay Application Contract
DashPay allows Dash user to create a DashPay profile on the Platform chain.
This profile can be used to interact with other DashPay profiles, may it be for the purpose of sending/receiving transactions without having to go around the process of querying the public address of the recipient.
Table of Contents
Install
Ensure you have the latest NodeJS installed.
From repository
Clone the repo:
git clone https://github.com/dashevo/dashpay-contract
Install npm packages:
npm install
From NPM
npm install @dashevo/dashpay-contract
Usage
Publish the contract
npm run publish-contract
Running the tests
To run tests, simply run
npm test
Design notes
- Count proofs are public. Never add a countable index on
contactRequestthat groups by sender under a recipient, such as[toUserId, $ownerId]: it would let anyone list who contacted whom, with counts. A count keyed ontoUserIdalone reveals only a total. - Ignoring a sender is local to each device. If it ever syncs across devices, it must be one list the owner encrypts to themselves, not a
contactInfodocument per ignored sender. AcontactInfoabout someone who is not a contact exists publicly, and its creation time lines up with the incomingcontactRequest, which reveals who was ignored.
Contributing
Feel free to dive in! Open an issue or submit PRs.
License
MIT © Dash Core Group, Inc.