UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

67 lines (65 loc) 4.24 kB
import { Types } from '../../constants'; import { BuiltinInterface } from '../BuiltinInterface'; import { BuiltinValueObject } from '../BuiltinValueObject'; import { SysCallInstanceMemberArray } from './SysCallInstanceMemberArray'; import { SysCallInstanceMemberPrimitive } from './SysCallInstanceMemberPrimitive'; import { ValueFor } from './ValueFor'; import { ValueInstanceOf } from './ValueInstanceOf'; class TransactionBaseInterface extends BuiltinInterface { } class TransactionBaseConstructorInterface extends BuiltinInterface { } class TransactionValue extends BuiltinValueObject { constructor() { super(...arguments); this.type = 'TransactionConstructor'; } } class TransactionConstructorInterface extends BuiltinInterface { } class MinerTransactionInterface extends BuiltinInterface { } class IssueTransactionInterface extends BuiltinInterface { } class ClaimTransactionInterface extends BuiltinInterface { } class EnrollmentTransactionInterface extends BuiltinInterface { } class RegisterTransactionInterface extends BuiltinInterface { } class ContractTransactionInterface extends BuiltinInterface { } class StateTransactionInterface extends BuiltinInterface { } class PublishTransactionInterface extends BuiltinInterface { } class InvocationTransactionInterface extends BuiltinInterface { } export const add = (builtins) => { builtins.addContractInterface('TransactionBase', new TransactionBaseInterface()); builtins.addContractValue('TransactionBase', new ValueInstanceOf('TransactionBaseConstructor', (sb) => sb.helpers.isTransaction)); builtins.addContractInterface('TransactionBaseConstructor', new TransactionBaseConstructorInterface()); builtins.addContractMember('TransactionBase', 'type', new SysCallInstanceMemberPrimitive('Neo.Transaction.GetType', Types.Transaction, Types.Number)); builtins.addContractMember('TransactionBase', 'hash', new SysCallInstanceMemberPrimitive('Neo.Transaction.GetHash', Types.Transaction, Types.Buffer)); builtins.addContractMember('TransactionBase', 'attributes', new SysCallInstanceMemberArray('Neo.Transaction.GetAttributes', Types.Transaction, Types.Attribute)); builtins.addContractMember('TransactionBase', 'outputs', new SysCallInstanceMemberArray('Neo.Transaction.GetOutputs', Types.Transaction, Types.Output)); builtins.addContractMember('TransactionBase', 'inputs', new SysCallInstanceMemberArray('Neo.Transaction.GetInputs', Types.Transaction, Types.Input)); builtins.addContractMember('TransactionBase', 'references', new SysCallInstanceMemberArray('Neo.Transaction.GetReferences', Types.Transaction, Types.Output)); builtins.addContractMember('TransactionBase', 'unspentOutputs', new SysCallInstanceMemberArray('Neo.Transaction.GetUnspentCoins', Types.Transaction, Types.Output)); builtins.addContractInterface('InvocationTransaction', new InvocationTransactionInterface()); builtins.addContractMember('InvocationTransaction', 'script', new SysCallInstanceMemberPrimitive('Neo.InvocationTransaction.GetScript', Types.Transaction, Types.Buffer)); builtins.addContractInterface('MinerTransaction', new MinerTransactionInterface()); builtins.addContractInterface('IssueTransaction', new IssueTransactionInterface()); builtins.addContractInterface('ClaimTransaction', new ClaimTransactionInterface()); builtins.addContractInterface('EnrollmentTransaction', new EnrollmentTransactionInterface()); builtins.addContractInterface('RegisterTransaction', new RegisterTransactionInterface()); builtins.addContractInterface('ContractTransaction', new ContractTransactionInterface()); builtins.addContractInterface('StateTransaction', new StateTransactionInterface()); builtins.addContractInterface('PublishTransaction', new PublishTransactionInterface()); builtins.addContractValue('Transaction', new TransactionValue()); builtins.addContractInterface('TransactionConstructor', new TransactionConstructorInterface()); builtins.addContractMember('TransactionConstructor', 'for', new ValueFor('Neo.Blockchain.GetTransaction', (sb, node, options) => { sb.emitHelper(node, options, sb.helpers.wrapTransaction); })); }; //# sourceMappingURL=transaction.js.map