まずは新しい.jsファイルを作成します。名前はなんでも構いません。
vim testcode.js
そのファイルにstart.jsの全てのコードをコピーした上で、
430行目あたり、function handleTextのswitch文に以下のコードを追加してください。
今回はチュートリアルなのでチャットボット側のアドレスや、動作確認に使うGUIウォレットのアドレス等は直接コピー&ペーストで書き込んで行きます。
- ここで言う自分とはチャットボット、相手はGUIウォレットを指します。また、デバイスアドレスとウォレットアドレスを間違えないように注意してください。
- ggの部分は任意のコマンドに置き換えて構いません
//***********
case 'gg':
var arrDefinition = ['or', [
['and', [
['address','相手のアドレス(ウォレット)'],//useraddress
['in data feed', [['I2ADHGP4HL6J37NQAD73J7E5SKFIXJOT'], 'timestamp', '>', Date.now()]]
//I2ADHGP4HL6J37NQAD73J7E5SKFIXJOTはタイムスタンプオラクルのアドレスです。
]
],
['and', [
['address', '自分のアドレス(ウォレット)'],//myaddress
['in data feed', [['I2ADHGP4HL6J37NQAD73J7E5SKFIXJOT'], 'timestamp', '>', Date.now()]]
]
]
]];
var device = require('byteballcore/device.js');
var assocSignersByPath = {
'r.0.0': {
address:'相手のアドレス(ウォレット)',//user_address
member_signing_path: 'r', // unused, should be always 'r'
device_address: '相手のアドレス(デバイスアドレス)'//user_device_address
},
'r.1.0': {
address: '自分のアドレス(ウォレット)',//myaddress
member_signing_path: 'r', // unused, should be always 'r'
device_address: device.getMyDeviceAddress()
}
};
var walletDefinedByAddresses = require('byteballcore/wallet_defined_by_addresses.js');
walletDefinedByAddresses.createNewSharedAddress(arrDefinition, assocSignersByPath, {
ifError: function(err){
// handle error
device.sendMessageToDevice(from_address, 'text', 'contract create error:'+err);
},
ifOk: function(shared_address){
// new sharer address created
//1000は相手に要求する支払額。任意の値に変更可能
var arrPayments = [{address: shared_address, amount: 1000, asset: 'base'}];
var assocDefinitions = {};
assocDefinitions[shared_address] = {
definition: arrDefinition,
signers: assocSignersByPath
};
var objPaymentRequest = {payments: arrPayments, definitions: assocDefinitions};
var paymentJson = JSON.stringify(objPaymentRequest);
var paymentJsonBase64 = Buffer(paymentJson).toString('base64');
var paymentRequestCode = 'payment:'+paymentJsonBase64;
var paymentRequestText = '[your share of payment to the contract]('+paymentRequestCode+')';
device.sendMessageToDevice(from_address, 'text', paymentRequestText);
}
});
break;
//***********