Skip to content

feat(nexus)!: set rate limit during asset registration #1820

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 43 commits into from
Nov 4, 2022
Merged
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
16ab26a
ibc v3
milapsheth Oct 24, 2022
d92d0d3
update protos
milapsheth Oct 24, 2022
1e9ef26
update swagger
milapsheth Oct 24, 2022
414937f
update makefile
milapsheth Oct 24, 2022
9bac921
Merge branch 'main' into ibc-v3
milapsheth Oct 24, 2022
e459dbb
update docs
milapsheth Oct 25, 2022
772de32
feat(nexus)!: add rate limits to transfers
milapsheth Oct 26, 2022
1d1fbe6
Merge branch 'main' into ibc-rate-limit
milapsheth Oct 26, 2022
d5dd344
format proto
milapsheth Oct 26, 2022
ab0bfcc
Merge branch 'main' into ibc-rate-limit
milapsheth Oct 26, 2022
3f2e5cd
Merge branch 'main' into ibc-rate-limit
milapsheth Oct 26, 2022
de51656
chore: lint and add docs
milapsheth Oct 26, 2022
aefba2b
refactor rate limits
milapsheth Oct 27, 2022
704a111
Merge branch 'main' into ibc-rate-limit
milapsheth Oct 27, 2022
d46c248
add log
milapsheth Oct 27, 2022
77b7dcc
proto-gen
milapsheth Oct 27, 2022
172ffcf
address comments
milapsheth Oct 27, 2022
49c46f5
feat(nexus)!: set rate limit during asset registration
milapsheth Oct 27, 2022
f795a4e
remove helper
milapsheth Oct 27, 2022
1c481f7
Merge branch 'ibc-rate-limit' into register-rate-limit
milapsheth Oct 27, 2022
a75a613
address comments
milapsheth Oct 27, 2022
5e06219
Update x/nexus/keeper/chain.go
milapsheth Oct 27, 2022
53ffafa
use enum
milapsheth Oct 28, 2022
e92de88
addresses comments
milapsheth Oct 31, 2022
f484bbc
Merge branch 'main' into ibc-rate-limit
milapsheth Oct 31, 2022
1b24d8d
move TransferFlow to exported
milapsheth Oct 31, 2022
0e58c98
Merge branch 'ibc-rate-limit' into register-rate-limit
milapsheth Oct 31, 2022
2b1e78c
Merge branch 'main' into ibc-rate-limit
milapsheth Nov 3, 2022
dd93d2a
rename TransferFlow to TransferDirection
milapsheth Nov 3, 2022
6efae9e
rename TransferRate to TransferEpoch
milapsheth Nov 3, 2022
6eec981
revert error log
milapsheth Nov 3, 2022
fec60db
address comments
milapsheth Nov 3, 2022
d435370
Merge branch 'ibc-rate-limit' into register-rate-limit
milapsheth Nov 3, 2022
7c59208
refactor test utils
milapsheth Nov 3, 2022
c8c1d23
Merge branch 'ibc-rate-limit' into register-rate-limit
milapsheth Nov 3, 2022
3bfbfba
use max uint as default limit
milapsheth Nov 4, 2022
0c3600e
goimport
milapsheth Nov 4, 2022
919b711
Merge branch 'ibc-rate-limit' into register-rate-limit
milapsheth Nov 4, 2022
af66bbc
missing file
milapsheth Nov 4, 2022
2f4a952
add unit tests
milapsheth Nov 4, 2022
4da0578
Merge branch 'ibc-rate-limit' into register-rate-limit
milapsheth Nov 4, 2022
b3d1e42
Merge branch 'main' into register-rate-limit
milapsheth Nov 4, 2022
c3d20b3
fix test
milapsheth Nov 4, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions client/docs/static/openapi/index.html

Large diffs are not rendered by default.

242 changes: 242 additions & 0 deletions client/docs/static/openapi/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8029,6 +8029,221 @@ paths:
$ref: "#/components/requestBodies/DeregisterChainMaintainerBody"
tags:
- MsgService
/axelar/nexus/set_transfer_rate_limit:
post:
operationId: SetTransferRateLimit
responses:
"200":
description: A successful response.
content:
"*/*":
schema:
type: object
default:
description: An unexpected error response
content:
"*/*":
schema:
type: object
properties:
error:
type: string
code:
type: integer
format: int32
message:
type: string
details:
type: array
items:
type: object
properties:
type_url:
type: string
description: >-
A URL/resource name that uniquely identifies the
type of the serialized

