OSDN Git Service

bbcb9abbbb3676a8fbf1b1f6c55b47126c87e6fe
[bytom/shuttle.git] / swap / transaction_test.go
1 package swap
2
3 import (
4         "encoding/json"
5         "fmt"
6         "testing"
7 )
8
9 var server = &Server{
10         IP:   "127.0.0.1",
11         Port: "3000",
12 }
13
14 func TestGetUTXOID(t *testing.T) {
15         txID := "0d2b40feb0e64e910194ed19eac9627683064b848c196da674bef3a94dc3eba8"
16         controlProgram := "001418b791936982ba3cc33112284aa65f575736d913"
17         utxoID, err := getUTXOID(server, txID, controlProgram)
18         if err != nil {
19                 fmt.Println(err)
20         }
21         fmt.Println("utxoID:", utxoID)
22 }
23
24 func TestBuildTx(t *testing.T) {
25         guid := "e18b91ba-91a5-4837-9d41-ce2b76cea81c" // acount a1
26         // fee := uint64(40000000)
27         // confirmations := uint64(1)
28         // outputID := "fa6e8ae89b3acdcfe8d8256c9adce856d87a658c0fe9c711136eca190b66c763"
29         lockedAsset := "bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a"
30         lockedAmount := uint64(100)
31         contractProgram := "20eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c2431600145b0a81adc5c2d68a9967082a09c96e82d62aa058016420ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff741a547a6413000000007b7b51547ac1631a000000547a547aae7cac00c0"
32
33         buildTxResp, err := BuildTx(server, guid, lockedAsset, contractProgram, lockedAmount)
34         if err != nil {
35                 fmt.Println(err)
36         }
37         fmt.Println(buildTxResp)
38 }
39
40 func TestBuildUnlockedTx(t *testing.T) {
41         guid := "e18b91ba-91a5-4837-9d41-ce2b76cea81c" // acount a1
42         // fee := uint64(40000000)
43         // confirmations := uint64(1)
44         contractUTXOID := "dd5ebcbd1c8a9feaa82aad3b6d9b4c28784c4bd1d94acacce6156b47269dc429"
45         contractAsset := "bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a"
46         // spendWalletAmount := fee
47         receiver := "sm1qe5gne93c8wx75ualxkju5yyec20j54ynjxd8zj" // account a4
48         contractAmount := uint64(100)
49
50         buildTxResp, err := BuildUnlockedTx(server, guid, contractUTXOID, contractAsset, receiver, contractAmount)
51         if err != nil {
52                 fmt.Println(err)
53         }
54         fmt.Println(buildTxResp)
55 }
56
57 func TestBuildCallTradeoffTx(t *testing.T) {
58         guid := "e18b91ba-91a5-4837-9d41-ce2b76cea81c" // acount a1
59         // fee := uint64(40000000)
60         // confirmations := uint64(1)
61         contractUTXOID := "dd5ebcbd1c8a9feaa82aad3b6d9b4c28784c4bd1d94acacce6156b47269dc429"
62         assetRequested := "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
63         amountRequested := uint64(100)
64         // contractAsset := "bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a"
65         // spendWalletAmount := fee
66         seller := "00145b0a81adc5c2d68a9967082a09c96e82d62aa058" // seller program
67         // contractAmount := uint64(100)
68
69         buildTxResp, err := BuildCallTradeoffTx(server, guid, contractUTXOID, seller, assetRequested, amountRequested)
70         if err != nil {
71                 fmt.Println(err)
72         }
73         res, err := json.Marshal(buildTxResp)
74         if err != nil {
75                 fmt.Println(err)
76         }
77         fmt.Println("build unlocked response:", string(res))
78 }
79
80 func TestSubmitPayment(t *testing.T) {
81         guid := "e18b91ba-91a5-4837-9d41-ce2b76cea81c" // acount a1
82         rawTx := "07010002016201603b2c6b69759cd0a2245b2f1a5681cf782e485f077a86ed13f82cae677a671d66bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3aaeb7a5f4a9e91502011600145b0a81adc5c2d68a9967082a09c96e82d62aa05801000161015fd284f4407b0b0a3ec00ec97b6145103c9943679db65001cbc7fdb61065c173ceffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8099c4d5990100011600145b0a81adc5c2d68a9967082a09c96e82d62aa058220120eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c2430301b001bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a904e018b01202cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b98240164206ea28f3f1389efd6a731de070fb38ab69dc93dae6c73b6524bac901b662f601d20eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c2437422547a6418000000557aa8547a88537a7bae7cac63220000007bcd9f69537a7cae7cac00c000013fbae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a9ee9a4f4a9e915011600145b0a81adc5c2d68a9967082a09c96e82d62aa05800013effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80e5bac29901011600145b0a81adc5c2d68a9967082a09c96e82d62aa05800"
83         memo := ""
84         spendUTXOSig := "bdc314665cec20027fc25fab5b91c083e6ee614ccc4d50ef6da25884e398eeaf176fbbd0319dc1c3dca23e015040559ea313e992bd31dc30ea5f3d083957550e"
85         spendUTXOPublicKey := "eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c243"
86         spendWalletSig := "e2b94f6604baceb9e8a6da7f87be542b9f24384010aed97c11cc613db43efd38b274a01f391d59996d1ea2fa7e2c7bcea4a7472910f29e4a5c223f080482a60b"
87
88         spendUTXOSignatures := append([]string{}, spendUTXOSig, spendUTXOPublicKey)
89         spendWalletSignatures := append([]string{}, spendWalletSig)
90         sigs := append([][]string{}, spendUTXOSignatures, spendWalletSignatures)
91         txID, err := SubmitPayment(server, guid, rawTx, memo, sigs)
92         if err != nil {
93                 fmt.Println(err)
94         }
95         fmt.Println("submit tx result:", txID)
96 }
97
98 func TestSubmitUnlockedHTLCPayment(t *testing.T) {
99         guid := "e18b91ba-91a5-4837-9d41-ce2b76cea81c" // acount a1
100         rawTx := "0701000201d30101d0013b2c6b69759cd0a2245b2f1a5681cf782e485f077a86ed13f82cae677a671d66bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a0100018b01202cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b98240164206ea28f3f1389efd6a731de070fb38ab69dc93dae6c73b6524bac901b662f601d20eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c2437422547a6418000000557aa8547a88537a7bae7cac63220000007bcd9f69537a7cae7cac00c001000161015fabf3111e8449df088eda1072c1bd4322157b62f588d8817d36f548f444092591ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8099c4d5990100011600145b0a81adc5c2d68a9967082a09c96e82d62aa058220120eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c243020139bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a0101160014cd113c96383b8dea73bf35a5ca1099c29f2a549300013effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80e5bac29901011600145b0a81adc5c2d68a9967082a09c96e82d62aa05800"
101         memo := ""
102         preimage := "68656c6c6f" // hex("hello")
103         spendUTXOSig := "749ebba8f0e59d9815b50bc9440667d7d5ff09baffa48c057b7d17e547e8f88e571cc690a791194c610ac5e4c91494031ac1142ffd7a13f48b548d6ab3a89a06"
104         spendWalletSig := "c7bf8f1f18ac9bf94c051c80d3d6f9ce52e2edda3f4d36c37d795d747d649a6776d99d28e88eba7f1a1e521b25216f17b0f032d78b8c0c1c8a53e2c42d6e220c"
105
106         spendUTXOSignatures := append([]string{}, preimage, spendUTXOSig, "")
107         spendWalletSignatures := append([]string{}, spendWalletSig)
108         sigs := append([][]string{}, spendUTXOSignatures, spendWalletSignatures)
109         txID, err := SubmitPayment(server, guid, rawTx, memo, sigs)
110         if err != nil {
111                 fmt.Println(err)
112         }
113         fmt.Println("submit tx result:", txID)
114 }
115
116 func TestSubmitCancelHTLCPayment(t *testing.T) {
117         guid := "e18b91ba-91a5-4837-9d41-ce2b76cea81c" // acount a1
118         rawTx := "0701000201d40101d1011edb4b73e76241f96de1bebf96dfa2c65e15a065cec78a23aa2fe1e1f3478a4ebae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a904e00018b01202cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b98240164206ea28f3f1389efd6a731de070fb38ab69dc93dae6c73b6524bac901b662f601d20eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c2437422547a6418000000557aa8547a88537a7bae7cac63220000007bcd9f69537a7cae7cac00c001000161015f06ba9c21d8cb432dc89282815d1254b29f1182cb164d7ad64f6a8ace8f328297ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8099c4d5990100011600145b0a81adc5c2d68a9967082a09c96e82d62aa058220120eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c243030139bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a6301160014cd113c96383b8dea73bf35a5ca1099c29f2a549300013abae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3aad4d011600145b0a81adc5c2d68a9967082a09c96e82d62aa05800013effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80e5bac29901011600145b0a81adc5c2d68a9967082a09c96e82d62aa05800"
119         memo := ""
120         spendUTXOSig := "84fa1ef1b5ec3ae07c616999323671d03392d994f317545c3c130d2a2eb2fe1110fb92f00e47e61f76f0b168c871eb4d66c77169795cd0fd05517e29f0f79505"
121         spendWalletSig := "54d73d6d4b5ee8c5d675e347767e50784b8eafe3b80dae3bf054e70a4fb29bde964d37e514ff67af904b687feeaeaea21c48b4169fdc88d133d9aaf0c2c8070b"
122
123         spendUTXOSignatures := append([]string{}, spendUTXOSig, "01") // ????
124         spendWalletSignatures := append([]string{}, spendWalletSig)
125         sigs := append([][]string{}, spendUTXOSignatures, spendWalletSignatures)
126         txID, err := SubmitPayment(server, guid, rawTx, memo, sigs)
127         if err != nil {
128                 fmt.Println(err)
129         }
130         fmt.Println("submit tx result:", txID)
131 }
132
133 func TestSubmitTradeoffPayment(t *testing.T) {
134         guid := "e18b91ba-91a5-4837-9d41-ce2b76cea81c" // acount a1
135         rawTx := "0701000301c00101bd012b30c07d12cc4e20268976694f4213fd0aa0d2406bab92b9770185d62415dcf9bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a6400017920eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c2431600145b0a81adc5c2d68a9967082a09c96e82d62aa058016420ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff741a547a6413000000007b7b51547ac1631a000000547a547aae7cac00c001000161015f62e8f59d2baa6ea0ef9f8765850526a5569cca9865929da5316e687968f485b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8099c4d5990100011600145b0a81adc5c2d68a9967082a09c96e82d62aa058220120eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c2430161015f2b7b8cfbdc565eed46b507557431ce0cf4e723f52041b4615392fdf9d4a55590ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8099c4d5990100011600145b0a81adc5c2d68a9967082a09c96e82d62aa058220120eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c243030139ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff64011600145b0a81adc5c2d68a9967082a09c96e82d62aa058000139bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a64011600145b0a81adc5c2d68a9967082a09c96e82d62aa05800013effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9cfdfe97b302011600145b0a81adc5c2d68a9967082a09c96e82d62aa05800"
136         memo := ""
137         spendUTXOSig := "c88cdd08f099c7a4a3aa4075e6439285e93c782dfe03f3160f79a171feb2c2f4a4acf716aba3cd4b0a33308f63c75ff23965912ef2cdf5599574eaa426c70d05"
138         spendWalletSig := ""
139         spendUTXOSignatures := append([]string{}, spendUTXOSig)
140         spendWalletSignatures := append([]string{}, spendWalletSig)
141         sigs := append([][]string{}, spendUTXOSignatures, spendWalletSignatures)
142         txID, err := SubmitPayment(server, guid, rawTx, memo, sigs)
143         if err != nil {
144                 fmt.Println(err)
145         }
146         fmt.Println("submit tx result:", txID)
147 }
148
149 func TestSubmitCallTradeoffPayment(t *testing.T) {
150         guid := "e18b91ba-91a5-4837-9d41-ce2b76cea81c" // acount a1
151         rawTx := "0701000301c00101bd012b30c07d12cc4e20268976694f4213fd0aa0d2406bab92b9770185d62415dcf9bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a6400017920eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c2431600145b0a81adc5c2d68a9967082a09c96e82d62aa058016420ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff741a547a6413000000007b7b51547ac1631a000000547a547aae7cac00c001000161015f62e8f59d2baa6ea0ef9f8765850526a5569cca9865929da5316e687968f485b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8099c4d5990100011600145b0a81adc5c2d68a9967082a09c96e82d62aa058220120eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c2430161015f2b7b8cfbdc565eed46b507557431ce0cf4e723f52041b4615392fdf9d4a55590ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8099c4d5990100011600145b0a81adc5c2d68a9967082a09c96e82d62aa058220120eec15ce68d46569f92ecebd7769101b22e34109892cc7ddfd54dc772f850c243030139ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff64011600145b0a81adc5c2d68a9967082a09c96e82d62aa058000139bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a64011600145b0a81adc5c2d68a9967082a09c96e82d62aa05800013effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9cfdfe97b302011600145b0a81adc5c2d68a9967082a09c96e82d62aa05800"
152         memo := ""
153         spendWalletSigForFee := "17da2c6b16af70570bb7bbb90eb2f6e1c78509e8a7aca915be5d4d6924e50a1b2a4ead1c5585daf0992fe0a85184b9076a17a7451deb7fa442b52ba226d6a707"
154         spendWalletSigForContract := "c33503b4aa7156289681a56efb754299da2cef4c16af59bdb417f12bca8ceed0a3d23f4ef430c4b6239f4bb4dd8a174065850ebf018b2d7a7470e8e88ce3b40b"
155
156         spendUTXOSignatures := append([]string{}, "")
157         spendWalletSignaturesForFee := append([]string{}, spendWalletSigForFee)
158         spendWalletSignaturesForContract := append([]string{}, spendWalletSigForContract)
159         sigs := append([][]string{}, spendUTXOSignatures, spendWalletSignaturesForFee, spendWalletSignaturesForContract)
160         txID, err := SubmitPayment(server, guid, rawTx, memo, sigs)
161         if err != nil {
162                 fmt.Println(err)
163         }
164         fmt.Println("submit tx result:", txID)
165 }
166
167 func TestSignMsg(t *testing.T) {
168         signData := "1ea87696b53edfb37b4f9dfa42de796bdbf61330d484aab312dffd33d4312587"
169         xprv := "682d87647c76edafb0c0bdb8b9a87e84f79627c86a4d7620c89a9ef7551ecf47013095e747f609c86703ee7c0281b2182dfaca66d60ea58814d7929e6b6968a5"
170         sig, err := SignMessage(signData, xprv)
171         if err != nil {
172                 fmt.Println(err)
173         }
174         fmt.Println("sig:", sig)
175 }