Comment on page
API 사용하기
SDK를 사용하여 트랜잭션 생성, 해시, 전송등 관련된 함수들을 사용할 수 있습니다.
트랜잭션의 서명된 값을 기반으로 PublicKey를 복구합니다.
- Parameters:
- message: RLP 인코딩 트랜잭션의 값
- V: ECDSA의 서명 v값
- R: ECDSA의 서명 r값
- S: ECDSA의 서명 s값
- options[Array]: chainId를 추가합니다.
- chainId: 체인 ID hex string
- Returns: The recovered address.
// 예제 코드
transaction.recover("0xf84a8a00032dd1fa260e2a000281bd85174876e80083011e688aaca4414a37d7a6dc43e58098d71501d48a000232c721024cdd0002880de0b6b3a764000001cb8a0002537dc9a64d35000280"
, "0x0", "0x0df37aa532758d3e54230335c37b54ae2c39b77635d253d05ae3f62bd25562c3", "0x5aab63b9011624f8863987757b5c318fc38b40b82d1c48f12d4bfd0a3c9ad7cd")
// 결과
{
"compressed": "0x02e744ad9e5b9a27c921c73e0357efe21ea57701eaf225ee85502539daa9b85a67",
"uncompressed": "0x04e744ad9e5b9a27c921c73e0357efe21ea57701eaf225ee85502539daa9b85a6766b87a4376da3d40942594aa1d1a3cfa72ae476f48ff70d24dc101deac18bb0e",
"removePrefix": "0xe744ad9e5b9a27c921c73e0357efe21ea57701eaf225ee85502539daa9b85a6766b87a4376da3d40942594aa1d1a3cfa72ae476f48ff70d24dc101deac18bb0e"
}
RawTransaction 기반으로 PublicKey를 복구합니다.
- Parameters:
- hexRawTx: 서명값이 포함된 RLP 인코딩 트랜잭션 값
- options[Array]: chainId와 forkId를 추가합니다.
- chainId: 체인 ID hex string
- Returns: The recovered address.
// 예제 코드
transaction.recoverFromRawTx("0xf88d8a00032dd1fa260e2a000281bd85174876e80083011e688aaca4414a37d7a6dc43e58098d71501d48a000232c721024cdd0002880de0b6b3a764000001cb8a0002537dc9a64d3500028080a00df37aa532758d3e54230335c37b54ae2c39b77635d253d05ae3f62bd25562c3a05aab63b9011624f8863987757b5c318fc38b40b82d1c48f12d4bfd0a3c9ad7cd")
// 결과
{
"compressed": "0x02e744ad9e5b9a27c921c73e0357efe21ea57701eaf225ee85502539daa9b85a67",
"uncompressed": "0x04e744ad9e5b9a27c921c73e0357efe21ea57701eaf225ee85502539daa9b85a6766b87a4376da3d40942594aa1d1a3cfa72ae476f48ff70d24dc101deac18bb0e",
"removePrefix": "0xe744ad9e5b9a27c921c73e0357efe21ea57701eaf225ee85502539daa9b85a6766b87a4376da3d40942594aa1d1a3cfa72ae476f48ff70d24dc101deac18bb0e"
}
Transaction 메시지를 구성합니다
- Parameters:
- from: 보내는 symId
- nonce: 전송하는 symid의 트랜잭션 noce
- gasPrice: 사용할 가스
- gasLimit: 사용할 최대 가스
- to: 받는 symid
- value: SYM balance
- data: 트랜잭션에 담길 메시지 혹은 컨트렉트 인코딩 값
- type: 0: general(default), 1: sct, 2: deposit)
- workNode[Array]: 배열, 트랜잭션을 전달하는 작업 노드 목록(개수 고정 == 1)
- extraData: []byte
- options[Array]: chainId와 forkId를 추가합니다.
- chainId: 체인 ID hex string
- Returns: The composed send transaction.
// 예제 코드
symTools.transaction.composeSendTransaction(
"0x00032dd1fa260e2a0002",
"0xbd",
"0x174876e800",
"0x11e68",
"0xaca4414a37d7a6dc43e5",
"0x0",
"0xd71501d48a000232c721024cdd0002880de0b6b3a7640000",
"0x1",
"0x0002537dc9a64d350002",
"0x"
);
// 결과
{
params: {
from: '0x00032dd1fa260e2a0002',
nonce: '0xbd',
gasPrice: '0x174876e800',
gasLimit: '0x11e68',
to: '0xaca4414a37d7a6dc43e5',
value: '0x0',
data: '0xd71501d48a000232c721024cdd0002880de0b6b3a7640000',
type: '0x1',
warrantNodes: [ '0x0002537dc9a64d350002' ],
extra: '0x'
},
type: '0x01',
unsignedTx: '0xf84a8a00032dd1fa260e2a000281bd85174876e80083011e688aaca4414a37d7a6dc43e58098d71501d48a000232c721024cdd0002880de0b6b3a764000001cb8a0002537dc9a64d35000280',
hash: '0xcd88b1e01e538c6250eef50063d5171c45c7e807616e1011b025c156c54b860f'
}
SCT 트랜잭션 정보를 구성합니다
- Parameters:
- methodName: SCT 실행 함수를 의미
- params: SCT 실행 함수에 들어갈 파라미터를 의미
- Returns: The composed smart contract transaction.
// 예제 코드
transaction.composeSct(21, "transfer",
{"recipient": "0x00032dd1fa260e2a0002", "amount": "0x174876e800"}
)
// 결과
{
"type": 21,
"method": "TRANSFER",
"params": [
"0x15",
"0x01",
"0x00032dd1fa260e2a0002",
"0x174876e800"
],
"gasPrice": "0xbf68",
"gasLimit": "0x011670",
"serialize": "0xd41501d18a00032dd1fa260e2a000285174876e800"
}
SCT20 전송 트랜잭션을 구성합니다.
- Parameters:
- recipient: 토큰을 전달 받을 SymID
- amount: 토큰 개수
- Returns: The composed SCT20 transfer.
// 예제 코드
transaction.composeSct20Transfer("0x00032dd1fa260e2a0002", "0x174876e800")
// 결과
{
"type": 20,
"method": "TRANSFER",
"params": [
"0x14",
"0x01",
"0x00032dd1fa260e2a0002",
"0x174876e800"
],
"gasPrice": "0xbf68",
"gasLimit": "0x011288",
"serialize": "0xd41401d18a00032dd1fa260e2a000285174876e800"
}
SCT21 전송 트랜잭션을 구성합니다.
- Parameters:
- recipient: 토큰을 전달 받을 SymID
- amount: 토큰 개수
- Returns: The composed SCT21 transfer.
// 예제 코드
transaction.composeSct21Transfer("0x00032dd1fa260e2a0002", "0x174876e800")
// 결과
{
"type": 21,
"method": "TRANSFER",
"params": [
"0x15",
"0x01",
"0x00032dd1fa260e2a0002",
"0x174876e800"
],
"gasPrice": "0xbf68",
"gasLimit": "0x011670",
"serialize": "0xd41501d18a00032dd1fa260e2a000285174876e800"
}
SCT22 전송 트랜잭션을 구성합니다.
- Parameters:
- recipient: 토큰을 전달 받을 SymID
- amount: 토큰 개수
- Returns: The composed SCT22 transfer.
// 예제 코드
transaction.composeSct22Transfer("0x00032dd1fa260e2a0002", "0x174876e800")
// 결과
{
"type": 22,
"method": "TRANSFER",
"params": [
"0x16",
"0x01",
"0x00032dd1fa260e2a0002",
"0x174876e800"
],
"gasPrice": "0xbf68",
"gasLimit": "0x011288",
"serialize": "0xd41601d18a00032dd1fa260e2a000285174876e800"
}
RLP 인코딩된 RawTransaction 를 트랜잭션 메시지로 추출합니다.
- Parameters:
- rawTx: RLP 인코딩 트랜잭션
- Returns: The parsed transaction.
// 예제 코드
transaction.parseRawTx("0xf84a8a00032dd1fa260e2a000281bd85174876e80083011e688aaca4414a37d7a6dc43e58098d71501d48a000232c721024cdd0002880de0b6b3a764000001cb8a0002537dc9a64d35000280")
// 결과
{
"from": "0x00032dd1fa260e2a0002",
"nonce": "0xbd",
"gasPrice": "0x174876e800",
"gasLimit": "0x11e68",
"to": "0xaca4414a37d7a6dc43e5",
"value": "0x0",
"data": "0xd71501d48a000232c721024cdd0002880de0b6b3a7640000",
"type": "0x1",
"warrantNodes": [
"0x0002537dc9a64d350002"
],
"extra": "0x"
}
SCT RLP 인코딩 된 값을 디코딩합니다.
- Parameters:
- hexSctMethod: RLP 인코딩 된 SCT Type, method, params 값
- Returns: The parsed SCT method.
// 예제 코드
transaction.parseSct("0xd71501d48a000232c721024cdd0002880de0b6b3a7640000")
// 결과
{
"type": 21,
"method": "TRANSFER",
"params": [
"0x000232c721024cdd0002",
"0x0de0b6b3a7640000"
]
}
메시지를 Hash 처리
- Parameters:
- hexMessage: 메시지를 SHA3로 해시를 실행합니다.
- options[Array]: chainId와 forkId를 추가합니다.
- chainId: 체인 ID hex string
- Returns: The hashed message.
// 예제 코드
hasher.hashMessage("f84a8a00032dd1fa260e2a000281bd85174876e80083011e688aaca4414a37d7a6dc43e58098d71501d48a000232c721024cdd0002880de0b6b3a764000001cb8a0002537dc9a64d35000280")
// 결과
{
"message": "f84a8a00032dd1fa260e2a000281bd85174876e80083011e688aaca4414a37d7a6dc43e58098d71501d48a000232c721024cdd0002880de0b6b3a764000001cb8a0002537dc9a64d35000280",
"hash": "0xcd88b1e01e538c6250eef50063d5171c45c7e807616e1011b025c156c54b860f"
}
서명값이 없는 RLP 인코딩 트랜잭션 메시지와 ecdsa 서명 v ,r, s 기반으로 RLP 인코딩 값을 추출합니다.
- Parameters:
- hexMessage: 서명값이 없는 RLP 인코딩 트랜잭션 메시지
- hexV: The hex V value.
- hexR: The hex R value.
- hexS: The hex S value.
- Returns: The combined message.
// 예제 코드
hasher.combineMessage("0xf84a8a00032dd1fa260e2a000281bd85174876e80083011e688aaca4414a37d7a6dc43e58098d71501d48a000232c721024cdd0002880de0b6b3a764000001cb8a0002537dc9a64d35000280"
, "0x0", "0x0df37aa532758d3e54230335c37b54ae2c39b77635d253d05ae3f62bd25562c3", "0x5aab63b9011624f8863987757b5c318fc38b40b82d1c48f12d4bfd0a3c9ad7cd")
// 결과
{
"message": "f84a8a00032dd1fa260e2a000281bd85174876e80083011e688aaca4414a37d7a6dc43e58098d71501d48a000232c721024cdd0002880de0b6b3a764000001cb8a0002537dc9a64d35000280",
"signature": "0x0000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111",
"rawTx": "0xf88d8a00032dd1fa260e2a000281bd85174876e80083011e688aaca4414a37d7a6dc43e58098d71501d48a000232c721024cdd0002880de0b6b3a764000001cb8a0002537dc9a64d3500028080a00000000000000000000000000000000000000000000000000000000000000000a01111111111111111111111111111111111111111111111111111111111111111"
}
값을 특정 진수에 맞게 변환합니다.
- Parameters:
- hexValue: 특진 진수로 변환할 값
- srcRadix: 기존 진수
- dstRadix: 변환할 진수
- Returns: The converted value as a string.
// 예제 코드
utils.toValueString("0x14", 16, 10)
utils.toValueString("21", 10, 16)
// 결과
"20"
"0x15"
문자열을 Hex UTF-8 String으로 변환합니다.
- Parameters:
- str: 변환할 문자열
- Returns: The UTF-8 encoded string.
// 예제 코드
utils.stringToUtf8("문자열")
//결과
"0xebacb8ec9e90ec97b4"
Hex UTF8 String 에서 문자열로 변환합니다.
- Parameters:
- hexStr: 변환할 Hex UTF-8 String
- Returns: The converted string.
// 예제 코드
utils.utf8ToString("0xebacb8ec9e90ec97b4")
//결과
"문자열"
특정 값을 RLP 인코딩합니다.
- Parameters:
- hexParams: RLP 인코딩할 값
- Returns: The RLP encoded parameters.
// 예제 코드
utils.toRlp(param...)
// 결과
"0xe18a00032dd1fa260e2a00028aaca4414a37d7a6dc43e58a0002537dc9a64d350002"
PublicKey를 SHA3로 해시를 실행합니다.
- Parameters:
- hexPublicKey: PublicKey
- Returns: The hash of the public key.
// 예제 코드
utils.pubkeyHash("0x12345678901234567890123456789012345678901234567890123456789012341234567890123456789012345678901234567890123456789012345678901234")
// 결과
"0x0249e4711e75daab8781ad36e334d7b16610879a"
Last modified 4mo ago