Intelligente Verträge
Smart Contract (im Folgenden Vertrag genannt) ist eines der Grundelemente einer Anwendung. Die Implementierung eines Vertrages auf einer Seite durch den Benutzer ist in der Regel ein einmaliger Vorgang, dessen Zweck es ist, einen Datenbankeintrag zu aktualisieren oder zu erstellen. Alle Datenoperationen einer Anwendung bilden ein Vertragssystem, und diese Verträge interagieren miteinander durch Datenbank- oder Vertragsinhaltsfunktionen.
Vertragsstruktur
Verwenden Sie das Schlüsselwort vertrag
, um einen Vertrag zu deklarieren, gefolgt vom Vertragsnamen, und der Vertragsinhalt muss in geschweiften Klammern eingeschlossen sein. Ein Vertrag besteht im Wesentlichen aus drei Teilen:
Daten – data section, wobei die Variablen der Eingabedaten deklariert werden, einschließlich Variablenname und Variablentyp;
conditions – conditions section, wo die Korrektheit der Daten validiert wird;
action – action section, wobei die Datenmanipulationen definiert werden.
Datenbereich
Der Abschnitt data
beschreibt die Vertragsdateneingaben und die empfangenen Formularparameter.
Die Struktur jeder Zeile nach Sequenz:
- Variablenname - empfängt nur Variablen, keine Arrays;
- Variablendatentyp - der date type der Variablen;
- optional - ein optionaler Parameter, der das Formularelement nicht ausfüllen muss.
Abschnitt Bedingungen
Der Abschnitt condition
beschreibt die Validierung der empfangenen Daten.
Die folgenden Befehle werden für Fehlerwarnungen verwendet: schwerwiegende Fehler error
, warnende Fehler warning
, suggestive Fehler info
. Diese drei Befehle erzeugen einen Fehler, der die Ausführung von Verträgen beendet, und jeder Fehler druckt eine andere Art von Fehlerprotokollinformationen. Zum Beispiel:
Aktionsabschnitt
Der Abschnitt action
beschreibt den Hauptcode des Vertrags, der andere Daten abruft und die Ergebniswerte in Tabellen aufzeichnet. Zum Beispiel:
Variablen
Im Datenabschnitt deklarierte Variablen werden über das $
-Symbol gefolgt vom Variablennamen an andere Vertragsabschnitte übergeben. Das Symbol „$“ kann auch verwendet werden, um andere Variablen zu deklarieren, die sich nicht im Datenabschnitt befinden und als globale Variablen dieses Vertrags und aller Verträge gelten, in die dieser Vertrag verschachtelt ist.
In Verträgen können vordefinierte Variablen verwendet werden, die Transaktionsdaten enthalten, die den Vertrag aufgerufen haben:
$time
- Transaktionszeitstempel; $ecosystem_id
- Ökosystem-ID; $block
- ID des Blocks, der die Transaktion enthält; $key_id
- Adresse des Kontos, das die aktuelle Transaktion unterzeichnet hat; $type
- Vertrags-ID in der virtuellen Maschine; $block_key_id
- Kontoadresse des Knotens, der den Block erzeugt hat; $block_time
- Zeitstempel der Blockgenerierung; $original_contract
-Name des Vertrags, der die Transaktion ursprünglich verarbeitet hat. Dies bedeutet, dass der Vertrag während der Transaktionsvalidierung aufgerufen wird, wenn die Variable eine leere Zeichenfolge ist. Um zu prüfen, ob der Vertrag von einem anderen Vertrag oder direkt von der Transaktion aufgerufen wird, müssen Sie die Werte von $original_contract und $this_contract vergleichen. Das bedeutet, dass der Vertrag von der Transaktion aufgerufen wird, wenn sie gleich sind; $this_contract
- Name des aktuell ausgeführten Vertrages; $guest_key
- Adresse des Gastkontos; $stack
- Contract Array Stack mit dem Datentyp Array, der alle ausgeführten Contracts enthält. Das erste Element des Arrays stellt den Namen des Vertrags dar, der gerade ausgeführt wird, während das letzte Element den Namen des Vertrags darstellt, der die Transaktion ursprünglich verarbeitet hat; $node_position
- die Indexnummer des Verifizierungsknotenarrays, wo sich der Block befindet; $txhash
- Transaktions-Hash; $contract
- das aktuelle Vertragsstruktur-Array.
Auf vordefinierte Variablen kann nicht nur in Verträgen zugegriffen werden, sondern auch in Berechtigungsfeldern, die die Zugriffsberechtigungsbedingungen der Anwendungselemente definieren. Bei Verwendung in Berechtigungsfeldern sind vordefinierte Variablen für Blockinformationen immer gleich Null, wie z. B. $time
, $block
usw.
Eine vordefinierte Variable $result
wird mit dem Rückgabeergebnis des Vertrags zugewiesen.
Verschachtelte Verträge
Sie können Verträge in den Abschnitten „Bedingungen“ und „Aktionen“ des Vertrags verschachteln. Verschachtelte Verträge können direkt aufgerufen werden, und die Vertragsparameter werden in Klammern hinter dem Vertragsnamen angegeben, z. B. @1NameContract(Params)
. Sie können auch verschachtelte Verträge mit der Funktion CallContract aufrufen.
Datei-Upload
Um eine Datei über ein Formular im Format multipart/form-data
hochzuladen, muss der Datentyp des Vertrages file
sein.
Der Vertrag UploadBinary wird zum Hochladen und Speichern von Dateien verwendet. Mit der Logicor-Sprachfunktion Binary im Seiteneditor erhalten Sie den Link zum Herunterladen der Datei.
In der Vertragssprache kann als Feldtyp JSON angegeben werden. Sie können die Syntax: columnname->fieldname verwenden, um das Eingabefeld zu verarbeiten. Der erhaltene Wert wird in columnname.fieldname aufgezeichnet. Die obige Syntax kann in Columns,One,Where der Funktion DBFind verwendet werden.
Abfragen mit Datums- und Zeitoperationen
Sie können das Datum und die Uhrzeit nicht direkt mit den Vertragssprachenfunktionen abfragen und aktualisieren, aber Sie können PostgreSQL-Funktionen und -Features in der Where-Anweisung wie im folgenden Beispiel verwenden. Beispielsweise müssen Sie das Feld date_column mit der aktuellen Uhrzeit vergleichen. Wenn date_column ein Zeitstempeltyp ist, sollte der Ausdruck date_column <NOW()
sein; wenn date_column ein Unix-Typ ist, sollte der Ausdruck to_timestamp(date_column)> NOW()
lauten.
Die folgende Needle-Funktion wird verwendet, um Datum und Uhrzeit im SQL-Format zu verarbeiten:
Nadelvertragssprache
Die Vertragssprache umfasst eine Reihe von Funktionen, Operatoren und Strukturen, die Datenalgorithmusverarbeitung und Datenbankoperationen realisieren können.
Der Vertragsinhalt kann geändert werden, wenn die Vertragsbearbeitungsberechtigung nicht auf false
gesetzt ist. Die komplette Historie der Vertragsänderungen wird in der Blockchain gespeichert, die in Weaver verfügbar ist.
Datenoperationen in der Blockchain werden gemäß der neuesten Vertragsversion ausgeführt.
Grundelemente und Struktur
Datentypen und Variablen
Der Datentyp muss für jede Variable definiert werden. Normalerweise werden Datentypen automatisch konvertiert. Folgende Datentypen können verwendet werden:
bool
- Boolesch, true
oder false
;
bytes
- ein Byte-Format;
Int
- eine 64-Bit-Ganzzahl;
Array
- ein Array beliebigen Typs;
map
- ein Objektarray;
money
- eine große Ganzzahl;
float
- eine 64-Bit-Float-Zahl;
string
- eine Zeichenkette muss mit doppelten Anführungszeichen oder Escape-Format definiert werden: "Dies ist eine Zeichenkette" oder `Dies ist eine Zeichenkette`;
file
- ein Objekt-Array:
Name
- Dateinamen, string
Typ; MimeType
- mime-type Datei, string
Typ; Body
- Dateiinhalt, bytes
typ.
Alle Bezeichner, einschließlich der Namen von Variablen, Funktionen und Verträgen, sind zwischen Groß- und Kleinschreibung zu unterscheiden (MyFunc und myFunc sind unterschiedliche Namen).
Verwenden Sie das Schlüsselwort var, um eine Variable zu deklarieren, gefolgt vom Namen und Typ der Variablen. In geschweiften Klammern deklarierte Variablen müssen in demselben Klammerpaar verwendet werden.
Der Standardwert jeder deklarierten Variablen ist Null: Der Nullwert des bool-Typs ist falsch, der Nullwert aller numerischen Typen ist 0 und der Nullwert für Zeichenfolgen, leere Zeichenfolgen. Ein Beispiel für eine Variablendeklaration:
Array
Die Vertragssprache unterstützt zwei Array-Typen:
Array
- ein Array mit Index beginnend bei 0; map
- ein Array von Objekten.
Beim Allokieren und Abrufen von Array-Elementen muss der Index in eckige Klammern gesetzt werden. Mehrere Indizes werden im Array nicht unterstützt, und die Array-Elemente können nicht als myarr[i][j] behandelt werden.
Sie können auch Arrays vom Typ Array definieren, indem Sie Elemente in []
angeben. Für den Kartentyp arrays
verwenden Sie bitte {}
.
Sie können eine solche Initialisierung in Ausdrücken verwenden. Verwenden Sie es beispielsweise in Funktionsparametern.
Für ein Array von Objekten müssen Sie einen Schlüssel angeben. Schlüssel werden als Zeichenfolgen in doppelten Anführungszeichen (""
) angegeben. Wenn der Schlüsselname auf Buchstaben, Zahlen und Unterstriche beschränkt ist, können Sie die doppelten Anführungszeichen weglassen.
Ein Array kann Zeichenfolgen, Zahlen, Variablennamen beliebigen Typs und Variablennamen mit dem Symbol $
enthalten. Es unterstützt verschachtelte Arrays. Sie können verschiedene Maps oder Arrays als Werte angeben.
Ausdrücke können nicht als Array-Elemente verwendet werden. Verwenden Sie eine Variable, um das Ergebnis des Ausdrucks zu speichern, und geben Sie diese Variable als Array-Element an.
If- und While-Anweisungen
Die Vertragssprache unterstützt standardmäßige if-Bedingungsanweisungen und while-Schleifen, die in Verträgen und Funktionen verwendet werden können. Diese Anweisungen können ineinander verschachtelt werden.
Auf if und while muss eine bedingte Anweisung folgen. Wenn die bedingte Anweisung eine Zahl zurückgibt, wird sie als falsch angesehen, wenn ihr Wert 0 ist.
val == 0 ist gleich !val, val != 0 ist gleich val. Die if-Anweisung kann einen else-Codeblock haben, und else wird ausgeführt, wenn die if-Bedingungsanweisung falsch ist.
Die folgenden Vergleichsoperatoren können in bedingten Anweisungen verwendet werden: <, >, >=, <=, ==, !=, ||, &&
Der Codeblock wird ausgeführt, wenn die bedingte Anweisung der while-Schleife wahr ist. break bedeutet, die Schleife des Codeblocks zu beenden. Wenn Sie eine Schleife von Anfang an beginnen möchten, verwenden Sie continue.
Zusätzlich zu bedingten Anweisungen unterstützt Needle auch Standardarithmetikoperationen: +
, -
, *
, /
.
Variablen vom Typ String und Bytes können als bedingte Anweisung verwendet werden. Wenn die Länge des Typs größer als Null ist, ist die Bedingung wahr, andernfalls ist sie falsch.
Funktionen
Funktionen können einige Operationen mit den vom data section eines Vertrags empfangenen Daten ausführen: Daten aus der Datenbank lesen und schreiben, den Werttyp konvertieren und die Interaktion zwischen Verträgen herstellen.
Funktionsdeklaration
Verwenden Sie das Schlüsselwort func, um eine Funktion zu deklarieren, gefolgt vom Namen und der Liste der übergebenen Parameter und ihrer Typen. Alle Parameter sind in Klammern eingeschlossen und durch Kommas getrennt. Nach den Klammern muss der Datentyp des von der Funktion zurückgegebenen Werts deklariert werden. Der Funktionskörper muss in geschweifte Klammern eingeschlossen werden. Wenn die Funktion keine Parameter hat, können die geschweiften Klammern weggelassen werden. Um einen Wert von einer Funktion zurückzugeben, verwenden Sie das Schlüsselwort return
.
Funktion gibt keine Fehler zurück, da alle Fehlerprüfungen automatisch durchgeführt werden. Wenn in irgendeiner Funktion ein Fehler auftritt, beendet der Vertrag seinen Betrieb und zeigt die Fehlerbeschreibung in einem Fenster an.
Parameter variabler Länge
Funktionen können Parameter mit variabler Länge definieren, verwenden Sie das Symbol ...
als letzten Parametertyp der Funktion, um Parameter mit variabler Länge mit einem Datentyp von Array
anzugeben. Parameter mit variabler Länge umfassen alle Variablen ab dem Zeitpunkt, an dem der Parameter im Aufruf übergeben wird. Alle Arten von Variablen können übergeben werden, aber Sie müssen mit Konflikten durch Nichtübereinstimmung von Datentypen umgehen.
Optionale Parameter
Eine Funktion hat viele Parameter, aber wir brauchen nur einige davon, wenn wir sie aufrufen. In diesem Fall können Sie optionale Parameter folgendermaßen deklarieren: func myfunc(name string).Param1(param string).Param2(param2 int) {...}
, dann können Sie die angegebenen Parameter in beliebiger Reihenfolge aufrufen : myfunc("name").Param2(100)
.
Im Funktionskörper können Sie diese Variablen ganz normal behandeln. Wenn keine angegebenen optionalen Parameter aufgerufen werden, sind ihre Standardwerte Null. Sie können auch ... verwenden, um einen Parameter variabler Länge anzugeben: func DBFind(table string).Where(request string, params ...)
und dann aufrufen: DBFind("mytable").Where({ " id": $myid, "type": 2})
Needle Funktionsklassifizierung
Abrufen von Werten aus der Datenbank:
Daten in Tabellen aktualisieren:
Operationen mit Arrays:
Operationen mit Verträgen und Genehmigungen:
Operationen mit Adressen:
Operationen mit variablen Werten:
Rechenoperationen:
Operationen mit JSON:
Operationen mit Strings:
Operationen mit Bytes:
Operationen mit Datum und Uhrzeit im SQL-Format:
Operationen mit Plattformparametern:
Funktionen für Master-CLB-Knoten:
Needle Funktionen Referenz
AppParam
Gibt den Wert eines angegebenen Anwendungsparameters (aus der Anwendungsparametertabelle app_params) zurück.
Syntax
Beispiel
DBFind
Fragt Daten aus einer angegebenen Tabelle mit den angegebenen Parametern ab und gibt ein Array zurück, das aus einem Array von Objekten besteht.
.Row()
kann das erste Kartenelement in der Abfrage erhalten, .One(column string)
kann das erste Kartenelement einer angegebenen Spalte in der Abfrage erhalten.
Syntax
Tabellenname.
сolumns
Gibt eine Liste von Spalten zurück. Wenn nicht angegeben, werden alle Spalten zurückgegeben.
Der Wert ist ein Array oder ein durch Kommas getrennter String.
where
Query conditions.
Beispiel: .Where({name: "John"})
or .Where({"id": {"$gte": 4}})
.
Dieser Parameter muss ein Array von Objekten mit Suchkriterien enthalten. Das Array kann verschachtelte Elemente enthalten.
Folgende syntaktische Konstruktionen werden verwendet:
{"field1": "value1", "field2": "value2"}
Gleichwertig field1 = "value1" AND field2 = "value2"
.
{"field1": {"$eq":"value"}}
Gleichwertig field = "value"
.
{"field1": {"$neq": "value"}}
Gleichwertig field != "value"
.
{"field1: {"$in": [1,2,3]}
Gleichwertigfield IN (1,2,3)
.
{"field1": {"$nin": [1,2,3]}
Äquivalent zum Feld NOT IN (1,2,3).
{"field": {"$lt": 12}}
Gleichwertig field <12
.
{"field": {"$lte": 12}}
Gleichwertig field <= 12
.
{"field": {"$gt": 12}}
Gleichwertig field> 12
.
{"field": {"$gte": 12}}
Gleichwertig field >= 12
.
{"$and": [<expr1>, <expr2>, <expr3>]}
Gleichwertig expr1 AND expr2 AND expr3
.
{"$or": [<expr1>, <expr2>, <expr3>]}
Gleichwertig expr1 OR expr2 OR expr3
.
{field: {"$like": "value"}}
Gleichwertig field like'%value%'
(fuzzy search).
{field: {"$begin": "value"}}
Gleichwertig field like'value%'
(starts with value
).
{field: {"$end": "value"}}
Gleichwertig field like'%value'
(ends with value
).
{field: "$isnull"}
Äquivalent zum Feld ist null.
Achten Sie darauf, die Schlüssel von Objekt-Arrays nicht zu überschreiben. Wenn Sie beispielsweise mit id>2 und id<5
abfragen möchten, können Sie {id:{"$gt": 2}, id:{"$lt": 5}}
nicht verwenden, da die Das erste Element wird durch das zweite Element überschrieben. Sie sollten die folgende Abfragestruktur verwenden:
Beispiel
DBZeile
Fragt Daten aus einer angegebenen Tabelle mit den angegebenen Parametern ab. Gibt ein Array zurück, bestehend aus einem Array von Objekten map.
Syntax
table
Tabellenname.
columns
Gibt eine Liste von Spalten zurück. Wenn nicht angegeben, werden alle Spalten zurückgegeben.
Der Wert ist ein Array oder ein durch Kommas getrennter String.
where
Bedingungen abfragen.
Zum Beispiel: .Where({name: "John"})
or .Where({"id": {"$gte": 4}})
.
Weitere Einzelheiten finden Sie unter DBFind.
Id
Abfrage nach ID. Zum Beispiel, .WhereId(1)
.
Befehl
Wird verwendet, um die Ergebnismenge nach einer bestimmten Spalte oder standardmäßig nach ID zu sortieren.
Weitere Einzelheiten finden Sie unter DBFind.
Ökosystemid
Ökosystem-ID. Standardmäßig wird die Tabelle des aktuellen Ökosystems abgefragt.
Beispiel
DBSelectMetrics
Gibt die aggregierten Daten einer Metrik zurück.
Die Metriken werden jedes Mal aktualisiert, wenn 100 Blöcke generiert werden. Und die aggregierten Daten werden in einem 1-Tages-Zyklus gespeichert.
Syntax
metric
Metrikname
ecosystem_pages
Anzahl der Ökosystemseiten.
Rückgabewert: Schlüssel - Ökosystem-ID, Wert - Anzahl der Ökosystemseiten.
ecosystem_members
Anzahl der Ökosystemmitglieder.
Rückgabewert: Schlüssel - Ökosystem-ID, Wert - Anzahl der Ökosystemmitglieder.
ecosystem_tx
Anzahl der Ökosystemtransaktionen.
Rückgabewert: Schlüssel - Ökosystem-ID, Wert - Anzahl der Ökosystemtransaktionen.
timeInterval
Das Zeitintervall zum Aggregieren von Metrikdaten. Zum Beispiel: 1 day
, 30 days
.
aggregateFunc
Aggregatfunktion. Zum Beispiel, max
, min
, avg
.
Beispiel
EcosysParam
Gibt den Wert eines angegebenen Parameters in den Parametern der Ökosystemparametertabelle zurück.
Syntax
Beispiel
GetHistory
Gibt den Verlauf der Änderungen an Einträgen in einer angegebenen Tabelle zurück.
Syntax
table
Tabellenname.
Id
Eintrags-ID.
Rückgabewert
Gibt ein Array von Objekten vom Typ map zurück, die den Änderungsverlauf von Einträgen in Tabellen angeben.
Jedes Array enthält die Felder eines Datensatzes, bevor die nächste Änderung vorgenommen wird.
Das Array ist nach der Reihenfolge der letzten Änderungen sortiert.
Das ID-Feld im Array zeigt auf die ID der rollback_tx-Tabelle. block_id stellt die Block-ID dar, während block_time den Zeitstempel der Blockgenerierung darstellt.
Beispiel
GetHistoryRow
Gibt einen einzelnen Snapshot aus dem Änderungsverlauf eines angegebenen Eintrags in einer angegebenen Tabelle zurück.
Syntax
GetColumnType
Gibt den Datentyp eines angegebenen Felds in einer angegebenen Tabelle zurück.
Syntax
table
Tabellenname.
column
Field Name.
Return value
Folgende Typen können zurückgegeben werden: text, varchar, number, money, double, bytes, json, datetime, double
.
Beispiel
Daten abrufen vonXLSX
Gibt Daten aus XLSX-Tabellen zurück.
Syntax
binId
ID im XLSX-Format in der Binärtabelle binär.
line
Die Startzeilennummer, beginnend standardmäßig bei 0.
count
Die Anzahl der Zeilen, die zurückgegeben werden müssen.
sheet
Listennummer, beginnend standardmäßig bei 1.
Beispiel
GetRowsCountXLSX
Gibt die Anzahl der Zeilen in einer angegebenen XLSX-Datei zurück.
Syntax
Beispiel
LangRes
Gibt eine mehrsprachige Ressource mit Namensbeschriftung für die Sprache lang zurück, die als zweistelliger Code angegeben ist, zum Beispiel: en
, de
. Wenn für eine ausgewählte Sprache keine Sprache vorhanden ist, wird die Sprachressource des en
-Labels zurückgegeben.,
Syntax
Beispiel
Block bekommen
Gibt relevante Informationen zu einem angegebenen Block zurück.
Syntax
*blockID
Block-ID.
Return value
Gibt ein Array von Objekten zurück:
Beispiel
DBEinfügen
Fügt einer angegebenen Tabelle einen Eintrag hinzu und gibt die Eintrags-ID zurück.
Syntax
Beispiel
DB-Update
Ändert den Spaltenwert einer angegebenen Eintrags-ID in einer angegebenen Tabelle. Wenn die Eintrags-ID nicht in der Tabelle vorhanden ist, wird ein Fehler zurückgegeben.
Syntax
Beispiel
DB-UpdateExt
Ändert den Wert einer Spalte in einer angegebenen Tabelle, die der Abfragebedingung entspricht.
Syntax
Ein Array von Objekten, bei dem Schlüssel Feldnamen und Werte neue Werte nach Änderungen sind.
Beispiel
Spalte löschen
Löscht ein Feld in einer angegebenen Tabelle, das keine Datensätze enthält.
Syntax
tblname
Table name.
column
The field to be deleted.
Spalte löschen
Löscht eine angegebene Tabelle, die keine Datensätze enthält.
Syntax
Beispiel*
Anhängen
Fügt einen beliebigen Werttyp in das src-Array ein.
Syntax
Append(src array, val anyType) array
src
Das ursprüngliche Array.
val
Der einzufügende Wert.
Beispiel
Beitreten
Kombiniert Elemente des in-Arrays zu einer Zeichenfolge mit einem angegebenen Sep-Trennzeichen.
Syntax
In
Array-Name.
sep
Separator.
Beispiel
Teilt
Verwendet das Trennzeichen sep, um den in-String in Elemente aufzuteilen und sie in ein Array einzufügen.
Syntax
In
String.
sep
Separator.
Beispiel*
Len
Gibt die Anzahl der Elemente in einem angegebenen Array zurück.
Syntax
Beispiel*
Reihe
Der Listenparameter darf in diesem Fall nicht angegeben werden. Gibt das erste Objekt-Array in der Array-Liste zurück. Wenn die Liste leer ist, wird ein leeres Ergebnis zurückgegeben. Diese Funktion wird meistens in Verbindung mit der Funktion DBFind verwendet. Bei Verwendung dieser Funktion können Sie keine Parameter angeben.
Syntax
Das Array von Objekten, das von der DBFind-Funktion zurückgegeben wird.
Beispiel
Ein
Gibt den Feldwert des ersten Objekt-Arrays in der Array-Liste zurück. Wenn das Listenarray leer ist, wird nil zurückgegeben. Es wird meistens in Verbindung mit der Funktion DBFind verwendet. Bei Verwendung dieser Funktion können Sie keine Parameter angeben.
Syntax
The array of objects returned by the DBFind function.
Beispiel
Holen Sie sich Kartenschlüssel
Gibt das Schlüsselarray im Objektarray zurück.
Syntax
Beispiel
Sortierte Schlüssel
Gibt ein sortiertes Schlüsselarray im Objektarray zurück.
Syntax
Beispiel
Anrufvertrag
Ruft den Vertrag mit einem angegebenen Namen auf. Alle Parameter des Datenabschnitts im Vertrag müssen in einem Objektarray enthalten sein. Diese Funktion gibt den Wert zurück, der der Variable $result durch einen bestimmten Vertrag zugewiesen wurde.
Syntax
Beispiel
Vertragszugang
Überprüft, ob der Name des ausgeführten Vertrags mit einem der in den Parametern aufgeführten Namen übereinstimmt. Normalerweise wird es verwendet, um den Vertragszugriff auf Tabellen zu steuern. Beim Bearbeiten von Tabellenfeldern oder beim Einfügen und Hinzufügen neuer Spaltenfelder im Berechtigungsabschnitt der Tabelle geben Sie diese Funktion bitte in den Berechtigungsfeldern an.
Syntax
Beispiel
Vertragsbedingungen
Ruft den Abschnitt Bedingungen im Vertrag mit einem angegebenen Namen auf.
Für diese Art von Verträgen muss der Datenabschnitt leer sein. Wenn der Abschnitt Bedingungen ohne Fehler ausgeführt wird, gibt er wahr zurück. Kommt es bei der Ausführung zu einem Fehler, wird auch der Muttervertrag aufgrund des Fehlers gekündigt. Diese Funktion dient in der Regel dazu, den Zugriff des Vertrags auf Tabellen zu steuern und kann bei der Bearbeitung von Systemtabellen in den Berechtigungsfeldern aufgerufen werden.
Syntax
Beispiel
Eval Zustand
Ruft den Wert des condfield-Felds im Datensatz mit einem 'name'-Feld aus der tablename-Tabelle ab und prüft die Bedingungen des condfield-Feldwerts.
Syntax
tablename
Tabellenname.
name
Fragt den Wert mit dem Feld „Name“ ab.
condfield
Der Name des Felds, dessen Bedingungen überprüft werden müssen.
Beispiel
Vertrag per ID erhalten
Gibt seinen Vertragsnamen nach Vertrags-ID zurück. Wenn der Vertrag nicht gefunden wird, wird eine leere Zeichenfolge zurückgegeben.
Syntax
Beispiel
Vertrag nach Namen abrufen
Diese Funktion gibt ihre Vertrags-ID nach Vertragsname zurück. Wenn der Vertrag nicht gefunden wird, wird Null zurückgegeben.
Syntax
Beispiel
Rollenzugriff
Überprüft, ob die Rollen-ID des Vertragsaufrufers mit einer der im Parameter angegebenen IDs übereinstimmt.
Mit dieser Funktion können Sie den Vertragszugriff auf Tabellen und andere Daten steuern.
Syntax
Beispiel*
Transaktionsinfo
Fragt Transaktionen anhand des angegebenen Hash-Werts ab und gibt Informationen über den ausgeführten Vertrag und seine Parameter zurück.
Syntax
Return value
Diese Funktion gibt einen String im JSON-Format zurück:
contract
Vertragsname.
params
Beispiel
Wurf
Erzeugt einen Fehler vom Typ Ausnahme.
Syntax
ErrorId
Fehlerkennung.
ErrDescription
Fehlerbeschreibung.
Return value
Das Format dieser Art von Transaktionsergebnissen:
Beispiel
Bedingung validieren
Versucht, die vom Bedingungsparameter angegebenen Bedingungen zu kompilieren. Tritt während des Kompiliervorgangs ein Fehler auf, wird ein Fehler generiert und der aufgerufene Vertrag beendet. Diese Funktion dient dazu, die Korrektheit des bedingten Formats zu überprüfen.
Syntax
Condition
Das bedingte Format, das überprüft werden muss.
State
Ökosystem-ID. Wenn Sie die globale Bedingung überprüfen, geben Sie sie bitte als 0 an.
Beispiel
Adresse bis ID
Gibt die entsprechende Kontoadresse nach Wallet-Adresse zurück. Wenn eine ungültige Adresse angegeben wird, wird '0' zurückgegeben.
Syntax
Beispiel
ID zu Adresse
Gibt die entsprechende Brieftaschenadresse nach Kontoadresse zurück. Wenn eine ungültige Adresse angegeben wird, wird die ungültige Adresse invalid
zurückgegeben.
Syntax
Beispiel
Pub zu ID
Die Kontoadresse wird per öffentlichem Schlüssel im Hexadezimalformat zurückgegeben.
Syntax
Beispiel
DekodierenBase64
Gibt eine Zeichenfolge zurück, indem das base64-Format angegeben wird
Syntax
Input
String in base64 format.
Beispiel
KodierenBase64
Gibt eine Zeichenfolge im Base64-Format zurück, indem eine Zeichenfolge angegeben wird.
Syntax
Beispiel
Schweben
Konvertiert eine ganze Zahl oder einen String in eine Gleitkommazahl.
Syntax
Beispiel
HexToBytes
Konvertiert eine Zeichenfolge im Hexadezimalformat in Bytes vom Typ Bytes.
Syntax
Beispiel
Gibt den Zeichenfolgenwert von exp / 10 ^ Ziffer zurück.
Syntax
Beispiel
Zufällig
Syntax
Beispiel
Int
Konvertiert einen Wert im String-Format in eine ganze Zahl.
Syntax
Beispiel
Hash
Gibt den Hash eines angegebenen Byte-Arrays oder -Strings zurück, der von der Systemverschlüsselungsbibliothek crypto generiert wird.
Syntax
Beispiel
Sha256
Gibt den SHA256-Hash einer angegebenen Zeichenfolge zurück.
Syntax
Beispiel
Str
Wandelt eine Integer-Int- oder Float-Float-Zahl in einen String um.
Syntax
Beispiel
JSONEncode
Konvertiert eine Zahl, einen String oder ein Array in einen String im JSON-Format.
Syntax
src
Zu konvertierende Daten.
Beispiel
JSONEncodeIndent
Uses the specified indentation to convert a number, string, or array to a string in JSON format.
Syntax
Beispiel
JSONDecode
Konvertiert einen String im JSON-Format in eine Zahl, einen String oder ein Array.
Syntax
Beispiel
HasPrefix
Überprüft, ob die Zeichenfolge mit einer angegebenen Zeichenfolge beginnt.
Syntax
Return value
Wenn die Zeichenfolge mit einer angegebenen Zeichenfolge beginnt, wird true
zurückgegeben.
Beispiel
Enthält
Überprüft, ob die Zeichenfolge eine angegebene Teilzeichenfolge enthält.
Syntax
s
Ein Faden.
substr
Eine Teilzeichenfolge.
Return value
Wenn der String den Teilstring enthält, gibt er true
zurück.
Beispiel
Ersetzen
Ersetzt alt (die alte Zeichenfolge) durch neu (die neue Zeichenfolge) in der Zeichenfolge.
Syntax
Beispiel
Größe
Gibt die Anzahl der Bytes in einer angegebenen Zeichenfolge zurück.
Syntax
Beispiel
Sprintf
Diese Funktion erstellt eine Zeichenfolge unter Verwendung der angegebenen Vorlage und Parameter.
Verfügbare Platzhalter:
%d
(integer) %s
(string) %f
(float) %v
(any type)
Syntax
Beispiel
Substr
Gibt die Teilzeichenfolge zurück, die aus einer angegebenen Zeichenfolge erhalten wird, beginnend mit dem Offset offset (standardmäßig von 0 berechnet), und die maximale Länge ist auf length beschränkt.
Wenn der Offset oder die Länge kleiner als Null oder der Offset größer als die Länge ist, wird eine leere Zeichenfolge zurückgegeben.
Wenn die Summe aus Offset und Länge größer als die Stringgröße ist, wird der Teilstring ab dem Offset bis zum Ende des Strings zurückgegeben.
Syntax
val
Ein Faden.
Offset
Offset.
length
Länge des Teilstrings.
Beispiel
ToLower
Gibt eine angegebene Zeichenfolge in Kleinbuchstaben zurück.
Syntax
Beispiel
ToUpper
Gibt eine angegebene Zeichenfolge in Großbuchstaben zurück.
Syntax
Beispiel
TrimSpace
Löscht die führenden und nachfolgenden Leerzeichen, Tabulatoren und Zeilenumbrüche einer angegebenen Zeichenfolge.
Syntax
Beispiel
Boden
Gibt den größten ganzzahligen Wert zurück, der kleiner oder gleich einer angegebenen Zahl, Gleitkommazahl und Zeichenfolge ist.
Syntax
Beispiel
Protokoll
Gibt den natürlichen Logarithmus einer angegebenen Zahl, Gleitkommazahl und Zeichenfolge zurück.
Syntax
Beispiel
Protokoll10
Gibt den Basis-10-Logarithmus einer angegebenen Zahl, Gleitkommazahl und Zeichenfolge zurück.
Syntax
Beispiel
Puh
Gibt die angegebene Basis zur angegebenen Potenz (xy) zurück.
Syntax
x
Basisnummer.
y
Exponent.
Beispiel
Runde
Gibt den Wert einer angegebenen Zahl gerundet auf die nächste ganze Zahl zurück.
Syntax
Beispiel
Quadrat
Gibt die Quadratwurzel einer angegebenen Zahl zurück.
Beispiel
StringToBytes
Konvertiert einen String in Bytes.
Syntax
Beispiel
BytesToString
Konvertiert Bytes in Strings.
Syntax
Beispiel
SysParamString
Gibt den Wert eines angegebenen Plattformparameters zurück.
Syntax
Beispiel
SysParamInt
Gibt den Wert eines angegebenen Plattformparameters in Form einer Zahl zurück.
Syntax
Beispiel
DBUpdateSysParam
Aktualisiert den Wert und die Bedingungen eines Plattformparameters. Wenn Sie den Wert oder die Bedingungen nicht ändern müssen, geben Sie im entsprechenden Parameter bitte eine leere Zeichenfolge an.
Syntax
Beispiel
UpdateNotifications
Ruft die Benachrichtigungsliste eines angegebenen Schlüssels aus der Datenbank ab und sendet die erhaltene Benachrichtigung an Centrifugo.
Syntax
Beispiel
UpdateRolesNotifications
Ruft die Benachrichtigungsliste aller Kontoadressen einer angegebenen Rollen-ID in der Datenbank ab und sendet die erhaltene Benachrichtigung an Centrifugo.
Syntax
Beispiel
HTTPRequest
Sendet HTTP-Anforderungen an die angegebene Adresse.
Hinweis
Diese Funktion ist nur in CLB-Verträgen nutzbar.
Syntax
Url
Adresse, an die die Anfrage gesendet wird.
method
Request type (GET or POST).
heads
Ein Array von Anforderungsheadern, Objekten.
pars
Parameter anfordern.
Beispiel
HTTPPostJSON
Diese Funktion ähnelt der HTTPRequest-Funktion, sendet jedoch eine POST-Anforderung und die Anforderungsparameter sind Zeichenfolgen.
Hinweis
Diese Funktion ist nur in CLB-Verträgen nutzbar
Syntax
Url
Adresse, an die die Anfrage gesendet wird.
heads
Ein Array von Anforderungsheadern, Objekten.
pars
Fordern Sie Parameter als JSON-String an.
Beispiel
BlockTime
Gibt die Generierungszeit des Blocks im SQL-Format zurück.
Syntax
Beispiel
Terminzeit
Konvertiert den Zeitstempel unixtime in einen String im Format YYYY-MM-DD HH:MI:SS.
Syntax
Beispiel
UnixDateTime
Konvertiert einen String im Format JJJJ-MM-TT HH:MI:SS in einen Zeitstempel unixtime
Syntax
Beispiel
OBS erstellen
Erstellt einen untergeordneten CLB.
Diese Funktion kann nur im Master-CLB-Modus verwendet werden.
Syntax
Beispiel
GetOBSList
Gibt die Liste der untergeordneten CLBs zurück.
Diese Funktion kann nur im Master-CLB-Modus verwendet werden.
Syntax
Rückgabewert
Ein Array von Objekten, wobei der Schlüssel der CLB-Name und der Wert der Prozessstatus ist.
LaufOBS
Ein Prozess, der den CLB ausführt.
Diese Funktion kann nur im Master-CLB-Modus verwendet werden.
Syntax
StoppenOBS
Stoppt den Prozess eines angegebenen CLB.
Diese Funktion kann nur im Master-CLB-Modus verwendet werden.
Syntax
LöschenOBS
Löscht den Prozess eines angegebenen CLB.
Diese Funktion kann nur im Master-CLB-Modus verwendet werden.
Syntax
CLB-Name.
Es darf nur Buchstaben und Zahlen enthalten, das Leerzeichen darf nicht verwendet werden.
Systemverträge
Systemverträge werden standardmäßig erstellt, wenn die IBax-Blockchain-Plattform gestartet wird. Alle diese Verträge wurden im ersten Ökosystem erstellt. Aus diesem Grund müssen Sie ihre vollständigen Namen angeben, wenn Sie sie aus anderen Ökosystemen aufrufen, z. B. @1NewContract
.
Neues Ökosystem
Dieser Vertrag schafft ein neues Ökosystem. Um die ID des erstellten Ökosystems zu erhalten, müssen Sie das in txstatus zurückgegebene Ergebnisfeld zitieren.
Parameter:
- Zeichenfolge Name - Name des Ökosystems. Es kann später geändert werden.
Ökosystemname-bearbeiten
Ändert den Namen des Ökosystems in der Tabelle 1_ecosystems, das nur im ersten Ökosystem existiert.
Parameters:
- EcosystemID int - changes the name of the ecosystem ID;
- NewName string - new name of the ecosystem.
Neuer Vertrag
Erstellt einen neuen Vertrag im aktuellen Ökosystem.
Parameters:
- ApplicationId int - die Anwendung, zu der ein neuer Vertrag gehört;
- Value string - Vertrag Quellcode. Die obere Schicht darf nur einen Vertrag haben;
- Conditions string - die Vertragsbedingungen ändert;
- TokenEcosystem int "optional" - Ökosystem-ID. Es bestimmt, welches Token für Transaktionen verwendet wird, wenn der Vertrag aktiviert wird.
Vertrag bearbeiten
Bearbeitet den Vertrag im aktuellen Ökosystem.
Parameters:
- Id int - die Vertrags-ID hat sich geändert;
- Value Zeichenfolge "optional" - Quellcode des Vertrags;
- Conditions string "optional" - ändert die Vertragsbedingungen.
Geldbörse binden
Binden des Vertrags an die Wallet-Adresse im aktuellen Ökosystem. Nach Zustandekommen des Vertrages wird die Vertragsabwicklungsgebühr unter dieser Adresse bezahlt.
Parameters:
- Id int - die zu bindende Vertrags-ID.
- WalletId string "optional" - die an den Vertrag gebundene Wallet-Adresse.
Wallet entbinden
Lösen des Vertrags von der Wallet-Adresse im aktuellen Ökosystem. Nur vertragsgebundene Adressen können entbunden werden. Nach dem Entbinden des Vertrages zahlen Benutzer, die den Vertrag ausführen, die Ausführungsgebühr.
Parameters:
- Id int - die ID des zu bindenden Vertrags.
NeuerParameter
A new ecosystem parameter has been added to the current ecosystem.
Parameter:
- Zeichenfolge Name - Parametername;
- Zeichenfolge Value - Parameterwert;
- Zeichenfolge Conditions - Bedingungen zum Ändern des Parameters.
Parameter bearbeiten
Chängt bestehende Ökosystemparameter in das aktuelle Ökosystem ein.
Parameter:
- Zeichenfolge Name - Name des zu ändernden Parameters;
- Zeichenfolge Value - neuer Parameterwert;
- Zeichenfolge Conditions - neue Bedingungen zum Ändern des Parameters.
Fügt ein neues Menü im aktuellen Ökosystem hinzu.
Parameter:
- Zeichenfolge Name - Name des Menüs;
- Zeichenfolge Value - Quellcode des Menüs;
- Title Zeichenfolge "optional" - Menütitel;
- Zeichenfolge Conditions - Bedingungen zum Wechseln des Menüs.
Chängt das vorhandene Menü in das aktuelle Ökosystem ein.
Parameter:
- Id int - zu ändernde Menü-ID;
- Value string "optional" - Quellcode des neuen Menüs;
- Title string "optional" - Titel des neuen Menüs;
- Conditions Zeichenfolge "optional" - neue Bedingungen zum Ändern des Menüs.
Afügt den Quellcodeinhalt zu bestehenden Menüs im aktuellen Ökosystem hinzu
Parameter:
- Id int - Menü-ID;
- Zeichenfolge Value - hinzuzufügender Quellcode.
Neue Seite
Fügt eine neue Seite im aktuellen Ökosystem hinzu.
Parameter:
Zeichenfolge Name - Name der Seite;
Zeichenfolge Value - Quellcode der Seite;
Zeichenfolge Menü - Name des mit der Seite verknüpften Menüs;
Zeichenfolge Conditions - Bedingungen zum Wechseln der Seite;
ValidateCount int "optional" - Anzahl der Knoten, die für die Seitenvalidierung erforderlich sind. Wenn dieser Parameter nicht angegeben ist, wird der Wert des Ökosystemparameters min_page_validate_count verwendet. Der Wert dieses Parameters darf nicht kleiner als min_page_validate_count und größer als max_page_validate_count sein;
ValidateMode int "optional" - Modus der Seitengültigkeitsprüfung. Die Seite wird beim Laden überprüft, wenn der Wert dieses Parameters 0 ist; oder überprüft, wenn es geladen wird, oder verlassen Sie die Seite, wenn der Wert dieses Parameters 1 ist.
Seite bearbeiten
Ändert vorhandene Seiten im aktuellen Ökosystem.
Parameter:
- Id int - ID der zu ändernden Seite;
- Value string "optional" - Quellcode der neuen Seite;
- Zeichenfolge Menü "optional" - Name des neuen Menüs, das der Seite zugeordnet ist;
- Conditions string "optional" - neue Bedingungen zum Wechseln der Seite;
- ValidateCount int "optional" - Anzahl der Knoten, die für die Seitenvalidierung erforderlich sind. Wenn dieser Parameter nicht angegeben ist, wird der Wert des Ökosystemparameters min_page_validate_count verwendet. Der Wert dieses Parameters darf nicht kleiner als min_page_validate_count und größer als max_page_validate_count sein;
- ValidateMode int "optional" - Modus der Seitengültigkeitsprüfung. Die Seite wird beim Laden überprüft, wenn der Wert dieses Parameters 0 ist; oder überprüft, wenn es geladen wird, oder verlassen Sie die Seite, wenn der Wert dieses Parameters 1 ist.
Seite anhängen
Fügt den Quellinhalt zu vorhandenen Seiten im aktuellen Ökosystem hinzu.
Parameter:
- Id int - ID der zu ändernden Seite;
- Zeichenfolge Value - der hinzuzufügende Quellcode.
Neuer Block
Fügt dem aktuellen Ökosystem ein Seitenmodul hinzu.
Parameter:
- Zeichenfolge Name - Name des Moduls;
- String Value - Quellcode des Moduls;
- Zeichenfolge Conditions - Bedingungen zum Wechseln des Moduls.
Block bearbeiten
Changes existing page modules in the current ecosystem.
Parameter:
- Id int - zu ändernde Modul-ID;
- Value string - Quellcode des neuen Moduls;
- Bedingungszeichenfolge - neue Bedingungen zum Wechseln des Moduls.
NeueTabelle
Fügt dem aktuellen Ökosystem eine neue Tabelle hinzu.
Parameter:
- ApplicationId int - Anwendungs-ID der zugeordneten Tabelle;
- Zeichenfolge Name - Name der neuen Tabelle;
- Columns string - Feldarray im JSON-Format
[{"name":"...", "type":"...","index": "0", "conditions":". . ."},...]
, wobei
- name - Feldname, nur lateinische Zeichen;
- Typ - Datentyp
varchar,bytea,number,datetime,money,text,double,character
; - index - Nicht-Primärschlüsselfeld
0
, Primärschlüssel 1
; - Conditions - Bedingungen zum Ändern der Felddaten und die Zugriffsberechtigungen müssen im JSON-Format "
{"update":"ContractConditions(MainCondition)", "read":"ContractConditions(MainCondition)"}
angegeben werden ;
- Zeichenfolge Berechtigungen - Zugriffsberechtigungen im JSON-Format
{"insert": "...", "new_column": "...", "update": "...", "read": " .. ."}
.
- insert - Erlaubnis zum Einfügen von Einträgen;
- new_column - Berechtigung zum Hinzufügen einer neuen Spalte;
- update - Erlaubnis, Eingabedaten zu ändern;
- read - Erlaubnis, Eintragsdaten zu lesen.
Tabelle bearbeiten
Ändert die Zugriffsberechtigungen einer Tabelle im aktuellen Ökosystem.
Parameter:
- Zeichenfolge Name - Name der Tabelle;
- String InsertPerm - Berechtigung zum Einfügen von Einträgen in die Tabelle;
- Zeichenfolge UpdatePerm - Berechtigung zum Aktualisieren von Einträgen in der Tabelle;
- Zeichenfolge ReadPerm - Berechtigung zum Lesen von Einträgen in der Tabelle;
- String NewColumnPerm - Berechtigung zum Erstellen einer neuen Spalte;
NeueSpalte
Fügt der Tabelle des aktuellen Ökosystems ein neues Feld hinzu.
Parameter:
- TableName Zeichenfolge - Tabellenname;
- Zeichenfolge Name - Feldname in lateinischen Buchstaben;
- Type string - Datentyp
varchar,bytea,number,money,datetime,text,double,character
; - Zeichenfolge UpdatePerm - Berechtigung zum Ändern des Werts in der Spalte;
- Zeichenfolge ReadPerm - Berechtigung zum Lesen des Werts in der Spalte.
Spalte bearbeiten
Chängt die Berechtigung eines bestimmten Tabellenfelds im aktuellen Ökosystem.
Parameter:
- TableName Zeichenfolge - Tabellenname;
- String Name - zu ändernder Feldname in lateinischen Buchstaben;
- Zeichenfolge UpdatePerm - neue Berechtigung zum Ändern des Werts in der Spalte;
- Zeichenfolge ReadPerm - neue Berechtigung zum Lesen des Werts in der Spalte.
NeuSprache
Fügt dem aktuellen Ökosystem Sprachressourcen hinzu, und die Berechtigung dazu wird im Changing_language-Parameter der Ökosystemparameter festgelegt.
Parameter:
- Zeichenfolge Name - Name der Sprachressourcen in lateinischen Buchstaben;
- Trans String - String im JSON-Format, mit einem zweistelligen Langcode als Schlüssel und dem übersetzten String als Wert. Beispiel:
{"en": "englischer Text", "de": "chinesischer Text"}
.
BearbeitenSprache
Ändert die Sprachressourcen im aktuellen Ökosystem, und die Berechtigung dazu wird im Parameter „changing_language“ des Parameters „Ökosystem“ festgelegt.
Parameter:
- Id int - Sprachressourcen-ID.
- Trans - Zeichenfolge im JSON-Format mit einem zweistelligen Langcode als Schlüssel und der übersetzten Zeichenfolge als Wert. Beispiel:
{"en": "englischer Text", "de": "deutscher Text"}
.
Importieren
Importiert eine Anwendung in das aktuelle Ökosystem und importiert die aus dem ImportUpload-Vertrag geladenen Daten.
Parameter:
- Zeichenfolge Data - im Textformat importierte Daten, die aus einer vom Ökosystem exportierten Datei stammen.
ImportHochladen
Lädt eine externe Anwendungsdatei in die Tabelle buffer_data des aktuellen Ökosystems für den anschließenden Import.
Parameter:
- Datei InputFile - eine Datei, die in die Tabelle buffer_data des aktuellen Ökosystems geschrieben wird.
NewAppParam
Fügt dem aktuellen Ökosystem neue Anwendungsparameter hinzu.
Parameter:
- ApplicationId int - Anwendungs-ID;
- Zeichenfolge Name - Parametername;
- Zeichenfolge Value - Parameterwert;
- Zeichenfolge Conditions - Berechtigung zum Ändern des Parameters.
App-Param bearbeiten
Ändert bestehende Anwendungsparameter im aktuellen Ökosystem.
Parameter:
- Id int - Anwendungsparameter-ID;
- Value string "optional" - neuer Parameterwert;
- Conditions Zeichenfolge "optional" - neue Berechtigungen zum Ändern des Parameters.
Neuer verzögerter Vertrag
Fügt dem Scheduler-Daemon für verzögerte Verträge eine neue Aufgabe hinzu.
Der Scheduler für verzögerte Verträge führt Verträge aus, die von dem aktuell erzeugten Block benötigt werden.
Parameter:
- Zeichenfolge Contract - Vertragsname;
- EveryBlock int - der Kontrakt wird für jede solche Anzahl von Blöcken ausgeführt;
- Bedingungszeichenfolge - Erlaubnis, die Aufgabe zu ändern;
- BlockID int "optional" - die Block-ID, wo der Vertrag ausgeführt werden muss. Wenn nicht angegeben, wird sie automatisch berechnet, indem die "aktuelle Block-ID" + EveryBlock addiert wird;
- Limit int "optional" - die maximale Anzahl der Aufgabenausführungen. Wenn nicht angegeben, wird die Aufgabe unbegrenzt oft ausgeführt.
Verspäteten Vertrag bearbeiten
Ändert eine Aufgabe im Scheduler-Daemon für verzögerte Verträge.
Parameter:
- Id int - Task-ID;
- Zeichenfolge Contract - Vertragsname;
- EveryBlock int - der Kontrakt wird für jede solche Anzahl von Blöcken ausgeführt;
- Zeichenfolge Bedingungen - Erlaubnis, die Aufgabe zu ändern;
- BlockID int "optional" - die Block-ID, wo der Vertrag ausgeführt werden muss. Wenn nicht angegeben, wird sie automatisch berechnet, indem die "aktuelle Block-ID" + EveryBlock addiert wird;
- Limit int "optional" - die maximale Anzahl der Aufgabenausführungen. Wenn nicht angegeben, wird die Aufgabe unbegrenzt oft ausgeführt.
- Deleted int "optional" - Taskwechsel. Ein Wert von "1" deaktiviert die Aufgabe. Ein Wert von "0" aktiviert die Aufgabe.
Binär hochladen
Fügt eine statische Datei in der X_binaries-Tabelle hinzu oder überschreibt sie. Beim Aufruf eines Vertrags über die HTTP-API muss die Anfrage im Format „multipart/form-data“ vorliegen; Der DataMimeType-Parameter wird in Verbindung mit den Formulardaten verwendet.
Parameter:
- Zeichenfolge Name - Name der statischen Datei;
- Data Bytes - Inhalt der statischen Datei;
- DataMimeType string "optional" - eine statische Datei im Mime-Type-Format;
- ApplicationId int – die der X_binaries-Tabelle zugeordnete Anwendungs-ID.
Wenn der DataMimeType-Parameter nicht übergeben wird, wird standardmäßig das application/octet-stream
-Format verwendet.