---
# System prepended metadata

title: FunPla Owner BC開発共有ドキュメント
tags: [SAIGATE]

---

###### tags: `SAIGATE`
# FunPla Owner BC開発共有ドキュメント
ブロックチェーン部分で使用しているライブラリなどの技術仕様書
詳細なフローについては、図示はしていないが各関数の連携などを記載。
## 目次
1. NFT Market
2. ERC20
3. ERC721

## NFT Market
今回デプロイするメインのコントラクト。
関数の動作については、以下で説明する各トークン規格のソースコードに記載。

### FirstNFTtransfer
一次流通の際に呼び出す関数。
この中の機能はMintと購入者へのTransferになる。

#### 引数

    address recipant（購入者のアドレス）
    address genesis（公式出品者のアドレス）
    uint256 tokenId（トークンID）

#### 成功レスポンス
ブロックに書き込まれたタイミングでこのレスポンスが帰ってくる。
これが来るまではブロックに取り込まれるのを待っているか、エラーが起きている。

![](https://i.imgur.com/wIOSMxK.png)

#### エッジケース
* address genesis もしくは address recipant が ブランクの場合はトランザクションが走らない。
![](https://i.imgur.com/m5EExGu.png)

* 指定したToken Idが既に発行されていた場合トランザクションが走らない。
![](https://i.imgur.com/tCoI7w3.png)

* トランザクションに署名が行われない。
![](https://i.imgur.com/O3lEUPl.png)

### TransferNFT
二次流通以降で呼び出される関数。
これではNFTのトランスファーのみが行われる。

#### 引数
    address to (購入者のアドレス)
    address from (出品者のアドレス)
    uint256 tokenId (トークンID)

#### 成功レスポンス
ブロックに書き込まれたタイミングでこのレスポンスが帰ってくる。
これが来るまではブロックに取り込まれるのを待っているか、エラーが起きている。

#### エッジケース

### purchaseTokenbyMatic
Matic決済でNFTを購入した際の決済関連のコントラクト。
購入者への売上金の送金、アーティストへのロイヤリティの支払い、FanplaOwnerへの手数料の支払いが行われる。

#### 引数
        address sender, /*購入者*/
        address recipient, /*販売者*/
        uint256 amount, /*販売金額*/
        address genesis, /*製作者*/
        address market, /*運営者*/
        uint fee, /*プラットフォーム手数料のパーセンテージ*/
        uint loyalty /*ロイヤリティのパーセンテージ*/
        
#### 成功レスポンス

#### エッジケース