mirror of
https://github.com/aljazceru/ark.git
synced 2026-01-31 17:14:46 +01:00
[SDK] Add sendAsync & dump to wasm (#346)
* use bitcoin receivers * add sendAsync to wasm * add dump() to wasm
This commit is contained in:
@@ -30,11 +30,13 @@ func init() {
|
||||
js.Global().Set("receive", ReceiveWrapper())
|
||||
js.Global().Set("sendOnChain", SendOnChainWrapper())
|
||||
js.Global().Set("sendOffChain", SendOffChainWrapper())
|
||||
js.Global().Set("sendAsync", SendAsyncWrapper())
|
||||
js.Global().Set("claim", ClaimWrapper())
|
||||
js.Global().Set("unilateralRedeem", UnilateralRedeemWrapper())
|
||||
js.Global().Set("collaborativeRedeem", CollaborativeRedeemWrapper())
|
||||
js.Global().Set("getTransactionHistory", GetTransactionHistoryWrapper())
|
||||
js.Global().Set("log", LogWrapper())
|
||||
js.Global().Set("dump", DumpWrapper())
|
||||
|
||||
js.Global().Set("getAspUrl", GetAspUrlWrapper())
|
||||
js.Global().Set("getAspPubKeyHex", GetAspPubkeyWrapper())
|
||||
|
||||
@@ -164,6 +164,19 @@ func ReceiveWrapper() js.Func {
|
||||
})
|
||||
}
|
||||
|
||||
func DumpWrapper() js.Func {
|
||||
return JSPromise(func(args []js.Value) (interface{}, error) {
|
||||
if arkSdkClient == nil {
|
||||
return nil, errors.New("ARK SDK client is not initialized")
|
||||
}
|
||||
seed, err := arkSdkClient.Dump(context.Background())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return js.ValueOf(seed), nil
|
||||
})
|
||||
}
|
||||
|
||||
func SendOnChainWrapper() js.Func {
|
||||
return JSPromise(func(args []js.Value) (interface{}, error) {
|
||||
if len(args) != 1 {
|
||||
@@ -172,7 +185,7 @@ func SendOnChainWrapper() js.Func {
|
||||
receivers := make([]arksdk.Receiver, args[0].Length())
|
||||
for i := 0; i < args[0].Length(); i++ {
|
||||
receiver := args[0].Index(i)
|
||||
receivers[i] = arksdk.NewLiquidReceiver(
|
||||
receivers[i] = arksdk.NewBitcoinReceiver(
|
||||
receiver.Get("To").String(), uint64(receiver.Get("Amount").Int()),
|
||||
)
|
||||
}
|
||||
@@ -196,7 +209,7 @@ func SendOffChainWrapper() js.Func {
|
||||
receivers := make([]arksdk.Receiver, args[1].Length())
|
||||
for i := 0; i < args[1].Length(); i++ {
|
||||
receiver := args[1].Index(i)
|
||||
receivers[i] = arksdk.NewLiquidReceiver(
|
||||
receivers[i] = arksdk.NewBitcoinReceiver(
|
||||
receiver.Get("To").String(), uint64(receiver.Get("Amount").Int()),
|
||||
)
|
||||
}
|
||||
@@ -211,6 +224,30 @@ func SendOffChainWrapper() js.Func {
|
||||
})
|
||||
}
|
||||
|
||||
func SendAsyncWrapper() js.Func {
|
||||
return JSPromise(func(args []js.Value) (interface{}, error) {
|
||||
if len(args) != 2 {
|
||||
return nil, errors.New("invalid number of args")
|
||||
}
|
||||
withExpiryCoinselect := args[0].Bool()
|
||||
receivers := make([]arksdk.Receiver, args[1].Length())
|
||||
for i := 0; i < args[1].Length(); i++ {
|
||||
receiver := args[1].Index(i)
|
||||
receivers[i] = arksdk.NewBitcoinReceiver(
|
||||
receiver.Get("To").String(), uint64(receiver.Get("Amount").Int()),
|
||||
)
|
||||
}
|
||||
|
||||
txID, err := arkSdkClient.SendAsync(
|
||||
context.Background(), withExpiryCoinselect, receivers,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return js.ValueOf(txID), nil
|
||||
})
|
||||
}
|
||||
|
||||
func ClaimWrapper() js.Func {
|
||||
return JSPromise(func(args []js.Value) (interface{}, error) {
|
||||
if len(args) != 0 {
|
||||
|
||||
Reference in New Issue
Block a user