Skip to content

moonlightpark/nodeServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TokenPass Wallet - Node.js Server

이더리움 기반 토큰 전솑 및 μ§€κ°‘ 관리λ₯Ό μœ„ν•œ Node.js λ°±μ—”λ“œ μ„œλ²„μž…λ‹ˆλ‹€.

πŸ“‹ ν”„λ‘œμ νŠΈ κ°œμš”

TokenPass Wallet은 Web3.jsλ₯Ό ν™œμš©ν•˜μ—¬ 이더리움 λ„€νŠΈμ›Œν¬μ™€ μƒν˜Έμž‘μš©ν•˜λŠ” RESTful API μ„œλ²„μž…λ‹ˆλ‹€. ERC20 토큰 전솑, λ©€ν‹° 센더 κΈ°λŠ₯, μ§€κ°‘ 관리 λ“±μ˜ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

πŸš€ μ£Όμš” κΈ°λŠ₯

1. μ§€κ°‘ 관리

  • EVM 계정 생성
  • 이더리움 μž”κ³  쑰회
  • ERC20 토큰 μž”κ³  쑰회
  • Nonce 관리

2. νŠΈλžœμž­μ…˜ 처리

  • 이더리움 전솑 (/transferEther)
  • ERC20 토큰 전솑 (/transferToken)
  • λ©€ν‹° 센더 κΈ°λŠ₯ (/multisend)
  • 예치금 전솑 (/depositSend)

3. Gas 관리

  • μ‹€μ‹œκ°„ Gas Price 쑰회
  • 이더 전솑 수수료 계산
  • 토큰 전솑 수수료 계산

4. 토큰 정보

  • ERC20 토큰 정보 쑰회 (name, symbol, decimal)
  • 토큰 μž”κ³  쑰회

5. λ©€ν‹° 센더

  • 닀쀑 μ£Όμ†Œλ‘œ 토큰 일괄 전솑
  • μ‚¬μš©μž Fee 관리
  • Fee ν™˜λΆˆ κΈ°λŠ₯ (/claimUserFees)

πŸ›  기술 μŠ€νƒ

  • Runtime: Node.js
  • Framework: Express.js
  • Blockchain: Web3.js (v1.2.6)
  • Dependencies:
    • bignumber.js: μ •λ°€ν•œ 숫자 계산
    • ethereumjs-tx: νŠΈλžœμž­μ…˜ μ„œλͺ…
    • body-parser: HTTP μš”μ²­ νŒŒμ‹±
    • node-fetch: HTTP μš”μ²­

πŸ“¦ μ„€μΉ˜ 방법

# μ €μž₯μ†Œ 클둠
git clone https://github.com/moonlightpark/nodeServer.git
cd nodeServer

# μ˜μ‘΄μ„± μ„€μΉ˜
npm install

# constants.js 파일 μ„€μ • (λ³΄μ•ˆ 정보 포함)
# constants.js νŒŒμΌμ„ μƒμ„±ν•˜κ³  ν•„μš”ν•œ 섀정값을 μž…λ ₯ν•˜μ„Έμš”

βš™οΈ ν™˜κ²½ μ„€μ •

constants.js νŒŒμΌμ— λ‹€μŒ 정보λ₯Ό μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€:

  • λ„€νŠΈμ›Œν¬ μ„€μ • (Mainnet, Sepolia λ“±)
  • μ»¨νŠΈλž™νŠΈ μ£Όμ†Œ
  • Private Key
  • μ ‘κ·Ό ν—ˆμš© IP λͺ©λ‘
  • ABI 정보

⚠️ 주의: constants.js νŒŒμΌμ€ λ―Όκ°ν•œ 정보λ₯Ό ν¬ν•¨ν•˜λ―€λ‘œ Git에 μ»€λ°‹λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

🚦 μ„œλ²„ μ‹€ν–‰

# 메인넷 μ„œλ²„ μ‹€ν–‰ (포트 3001)
node server.js

# 개발 μ„œλ²„ μ‹€ν–‰ (포트 3000)
node dev.js

# Sepolia ν…ŒμŠ€νŠΈλ„· μ„œλ²„ μ‹€ν–‰ (포트 3002)
node doraemon01.js

πŸ“‘ API μ—”λ“œν¬μΈνŠΈ

계정 관리

  • GET / - μ„œλ²„ μƒνƒœ 확인
  • GET /ether/account - μƒˆ EVM 계정 생성
  • GET /ether/getbalance - 이더리움 μž”κ³  쑰회
  • GET /token/getbalance - 토큰 μž”κ³  쑰회

λ„€νŠΈμ›Œν¬ 정보

  • GET /ether/version/network - λ„€νŠΈμ›Œν¬ 정보 쑰회
  • GET /ether/gas - ν˜„μž¬ Gas Price 쑰회

Nonce 관리

  • GET /senderNonce - Sender Owner의 Nonce 쑰회
  • GET /getUserNonce - νŠΉμ • μ£Όμ†Œμ˜ Nonce 쑰회

토큰 정보

  • GET /token/info - ERC20 토큰 정보 쑰회

Gas 계산

  • POST /ether/gasprice - 이더 전솑 수수료 계산
  • POST /token/gasprice - 토큰 전솑 수수료 계산

