HackMD
  • Prime
    Prime  Full-text search on all paid plans
    Search anywhere and reach everything in a Workspace with Prime plan.
    Got it
    • Prime  Full-text search on all paid plans
      Prime  Full-text search on all paid plans
      Search anywhere and reach everything in a Workspace with Prime plan.
      Got it
      • Options
      • Versions and GitHub Sync
      • Transfer ownership
      • Delete this note
      • Template
      • Insert from template
      • Export
      • Dropbox
      • Google Drive
      • Gist
      • Import
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
      • Download
      • Markdown
      • HTML
      • Raw HTML
      • Sharing Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • More (Comment, Invitee)
      • Publishing
        Everyone on the web can find and read all notes of this public team.
        After the note is published, everyone on the web can find and read this note.
        See all published notes on profile page.
      • Commenting Enable
        Disabled Forbidden Owners Signed-in users Everyone
      • Permission
        • Forbidden
        • Owners
        • Signed-in users
        • Everyone
      • Invitee
      • No invitee
    Menu Sharing Help
    Menu
    Options
    Versions and GitHub Sync Transfer ownership Delete this note
    Export
    Dropbox Google Drive Gist
    Import
    Dropbox Google Drive Gist Clipboard
    Download
    Markdown HTML Raw HTML
    Back
    Sharing
    Sharing Link copied
    /edit
    View mode
    • Edit mode
    • View mode
    • Book mode
    • Slide mode
    Edit mode View mode Book mode Slide mode
    Note Permission
    Read
    Owners
    • Owners
    • Signed-in users
    • Everyone
    Owners Signed-in users Everyone
    Write
    Owners
    • Owners
    • Signed-in users
    • Everyone
    Owners Signed-in users Everyone
    More (Comment, Invitee)
    Publishing
    Everyone on the web can find and read all notes of this public team.
    After the note is published, everyone on the web can find and read this note.
    See all published notes on profile page.
    More (Comment, Invitee)
    Commenting Enable
    Disabled Forbidden Owners Signed-in users Everyone
    Permission
    Owners
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Invitee
    No invitee
       owned this note    owned this note      
    Published Linked with GitHub
    Like BookmarkBookmarked
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    # Streaming Payments & Auction Matching UI Business Requirements (Cadastre Redesign) Date of Last Update:: 2022-03-24 Author:: [[@gravenp]] --- ## Overview The Geo Web Cadastre needs to be updated to accomodate two major changes made to the Geo Web core contracts: 1) The move to streaming network fee payments 2) The addition of current licensor bid matching The required changes can be implemented within the [existing Cadastre card framework](https://github.com/Geo-Web-Project/cadastre/tree/main/components/cards) along with the creation of two new modals. Wireframes for these changes [are available here](https://excalidraw.com/#json=UREB5bAHREpCvJYFg1K7A,MBonqONNbqyOKhJE_JsIvg). The following sections oultine the requirements for each of the 12 views envisioned for this redesign. ### 1. Simple Claim View For: Any user that starts a claim (single-click on an unpopulated coordinate on the map) after the fair launch period Current Reference: https://github.com/Geo-Web-Project/cadastre/blob/main/components/cards/ClaimInfo.js & https://github.com/Geo-Web-Project/cadastre/blob/main/components/cards/ClaimAction.js 1. Display the existing claim instructions, wireframe 1.1 in the left panel upon the first click ([mimics existing functionality](https://github.com/Geo-Web-Project/cadastre/blob/main/components/cards/ClaimInfo.js)) 2. Upon a second click, display the left panel as shown in wireframe 1.2 3. Move all field labels above the entry box (instead of light text in the field as is the current design) 4. The left panel should be scrollable independent of the map 5. `Parcel Name` and `URI` should be written to the appropriate Ceramic streams fields (mimic existing functionality) 6. The `For Sale Price` is used to calculate the `x% Network Fee` field based on the current network fee rate pulled form the Geo Web core contracts * `For Sale Price` is a stored variable for each parcel 7. The % displayed in the Network Fee label should be a variable pulled from the applicable network fee rate 9. The `Claim Payout` field will always = 0.00 (shown for informational reinforcement) 10. The `Stream` field is equal to the Network Fee rate divided by 31,536,000 (seconds in a 365 day year). This value is added to the user's new/existing SuperFluid payment stream 11. The `Stream Buffer` field is equal to the deposit required to open/update the stream in the SuperFluid protocol 12. The `Wrap to ETHx` opens the Wrap ETH modal shown in wireframe 11.1 13. The `Claim` button submits the entered data to the appropriate Ceramic stream fields+pinning and smart contract transactions (which require wallet signing) 14. Display the "Streaming Info Box" defined in https://github.com/Geo-Web-Project/cadastre/issues/94 below the transaction submission buttons. ### 2. Edit Parcel View For: A user that clicks on a valid parcel that is owned by their wallet and DOES NOT have an outstanding bid Current Reference: https://github.com/Geo-Web-Project/cadastre/blob/main/components/cards/EditAction.js 1. When the licensor of a valid parcel without any bids clicks on a parcel, show the informational panel shown in wireframe 2.1 2. If the user clicks Edit Parcel, show wireframe 2.2/2.3 * When a user changes their `For Sale Price` the data shown in the "Transaction Summary" section should be calculated and displayed as the *change* in `Stream` rate and required `Stream Buffer` * If the `For Sale Price` is not modified, then only changes to Ceramic streams are needed and the "Transaction Summary" section should remain blank. 3. The `Wrap to ETHx` opens the Wrap ETH modal shown in wireframe 11.1 4. The `Submit` button submits the entered data to the appropriate Ceramic stream fields+pinning and smart contract transactions (which require wallet signing) 5. Display the "Streaming Info Box" defined in https://github.com/Geo-Web-Project/cadastre/issues/94 below the transaction submission buttons. ### 3. Auction Bid View For: A user that clicks on a valid parcel that is owned by a different wallet and DOES NOT have an outstanding bid Current Reference: https://github.com/Geo-Web-Project/cadastre/blob/main/components/cards/PurchaseAction.js 1. When a user other than the licensor clicks on a valid parcel without any oustanding bids, display the panel as defined in wireframe 3.1. 2. The "How do Geo Web auctions work?" link should open a modal/lightbox with the text shown in the wireframe. 3. The `For Sale Price` for an Auction bid must be greater than or equal to the current `For Sale Price` * Show an error message and don't calculate the Network Fee field or Transaction Summary Section if the `For Sale Price` bid is less than the current one. 4. Transaction Summary * Collateral Deposit = New `For Sale Price` * Purchase Payment = Previous `For Sale Price` * Refundable Collateral = New `For Sale Price` - Previous `For Sale Price` * Stream & Stream Buffer are calculated and displayed as in other views 5. The `Wrap to ETHx` opens the Wrap ETH modal shown in wireframe 11.1 6. The `Submit` button submits the entered data to the appropriate Ceramic stream fields+pinning and smart contract transactions (which require wallet signing) 7. Display the "Streaming Info Box" defined in https://github.com/Geo-Web-Project/cadastre/issues/94 below the transaction submission buttons. ### 4. Bid Response View For: A user that clicks on a valid parcel that is owned by their wallet and HAS an outstanding bid Current Reference: N/A 1. If a licensor clicks the "Edit Parcel" button when there is an outstanding bid, navigate to the "Edit Parcel" panel displayed in wireframe 4.2 * Parcels with outsanding bids cannot have their `For Sale Price` modified 2. Display the "Outstanding Bid" information as shown in wireframe 4.1 * The "How do Geo Web auctions work?" link opens the modal * "Accept Bid" triggers the transfer of the license to the bidder, payment to the licensor, return of the bidders remaining collateral, and initiates their network fee stream. * "Reject Bid" navigates the user to the view in wireframe 4.3 3. The `For Sale Price` when rejecting a bid must be greater than or equal to the bid value. 4. The Reject Bid - Transaction Summary is calculated/displayed as follows: * Penalty Payment = Bid `For Sale Price` * Penalty Rate * Stream & Stream Buffer are calculated as normal 5. The `Wrap to ETHx` opens the Wrap ETH modal shown in wireframe 11.1 6. The `Submit` button submits the entered data to the appropriate Ceramic stream fields+pinning and smart contract transactions (which require wallet signing) 7. Display the "Streaming Info Box" defined in https://github.com/Geo-Web-Project/cadastre/issues/94 below the transaction submission buttons. ### 5. Bid Locked View For: A user that clicks on a valid parcel that is owned by different wallet and HAS an outstanding bid Current Reference: N/A 1. If any user other than the current licensor clicks on a parcel with an outstanding bid, display the panel as shown in wireframe 5.1 ### 6. Auction Transfer View For: A user that clicks on a valid parcel that has a outstanding bid beyond the response window Current Reference: N/A 1. If any user clicks on a parcel with an outstanding bid past the response window, display the panel as shown in wireframe 6.1. 2. The "Trigger Transfer" button can be clicked by any user and enacts the payments, stream modifications, collateral return, and license transfers the same way an accepted bid would. ### 7. Fair Launch Claim View For: Any user that starts a claim (single-click on an unpopulated coordinate on the map) during the fair launch period Current Reference: https://github.com/Geo-Web-Project/cadastre/blob/main/components/cards/ClaimInfo.js & https://github.com/Geo-Web-Project/cadastre/blob/main/components/cards/ClaimAction.js 1. Display the Auction Details plus existing claim instructions, wireframe 7.1 in the left panel upon the first click of the map when in the fair launch period. 2. Auction Details (as defined inthe FairLaunchClaimer contract, live updated) * Current Required Bid = startingBid - priceDecrease * Auction End = auctionEnd * Time Remaining = auctionEnd - Current datetime 3. Upon a second click on the map (parcel shape locked), display the panel as shown in wireframe 7.2 * Max Claim Payment (to Treasury) = Current Required Bid * Stream & Stream Buffer calculated/displayed as in other windows 4. The `Wrap to ETHx` opens the Wrap ETH modal shown in wireframe 11.1 5. The `Claim` button submits the entered data to the appropriate Ceramic stream fields+pinning and smart contract transactions (which require wallet signing) 6. Display the "Streaming Info Box" defined in https://github.com/Geo-Web-Project/cadastre/issues/94 below the transaction submission buttons. ### 8. Foreclosure Claim View For: A user that clicks on an invalid/expired parcel that is owned by a different wallet Current Reference: https://github.com/Geo-Web-Project/cadastre/blob/main/components/cards/AuctionInfo.js 1. When a user other than the former licensor clicks on a parcel that has an invalid license in auction, display the panel as shown in wireframe 8.1. 2. Auction Details (as defined in Reclaimer contract, live updated) * Current Required Bid = Previous `For Sale Price` - priceDecrease * Auction End = Datetime of license invaliation + 2 weeks * Time Remaining = Auction End - Current datetime 3. Clicking "Claim" navigates the user to wireframe 8.2 * Max Claim Payment (to Licensor) = Current Required Bid * Stream & Stream Buffer calculated/displayed same as in the other views 4. The `Wrap to ETHx` opens the Wrap ETH modal shown in wireframe 11.1 5. The `Claim` button submits the entered data to the appropriate Ceramic stream fields+pinning and smart contract transactions (which require wallet signing) 6. Display the "Streaming Info Box" defined in https://github.com/Geo-Web-Project/cadastre/issues/94 below the transaction submission buttons. ### 9. Reclaim View For: A user that clicks on an invalid/expired parcel that is owned by their wallet Current Reference: https://github.com/Geo-Web-Project/cadastre/blob/main/components/cards/AuctionInfo.js 1. When the former licensor clicks on a parcel that has an invalid license in auction, display the panel as shown in wireframe 9.1. 2. Auction Details (as defined in Reclaimer contract, live updated) * Current Required Bid = Previous `For Sale Price` - priceDecrease * Auction End = Datetime of license invaliation + 2 weeks * Time Remaining = Auction End - Current datetime 3. Clicking "Reclaim" navigates the user to wireframe 9.2 * Claim Payment = 0.00 (licensor doesn't have to pay themselves) * Stream & Stream Buffer calculated/displayed same as in the other views 4. The `Wrap to ETHx` opens the Wrap ETH modal shown in wireframe 11.1 5. The `Claim` button submits the entered data to the appropriate Ceramic stream fields+pinning and smart contract transactions (which require wallet signing) 6. Display the "Streaming Info Box" defined in https://github.com/Geo-Web-Project/cadastre/issues/94 below the transaction submission buttons. ### 10. Land Portfolio/Payments Dashboard View For: Any user Current Reference: N/A 1. The Land Portfolio/Payments Dashboard should be structured as shown in wireframes 10.1 & 10.2 2. Display the (shortened) connected wallet address (0x + 4 digits + ... + final 4 digits) 3. ETHx Balance Exhaustion Datetime = Current Datetime + (Current ETHx Balance/Current Stream Rate) * If the balance is already 0, show the warning in wireframe 10.3 5. Display the connected wallet's ETH and ETHx balances in their respective sections. 6. Allow the user to trigger wrap and unwrapping transactions in their respective sections 7. Parcel Overview Section should display all of the connected wallet's licenses * For valid licenses without outstanding bids, show the license ID * For valid licenses with outstanding bids, show "New Bid" instead of the license ID * For invalid licenses that haven't been claimed in foreclosure, show "Foreclosed" instead of the license ID * The `For Sale Price` for invalid parcels should be highlighted with red font & the other calculated fields should be blank. 8. Exit the modal and navigate to the respective parcel if the user clicks on the "Location" icon in the first column 9. Allow the user to modify the `Name` and/or `For Sale Price` for 1 parcel at a time (Edit & Cancel button icons in the far right column) * If there is an outstanding bid on the parcel, don't allow edits. * Streams for foreclosed parcels must be restarted individually once an ETHx balance is restablished. * The "Confirm" button submits the transaction changes to the table, the wallet, and/or Ceramic streams+pinning. It should only be enabled if a change is made to one of the editable values. 10. Display the "Total" row for the numeric columns below the table 11. Display a "Change" row for the numeric columns below the total field if any changes have been made to a `For Sale Price` * Clear this row upon submission of the edit transaction. ### 11. Wrap ETHx View For: Any user Current Reference: N/A 1. Create a new modal which allows users to wrap their ETH into ETHx 2. Display the connected wallet's current ETH balance (in decimal form) 3. Display the conencted wallet's current ETHx balance (in decimal form) 4. Entry field should accept any positive floating point value in ETH (transaction will be deominated in wei) ### 12. Streaming Info Box View For: Informational box shown at the bottom of any panel in context of a transaction submission. Current Reference: https://github.com/Geo-Web-Project/cadastre/blob/main/components/cards/FaucetInfo.js 1. This info box should take the place of the "Faucet Info" card that is currently shown at the bottom of each transaction triggering view. * Note: Faucet info for testnets will move to the header 3. It should display the user's ETHx balance pulled from their connected wallet. * Full text: Your current ETHx balance is __. We recommend wrapping enough ETH to cover at least 3 months of payments for ALL of your outstanding streams plus any required 1-time payments and deposits. 5. It should include a link to open the Payments Dashboard modal shown in wireframe #10 * Link Text: Review your streaming payment dashboard

    Import from clipboard

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lost their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template is not available.


    Upgrade

    All
    • All
    • Team
    No template found.

    Create custom template


    Upgrade

    Delete template

    Do you really want to delete this template?

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in via Google

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Tutorials

    Book Mode Tutorial

    Slide Mode Tutorial

    YAML Metadata

    Contacts

    Facebook

    Twitter

    Feedback

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions

    Versions and GitHub Sync

    Sign in to link this note to GitHub Learn more
    This note is not linked with GitHub Learn more
     
    Add badge Pull Push GitHub Link Settings
    Upgrade now

    Version named by    

    More Less
    • Edit
    • Delete

    Note content is identical to the latest version.
    Compare with
      Choose a version
      No search result
      Version not found

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub

        Please sign in to GitHub and install the HackMD app on your GitHub repo. Learn more

         Sign in to GitHub

        HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Available push count

        Upgrade

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Upgrade

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully