code.vegaprotocol.io/vega@v0.79.0/datanode/entities/network_limits.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package entities 17 18 import ( 19 "time" 20 21 "code.vegaprotocol.io/vega/protos/vega" 22 ) 23 24 type NetworkLimits struct { 25 TxHash TxHash 26 VegaTime time.Time 27 CanProposeMarket bool 28 CanProposeAsset bool 29 ProposeMarketEnabled bool 30 ProposeAssetEnabled bool 31 GenesisLoaded bool 32 ProposeMarketEnabledFrom time.Time 33 ProposeAssetEnabledFrom time.Time 34 } 35 36 func NetworkLimitsFromProto(vn *vega.NetworkLimits, txHash TxHash) NetworkLimits { 37 return NetworkLimits{ 38 TxHash: txHash, 39 CanProposeMarket: vn.CanProposeMarket, 40 CanProposeAsset: vn.CanProposeAsset, 41 ProposeMarketEnabled: vn.ProposeMarketEnabled, 42 ProposeAssetEnabled: vn.ProposeAssetEnabled, 43 GenesisLoaded: vn.GenesisLoaded, 44 ProposeMarketEnabledFrom: NanosToPostgresTimestamp(vn.ProposeMarketEnabledFrom), 45 ProposeAssetEnabledFrom: NanosToPostgresTimestamp(vn.ProposeAssetEnabledFrom), 46 } 47 } 48 49 func (nl *NetworkLimits) ToProto() *vega.NetworkLimits { 50 return &vega.NetworkLimits{ 51 CanProposeMarket: nl.CanProposeMarket, 52 CanProposeAsset: nl.CanProposeAsset, 53 ProposeMarketEnabled: nl.ProposeMarketEnabled, 54 ProposeAssetEnabled: nl.ProposeAssetEnabled, 55 GenesisLoaded: nl.GenesisLoaded, 56 ProposeMarketEnabledFrom: nl.ProposeMarketEnabledFrom.UnixNano(), 57 ProposeAssetEnabledFrom: nl.ProposeAssetEnabledFrom.UnixNano(), 58 } 59 }