About XRPL
home

AccountSet

์ฃผ์š” ๋‚ด์šฉ
๊ณ„์ • ์„ค์ • ๋ณ€๊ฒฝ (ํ”Œ๋ž˜๊ทธ)
ํด๋”๋ช…
AccountSet

์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๋ช…๋ น์–ด

$npx ts-node xrpl/AccountSet/AccountSet.ts
Bash
๋ณต์‚ฌ

1. AccountSet์ด๋ž€?

AccountSet์€ ๊ณ„์ •์˜ ํ”Œ๋ž˜๊ทธ/์„ค์ •๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์ด๋‹ค.
์˜ˆ: RequireAuth, DefaultRipple, DisallowXRP, TickSize ๋“ฑ.
โ€ข
ํ‘œ์ค€ ํ”Œ๋ž˜๊ทธ๋Š” asf ๊ณ„์—ด(ex. asfRequireAuth)
โ€ข
ํŠน์ • ๊ตฌํ˜„์—์„œ๋Š” ๋น„ํŠธ๊ฐ’ ์ง์ ‘ ์ง€์ • ๊ฐ€๋Šฅ (ํ…Œ์ŠคํŠธ/์‹คํ—˜์šฉ)

2. ์™œ ํ•„์š”ํ•œ๊ฐ€?

โ€ข
์ •์ฑ… ์ „ํ™˜: RequireAuth(์Šน์ธํ˜• IOU), DefaultRipple(๋ฆฌํ”Œ ๊ฒฝ๋กœ) ๋“ฑ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”
โ€ข
๋ณด์•ˆ/์šด์˜: MasterKey ๋น„ํ™œ์„ฑํ™”, Domain ์„ค์ •, TransferRate ๋“ฑ

3. ์‹œ๋‚˜๋ฆฌ์˜ค:AccountSet โ†’ (์˜ต์…˜) TrustSet ์Šน์ธ ์—ฐ๊ณ„

Step 1. RequireAuth ํ™œ์„ฑํ™” (AccountSet.ts)

โ€ข
์ฃผ์ฒด: Admin
โ€ข
ํ–‰๋™: AccountSet ํŠธ๋žœ์žญ์…˜ ์ „์†ก
โ€ข
๋‚ด์šฉ:
โ—ฆ
SetFlag: asfRequireAuth (๋˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์“ฐ๋Š” ๋น„ํŠธ๊ฐ’)
โ—ฆ
xrpl account flags ํ”Œ๋ž˜๊ทธ ์ข…๋ฅ˜ ๋ฐ ์ฐธ๊ณ  ๋ฌธ์„œ
import dotenv from "dotenv" import path from "path" import { Client, Wallet, Transaction } from "xrpl" // .env ํŒŒ์ผ ๋กœ๋“œ dotenv.config({ path: path.join(__dirname, "..", ".env") }) export async function AccountSet() { // XRPL Devnet ์—ฐ๊ฒฐ const client = new Client("wss://s.devnet.rippletest.net:51233") await client.connect() // Admin ์ง€๊ฐ‘ ๋กœ๋“œ const ADMIN_SEED = process.env.ADMIN_SEED! const admin = Wallet.fromSeed(ADMIN_SEED) try { // AccountSet ํŠธ๋žœ์žญ์…˜ const tx: Transaction = { TransactionType: "AccountSet", Account: admin.address, // ์„ค์ •ํ•  ๊ณ„์ • SetFlag: 2 // ์˜ˆ์‹œ: asfRequireAuth (๊ฐ’=2). ๋‹ค๋ฅธ ํ”Œ๋ž˜๊ทธ ๊ฐ’์œผ๋กœ ๊ต์ฒด ๊ฐ€๋Šฅ } // ํŠธ๋žœ์žญ์…˜ ์ค€๋น„ const prepared = await client.autofill(tx) // ์„œ๋ช… const signed = admin.sign(prepared) // ์ œ์ถœ ๋ฐ ๊ฒฐ๊ณผ ๋Œ€๊ธฐ const result = await client.submitAndWait(signed.tx_blob) // ๊ฒฐ๊ณผ ์ถœ๋ ฅ console.log(JSON.stringify(result, null, 2)) } finally { // ์—ฐ๊ฒฐ ์ข…๋ฃŒ await client.disconnect() } } // ์ง์ ‘ ์‹คํ–‰๋œ ๊ฒฝ์šฐ ํ•จ์ˆ˜ ์‹คํ–‰ if (require.main === module) { AccountSet().catch(e => { console.error(e) process.exit(1) }) }
TypeScript
๋ณต์‚ฌ

Step 2. (์˜ต์…˜) RequireAuth ํ™˜๊ฒฝ์—์„œ TrustSet ์Šน์ธ

โ€ข
์ฃผ์ฒด: Admin
โ€ข
ํ–‰๋™: ํŠน์ • User์˜ IOU ์‹ ๋ขฐ์„  ์Šน์ธ(User๊ฐ€ TrustSet์„ Admin์—๊ฒŒ ์ด๋ฏธ ๋ณด๋‚ธ ์ƒํƒœ)
โ€ข
๋‚ด์šฉ: ์ดํ›„ User๊ฐ€ ํ•ด๋‹น IOU ์ˆ˜์ทจ ๊ฐ€๋Šฅ
const tx = { TransactionType: "TrustSet", Account: admin.address, LimitAmount: { currency: "USD", issuer: user.address,// ์Šน์ธ ์‹œ์—๋Š” user ์ฃผ์†Œ value: "0" } // Flags / Memo๋กœ ์Šน์ธ ์˜์‚ฌ ํ‘œ์‹œ (๋ ˆํฌ ๊ทœ์•ฝ์— ๋งž์ถค) }
TypeScript
๋ณต์‚ฌ
โ€ข
๋งŒ์•ฝ XRPL์˜ ๋„ค์ดํ‹ฐ๋ธŒ ํ† ํฐ์ธ XRP๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ฑฐ๋‚˜, ๋ฐœํ–‰ํ•˜๋Š” ํ† ํฐ์— ๋Œ€ํ•œ ๋ถ€๊ฐ€ ์„ค์ • ๋ฐ ํ†ต์ œ๊ฐ€ ๊ตณ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋ฉด, ์ด ๊ณผ์ • ์—†์ด 2๋ฒˆ์˜ ์ผ๋ฐ˜์ ์ธ TrustSet ํŠธ๋žœ์žญ์…˜๋งŒ ์ „์†กํ•ด๋„ ๊ดœ์ฐฎ์Œ