diff --git a/util/elementsd_connector.go b/util/elementsd_connector.go index e6021b4..c10931f 100644 --- a/util/elementsd_connector.go +++ b/util/elementsd_connector.go @@ -24,7 +24,7 @@ func ReissueAsset(reissueTx string) (txID string, err error) { cmdArgs := strings.Split(reissueTx, " ") elementsSyncAccess.Lock() defer elementsSyncAccess.Unlock() - result, err := elements.ReissueAsset(url, []string{cmdArgs[1], cmdArgs[2]}) + result, err := elements.ReissueAsset(url, []string{`"` + cmdArgs[1] + `"`, cmdArgs[2]}) if err != nil { return } @@ -39,7 +39,7 @@ func DistributeAsset(address string, amount string, reissuanceAsset string) (txI elementsSyncAccess.Lock() defer elementsSyncAccess.Unlock() txID, err = elements.SendToAddress(url, []string{ - address, + `"` + address + `"`, `"` + amount + `"`, `""`, `""`, @@ -62,7 +62,7 @@ func IssueNFTAsset(name string, machineAddress string, domain string) (assetID s return } - addressInfo, err := elements.GetAddressInfo(url, []string{address}) + addressInfo, err := elements.GetAddressInfo(url, []string{`"` + address + `"`}) if err != nil { return } @@ -74,7 +74,7 @@ func IssueNFTAsset(name string, machineAddress string, domain string) (assetID s return } - fundRawTransactionResult, err := elements.FundRawTransaction(url, []string{hex, `{"feeRate":0.00001000}`}) + fundRawTransactionResult, err := elements.FundRawTransaction(url, []string{`"` + hex + `"`, `{"feeRate":0.00001000}`}) if err != nil { return } @@ -109,7 +109,7 @@ func IssueNFTAsset(name string, machineAddress string, domain string) (assetID s hash[i], hash[j] = hash[j], hash[i] } - rawIssueAssetResults, err := elements.RawIssueAsset(url, []string{fundRawTransactionResult.Hex, + rawIssueAssetResults, err := elements.RawIssueAsset(url, []string{`"` + fundRawTransactionResult.Hex + `"`, `[{"asset_amount":0.00000001, "asset_address":"` + address + `", "blind":false, "contract_hash":"` + fmt.Sprintf("%+x", hash) + `"}]`, }) if err != nil { @@ -117,13 +117,13 @@ func IssueNFTAsset(name string, machineAddress string, domain string) (assetID s } rawIssueAssetResult := rawIssueAssetResults[len(rawIssueAssetResults)-1] - hex, err = elements.BlindRawTransaction(url, []string{rawIssueAssetResult.Hex, `true`, `[]`, `false`}) + hex, err = elements.BlindRawTransaction(url, []string{`"` + rawIssueAssetResult.Hex + `"`, `true`, `[]`, `false`}) if err != nil { return } assetID = rawIssueAssetResult.Asset - signRawTransactionWithWalletResult, err := elements.SignRawTransactionWithWallet(url, []string{hex}) + signRawTransactionWithWalletResult, err := elements.SignRawTransactionWithWallet(url, []string{`"` + hex + `"`}) if err != nil { return } @@ -139,7 +139,7 @@ func IssueNFTAsset(name string, machineAddress string, domain string) (assetID s return } - hex, err = elements.SendRawTransaction(url, []string{signRawTransactionWithWalletResult.Hex}) + hex, err = elements.SendRawTransaction(url, []string{`"` + signRawTransactionWithWalletResult.Hex + `"`}) if err != nil { return } diff --git a/util/elementsd_connector_test.go b/util/elementsd_connector_test.go new file mode 100644 index 0000000..8701c77 --- /dev/null +++ b/util/elementsd_connector_test.go @@ -0,0 +1,60 @@ +package util_test + +import ( + "fmt" + "math/rand" + "strconv" + "sync" + "testing" + + "github.com/planetmint/planetmint-go/testutil/moduleobject" + "github.com/planetmint/planetmint-go/testutil/sample" + "github.com/planetmint/planetmint-go/util" + "github.com/planetmint/planetmint-go/x/machine/types" + elements "github.com/rddl-network/elements-rpc" + elementsmocks "github.com/rddl-network/elements-rpc/utils/mocks" + "github.com/stretchr/testify/assert" +) + +func TestReissueAsset(t *testing.T) { + elements.Client = &elementsmocks.MockClient{} + txid, err := util.ReissueAsset("reissueasset 06c20c8de513527f1ae6c901f74a05126525ac2d7e89306f4a7fd5ec4e674403 900.000") + fmt.Println("txid :" + txid) + assert.NoError(t, err) +} + +func TestDistributeAsset(t *testing.T) { + elements.Client = &elementsmocks.MockClient{} + + txid, err := util.DistributeAsset( + "tlq1qqt5078sef4aqls29c3j3pwfmukgjug70t37x26gwyhzpdxmtmjmphar88fwsl9qcm559jevve772prhtuyf9xkxdtrhvuce6a", + "20", + "06c20c8de513527f1ae6c901f74a05126525ac2d7e89306f4a7fd5ec4e674403") + fmt.Println("txid :" + txid) + assert.NoError(t, err) +} + +func TestIssueNFTAsset(t *testing.T) { + elements.Client = &elementsmocks.MockClient{} + + params := types.DefaultParams() + var wg sync.WaitGroup + + for i := 0; i < 1; i++ { + wg.Add(1) + go func() { + randomInt := rand.Int() + sk, pk := sample.KeyPair(randomInt) + machine := moduleobject.MachineRandom(pk, pk, sk, "address "+strconv.Itoa(randomInt), randomInt) + + assetID, contract, hex, err := util.IssueNFTAsset(machine.Name, machine.Address, params.AssetRegistryDomain) + fmt.Println("asset id :" + assetID) + fmt.Println("contract :" + contract) + fmt.Println("hex :" + hex) + assert.NoError(t, err) + + wg.Done() + }() + } + wg.Wait() +}