⚠️ ご利用にはスマートフォンにaLiceアプリがインストールされている必要があります。 コールバックURLはhttps推奨です。
alice-cookieは、Symbolブロックチェーン向けの署名スマホアプリ「aLice」と連携するためのユーティリティライブラリです。
主にWebアプリやサービスからaLiceアプリを呼び出し、トランザクションやデータの署名をリクエストする用途で利用します。
- aLiceアプリのカスタムURLスキームを利用した署名リクエスト
- トランザクション署名、アグリゲートボンデッド署名、UTF8文字列署名、バイナリデータ署名などに対応
- コールバックURLによる署名結果の受け取り
- TypeScript対応
yarn add alice-cookie
# または
npm install alice-cookie| プロパティ | 型 | 省略可 | デフォルト値 | 説明 |
|---|---|---|---|---|
| serializedTransaction | Uint8Array | × | - | 署名対象トランザクション |
| serializedTransactions | Uint8Array[] | × | - | 一括署名用トランザクション配列 |
| stringUtf8 | string | × | - | 署名対象UTF8文字列 |
| binaryData | Uint8Array | × | - | 署名対象バイナリデータ |
| callbackUrl | string | ○ | - | 署名後のコールバックURL |
| method | 'get'|'post'|'announce' | ○ | 'get' | コールバック方式 |
| publicKey | string | ○ | - | 署名者の公開鍵 |
| node | string | ○ | - | アナウンスノードURL |
| hashLockDuration | number | ○ | 480 | ハッシュロック期限(アグリゲートボンデッド用) |
※各関数で利用しないプロパティは無視されます。
| メソッド名 | 用途 | 主な引数型 | 返り値型 |
|---|---|---|---|
| aliceRequestSignTransaction | トランザクション署名 | AliceSignTransactionOptions | Promise |
| aliceRequestSignAggregateBondedTx | アグリゲートボンデッド署名 | AliceSignAggregateBondedTxOptions | Promise |
| aliceRequestSignUtf8 | UTF8文字列署名 | AliceSignUtf8Options | Promise |
| aliceRequestSignBinaryHex | バイナリデータ署名 | AliceSignBinaryHexOptions | Promise |
| aliceRequestSignBatches | 複数トランザクション署名 | AliceSignBatchesOptions | Promise |
| aliceRequestPublicKey | 公開鍵取得 | AlicePublicKeyOptions | Promise |
| aliceGetResponseGet | レスポンス取得 | なし | 各種レスポンス型 |
- コールバックURLはhttpsを推奨します。
- スマートフォンのブラウザでaLiceアプリから遷移できるURLを指定してください。
import { aliceRequestSignTransaction } from 'alice-cookie'
aliceRequestSignTransaction({
serializedTransaction: tx.serialize(),
callbackUrl: 'https://your-app/callback',
method: 'get',
publicKey: '公開鍵文字列',
node: 'https://symbol-node',
})import { aliceRequestSignAggregateBondedTx } from 'alice-cookie'
aliceRequestSignAggregateBondedTx({
serializedTransaction: tx.serialize(),
hashLockDuration: 480,
callbackUrl: 'https://your-app/callback',
method: 'get',
publicKey: '公開鍵文字列',
node: 'https://symbol-node',
})import { aliceRequestSignUtf8 } from 'alice-cookie'
aliceRequestSignUtf8({
stringUtf8: '署名したい文字列',
callbackUrl: 'https://your-app/callback',
method: 'get',
publicKey: '公開鍵文字列',
node: 'https://symbol-node',
})import { aliceRequestSignBinaryHex } from 'alice-cookie'
aliceRequestSignBinaryHex({
binaryData: new Uint8Array([0x01, 0x02, 0x03]),
callbackUrl: 'https://your-app/callback',
method: 'get',
publicKey: '公開鍵文字列',
node: 'https://symbol-node',
})import { aliceRequestSignBatches } from 'alice-cookie'
aliceRequestSignBatches({
serializedTransactions: [tx1.serialize(), tx2.serialize()],
callbackUrl: 'https://your-app/callback',
method: 'get',
publicKey: '公開鍵文字列',
node: 'https://symbol-node',
})import { aliceRequestPublicKey } from 'alice-cookie'
aliceRequestPublicKey({
callbackUrl: 'https://your-app/callback',
})import { aliceGetResponseGet } from 'alice-cookie'
const response = aliceGetResponseGet()
// レスポンス内容は署名種別により異なります
// 返却型例:
// - トランザクション署名: { signedPayload, pubkey, network, signedHashLockPayload? } (AliceSignTxResponse)
// - UTF8文字列署名: { signature, originalData, network } (AliceSignUtf8Response)
// - 複数署名: { signedPayloads, pubkey } (AliceSignBatchesResponse)
// - 公開鍵取得: { pubkey, network } (AlicePublicKeyResponse)
// - エラー: { error } (AliceErrorResponse)- 不具合・要望はGitHub Issuesへご連絡ください。
- 対応環境: モダンブラウザ(スマートフォン推奨)、Node.js v18以降
Apache-2.0