티스토리 뷰

필요한 모듈 설치

pip install cryptos

 

 

 

SegWit 주소 생성 방법

from cryptos import *

priv = random_key()  # your private key
b = Bitcoin()

# 세그윗 주소생성
addr_sw = b.privtop2w(priv)
# '3MeQ13kvDsPGzT6WaQdiygawzgMcizf1sD'
  • 해당 주소의 정확한 명칭은 p2sh-p2wpkh 가 됩니다. (Nested SegWit)
  • 세그윗은 내부적으로 압축 공개키를 사용합니다. (비압축 공개키 사용이 제한됨)

 

 

 

SegWit 주소에서 출금 방법

from cryptos import *

b = Bitcoin()

# 출금할 세그윗 주소
addr_sw = '3MeQ13kvDsPGzT6WaQdiygawzgMcizf1sD' 

# 세그윗 주소에서 UTXO를 가져옵니다.
inputs = b.unspent(addr_sw) 
# [{'output': 'c33b5dd170269f966c05397a19f5d3138d9b327d24f708fe67f3fd919ed511b1:0', 'value': 10000}]

# 사용할 UTXO에 segwit 필드를 세팅합니다
inputs[0]['segwit'] = True
# [{'output': 'c33b5dd170269f966c05397a19f5d3138d9b327d24f708fe67f3fd919ed511b1:0', 'value': 10000, 'segwit': True}]

balance= inputs[0]['value']
fee = 200

# 이제 출력을 정의합니다
outs = [{'value': balance - fee, 'address': '1CEDQbJQqQnfvJznjXwr6fX5EffagCFmzk'}]

# 거래생성
tx = b.mktx(inputs,  outs)

# 서명하기
priv = 'your private key'
signed = b.signall(tx, priv)

# 거래를 멤풀에 전송합니다
b.pushtx(signed)

 

 

 

처리결과

https://mempool.space/tx/d23f0f768236f2a58bd7ca6b544ec24c09baabccddd1aa5c6f6fe90716879862

 

 

 

23년 6월 21일 업데이트

cryptos 라이브러리가 업데이트되면서 해당 privtop2w 함수가 없어졌습니다.

cryptos 최신 버젼에서는 privtop2w 함수 대신 아래와 같이 사용해 보세요
b.privtop2wpkh_p2sh(priv)

---
혹시 기존 라이브러리를 그대로 사용하시려면 과거 버젼의 라이브러리 설치가 필요합니다.
pip install cryptos==1.36

--- 
릴리즈노트를 보시면 오래동안 업데이트가 없다가 올해 3월부터 업데이트가 존재하네요.
https://pypi.org/project/cryptos/#history

 


https://youtu.be/ZkAXz0FpuNw

 

728x90
반응형
댓글
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함