UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

69 lines (67 loc) 15.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("../../constants"); const BuiltinInterface_1 = require("../BuiltinInterface"); const BuiltinValueObject_1 = require("../BuiltinValueObject"); const SysCallInstanceMemberArray_1 = require("./SysCallInstanceMemberArray"); const SysCallInstanceMemberPrimitive_1 = require("./SysCallInstanceMemberPrimitive"); const ValueFor_1 = require("./ValueFor"); const ValueInstanceOf_1 = require("./ValueInstanceOf"); class TransactionBaseInterface extends BuiltinInterface_1.BuiltinInterface { } class TransactionBaseConstructorInterface extends BuiltinInterface_1.BuiltinInterface { } class TransactionValue extends BuiltinValueObject_1.BuiltinValueObject { constructor() { super(...arguments); this.type = 'TransactionConstructor'; } } class TransactionConstructorInterface extends BuiltinInterface_1.BuiltinInterface { } class MinerTransactionInterface extends BuiltinInterface_1.BuiltinInterface { } class IssueTransactionInterface extends BuiltinInterface_1.BuiltinInterface { } class ClaimTransactionInterface extends BuiltinInterface_1.BuiltinInterface { } class EnrollmentTransactionInterface extends BuiltinInterface_1.BuiltinInterface { } class RegisterTransactionInterface extends BuiltinInterface_1.BuiltinInterface { } class ContractTransactionInterface extends BuiltinInterface_1.BuiltinInterface { } class StateTransactionInterface extends BuiltinInterface_1.BuiltinInterface { } class PublishTransactionInterface extends BuiltinInterface_1.BuiltinInterface { } class InvocationTransactionInterface extends BuiltinInterface_1.BuiltinInterface { } exports.add = (builtins) => { builtins.addContractInterface('TransactionBase', new TransactionBaseInterface()); builtins.addContractValue('TransactionBase', new ValueInstanceOf_1.ValueInstanceOf('TransactionBaseConstructor', (sb) => sb.helpers.isTransaction)); builtins.addContractInterface('TransactionBaseConstructor', new TransactionBaseConstructorInterface()); builtins.addContractMember('TransactionBase', 'type', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Transaction.GetType', constants_1.Types.Transaction, constants_1.Types.Number)); builtins.addContractMember('TransactionBase', 'hash', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Transaction.GetHash', constants_1.Types.Transaction, constants_1.Types.Buffer)); builtins.addContractMember('TransactionBase', 'attributes', new SysCallInstanceMemberArray_1.SysCallInstanceMemberArray('Neo.Transaction.GetAttributes', constants_1.Types.Transaction, constants_1.Types.Attribute)); builtins.addContractMember('TransactionBase', 'outputs', new SysCallInstanceMemberArray_1.SysCallInstanceMemberArray('Neo.Transaction.GetOutputs', constants_1.Types.Transaction, constants_1.Types.Output)); builtins.addContractMember('TransactionBase', 'inputs', new SysCallInstanceMemberArray_1.SysCallInstanceMemberArray('Neo.Transaction.GetInputs', constants_1.Types.Transaction, constants_1.Types.Input)); builtins.addContractMember('TransactionBase', 'references', new SysCallInstanceMemberArray_1.SysCallInstanceMemberArray('Neo.Transaction.GetReferences', constants_1.Types.Transaction, constants_1.Types.Output)); builtins.addContractMember('TransactionBase', 'unspentOutputs', new SysCallInstanceMemberArray_1.SysCallInstanceMemberArray('Neo.Transaction.GetUnspentCoins', constants_1.Types.Transaction, constants_1.Types.Output)); builtins.addContractInterface('InvocationTransaction', new InvocationTransactionInterface()); builtins.addContractMember('InvocationTransaction', 'script', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.InvocationTransaction.GetScript', constants_1.Types.Transaction, constants_1.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_1.ValueFor('Neo.Blockchain.GetTransaction', (sb, node, options) => { sb.emitHelper(node, options, sb.helpers.wrapTransaction); })); }; //# sourceMappingURL=data:application/json;charset=utf8;base64,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QUM7SUFDakUsUUFBUSxDQUFDLG9CQUFvQixDQUFDLHdCQUF3QixFQUFFLElBQUksK0JBQStCLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDeEIsd0JBQXdCLEVBQ3hCLEtBQUssRUFDTCxJQUFJLG1CQUFRLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ2xFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNELENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9idWlsdGlucy9jb250cmFjdC90cmFuc2FjdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEJ1aWx0aW5JbnRlcmZhY2UgfSBmcm9tICcuLi9CdWlsdGluSW50ZXJmYWNlJztcbmltcG9ydCB7IEJ1aWx0aW5zIH0gZnJvbSAnLi4vQnVpbHRpbnMnO1xuaW1wb3J0IHsgQnVpbHRpblZhbHVlT2JqZWN0IH0gZnJvbSAnLi4vQnVpbHRpblZhbHVlT2JqZWN0JztcbmltcG9ydCB7IFN5c0NhbGxJbnN0YW5jZU1lbWJlckFycmF5IH0gZnJvbSAnLi9TeXNDYWxsSW5zdGFuY2VNZW1iZXJBcnJheSc7XG5pbXBvcnQgeyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUgfSBmcm9tICcuL1N5c0NhbGxJbnN0YW5jZU1lbWJlclByaW1pdGl2ZSc7XG5pbXBvcnQgeyBWYWx1ZUZvciB9IGZyb20gJy4vVmFsdWVGb3InO1xuaW1wb3J0IHsgVmFsdWVJbnN0YW5jZU9mIH0gZnJvbSAnLi9WYWx1ZUluc3RhbmNlT2YnO1xuXG5jbGFzcyBUcmFuc2FjdGlvbkJhc2VJbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluSW50ZXJmYWNlIHt9XG5jbGFzcyBUcmFuc2FjdGlvbkJhc2VDb25zdHJ1Y3RvckludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIFRyYW5zYWN0aW9uVmFsdWUgZXh0ZW5kcyBCdWlsdGluVmFsdWVPYmplY3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9ICdUcmFuc2FjdGlvbkNvbnN0cnVjdG9yJztcbn1cbmNsYXNzIFRyYW5zYWN0aW9uQ29uc3RydWN0b3JJbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluSW50ZXJmYWNlIHt9XG5jbGFzcyBNaW5lclRyYW5zYWN0aW9uSW50ZXJmYWNlIGV4dGVuZHMgQnVpbHRpbkludGVyZmFjZSB7fVxuY2xhc3MgSXNzdWVUcmFuc2FjdGlvbkludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIENsYWltVHJhbnNhY3Rpb25JbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluSW50ZXJmYWNlIHt9XG5jbGFzcyBFbnJvbGxtZW50VHJhbnNhY3Rpb25JbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluSW50ZXJmYWNlIHt9XG5jbGFzcyBSZWdpc3RlclRyYW5zYWN0aW9uSW50ZXJmYWNlIGV4dGVuZHMgQnVpbHRpbkludGVyZmFjZSB7fVxuY2xhc3MgQ29udHJhY3RUcmFuc2FjdGlvbkludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIFN0YXRlVHJhbnNhY3Rpb25JbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluSW50ZXJmYWNlIHt9XG5jbGFzcyBQdWJsaXNoVHJhbnNhY3Rpb25JbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluSW50ZXJmYWNlIHt9XG5jbGFzcyBJbnZvY2F0aW9uVHJhbnNhY3Rpb25JbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluSW50ZXJmYWNlIHt9XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBleHBvcnQtbmFtZVxuZXhwb3J0IGNvbnN0IGFkZCA9IChidWlsdGluczogQnVpbHRpbnMpOiB2b2lkID0+IHtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RJbnRlcmZhY2UoJ1RyYW5zYWN0aW9uQmFzZScsIG5ldyBUcmFuc2FjdGlvbkJhc2VJbnRlcmZhY2UoKSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0VmFsdWUoXG4gICAgJ1RyYW5zYWN0aW9uQmFzZScsXG4gICAgbmV3IFZhbHVlSW5zdGFuY2VPZignVHJhbnNhY3Rpb25CYXNlQ29uc3RydWN0b3InLCAoc2IpID0+IHNiLmhlbHBlcnMuaXNUcmFuc2FjdGlvbiksXG4gICk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0SW50ZXJmYWNlKCdUcmFuc2FjdGlvbkJhc2VDb25zdHJ1Y3RvcicsIG5ldyBUcmFuc2FjdGlvbkJhc2VDb25zdHJ1Y3RvckludGVyZmFjZSgpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoXG4gICAgJ1RyYW5zYWN0aW9uQmFzZScsXG4gICAgJ3R5cGUnLFxuICAgIG5ldyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUoJ05lby5UcmFuc2FjdGlvbi5HZXRUeXBlJywgVHlwZXMuVHJhbnNhY3Rpb24sIFR5cGVzLk51bWJlciksXG4gICk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKFxuICAgICdUcmFuc2FjdGlvbkJhc2UnLFxuICAgICdoYXNoJyxcbiAgICBuZXcgU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlKCdOZW8uVHJhbnNhY3Rpb24uR2V0SGFzaCcsIFR5cGVzLlRyYW5zYWN0aW9uLCBUeXBlcy5CdWZmZXIpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnVHJhbnNhY3Rpb25CYXNlJyxcbiAgICAnYXR0cmlidXRlcycsXG4gICAgbmV3IFN5c0NhbGxJbnN0YW5jZU1lbWJlckFycmF5KCdOZW8uVHJhbnNhY3Rpb24uR2V0QXR0cmlidXRlcycsIFR5cGVzLlRyYW5zYWN0aW9uLCBUeXBlcy5BdHRyaWJ1dGUpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnVHJhbnNhY3Rpb25CYXNlJyxcbiAgICAnb3V0cHV0cycsXG4gICAgbmV3IFN5c0NhbGxJbnN0YW5jZU1lbWJlckFycmF5KCdOZW8uVHJhbnNhY3Rpb24uR2V0T3V0cHV0cycsIFR5cGVzLlRyYW5zYWN0aW9uLCBUeXBlcy5PdXRwdXQpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnVHJhbnNhY3Rpb25CYXNlJyxcbiAgICAnaW5wdXRzJyxcbiAgICBuZXcgU3lzQ2FsbEluc3RhbmNlTWVtYmVyQXJyYXkoJ05lby5UcmFuc2FjdGlvbi5HZXRJbnB1dHMnLCBUeXBlcy5UcmFuc2FjdGlvbiwgVHlwZXMuSW5wdXQpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnVHJhbnNhY3Rpb25CYXNlJyxcbiAgICAncmVmZXJlbmNlcycsXG4gICAgbmV3IFN5c0NhbGxJbnN0YW5jZU1lbWJlckFycmF5KCdOZW8uVHJhbnNhY3Rpb24uR2V0UmVmZXJlbmNlcycsIFR5cGVzLlRyYW5zYWN0aW9uLCBUeXBlcy5PdXRwdXQpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnVHJhbnNhY3Rpb25CYXNlJyxcbiAgICAndW5zcGVudE91dHB1dHMnLFxuICAgIG5ldyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJBcnJheSgnTmVvLlRyYW5zYWN0aW9uLkdldFVuc3BlbnRDb2lucycsIFR5cGVzLlRyYW5zYWN0aW9uLCBUeXBlcy5PdXRwdXQpLFxuICApO1xuXG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0SW50ZXJmYWNlKCdJbnZvY2F0aW9uVHJhbnNhY3Rpb24nLCBuZXcgSW52b2NhdGlvblRyYW5zYWN0aW9uSW50ZXJmYWNlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnSW52b2NhdGlvblRyYW5zYWN0aW9uJyxcbiAgICAnc2NyaXB0JyxcbiAgICBuZXcgU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlKCdOZW8uSW52b2NhdGlvblRyYW5zYWN0aW9uLkdldFNjcmlwdCcsIFR5cGVzLlRyYW5zYWN0aW9uLCBUeXBlcy5CdWZmZXIpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdEludGVyZmFjZSgnTWluZXJUcmFuc2FjdGlvbicsIG5ldyBNaW5lclRyYW5zYWN0aW9uSW50ZXJmYWNlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdEludGVyZmFjZSgnSXNzdWVUcmFuc2FjdGlvbicsIG5ldyBJc3N1ZVRyYW5zYWN0aW9uSW50ZXJmYWNlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdEludGVyZmFjZSgnQ2xhaW1UcmFuc2FjdGlvbicsIG5ldyBDbGFpbVRyYW5zYWN0aW9uSW50ZXJmYWNlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdEludGVyZmFjZSgnRW5yb2xsbWVudFRyYW5zYWN0aW9uJywgbmV3IEVucm9sbG1lbnRUcmFuc2FjdGlvbkludGVyZmFjZSgpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RJbnRlcmZhY2UoJ1JlZ2lzdGVyVHJhbnNhY3Rpb24nLCBuZXcgUmVnaXN0ZXJUcmFuc2FjdGlvbkludGVyZmFjZSgpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RJbnRlcmZhY2UoJ0NvbnRyYWN0VHJhbnNhY3Rpb24nLCBuZXcgQ29udHJhY3RUcmFuc2FjdGlvbkludGVyZmFjZSgpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RJbnRlcmZhY2UoJ1N0YXRlVHJhbnNhY3Rpb24nLCBuZXcgU3RhdGVUcmFuc2FjdGlvbkludGVyZmFjZSgpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RJbnRlcmZhY2UoJ1B1Ymxpc2hUcmFuc2FjdGlvbicsIG5ldyBQdWJsaXNoVHJhbnNhY3Rpb25JbnRlcmZhY2UoKSk7XG5cbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RWYWx1ZSgnVHJhbnNhY3Rpb24nLCBuZXcgVHJhbnNhY3Rpb25WYWx1ZSgpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RJbnRlcmZhY2UoJ1RyYW5zYWN0aW9uQ29uc3RydWN0b3InLCBuZXcgVHJhbnNhY3Rpb25Db25zdHJ1Y3RvckludGVyZmFjZSgpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoXG4gICAgJ1RyYW5zYWN0aW9uQ29uc3RydWN0b3InLFxuICAgICdmb3InLFxuICAgIG5ldyBWYWx1ZUZvcignTmVvLkJsb2NrY2hhaW4uR2V0VHJhbnNhY3Rpb24nLCAoc2IsIG5vZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy53cmFwVHJhbnNhY3Rpb24pO1xuICAgIH0pLFxuICApO1xufTtcbiJdfQ==