Skip to main content

First project setup

Initializing the SDK

以下のように、SDKの初期化を行います。

JavaScript
import CryptoShepherds from 'cryptoshepherds-sdk';

const cs = new CryptoShepherds({
walletKey: arweaveKey,
// privateKey: userPrivateKey,(optional)
// publicKey: userPublicKey,(optional)
evmPrivateKey,
arweaveNetwork: 'testnet or mainnet',
litNetwork: 'development or testnet or mainnet',
});

初期化時に必要な項目は以下の4つです。

  • arweaveWalletKey

  • evmPrivateKey

  • arweaveNetworkの選択(mainnet or testnet)

  • LitNetworkの選択(mainnet or testnet or development)

また、オプションで以下の項目を初期化時に設定することができます。

  • データ所有者のマスターアクセス権となる秘密鍵(privateKey: userPrivateKey)

  • データ所有者のマスターアクセス権となる秘密鍵野ペアとなる公開鍵(publicKey: userPublicKey)


各項目に関して詳しく見ていきましょう。

arweaveWalletKey

arweaveWalletKeyは、Arweaveでtxを作成する際に使用する秘密鍵です。

Arweaveは分散型ストレージとして、データの保存と取得のプロセスで利用します。

arweaveWalletKeyは、json形式で以下のように記述されています。

warning

以下のarweaveWalletKeyは、実際のArweave Networkで利用できるアドレスに対応しています。実際にプロジェクトを作成する際は、arweaveWalletKeyを自分で生成してください。

evmPrivateKey

EVMの秘密鍵です。 例えば、MeteMaskの秘密鍵を使用することができます。

Lit Networkで署名を行う際に使用します。

warning

privateKey: userPrivateKey,(optional)を設定しない場合には、データのマスターアクセス権を持つ秘密鍵の役割も持つことになります。 この秘密鍵を紛失すると、保存したデータへのアクセスができなくなります。

arweaveNetwork

testnetmainnetを選択できます。testnetの場合は、arweaveWalletKeyにあらかじめテストトークンを入れておく必要があります。

setUp.js
arweaveManager = new ArweaveManager();
const address = await arweaveManager.arweave.wallets.jwkToAddress(arweaveKey);

// ミント(例: 100 AR = "100000000000" winston)
const mintUrl = `http://localhost:1984/mint/${address}/100000000000`;
const mintResponse = await fetch(mintUrl);
if (!mintResponse.ok) {
throw new Error(`Failed to mint AR. Status: ${mintResponse.status}`);
}

// mine (ブロック生成)
const mineResponse = await fetch('http://localhost:1984/mine');
if (!mineResponse.ok) {
throw new Error(`Failed to mine block. Status: ${mineResponse.status}`);
}

mainnetの場合は、arweaveWalletKeyにあらかじめArweaveのネイティブトークンを入れておく必要があります。実際にコストがかかるので注意してください。

litNetwork

developmenttestnetmainnetを選択できます。

developmentの場合は、テストトークンを入れておく必要はありません。

testnetの場合は、テストトークンを入れておく必要があります。

mainnetの場合は、Litのネイティブトークンを入れておく必要があります。