便宜上、JS SDK は getHash、toDecimal、toUtf8、getKeyInfo、decryptAESWithPassword などの複数の関数を備えています。これらの関数は、次の 2 つの方法で使用できます。
Chain という名前のグローバルオブジェクト、または chain という名前の初期化された環境インスタンスを使用します。
Chain.utils.getHash('Tester001') // アカウント名を使用してアカウント ID を計算します
Java.util パッケージを個別に導入します。
const Util = require('@alipay/mychain/lib/ant3/util')
Util.getHash('Tester001')
getHash
GetHash() 関数を使用して、文字列のハッシュを返します。この文字列は通常、アカウント ID として使用されます。
リクエストパラメーター
| パラメーター |
必須 |
タイプ |
説明 |
| msg |
true |
string |
ハッシュ関数の入力として使用されるターゲット文字列。 |
| not0x |
false |
bool |
応答は 16 進数形式です。「0x」というプレフィックスを文字列に付けるかどうかを示します。true の値は、文字列に「0x」というプレフィックスが付いていないことを示します。false の値は、文字列に「0x」というプレフィックスが付いていることを示します。 |
レスポンスパラメーター
| レスポンスフィールド |
フィールドタイプ |
説明 |
| result |
string |
文字列に「0x」というプレフィックスが付いているかどうかを識別するために使用される 16 進数文字列。 |
例
const accountId = Chain.utils.getHash('Tester001')
toDecimal
16 進数文字列を 10 進数文字列に変換します。BigNumber オブジェクトを入力パラメーターとして渡すことができます。
リクエストパラメーター
| パラメーター |
必須 |
タイプ |
説明 |
| value |
true |
string/BigNumber |
ターゲットパラメーター。 |
レスポンスパラメーター
| レスポンスフィールド |
フィールドタイプ |
説明 |
| result |
number |
10 進数。 |
例
const num = Chain.utils.toDecimal('0x64')
toUtf8
16 進数文字列を UTF-8 文字列に変換します。
リクエストパラメーター
| 名前 |
必須 |
タイプ |
説明 |
| value |
true |
string |
16 進数文字列。 |
レスポンスパラメーター
| レスポンスフィールド |
フィールドタイプ |
説明 |
| result |
string |
UTF-8 文字列。 |
例
const str = Chain.utils.toUtf8('0xe89a82e89a81e58cbae59d97e993be')
getKeyInfo
アカウント情報を取得します。
リクエストパラメーター
| 名前 |
必須 |
タイプ |
説明 |
| value |
true |
string |
アカウントファイル(user.pem)または「0x」というプレフィックスが付いた 16 進数秘密鍵文字列を読み取ります。 |
| passphrase |
false |
string |
アカウントファイル user.pem のパスワード。value パラメーターが 16 進数秘密鍵文字列の場合、このパスワードを設定する必要はありません。 |
レスポンスパラメーター
| レスポンスフィールド |
フィールドタイプ |
説明 |
| result |
object |
秘密鍵オブジェクト。 |
| result.privateKey |
Buffer |
秘密鍵バッファー。 |
| result.publicKey |
Buffer |
公開鍵バッファー。 |
例
const result = Chain.utils.getKeyInfo('0x2768d0e80eb904560aa0a3ff4fc96b2f4d1e5d1fe293cc69c07808765ab20c29')
decryptAESWithPassword
Trusted Execution Environment(TEE)復号メソッド。
リクエストパラメーター
| 名前 |
必須 |
タイプ |
説明 |
| output |
true |
string |
復号化するデータ。たとえば、コントラクトから返された出力。 |
| aesKey |
true |
string |
このパラメーターはパスワードとして渡され、ターゲットの暗号化されたトランザクションハッシュとともに使用されて、対称 AES キーが生成されます。文字列タイプが使用される場合、このメソッドは文字列に「0x」というプレフィックスが付いているかどうかを確認します。「0x」というプレフィックスが付いている場合は、16 進数文字列として読み取られます。そうでない場合は、エンコードされた ASCII 文字列として読み取られます。 |
| hash |
true |
string |
トランザクションハッシュ。 |
レスポンスパラメーター
| レスポンスフィールド |
フィールドタイプ |
説明 |
| result |
string |
復号された出力。 |
例
const result = Chain.utils.decryptAESWithPassword('0x83568fd7f92d39e42523d59305c383bb24fc7a404f37d0b95d622246fa198037f91ae16edb071dec3a96c919d714c7fe99cc6c6da025376e53aa946c', '0x1c4f2919963e8dc040cfddf7d27227de', '0xf91ae16edb071dec3a96c9196f8505f6d49f4ae79707c10ac73455a95e04e03d')
decryptTXWithAES
TEE に基づくブロックチェーン。
リクエストパラメーター
| 名前 |
必須 |
タイプ |
説明 |
| tx |
true |
string |
復号化するトランザクションデータ。データは「0x」というプレフィックスが付いた 16 進数形式です。 |
| aesKey |
true |
string or buffer |
このパラメーターはパスワードとして渡され、ターゲットの暗号化されたトランザクションハッシュとともに使用されて、対称 AES キーが生成されます。文字列タイプが使用される場合、このメソッドは文字列に「0x」というプレフィックスが付いているかどうかを確認します。「0x」というプレフィックスが付いている場合は、16 進数文字列として読み取られます。そうでない場合は、エンコードされた ASCII 文字列として読み取られます。 |
| hash |
true |
string |
ターゲットトランザクションハッシュ。 |
レスポンスパラメーター
| レスポンスフィールド |
フィールドタイプ |
説明 |
| result |
object |
復号されたトランザクションオブジェクト。 |
例
const result = Chain.utils.decryptTXWithAES('0x00011660bbb61f5a66ab5cf78910831c41ed6b9eafb60fe3d14fa9a5a8fe4e800b30a3a8d8d6a4e8cbfc511e8f967509acf9d08c96c62da111b4886f0a3a0441dcc2887fd88243aa671a0f2fc08822d1c9d99db571b7d81207809e1f81629b38e9184221570bb1ef265d4f91d1967219fd51127712c60ae2990feaa2f4d021e71af5073de40a092de84609aead81882686595d4cf09672ef6aee28ed3894f6eb9d2b80000a4c02795d64785191bb7f076b9d2bb3552734fb0c2335f81424053f066a50242812aa92ecf82a212770d1adcb37717d01980bc7898258301d9b86344e5b338efa675e8ed7baaf6e03d464469eb24fb369444e29d08e573a287b02946e4c1dbd8e38a74a5c64f6c3e17bd8ac48626f4c240d96d5b7a1262f5034f838dd6811418cdf33eb6f1660664ea620318ec28f36b4860257a3d0b926788036e48a46aa84dbfe968e1def8a62170c286ceb5e4ef44856af6810678210ac7851f2e251aa28a4f0682d1880c27cdad697f53cc7a6d4acb1378e01b1aed9919a01f1b7c538441baaf4e1e90df9814f6da0c7989e9c56e218098f6700281bfc92f96f95c4f711c03174bbe7b0f0697ee70cbe772b53676b09d7f72547a81453021617c5e79e6484bd29c1304dcffece04cb1debfca235f513cf3f1a20326d8007038666f0f9259e5ec4af94b0cdebc1bd1f894e44eca006714cb2e2065979214f7223c6c5c9073350faa60dd6bdf3dae72c09358167adadb56cd7e0fd1d065a97d6a6c7c23132ab7357ff48e9ed913f95aff1442d0d1878', '0x1c4f2919963e8dc040cfddf7d27227de', '0xb9fc5d963d094e03072c5cad233efc80023a7a9bd68a4bca98e80c99214aa68e')
generateAESKey
TEE に基づくブロックチェーンの場合、指定された AES キーは、指定されたトランザクションハッシュとともに使用されて、ターゲットトランザクションの最終的な AES キーが生成されます。通常、単一のトランザクションを共有する場合に使用されます。
リクエストパラメーター
| 名前 |
必須 |
タイプ |
説明 |
| aesKey |
true |
String or buffer |
このパラメーターはパスワードとして渡され、ターゲットの暗号化されたトランザクションハッシュとともに使用されて、対称 AES キーが生成されます。文字列タイプが使用される場合、このメソッドは文字列に「0x」というプレフィックスが付いているかどうかを確認します。「0x」というプレフィックスが付いている場合は、16 進数文字列として読み取られます。そうでない場合は、エンコードされた ASCII 文字列として読み取られます。 |
| hash |
true |
string |
トランザクションハッシュ。 |
レスポンスパラメーター
| レスポンスフィールド |
フィールドタイプ |
説明 |
| result |
string |
ターゲットトランザクション用に派生された最終的な AES キー。 |
例
// case-1 result(hex): b2bafab38c678a4519aa9822aa6c4e53
console.log('AES Key:', Chain.utils.generateAESKey('0x3b1fa6e5c8a3df729bdb6bf415150ddd', '0x6f3f709fcce4509ca4c2e009d9be668d9f0cc9c91247180f9b6d1011cb20291c').toString('hex'))
// case-2 result(hex): 0b985d88bb3b7c932028512bcd1eb10e
console.log('AES Key:', Chain.utils.generateAESKey('1234abc', '0x6f3f709fcce4509ca4c2e009d9be668d9f0cc9c91247180f9b6d1011cb20291c').toString('hex'))