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

Paima integration tracking #53

Closed
18 of 22 tasks
mikekeke opened this issue May 6, 2024 · 3 comments
Closed
18 of 22 tasks

Paima integration tracking #53

mikekeke opened this issue May 6, 2024 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@mikekeke
Copy link
Collaborator

mikekeke commented May 6, 2024

This ticket is for general tracking of progress on Paima integration

Roadmap:

  • Get familiar with WEB export in general
  • Learn how to call JS from GDScript
  • Learn how to call GDScript from JS
  • Figure out how to exchange data between GDScript and JS while calling GDScript callbacks (will be required e.g. to requires data signing from JS, perform signing in godot-cardano and return signature data back to JS so Paima can use it) - partially solved with least ugly workaround found
  • Make sure godot-cardano works in general when WEB-exported
    • Figure out if it is possible to run WASM in new GDScript thread for WEB-exports - turned out to be not that simple, postponed for now (related: PR Run imports in a separate Rust thread #86)
    • Successfully sign transaction using WEB-export of godot-cardano
  • Make prototype of game that uses Paima and godot-cardano together
    • Build and run some Paima template project with some Cardano CIP-30 wallet to see how whole Paima stack works - "Open World" template was chosen as it has simplest frontend, Nami was used as wallet
    • Add partially mocked CIP-30 interface for godot-caradano (required functionality is: providing name, address and data signing)
    • Test communication between Paima middleware and godot-cardano CIP-30 interface with some mocked responses from GDScript
    • Take Paima middleware from "OpenWorld" template and integrate it with CIP-30 interface for godot-cardano
      • Implement login through Paima middleware
      • Implement data signing with godot-cardano
        • Learn how to make CIP-30 + CIP-0008 compliant signatures (message-signing is going to be used for CIP-0008 data signing; this library is used by Nami and Gero, maybe others too). The goal is to get same signature as (e.g.) Nami provides for some known payload and seed phrase.
        • Add data signing to godot-cardano Rust code and build .so and WASM libs.
        • Test signing with godot-cardano in the browser. The goal is to get same signature as (e.g.) Nami provides for some known payload and seed phrase
        • Decide how to use message-signing library. Repo readme says there is no Rust crate published, but there is some crate published by somebody. Not sure how well it is maintained. This crate was used for tests and worked, but maybe vendoring will be safer solution.
    • Add godot-cardano wallet to Piama OpenWorld integration prototype
    • Add SIP-30 signing for godot-cardano in Piama OpenWorld integration prototype
    • Try to submit some player moves as Paima "Open World" template does but from WEB-exported Godot project
  • TBD
@mikekeke
Copy link
Collaborator Author

mikekeke commented May 6, 2024

cc @borja-bonet-segui

@mikekeke
Copy link
Collaborator Author

Update: added more steps on data signing tasks

@rmgaray
Copy link
Collaborator

rmgaray commented Sep 4, 2024

Completed by #74

@rmgaray rmgaray closed this as completed Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants