Пример #1
0
        public override Empty AddPairConnectors(PairConnector pairConnector)
        {
            AssertPerformedByManager();
            Assert(!string.IsNullOrEmpty(pairConnector.ResourceConnectorSymbol),
                   "resource token symbol should not be empty");
            Assert(!string.IsNullOrEmpty(pairConnector.NativeConnectorSymbol),
                   "native token symbol symbol should not be empty");
            Assert(State.Connectors[pairConnector.ResourceConnectorSymbol] == null,
                   "resource token symbol has been existed");
            Assert(State.Connectors[pairConnector.NativeConnectorSymbol] == null,
                   "native token symbol has been existed");
            var resourceConnector = new Connector
            {
                Symbol                  = pairConnector.ResourceConnectorSymbol,
                VirtualBalance          = pairConnector.ResourceVirtualBalance,
                IsVirtualBalanceEnabled = pairConnector.IsResourceVirtualBalanceEnabled,
                IsPurchaseEnabled       = pairConnector.IsPurchaseEnabled,
                RelatedSymbol           = pairConnector.NativeConnectorSymbol,
                Weight                  = pairConnector.ResourceWeight
            };

            AssertValidConnectorAndNormalizeWeight(resourceConnector);
            var nativeTokenToResourceConnector = new Connector
            {
                Symbol                  = pairConnector.NativeConnectorSymbol,
                VirtualBalance          = pairConnector.NativeVirtualBalance,
                IsVirtualBalanceEnabled = pairConnector.IsNativeVirtualBalanceEnabled,
                IsPurchaseEnabled       = pairConnector.IsPurchaseEnabled,
                RelatedSymbol           = pairConnector.ResourceConnectorSymbol,
                Weight                  = pairConnector.NativeWeight
            };

            AssertValidConnectorAndNormalizeWeight(nativeTokenToResourceConnector);
            int count = State.ConnectorCount.Value;

            State.ConnectorSymbols[count + 1]          = resourceConnector.Symbol;
            State.Connectors[resourceConnector.Symbol] = resourceConnector;
            State.ConnectorSymbols[count + 2]          = nativeTokenToResourceConnector.Symbol;
            State.Connectors[nativeTokenToResourceConnector.Symbol] = nativeTokenToResourceConnector;
            State.ConnectorCount.Value = count + 2;
            return(new Empty());
        }
Пример #2
0
        public override Empty AddPairConnectors(PairConnector pairConnector)
        {
            AssertControllerForManageConnector();
            Assert(!string.IsNullOrEmpty(pairConnector.ResourceConnectorSymbol),
                   "resource token symbol should not be empty");
            var nativeConnectorSymbol = NtTokenPrefix.Append(pairConnector.ResourceConnectorSymbol);

            Assert(State.Connectors[pairConnector.ResourceConnectorSymbol] == null,
                   "resource token symbol has been existed");
            //AssertValidTokenOwnShip(pairConnector.ResourceConnectorSymbol, Context.Sender);
            var resourceConnector = new Connector
            {
                Symbol            = pairConnector.ResourceConnectorSymbol,
                IsPurchaseEnabled = false,
                RelatedSymbol     = nativeConnectorSymbol,
                Weight            = pairConnector.ResourceWeight
            };

            AssertValidConnectorAndNormalizeWeight(resourceConnector);
            var nativeTokenToResourceConnector = new Connector
            {
                Symbol                  = nativeConnectorSymbol,
                VirtualBalance          = pairConnector.NativeVirtualBalance,
                IsVirtualBalanceEnabled = true,
                IsPurchaseEnabled       = false,
                RelatedSymbol           = pairConnector.ResourceConnectorSymbol,
                Weight                  = pairConnector.NativeWeight,
                IsDepositAccount        = true
            };

            AssertValidConnectorWeight(nativeTokenToResourceConnector);
            int count = State.ConnectorCount.Value;

            State.ConnectorSymbols[++count]            = resourceConnector.Symbol;
            State.Connectors[resourceConnector.Symbol] = resourceConnector;
            State.ConnectorSymbols[++count]            = nativeTokenToResourceConnector.Symbol;
            State.Connectors[nativeTokenToResourceConnector.Symbol] = nativeTokenToResourceConnector;
            State.ConnectorCount.Value = count;
            return(new Empty());
        }