Solidityのスマートコントラクト-C#
Web APIを介してスマートコントラクトを.NETと接続します。
インストール
- プロジェクトをダウンロードしてヌゲットを復元します
- 独自の詳細を使用して、appsettings.jsonを構成します。
- 起動プロジェクト。
Docker Run
cmdを開き、docker-compose.ymlディレクトリを実行します。
- Docker ComposeS Up -D-> Dockerコンテナを作成して起動する
- Docker PS->すべてのコンテナを参照し、ポートをチェックします
- Open URL:http:// localhost:55757/swagger/index.html(コマンドDocker PSで指定されたポート)
Redis
docker run -name my -redis -p 6379:6379 -d redis
Redisが動作するかどうかを確認するには、次をテストできます。
docker exec -it my -redis sh
#redis-cli
ping
技術仕様
- クリーンアーキテクチャ(プレゼンテーションレイヤーには、swaggerをUIとして使用しているため、コントローラーがあります)
- 汎用リポジトリ。
- 仕事の単位。
- エンティティフレームワーク。
- APIゲートウェイパターン。
- Mediatr CQRSパターン。
エンティティフレームワーク:
パッケージマネージャーコンソールのデフォルトプロジェクト選択から常にインフラストラクチャプロジェクトをターゲットにしてください
追加移行 "db initialize" -context postgresqldbcontext(選択のコンテキスト)
update -database -context postgresqldbcontext(選択のコンテキスト)
スマートコントラクトをコンパイルするために、Solidity Extensionを備えたVisual Studioコードを使用しています。コンパイル後、.JSONファイルからABIとBYTECODEを使用します。
さまざまなスマートコントラのさまざまなコントローラーを作成しました。
SmartContractController
- deployanycontract(パラメーターの有無にかかわらず契約を展開)
- CallContractVariable(契約の変数を呼び出す)
- callreadfunction(契約内の関数を読み取る)
- callwriteFunction(契約内のwrite関数を呼び出す)
- TrackCryptowhalesForanyToken(選択したトークンで「転送」イベントを追跡します)
NetworkController
- GetBlock
- GetAllTransactionOfablock
- GetAllContractCreationTransactions
財布
- バランスを確認してください
- エーテル/トークンを別のウォレットに送信します
uniswapv2
- オールペア
- getReserves
- GetAmountSout
- 承認する
- swapexactethortokens
uniswapv3
- getReserves(getpool、トークン、バランス)
- Router02を使用したSWAPEXACTTOKENSFORTOKENS
- gettokendata(graphqlを使用)
- get mastliquidpools(graphqlを使用)
- getpooldata(graphqlを使用)GetEntswapswithinapool graphqlを使用)
宝くじのスマートコントラクト
- 展開する
- GetRandomNumber
- GetPlayers
- Get Balance
- Enterlottery
- ピックウィナー
Cryptotoken
- ERC20トークンを展開します
- Get Balance
- ミント
- 承認する
- 手当
- DestrySmartContract
- 移行
- 増加補充
- 減少補充
- やけど
- 転送
- バーンフロム
nftcontroller
CryptoCompare
さらに、次のツールを使用してABIを文字列に変換します:https://elmah.io/tools/multiline-string-converter/およびMultiline Stringからシングルラインまで:https://tools.tools.techcybo.com/Multiline-to-single-line
UNISWAPV3をテストするために価格を取得するには、次のアドレスを使用できます:0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 DAI:0X6B175474E89094C44444444498B954954EDEC495271D0FF
ユニットテスト