public override Empty RentResourceTokens(RentResourceTokensInput input)
 {
     CheckSenderIsCrossChainContract();
     State.RentedResourceTokenAmount[input.ChainId.Value] = input.ResourceTokenAmount;
     if (State.RemainResourceTokenAmount.Value != null)
     {
         State.RemainResourceTokenAmount.Value -= input.ResourceTokenAmount;
     }
     return(new Empty());
 }
        public override Empty UpdateRentedResourceTokens(RentResourceTokensInput input)
        {
            CheckSenderIsCrossChainContract();
            Assert(State.RentedResourceTokenAmount[input.ChainId.Value] != null, "Rented resource amount not found.");
            var change = input.ResourceTokenAmount - State.RentedResourceTokenAmount[input.ChainId.Value];

            State.RentedResourceTokenAmount[input.ChainId.Value] = input.ResourceTokenAmount;
            if (State.RemainResourceTokenAmount.Value != null)
            {
                State.RemainResourceTokenAmount.Value -= change;
            }
            return(new Empty());
        }