์คํฌ๋ฆฝํธ ์คํ ๋ช
๋ น์ด
$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 ํธ๋์ญ์
๋ง ์ ์กํด๋ ๊ด์ฐฎ์

