Search code examples
javagozcash

How to convert equivalent GO code to Java code?


I'm making an RPC call using a Java library, I'm taking refrence from a GO code which I need to convert to java. I fairly know nothing about the go syntax. Can anyone help me describe the following code :

Params: []interface{}{
            from, // first parameter is address to send from (where the ZEC comes from)
            []interface{}{
                map[string]interface{}{
                    "amount":  msgval,
                    "address": to,
                    "memo":    hex.EncodeToString([]byte(msg)),
                },
            },

Below is how, I'm trying the equivalent Java code :

Map<String,Object> params = new HashMap<>();
      params.put( "from", fromAddress );
      params.put( "amount", 1.0000 );
      params.put( "address", toAddress );
      params.put( "memo", hexMessage );

Below is the argument description :

This is an Asynchronous RPC call. Send funds from an address to multiple outputs. The address can be a taddr or a zaddr. Amounts is a list containing key/value pairs corresponding to the addresses and amount to pay. Each output address can be in taddr or zaddr format. When sending to a zaddr, you also have the option of of attaching a memo in hexadecimal format.

Is this correct?


Solution

  • Params: []interface{}{
                from, // first parameter is address to send from (where the ZEC comes from)
                []interface{}{
                    map[string]interface{}{
                        "amount":  msgval,
                        "address": to,
                        "memo":    hex.EncodeToString([]byte(msg)),
                    },
                },
    

    Reads roughly like this pseudocode:

    Params => Array<Object>(
        $from,
        Array<Object>(
           Hash<String, Object>(
               "amount" => msgval,
               "address" => to,
               "memo" => hex.EncodeToString(msg),
           )
        )
    )
    

    So, whatever to put in Params is

    1. An array of objects (i.e. of any type), in which
    2. The 1st element is the "from" addres,
    3. The 2nd element is another array,
    4. In which the 1st element is a hash map of string to objects (of any type), which you've already created.