Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BNT-3: Sample App - ICRC-1 Compliant Payment Flow #7

Closed
domwoe opened this issue Sep 19, 2022 · 14 comments
Closed

BNT-3: Sample App - ICRC-1 Compliant Payment Flow #7

domwoe opened this issue Sep 19, 2022 · 14 comments

Comments

@domwoe
Copy link

domwoe commented Sep 19, 2022

Sample App: ICRC-1 Compliant Payment Flow

Overview

  • Status: Assigned
  • Project Type: Multiple - Multiple applicants can get selected to work on the tasks and get paid.
  • Time Commitment: Weeks
  • Experience Level: Intermediate
  • Size: USD 2'500 in ICP (at time of distribution)

Description

One of the advantages to deploy a service on a blockchain platform is to be able to receive payments without the usage of a 3rd party service provider which can be a huge cost factor. In this bounty, you'll implement a sample application that showcases the implementation of the ICRC-1 payment flow to buy some digital good.

The base ICRC-1 standard supports the client-orchestrated transfer/notify flow, i.e. the client (payer) transfers the token to the service-designated subaccount and notifies the service (payee) about the transfer.

High-level flow diagram

Payment flow diagram

Notes

  • The client would utilize agent-js to perform (transfer and notify) calls.
  • The invoice and its relation to a subaccount will probably need to be standardized at some point, allowing for different compatible payer and payee implementations. We hope that this implementation will inform a potential standardization.

Acceptance Criteria

  • Interesting and sensible use case
  • Clean and well-structured code
  • Unit and E2E tests
  • Documentation
  • MIT or Apache-2.0 License
  • PR to samples at https://github.com/dfinity/portal

Further Information

The eventual goal is to make it as easy as possible for developers to integrate a payment flow into their applications. Hence, we see the development of sample applications as a first step to implementing ready-to-use client and canister libraries which could be funded by a follow-up bounty or grant.

The ICRC-1 token standard is in its early days and many details and extensions have not been fully fleshed out. It would be great if you'd provide your implementer's feedback to the Ledger & Tokenization Working Group.

How to apply?

Add a comment to this issue or respond to the forum thread. Please provide some background on your experience and give an outline of your project plan.

References

@domwoe domwoe added the bounty label Sep 19, 2022
@domwoe domwoe changed the title Sample App: ICRC-1 Compliant Payment Flow BNT-3: Sample App - ICRC-1 Compliant Payment Flow Sep 19, 2022
@domwoe domwoe added the open label Sep 19, 2022
@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 1000.0 USD attached to it as part of the dfinity fund.

@gitcoinbot
Copy link

gitcoinbot commented Oct 14, 2022

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Workers have applied to start work.

These users each claimed they can complete the work by 264 years from now.
Please review their action plans below:

1) developerfred has applied to start work (Funders only: approve worker | reject worker).

I would love to build this payment flow in react with typescript
2) ssamireiart has applied to start work (Funders only: approve worker | reject worker).

We have experience in creation payment flows, and we are interested in your project.
3) s1dc0des has applied to start work (Funders only: approve worker | reject worker).

hmm i can probably do this. been working with IC from a year
4) pranav-upd has applied to start work (Funders only: approve worker | reject worker).

I will initially developed an instant invoice generation system that generates an invoice as soon as the amount is transferred to the subaccount. Once it is transferred from the subaccount to the main account, the user gets notified of the verified transaction.

I can start by building a proof of concept before it can be implemented in real time.

Learn more on the Gitcoin Issue Details page.

@domwoe
Copy link
Author

domwoe commented Oct 18, 2022

@developerfred is taking on this bounty

@domwoe domwoe added assigned and removed open labels Oct 18, 2022
@developerfred
Copy link

@domwoe I'm going to build with react and typescript, I believe that this reduces the learning curve for new Dapps developers.

@domwoe
Copy link
Author

domwoe commented Oct 18, 2022

@developerfred Do you already know what language you'll be using for the canister (Service canister)? Motoko or Rust?

@developerfred
Copy link

Rust 🔥

@domwoe
Copy link
Author

domwoe commented Oct 19, 2022

@developerfred Just noticed that I missed the "confirm payment" arrow after "show invoice" due to removing a part of the flow. I'll update the flow diagram tomorrow.

@domwoe
Copy link
Author

domwoe commented Nov 30, 2022

@developerfred any updates?

@domwoe domwoe assigned domwoe and developerfred and unassigned domwoe Dec 2, 2022
@domwoe domwoe added open and removed assigned labels Feb 1, 2023
@developerfred
Copy link

@domwoe https://github.com/developerfred/icrc-one-payment-flow

@Ra0R
Copy link

Ra0R commented Mar 28, 2023

What is the state of the issue?

@domwoe
Copy link
Author

domwoe commented Mar 28, 2023

Hey @Ra0R,

it's open for application. If you'd like to tackle this issue, please provide some relevant background/experience and how you'd approach solving this bounty.

@atengberg
Copy link

atengberg commented Apr 4, 2023

Hello, I'm applying for this bounty and will contact you to figure out the details.

@domwoe domwoe added assigned and removed open labels Jul 20, 2023
@domwoe
Copy link
Author

domwoe commented Jul 28, 2023

@atengberg
Copy link

atengberg commented Jul 28, 2023 via email

@domwoe domwoe closed this as completed Sep 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants