Skip to main content

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'
};

このdecryptionConditionsetShareDataメソッドの引数に渡すことで、accessDataメソッドを実行された際に気温が40度未満の場合に、/myfamily/tripフォルダに保存されたtrip.jpgファイルにアクセスできるようになります。

JavaScript
import decryptionCondition from './decryptionCondition';

cs.setShareData('/myfamily/trip', 'trip.jpg', decryptionCondition);

データのアクセスに関しては、Access Dataセクションで詳しく説明します。