예제 #1
0
        public ExecutionStatus SetMinter(UInt160 minterAddress, SystemContractExecutionFrame frame)
        {
            Logger.LogInformation($"SetMinter, Sender {frame.InvocationContext.Sender.ToHex()}, minterController {_mintCntrlAdd.ToHex()}.  minter {minterAddress.ToHex()}");
            frame.UseGas(GasMetering.NativeTokenApproveCost);
            if (!frame.InvocationContext.Sender.Equals(_mintCntrlAdd))
            {
                return(ExecutionStatus.ExecutionHalted);
            }

            _context.Snapshot.Balances.SetMinter(minterAddress);
            frame.ReturnValue = ContractEncoder.Encode(null, _context.Snapshot.Balances.GetMinter().ToUInt256());
            return(ExecutionStatus.Ok);
        }