1.0.9 • Published 1 year ago

saksh-escrow v1.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Saksh Escrow

Saksh Escrow is a Node.js package that provides an escrow service for secure transactions between users. It allows users to initiate, release, cancel, and dispute transactions, ensuring a safe and reliable payment process.

Saksh Escrow Banner

Features

  • Initiate an escrow transaction
  • Release funds from escrow
  • Cancel an escrow transaction
  • Raise and manage disputes
  • Submit evidence for disputes
  • Escalate disputes to mediation
  • Resolve disputes and mediations

Installation

To install the package, run:

npm install saksh-escrow

Usage

Prerequisites

  • Node.js
  • MongoDB (Make sure to have a MongoDB instance running)

Example

Here's a basic example of how to use the Saksh Escrow package:

const mongoose = require('mongoose');

const EscrowService = require('saksh-escrow');
const SakshWallet = require('saksh-easy-wallet');

async function main() {
   


    mongoose.connect('mongodb://localhost:27017/sakshescrow', {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        serverSelectionTimeoutMS: 30000 // Increase timeout to 30 seconds
    }).then(() => console.log('MongoDB connected'))
        .catch(err => console.error('MongoDB connection error:', err));




    const sender = 'sender123';
    const receiver = 'receiver123';
    const escrowAdmin = 'susheelhbti';
    const mediator = "mediator123";


    const loggedInUser = sender;


    const role = "user";

    // here sender is a logged in user in the system 
    const escrowService = new EscrowService(loggedInUser, role); // the role is require when admin or mediator otherwise optional


    try {

     

        let currency = "USD";

        const wallet = new SakshWallet();
        await wallet.sakshCredit(loggedInUser, 100000, currency, referenceId, `test transfer`);


        // Example: Initiate an escrow
        const escrow = await escrowService.initiateEscrow(sender, receiver, 100, currency, 'Payment for services');
        console.log('Escrow initiated:', escrow);


        // Example: Release funds from escrow
        const releasedEscrow = await escrowService.releaseEscrow(escrow._id);
        console.log('Escrow released:', releasedEscrow);

/*
        //   Example: Cancel an escrow
        const canceledEscrow = await escrowService.cancelEscrow(escrow._id);
        console.log('Escrow canceled:', canceledEscrow);

        const eid = "67010a27e49b5789b048fa37";

        //  Example: Raise a dispute
        const disputedEscrow = await escrowService.raiseDispute(eid, 'Service not delivered', 'Service Issue');
        console.log('Dispute raised:', disputedEscrow);


        // Example: Submit evidence for a dispute
        const evidenceEscrow = await escrowService.submitEvidence(eid, 'http://example.com/evidence.jpg');
        console.log('Evidence submitted:', evidenceEscrow);

        //  Example: Escalate a dispute
        const escalatedEscrow = await escrowService.escalateDispute(eid, 'Level 2');
        console.log('Dispute escalated:', escalatedEscrow);

        //    Example: Escalate to mediation
        const mediationEscrow = await escrowService.escalateToMediation(eid, mediator);
        console.log('Escalated to mediation:', mediationEscrow);

        //Example: Resolve mediation
        const resolvedMediation = await escrowService.resolveMediation(eid, 'RELEASE');
        console.log('Mediation resolved:', resolvedMediation);

        //  Example: Resolve a dispute
        const resolvedDispute = await escrowService.resolveDispute(escrow._id, 'RELEASE');
        console.log('Dispute resolved:', resolvedDispute);

*/
    } catch (error) {
        console.error('Error:', error);
    } finally {
        //  Close the MongoDB connection
        await mongoose.connection.close();
    }



}

main();

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

Contact

For any inquiries, please contact susheel2339 @ gmail.com.

Feel free to modify the content, especially the MongoDB connection string, email, and any other specific details related to your project.
1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago