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

ed25519 verify #19

Merged
merged 7 commits into from
Oct 19, 2024
Merged

ed25519 verify #19

merged 7 commits into from
Oct 19, 2024

Conversation

petersalomonsen
Copy link
Owner

@petersalomonsen petersalomonsen commented Oct 19, 2024

This PR implements the contract part of the flow shown in the diagram below, and includes an e2e test for deposit of fungible tokens to cover the cost of an AI conversation, and signing the refund of what was not spent.

What is important here is the addition of ed25519_verify to be able to verify messages signed by the AI service. The user can request refund of unspent fungible tokens, but in order to do that a signed message from the AI service must be presented.

The actual AI service is being implemented in here: petersalomonsen/near-openai#11

sequenceDiagram
    participant User
    participant Contract
    participant AIService

    User->>Contract: call_js_func(start_ai_conversation)
    Contract->>Contract: Generate conversation_id
    Contract->>Contract: ft_transfer_internal(user, AIService, amount)
    Contract->>User: Return conversation_id

    User->>AIService: Initiate AI request with conversation_id
    AIService->>Contract: Check deposit for conversation_id
    Contract->>AIService: Confirm deposited tokens

    AIService->>User: Provide AI-generated content
    AIService->>AIService: Track spent AI tokens
    AIService->>User: Sign message with unspent tokens

    User->>Contract: call_js_func(refund_unspent, {signature, refund_message})
    Contract->>Contract: Verify signature
    Contract->>Contract: Process refund

    Contract->>User: Return unspent tokens
Loading

@petersalomonsen
Copy link
Owner Author

@race-of-sloths include

@race-of-sloths
Copy link

race-of-sloths commented Oct 19, 2024

@petersalomonsen Thank you for your contribution! Your pull request is now a part of the Race of Sloths!

Shows inviting banner with latest news.

Shows profile picture for the author of the PR

Current status: executed
Reviewer Score
@Tguntenaar 8

Your contribution is much appreciated with a final score of 8!
You have received 84 (80 base + 5% lifetime bonus) Sloth points for this contribution

We would appreciate your feedback or contribution idea that you can submit here

What is the Race of Sloths

Race of Sloths is a friendly competition where you can participate in challenges and compete with other open-source contributors within your normal workflow

For contributors:

  • Tag @race-of-sloths inside your pull requests
  • Wait for the maintainer to review and score your pull request
  • Check out your position in the Leaderboard
  • Keep weekly and monthly streaks to reach higher positions
  • Boast your contributions with a dynamic picture of your Profile

For maintainers:

  • Score pull requests that participate in the Race of Sloths
  • Engage contributors with fair scoring and fast responses so they keep their streaks
  • Promote the Race to the point where the Race starts promoting you
  • Grow the community of your contributors

Feel free to check our website for additional details!

Bot commands
  • For contributors
    • Include a PR: @race-of-sloths include to enter the Race with your PR
  • For maintainers:
    • Invite contributor @race-of-sloths invite to invite the contributor to participate in a race or include it, if it's already a runner.
    • Assign points: @race-of-sloths score [1/2/3/5/8/13] to award points based on your assessment.
    • Reject this PR: @race-of-sloths exclude to send this PR back to the drawing board.
    • Exclude repo: @race-of-sloths pause to stop bot activity in this repo until @race-of-sloths unpause command is called

@petersalomonsen petersalomonsen marked this pull request as ready for review October 19, 2024 18:47
@Tguntenaar Tguntenaar self-requested a review October 19, 2024 21:37
@Tguntenaar
Copy link
Collaborator

@race-of-sloths score 8

@Tguntenaar Tguntenaar merged commit cfa390c into master Oct 19, 2024
11 checks passed
@petersalomonsen petersalomonsen deleted the feat/ed25519_verify branch October 20, 2024 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants