Skip to content

Commit

Permalink
Merge branch 'develop' into feat/cctx-gateway
Browse files Browse the repository at this point in the history
  • Loading branch information
lumtis authored May 29, 2024
2 parents dfd39e5 + 42fe69c commit ff5579b
Show file tree
Hide file tree
Showing 47 changed files with 2,566 additions and 733 deletions.
2 changes: 2 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
* [2154](https://github.com/zeta-chain/node/pull/2154) - add `ibccrosschain` module
* [2258](https://github.com/zeta-chain/node/pull/2258) - add Optimism and Base in static chain information
* [2279](https://github.com/zeta-chain/node/pull/2279) - add a CCTXGateway field to chain static data
* [2275](https://github.com/zeta-chain/node/pull/2275) - add ChainInfo singleton state variable in authority

### Refactor

Expand All @@ -31,6 +32,7 @@
* [2210](https://github.com/zeta-chain/node/pull/2210) - removed uncessary panics in the zetaclientd process
* [2205](https://github.com/zeta-chain/node/pull/2205) - remove deprecated variables pre-v17
* [2226](https://github.com/zeta-chain/node/pull/2226) - improve Go formatting with imports standardization and max line length to 120
* [2262](https://github.com/zeta-chain/node/pull/2262) - refactor MsgUpdateZRC20 into MsgPauseZrc20 and MsgUnPauseZRC20

### Tests

Expand Down
8 changes: 4 additions & 4 deletions contrib/localnet/orchestrator/start-zetae2e.sh
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,9 @@ if [ "$OPTION" == "upgrade" ]; then
# When the upgrade height is greater than 100 for upgrade test, the Bitcoin tests have been run once, therefore the Bitcoin wallet is already set up
# Use light flag to skip advanced tests
if [ "$UPGRADE_HEIGHT" -lt 100 ]; then
zetae2e "$ZETAE2E_CMD" --skip-setup --config deployed.yml --light --skip-header-proof
zetae2e $ZETAE2E_CMD --skip-setup --config deployed.yml --light --skip-header-proof
else
zetae2e "$ZETAE2E_CMD" --skip-setup --config deployed.yml --skip-bitcoin-setup --light --skip-header-proof
zetae2e $ZETAE2E_CMD --skip-setup --config deployed.yml --skip-bitcoin-setup --light --skip-header-proof
fi

ZETAE2E_EXIT_CODE=$?
Expand All @@ -156,7 +156,7 @@ else
echo "running e2e setup..."

if [[ ! -f deployed.yml ]]; then
zetae2e "$ZETAE2E_CMD" --setup-only --config-out deployed.yml
zetae2e $ZETAE2E_CMD --setup-only --config-out deployed.yml
if [ $? -ne 0 ]; then
echo "e2e setup failed"
exit 1
Expand All @@ -167,7 +167,7 @@ else

echo "running e2e tests..."

zetae2e "$ZETAE2E_CMD" --skip-setup --config deployed.yml
zetae2e $ZETAE2E_CMD --skip-setup --config deployed.yml
ZETAE2E_EXIT_CODE=$?

# if e2e passed, exit with 0, otherwise exit with 1
Expand Down
3 changes: 2 additions & 1 deletion docs/cli/zetacored/zetacored_tx_fungible.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@ zetacored tx fungible [flags]
* [zetacored tx](zetacored_tx.md) - Transactions subcommands
* [zetacored tx fungible deploy-fungible-coin-zrc-4](zetacored_tx_fungible_deploy-fungible-coin-zrc-4.md) - Broadcast message DeployFungibleCoinZRC20
* [zetacored tx fungible deploy-system-contracts](zetacored_tx_fungible_deploy-system-contracts.md) - Broadcast message SystemContracts
* [zetacored tx fungible pause-zrc20](zetacored_tx_fungible_pause-zrc20.md) - Broadcast message PauseZRC20
* [zetacored tx fungible remove-foreign-coin](zetacored_tx_fungible_remove-foreign-coin.md) - Broadcast message RemoveForeignCoin
* [zetacored tx fungible unpause-zrc20](zetacored_tx_fungible_unpause-zrc20.md) - Broadcast message UnpauseZRC20
* [zetacored tx fungible update-contract-bytecode](zetacored_tx_fungible_update-contract-bytecode.md) - Broadcast message UpdateContractBytecode
* [zetacored tx fungible update-system-contract](zetacored_tx_fungible_update-system-contract.md) - Broadcast message UpdateSystemContract
* [zetacored tx fungible update-zrc20-liquidity-cap](zetacored_tx_fungible_update-zrc20-liquidity-cap.md) - Broadcast message UpdateZRC20LiquidityCap
* [zetacored tx fungible update-zrc20-paused-status](zetacored_tx_fungible_update-zrc20-paused-status.md) - Broadcast message UpdateZRC20PausedStatus
* [zetacored tx fungible update-zrc20-withdraw-fee](zetacored_tx_fungible_update-zrc20-withdraw-fee.md) - Broadcast message UpdateZRC20WithdrawFee

Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# tx fungible update-zrc20-paused-status
# tx fungible pause-zrc20

Broadcast message UpdateZRC20PausedStatus
Broadcast message PauseZRC20

```
zetacored tx fungible update-zrc20-paused-status [contractAddress1, contractAddress2, ...] [pausedStatus] [flags]
zetacored tx fungible pause-zrc20 [contractAddress1, contractAddress2, ...] [flags]
```

### Examples

```
zetacored tx fungible update-zrc20-paused-status "0xece40cbB54d65282c4623f141c4a8a0bE7D6AdEc, 0xece40cbB54d65282c4623f141c4a8a0bEjgksncf" 0
zetacored tx fungible pause-zrc20 "0xece40cbB54d65282c4623f141c4a8a0bE7D6AdEc, 0xece40cbB54d65282c4623f141c4a8a0bEjgksncf"
```

### Options
Expand All @@ -28,7 +28,7 @@ zetacored tx fungible update-zrc20-paused-status "0xece40cbB54d65282c4623f141c4a
--gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1)
--gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom)
--generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name)
-h, --help help for update-zrc20-paused-status
-h, --help help for pause-zrc20
--keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory)
--keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used
--ledger Use a connected Ledger device
Expand Down
59 changes: 59 additions & 0 deletions docs/cli/zetacored/zetacored_tx_fungible_unpause-zrc20.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# tx fungible unpause-zrc20

Broadcast message UnpauseZRC20

```
zetacored tx fungible unpause-zrc20 [contractAddress1, contractAddress2, ...] [flags]
```

### Examples

```
zetacored tx fungible unpause-zrc20 "0xece40cbB54d65282c4623f141c4a8a0bE7D6AdEc, 0xece40cbB54d65282c4623f141c4a8a0bEjgksncf"
```

### Options

```
-a, --account-number uint The account number of the signing account (offline mode only)
--aux Generate aux signer data instead of sending a tx
-b, --broadcast-mode string Transaction broadcasting mode (sync|async)
--chain-id string The network chain ID
--dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible)
--fee-granter string Fee granter grants fees for the transaction
--fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer
--fees string Fees to pay along with transaction; eg: 10uatom
--from string Name or address of private key with which to sign
--gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000)
--gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1)
--gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom)
--generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name)
-h, --help help for unpause-zrc20
--keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory)
--keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used
--ledger Use a connected Ledger device
--node string [host]:[port] to tendermint rpc interface for this chain
--note string Note to add a description to the transaction (previously --memo)
--offline Offline mode (does not allow any online functionality)
-o, --output string Output format (text|json)
-s, --sequence uint The sequence number of the signing account (offline mode only)
--sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature
--timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height
--tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator
-y, --yes Skip tx broadcasting prompt confirmation
```

### Options inherited from parent commands

```
--home string directory for config and data
--log_format string The logging format (json|plain)
--log_level string The logging level (trace|debug|info|warn|error|fatal|panic)
--log_no_color Disable colored logs
--trace print out full stack trace on errors
```

### SEE ALSO

* [zetacored tx fungible](zetacored_tx_fungible.md) - fungible transactions subcommands

12 changes: 4 additions & 8 deletions docs/openapi/openapi.swagger.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57437,16 +57437,18 @@ definitions:
type: string
systemContract:
type: string
fungibleMsgPauseZRC20Response:
type: object
fungibleMsgRemoveForeignCoinResponse:
type: object
fungibleMsgUnpauseZRC20Response:
type: object
fungibleMsgUpdateContractBytecodeResponse:
type: object
fungibleMsgUpdateSystemContractResponse:
type: object
fungibleMsgUpdateZRC20LiquidityCapResponse:
type: object
fungibleMsgUpdateZRC20PausedStatusResponse:
type: object
fungibleMsgUpdateZRC20WithdrawFeeResponse:
type: object
fungibleQueryAllForeignCoinsResponse:
Expand Down Expand Up @@ -57501,12 +57503,6 @@ definitions:
type: string
connector_zevm:
type: string
fungibleUpdatePausedStatusAction:
type: string
enum:
- PAUSE
- UNPAUSE
default: PAUSE
googlerpcStatus:
type: object
properties:
Expand Down
4 changes: 4 additions & 0 deletions docs/releases/v17_breaking_changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,7 @@
* `/zeta-chain/crosschain/inTxHashToCctxData/{hash}` endpoint is now `/zeta-chain/crosschain/inboundHashToCctxData/{hash}`
* `InTxHashToCctxAll` has been renamed to `InboundHashToCctxAll`
* `/zeta-chain/crosschain/inTxHashToCctx` endpoint is now `/zeta-chain/crosschain/inboundHashToCctx`

* `MsgUpdateZRC20` has been removed, and replaced with `MsgPauseZRC20` and `MsgUnpauseZRC20` messages.
* `MsgPauseZRC20` message pauses a ZRC20 token and can be triggered via `PolicyType_groupEmergency`
* `MsgUnpauseZRC20` message unpauses a ZRC20 token and can be triggered via `PolicyType_groupOperational`
35 changes: 22 additions & 13 deletions docs/spec/fungible/messages.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,32 +102,41 @@ message MsgUpdateZRC20WithdrawFee {
}
```

## MsgUpdateZRC20PausedStatus
## MsgUpdateZRC20LiquidityCap

UpdateZRC20PausedStatus updates the paused status of a ZRC20
The list of ZRC20s are either paused or unpaused
UpdateZRC20LiquidityCap updates the liquidity cap for a ZRC20 token.

Authorized: admin policy group 1 (pausing), group 2 (pausing & unpausing)
Authorized: admin policy group 2.

```proto
message MsgUpdateZRC20PausedStatus {
message MsgUpdateZRC20LiquidityCap {
string creator = 1;
string zrc20_addresses = 2;
UpdatePausedStatusAction action = 3;
string zrc20_address = 2;
string liquidity_cap = 3;
}
```

## MsgUpdateZRC20LiquidityCap
## MsgPauseZRC20

UpdateZRC20LiquidityCap updates the liquidity cap for a ZRC20 token.
PauseZRC20 pauses a list of ZRC20 tokens
Authorized: admin policy group groupEmergency.

Authorized: admin policy group 2.
```proto
message MsgPauseZRC20 {
string creator = 1;
string zrc20_addresses = 2;
}
```

## MsgUnpauseZRC20

UnpauseZRC20 unpauses the ZRC20 token
Authorized: admin policy group groupOperational.

```proto
message MsgUpdateZRC20LiquidityCap {
message MsgUnpauseZRC20 {
string creator = 1;
string zrc20_address = 2;
string liquidity_cap = 3;
string zrc20_addresses = 2;
}
```

10 changes: 4 additions & 6 deletions e2e/e2etests/test_pause_zrc20.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,11 @@ func TestPauseZRC20(r *runner.E2ERunner, _ []string) {

// Pause ETH ZRC20
r.Logger.Info("Pausing ETH")
msg := fungibletypes.NewMsgUpdateZRC20PausedStatus(
msgPause := fungibletypes.NewMsgPauseZRC20(
r.ZetaTxServer.GetAccountAddress(0),
[]string{r.ETHZRC20Addr.Hex()},
fungibletypes.UpdatePausedStatusAction_PAUSE,
)
res, err := r.ZetaTxServer.BroadcastTx(utils.FungibleAdminName, msg)
res, err := r.ZetaTxServer.BroadcastTx(utils.FungibleAdminName, msgPause)
if err != nil {
panic(err)
}
Expand Down Expand Up @@ -129,12 +128,11 @@ func TestPauseZRC20(r *runner.E2ERunner, _ []string) {

// Unpause ETH ZRC20
r.Logger.Info("Unpausing ETH")
msg = fungibletypes.NewMsgUpdateZRC20PausedStatus(
msgUnpause := fungibletypes.NewMsgUnpauseZRC20(
r.ZetaTxServer.GetAccountAddress(0),
[]string{r.ETHZRC20Addr.Hex()},
fungibletypes.UpdatePausedStatusAction_UNPAUSE,
)
res, err = r.ZetaTxServer.BroadcastTx(utils.FungibleAdminName, msg)
res, err = r.ZetaTxServer.BroadcastTx(utils.FungibleAdminName, msgUnpause)
if err != nil {
panic(err)
}
Expand Down
33 changes: 33 additions & 0 deletions pkg/chains/chain.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,47 @@ type SigninAlgo string
// Chains represent a slice of Chain
type Chains []Chain

// Validate checks whether the chain is valid
// The function check the chain ID is positive and all enum fields have a defined value
func (chain Chain) Validate() error {
if chain.ChainId <= 0 {
return fmt.Errorf("chain ID must be positive")
}

if _, ok := ChainName_name[int32(chain.ChainName)]; !ok {
return fmt.Errorf("invalid chain name %d", int32(chain.ChainName))
}

if _, ok := Network_name[int32(chain.Network)]; !ok {
return fmt.Errorf("invalid network %d", int32(chain.Network))
}

if _, ok := NetworkType_name[int32(chain.NetworkType)]; !ok {
return fmt.Errorf("invalid network type %d", int32(chain.NetworkType))
}

if _, ok := Vm_name[int32(chain.Vm)]; !ok {
return fmt.Errorf("invalid vm %d", int32(chain.Vm))
}

if _, ok := Consensus_name[int32(chain.Consensus)]; !ok {
return fmt.Errorf("invalid consensus %d", int32(chain.Consensus))
}

return nil
}

// IsEqual compare two chain to see whether they represent the same chain
func (chain Chain) IsEqual(c Chain) bool {
return chain.ChainId == c.ChainId
}

// IsZetaChain returns true if the chain is a ZetaChain chain
func (chain Chain) IsZetaChain() bool {
return chain.Network == Network_zeta
}

// IsExternalChain returns true if the chain is an ExternalChain chain, not ZetaChain
func (chain Chain) IsExternalChain() bool {
return chain.IsExternal
}
Expand Down
Loading

0 comments on commit ff5579b

Please sign in to comment.