안녕하세요.
@jongeun 입니다.
다들 아시겠지만, Transfer는 지갑 메뉴에서 제공하는 기능입니다.
특별한 불편함 없이 잘 만든 기능입니다.
하지만, 특정 조건을 만족되면 송금하거나 동시에 많은 사람들에게 동일한 금액을 송금하는데는 불편함이 있습니다.
그래서 코드로 구현하는 방법을 살펴보았고, 혹시 필요하신 분들을 위해 포스팅 합니다.
var steem = require('steem');
var config = require('./data/config.json');
var toUser = config.toUsers;
var account = config.accounts[0];
initAccount();
for (var i=0; i<toUsers.length; i++){
steem.broadcast.transfer(account.wif, account.name,
toUsers[i].name, "0.100 SBD", "This is memo", function(err, result) {
console.log(err, result);
});
}
function initAccount(){
account.wif = steem.auth.toWif(account.name, account.password, 'active');
}
위의 코드는 config 파일에 등록된 from 유저의 0.1 스팀달러를 to 유저들에게 송금하는 예제 입니다. (to 유저는 복수입니다.)
주요 함수를 살펴보겠습니다.
steem.auth.toWif(name, password, role)
위의 함수는 사용자의 로그인 계정명과 비밀번호를 통해 role의 권한이 있는 privateKey를 획득하는 함수입니다.
아래 스크린샷과 같이 [Wallet]->[Permission] 메뉴를 통해 접속할 때, 우측에 있는 [Show private key] 버튼을 누를 때 나오는 값과 toWif의 결과는 동일합니다.
steem.broadcast.transfer(wif, from, to, amount, memo, function(err, result))
위의 함수는 from이 to에게 amount 의 금액을 송금하는 함수 입니다.
송금 권한을 확인하기 위하여 toWif 함수를 통해 획득한 'ACTIVE' Private key 가 필요합니다.
이상으로 [steem-js] Transfer 예제에 대한 포스팅을 마치겠습니다
참 쉽죠?