智能合約規格

  • 2022/10/29 updated

關於此文件

此文件將說明《Positive Coin 帕斯堤貨幣》2022 版本中需要實作的智能合約。文件內容包含合約的功能需求,以及前端頁面呈現的需求。

概念說明

《Positive Coin》想要處理的議題是關於愛滋認同,因此我們需要設計一個貨幣 以下用 POS 代稱。該貨幣的漲跌、對價關係與市場無關,而是與愛滋認同有關。

為了「根據認同控制這個對價關係」,就無法把貨幣丟到實際上的市場,而是需要自訂一個智能合約處理對價關係。

架構說明

NOTE: 以下使用者網路爬蟲資料庫 僅用來說明整體架構,不在這份文件中規範。

Created with Raphaël 2.2.0使用者使用者資料庫資料庫網路爬蟲網路爬蟲智能合約智能合約買幣者買幣者網頁儀錶板網頁儀錶板儲存問答結果讀取使用者的回答根據回答定義 x 值 (POS 和 ETH 的兌換率)更新 x 值發送 n*x 個 ETH回送 n 個 POS讀取 x 值顯示 1 POS = x ETH 的對價關係

合約需求

以下是根據上述架構說明所制定的規格。如果有發現安全疑慮的部分,歡迎提出來討論。

  • 合約可以部署在 Ethereum(ETH)、Solana(SOL) 或 Tezos(XTZ),xDAI?? 如果允許的話,建議優先選擇手續費低廉的鏈。以下描述假設是 ETH,但仍可替換為 SOL 或 XTZ。
  • 合約本身能夠乘載 ETH,以及自行發行的 Positive Coin 代號 POS。
  • 合約裡維護一個對價關係 x 全域變數,該 x 代表用多少 ETH 可以換得一個 POS 1 POS = x ETH
  • 合約最重要的事情就是能接收買幣者的錢包地址發送的 ETH 並且回送 POS 給買幣者
Created with Raphaël 2.2.0買幣者買幣者智能合約智能合約接收 ETH 回 POS發送 n*x 個 ETH假設 1 POS = x ETH計算 (n*x)/x=n (POS)回傳 n 個 POS
  • 只有合約認可的管理者(紫彤)能夠將 ETH 轉出
Created with Raphaël 2.2.0其他人其他人智能合約智能合約管理員管理員允許存入 ETH拒絕轉出 ETH存入 ETH提取 ETH
  • POS 不夠的時候,能夠多次發行 轉入合約
Created with Raphaël 2.2.0智能合約智能合約管理員管理員目前持有 m POS再次發幣 100 POS目前持有 m+100 POS
  • 提供公開查詢 x (對價)的 API 介面
Created with Raphaël 2.2.0Web3/PythonWeb3/Python智能合約智能合約查詢 x目前 x = 0.0010.001
  • 提供以程式(ex: Python)設定 x (對價)的 API 介面 但必須以管理員的身分
Created with Raphaël 2.2.0智能合約智能合約Web3/Python(管理員)Web3/Python(管理員)目前 x = 0.001設定 x = 0.002目前 x = 0.002

網頁介面需求

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • 進入「Buy Positive Coin」頁面後,可以連結錢包。
  • 顯示目前 1 POS 和 ETH 的對價關係(即 x 值)
  • 使用者輸入要購買的 POS 貨幣,自動計算需要支付多少 ETH
  • 按下 Buy It 觸發交易,與上述的合約互動