MCPcopy Create free account
hub / github.com/DEROFDN/Engram / transferUsername

Function transferUsername

functions.go:3095–3155  ·  view source on GitHub ↗

Transfer a username to another account

(username string, address string)

Source from the content-addressed store, hash-verified

3093
3094// Transfer a username to another account
3095func 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

Callers 1

layoutIdentityDetailFunction · 0.85

Calls 1

getGasEstimateFunction · 0.85

Tested by

no test coverage detected