今回お遊びとして作った息抜きコンテンツ第一弾としてnode.jsのeosjsモジュールを使用してのメールが届いて、あるキーワードが文面に入っていたら送金するプログラムを作ってみました。
メールトリガーで送金
今回はeosjs v16.0.9を使用します。
動作内容としてはメール本文に”star”というキーワードが入っていたらEOSを特定のEOSアカウントに送金するというプログラムです。
このプログラムがなにかのヒントになったら幸いです。
#! /usr/bin/node
/* eosjsのモジュールをインポートする */
const Eos = require('eosjs');
/* メールを操作するinboxモジュールをインポートする */
var inbox = require("inbox");
const simpleParser = require('mailparser').simpleParser;
eos = Eos({
keyProvider: '5K2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',//秘密鍵
httpEndpoint: 'https://jungle2.cryptolions.io:443',//jungleテストネットAPI接続
chainId: 'e70aaab8997e1dfce58fbfac80cbbb8fecec7b99cf982a9444273cbc64c41473',//junleテストネットのチェーンID
});
const server = "xxxxx.com" //imapメールサーバーを指定
const user = "[email protected]" //メールサーバーログインアカウント
const password = "xxxxxxxxx" //メールサーバーログインパスワード
/* メールサーバーへ接続設定する */
var client = inbox.createConnection(false, server, {
secureConnection: true,
auth:{
user: user,
pass: password
}
})
/* メールサーバー接続 */
client.connect();
/* メールサーバー接続の動作 */
client.on("connect", function(){
console.log ("*** connected ***")
/* メールサーバーをオープンする */
client.openMailbox("INBOX", function(error, info){
/* オープンエラーならばコンソールにエラー内容を表示する */
if(error) throw error;
/* メールサーバーの中身を読みに行く(※これがないと新着が表示されなかった) */
client.listMessages(-10, function(err, messages){});
});
});
/* 新しいメールが届いたら */
client.on("new", function(message){
/* タイトル、送り主、着信時間をコンソールに表示する */
console.log(message.title, message.from, message.date, message.UID);
/* メール本文の情報を取得する */
var stream = client.createMessageStream(message.UID);
/* メール本文内容を読む */
simpleParser(stream).then(mail=> {
/* メールの内容をテキストベースに変換する */
var body = String(mail.text);
/* メールの内容をコンソールに出力する */
console.log('本文(HTMLテキスト):' + body);
/* starというキーワードをメール本文から検索する。 */
var result = body.indexOf('star');
/* starキーワードがあればEOSを送金する */
if(result != -1){
transfer("active", "fromaccount1", "toeossend111", 0.0001, "EOS", null);
}
/* starキーワードがなければno send!と出力する */
else{
console.log('no send!');
}
})
.catch(err=> {
/* エラーならば出力する */
console.log(err);
});
});
/* EOSを送金する関数 */
function transfer(sPermission, sSendAccount, sRecAccount, fAmount, sSymbol, sMessage){
options = {
authorization:[`${sSendAccount}@${sPermission}`],
broadcast: true,
sign: true
}
var num = new Number(fAmount);
if(sMessage == null) sMessage = '';
eos.transfer(sSendAccount, sRecAccount, String(num.toFixed(4)) + ' ' + sSymbol, sMessage, options).then(res => {
console.log('sent: ', res);
}).catch(err => {
console.error('error: ', err);
});
}
まとめ
今回はメール受信時に特定のキーワードが本文に入ってたら仮想通貨EOSを送金するプログラムを作りました。
メール通知プログラムを駆使して面白いdAppsを作ってみてはいかがでしょうか。
ビットコインは仮想通貨の基軸通貨とも言われており、基本的にどの取引所でも取引できます。
同じビットコインでも、取引所の使い勝手やサービスによって自身に合う取引ができるか異なるため、取引所ごとの特徴を掴むことが重要です。
ここではビットコイン取引におすすめの取引所と、その特徴を紹介します。
bitFlyer
- 2014年からサービスを開始した老舗
- ビットコインやイーサリアムのレバレッジ取引にも対応
- 専用アプリではチャート分析まで可能
bitFlyer(ビットフライヤー)は、ビットコインの取引量で6年連続国内No.1になった取引所です。サービスを開始したのは2014年と、国内取引所の中ではサービス歴が長く、メガバンクも出資していることから将来の成長性も見込めます。
専用のアプリは機能が充実していて、取引量のチェックだけでなくチャート分析まで行えます。
また、Brave(ブレイブ)ブラウザ閲覧報酬のBATを受け取れる唯一の取引所です。
さらにbitFlyerはセキュリティ対策にも力を入れており、これまでハッキングで被害を受けたことがありません。
1回でもハッキングされた所は避けたい」という場合は、真っ先に候補に上がる取引所でしょう。
取引所名 | bitFlyer(ビットフライヤー) |
---|---|
最低取引数量(取引所) | 0.001BTC |
取扱通貨数 | 17通貨 |
取引手数料(取引所) | 0.01~0.15% |
入金手数料 | 銀行振込 : 無料クイック入金住信SBIネット銀行 : 無料住信SBIネット銀行以外 : 330円 |
出金手数料 | 220~770円 |
Coincheck
- マネックスグループ傘下の安心感
- 取引手数料・入金手数料が無料
- 最小500円でビットコインが手に入る
Coincheck(コインチェック)は、東証プライム市場に上場しているマネックスグループ傘下の取引所です。
アプリがシンプルで使いやすく、初心者から上級者まで人気があります。
すでに50万人以上のユーザーがコインチェックのアプリで取引していることからも、多くのユーザーの支持を得ていることが分かります。
取扱通貨数は17と多めで、「ビットコインから取引を始めて、ゆくゆくは他の通貨(アルトコイン)も取引してみたい」と考えている方におすすめです。
1回でもハッキングされた所は避けたい」という場合は、真っ先に候補に上がる取引所でしょう。
取引所名 | Coincheck(コインチェック) |
---|---|
最低取引数量(取引所) | 0.005BTC以上 かつ 500円(相当額)以上から |
取扱通貨数 | 17通貨 |
取引手数料(取引所) | 無料 |
入金手数料 | 銀行振込 : 無料コンビニ入金 : 770円~クイック入金 : 770円~ |
出金手数料 | 407円 |
楽天ウォレット
【おすすめポイント】
- 楽天ポイントをビットコインに交換できる
- 最短即日で口座を開設できる
楽天ウォレットは楽天グループに属する取引所です。
楽天ポイントをビットコインに交換できるのがメリットで、最低100ポイントから1ポイント1円相当で交換できます。ある程度のポイントが貯まれば現金の出費なしで仮想通貨取引を始められます。
持っているビットコインを楽天キャッシュにチャージすることで、楽天市場での買い物に利用することも可能です。
取引で利益を得るだけでなく、買い物でも仮想通貨を利用したい方におすすめの取引所といえます。
口座開設は最短即日と非常にスピーディなのも特徴です。楽天銀行に口座を持っている場合は本人確認手続きが必要なく、楽天銀行に口座を持っていなくても「らくらく本人確認」を利用すればオンラインで手続きが完結します。
取引所名 | 楽天ウォレット |
---|---|
最低取引数量(取引所) | 購入:100円売却:0.0001 BTC |
取扱通貨数 | 4通貨 |
取引手数料(取引所) | 無料 |
入金手数料 | 無料 |
出金手数料 | 300円 |
LINE BITMAX(ビットマックス)
- 仮想通貨貸出サービスが利用できる
- スマホだけで簡単口座開設が可能
LINE BITMAX(ライン ビットマックス)は、LINEのグループ会社が運営する仮想通貨取引所です。スマホアプリ「LINE」のグループらしく、スマホだけで本人確認も口座開設手続きも完了させることができます。
保有している仮想通貨を貸し出して利益を得られるサービスも提供しており、長期的に稼ぐことも可能です。
公式ブログでは「ビットコインの仕組み・使い方」「本人確認の手順」などの基本的な内容を紹介しています。
仮想通貨初心者でも取引に必要な最低限の知識を身につけられるでしょう。
取引所名 | LINE BITMAX(ビットマックス) |
---|---|
最低取引数量(取引所) | 0.00000001 BTC |
取扱通貨数 | 6通貨 |
取引手数料(取引所) | 無料 |
入金手数料 | 無料 |
出金手数料 | 400円(銀行口座) |
GMOコイン
- 東証プライム上場GMOインターネットの傘下
- 取引手数料・入出金手数料・送金手数料が全て無料
- レバレッジ取引にも対応
GMOコインは「GMOインターネットグループ」を親会社にもつ仮想通貨取引所です。GMOクリック証券で培われた万全な管理体制と、抜け目のないセキュリティ体制が整っています。
取引手数料・入出金手数料・送金手数料が全て無料で、取引に余計なコストがかからない点も魅力的です。
レバレッジ取引にも対応しており、初心者から上級者まで幅広くおすすめできます。
取引所名 | GMOコイン |
---|---|
最低取引数量(取引所) | 0.0001 BTC |
取扱通貨数 | 20通貨 |
取引手数料(取引所) | 無料 |
入金手数料 | 無料 |
出金手数料 | 無料 |
bitbank(ビットバンク)
- 仮想通貨の取引量が国内トップクラスに多い
- 流動性が高いので、瞬時に売却・購入が可能
- 取り扱い通貨数が19種類と多い
bitbankは、仮想通貨取引量で国内No.1に輝いた暗号資産取引所です。
流動性が高いことで、値動きの激しい暗号資産を瞬時に売却・購入できる快適なトレードが実現します。
さらに「オフラインのコールドウォレット」「マルチシグ」によってセキュリティ面でも国内No.1の高い評価を受けている点もメリットです。
日本円の入金もリアルタイムで可能!土日を含めた24時間いつでも日本円を入金できるので、取引チャンスを逃しません。
取り扱い通貨数も19通貨と多いので、マイナー通貨を取引したい方にも向いています。
取引所名 | bitbank(ビットバンク) |
---|---|
最低取引数量(取引所) | 0.0001BTC |
取扱通貨数 | 19通貨 |
取引手数料(取引所) | メイカー:-0.02% テイカー:0.12% |
入金手数料 | 無料 |
出金手数料 | 550円 770円(3万円以上)※日本円の場合 |