OSDN Git Service

update BuildLockTransaction
authorChengcheng Zhang <943420582@qq.com>
Mon, 26 Aug 2019 08:46:23 +0000 (16:46 +0800)
committerChengcheng Zhang <943420582@qq.com>
Mon, 26 Aug 2019 08:46:23 +0000 (16:46 +0800)
main.go
swap/contract.go

diff --git a/main.go b/main.go
index 8af7a49..8dbc323 100644 (file)
--- a/main.go
+++ b/main.go
@@ -7,30 +7,32 @@ import (
 )
 
 func main() {
-       balances := swap.ListBalances("a1")
-       fmt.Println("balances:", balances)
+       // balances := swap.ListBalances("a1")
+       // fmt.Println("balances:", balances)
 
-       accounts := swap.ListAccounts()
-       fmt.Println("accounts:", accounts)
+       // accounts := swap.ListAccounts()
+       // fmt.Println("accounts:", accounts)
 
-       addresses := swap.ListAddresses("a1")
-       fmt.Println("addresses:", addresses)
+       // addresses := swap.ListAddresses("a1")
+       // fmt.Println("addresses:", addresses)
 
-       pubkeyInfo := swap.ListPubkeys("a1")
-       fmt.Println(pubkeyInfo)
+       // pubkeyInfo := swap.ListPubkeys("a1")
+       // fmt.Println(pubkeyInfo)
 
+       accountIDSent := "10CJPO1HG0A02" // account a1 build swap contract
        assetRequested := "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
-       seller := "00145dd7b82556226d563b6e7d573fe61d23bd461c1f"
-       cancelKey := "3e5d7d52d334964eef173021ef6a04dc0807ac8c41700fe718f5a80c2109f79e"
        amountRequested := uint64(1000000000)
+       seller := "00145dd7b82556226d563b6e7d573fe61d23bd461c1f"                            // control program which want to receive assetRequested
+       cancelKey := "3e5d7d52d334964eef173021ef6a04dc0807ac8c41700fe718f5a80c2109f79e"     // cancelKey can cancel swap contract
+       assetIDLocked := "bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a" // assetIDLocked represents locked asset ID
+       amountLocked := uint64(20000000000)                                                 // amountLocked represents locked asset amount
+       txFee := uint64(10000000)                                                           // txFee represents transaction fee
+
        contractInfo := swap.CompileLockContract(assetRequested, seller, cancelKey, amountRequested)
        fmt.Println("contract info:", contractInfo)
 
-       assetID := "bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a"
-       amount := uint64(20000000000)
-       controlProgram := "203e5d7d52d334964eef173021ef6a04dc0807ac8c41700fe718f5a80c2109f79e1600145dd7b82556226d563b6e7d573fe61d23bd461c1f0400ca9a3b20ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff741a547a6413000000007b7b51547ac1631a000000547a547aae7cac00c0"
-       tx := swap.BuildTransaction(assetID, controlProgram, amount)
-       fmt.Println("tx:", tx)
+       tx := swap.BuildLockTransaction(accountIDSent, assetIDLocked, contractInfo.Program, amountLocked, txFee)
+       fmt.Println("tx:", string(tx))
 
        password := "12345"
        signedTransaction := swap.SignTransaction(password, string(tx))
@@ -39,8 +41,7 @@ func main() {
        txID := swap.SubmitTransaction(signedTransaction)
        fmt.Println("txID:", txID)
 
-       // txID := "e15674a9c694f56a0d172152df8dc28bbbe89f9828feb8398d3ebfb4e2f104ae"
-       contractUTXOID, err := swap.GetContractUTXOID(txID, controlProgram)
+       contractUTXOID, err := swap.GetContractUTXOID(txID, contractInfo.Program)
        if err != nil {
                fmt.Println(err)
        }
index fa90c06..ac3b4f7 100644 (file)
@@ -145,24 +145,24 @@ func CompileLockContract(assetRequested, seller, cancelKey string, amountRequest
 //     Data   interface{} `json:"data"`
 // }
 
-func BuildTransaction(assetID, controlProgram string, amount uint64) []byte {
+func BuildLockTransaction(accountIDSent, assetIDLocked, contractControlProgram string, amountLocked, txFee uint64) []byte {
        data := []byte(`{
                "actions":[
                        {
-                               "account_id":"10CJPO1HG0A02",
-                               "amount":` + strconv.FormatUint(amount, 10) + `,
-                               "asset_id":"` + assetID + `",
+                               "account_id":"` + accountIDSent + `",
+                               "amount":` + strconv.FormatUint(amountLocked, 10) + `,
+                               "asset_id":"` + assetIDLocked + `",
                                "type":"spend_account"
                        },
                        {
-                               "amount":` + strconv.FormatUint(amount, 10) + `,
-                               "asset_id":"` + assetID + `",
-                               "control_program":"` + controlProgram + `",
+                               "amount":` + strconv.FormatUint(amountLocked, 10) + `,
+                               "asset_id":"` + assetIDLocked + `",
+                               "control_program":"` + contractControlProgram + `",
                                "type":"control_program"
                        },
                        {
-                               "account_id":"10CJPO1HG0A02",
-                               "amount":100000000,
+                               "account_id":"` + accountIDSent + `",
+                               "amount":` + strconv.FormatUint(txFee, 10) + `,
                                "asset_id":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
                                "type":"spend_account"
                        }