TheGame
TheGame copied to clipboard
[MyMeta] Add contracting capability to the profiles
Make it possible for people to contract each other directly from their MyMeta profiles using Smart Invoice by Raid Guild. Somewhere on person's MyMeta profile, there should be a "collab" button. You can check the original designs to see how the button should look.
Clicking the button should open a small prompt with options "contact" & "contract" with the latter opening a window that allows you to set up a Smart Invoice between yourself & the player profile you're interacting with.
This task needs a designer so that Dan can continue with implementing.
This will require some designing before implementation. I'm looking to leverage the smart-contracts behind smartinvoice.xyz for this. Ref: https://github.com/raid-guild/smart-invoice/tree/main/packages/contracts/contracts
The following are important inputs that we would require when two members enter into a "contract", aka smart-invoice:
- Client Address - easily available as the first player's address
- Service Provider Address - easily available as the other player's address
- Arbitation Provider Address - can be any individual or dao - 5% of remaining funds go to this address in case of disputes. also only this address can resolve any disputes. so key points are that this address must be a neutral party and must be always available.
- Payment Token - easily fixed as SEED (or xSEED)
- Milestone Amounts - first player can define number of milestones as well as how many tokens must be released in each of these milestones
- Termination Time - very important. specifies the (block) timestamp after which the tokens deposited in smart-invoice to be available for withdrawal back to the client in case the service provider did not do any work. also signals the last timestamp until which any disputes can be raised by either parties.
- Details - IPFS Hash - Currently we are storing the following details w.r.t to each smart-invoice on IPFS and linking them to the smart contract: project name, description, link, end-date and start-date. This is simply for reference. We can add any other metadata here as necessary. (example, we could also store description for each payment milestone)
We also have a subgraph that tracks all of this data, which we can leverage into our hasura: https://thegraph.com/explorer/subgraph/dan13ram/xdai-smart-invoices
Here, Some open questions are:
- How do we decide the "3. Arbitration Provider Address" for any contract between two parties?
- Currently the contracts are deployed only on xDai. So we can support only xSEED or WXDAI for "4. Payment Token". Is that alright?
- Is there any additional metadata we need to store in "7. Details" ?
- Do we need any other data stored in our hasura to track these smart-invoices between MetaGame players.
- Do we need a UI where players can view existing smart-invoices they are contracted to?
- How much of this do we need to implement on MyMeta and how much we want to leverage from smartinvoice.xyz ?
hi @peth-yursick and @dan13ram , is there any progress here, maybe I could help?
Hey @firattale please join the discussions on discord and we can see where you can help. Currently though I'm working on the contracfs :)
Big issue seems like a MOS task
Big issue seems like a MOS task
The smart contract for this was actually written & wireframes made, just never finished.. Probably won't make sense to prioritize any time soon, I think the MVP should just be linking to https://smartinvoice.xyz/