frostfs-node/pkg/morph/client/balance/transfer.go
Ekaterina Lebedeva 24054cf6f4 [#1618] pkg: Refactor user.ID.ScriptHash() usage
`user.ID.ScriptHash()` does not return an error anymore.

Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-01-30 13:18:37 +00:00

38 lines
863 B
Go

package balance
import (
"context"
"fmt"
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/morph/client"
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/user"
)
// TransferPrm groups parameters of TransferX method.
type TransferPrm struct {
Amount int64
From, To user.ID
Details []byte
client.InvokePrmOptional
}
// TransferX transfers p.Amount of GASe-12 from p.From to p.To
// with details p.Details through direct smart contract call.
func (c *Client) TransferX(ctx context.Context, p TransferPrm) error {
from := p.From.ScriptHash()
to := p.To.ScriptHash()
prm := client.InvokePrm{}
prm.SetMethod(transferXMethod)
prm.SetArgs(from, to, p.Amount, p.Details)
prm.InvokePrmOptional = p.InvokePrmOptional
_, err := c.client.Invoke(ctx, prm)
if err != nil {
return fmt.Errorf("invoke method (%s): %w", transferXMethod, err)
}
return nil
}