protected override OperationData Deserialize(JArray value, Type objectType) { if (value.IsNullOrEmpty() || value.Count != 2) { return(null); } var type = (ChainTypes.Operation)Convert.ToInt32(value.First); switch (type) { case ChainTypes.Operation.Transfer: return(TransferOperationData.Create(value.Last as JObject)); case ChainTypes.Operation.AccountCreate: return(AccountCreateOperationData.Create(value.Last as JObject)); case ChainTypes.Operation.TournamentCreate: return(TournamentCreateOperationData.Create(value.Last as JObject)); case ChainTypes.Operation.TournamentJoin: return(TournamentJoinOperationData.Create(value.Last as JObject)); case ChainTypes.Operation.TournamentLeave: return(TournamentLeaveOperationData.Create(value.Last as JObject)); case ChainTypes.Operation.TournamentPayout: return(TournamentPayoutOperationData.Create(value.Last as JObject)); case ChainTypes.Operation.GameMove: return(GameMoveOperationData.Create(value.Last as JObject)); case ChainTypes.Operation.ProposalCreate: return(ProposalCreateOperationData.Create(value.Last as JObject)); case ChainTypes.Operation.AssetDividendDistribution: return(AssetDividendDistributionOperationData.Create(value.Last as JObject)); default: Unity.Console.Error("Unexpected operation type:", type); return(null); } }
protected override OperationData Deserialize(JArray value, Type objectType) { if (value.IsNullOrEmpty() || value.Count != 2) { return(null); } var type = (ChainTypes.Operation)Convert.ToInt32(value.First); switch (type) { case ChainTypes.Operation.Transfer: return(TransferOperationData.Create(value.Last as JObject)); //case ChainTypes.Operation.TransferToAddress: //case ChainTypes.Operation.OverrideTransfer: case ChainTypes.Operation.AccountCreate: return(AccountCreateOperationData.Create(value.Last as JObject)); //case ChainTypes.Operation.AccountUpdate: //case ChainTypes.Operation.AccountWhitelist: //case ChainTypes.Operation.AccountAddressCreate: //case ChainTypes.Operation.AssetCreate: //case ChainTypes.Operation.AssetUpdate: //case ChainTypes.Operation.AssetUpdateBitasset: //case ChainTypes.Operation.AssetUpdateFeedProducers: case ChainTypes.Operation.AssetIssue: return(AssetIssueOperationData.Create(value.Last as JObject)); //case ChainTypes.Operation.AssetReserve: //case ChainTypes.Operation.AssetFundFeePool: //case ChainTypes.Operation.AssetPublishFeed: //case ChainTypes.Operation.AssetClaimFees: case ChainTypes.Operation.ProposalCreate: return(ProposalCreateOperationData.Create(value.Last as JObject)); //case ChainTypes.Operation.ProposalUpdate: //case ChainTypes.Operation.ProposalDelete: //case ChainTypes.Operation.CommitteeMemberCreate: //case ChainTypes.Operation.CommitteeMemberUpdate: //case ChainTypes.Operation.CommitteeMemberUpdateGlobalParameters: //case ChainTypes.Operation.CommitteeMemberActivate: //case ChainTypes.Operation.CommitteeMemberDeactivate: //case ChainTypes.Operation.CommitteeFrozenBalanceDeposit: //case ChainTypes.Operation.CommitteeFrozenBalanceWithdraw: //case ChainTypes.Operation.VestingBalanceCreate: //case ChainTypes.Operation.VestingBalanceWithdraw: //case ChainTypes.Operation.BalanceClaim: //case ChainTypes.Operation.BalanceFreeze: //case ChainTypes.Operation.BalanceUnfreeze: //case ChainTypes.Operation.ContractCreate: case ChainTypes.Operation.ContractCall: return(ContractCallOperationData.Create(value.Last as JObject)); //case ChainTypes.Operation.ContractInternalCreate: //case ChainTypes.Operation.ContractInternalCall: //case ChainTypes.Operation.ContractSelfdestruct: //case ChainTypes.Operation.ContractUpdate: //case ChainTypes.Operation.ContractFundPool: //case ChainTypes.Operation.ContractWhitelist: //case ChainTypes.Operation.Sidechain_ETH_CreateAddress: //case ChainTypes.Operation.Sidechain_ETH_ApproveAddress: //case ChainTypes.Operation.Sidechain_ETH_Deposit: //case ChainTypes.Operation.Sidechain_ETH_SendDeposit: //case ChainTypes.Operation.Sidechain_ETH_Withdraw: //case ChainTypes.Operation.Sidechain_ETH_SendWithdraw: //case ChainTypes.Operation.Sidechain_ETH_ApproveWithdraw: //case ChainTypes.Operation.Sidechain_ETH_UpdateContractAddress: //case ChainTypes.Operation.SidechainIssue: //case ChainTypes.Operation.SidechainBurn: //case ChainTypes.Operation.Sidechain_ERC20_RegisterToken: //case ChainTypes.Operation.Sidechain_ERC20_DepositToken: //case ChainTypes.Operation.Sidechain_ERC20_SendDepositToken: //case ChainTypes.Operation.Sidechain_ERC20_WithdrawToken: //case ChainTypes.Operation.Sidechain_ERC20_SendWithdrawToken: //case ChainTypes.Operation.Sidechain_ERC20_ApproveTokenWithdraw: //case ChainTypes.Operation.Sidechain_ERC20_Issue: //case ChainTypes.Operation.Sidechain_ERC20_Burn: //case ChainTypes.Operation.Sidechain_BTC_CreateAddress: //case ChainTypes.Operation.Sidechain_BTC_CreateIntermediateDeposit: //case ChainTypes.Operation.Sidechain_BTC_IntermediateDeposit: //case ChainTypes.Operation.Sidechain_BTC_Deposit: //case ChainTypes.Operation.Sidechain_BTC_Withdraw: //case ChainTypes.Operation.Sidechain_BTC_Aggregate: //case ChainTypes.Operation.Sidechain_BTC_ApproveAggregate: //case ChainTypes.Operation.BlockReward: default: CustomTools.Console.DebugError("Unexpected operation type:", type, '\n', value); return(null); } }