diff --git a/proto/v1/certificate.proto b/proto/v1/certificate.proto new file mode 100644 index 0000000..86fcac5 --- /dev/null +++ b/proto/v1/certificate.proto @@ -0,0 +1,20 @@ +syntax = "proto2"; + +package pb; + +enum KeyType { + UNKNOWN_PUBLIC_KEY_TYPE = 0; + NIST256p = 1; + NIST384p = 2; + SECP256k1 = 3; +} + +message Certificate { + enum Version { + UNKNOWN_VERSION = 0; + _0_0_1 = 1; + } + required Version version = 1; + required KeyType keyType = 2; + required bytes publicKey = 4; +} diff --git a/proto/v1/claim.proto b/proto/v1/claim.proto new file mode 100644 index 0000000..ff590f1 --- /dev/null +++ b/proto/v1/claim.proto @@ -0,0 +1,24 @@ +syntax = "proto2"; + +package pb; + +import "stream.proto"; +import "certificate.proto"; +import "signature.proto"; + +message Claim { + enum Version { + UNKNOWN_VERSION = 0; + _0_0_1 = 1; + } + required Version version = 1; + enum ClaimType { + UNKNOWN_CLAIM_TYPE = 0; + streamType = 1; + certificateType = 2; + } + required ClaimType claimType = 2; + optional Stream stream = 3; + optional Certificate certificate = 4; + optional Signature publisherSignature = 5; +} diff --git a/proto/v1/fee.proto b/proto/v1/fee.proto new file mode 100644 index 0000000..dedbd8c --- /dev/null +++ b/proto/v1/fee.proto @@ -0,0 +1,20 @@ +syntax = "proto2"; + +package pb; + +message Fee { + enum Version { + UNKNOWN_VERSION = 0; + _0_0_1 = 1; + } + enum Currency { + UNKNOWN_CURRENCY = 0; + LBC = 1; + BTC = 2; + USD = 3; + } + required Version version = 1; + required Currency currency = 2; + required bytes address = 3; + required float amount = 4; +} diff --git a/proto/v1/metadata.proto b/proto/v1/metadata.proto new file mode 100644 index 0000000..618a5f2 --- /dev/null +++ b/proto/v1/metadata.proto @@ -0,0 +1,214 @@ +syntax = "proto2"; + +package pb; + +import "fee.proto"; + +message Metadata { + enum Version { + UNKNOWN_VERSION = 0; + _0_0_1 = 1; + _0_0_2 = 2; + _0_0_3 = 3; + _0_1_0 = 4; + } + enum Language { + UNKNOWN_LANGUAGE = 0; + en = 1; + aa = 2; + ab = 3; + ae = 4; + af = 5; + ak = 6; + am = 7; + an = 8; + ar = 9; + as = 10; + av = 11; + ay = 12; + az = 13; + ba = 14; + be = 15; + bg = 16; + bh = 17; + bi = 18; + bm = 19; + bn = 20; + bo = 21; + br = 22; + bs = 23; + ca = 24; + ce = 25; + ch = 26; + co = 27; + cr = 28; + cs = 29; + cu = 30; + cv = 31; + cy = 32; + da = 33; + de = 34; + dv = 35; + dz = 36; + ee = 37; + el = 38; + eo = 39; + es = 40; + et = 41; + eu = 42; + fa = 43; + ff = 44; + fi = 45; + fj = 46; + fo = 47; + fr = 48; + fy = 49; + ga = 50; + gd = 51; + gl = 52; + gn = 53; + gu = 54; + gv = 55; + ha = 56; + he = 57; + hi = 58; + ho = 59; + hr = 60; + ht = 61; + hu = 62; + hy = 63; + hz = 64; + ia = 65; + id = 66; + ie = 67; + ig = 68; + ii = 69; + ik = 70; + io = 71; + is = 72; + it = 73; + iu = 74; + ja = 75; + jv = 76; + ka = 77; + kg = 78; + ki = 79; + kj = 80; + kk = 81; + kl = 82; + km = 83; + kn = 84; + ko = 85; + kr = 86; + ks = 87; + ku = 88; + kv = 89; + kw = 90; + ky = 91; + la = 92; + lb = 93; + lg = 94; + li = 95; + ln = 96; + lo = 97; + lt = 98; + lu = 99; + lv = 100; + mg = 101; + mh = 102; + mi = 103; + mk = 104; + ml = 105; + mn = 106; + mr = 107; + ms = 108; + mt = 109; + my = 110; + na = 111; + nb = 112; + nd = 113; + ne = 114; + ng = 115; + nl = 116; + nn = 117; + no = 118; + nr = 119; + nv = 120; + ny = 121; + oc = 122; + oj = 123; + om = 124; + or = 125; + os = 126; + pa = 127; + pi = 128; + pl = 129; + ps = 130; + pt = 131; + qu = 132; + rm = 133; + rn = 134; + ro = 135; + ru = 136; + rw = 137; + sa = 138; + sc = 139; + sd = 140; + se = 141; + sg = 142; + si = 143; + sk = 144; + sl = 145; + sm = 146; + sn = 147; + so = 148; + sq = 149; + sr = 150; + ss = 151; + st = 152; + su = 153; + sv = 154; + sw = 155; + ta = 156; + te = 157; + tg = 158; + th = 159; + ti = 160; + tk = 161; + tl = 162; + tn = 163; + to = 164; + tr = 165; + ts = 166; + tt = 167; + tw = 168; + ty = 169; + ug = 170; + uk = 171; + ur = 172; + uz = 173; + ve = 174; + vi = 175; + vo = 176; + wa = 177; + wo = 178; + xh = 179; + yi = 180; + yo = 181; + za = 182; + zh = 183; + zu = 184; + } + required Version version = 1; + required Language language = 2; + required string title = 3; + required string description = 4; + required string author = 5; + required string license = 6; + required bool nsfw = 7; + + optional Fee fee = 8; + optional string thumbnail = 9; + optional string preview = 10; + optional string licenseUrl = 11; +} diff --git a/proto/v1/signature.proto b/proto/v1/signature.proto new file mode 100644 index 0000000..9ebfc0b --- /dev/null +++ b/proto/v1/signature.proto @@ -0,0 +1,16 @@ +syntax = "proto2"; + +package pb; + +import "certificate.proto"; + +message Signature { + enum Version { + UNKNOWN_VERSION = 0; + _0_0_1 = 1; + } + required Version version = 1; + required KeyType signatureType = 2; + required bytes signature = 3; + required bytes certificateId = 4; +} diff --git a/proto/v1/source.proto b/proto/v1/source.proto new file mode 100644 index 0000000..4d2b1dc --- /dev/null +++ b/proto/v1/source.proto @@ -0,0 +1,18 @@ +syntax = "proto2"; + +package pb; + +message Source { + enum Version { + UNKNOWN_VERSION = 0; + _0_0_1 = 1; + } + required Version version = 1; + enum SourceTypes { + UNKNOWN_SOURCE_TYPE = 0; + lbry_sd_hash = 1; + } + required SourceTypes sourceType = 2; + required bytes source = 3; + required string contentType = 4; +} diff --git a/proto/v1/stream.proto b/proto/v1/stream.proto new file mode 100644 index 0000000..c6c666a --- /dev/null +++ b/proto/v1/stream.proto @@ -0,0 +1,17 @@ +syntax = "proto2"; + +package pb; + +import "metadata.proto"; +import "source.proto"; + + +message Stream { + enum Version { + UNKNOWN_VERSION = 0; + _0_0_1 = 1; + } + required Version version = 1; + required Metadata metadata = 2; + required Source source = 3; +} diff --git a/proto/channel.proto b/proto/v2/channel.proto similarity index 100% rename from proto/channel.proto rename to proto/v2/channel.proto diff --git a/proto/claim.proto b/proto/v2/claim.proto similarity index 100% rename from proto/claim.proto rename to proto/v2/claim.proto diff --git a/proto/fee.proto b/proto/v2/fee.proto similarity index 100% rename from proto/fee.proto rename to proto/v2/fee.proto diff --git a/proto/file.proto b/proto/v2/file.proto similarity index 100% rename from proto/file.proto rename to proto/v2/file.proto diff --git a/proto/stream.proto b/proto/v2/stream.proto similarity index 100% rename from proto/stream.proto rename to proto/v2/stream.proto