BLCOKSDK 개발자 문서와 공식 github에서 이더리움, 클레이튼, 폴리곤, BNC 등 다양한 블록체인 서비스 및 솔루션을 사용자의 프로그래밍 언어에 맞게 제공하고 있습니다.
이 글은 BlockSDK-JS 라이브러리를 사용하여 다른 지갑으로 토큰을 전송하는 방법을 설명합니다. 이 가이드는 블록체인 개발자들이 자신의 프로젝트에서 ERC-20 토큰을 안전하게 전송할 수 있도록 단계별 절차를 제공합니다. 또한 ERC-20 토큰을 전송하는 API를 사용하는 예시 코드가 포함되어있습니다.
API를 사용하기전에 초기 설정을 해야합니다. BLOCKSDK 사용이 처음이라면 여기를 클릭 해 API 사용을 위한 개발 초기 설정방법을 알아보세요.
다음은 자바스크립트를 이용해서 다른 지갑으로 토큰을 전송하는 예시를 자세히 살펴보겠습니다.
자바스크립트를 사용하여 다른 지갑으로 토큰을 전송하는 과정은 대체로 웹 개발 환경에서의 이더리움 기반 토큰, 예를 들어 ERC-20 토큰을 전송하는 것을 의미합니다.
아래 코드는 블록체인 서비스 라이브러리인 blocksdk-js를 사용하여 ERC-20 토큰을 전송하는 작업을 수행하는 코드입니다.
result = client.ethereum.SendToken({
'contract_address' : "ERC20 토큰 컨트렉트 주소",
'from_address' : "토큰을 전송할 주소",
'to' : "주소",
'amount' : "보낼 양",
'private_key' : "보내는 주소 키"
});
const BLOCKSDK = require('blocksdk-js');
const client = new BLOCKSDK("Node_RPC_TOKEN", "https://mainnet-api.blocksdk.com");
client.ethereum.SendToken({
'contract_address' : "전송할 ERC-20 토큰이 배포된 스마트 컨트랙트 주소",
'from_address' : "토큰을 전송할 주소",
'to' : "토큰을 받을 주소",
'amount' : "전송할 토큰의 양을 나타냅니다. 이 값은 토큰의 최소 단위인 Wei로 표현되며, 여기서는 1ETH에 해당하는 1e18 Wei로 표기된 18자리 숫자입니다.",
'private_key' : "토큰을 보내는 주소의 개인 키입니다. 보안상의 이유로 실제 비공개 키는 절대로 공개되어서는 안됩니다."
}).then(r => console.log(r));
일반적으로 이더리움에서 사용되는 ERC-20 토큰의 대부분은 18자리의 소수점을 가진 토큰이지만, 이것이 고정된 규칙은 아닙니다. ERC-20 토큰의 decimals 라는 속성이 해당 토큰의 소수점 이하 자릿수를 나타내며, 이 값은 토큰을 생성하는 스마트 컨트랙트에서 정의됩니다.
따라서 amount를 결정할 때는 해당 토큰의 decimals 값을 고려하여 계산해야 합니다. 예를 들어, decimals 값이 8이라면 1ETH가 10^8(100,000,000) 단위로 나누어진다는 것을 의미합니다. 따라서 1토큰을 전송하려면 amount에 10^8을 곱해주어야 합니다.
주의: 코드에 있는 Node_RPC_TOKEN 및 실제 개인 키는 보안상의 이유로 공개되어서는 안되며, 특히 비공개 키는 절대로 외부에 노출되어서는 안 됩니다. 개인 키가 노출될 경우 해당 주소의 자산에 대한 완전한 통제권이 노출되므로 유의해야 합니다.
아래 예시 코드는 블록체인 솔루션을 제공하는 BLOCKSDK를 사용하여 ERC-20 토큰을 전송하는 예시 코드입니다.
const BLOCKSDK = require('blocksdk-js');
const client = new BLOCKSDK("Node_RPC_TOKEN", "https://mainnet-api.blocksdk.com");
client.ethereum.SendToken({
'contract_address' : "0x0F302515422352069E4387a059D3037C5979d72b",
'from_address' : "0x1a7Ad2a5AeA3c4bBCEF9B3caa3AcEaed9cA8397e",
'to' : "0xfe093d022DECCE9fdD73093b00347a5e296f4f70",
'amount' : "1000000000000000000",
'private_key' : "비공개 키"
}).then(r => console.log(r));
이 예시 코드를 실행하면 주어진 ERC-20 토큰 스마트 계약에서 지정한 양의 토큰이 보내진 것을 확인할 수 있습니다.
아래는 BLOCKSDK-JS를 이용한 ERC20 토큰 전송 함수 실행결과입니다.
{
hash: '0xa0df3c326e5c5ace8eb0786bf57203711ee16a295f0235c8dd965e274c46ac03',
from: '0x1a7ad2a5aea3c4bbcef9b3caa3aceaed9ca8397e',
to: '0x0f302515422352069e4387a059d3037c5979d72b',
value: '0',
gasUsed: null,
gasLimit: '90000',
gasPrice: '30000000000',
fees: null,
nonce: 21,
transactionIndex: 0,
input: '0xa9059cbb000000000000000000000000fe093d022decce9fdd73093b00347a5e296f4f700000000000000000000000000000000000000000000000000de0b6b3a7640000',
datetime: '2024-01-09T04:52:58+00:00',
timestamp: 1704775978,
confirmations: 0,
sign: {
v: '0x2e',
r: '0x555b0a8ef356dc3f5c03fcf5d6d0fef07092c167cdfeb443f6f0bbd313323841',
s: '0x5ca339cf8db4a30044f00abe10af398e36c27e9b557dfaad589aea1fde21d2e'
},
status: null,
requestData: {
contract_address: '0x0F302515422352069E4387a059D3037C5979d72b',
from: '0x1a7Ad2a5AeA3c4bBCEF9B3caa3AcEaed9cA8397e',
to: '0xfe093d022DECCE9fdD73093b00347a5e296f4f70',
amount: '1000000000000000000',
private_key: ''
}
}
private_key
의 경우는 다른 사람과 공유해서는 안되기때문에 ''표시하였습니다.
아래 이미지처럼 이더스캔에서 토큰을 받을 주소에 실제로 토큰이 전송되었는지의 결과를 확인할 수 있습니다.
BLOCKSDK의 활용은 단순히 토큰 전송에 국한되지 않습니다. 블록체인 네트워크와의 상호작용을 단순화하고, 개발 과정을 가속화하며, 더욱 안전하고 효율적인 블록체인 서비스를 구축할 수 있는 강력한 도구입니다. 개발자들은 BLOCKSDK를 통해 블록체인 기술의 잠재력을 최대한 발휘하고, 디지털 경제의 미래를 함께 만들어 가는 데 중요한 역할을 할 수 있습니다.