protocol buffer message. This string must contain at least

one "/" character. The last segment of the URL's path must represent

the fully qualified name of the type (as in

`path/google.protobuf.Duration`). The name should be in a canonical form

(e.g., leading "." is not accepted).


In practice, teams usually precompile into the binary all types that they

expect it to use in the context of Any. However, for URLs which use the

scheme `http`, `https`, or no scheme, one can optionally set up a type

server that maps type URLs to message definitions as follows:


* If no scheme is provided, `https` is assumed.

* An HTTP GET on the URL must yield a [google.protobuf.Type][]
value in binary format, or produce an error.
* Applications are allowed to cache lookup results based on the
URL, or have them precompiled into a binary to avoid any
lookup. Therefore, binary compatibility needs to be preserved
on changes to types. (Use versioned type names to manage
breaking changes.)

Note: this functionality is not currently available in the official

protobuf release, and it is not used for type URLs beginning with

type.googleapis.com.


Schemes other than `http`, `https` (or the empty scheme) might be

used with implementation specific semantics.
value:
type: string
format: byte
description: Must be a valid serialized protocol buffer of the above specified
type.
description: >-
`Any` contains an arbitrary serialized protocol buffer
message along with a

URL that describes the type of the serialized message.


Protobuf library provides support to pack/unpack Any values in the form

of utility functions or additional generated methods of the Any type.


Example 1: Pack and unpack a message in C++.

Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
...
}

Example 2: Pack and unpack a message in Java.

Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
foo = any.unpack(Foo.class);
}

Example 3: Pack and unpack a message in Python.

foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
any.Unpack(foo)
...

Example 4: Pack and unpack a message in Go

foo := &pb.Foo{...}
any, err := anypb.New(foo)
if err != nil {
...
}
...
foo := &pb.Foo{}
if err := any.UnmarshalTo(foo); err != nil {
...
}

The pack methods provided by protobuf library will by default use

'type.googleapis.com/full.type.name' as the type URL and the unpack

methods only use the fully qualified type name after the last '/'

in the type URL, for example "foo.bar.com/x/y.z" will yield type

name "y.z".



JSON

====

The JSON representation of an `Any` value uses the regular

representation of the deserialized, embedded message, with an

additional field `@type` which contains the type URL. Example:

package google.profile;
message Person {
string first_name = 1;
string last_name = 2;
}

{
"@type": "type.googleapis.com/google.profile.Person",
"firstName": <string>,
"lastName": <string>
}

If the embedded message type is well-known and has a custom JSON

representation, that representation will be embedded adding a field

`value` which holds the custom JSON in addition to the `@type`

field. Example (for message [google.protobuf.Duration][]):

{
"@type": "type.googleapis.com/google.protobuf.Duration",
"value": "1.212s"
}
requestBody:
content:
application/json:
schema:
type: object
properties:
sender:
type: string
format: byte
chain:
type: string
limit:
type: object
properties:
denom:
type: string
amount:
type: string
description: >-
Coin defines a token with a denomination and an amount.


NOTE: The amount field is an Int which implements the custom method

signatures required by gogoproto.
window:
type: string
title: >-
SetTransferRateLimitRequest represents a message to set rate
limits on

transfers
required: true
tags:
- MsgService
"/axelar/nexus/v1beta1/assets/{chain}":
get:
summary: Assets queries the assets registered for a chain
Expand Down Expand Up @@ -38173,6 +38388,33 @@ components:
type: string
axelar.nexus.v1beta1.RegisterChainMaintainerResponse:
type: object
axelar.nexus.v1beta1.SetTransferRateLimitRequest:
type: object
properties:
sender:
type: string
format: byte
chain:
type: string
limit:
type: object
properties:
denom:
type: string
amount:
type: string
description: |-
Coin defines a token with a denomination and an amount.

NOTE: The amount field is an Int which implements the custom method
signatures required by gogoproto.
window:
type: string
title: |-
SetTransferRateLimitRequest represents a message to set rate limits on
transfers
axelar.nexus.v1beta1.SetTransferRateLimitResponse:
type: object
axelar.nexus.v1beta1.TransferFeeResponse:
type: object
properties:
Expand Down
Loading