νŠΈλžœμž­μ…˜

  • POST /transferEther - 이더리움 전솑
  • POST /transferToken - ERC20 토큰 전솑
  • POST /multisend - λ©€ν‹° 센더 (닀쀑 전솑)
  • POST /depositSend - 예치금 전솑
  • GET /getTransction - νŠΈλžœμž­μ…˜ 쑰회
  • GET /getTransactionReceipt - νŠΈλžœμž­μ…˜ Receipt 쑰회

λ©€ν‹° 센더 Fee 관리

  • GET /getCurrentFee - ν˜„μž¬ 전솑 수수료 쑰회
  • GET /getUserFeeData - μ‚¬μš©μž Fee 데이터 쑰회
  • POST /claimUserFees - μ‚¬μš©μž Fee ν™˜λΆˆ

μ£Όμ†Œ 정보

  • GET /senderAddress - Multi Sender μ£Όμ†Œ 쑰회
  • GET /senderOwnerAddress - Sender Owner μ£Όμ†Œ 쑰회

πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰

nodeServer/
β”œβ”€β”€ abis/                    # 슀마트 μ»¨νŠΈλž™νŠΈ ABI 파일
β”‚   β”œβ”€β”€ ERC20ABI.json
β”‚   β”œβ”€β”€ sender.json
β”‚   └── sepolia/
β”œβ”€β”€ classes/                 # 클래슀 λͺ¨λ“ˆ
β”‚   β”œβ”€β”€ gasPriceStore.js    # Gas Price 관리
β”‚   └── txStore.js          # νŠΈλžœμž­μ…˜ 처리
β”œβ”€β”€ log/                     # 둜그 파일 디렉토리
β”œβ”€β”€ common.js               # 곡톡 ν•¨μˆ˜ λͺ¨λ“ˆ
β”œβ”€β”€ constants.js            # μ„€μ • μƒμˆ˜ (Git μ œμ™Έ)
β”œβ”€β”€ getWeb3.js              # Web3 μΈμŠ€ν„΄μŠ€ 생성
β”œβ”€β”€ getToken.js             # 토큰 정보 λ‘œλ“œ
β”œβ”€β”€ mysql-db.js             # MySQL μ—°κ²° (선택사항)
β”œβ”€β”€ server.js               # 메인 μ„œλ²„ (포트 3001)
β”œβ”€β”€ dev.js                  # 개발 μ„œλ²„ (포트 3000)
β”œβ”€β”€ doraemon01.js           # Sepolia μ„œλ²„ (포트 3002)
└── package.json            # ν”„λ‘œμ νŠΈ μ„€μ •

πŸ”’ λ³΄μ•ˆ

  • IP 기반 μ ‘κ·Ό μ œμ–΄ κ΅¬ν˜„
  • Private KeyλŠ” constants.js에 μ•ˆμ „ν•˜κ²Œ 보관
  • .gitignoreλ₯Ό 톡해 λ―Όκ°ν•œ 파일 μ œμ™Έ
  • νŠΈλžœμž­μ…˜ μ„œλͺ…은 μ„œλ²„μ—μ„œ 처리

πŸ“ API μš”μ²­ μ˜ˆμ‹œ

이더리움 μž”κ³  쑰회

GET /ether/getbalance?address=0x1234...

토큰 전솑

POST /transferToken
Content-Type: application/json

{
  "from": "0x1234...",
  "to": "0x5678...",
  "token": "0xabcd...",
  "balance": "1000000000000000000",
  "n": 5
}

λ©€ν‹° 센더

POST /multisend
Content-Type: application/json

{
  "txid_fee": "0x...",
  "txid_token": "0x...",
  "fromAddr": "0x1234...",
  "tokenAddr": "0xabcd...",
  "nonce": 10,
  "index": 1,
  "sendAddrs": [
    {"addr": "0x5678...", "amount": 100},
    {"addr": "0x9abc...", "amount": 200}
  ]
}

🌐 지원 λ„€νŠΈμ›Œν¬

  • Ethereum Mainnet (포트 3001)
  • Sepolia Testnet (포트 3002)
  • 개발 ν™˜κ²½ (포트 3000)

πŸ“„ λΌμ΄μ„ μŠ€

ISC

πŸ‘€ μž‘μ„±μž

XXXXXXXXXXX

πŸ”— κ΄€λ ¨ 링크

⚠️ μ£Όμ˜μ‚¬ν•­

  1. constants.js νŒŒμΌμ€ λ°˜λ“œμ‹œ 생성해야 ν•˜λ©°, Private Key λ“± λ―Όκ°ν•œ 정보λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
  2. ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œλŠ” λ°˜λ“œμ‹œ HTTPSλ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
  3. IP μ ‘κ·Ό μ œμ–΄λ₯Ό 적절히 μ„€μ •ν•˜μ„Έμš”.
  4. Gas PriceλŠ” λ„€νŠΈμ›Œν¬ 상황에 따라 λ³€λ™λ˜λ―€λ‘œ μ£Όμ˜ν•˜μ„Έμš”.
  5. νŠΈλžœμž­μ…˜ 전솑 μ „ μΆ©λΆ„ν•œ ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•˜μ„Έμš”.

About

nodeServer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors