Skip to content

Commit ad03d8b

Browse files
authored
Merge pull request #3 from laizy/main
fix tap leaf assign
2 parents 89f8b83 + 6508498 commit ad03d8b

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

internal/ord/ord.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,26 +96,25 @@ func NewInscriptionToolWithBtcApiClient(net *chaincfg.Params, btcApiClient btcap
9696
},
9797
commitTxPrevOutputFetcher: txscript.NewMultiPrevOutFetcher(nil),
9898
commitTxPrivateKeyList: request.CommitTxPrivateKeyList,
99-
txCtxDataList: make([]*inscriptionTxCtxData, len(request.DataList)),
10099
revealTxPrevOutputFetcher: txscript.NewMultiPrevOutFetcher(nil),
101100
}
102101
return tool, tool._initTool(net, request)
103102
}
104103

105104
func (tool *InscriptionTool) _initTool(net *chaincfg.Params, request *InscriptionRequest) error {
106-
destinations := make([]string, len(request.DataList))
107105
revealOutValue := defaultRevealOutValue
108106
if request.RevealOutValue > 0 {
109107
revealOutValue = request.RevealOutValue
110108
}
109+
tool.txCtxDataList = make([]*inscriptionTxCtxData, len(request.DataList))
110+
destinations := make([]string, len(request.DataList))
111111
for i := 0; i < len(request.DataList); i++ {
112-
txCtxData, err := createInscriptionTxCtxData(net, request, i)
112+
txCtxData, err := createInscriptionTxCtxData(net, request.DataList[i])
113113
if err != nil {
114114
return err
115115
}
116116
tool.txCtxDataList[i] = txCtxData
117117
destinations[i] = request.DataList[i].Destination
118-
119118
}
120119
totalRevealPrevOutput, err := tool.buildEmptyRevealTx(request.SingleRevealTxOnly, destinations, revealOutValue, request.FeeRate)
121120
if err != nil {
@@ -136,7 +135,7 @@ func (tool *InscriptionTool) _initTool(net *chaincfg.Params, request *Inscriptio
136135
return err
137136
}
138137

139-
func createInscriptionTxCtxData(net *chaincfg.Params, inscriptionRequest *InscriptionRequest, indexOfRequestDataList int) (*inscriptionTxCtxData, error) {
138+
func createInscriptionTxCtxData(net *chaincfg.Params, data InscriptionData) (*inscriptionTxCtxData, error) {
140139
privateKey, err := btcec.NewPrivateKey()
141140
if err != nil {
142141
return nil, err
@@ -152,17 +151,17 @@ func createInscriptionTxCtxData(net *chaincfg.Params, inscriptionRequest *Inscri
152151
// Therefore, we use two OP_DATA_1 to maintain consistency with ord.
153152
AddOp(txscript.OP_DATA_1).
154153
AddOp(txscript.OP_DATA_1).
155-
AddData([]byte(inscriptionRequest.DataList[indexOfRequestDataList].ContentType)).
154+
AddData([]byte(data.ContentType)).
156155
AddOp(txscript.OP_0)
157156
maxChunkSize := 520
158-
bodySize := len(inscriptionRequest.DataList[indexOfRequestDataList].Body)
157+
bodySize := len(data.Body)
159158
for i := 0; i < bodySize; i += maxChunkSize {
160159
end := i + maxChunkSize
161160
if end > bodySize {
162161
end = bodySize
163162
}
164163
// to skip txscript.MaxScriptSize 10000
165-
inscriptionBuilder.AddFullData(inscriptionRequest.DataList[indexOfRequestDataList].Body[i:end])
164+
inscriptionBuilder.AddFullData(data.Body[i:end])
166165
}
167166
inscriptionScript, err := inscriptionBuilder.Script()
168167
if err != nil {
@@ -171,9 +170,10 @@ func createInscriptionTxCtxData(net *chaincfg.Params, inscriptionRequest *Inscri
171170
// to skip txscript.MaxScriptSize 10000
172171
inscriptionScript = append(inscriptionScript, txscript.OP_ENDIF)
173172

173+
leafNode := txscript.NewBaseTapLeaf(inscriptionScript)
174174
proof := &txscript.TapscriptProof{
175-
TapLeaf: txscript.NewBaseTapLeaf(schnorr.SerializePubKey(privateKey.PubKey())),
176-
RootNode: txscript.NewBaseTapLeaf(inscriptionScript),
175+
TapLeaf: leafNode,
176+
RootNode: leafNode,
177177
}
178178

179179
controlBlock := proof.ToControlBlock(privateKey.PubKey())

0 commit comments

Comments
 (0)