###### 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 /*ロイヤリティのパーセンテージ*/ #### 成功レスポンス #### エッジケース