public void CreateCatIsContract() { var result = Create <Cat>(0, new object[] { CatCounter }); UpdateLastCreatedCat(result.NewContractAddress); PersistentState.SetBool("IsContract", PersistentState.IsContract(result.NewContractAddress)); }
/// <summary> /// Add an order receipt to the contract. /// </summary> /// <param name="order"></param> /// <param name="token"></param> public void AddOrder(Address order, Address token) { Assert(PersistentState.IsContract(order) && PersistentState.IsContract(token)); Log(new OrderLog { Owner = Message.Sender, Token = token, Order = order, Block = Block.Number }); }
/// <summary> /// Constructor creating a simple sell order setting the token, price, and amount to sell. /// </summary> /// <param name="smartContractState">The execution state for the contract.</param> /// <param name="token">The address of the src token being sold.</param> /// <param name="price">The price for each src token in stratoshis.</param> /// <param name="amount">The amount of src token to sell in full.</param> public SimpleSellOrder(ISmartContractState smartContractState, Address token, ulong price, ulong amount) : base(smartContractState) { Assert(price > 0, "Price must be greater than 0"); Assert(amount > 0, "Amount must be greater than 0"); Assert(PersistentState.IsContract(token), "Not a valid token address"); Token = token; Price = price; Amount = amount; Seller = Message.Sender; IsActive = true; }
/// <summary> /// Add an updated order receipt to the contract. /// </summary> /// <param name="order">The address of the order contract.</param> /// <param name="token">The address of the src token used in the order.</param> /// <param name="orderTxHash">The transactionHash of the order transaction.</param> public void UpdateOrder(Address order, Address token, string orderTxHash) { Assert(PersistentState.IsContract(order) && PersistentState.IsContract(token) && !string.IsNullOrEmpty(orderTxHash)); Log(new UpdatedOrderLog { Token = token, Order = order, OrderTxHash = orderTxHash, Block = Block.Number }); }
/// <summary> /// Constructor creating a simple buy order setting the token, price, and amount to buy. /// </summary> /// <param name="smartContractState">The execution state for the contract.</param> /// <param name="token">The address of the src token being bought.</param> /// <param name="price">The price for each src token in stratoshis.</param> /// <param name="amount">The amount of src token to buy in full.</param> public SimpleBuyOrder( ISmartContractState smartContractState, Address token, ulong price, ulong amount) : base(smartContractState) { Assert(price > 0, "Price must be greater than 0"); Assert(amount > 0, "Amount must be greater than 0"); Assert(Message.Value >= amount * price, "Balance is not enough to cover cost"); Assert(PersistentState.IsContract(token), "Not a valid token address"); Token = token; Price = price; Amount = amount; Buyer = Message.Sender; IsActive = true; }