Transfer a username to another account
(username string, address string)
| 3093 | |
| 3094 | // Transfer a username to another account |
| 3095 | func transferUsername(username string, address string) (storage uint64, err error) { |
| 3096 | var args = rpc.Arguments{} |
| 3097 | var dest string |
| 3098 | |
| 3099 | scid := crypto.HashHexToHash("0000000000000000000000000000000000000000000000000000000000000001") |
| 3100 | |
| 3101 | args = append(args, rpc.Argument{Name: "entrypoint", DataType: "S", Value: "TransferOwnership"}) |
| 3102 | args = append(args, rpc.Argument{Name: "SC_ID", DataType: "H", Value: scid}) |
| 3103 | args = append(args, rpc.Argument{Name: "SC_ACTION", DataType: "U", Value: uint64(rpc.SC_CALL)}) |
| 3104 | args = append(args, rpc.Argument{Name: "name", DataType: "S", Value: username}) |
| 3105 | args = append(args, rpc.Argument{Name: "newowner", DataType: "S", Value: address}) |
| 3106 | |
| 3107 | switch session.Network { |
| 3108 | case NETWORK_MAINNET: |
| 3109 | dest = "dero1qykyta6ntpd27nl0yq4xtzaf4ls6p5e9pqu0k2x4x3pqq5xavjsdxqgny8270" |
| 3110 | case NETWORK_SIMULATOR: |
| 3111 | dest = "deto1qyvyeyzrcm2fzf6kyq7egkes2ufgny5xn77y6typhfx9s7w3mvyd5qqynr5hx" |
| 3112 | default: |
| 3113 | dest = "deto1qy0ehnqjpr0wxqnknyc66du2fsxyktppkr8m8e6jvplp954klfjz2qqdzcd8p" |
| 3114 | } |
| 3115 | |
| 3116 | transfer := rpc.Transfer{ |
| 3117 | Destination: dest, |
| 3118 | Amount: 0, |
| 3119 | Burn: 0, |
| 3120 | } |
| 3121 | |
| 3122 | gasParams := rpc.GasEstimate_Params{ |
| 3123 | SC_RPC: args, |
| 3124 | SC_Value: 0, |
| 3125 | Ringsize: 2, |
| 3126 | Signer: engram.Disk.GetAddress().String(), |
| 3127 | Transfers: []rpc.Transfer{transfer}, |
| 3128 | } |
| 3129 | |
| 3130 | storage, err = getGasEstimate(gasParams) |
| 3131 | if err != nil { |
| 3132 | logger.Errorf("[%s] Error estimating fees: %s\n", "TransferOwnership", err) |
| 3133 | return |
| 3134 | } |
| 3135 | |
| 3136 | tx, err := engram.Disk.TransferPayload0([]rpc.Transfer{transfer}, 2, false, args, storage, false) |
| 3137 | if err != nil { |
| 3138 | logger.Errorf("[%s] Error while building transaction: %s\n", "TransferOwnership", err) |
| 3139 | return |
| 3140 | } |
| 3141 | |
| 3142 | txid := tx.GetHash().String() |
| 3143 | |
| 3144 | err = engram.Disk.SendTransaction(tx) |
| 3145 | if err != nil { |
| 3146 | logger.Errorf("[%s] Error while dispatching transaction: %s\n", "TransferOwnership", err) |
| 3147 | return |
| 3148 | } |
| 3149 | |
| 3150 | walletapi.WaitNewHeightBlock() |
| 3151 | logger.Printf("[%s] Username transfer successful - TXID: %s\n", "TransferOwnership", txid) |
| 3152 | _ = tx |
no test coverage detected