mirror of
https://github.com/anyproto/any-sync.git
synced 2025-06-08 05:57:03 +09:00
GO-3478 Merge main
This commit is contained in:
commit
344136ff3c
11 changed files with 290 additions and 130 deletions
|
@ -3,6 +3,12 @@ package commonspace
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
||||
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
||||
|
@ -12,10 +18,6 @@ import (
|
|||
"github.com/anyproto/any-sync/commonspace/spacestorage"
|
||||
"github.com/anyproto/any-sync/commonspace/spacesyncproto"
|
||||
"github.com/anyproto/any-sync/util/crypto"
|
||||
"github.com/stretchr/testify/require"
|
||||
"math/rand"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func addIncorrectSnapshot(settingsObject settings.SettingsObject, acc *accountdata.AccountKeys, partialIds map[string]struct{}, newId string) (err error) {
|
||||
|
|
|
@ -4,14 +4,16 @@ package objecttree
|
|||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/anyproto/any-sync/util/crypto"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
||||
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
||||
"github.com/anyproto/any-sync/commonspace/object/tree/treestorage"
|
||||
"github.com/anyproto/any-sync/util/crypto"
|
||||
"github.com/anyproto/any-sync/util/slice"
|
||||
)
|
||||
|
||||
|
@ -29,6 +31,7 @@ var (
|
|||
ErrNoChangeInTree = errors.New("no such change in tree")
|
||||
ErrMissingKey = errors.New("missing current read key")
|
||||
ErrDerived = errors.New("expect >= 2 changes in derived tree")
|
||||
ErrDeleted = errors.New("object tree is deleted")
|
||||
)
|
||||
|
||||
type AddResultSummary int
|
||||
|
@ -105,6 +108,7 @@ type objectTree struct {
|
|||
|
||||
keys map[string]crypto.SymKey
|
||||
currentReadKey crypto.SymKey
|
||||
isDeleted bool
|
||||
|
||||
// buffers
|
||||
difSnapshotBuf []*treechangeproto.RawTreeChangeWithId
|
||||
|
@ -122,6 +126,7 @@ func (ot *objectTree) rebuildFromStorage(theirHeads []string, newChanges []*Chan
|
|||
ot.treeBuilder.Reset()
|
||||
ot.tree, err = ot.treeBuilder.Build(theirHeads, newChanges)
|
||||
if err != nil {
|
||||
ot.tree = oldTree
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -179,6 +184,9 @@ func (ot *objectTree) Storage() treestorage.TreeStorage {
|
|||
}
|
||||
|
||||
func (ot *objectTree) GetChange(id string) (*Change, error) {
|
||||
if ot.isDeleted {
|
||||
return nil, ErrDeleted
|
||||
}
|
||||
if ch, ok := ot.tree.attached[id]; ok {
|
||||
return ch, nil
|
||||
}
|
||||
|
@ -186,6 +194,10 @@ func (ot *objectTree) GetChange(id string) (*Change, error) {
|
|||
}
|
||||
|
||||
func (ot *objectTree) AddContent(ctx context.Context, content SignableChangeContent) (res AddResult, err error) {
|
||||
if ot.isDeleted {
|
||||
err = ErrDeleted
|
||||
return
|
||||
}
|
||||
payload, err := ot.prepareBuilderContent(content)
|
||||
if err != nil {
|
||||
return
|
||||
|
@ -227,6 +239,10 @@ func (ot *objectTree) AddContent(ctx context.Context, content SignableChangeCont
|
|||
}
|
||||
|
||||
func (ot *objectTree) UnpackChange(raw *treechangeproto.RawTreeChangeWithId) (data []byte, err error) {
|
||||
if ot.isDeleted {
|
||||
err = ErrDeleted
|
||||
return
|
||||
}
|
||||
unmarshalled, err := ot.changeBuilder.Unmarshall(raw, true)
|
||||
if err != nil {
|
||||
return
|
||||
|
@ -236,6 +252,10 @@ func (ot *objectTree) UnpackChange(raw *treechangeproto.RawTreeChangeWithId) (da
|
|||
}
|
||||
|
||||
func (ot *objectTree) PrepareChange(content SignableChangeContent) (res *treechangeproto.RawTreeChangeWithId, err error) {
|
||||
if ot.isDeleted {
|
||||
err = ErrDeleted
|
||||
return
|
||||
}
|
||||
payload, err := ot.prepareBuilderContent(content)
|
||||
if err != nil {
|
||||
return
|
||||
|
@ -291,6 +311,10 @@ func (ot *objectTree) prepareBuilderContent(content SignableChangeContent) (cnt
|
|||
}
|
||||
|
||||
func (ot *objectTree) AddRawChanges(ctx context.Context, changesPayload RawChangesPayload) (addResult AddResult, err error) {
|
||||
if ot.isDeleted {
|
||||
err = ErrDeleted
|
||||
return
|
||||
}
|
||||
lastHeadId := ot.tree.lastIteratedHeadId
|
||||
addResult, err = ot.addRawChanges(ctx, changesPayload)
|
||||
if err != nil {
|
||||
|
@ -408,20 +432,27 @@ func (ot *objectTree) addRawChanges(ctx context.Context, changesPayload RawChang
|
|||
break
|
||||
}
|
||||
}
|
||||
|
||||
log := log.With(zap.String("treeId", ot.id))
|
||||
if shouldRebuildFromStorage {
|
||||
err = ot.rebuildFromStorage(headsToUse, ot.newChangesBuf)
|
||||
if err != nil {
|
||||
log.Error("failed to rebuild with new heads", zap.Strings("headsToUse", headsToUse), zap.Error(err))
|
||||
// rebuilding without new changes
|
||||
ot.rebuildFromStorage(nil, nil)
|
||||
rebuildErr := ot.rebuildFromStorage(nil, nil)
|
||||
if rebuildErr != nil {
|
||||
log.Error("failed to rebuild from storage", zap.Strings("heads", ot.Heads()), zap.Error(rebuildErr))
|
||||
}
|
||||
return
|
||||
}
|
||||
addResult, err = ot.createAddResult(prevHeadsCopy, Rebuild, nil, changesPayload.RawChanges)
|
||||
if err != nil {
|
||||
log.Error("failed to create add result", zap.Strings("headsToUse", headsToUse), zap.Error(err))
|
||||
// that means that some unattached changes were somehow corrupted in memory
|
||||
// this shouldn't happen but if that happens, then rebuilding from storage
|
||||
ot.rebuildFromStorage(nil, nil)
|
||||
return
|
||||
rebuildErr := ot.rebuildFromStorage(nil, nil)
|
||||
if rebuildErr != nil {
|
||||
log.Error("failed to rebuild after add result", zap.Strings("heads", ot.Heads()), zap.Error(rebuildErr))
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -442,7 +473,7 @@ func (ot *objectTree) addRawChanges(ctx context.Context, changesPayload RawChang
|
|||
err = ot.validateTree(treeChangesAdded)
|
||||
if err != nil {
|
||||
rollback(treeChangesAdded)
|
||||
err = ErrHasInvalidChanges
|
||||
err = fmt.Errorf("%w: %w", ErrHasInvalidChanges, err)
|
||||
return
|
||||
}
|
||||
addResult, err = ot.createAddResult(prevHeadsCopy, mode, treeChangesAdded, changesPayload.RawChanges)
|
||||
|
@ -526,6 +557,10 @@ func (ot *objectTree) IterateRoot(convert ChangeConvertFunc, iterate ChangeItera
|
|||
}
|
||||
|
||||
func (ot *objectTree) IterateFrom(id string, convert ChangeConvertFunc, iterate ChangeIterateFunc) (err error) {
|
||||
if ot.isDeleted {
|
||||
err = ErrDeleted
|
||||
return
|
||||
}
|
||||
if convert == nil {
|
||||
ot.tree.Iterate(id, iterate)
|
||||
return
|
||||
|
@ -575,12 +610,14 @@ func (ot *objectTree) IterateFrom(id string, convert ChangeConvertFunc, iterate
|
|||
}
|
||||
|
||||
func (ot *objectTree) HasChanges(chs ...string) bool {
|
||||
if ot.isDeleted {
|
||||
return false
|
||||
}
|
||||
for _, ch := range chs {
|
||||
if _, attachedExists := ot.tree.attached[ch]; !attachedExists {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -601,10 +638,17 @@ func (ot *objectTree) Close() error {
|
|||
}
|
||||
|
||||
func (ot *objectTree) Delete() error {
|
||||
if ot.isDeleted {
|
||||
return nil
|
||||
}
|
||||
ot.isDeleted = true
|
||||
return ot.treeStorage.Delete()
|
||||
}
|
||||
|
||||
func (ot *objectTree) SnapshotPath() []string {
|
||||
if ot.isDeleted {
|
||||
return nil
|
||||
}
|
||||
// TODO: Add error as return parameter
|
||||
if ot.snapshotPathIsActual() {
|
||||
return ot.snapshotPath
|
||||
|
@ -627,6 +671,9 @@ func (ot *objectTree) SnapshotPath() []string {
|
|||
}
|
||||
|
||||
func (ot *objectTree) ChangesAfterCommonSnapshot(theirPath, theirHeads []string) ([]*treechangeproto.RawTreeChangeWithId, error) {
|
||||
if ot.isDeleted {
|
||||
return nil, ErrDeleted
|
||||
}
|
||||
var (
|
||||
needFullDocument = len(theirPath) == 0
|
||||
ourPath = ot.SnapshotPath()
|
||||
|
|
|
@ -2,6 +2,7 @@ package objecttree
|
|||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
@ -121,6 +122,51 @@ func TestObjectTree(t *testing.T) {
|
|||
aclList, keys := prepareAclList(t)
|
||||
ctx := context.Background()
|
||||
|
||||
t.Run("delete object tree", func(t *testing.T) {
|
||||
exec := list.NewAclExecutor("spaceId")
|
||||
type cmdErr struct {
|
||||
cmd string
|
||||
err error
|
||||
}
|
||||
cmds := []cmdErr{
|
||||
{"a.init::a", nil},
|
||||
}
|
||||
for _, cmd := range cmds {
|
||||
err := exec.Execute(cmd.cmd)
|
||||
require.Equal(t, cmd.err, err, cmd)
|
||||
}
|
||||
aAccount := exec.ActualAccounts()["a"]
|
||||
root, err := CreateObjectTreeRoot(ObjectTreeCreatePayload{
|
||||
PrivKey: aAccount.Keys.SignKey,
|
||||
ChangeType: "changeType",
|
||||
ChangePayload: nil,
|
||||
SpaceId: "spaceId",
|
||||
IsEncrypted: true,
|
||||
}, aAccount.Acl)
|
||||
require.NoError(t, err)
|
||||
aStore, _ := treestorage.NewInMemoryTreeStorage(root, []string{root.Id}, []*treechangeproto.RawTreeChangeWithId{root})
|
||||
aTree, err := BuildKeyFilterableObjectTree(aStore, aAccount.Acl)
|
||||
require.NoError(t, err)
|
||||
err = aTree.Delete()
|
||||
require.NoError(t, err)
|
||||
_, err = aTree.ChangesAfterCommonSnapshot(nil, nil)
|
||||
require.Equal(t, ErrDeleted, err)
|
||||
err = aTree.IterateFrom("", nil, func(change *Change) bool {
|
||||
return true
|
||||
})
|
||||
require.Equal(t, ErrDeleted, err)
|
||||
_, err = aTree.AddContent(ctx, SignableChangeContent{})
|
||||
require.Equal(t, ErrDeleted, err)
|
||||
_, err = aTree.AddRawChanges(ctx, RawChangesPayload{})
|
||||
require.Equal(t, ErrDeleted, err)
|
||||
_, err = aTree.PrepareChange(SignableChangeContent{})
|
||||
require.Equal(t, ErrDeleted, err)
|
||||
_, err = aTree.UnpackChange(nil)
|
||||
require.Equal(t, ErrDeleted, err)
|
||||
_, err = aTree.GetChange("")
|
||||
require.Equal(t, ErrDeleted, err)
|
||||
})
|
||||
|
||||
t.Run("user delete logic: validation, key change, decryption", func(t *testing.T) {
|
||||
exec := list.NewAclExecutor("spaceId")
|
||||
type cmdErr struct {
|
||||
|
@ -1183,6 +1229,6 @@ func TestObjectTree(t *testing.T) {
|
|||
Heads: []string{"3"},
|
||||
Changes: rawChanges,
|
||||
}, ctx.aclList)
|
||||
require.Equal(t, ErrHasInvalidChanges, err)
|
||||
require.True(t, errors.Is(err, ErrHasInvalidChanges))
|
||||
})
|
||||
}
|
||||
|
|
|
@ -170,7 +170,7 @@ func ValidateRawTreeBuildFunc(payload treestorage.TreeStorageCreatePayload, buil
|
|||
return
|
||||
}
|
||||
if !slice.UnsortedEquals(res.Heads, payload.Heads) {
|
||||
return payload, ErrHasInvalidChanges
|
||||
return payload, fmt.Errorf("heads mismatch: %v != %v, %w", res.Heads, payload.Heads, ErrHasInvalidChanges)
|
||||
}
|
||||
// if tree has only one change we still should check if the snapshot id is same as root
|
||||
if IsEmptyDerivedTree(tree) {
|
||||
|
|
|
@ -3,9 +3,10 @@ package treestorage
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"sync"
|
||||
|
||||
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
||||
"github.com/anyproto/any-sync/util/slice"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type InMemoryTreeStorage struct {
|
||||
|
@ -111,6 +112,9 @@ func (t *InMemoryTreeStorage) GetRawChange(ctx context.Context, changeId string)
|
|||
}
|
||||
|
||||
func (t *InMemoryTreeStorage) Delete() error {
|
||||
t.root = nil
|
||||
t.Changes = nil
|
||||
t.heads = nil
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -186,7 +186,7 @@ func (i *InMemorySpaceStorage) AllTrees() map[string]treestorage.TreeStorage {
|
|||
defer i.Unlock()
|
||||
cp := map[string]treestorage.TreeStorage{}
|
||||
for id, store := range i.trees {
|
||||
cp[id] = store
|
||||
cp[id] = store.(*treestorage.InMemoryTreeStorage).Copy()
|
||||
}
|
||||
return cp
|
||||
}
|
||||
|
|
14
go.mod
14
go.mod
|
@ -9,7 +9,7 @@ require (
|
|||
github.com/anyproto/go-slip21 v1.0.0
|
||||
github.com/cespare/xxhash v1.1.0
|
||||
github.com/cheggaaa/mb/v3 v3.0.2
|
||||
github.com/ethereum/go-ethereum v1.13.12
|
||||
github.com/ethereum/go-ethereum v1.13.15
|
||||
github.com/gobwas/glob v0.2.3
|
||||
github.com/goccy/go-graphviz v0.1.2
|
||||
github.com/gogo/protobuf v1.3.2
|
||||
|
@ -25,17 +25,17 @@ require (
|
|||
github.com/mr-tron/base58 v1.2.0
|
||||
github.com/multiformats/go-multibase v0.2.0
|
||||
github.com/multiformats/go-multihash v0.2.3
|
||||
github.com/prometheus/client_golang v1.19.0
|
||||
github.com/quic-go/quic-go v0.43.0
|
||||
github.com/prometheus/client_golang v1.19.1
|
||||
github.com/quic-go/quic-go v0.43.1
|
||||
github.com/stretchr/testify v1.9.0
|
||||
github.com/tyler-smith/go-bip39 v1.1.0
|
||||
github.com/zeebo/blake3 v0.2.3
|
||||
go.uber.org/atomic v1.11.0
|
||||
go.uber.org/mock v0.4.0
|
||||
go.uber.org/zap v1.27.0
|
||||
golang.org/x/crypto v0.22.0
|
||||
golang.org/x/crypto v0.23.0
|
||||
golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8
|
||||
golang.org/x/net v0.24.0
|
||||
golang.org/x/net v0.25.0
|
||||
golang.org/x/time v0.5.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
storj.io/drpc v0.0.34
|
||||
|
@ -105,9 +105,9 @@ require (
|
|||
golang.org/x/image v0.14.0 // indirect
|
||||
golang.org/x/mod v0.16.0 // indirect
|
||||
golang.org/x/sync v0.6.0 // indirect
|
||||
golang.org/x/sys v0.19.0 // indirect
|
||||
golang.org/x/sys v0.20.0 // indirect
|
||||
golang.org/x/tools v0.19.0 // indirect
|
||||
google.golang.org/protobuf v1.32.0 // indirect
|
||||
google.golang.org/protobuf v1.33.0 // indirect
|
||||
lukechampine.com/blake3 v1.2.1 // indirect
|
||||
rsc.io/tmplfunc v0.0.3 // indirect
|
||||
)
|
||||
|
|
32
go.sum
32
go.sum
|
@ -86,8 +86,8 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etly
|
|||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
|
||||
github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY=
|
||||
github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0=
|
||||
github.com/ethereum/go-ethereum v1.13.12 h1:iDr9UM2JWkngBHGovRJEQn4Kor7mT4gt9rUZqB5M29Y=
|
||||
github.com/ethereum/go-ethereum v1.13.12/go.mod h1:hKL2Qcj1OvStXNSEDbucexqnEt1Wh4Cz329XsjAalZY=
|
||||
github.com/ethereum/go-ethereum v1.13.15 h1:U7sSGYGo4SPjP6iNIifNoyIAiNjrmQkz6EwQG+/EZWo=
|
||||
github.com/ethereum/go-ethereum v1.13.15/go.mod h1:TN8ZiHrdJwSe8Cb6x+p0hs5CxhJZPbqB7hHkaUXcmIU=
|
||||
github.com/flynn/noise v1.1.0 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg=
|
||||
github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
|
||||
github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8=
|
||||
|
@ -294,8 +294,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
|
|||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/polydawn/refmt v0.89.0 h1:ADJTApkvkeBZsN0tBTx8QjpD9JkmxbKp0cxfr9qszm4=
|
||||
github.com/polydawn/refmt v0.89.0/go.mod h1:/zvteZs/GwLtCgZ4BL6CBsk9IKIlexP43ObX9AxTqTw=
|
||||
github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU=
|
||||
github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k=
|
||||
github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
|
||||
github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
|
||||
github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos=
|
||||
github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8=
|
||||
github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE=
|
||||
|
@ -304,8 +304,8 @@ github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k
|
|||
github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
|
||||
github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo=
|
||||
github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A=
|
||||
github.com/quic-go/quic-go v0.43.0 h1:sjtsTKWX0dsHpuMJvLxGqoQdtgJnbAPWY+W+5vjYW/g=
|
||||
github.com/quic-go/quic-go v0.43.0/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M=
|
||||
github.com/quic-go/quic-go v0.43.1 h1:fLiMNfQVe9q2JvSsiXo4fXOEguXHGGl9+6gLp4RPeZQ=
|
||||
github.com/quic-go/quic-go v0.43.1/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M=
|
||||
github.com/quic-go/webtransport-go v0.6.0 h1:CvNsKqc4W2HljHJnoT+rMmbRJybShZ0YPFDD3NxaZLY=
|
||||
github.com/quic-go/webtransport-go v0.6.0/go.mod h1:9KjU4AEBqEQidGHNDkZrb8CAa1abRaosM2yGOyiikEc=
|
||||
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
||||
|
@ -384,8 +384,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
|
|||
golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
|
||||
golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
|
||||
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
|
||||
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
|
||||
golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw=
|
||||
golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ=
|
||||
golang.org/x/image v0.14.0 h1:tNgSxAFe3jC4uYqvZdTr84SZoM1KfwdC9SKIFrLjFn4=
|
||||
|
@ -403,8 +403,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
|
|||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
|
||||
golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
|
||||
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
|
||||
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
|
@ -423,13 +423,13 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
|
||||
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
|
||||
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
|
||||
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
|
||||
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
|
@ -445,8 +445,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
|
|||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
|
||||
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
|
||||
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
|
|
|
@ -26,4 +26,5 @@ var (
|
|||
ErrEmailFailedToSend = errGroup.Register(errors.New("failed to send email"), uint64(ErrorCodes_EmailFailedToSend))
|
||||
ErrEmailExpired = errGroup.Register(errors.New("email verification request expired. try getting new code"), uint64(ErrorCodes_EmailExpired))
|
||||
ErrEmailWrongCode = errGroup.Register(errors.New("wrong verification code"), uint64(ErrorCodes_EmailWrongCode))
|
||||
ErrInvalidReceipt = errGroup.Register(errors.New("invalid AppStore receipt"), uint64(ErrorCodes_InvalidReceipt))
|
||||
)
|
||||
|
|
|
@ -170,6 +170,7 @@ const (
|
|||
ErrorCodes_EmailFailedToSend ErrorCodes = 15
|
||||
ErrorCodes_EmailExpired ErrorCodes = 16
|
||||
ErrorCodes_EmailWrongCode ErrorCodes = 17
|
||||
ErrorCodes_InvalidReceipt ErrorCodes = 18
|
||||
ErrorCodes_ErrorOffset ErrorCodes = 600
|
||||
)
|
||||
|
||||
|
@ -192,6 +193,7 @@ var ErrorCodes_name = map[int32]string{
|
|||
15: "EmailFailedToSend",
|
||||
16: "EmailExpired",
|
||||
17: "EmailWrongCode",
|
||||
18: "InvalidReceipt",
|
||||
600: "ErrorOffset",
|
||||
}
|
||||
|
||||
|
@ -214,6 +216,7 @@ var ErrorCodes_value = map[string]int32{
|
|||
"EmailFailedToSend": 15,
|
||||
"EmailExpired": 16,
|
||||
"EmailWrongCode": 17,
|
||||
"InvalidReceipt": 18,
|
||||
"ErrorOffset": 600,
|
||||
}
|
||||
|
||||
|
@ -490,6 +493,8 @@ type BuySubscriptionRequest struct {
|
|||
// if empty - then no name requested
|
||||
// if non-empty - PP node will register that name on behalf of the user
|
||||
RequestedAnyName string `protobuf:"bytes,5,opt,name=requestedAnyName,proto3" json:"requestedAnyName,omitempty"`
|
||||
// for some payment methods we need to know the user's email
|
||||
UserEmail string `protobuf:"bytes,6,opt,name=userEmail,proto3" json:"userEmail,omitempty"`
|
||||
}
|
||||
|
||||
func (m *BuySubscriptionRequest) Reset() { *m = BuySubscriptionRequest{} }
|
||||
|
@ -560,6 +565,13 @@ func (m *BuySubscriptionRequest) GetRequestedAnyName() string {
|
|||
return ""
|
||||
}
|
||||
|
||||
func (m *BuySubscriptionRequest) GetUserEmail() string {
|
||||
if m != nil {
|
||||
return m.UserEmail
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type BuySubscriptionRequestSigned struct {
|
||||
// BuySubscriptionRequest
|
||||
Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
|
||||
|
@ -1574,98 +1586,99 @@ func init() {
|
|||
}
|
||||
|
||||
var fileDescriptor_4feb29dcc5ba50f6 = []byte{
|
||||
// 1446 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcb, 0x73, 0x1b, 0x45,
|
||||
0x13, 0xd7, 0xea, 0x61, 0x5b, 0xed, 0xd7, 0x78, 0x2c, 0x3b, 0x1b, 0xc5, 0xd6, 0xe7, 0xec, 0xf7,
|
||||
0x72, 0x99, 0x62, 0x53, 0x84, 0x1c, 0x28, 0x8a, 0xa2, 0x90, 0x6d, 0xd9, 0xb8, 0x2a, 0x18, 0x97,
|
||||
0xa4, 0x24, 0x40, 0x28, 0x60, 0xad, 0x6d, 0xdb, 0x4b, 0xd6, 0x33, 0xcb, 0xec, 0x28, 0xce, 0x72,
|
||||
0xe3, 0xc8, 0x8d, 0x2a, 0x0e, 0xfc, 0x41, 0x5c, 0x38, 0xe6, 0x98, 0x23, 0x24, 0x37, 0x4e, 0x1c,
|
||||
0x39, 0x52, 0x33, 0xbb, 0xb2, 0x56, 0xd6, 0x4a, 0x36, 0x71, 0x71, 0xb1, 0x66, 0x7e, 0x33, 0xdd,
|
||||
0xd3, 0xfd, 0xeb, 0x9e, 0x9e, 0x5e, 0xc3, 0xfb, 0x81, 0x13, 0x9d, 0x22, 0x93, 0x21, 0x8a, 0xa7,
|
||||
0x5e, 0x07, 0xef, 0x0c, 0x4e, 0x03, 0xc1, 0x25, 0xbf, 0xa3, 0xff, 0x86, 0x17, 0x96, 0x6c, 0x8d,
|
||||
0x56, 0xb7, 0x5f, 0x57, 0xfe, 0x4b, 0xe9, 0xa1, 0x08, 0x63, 0x2d, 0xd6, 0x3b, 0xb0, 0xbc, 0x8b,
|
||||
0xb2, 0xd5, 0x3d, 0x0c, 0x3b, 0xc2, 0x0b, 0xa4, 0xc7, 0x59, 0x13, 0xbf, 0xe9, 0x62, 0x28, 0x69,
|
||||
0x0d, 0x80, 0x9f, 0x31, 0x14, 0x75, 0x16, 0xed, 0x6d, 0x9b, 0xc6, 0x9a, 0xb1, 0x5e, 0x6e, 0xa6,
|
||||
0x10, 0xeb, 0x21, 0xac, 0x64, 0x4b, 0xb6, 0xbc, 0x63, 0x86, 0x2e, 0x35, 0x61, 0x32, 0x70, 0x22,
|
||||
0x9f, 0x3b, 0xae, 0x16, 0x9e, 0x69, 0xf6, 0xa6, 0x74, 0x05, 0xca, 0xa1, 0x77, 0xcc, 0x1c, 0xd9,
|
||||
0x15, 0x68, 0xe6, 0xf5, 0x5a, 0x1f, 0xb0, 0xfe, 0xc8, 0xc3, 0x8d, 0x21, 0xc5, 0x61, 0xc0, 0x59,
|
||||
0x88, 0x94, 0x42, 0x51, 0x19, 0xaf, 0x15, 0xce, 0x36, 0xf5, 0x98, 0xbe, 0x01, 0x13, 0xa1, 0x74,
|
||||
0x64, 0x37, 0xd4, 0xaa, 0xe6, 0xee, 0x2e, 0xda, 0x69, 0xd1, 0x96, 0x5e, 0x6a, 0x26, 0x5b, 0xe8,
|
||||
0x1a, 0x4c, 0xbb, 0x8e, 0xc4, 0x96, 0x74, 0x84, 0x44, 0xd7, 0x2c, 0xac, 0x19, 0xeb, 0xc5, 0x66,
|
||||
0x1a, 0xa2, 0x55, 0x98, 0x52, 0xd3, 0x06, 0x73, 0x43, 0xb3, 0xa8, 0x97, 0xcf, 0xe7, 0x4a, 0xda,
|
||||
0x0b, 0xeb, 0x5d, 0xc9, 0x9b, 0xc8, 0xf0, 0xcc, 0x2c, 0xad, 0x19, 0xeb, 0x53, 0xcd, 0x34, 0x44,
|
||||
0xef, 0xc1, 0x6c, 0x42, 0xf6, 0x47, 0x28, 0x4f, 0xb8, 0x6b, 0x4e, 0x68, 0x9b, 0xe6, 0xec, 0x83,
|
||||
0x34, 0xda, 0x1c, 0xdc, 0x44, 0x37, 0x80, 0x88, 0x98, 0x3b, 0x74, 0xeb, 0x2c, 0xda, 0x77, 0x4e,
|
||||
0xd1, 0x9c, 0xd4, 0x84, 0x0f, 0xe1, 0x8a, 0xbc, 0x6e, 0x88, 0xa2, 0x71, 0xea, 0x78, 0xbe, 0x39,
|
||||
0xa5, 0x37, 0xf5, 0x01, 0x7a, 0x0f, 0x96, 0xc2, 0xd8, 0xfb, 0x43, 0x6c, 0xf3, 0x7d, 0x3c, 0x0b,
|
||||
0x7d, 0x94, 0x12, 0x85, 0x59, 0xd6, 0xb6, 0x66, 0x2f, 0x5a, 0xbf, 0x1b, 0xb0, 0xbc, 0xd9, 0x8d,
|
||||
0x2e, 0xcb, 0x02, 0x77, 0x28, 0x0b, 0x5c, 0xba, 0x0e, 0xf3, 0x7a, 0xd6, 0x90, 0x27, 0x75, 0xd7,
|
||||
0x15, 0x18, 0xc6, 0x61, 0x28, 0x37, 0x2f, 0xc2, 0xf4, 0x3f, 0x30, 0x7b, 0xee, 0x4c, 0x5b, 0x05,
|
||||
0xb1, 0xa0, 0x83, 0x38, 0x08, 0x0e, 0x13, 0x58, 0x7c, 0x5d, 0x02, 0x4b, 0xd9, 0x04, 0xaa, 0xbc,
|
||||
0xcd, 0xf6, 0xf5, 0x9a, 0x79, 0xfb, 0x08, 0x6e, 0x0c, 0xe9, 0x4d, 0xd2, 0xb6, 0x06, 0x90, 0xd8,
|
||||
0xfb, 0x40, 0xf8, 0x3d, 0x12, 0xfb, 0x88, 0x52, 0x7c, 0xe8, 0xf9, 0xbe, 0xc7, 0x8e, 0xf7, 0xb6,
|
||||
0x13, 0xfa, 0xfa, 0x80, 0xf5, 0xa3, 0x01, 0xb7, 0x76, 0x3c, 0xe6, 0xf8, 0xde, 0xb7, 0xf8, 0xcf,
|
||||
0x86, 0x28, 0x8b, 0xc6, 0xc2, 0x08, 0x1a, 0x6b, 0xb0, 0x92, 0x6d, 0x54, 0xec, 0xb3, 0xf5, 0x18,
|
||||
0x6e, 0x8f, 0x31, 0xfa, 0x9a, 0x5c, 0x6f, 0xc2, 0xda, 0x85, 0x12, 0x71, 0xc0, 0x85, 0x74, 0xfc,
|
||||
0xfb, 0x1e, 0x7b, 0x72, 0x45, 0x5a, 0xac, 0xaf, 0xe0, 0x7f, 0x97, 0xe9, 0xb8, 0xa6, 0x95, 0x75,
|
||||
0xb8, 0x3d, 0xe6, 0x84, 0x24, 0x37, 0x56, 0xa0, 0x1c, 0x68, 0xb4, 0x9f, 0x1a, 0x7d, 0xc0, 0xfa,
|
||||
0xde, 0x80, 0x5b, 0xbb, 0x28, 0x1f, 0xa2, 0xf0, 0x8e, 0xbc, 0x8e, 0xa3, 0x74, 0xe8, 0x8b, 0x7e,
|
||||
0xd5, 0xd8, 0x57, 0xa0, 0x84, 0xba, 0x52, 0xc4, 0x11, 0x8f, 0x27, 0xa3, 0xab, 0x44, 0x61, 0x5c,
|
||||
0x95, 0xa8, 0xe9, 0x82, 0x9f, 0x61, 0x4a, 0x3f, 0xe2, 0x63, 0x4c, 0xbd, 0x26, 0x97, 0x02, 0xa8,
|
||||
0xd6, 0x1c, 0xfd, 0x2d, 0xf7, 0xaf, 0x9e, 0xfa, 0x14, 0x8a, 0x1d, 0xee, 0xf6, 0xd2, 0x5d, 0x8f,
|
||||
0xad, 0x3b, 0xb0, 0x38, 0x70, 0x66, 0x12, 0x31, 0x13, 0x26, 0xc3, 0x6e, 0xa7, 0xa3, 0x94, 0x19,
|
||||
0x9a, 0xaf, 0xde, 0xd4, 0x6a, 0x82, 0x39, 0x6c, 0xe4, 0x35, 0x1d, 0x3f, 0x02, 0xba, 0x17, 0xaa,
|
||||
0x1b, 0xf7, 0xd0, 0xf1, 0x3d, 0xb7, 0xe7, 0xf8, 0x50, 0x31, 0x35, 0xb2, 0x8a, 0x69, 0xd6, 0x7d,
|
||||
0xce, 0x8f, 0xb8, 0xcf, 0xbf, 0x19, 0xb0, 0x38, 0x70, 0x50, 0xe2, 0xed, 0x9b, 0x09, 0x31, 0x86,
|
||||
0xae, 0xc3, 0x37, 0xed, 0x8c, 0x3d, 0xf6, 0x16, 0x77, 0x31, 0xe6, 0x4c, 0x3f, 0xb0, 0x78, 0x9e,
|
||||
0xef, 0xc9, 0x69, 0x69, 0xc8, 0x8a, 0xa0, 0xa8, 0xf6, 0xd3, 0x32, 0x94, 0xb4, 0x16, 0x92, 0xa3,
|
||||
0x33, 0x30, 0xb5, 0xcf, 0xb7, 0xb9, 0xac, 0xb3, 0x88, 0x18, 0x6a, 0xd6, 0xe6, 0xbc, 0x75, 0xc2,
|
||||
0x85, 0x24, 0x79, 0x3a, 0x0d, 0x93, 0x6d, 0xce, 0xef, 0x73, 0x76, 0x4c, 0x0a, 0x74, 0x11, 0xe6,
|
||||
0x3f, 0x74, 0xc2, 0x3d, 0xf6, 0x54, 0x09, 0x6e, 0x9d, 0x38, 0x22, 0x24, 0x45, 0xba, 0x04, 0x0b,
|
||||
0xca, 0xdb, 0x1d, 0xd4, 0x84, 0xed, 0x73, 0x65, 0x1f, 0x29, 0xd1, 0x05, 0x98, 0xdd, 0x72, 0xd8,
|
||||
0x3e, 0x97, 0x4d, 0x54, 0x8d, 0x0f, 0x92, 0x09, 0xeb, 0x13, 0x58, 0x89, 0xe3, 0x53, 0x0f, 0x82,
|
||||
0x96, 0xe4, 0x02, 0x9b, 0xd8, 0x41, 0x2f, 0x90, 0x57, 0x4d, 0x27, 0x13, 0x26, 0x45, 0x2c, 0x91,
|
||||
0x38, 0xd6, 0x9b, 0x5a, 0x9f, 0x83, 0x35, 0x4e, 0xf3, 0x35, 0x73, 0xe0, 0x5f, 0xb0, 0x3a, 0x42,
|
||||
0x7b, 0x1c, 0x80, 0x8d, 0x9f, 0x0d, 0x20, 0xe9, 0x3a, 0xa3, 0xa3, 0x3f, 0x0f, 0xd3, 0xea, 0xf7,
|
||||
0x01, 0x7b, 0xc2, 0xf8, 0x19, 0x23, 0x39, 0x4a, 0x60, 0x46, 0x01, 0x8d, 0x67, 0x81, 0xcf, 0x05,
|
||||
0x0a, 0x62, 0x50, 0x13, 0x2a, 0x0a, 0xd9, 0xec, 0x7a, 0xbe, 0x8b, 0xe2, 0xad, 0x47, 0x88, 0x4f,
|
||||
0xda, 0x8d, 0x56, 0x9b, 0xe4, 0x69, 0x15, 0x96, 0xd5, 0xca, 0x16, 0xdf, 0x12, 0xe8, 0x48, 0x9e,
|
||||
0x5a, 0x2b, 0xd0, 0x0a, 0x90, 0xb4, 0xd4, 0xa7, 0xe8, 0x08, 0x52, 0xa4, 0xcb, 0x40, 0x07, 0x25,
|
||||
0x34, 0x5e, 0x52, 0x31, 0x4b, 0xed, 0x3e, 0xf0, 0xbb, 0x21, 0x99, 0xe8, 0x81, 0x75, 0x16, 0xc9,
|
||||
0x28, 0xc0, 0x36, 0x3a, 0xa7, 0x64, 0x72, 0x23, 0x04, 0x3a, 0xdc, 0xba, 0xa9, 0x38, 0xc6, 0xa3,
|
||||
0xbe, 0x23, 0xe7, 0xd0, 0x01, 0x32, 0xd7, 0x63, 0xc7, 0xc4, 0x50, 0xbe, 0xc5, 0x50, 0xbd, 0x23,
|
||||
0xbd, 0xa7, 0x48, 0xf2, 0xf4, 0xbf, 0x70, 0x7b, 0x60, 0x93, 0x0a, 0x85, 0x27, 0x30, 0x4c, 0x5e,
|
||||
0x25, 0x5d, 0xa0, 0x48, 0x61, 0xe3, 0x27, 0x03, 0x66, 0x07, 0x7a, 0x0b, 0x3a, 0x07, 0x10, 0x8f,
|
||||
0xb6, 0x1c, 0xe1, 0xc6, 0xb4, 0x25, 0x73, 0x11, 0x05, 0x92, 0x13, 0x83, 0x52, 0x98, 0x8b, 0x91,
|
||||
0x7a, 0x10, 0xf8, 0x78, 0xe0, 0x44, 0x24, 0xaf, 0x3c, 0x8a, 0xb1, 0x5d, 0xce, 0x8f, 0x63, 0x50,
|
||||
0x33, 0x95, 0xda, 0xb8, 0xc7, 0x9c, 0x20, 0x88, 0x13, 0x36, 0xbd, 0x35, 0x86, 0x4b, 0xfd, 0x73,
|
||||
0xf7, 0x39, 0x43, 0x32, 0xb1, 0xf1, 0x5d, 0x01, 0xa0, 0x21, 0x04, 0x17, 0xea, 0xba, 0x84, 0x6a,
|
||||
0xf9, 0x01, 0xc3, 0x67, 0x01, 0x76, 0x24, 0x2a, 0xb3, 0x16, 0x61, 0xbe, 0x5f, 0xbf, 0x1a, 0xa7,
|
||||
0x81, 0x54, 0x77, 0xa7, 0x02, 0x24, 0xb9, 0x1d, 0xad, 0x5e, 0xf6, 0x90, 0x3c, 0x9d, 0x85, 0xb2,
|
||||
0x62, 0xfb, 0x91, 0x88, 0x6f, 0x51, 0x92, 0x07, 0xfb, 0x5c, 0xee, 0xf0, 0x2e, 0x73, 0x49, 0xb1,
|
||||
0x87, 0xec, 0x31, 0x27, 0x66, 0xaf, 0xa4, 0xa2, 0x39, 0xc0, 0x4a, 0x2c, 0x3b, 0xa1, 0xac, 0xd8,
|
||||
0x74, 0x7a, 0x45, 0x83, 0x4c, 0xaa, 0xeb, 0xd9, 0x8b, 0xcb, 0x94, 0x72, 0x4c, 0x05, 0xb0, 0xee,
|
||||
0x0b, 0x74, 0xdc, 0x28, 0x89, 0x44, 0x59, 0xc7, 0xa6, 0x7b, 0x18, 0x9e, 0x9f, 0x07, 0x8a, 0x40,
|
||||
0x85, 0x68, 0xa5, 0x2a, 0x48, 0x48, 0xa6, 0x95, 0xe9, 0xba, 0x6c, 0x6a, 0x70, 0x87, 0x8b, 0x53,
|
||||
0x47, 0x92, 0x19, 0x95, 0xa1, 0x1a, 0x4d, 0x74, 0xc6, 0xaf, 0x0b, 0xba, 0x64, 0xf6, 0x7c, 0x7f,
|
||||
0xb2, 0xd2, 0x42, 0x26, 0xc9, 0x9c, 0x32, 0x41, 0xa3, 0x3b, 0x8e, 0xe7, 0xa3, 0xdb, 0xe6, 0x2d,
|
||||
0x64, 0x2e, 0x99, 0x57, 0x26, 0x68, 0xb8, 0xf1, 0x2c, 0xf0, 0x04, 0xba, 0x84, 0x28, 0x13, 0xfa,
|
||||
0xc7, 0x29, 0x86, 0xc9, 0x02, 0x25, 0x30, 0xad, 0x09, 0xff, 0xf8, 0xe8, 0x28, 0x44, 0x49, 0x5e,
|
||||
0x14, 0xef, 0xfe, 0x59, 0x82, 0x4a, 0x9d, 0x45, 0x09, 0x15, 0x07, 0x82, 0xab, 0x3a, 0xef, 0xb1,
|
||||
0x63, 0xda, 0x84, 0xa5, 0x0b, 0x6f, 0x7b, 0x92, 0xae, 0xab, 0xf6, 0xb8, 0xaf, 0xa2, 0xaa, 0x69,
|
||||
0x8f, 0xf8, 0xb6, 0xb1, 0x72, 0xf4, 0x5d, 0x98, 0x4e, 0x55, 0x57, 0xba, 0x68, 0x0f, 0x17, 0xfe,
|
||||
0x6a, 0x25, 0xab, 0x00, 0x5b, 0x39, 0x7a, 0x1f, 0xe6, 0x2f, 0x74, 0x9f, 0x74, 0xd5, 0x1e, 0xd7,
|
||||
0xe7, 0x56, 0x4d, 0x7b, 0x44, 0xbb, 0x6a, 0xe5, 0xe8, 0x63, 0xa8, 0x64, 0x35, 0x6f, 0xd4, 0xb2,
|
||||
0x2f, 0xed, 0xe9, 0xaa, 0xab, 0xf6, 0xd8, 0xbe, 0x30, 0x47, 0xbf, 0x86, 0x9b, 0x23, 0xdb, 0x22,
|
||||
0xfa, 0x7f, 0xfb, 0x6a, 0x4d, 0x59, 0xd5, 0xb2, 0x2f, 0xed, 0xad, 0x62, 0x47, 0xb2, 0x7a, 0x12,
|
||||
0xaa, 0xa5, 0xc7, 0xb7, 0x2a, 0xd5, 0x55, 0x7b, 0x6c, 0xbb, 0x93, 0xa3, 0x1f, 0xc0, 0x74, 0xea,
|
||||
0xb9, 0xa7, 0x37, 0xed, 0x51, 0x8f, 0x7f, 0xb5, 0x62, 0x67, 0x34, 0x12, 0x71, 0xc4, 0x77, 0x51,
|
||||
0xd6, 0x7d, 0x5f, 0xdd, 0xbe, 0x90, 0x2e, 0xab, 0x13, 0xf5, 0x70, 0x50, 0x7c, 0x21, 0x85, 0x9f,
|
||||
0xcb, 0x7e, 0x01, 0x4b, 0x99, 0x8f, 0x02, 0xfd, 0xb7, 0x7d, 0xf9, 0x53, 0x54, 0xad, 0xd9, 0x63,
|
||||
0x5f, 0x14, 0x2b, 0xb7, 0xf9, 0xde, 0x2f, 0x2f, 0x6b, 0xc6, 0xf3, 0x97, 0x35, 0xe3, 0xd7, 0x97,
|
||||
0x35, 0xe3, 0x87, 0x57, 0xb5, 0xdc, 0xf3, 0x57, 0xb5, 0xdc, 0x8b, 0x57, 0xb5, 0xdc, 0x67, 0xd6,
|
||||
0xe5, 0xff, 0x79, 0x38, 0x9c, 0xd0, 0x3f, 0x6f, 0xff, 0x15, 0x00, 0x00, 0xff, 0xff, 0x72, 0x4d,
|
||||
0xf4, 0xd7, 0xe6, 0x10, 0x00, 0x00,
|
||||
// 1457 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x5b, 0x6f, 0x1b, 0xc5,
|
||||
0x17, 0xf7, 0xfa, 0x96, 0xf8, 0xe4, 0x36, 0x99, 0x38, 0xe9, 0xd6, 0x4d, 0xfc, 0x4f, 0xf7, 0x7f,
|
||||
0x8b, 0x82, 0xd8, 0x8a, 0xd2, 0x07, 0x84, 0x10, 0xc2, 0x49, 0x9c, 0x10, 0xa9, 0x84, 0xc8, 0x76,
|
||||
0x5b, 0xa0, 0x08, 0xd8, 0x78, 0x4f, 0x92, 0xa5, 0x9b, 0x99, 0x65, 0x76, 0xdc, 0x74, 0xf9, 0x04,
|
||||
0xf0, 0x86, 0x84, 0x10, 0x1f, 0x88, 0x17, 0x1e, 0xfb, 0xd8, 0x47, 0x68, 0xbf, 0x00, 0x8f, 0x3c,
|
||||
0xa2, 0x99, 0x5d, 0xc7, 0xeb, 0x78, 0xe3, 0x84, 0x46, 0xbc, 0x34, 0x3b, 0xbf, 0x99, 0x73, 0xe6,
|
||||
0x9c, 0xdf, 0xb9, 0xcc, 0x71, 0xe1, 0xfd, 0xc0, 0x89, 0x4e, 0x90, 0xc9, 0x10, 0xc5, 0x53, 0xaf,
|
||||
0x8b, 0x77, 0x86, 0x97, 0x81, 0xe0, 0x92, 0xdf, 0xd1, 0xff, 0x86, 0xe7, 0xb6, 0x6c, 0x8d, 0xd6,
|
||||
0xb6, 0x5e, 0x57, 0xfe, 0x4b, 0xe9, 0xa1, 0x08, 0x63, 0x2d, 0xd6, 0x3b, 0xb0, 0xb4, 0x83, 0xb2,
|
||||
0xdd, 0x3b, 0x08, 0xbb, 0xc2, 0x0b, 0xa4, 0xc7, 0x59, 0x0b, 0xbf, 0xe9, 0x61, 0x28, 0x69, 0x1d,
|
||||
0x80, 0x9f, 0x32, 0x14, 0x0d, 0x16, 0xed, 0x6e, 0x99, 0xc6, 0xaa, 0xb1, 0x56, 0x69, 0xa5, 0x10,
|
||||
0xeb, 0x21, 0x2c, 0x67, 0x4b, 0xb6, 0xbd, 0x23, 0x86, 0x2e, 0x35, 0x61, 0x22, 0x70, 0x22, 0x9f,
|
||||
0x3b, 0xae, 0x16, 0x9e, 0x6e, 0xf5, 0x97, 0x74, 0x19, 0x2a, 0xa1, 0x77, 0xc4, 0x1c, 0xd9, 0x13,
|
||||
0x68, 0xe6, 0xf5, 0xde, 0x00, 0xb0, 0xfe, 0xc8, 0xc3, 0x8d, 0x11, 0xc5, 0x61, 0xc0, 0x59, 0x88,
|
||||
0x94, 0x42, 0x51, 0x19, 0xaf, 0x15, 0xce, 0xb4, 0xf4, 0x37, 0x7d, 0x03, 0xca, 0xa1, 0x74, 0x64,
|
||||
0x2f, 0xd4, 0xaa, 0x66, 0xef, 0x2e, 0xd8, 0x69, 0xd1, 0xb6, 0xde, 0x6a, 0x25, 0x47, 0xe8, 0x2a,
|
||||
0x4c, 0xb9, 0x8e, 0xc4, 0xb6, 0x74, 0x84, 0x44, 0xd7, 0x2c, 0xac, 0x1a, 0x6b, 0xc5, 0x56, 0x1a,
|
||||
0xa2, 0x35, 0x98, 0x54, 0xcb, 0x26, 0x73, 0x43, 0xb3, 0xa8, 0xb7, 0xcf, 0xd6, 0x4a, 0xda, 0x0b,
|
||||
0x1b, 0x3d, 0xc9, 0x5b, 0xc8, 0xf0, 0xd4, 0x2c, 0xad, 0x1a, 0x6b, 0x93, 0xad, 0x34, 0x44, 0xef,
|
||||
0xc1, 0x4c, 0x42, 0xf6, 0x47, 0x28, 0x8f, 0xb9, 0x6b, 0x96, 0xb5, 0x4d, 0xb3, 0xf6, 0x7e, 0x1a,
|
||||
0x6d, 0x0d, 0x1f, 0xa2, 0xeb, 0x40, 0x44, 0xcc, 0x1d, 0xba, 0x0d, 0x16, 0xed, 0x39, 0x27, 0x68,
|
||||
0x4e, 0x68, 0xc2, 0x47, 0x70, 0x45, 0x5e, 0x2f, 0x44, 0xd1, 0x3c, 0x71, 0x3c, 0xdf, 0x9c, 0xd4,
|
||||
0x87, 0x06, 0x00, 0xbd, 0x07, 0x8b, 0x61, 0xec, 0xfd, 0x01, 0x76, 0xf8, 0x1e, 0x9e, 0x86, 0x3e,
|
||||
0x4a, 0x89, 0xc2, 0xac, 0x68, 0x5b, 0xb3, 0x37, 0xad, 0xef, 0xf2, 0xb0, 0xb4, 0xd1, 0x8b, 0x2e,
|
||||
0xcb, 0x02, 0x77, 0x24, 0x0b, 0x5c, 0xba, 0x06, 0x73, 0x7a, 0xd5, 0x94, 0xc7, 0x0d, 0xd7, 0x15,
|
||||
0x18, 0xc6, 0x61, 0xa8, 0xb4, 0xce, 0xc3, 0xf4, 0x3f, 0x30, 0x73, 0xe6, 0x4c, 0x47, 0x05, 0xb1,
|
||||
0xa0, 0x83, 0x38, 0x0c, 0x8e, 0x12, 0x58, 0x7c, 0x5d, 0x02, 0x4b, 0x57, 0x21, 0xb0, 0x7c, 0x8e,
|
||||
0x40, 0x95, 0xd5, 0xd9, 0x4c, 0x5c, 0x33, 0xab, 0x1f, 0xc1, 0x8d, 0x11, 0xbd, 0x49, 0x52, 0xd7,
|
||||
0x01, 0x12, 0x6f, 0x1e, 0x08, 0xbf, 0x4f, 0xf1, 0x00, 0x51, 0x8a, 0x0f, 0x3c, 0xdf, 0xf7, 0xd8,
|
||||
0xd1, 0xee, 0x56, 0x42, 0xee, 0x00, 0xb0, 0x7e, 0x34, 0xe0, 0xd6, 0xb6, 0xc7, 0x1c, 0xdf, 0xfb,
|
||||
0x16, 0xff, 0xd9, 0x00, 0x66, 0x91, 0x5c, 0xc8, 0x26, 0xd9, 0xaa, 0xc3, 0x72, 0xb6, 0x51, 0xb1,
|
||||
0xcf, 0xd6, 0x63, 0xb8, 0x3d, 0xc6, 0xe8, 0x6b, 0x72, 0xbd, 0x01, 0xab, 0xe7, 0x1a, 0xc8, 0x3e,
|
||||
0x17, 0xd2, 0xf1, 0xef, 0x7b, 0xec, 0xc9, 0x15, 0x69, 0xb1, 0xbe, 0x82, 0xff, 0x5d, 0xa6, 0xe3,
|
||||
0x9a, 0x56, 0x36, 0xe0, 0xf6, 0x98, 0x1b, 0x92, 0xdc, 0x58, 0x86, 0x4a, 0xa0, 0xd1, 0x41, 0x6a,
|
||||
0x0c, 0x00, 0xeb, 0x7b, 0x03, 0x6e, 0xed, 0xa0, 0x7c, 0x88, 0xc2, 0x3b, 0xf4, 0xba, 0x8e, 0xd2,
|
||||
0xa1, 0xb3, 0xf8, 0xaa, 0xb1, 0xaf, 0x42, 0x09, 0x75, 0x19, 0xc4, 0x11, 0x8f, 0x17, 0x17, 0xf7,
|
||||
0x90, 0xc2, 0xb8, 0x1e, 0x52, 0xd7, 0xcf, 0x41, 0x86, 0x29, 0x83, 0x88, 0x8f, 0x31, 0xf5, 0x9a,
|
||||
0x5c, 0x0a, 0xa0, 0x5a, 0x73, 0xf4, 0xb7, 0xdc, 0xbf, 0x7a, 0xea, 0x53, 0x28, 0x76, 0xb9, 0xdb,
|
||||
0x4f, 0x77, 0xfd, 0x6d, 0xdd, 0x81, 0x85, 0xa1, 0x3b, 0x93, 0x88, 0x99, 0x30, 0x11, 0xf6, 0xba,
|
||||
0x5d, 0xa5, 0xcc, 0xd0, 0x7c, 0xf5, 0x97, 0x56, 0x0b, 0xcc, 0x51, 0x23, 0xaf, 0xe9, 0xf8, 0x21,
|
||||
0xd0, 0xdd, 0x50, 0x55, 0xdc, 0x43, 0xc7, 0xf7, 0xdc, 0xbe, 0xe3, 0x23, 0xad, 0xd6, 0xc8, 0x6a,
|
||||
0xb5, 0x59, 0xf5, 0x9c, 0xbf, 0xa0, 0x9e, 0x7f, 0x37, 0x60, 0x61, 0xe8, 0xa2, 0xc4, 0xdb, 0x37,
|
||||
0x13, 0x62, 0x0c, 0xdd, 0xa5, 0x6f, 0xda, 0x19, 0x67, 0xec, 0x4d, 0xee, 0x62, 0xcc, 0x99, 0x7e,
|
||||
0x7e, 0xf1, 0x2c, 0xdf, 0x93, 0xdb, 0xd2, 0x90, 0x15, 0x41, 0x51, 0x9d, 0xa7, 0x15, 0x28, 0x69,
|
||||
0x2d, 0x24, 0x47, 0xa7, 0x61, 0x72, 0x8f, 0x6f, 0x71, 0xd9, 0x60, 0x11, 0x31, 0xd4, 0xaa, 0xc3,
|
||||
0x79, 0xfb, 0x98, 0x0b, 0x49, 0xf2, 0x74, 0x0a, 0x26, 0x3a, 0x9c, 0xdf, 0xe7, 0xec, 0x88, 0x14,
|
||||
0xe8, 0x02, 0xcc, 0x7d, 0xe8, 0x84, 0xbb, 0xec, 0xa9, 0x12, 0xdc, 0x3c, 0x76, 0x44, 0x48, 0x8a,
|
||||
0x74, 0x11, 0xe6, 0x95, 0xb7, 0xdb, 0xa8, 0x09, 0xdb, 0xe3, 0xca, 0x3e, 0x52, 0xa2, 0xf3, 0x30,
|
||||
0xb3, 0xe9, 0xb0, 0x3d, 0x2e, 0x5b, 0xa8, 0xc6, 0x22, 0x24, 0x65, 0xeb, 0x13, 0x58, 0x8e, 0xe3,
|
||||
0xd3, 0x08, 0x82, 0xb6, 0xe4, 0x02, 0x5b, 0xd8, 0x45, 0x2f, 0x90, 0x57, 0x4d, 0x27, 0x13, 0x26,
|
||||
0x44, 0x2c, 0x91, 0x38, 0xd6, 0x5f, 0x5a, 0x9f, 0x83, 0x35, 0x4e, 0xf3, 0x35, 0x73, 0xe0, 0x5f,
|
||||
0xb0, 0x72, 0x81, 0xf6, 0x38, 0x00, 0xeb, 0xbf, 0x18, 0x40, 0xd2, 0x7d, 0x46, 0x47, 0x7f, 0x0e,
|
||||
0xa6, 0xd4, 0xdf, 0x07, 0xec, 0x09, 0xe3, 0xa7, 0x8c, 0xe4, 0x28, 0x81, 0x69, 0x05, 0x34, 0x9f,
|
||||
0x05, 0x3e, 0x17, 0x28, 0x88, 0x41, 0x4d, 0xa8, 0x2a, 0x64, 0xa3, 0xe7, 0xf9, 0x2e, 0x8a, 0xb7,
|
||||
0x1e, 0x21, 0x3e, 0xe9, 0x34, 0xdb, 0x1d, 0x92, 0xa7, 0x35, 0x58, 0x52, 0x3b, 0x9b, 0x7c, 0x53,
|
||||
0xa0, 0x23, 0x79, 0x6a, 0xaf, 0x40, 0xab, 0x40, 0xd2, 0x52, 0x9f, 0xa2, 0x23, 0x48, 0x91, 0x2e,
|
||||
0x01, 0x1d, 0x96, 0xd0, 0x78, 0x49, 0xc5, 0x2c, 0x75, 0x7a, 0xdf, 0xef, 0x85, 0xa4, 0xdc, 0x07,
|
||||
0x1b, 0x2c, 0x92, 0x51, 0x80, 0x1d, 0x74, 0x4e, 0xc8, 0xc4, 0x7a, 0x08, 0x74, 0x74, 0xb0, 0x53,
|
||||
0x71, 0x8c, 0xbf, 0x06, 0x8e, 0x9c, 0x41, 0xfb, 0xc8, 0x5c, 0x8f, 0x1d, 0x11, 0x43, 0xf9, 0x16,
|
||||
0x43, 0x8d, 0xae, 0xf4, 0x9e, 0x22, 0xc9, 0xd3, 0xff, 0xc2, 0xed, 0xa1, 0x43, 0x2a, 0x14, 0x9e,
|
||||
0xc0, 0x30, 0x79, 0x95, 0x74, 0x83, 0x22, 0x85, 0xf5, 0x9f, 0x0d, 0x98, 0x19, 0x9a, 0x3c, 0xe8,
|
||||
0x2c, 0x40, 0xfc, 0xb5, 0xe9, 0x08, 0x37, 0xa6, 0x2d, 0x59, 0x8b, 0x28, 0x90, 0x9c, 0x18, 0x94,
|
||||
0xc2, 0x6c, 0x8c, 0x34, 0x82, 0xc0, 0xc7, 0x7d, 0x27, 0x22, 0x79, 0xe5, 0x51, 0x8c, 0xed, 0x70,
|
||||
0x7e, 0x14, 0x83, 0x9a, 0xa9, 0xd4, 0xc1, 0x5d, 0xe6, 0x04, 0x41, 0x9c, 0xb0, 0xe9, 0xa3, 0x31,
|
||||
0x5c, 0x1a, 0xdc, 0xbb, 0xc7, 0x19, 0x92, 0xf2, 0xfa, 0x4f, 0x05, 0x80, 0xa6, 0x10, 0x5c, 0xa8,
|
||||
0x72, 0x09, 0xd5, 0xf6, 0x03, 0x86, 0xcf, 0x02, 0xec, 0x4a, 0x54, 0x66, 0x2d, 0xc0, 0xdc, 0xa0,
|
||||
0x7f, 0x35, 0x4f, 0x02, 0xa9, 0x6a, 0xa7, 0x0a, 0x24, 0xa9, 0x8e, 0x76, 0x3f, 0x7b, 0x48, 0x9e,
|
||||
0xce, 0x40, 0x45, 0xb1, 0xfd, 0x48, 0xc4, 0x55, 0x94, 0xe4, 0xc1, 0x1e, 0x97, 0xdb, 0xbc, 0xc7,
|
||||
0x5c, 0x52, 0xec, 0x23, 0xbb, 0xcc, 0x89, 0xd9, 0x2b, 0xa9, 0x68, 0x0e, 0xb1, 0x12, 0xcb, 0x96,
|
||||
0x95, 0x15, 0x1b, 0x4e, 0xbf, 0x69, 0x90, 0x09, 0x55, 0x9e, 0xfd, 0xb8, 0x4c, 0x2a, 0xc7, 0x54,
|
||||
0x00, 0x1b, 0xbe, 0x40, 0xc7, 0x8d, 0x92, 0x48, 0x54, 0x74, 0x6c, 0x7a, 0x07, 0xe1, 0xd9, 0x7d,
|
||||
0xa0, 0x08, 0x54, 0x88, 0x56, 0xaa, 0x82, 0x84, 0x64, 0x4a, 0x99, 0xae, 0xdb, 0xa6, 0x06, 0xb7,
|
||||
0xb9, 0x38, 0x71, 0x24, 0x99, 0x56, 0x19, 0xaa, 0xd1, 0x44, 0x67, 0xfc, 0xba, 0xa0, 0x4b, 0x66,
|
||||
0xce, 0xce, 0x27, 0x3b, 0x6d, 0x64, 0x92, 0xcc, 0x2a, 0x13, 0x34, 0xba, 0xed, 0x78, 0x3e, 0xba,
|
||||
0x1d, 0xde, 0x46, 0xe6, 0x92, 0x39, 0x65, 0x82, 0x86, 0x9b, 0xcf, 0x02, 0x4f, 0xa0, 0x4b, 0x88,
|
||||
0x32, 0x61, 0x70, 0x9d, 0x62, 0x98, 0xcc, 0x2b, 0x2c, 0x61, 0x2f, 0x29, 0x30, 0x42, 0x29, 0x81,
|
||||
0x29, 0x1d, 0x84, 0x8f, 0x0f, 0x0f, 0x43, 0x94, 0xe4, 0x45, 0xf1, 0xee, 0x9f, 0x25, 0xa8, 0x36,
|
||||
0x58, 0x94, 0xd0, 0xb3, 0x2f, 0xb8, 0xea, 0xfd, 0x1e, 0x3b, 0xa2, 0x2d, 0x58, 0x3c, 0xf7, 0xde,
|
||||
0x27, 0x29, 0xbc, 0x62, 0x8f, 0xfb, 0x1d, 0x55, 0x33, 0xed, 0x0b, 0x7e, 0x0d, 0x59, 0x39, 0xfa,
|
||||
0x2e, 0x4c, 0xa5, 0x3a, 0x2e, 0x5d, 0xb0, 0x47, 0x1f, 0x83, 0x5a, 0x35, 0xab, 0x29, 0x5b, 0x39,
|
||||
0x7a, 0x1f, 0xe6, 0xce, 0x4d, 0xa4, 0x74, 0xc5, 0x1e, 0x37, 0xfb, 0xd6, 0x4c, 0xfb, 0x82, 0x11,
|
||||
0xd6, 0xca, 0xd1, 0xc7, 0x50, 0xcd, 0x1a, 0xe8, 0xa8, 0x65, 0x5f, 0x3a, 0xe7, 0xd5, 0x56, 0xec,
|
||||
0xb1, 0xb3, 0x62, 0x8e, 0x7e, 0x0d, 0x37, 0x2f, 0x1c, 0x95, 0xe8, 0xff, 0xed, 0xab, 0x0d, 0x6a,
|
||||
0x35, 0xcb, 0xbe, 0x74, 0xde, 0x8a, 0x1d, 0xc9, 0x9a, 0x53, 0xa8, 0x96, 0x1e, 0x3f, 0xbe, 0xd4,
|
||||
0x56, 0xec, 0xb1, 0x23, 0x50, 0x8e, 0x7e, 0x00, 0x53, 0xa9, 0x11, 0x80, 0xde, 0xb4, 0x2f, 0x1a,
|
||||
0x08, 0x6a, 0x55, 0x3b, 0x63, 0xb8, 0x88, 0x23, 0xbe, 0x83, 0xb2, 0xe1, 0xfb, 0xaa, 0x22, 0x43,
|
||||
0xba, 0xa4, 0x6e, 0xd4, 0x9f, 0xc3, 0xe2, 0xf3, 0x29, 0xfc, 0x4c, 0xf6, 0x0b, 0x58, 0xcc, 0x7c,
|
||||
0x28, 0xe8, 0xbf, 0xed, 0xcb, 0x9f, 0xa7, 0x5a, 0xdd, 0x1e, 0xfb, 0xca, 0x58, 0xb9, 0x8d, 0xf7,
|
||||
0x7e, 0x7d, 0x59, 0x37, 0x9e, 0xbf, 0xac, 0x1b, 0xbf, 0xbd, 0xac, 0x1b, 0x3f, 0xbc, 0xaa, 0xe7,
|
||||
0x9e, 0xbf, 0xaa, 0xe7, 0x5e, 0xbc, 0xaa, 0xe7, 0x3e, 0xb3, 0x2e, 0xff, 0xbf, 0x8a, 0x83, 0xb2,
|
||||
0xfe, 0xf3, 0xf6, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x52, 0xc6, 0x90, 0x45, 0x18, 0x11, 0x00,
|
||||
0x00,
|
||||
}
|
||||
|
||||
func (m *GetSubscriptionRequest) Marshal() (dAtA []byte, err error) {
|
||||
|
@ -1837,6 +1850,13 @@ func (m *BuySubscriptionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
|
|||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.UserEmail) > 0 {
|
||||
i -= len(m.UserEmail)
|
||||
copy(dAtA[i:], m.UserEmail)
|
||||
i = encodeVarintPaymentservice(dAtA, i, uint64(len(m.UserEmail)))
|
||||
i--
|
||||
dAtA[i] = 0x32
|
||||
}
|
||||
if len(m.RequestedAnyName) > 0 {
|
||||
i -= len(m.RequestedAnyName)
|
||||
copy(dAtA[i:], m.RequestedAnyName)
|
||||
|
@ -2637,6 +2657,10 @@ func (m *BuySubscriptionRequest) Size() (n int) {
|
|||
if l > 0 {
|
||||
n += 1 + l + sovPaymentservice(uint64(l))
|
||||
}
|
||||
l = len(m.UserEmail)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovPaymentservice(uint64(l))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
|
@ -3553,6 +3577,38 @@ func (m *BuySubscriptionRequest) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
m.RequestedAnyName = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 6:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field UserEmail", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowPaymentservice
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthPaymentservice
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthPaymentservice
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.UserEmail = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipPaymentservice(dAtA[iNdEx:])
|
||||
|
|
|
@ -89,6 +89,8 @@ message BuySubscriptionRequest {
|
|||
// if empty - then no name requested
|
||||
// if non-empty - PP node will register that name on behalf of the user
|
||||
string requestedAnyName = 5;
|
||||
// for some payment methods we need to know the user's email
|
||||
string userEmail = 6;
|
||||
}
|
||||
|
||||
message BuySubscriptionRequestSigned {
|
||||
|
@ -254,6 +256,8 @@ enum ErrorCodes {
|
|||
EmailExpired = 16;
|
||||
EmailWrongCode = 17;
|
||||
|
||||
InvalidReceipt = 18;
|
||||
|
||||
ErrorOffset = 600;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue