Move structs to new crate
This commit is contained in:
parent
c3b17bafdf
commit
fa7556a813
9
Cargo.lock
generated
9
Cargo.lock
generated
|
@ -1952,6 +1952,7 @@ dependencies = [
|
||||||
"snafu",
|
"snafu",
|
||||||
"tokio",
|
"tokio",
|
||||||
"vapore-proto",
|
"vapore-proto",
|
||||||
|
"vapore-struct",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1971,6 +1972,14 @@ dependencies = [
|
||||||
"protobuf-codegen",
|
"protobuf-codegen",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "vapore-struct"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"num_enum",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "version_check"
|
name = "version_check"
|
||||||
version = "0.9.5"
|
version = "0.9.5"
|
||||||
|
|
|
@ -4,14 +4,17 @@ members = [
|
||||||
"client",
|
"client",
|
||||||
"lib",
|
"lib",
|
||||||
"proto",
|
"proto",
|
||||||
|
"struct",
|
||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
|
bitflags = "2.6.0"
|
||||||
color-eyre = "0.6"
|
color-eyre = "0.6"
|
||||||
env_logger = "0.11"
|
env_logger = "0.11"
|
||||||
keyvalues-serde = "0.2"
|
keyvalues-serde = "0.2"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
|
num_enum = "0.7.3"
|
||||||
protobuf = "3.5.1"
|
protobuf = "3.5.1"
|
||||||
|
|
|
@ -6,14 +6,14 @@ version.workspace = true
|
||||||
[dependencies]
|
[dependencies]
|
||||||
async-tungstenite = { version = "0.27.0", features = ["tokio-rustls-native-certs"] }
|
async-tungstenite = { version = "0.27.0", features = ["tokio-rustls-native-certs"] }
|
||||||
base64 = "0.22.1"
|
base64 = "0.22.1"
|
||||||
bitflags = "2.6.0"
|
bitflags.workspace = true
|
||||||
color-eyre.workspace = true
|
color-eyre.workspace = true
|
||||||
flate2 = "1.0.33"
|
flate2 = "1.0.33"
|
||||||
futures = "0.3.30"
|
futures = "0.3.30"
|
||||||
hex = "0.4.3"
|
hex = "0.4.3"
|
||||||
keyvalues-serde.workspace = true
|
keyvalues-serde.workspace = true
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
num_enum = "0.7.3"
|
num_enum.workspace = true
|
||||||
protobuf.workspace = true
|
protobuf.workspace = true
|
||||||
rand = "0.8.5"
|
rand = "0.8.5"
|
||||||
reqwest = { version = "0.12", features = ["rustls-tls-native-roots"], default-features = false}
|
reqwest = { version = "0.12", features = ["rustls-tls-native-roots"], default-features = false}
|
||||||
|
@ -22,6 +22,7 @@ serde = { version = "1.0.209", features = ["derive"] }
|
||||||
snafu = "0.8.4"
|
snafu = "0.8.4"
|
||||||
tokio = { version = "1.39", features = ["rt", "rt-multi-thread", "macros", "time"]}
|
tokio = { version = "1.39", features = ["rt", "rt-multi-thread", "macros", "time"]}
|
||||||
vapore-proto.path = "../proto"
|
vapore-proto.path = "../proto"
|
||||||
|
vapore-struct.path = "../struct"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
dialoguer = "0.11.0"
|
dialoguer = "0.11.0"
|
||||||
|
|
|
@ -15,7 +15,7 @@ use vapore_proto::{
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
connection::{CMContext, CMSession},
|
connection::CMSession,
|
||||||
error::{RSAEncryptSnafu, RSAParameterParseSnafu, RSAParseSnafu},
|
error::{RSAEncryptSnafu, RSAParameterParseSnafu, RSAParseSnafu},
|
||||||
message::CMProtoBufMessage,
|
message::CMProtoBufMessage,
|
||||||
platform::generate_machine_id,
|
platform::generate_machine_id,
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
use num_enum::TryFromPrimitiveError;
|
|
||||||
use snafu::prelude::*;
|
use snafu::prelude::*;
|
||||||
|
|
||||||
use crate::state::apps::{ELicenseType, EPaymentMethod};
|
|
||||||
|
|
||||||
#[derive(Debug, Snafu)]
|
#[derive(Debug, Snafu)]
|
||||||
#[snafu(visibility(pub(crate)))]
|
#[snafu(visibility(pub(crate)))]
|
||||||
pub enum ClientError {
|
pub enum ClientError {
|
||||||
|
@ -66,14 +63,9 @@ pub enum ClientError {
|
||||||
actual: vapore_proto::enums_clientserver::EMsg,
|
actual: vapore_proto::enums_clientserver::EMsg,
|
||||||
},
|
},
|
||||||
|
|
||||||
#[snafu(display("Unknown value while parsing enum EPaymentMethod"))]
|
#[snafu(display("Unknown value while parsing enum"))]
|
||||||
TryFromEPaymentMethod {
|
TryFromPrimitive {
|
||||||
source: TryFromPrimitiveError<EPaymentMethod>,
|
source: Box<dyn std::error::Error + Send + Sync>,
|
||||||
},
|
|
||||||
|
|
||||||
#[snafu(display("Unknown value while parsing enum ELicenseType"))]
|
|
||||||
TryFromELicenseType {
|
|
||||||
source: TryFromPrimitiveError<ELicenseType>,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
#[snafu(display("Unable to parse RSA key parameters"))]
|
#[snafu(display("Unable to parse RSA key parameters"))]
|
||||||
|
@ -92,3 +84,15 @@ impl<T> From<std::sync::PoisonError<T>> for ClientError {
|
||||||
ClientError::LockPoisoned
|
ClientError::LockPoisoned
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<Enum: num_enum::TryFromPrimitive + 'static> From<num_enum::TryFromPrimitiveError<Enum>>
|
||||||
|
for ClientError
|
||||||
|
where
|
||||||
|
<Enum as num_enum::TryFromPrimitive>::Primitive: Send + Sync,
|
||||||
|
{
|
||||||
|
fn from(value: num_enum::TryFromPrimitiveError<Enum>) -> Self {
|
||||||
|
Self::TryFromPrimitive {
|
||||||
|
source: Box::new(value),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -3,225 +3,14 @@ use std::{
|
||||||
time::{Duration, SystemTime, UNIX_EPOCH},
|
time::{Duration, SystemTime, UNIX_EPOCH},
|
||||||
};
|
};
|
||||||
|
|
||||||
use num_enum::TryFromPrimitive;
|
|
||||||
use snafu::prelude::*;
|
|
||||||
use tokio::sync::watch;
|
use tokio::sync::watch;
|
||||||
use vapore_proto::{
|
use vapore_proto::{
|
||||||
enums_clientserver::EMsg,
|
enums_clientserver::EMsg,
|
||||||
steammessages_clientserver::{cmsg_client_license_list, CMsgClientLicenseList},
|
steammessages_clientserver::{cmsg_client_license_list, CMsgClientLicenseList},
|
||||||
};
|
};
|
||||||
|
use vapore_struct::enums::{ELicenseFlags, ELicenseType, EPaymentMethod};
|
||||||
|
|
||||||
use crate::{
|
use crate::{connection::CMSession, message::CMProtoBufMessage, ClientError};
|
||||||
connection::CMSession,
|
|
||||||
error::{TryFromELicenseTypeSnafu, TryFromEPaymentMethodSnafu},
|
|
||||||
message::{CMProtoBufMessage, CMRawProtoBufMessage},
|
|
||||||
ClientError,
|
|
||||||
};
|
|
||||||
|
|
||||||
#[repr(u32)]
|
|
||||||
#[derive(Debug, Copy, Clone, TryFromPrimitive)]
|
|
||||||
pub enum EPaymentMethod {
|
|
||||||
None = 0,
|
|
||||||
ActivationCode = 1,
|
|
||||||
CreditCard = 2,
|
|
||||||
Giropay = 3,
|
|
||||||
PayPal = 4,
|
|
||||||
Ideal = 5,
|
|
||||||
PaySafeCard = 6,
|
|
||||||
Sofort = 7,
|
|
||||||
GuestPass = 8,
|
|
||||||
WebMoney = 9,
|
|
||||||
MoneyBookers = 10,
|
|
||||||
AliPay = 11,
|
|
||||||
Yandex = 12,
|
|
||||||
Kiosk = 13,
|
|
||||||
Qiwi = 14,
|
|
||||||
GameStop = 15,
|
|
||||||
HardwarePromo = 16,
|
|
||||||
MoPay = 17,
|
|
||||||
BoletoBancario = 18,
|
|
||||||
BoaCompraGold = 19,
|
|
||||||
BancoDoBrasilOnline = 20,
|
|
||||||
ItauOnline = 21,
|
|
||||||
BradescoOnline = 22,
|
|
||||||
Pagseguro = 23,
|
|
||||||
VisaBrazil = 24,
|
|
||||||
AmexBrazil = 25,
|
|
||||||
Aura = 26,
|
|
||||||
Hipercard = 27,
|
|
||||||
MastercardBrazil = 28,
|
|
||||||
DinersCardBrazil = 29,
|
|
||||||
AuthorizedDevice = 30,
|
|
||||||
MOLPoints = 31,
|
|
||||||
ClickAndBuy = 32,
|
|
||||||
Beeline = 33,
|
|
||||||
Konbini = 34,
|
|
||||||
EClubPoints = 35,
|
|
||||||
CreditCardJapan = 36,
|
|
||||||
BankTransferJapan = 37,
|
|
||||||
PayEasy = 38,
|
|
||||||
Zong = 39,
|
|
||||||
CultureVoucher = 40,
|
|
||||||
BookVoucher = 41,
|
|
||||||
HappymoneyVoucher = 42,
|
|
||||||
ConvenientStoreVoucher = 43,
|
|
||||||
GameVoucher = 44,
|
|
||||||
Multibanco = 45,
|
|
||||||
Payshop = 46,
|
|
||||||
MaestroBoaCompra = 47,
|
|
||||||
OXXO = 48,
|
|
||||||
ToditoCash = 49,
|
|
||||||
Carnet = 50,
|
|
||||||
SPEI = 51,
|
|
||||||
ThreePay = 52,
|
|
||||||
IsBank = 53,
|
|
||||||
Garanti = 54,
|
|
||||||
Akbank = 55,
|
|
||||||
YapiKredi = 56,
|
|
||||||
Halkbank = 57,
|
|
||||||
BankAsya = 58,
|
|
||||||
Finansbank = 59,
|
|
||||||
DenizBank = 60,
|
|
||||||
PTT = 61,
|
|
||||||
CashU = 62,
|
|
||||||
SantanderRio = 63,
|
|
||||||
AutoGrant = 64,
|
|
||||||
WebMoneyJapan = 65,
|
|
||||||
OneCard = 66,
|
|
||||||
PSE = 67,
|
|
||||||
Exito = 68,
|
|
||||||
Efecty = 69,
|
|
||||||
Paloto = 70,
|
|
||||||
PinValidda = 71,
|
|
||||||
MangirKart = 72,
|
|
||||||
BancoCreditoDePeru = 73,
|
|
||||||
BBVAContinental = 74,
|
|
||||||
SafetyPay = 75,
|
|
||||||
PagoEfectivo = 76,
|
|
||||||
Trustly = 77,
|
|
||||||
UnionPay = 78,
|
|
||||||
BitCoin = 79,
|
|
||||||
LicensedSite = 80,
|
|
||||||
BitCash = 81,
|
|
||||||
NetCash = 82,
|
|
||||||
Nanaco = 83,
|
|
||||||
Tenpay = 84,
|
|
||||||
WeChat = 85,
|
|
||||||
CashonDelivery = 86,
|
|
||||||
CreditCardNodwin = 87,
|
|
||||||
DebitCardNodwin = 88,
|
|
||||||
NetBankingNodwin = 89,
|
|
||||||
CashCardNodwin = 90,
|
|
||||||
WalletNodwin = 91,
|
|
||||||
MobileDegica = 92,
|
|
||||||
Naranja = 93,
|
|
||||||
Cencosud = 94,
|
|
||||||
Cabal = 95,
|
|
||||||
PagoFacil = 96,
|
|
||||||
Rapipago = 97,
|
|
||||||
BancoNacionaldeCostaRica = 98,
|
|
||||||
BancoPoplar = 99,
|
|
||||||
RedPagos = 100,
|
|
||||||
SPE = 101,
|
|
||||||
Multicaja = 102,
|
|
||||||
RedCompra = 103,
|
|
||||||
ZiraatBank = 104,
|
|
||||||
VakiflarBank = 105,
|
|
||||||
KuveytTurkBank = 106,
|
|
||||||
EkonomiBank = 107,
|
|
||||||
Pichincha = 108,
|
|
||||||
PichinchaCash = 109,
|
|
||||||
Przelewy24 = 110,
|
|
||||||
Trustpay = 111,
|
|
||||||
POLi = 112,
|
|
||||||
MercadoPago = 113,
|
|
||||||
PayU = 114,
|
|
||||||
VTCPayWallet = 115,
|
|
||||||
MrCash = 116,
|
|
||||||
EPS = 117,
|
|
||||||
Interac = 118,
|
|
||||||
VTCPayCards = 119,
|
|
||||||
VTCPayOnlineBanking = 120,
|
|
||||||
VisaElectronBoaCompra = 121,
|
|
||||||
CafeFunded = 122,
|
|
||||||
OCA = 123,
|
|
||||||
Lider = 124,
|
|
||||||
WebMoneySteamCardJapan = 125,
|
|
||||||
WebMoneySteamCardTopUpJapan = 126,
|
|
||||||
Toss = 127,
|
|
||||||
Wallet = 128,
|
|
||||||
Valve = 129,
|
|
||||||
MasterComp = 130,
|
|
||||||
Promotional = 131,
|
|
||||||
MasterSubscription = 134,
|
|
||||||
Payco = 135,
|
|
||||||
MobileWalletJapan = 136,
|
|
||||||
BoletoFlash = 137,
|
|
||||||
PIX = 138,
|
|
||||||
GCash = 139,
|
|
||||||
KakaoPay = 140,
|
|
||||||
Dana = 141,
|
|
||||||
TrueMoney = 142,
|
|
||||||
TouchnGo = 143,
|
|
||||||
LinePay = 144,
|
|
||||||
MerPay = 145,
|
|
||||||
PayPay = 146,
|
|
||||||
AlfaClick = 147,
|
|
||||||
Sberbank = 148,
|
|
||||||
YooMoney = 149,
|
|
||||||
Tinkoff = 150,
|
|
||||||
CashInCIS = 151,
|
|
||||||
AuPAY = 152,
|
|
||||||
AliPayHK = 153,
|
|
||||||
NaverPay = 154,
|
|
||||||
Linkaja = 155,
|
|
||||||
ShopeePay = 156,
|
|
||||||
GrabPay = 157,
|
|
||||||
PayNow = 158,
|
|
||||||
OnlineBankingThailand = 159,
|
|
||||||
CashOptionsThailand = 160,
|
|
||||||
OEMTicket = 256,
|
|
||||||
Split = 512,
|
|
||||||
Complimentary = 1024,
|
|
||||||
FamilyGroup = 1025,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, TryFromPrimitive)]
|
|
||||||
#[repr(u32)]
|
|
||||||
pub enum ELicenseType {
|
|
||||||
NoLicense = 0,
|
|
||||||
SinglePurchase = 1,
|
|
||||||
SinglePurchaseLimitedUse = 2,
|
|
||||||
RecurringCharge = 3,
|
|
||||||
RecurringChargeLimitedUse = 4,
|
|
||||||
RecurringChargeLimitedUseWithOverages = 5,
|
|
||||||
RecurringOption = 6,
|
|
||||||
LimitedUseDelayedActivation = 7,
|
|
||||||
}
|
|
||||||
|
|
||||||
bitflags::bitflags! {
|
|
||||||
pub struct ELicenseFlags: u32 {
|
|
||||||
const None = 0;
|
|
||||||
const Renew = 0x01;
|
|
||||||
const RenewalFailed = 0x02;
|
|
||||||
const Pending = 0x04;
|
|
||||||
const Expired = 0x08;
|
|
||||||
const CancelledByUser = 0x10;
|
|
||||||
const CancelledByAdmin = 0x20;
|
|
||||||
const LowViolenceContent = 0x40;
|
|
||||||
const ImportedFromSteam2 = 0x80;
|
|
||||||
const ForceRunRestriction = 0x100;
|
|
||||||
const RegionRestrictionExpired = 0x200;
|
|
||||||
const CancelledByFriendlyFraudLock = 0x400;
|
|
||||||
const NotActivated = 0x800;
|
|
||||||
const PendingRefund = 0x2000;
|
|
||||||
const Borrowed = 0x4000;
|
|
||||||
const ReleaseStateOverride = 0x8000;
|
|
||||||
const CancelledByPartner = 0x40000;
|
|
||||||
const NonPermanent = 0x80000;
|
|
||||||
const PreferredOwner = 0x100000;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct License {
|
pub struct License {
|
||||||
pub package_id: u32,
|
pub package_id: u32,
|
||||||
|
@ -258,16 +47,10 @@ impl TryFrom<cmsg_client_license_list::License> for License {
|
||||||
},
|
},
|
||||||
minute_limit: value.minute_limit(),
|
minute_limit: value.minute_limit(),
|
||||||
minutes_used: value.minutes_used(),
|
minutes_used: value.minutes_used(),
|
||||||
payment_method: value
|
payment_method: value.payment_method().try_into()?,
|
||||||
.payment_method()
|
|
||||||
.try_into()
|
|
||||||
.context(TryFromEPaymentMethodSnafu {})?,
|
|
||||||
flags: ELicenseFlags::from_bits_truncate(value.flags()),
|
flags: ELicenseFlags::from_bits_truncate(value.flags()),
|
||||||
purchase_country_code: value.purchase_country_code().to_string(),
|
purchase_country_code: value.purchase_country_code().to_string(),
|
||||||
license_type: value
|
license_type: value.license_type().try_into()?,
|
||||||
.license_type()
|
|
||||||
.try_into()
|
|
||||||
.context(TryFromELicenseTypeSnafu {})?,
|
|
||||||
territory_code: value.territory_code(),
|
territory_code: value.territory_code(),
|
||||||
change_number: value.change_number(),
|
change_number: value.change_number(),
|
||||||
owner_id: value.owner_id(),
|
owner_id: value.owner_id(),
|
||||||
|
|
|
@ -1 +1,5 @@
|
||||||
|
//! Generated data types used by the Steam API.
|
||||||
|
//! This only includes protobufs, not `*.steamd` files representing raw structs
|
||||||
|
//! and some enums.
|
||||||
|
|
||||||
include!(concat!(env!("OUT_DIR"), "/gen/mod.rs"));
|
include!(concat!(env!("OUT_DIR"), "/gen/mod.rs"));
|
||||||
|
|
9
struct/Cargo.toml
Normal file
9
struct/Cargo.toml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[package]
|
||||||
|
name = "vapore-struct"
|
||||||
|
edition = "2021"
|
||||||
|
version.workspace = true
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
bitflags.workspace = true
|
||||||
|
num_enum.workspace = true
|
||||||
|
|
349
struct/src/lib.rs
Normal file
349
struct/src/lib.rs
Normal file
|
@ -0,0 +1,349 @@
|
||||||
|
//! Structures from SteamKit2 `*.steamd` files.
|
||||||
|
//! Currently these are manually copied, but may be autogenerated in the future
|
||||||
|
|
||||||
|
pub mod eresult {
|
||||||
|
use num_enum::{IntoPrimitive, TryFromPrimitive};
|
||||||
|
#[repr(u32)]
|
||||||
|
#[derive(Debug, Copy, Clone, TryFromPrimitive, IntoPrimitive)]
|
||||||
|
enum EResult {
|
||||||
|
Invalid = 0,
|
||||||
|
|
||||||
|
OK = 1,
|
||||||
|
Fail = 2,
|
||||||
|
NoConnection = 3,
|
||||||
|
InvalidPassword = 5,
|
||||||
|
LoggedInElsewhere = 6,
|
||||||
|
InvalidProtocolVer = 7,
|
||||||
|
InvalidParam = 8,
|
||||||
|
FileNotFound = 9,
|
||||||
|
Busy = 10,
|
||||||
|
InvalidState = 11,
|
||||||
|
InvalidName = 12,
|
||||||
|
InvalidEmail = 13,
|
||||||
|
DuplicateName = 14,
|
||||||
|
AccessDenied = 15,
|
||||||
|
Timeout = 16,
|
||||||
|
Banned = 17,
|
||||||
|
AccountNotFound = 18,
|
||||||
|
InvalidSteamID = 19,
|
||||||
|
ServiceUnavailable = 20,
|
||||||
|
NotLoggedOn = 21,
|
||||||
|
Pending = 22,
|
||||||
|
EncryptionFailure = 23,
|
||||||
|
InsufficientPrivilege = 24,
|
||||||
|
LimitExceeded = 25,
|
||||||
|
Revoked = 26,
|
||||||
|
Expired = 27,
|
||||||
|
AlreadyRedeemed = 28,
|
||||||
|
DuplicateRequest = 29,
|
||||||
|
AlreadyOwned = 30,
|
||||||
|
IPNotFound = 31,
|
||||||
|
PersistFailed = 32,
|
||||||
|
LockingFailed = 33,
|
||||||
|
LogonSessionReplaced = 34,
|
||||||
|
ConnectFailed = 35,
|
||||||
|
HandshakeFailed = 36,
|
||||||
|
IOFailure = 37,
|
||||||
|
RemoteDisconnect = 38,
|
||||||
|
ShoppingCartNotFound = 39,
|
||||||
|
Blocked = 40,
|
||||||
|
Ignored = 41,
|
||||||
|
NoMatch = 42,
|
||||||
|
AccountDisabled = 43,
|
||||||
|
ServiceReadOnly = 44,
|
||||||
|
AccountNotFeatured = 45,
|
||||||
|
AdministratorOK = 46,
|
||||||
|
ContentVersion = 47,
|
||||||
|
TryAnotherCM = 48,
|
||||||
|
PasswordRequiredToKickSession = 49,
|
||||||
|
AlreadyLoggedInElsewhere = 50,
|
||||||
|
Suspended = 51,
|
||||||
|
Cancelled = 52,
|
||||||
|
DataCorruption = 53,
|
||||||
|
DiskFull = 54,
|
||||||
|
RemoteCallFailed = 55,
|
||||||
|
PasswordUnset = 56,
|
||||||
|
ExternalAccountUnlinked = 57,
|
||||||
|
PSNTicketInvalid = 58,
|
||||||
|
ExternalAccountAlreadyLinked = 59,
|
||||||
|
RemoteFileConflict = 60,
|
||||||
|
IllegalPassword = 61,
|
||||||
|
SameAsPreviousValue = 62,
|
||||||
|
AccountLogonDenied = 63,
|
||||||
|
CannotUseOldPassword = 64,
|
||||||
|
InvalidLoginAuthCode = 65,
|
||||||
|
AccountLogonDeniedNoMail = 66,
|
||||||
|
HardwareNotCapableOfIPT = 67,
|
||||||
|
IPTInitError = 68,
|
||||||
|
ParentalControlRestricted = 69,
|
||||||
|
FacebookQueryError = 70,
|
||||||
|
ExpiredLoginAuthCode = 71,
|
||||||
|
IPLoginRestrictionFailed = 72,
|
||||||
|
AccountLockedDown = 73,
|
||||||
|
AccountLogonDeniedVerifiedEmailRequired = 74,
|
||||||
|
NoMatchingURL = 75,
|
||||||
|
BadResponse = 76,
|
||||||
|
RequirePasswordReEntry = 77,
|
||||||
|
ValueOutOfRange = 78,
|
||||||
|
UnexpectedError = 79,
|
||||||
|
Disabled = 80,
|
||||||
|
InvalidCEGSubmission = 81,
|
||||||
|
RestrictedDevice = 82,
|
||||||
|
RegionLocked = 83,
|
||||||
|
RateLimitExceeded = 84,
|
||||||
|
AccountLoginDeniedNeedTwoFactor = 85,
|
||||||
|
ItemDeleted = 86,
|
||||||
|
AccountLoginDeniedThrottle = 87,
|
||||||
|
TwoFactorCodeMismatch = 88,
|
||||||
|
TwoFactorActivationCodeMismatch = 89,
|
||||||
|
AccountAssociatedToMultiplePartners = 90,
|
||||||
|
NotModified = 91,
|
||||||
|
NoMobileDevice = 92,
|
||||||
|
TimeNotSynced = 93,
|
||||||
|
SMSCodeFailed = 94,
|
||||||
|
AccountLimitExceeded = 95,
|
||||||
|
AccountActivityLimitExceeded = 96,
|
||||||
|
PhoneActivityLimitExceeded = 97,
|
||||||
|
RefundToWallet = 98,
|
||||||
|
EmailSendFailure = 99,
|
||||||
|
NotSettled = 100,
|
||||||
|
NeedCaptcha = 101,
|
||||||
|
GSLTDenied = 102,
|
||||||
|
GSOwnerDenied = 103,
|
||||||
|
InvalidItemType = 104,
|
||||||
|
IPBanned = 105,
|
||||||
|
GSLTExpired = 106,
|
||||||
|
InsufficientFunds = 107,
|
||||||
|
TooManyPending = 108,
|
||||||
|
NoSiteLicensesFound = 109,
|
||||||
|
WGNetworkSendExceeded = 110,
|
||||||
|
AccountNotFriends = 111,
|
||||||
|
LimitedUserAccount = 112,
|
||||||
|
CantRemoveItem = 113,
|
||||||
|
AccountDeleted = 114,
|
||||||
|
ExistingUserCancelledLicense = 115,
|
||||||
|
CommunityCooldown = 116,
|
||||||
|
NoLauncherSpecified = 117,
|
||||||
|
MustAgreeToSSA = 118,
|
||||||
|
LauncherMigrated = 119,
|
||||||
|
SteamRealmMismatch = 120,
|
||||||
|
InvalidSignature = 121,
|
||||||
|
ParseFailure = 122,
|
||||||
|
NoVerifiedPhone = 123,
|
||||||
|
InsufficientBattery = 124,
|
||||||
|
ChargerRequired = 125,
|
||||||
|
CachedCredentialInvalid = 126,
|
||||||
|
PhoneNumberIsVOIP = 127,
|
||||||
|
NotSupported = 128,
|
||||||
|
FamilySizeLimitExceeded = 129,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub mod enums {
|
||||||
|
use num_enum::{IntoPrimitive, TryFromPrimitive};
|
||||||
|
bitflags::bitflags! {
|
||||||
|
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
||||||
|
pub struct ELicenseFlags: u32 {
|
||||||
|
const None = 0;
|
||||||
|
const Renew = 0x01;
|
||||||
|
const RenewalFailed = 0x02;
|
||||||
|
const Pending = 0x04;
|
||||||
|
const Expired = 0x08;
|
||||||
|
const CancelledByUser = 0x10;
|
||||||
|
const CancelledByAdmin = 0x20;
|
||||||
|
const LowViolenceContent = 0x40;
|
||||||
|
const ImportedFromSteam2 = 0x80;
|
||||||
|
const ForceRunRestriction = 0x100;
|
||||||
|
const RegionRestrictionExpired = 0x200;
|
||||||
|
const CancelledByFriendlyFraudLock = 0x400;
|
||||||
|
const NotActivated = 0x800;
|
||||||
|
const PendingRefund = 0x2000;
|
||||||
|
const Borrowed = 0x4000;
|
||||||
|
const ReleaseStateOverride = 0x8000;
|
||||||
|
const CancelledByPartner = 0x40000;
|
||||||
|
const NonPermanent = 0x80000;
|
||||||
|
const PreferredOwner = 0x100000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, TryFromPrimitive, IntoPrimitive)]
|
||||||
|
#[repr(u32)]
|
||||||
|
pub enum ELicenseType {
|
||||||
|
NoLicense = 0,
|
||||||
|
SinglePurchase = 1,
|
||||||
|
SinglePurchaseLimitedUse = 2,
|
||||||
|
RecurringCharge = 3,
|
||||||
|
RecurringChargeLimitedUse = 4,
|
||||||
|
RecurringChargeLimitedUseWithOverages = 5,
|
||||||
|
RecurringOption = 6,
|
||||||
|
LimitedUseDelayedActivation = 7,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[repr(u32)]
|
||||||
|
#[derive(Debug, Copy, Clone, TryFromPrimitive, IntoPrimitive)]
|
||||||
|
pub enum EPaymentMethod {
|
||||||
|
None = 0,
|
||||||
|
ActivationCode = 1,
|
||||||
|
CreditCard = 2,
|
||||||
|
Giropay = 3,
|
||||||
|
PayPal = 4,
|
||||||
|
Ideal = 5,
|
||||||
|
PaySafeCard = 6,
|
||||||
|
Sofort = 7,
|
||||||
|
GuestPass = 8,
|
||||||
|
WebMoney = 9,
|
||||||
|
MoneyBookers = 10,
|
||||||
|
AliPay = 11,
|
||||||
|
Yandex = 12,
|
||||||
|
Kiosk = 13,
|
||||||
|
Qiwi = 14,
|
||||||
|
GameStop = 15,
|
||||||
|
HardwarePromo = 16,
|
||||||
|
MoPay = 17,
|
||||||
|
BoletoBancario = 18,
|
||||||
|
BoaCompraGold = 19,
|
||||||
|
BancoDoBrasilOnline = 20,
|
||||||
|
ItauOnline = 21,
|
||||||
|
BradescoOnline = 22,
|
||||||
|
Pagseguro = 23,
|
||||||
|
VisaBrazil = 24,
|
||||||
|
AmexBrazil = 25,
|
||||||
|
Aura = 26,
|
||||||
|
Hipercard = 27,
|
||||||
|
MastercardBrazil = 28,
|
||||||
|
DinersCardBrazil = 29,
|
||||||
|
AuthorizedDevice = 30,
|
||||||
|
MOLPoints = 31,
|
||||||
|
ClickAndBuy = 32,
|
||||||
|
Beeline = 33,
|
||||||
|
Konbini = 34,
|
||||||
|
EClubPoints = 35,
|
||||||
|
CreditCardJapan = 36,
|
||||||
|
BankTransferJapan = 37,
|
||||||
|
PayEasy = 38,
|
||||||
|
Zong = 39,
|
||||||
|
CultureVoucher = 40,
|
||||||
|
BookVoucher = 41,
|
||||||
|
HappymoneyVoucher = 42,
|
||||||
|
ConvenientStoreVoucher = 43,
|
||||||
|
GameVoucher = 44,
|
||||||
|
Multibanco = 45,
|
||||||
|
Payshop = 46,
|
||||||
|
MaestroBoaCompra = 47,
|
||||||
|
OXXO = 48,
|
||||||
|
ToditoCash = 49,
|
||||||
|
Carnet = 50,
|
||||||
|
SPEI = 51,
|
||||||
|
ThreePay = 52,
|
||||||
|
IsBank = 53,
|
||||||
|
Garanti = 54,
|
||||||
|
Akbank = 55,
|
||||||
|
YapiKredi = 56,
|
||||||
|
Halkbank = 57,
|
||||||
|
BankAsya = 58,
|
||||||
|
Finansbank = 59,
|
||||||
|
DenizBank = 60,
|
||||||
|
PTT = 61,
|
||||||
|
CashU = 62,
|
||||||
|
SantanderRio = 63,
|
||||||
|
AutoGrant = 64,
|
||||||
|
WebMoneyJapan = 65,
|
||||||
|
OneCard = 66,
|
||||||
|
PSE = 67,
|
||||||
|
Exito = 68,
|
||||||
|
Efecty = 69,
|
||||||
|
Paloto = 70,
|
||||||
|
PinValidda = 71,
|
||||||
|
MangirKart = 72,
|
||||||
|
BancoCreditoDePeru = 73,
|
||||||
|
BBVAContinental = 74,
|
||||||
|
SafetyPay = 75,
|
||||||
|
PagoEfectivo = 76,
|
||||||
|
Trustly = 77,
|
||||||
|
UnionPay = 78,
|
||||||
|
BitCoin = 79,
|
||||||
|
LicensedSite = 80,
|
||||||
|
BitCash = 81,
|
||||||
|
NetCash = 82,
|
||||||
|
Nanaco = 83,
|
||||||
|
Tenpay = 84,
|
||||||
|
WeChat = 85,
|
||||||
|
CashonDelivery = 86,
|
||||||
|
CreditCardNodwin = 87,
|
||||||
|
DebitCardNodwin = 88,
|
||||||
|
NetBankingNodwin = 89,
|
||||||
|
CashCardNodwin = 90,
|
||||||
|
WalletNodwin = 91,
|
||||||
|
MobileDegica = 92,
|
||||||
|
Naranja = 93,
|
||||||
|
Cencosud = 94,
|
||||||
|
Cabal = 95,
|
||||||
|
PagoFacil = 96,
|
||||||
|
Rapipago = 97,
|
||||||
|
BancoNacionaldeCostaRica = 98,
|
||||||
|
BancoPoplar = 99,
|
||||||
|
RedPagos = 100,
|
||||||
|
SPE = 101,
|
||||||
|
Multicaja = 102,
|
||||||
|
RedCompra = 103,
|
||||||
|
ZiraatBank = 104,
|
||||||
|
VakiflarBank = 105,
|
||||||
|
KuveytTurkBank = 106,
|
||||||
|
EkonomiBank = 107,
|
||||||
|
Pichincha = 108,
|
||||||
|
PichinchaCash = 109,
|
||||||
|
Przelewy24 = 110,
|
||||||
|
Trustpay = 111,
|
||||||
|
POLi = 112,
|
||||||
|
MercadoPago = 113,
|
||||||
|
PayU = 114,
|
||||||
|
VTCPayWallet = 115,
|
||||||
|
MrCash = 116,
|
||||||
|
EPS = 117,
|
||||||
|
Interac = 118,
|
||||||
|
VTCPayCards = 119,
|
||||||
|
VTCPayOnlineBanking = 120,
|
||||||
|
VisaElectronBoaCompra = 121,
|
||||||
|
CafeFunded = 122,
|
||||||
|
OCA = 123,
|
||||||
|
Lider = 124,
|
||||||
|
WebMoneySteamCardJapan = 125,
|
||||||
|
WebMoneySteamCardTopUpJapan = 126,
|
||||||
|
Toss = 127,
|
||||||
|
Wallet = 128,
|
||||||
|
Valve = 129,
|
||||||
|
MasterComp = 130,
|
||||||
|
Promotional = 131,
|
||||||
|
MasterSubscription = 134,
|
||||||
|
Payco = 135,
|
||||||
|
MobileWalletJapan = 136,
|
||||||
|
BoletoFlash = 137,
|
||||||
|
PIX = 138,
|
||||||
|
GCash = 139,
|
||||||
|
KakaoPay = 140,
|
||||||
|
Dana = 141,
|
||||||
|
TrueMoney = 142,
|
||||||
|
TouchnGo = 143,
|
||||||
|
LinePay = 144,
|
||||||
|
MerPay = 145,
|
||||||
|
PayPay = 146,
|
||||||
|
AlfaClick = 147,
|
||||||
|
Sberbank = 148,
|
||||||
|
YooMoney = 149,
|
||||||
|
Tinkoff = 150,
|
||||||
|
CashInCIS = 151,
|
||||||
|
AuPAY = 152,
|
||||||
|
AliPayHK = 153,
|
||||||
|
NaverPay = 154,
|
||||||
|
Linkaja = 155,
|
||||||
|
ShopeePay = 156,
|
||||||
|
GrabPay = 157,
|
||||||
|
PayNow = 158,
|
||||||
|
OnlineBankingThailand = 159,
|
||||||
|
CashOptionsThailand = 160,
|
||||||
|
OEMTicket = 256,
|
||||||
|
Split = 512,
|
||||||
|
Complimentary = 1024,
|
||||||
|
FamilyGroup = 1025,
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue