public void Restore(SimpleAccountState state)
 {
     Balance = state.Balance;
 }
Ejemplo n.º 2
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.TokenType == JsonToken.String)
            {
                var value = reader.Value as string;
                if (value == null)
                {
                    return(null);
                }

                var state = new SimpleAccountState();
                state.Index = value;
                return(state);
            }
            else if (reader.TokenType == JsonToken.StartObject)
            {
                var stateObject   = JObject.Load(reader);
                var entryTypeNode = stateObject["LedgerEntryType"];
                if (entryTypeNode == null)
                {
                    return(null);
                }

                AccountState state;
                var          entryType = entryTypeNode.Value <string>();
                switch (entryType)
                {
                case "LedgerHashes":
                    state = new LedgerHashesAccountState();
                    break;

                case "AccountRoot":
                    state = new AccountRootAccountState();
                    break;

                case "State":
                    state = new StateAccountState();
                    break;

                case "FeeSettings":
                    state = new FeeSettingsAccountState();
                    break;

                case "DirectoryNode":
                    state = new DirectoryNodeAccountState();
                    break;

                case "SkywellState":
                    state = new SkywellStateAccountState();
                    break;

                case "ManageIssuer":
                    state = new ManageIssuerAccountState();
                    break;

                default:
                    state = new UnknownAccountState(entryType);
                    break;
                }

                serializer.Populate(stateObject.CreateReader(), state);
                state.RawData = stateObject.ToString();
                return(state);
            }

            return(null);
        }