diff --git a/ja-jp/exchange/general.md b/ja-jp/exchange/general.md new file mode 100644 index 0000000000..1aad5ad5d8 --- /dev/null +++ b/ja-jp/exchange/general.md @@ -0,0 +1,8 @@ +# 取引所開発者向けのドキュメント + +このドキュメントは、取引所開発者が取引所のサーバー上にNEOのノードを設置し、NEOの資産取引に関連するプログラムの開発を補助することを目的としています。このドキュメントを読む前に、[NEOホワイトペーパー](../index.html)を読み、NEOの概要と技術を理解しておいてください。 + +> [!注意] +> +> NEO-CLIのバージョンが異なると、取引所との接続方法が異なります。クライアントのバージョンをアップグレードする前に、バージョンによる動作の違いに注意してください。 + diff --git a/ja-jp/exchange.md b/ja-jp/exchange/v2.6.0.md similarity index 100% rename from ja-jp/exchange.md rename to ja-jp/exchange/v2.6.0.md diff --git a/ja-jp/toc.yml b/ja-jp/toc.yml index 3355a8342a..15f851e16a 100644 --- a/ja-jp/toc.yml +++ b/ja-jp/toc.yml @@ -81,6 +81,16 @@ href: node/whitepaper.md - name: コンセンサスメカニズム href: node/consensus.md +- name: NEOユーティリティー + href: utility/sdk/introduction.md + items: + - name: NEO SDK(ソフトウェア開発キット) + href: utility/sdk/introduction.md + items: + - name: NEO SDKとは? + href: utility/sdk/introduction.md + - name: 一般的な使用方法 + href: utility/sdk/common.md - name: スマートコントラクト href: sc/introduction.md items: @@ -184,6 +194,9 @@ - name: システムの手数料 href: sc/systemfees.md - name: 取引所開発者向けドキュメント - href: exchange.md + href: exchange/general.md + items: + - name: v2.6.0 + href: exchange/v2.6.0.md - name: 協力者 href: contributors.md diff --git a/ja-jp/utility/sdk/common.md b/ja-jp/utility/sdk/common.md new file mode 100644 index 0000000000..37b7a2c416 --- /dev/null +++ b/ja-jp/utility/sdk/common.md @@ -0,0 +1,132 @@ +# NEO SDKの一般的な使用方法 + +### 16進文字列とバイト配列の変換 + +```c# +//16進文字列をバイト配列へ変換 +string pubkey = "03335e39ec91a16797ddc2af00feee1cb57c2e6382dc5ba59efa7d65302e4b5a33"; +var bytes = pubkey.HexToBytes(); +//バイト配列を16進文字列へ変換 +string pubkey2 = bytes.ToHexString(); +Console.WriteLine(pubkey2); +``` + +### DateTimeとUnixタイムスタンプの変換 + +```c# +//DateTimeをUnixタイムスタンプへ変換 +DateTime date = new DateTime(2018,1,1,0,0,0); +uint timestamp = date.ToTimestamp(); +//UnixタイムスタンプをDateTimeへ変換 +DateTime date2 = timestamp.ToDateTime(); +Console.WriteLine(date2.ToString()); +``` + +### NEOアドレスの確認 + +```c# +try +{ + Neo.Wallets.Wallet.ToScriptHash("AV9XwWP1VX1oQWBJR4BAHjSai6VW5vCYVS "); + Console.WriteLine("NEO address is correct"); +} +catch (Exception) +{ + Console.WriteLine("NEO address is wrong"); +} +``` + +アドレスが間違っていると例外がスローされます。また、APIを使用してNEOアドレスを確認することもできます。詳細については、[validateaddressメソッド](ja-jp/node/api/validateaddress.md)を参照してください。 + +### WIF秘密鍵の確認 + +```c# +try +{ + Neo.Wallets.Wallet.GetPrivateKeyFromWIF("KyGnCKKnL1xCZ8V2bo8vZvTpVrwAGnAXTmRqBEwA5JG2mqdgfgSx"); + Console.WriteLine("WIF is correct"); +} +catch (Exception) +{ + Console.WriteLine("WIF is wrong"); +} +``` + +秘密鍵が間違っていると例外がスローされます。 + +### 公開鍵と秘密鍵の生成 + +```c# +using (CngKey key = CngKey.Create(CngAlgorithm.ECDsaP256, null, new CngKeyCreationParameters { ExportPolicy = CngExportPolicies.AllowPlaintextArchiving })) +{ + var privateKey = key.Export(CngKeyBlobFormat.EccPrivateBlob); + var account = new Neo.Wallets.KeyPair(privateKey); + var ecpoint = account.PublicKey; + Console.WriteLine($"WIF private key:{account.Export()}"); + Console.WriteLine($"hexadecimal public key:{ecpoint.ToString()}"); +} +``` + +### 秘密鍵からアドレスを生成 + +```c# +public void Generate(byte[] privateKey) +{ + var account = new Neo.Wallets.KeyPair(privateKey); + var sc = Neo.SmartContract.Contract.CreateSignatureContract(account.PublicKey); + Console.WriteLine($"The standard address {sc.Address} is created"); + Console.WriteLine($"The WIF {account.Export()} is created"); +} +``` + +### 公開鍵からアドレスを生成 + +```c# +public void Generate(byte[] publicKey) +{ + var ecpoint = Neo.Cryptography.ECC.ECPoint.FromBytes(publicKey, Neo.Cryptography.ECC.ECCurve.Secp256r1); + var sc = Neo.SmartContract.Contract.CreateSignatureContract(ecpoint); + Console.WriteLine($"The standard address {sc.Address} is created"); +} +``` + +### ウォレットファイルの作成 + +```c# +//ウォレットの作成 +var wallet = new Neo.Implementations.Wallets.NEP6.NEP6Wallet("wallet.json"); //ウォレット名 +wallet.Unlock("password"); //Specify wallet password +wallet.CreateAccount(); +wallet.Save(); +//ウォレットアドレスの入力 +var accounts = wallet.GetAccounts(); +foreach (var item in accounts) +{ + Console.WriteLine(item.Address); +} +``` + +上記のコードを用いて、NEP-6標準のウォレットファイルを作成することが出来ます。 + +### ウォレットファイルを開く + +```c# +var wallet = new Neo.Implementations.Wallets.NEP6.NEP6Wallet("wallet.json"); //ウォレット名 +try +{ + wallet.Unlock("password"); //Wallet password + var accounts = wallet.GetAccounts(); + foreach (var item in accounts) + { + Console.WriteLine(item.Address); + } +} +catch (Exception) +{ + Console.WriteLine("Password is wrong"); +} +``` + +ウォレットをロック解除するためのパスワードが間違っていると、例外がスローされます。 + +このドキュメントは、NEO SDKの一般的な用途を追加するために編集中です。 diff --git a/ja-jp/utility/sdk/introduction.md b/ja-jp/utility/sdk/introduction.md new file mode 100644 index 0000000000..e061efd653 --- /dev/null +++ b/ja-jp/utility/sdk/introduction.md @@ -0,0 +1,51 @@ +# NEO SDK(ソフトウェア開発キット) + +NEO SDKを使用することで、ウォレットクライアント、ゲームなど、NEOに基づいた様々なアプリケーションを開発できます。NEO SDKを使用すると、NeoVMに移行することなく既存の環境でプロジェクトを実行できます。NeoVMでの開発に関する情報は、[スマートコントラクト](ja-jp/sc/introduction.md)を参照してください。 + +このドキュメントはNEO 2.7.1に適合します。NEO SDKでのアプリケーション開発は、Visual Studio 2017と連携して行う方がより簡単です。 + +## ダウンロード + +1. Visual Studio 2017で、新しいプロジェクトを作成します。 +2. プロジェクト名を右クリックし、[Manage NuGet program package]を選択します。 +3. [NEO]を検索し、NEOパッケージをインストールします。 + +別の方法として、[NuGetパッケージ](https://www.nuget.org/packages/Neo/2.7.1)をダウンロードして手動でインストールすることもできます。 + +## プロジェクト構成 + +NEO SDKは、下記のもので構成されています。 + +**NEO SDKの主要プロジェクト:** + +NEO:https://github.com/neo-project/neo + +NeoVM:https://github.com/neo-project/neo-vm + +**NEO SDK従属:** + +.NETFramework 4.7 + +​ Microsoft.AspNetCore.Server.Kestrel (>= 2.0.0) + +​ Microsoft.AspNetCore.Server.Kestrel.Https (>= 2.0.0) + +​ Microsoft.AspNetCore.WebSockets (>= 2.0.0) + +​ Microsoft.EntityFrameworkCore.Sqlite (>= 2.0.0) + +​ Microsoft.Extensions.Configuration.Json (>= 2.0.0) + +​ Replicon.Cryptography.SCrypt (>= 1.1.6.13) + +.NETStandard 2.0 + +​ Microsoft.AspNetCore.Server.Kestrel (>= 2.0.0) + +​ Microsoft.AspNetCore.Server.Kestrel.Https (>= 2.0.0) + +​ Microsoft.AspNetCore.WebSockets (>= 2.0.0) + +​ Microsoft.EntityFrameworkCore.Sqlite (>= 2.0.0) + +​ Microsoft.Extensions.Configuration.Json (>= 2.0.0)