Skip to content

Commit 98020f0

Browse files
committed
(feat) added support for the open interest cap for derivative markets
1 parent 830a467 commit 98020f0

File tree

71 files changed

+10857
-3552
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+10857
-3552
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ clone-injective-indexer:
44
git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.16.69 --depth 1 --single-branch
55

66
clone-injective-core:
7-
git clone https://github.com/InjectiveLabs/injective-core.git -b v1.16.3 --depth 1 --single-branch
7+
git clone https://github.com/InjectiveLabs/injective-core.git -b CP-329/open-interest-cap --depth 1 --single-branch
88

99
copy-exchange-client: clone-injective-indexer
1010
rm -rf exchange/*

chain/auction/types/auction.pb.go

Lines changed: 107 additions & 39 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

chain/evm/types/errors.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
errorsmod "cosmossdk.io/errors"
99
"github.com/ethereum/go-ethereum/common"
10+
"github.com/ethereum/go-ethereum/crypto"
1011

1112
"github.com/ethereum/go-ethereum/accounts/abi"
1213
"github.com/ethereum/go-ethereum/common/hexutil"
@@ -111,6 +112,11 @@ var (
111112
ErrConfigOverrides = errorsmod.Register(ModuleName, codeErrConfigOverrides, "failed to apply state override")
112113
)
113114

115+
var (
116+
// RevertSelector is selector of ErrExecutionReverted
117+
RevertSelector = crypto.Keccak256([]byte("Error(string)"))[:4]
118+
)
119+
114120
// VMError is an interface that represents a reverted or failed EVM execution.
115121
// The Ret() method returns the revert reason bytes associated with the error, if any.
116122
// The Cause() method returns the unwrapped error. For ABCIInfo integration.
@@ -289,3 +295,19 @@ func (e *RevertError) ErrorCode() int {
289295
func (e *RevertError) ErrorData() interface{} {
290296
return e.reason
291297
}
298+
299+
// RevertReasonBytes converts a message to ABI-encoded revert bytes.
300+
func RevertReasonBytes(reason string) ([]byte, error) {
301+
typ, err := abi.NewType("string", "", nil)
302+
if err != nil {
303+
return nil, err
304+
}
305+
packed, err := (abi.Arguments{{Type: typ}}).Pack(reason)
306+
if err != nil {
307+
return nil, err
308+
}
309+
bz := make([]byte, 0, len(RevertSelector)+len(packed))
310+
bz = append(bz, RevertSelector...)
311+
bz = append(bz, packed...)
312+
return bz, nil
313+
}

chain/exchange/types/errors.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ var (
8282
ErrSenderIsNotAnAdmin = errors.Register(ModuleName, 74, "sender should be a market admin")
8383
ErrMarketAlreadyScheduledToSettle = errors.Register(ModuleName, 75, "market is already scheduled to settle")
8484
ErrGenericMarketNotFound = errors.Register(ModuleName, 76, "market not found")
85-
ErrInvalidDenomDecimal = errors.Register(ModuleName, 77, "denom decimal cannot be higher than max scale factor")
85+
ErrInvalidDenomDecimal = errors.Register(ModuleName, 77, "denom decimal should be greater than 0 and not greater than max scale factor")
8686
ErrInvalidState = errors.Register(ModuleName, 78, "state is invalid")
8787
ErrTransientOrdersUpToCancelNotSupported = errors.Register(ModuleName, 79, "transient orders up to cancellation not supported")
8888
ErrInvalidTrade = errors.Register(ModuleName, 80, "invalid trade")
@@ -114,4 +114,5 @@ var (
114114
ErrInsufficientMarketBalance = errors.Register(ModuleName, 106, "insufficient market balance")
115115
ErrInvalidExpirationBlock = errors.Register(ModuleName, 107, "invalid expiration block")
116116
ErrV1DerivativeMarketLaunch = errors.Register(ModuleName, 108, "v1 perpetual and expiry market launch proposal is not supported")
117+
ErrInvalidOpenNotionalCap = errors.Register(ModuleName, 109, "invalid open notional cap")
117118
)

0 commit comments

Comments
 (0)