Set Share Data
このセクションでは、共有するデータの設定方法について説明します。
CryptoShepherds Protocolでは、共有するデータの設定にsetShareDataメソッドを使用します。
JavaScript
cs.setShareData('/path/to/folder', 'filename', decryptionCondition);
setShareDataメソッドは、共有するデータのパス、ファイル名、復号条件を引数に取り、共有するデータを設定します。
'/path/to/folder'
'filename'
decryptionCondition
引数に渡すフォルダは、createFolderメソッドで作成したフォルダである必要があります。
decryptionConditionは、復号条件を設定するためのオブジェクトです。
詳しくは、Decrypt Conditionsセクションで説明します。
この例では、オフチェーンコードの実行によるアクセス条件の検証を行っています。
以下のdecryptionConditionでは、気温が40度未満の場合にtrueを返す条件を設定しています。
decryptionCondition.js
const acc = [
{
contractAddress: '',
standardContractType: 'LitAction',
chain: 'ethereum',
method: 'go',
parameters: ["40"],
returnValueTest: {
comparator: '=',
value: 'true'
}
}
];
const go = async (maxTemp) => {
const url = "https://api.weather.gov/gridpoints/LWX/97,71/forecast";
try {
const response = await fetch(url).then((res) => res.json());
const nearestForecast = response.properties.periods[0];
const temp = nearestForecast.temperature;
return temp < parseInt(maxTemp);
} catch (e) {
console.log(e);
}
return false;
};
export default {
accessControlConditions: acc,
litActionCode: go,
chain: 'ethereum'
};
このdecryptionConditionをsetShareDataメソッドの引数に渡すことで、accessDataメソッドを実行された際に気温が40度未満の場合に、/myfamily/tripフォルダに保存されたtrip.jpgファイルにアクセスできるようになります。
JavaScript
import decryptionCondition from './decryptionCondition';
cs.setShareData('/myfamily/trip', 'trip.jpg', decryptionCondition);
データのアクセスに関しては、Access Dataセクションで詳しく説明します。