1.0.9 • Published 9 months ago

saksh-escrow v1.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months 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

9 months ago

1.0.8

9 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago