)
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))
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)
}
// 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"
}