Skip to content

Solidity Typescript Parser library and an exhaustive set (+1,800) Solidity Test Contracts

Notifications You must be signed in to change notification settings

sambacha/solidity-ts-parser

Repository files navigation

Solidity Typescript Parser Library

Overview

Typescript + some scripts for analysis this is more of a bespoke tooling library than a general purpose nodejs library

Usage

I utilize this in an automated flow for concourse-ci, here is the sample pipeline.yml

# Solidity-CI Concourse Pipeline
# v0.0.1
# commit: 71811db19fcc80a80fbdca5ff5842f5a
---
groups:
- name: solidity-contracts
  jobs: [unit, rinkeby, mainnet]

- name: semver
  jobs: [deployed, versioning, commit]

- name: prs
  jobs: [pr-mythx]

resource_types:
- name: pull-request
  type: registry-image
  source:
    repository: jtarchie/pr

- name: github-status
  type: registry-image
  source:
    repository: resource/github-status

resources:
- name: eth-dapp-ci
  type: git
  source:
    uri: https://github.com/sambacha/eth-dapp-ci
    branch: master

- name: version
  type: semver
  source:
    driver: git
    initial_version: 0.0.0
    uri: git@github.com:sambacha/eth-dapp-ci
    branch: version
    file: version
    private_key: ((repo_private_key))

- name: release-notes
  type: git
  source:
    uri: https://github.com/sambacha/eth-dapp-ci
    branch: version

- name: ethereum-dapp-rel
  type: github-release
  source:
    owner: sambacha
    repository: eth-dapp-ci
    access_token: ((releases_access_token))

- name: ethereum-dapp-pr
  type: pull-request
  source:
    repo: sambacha/eth-dapp-ci
    access_token: ((prs_access_token))

- name: gh-status
  type: github-status
  source:
    repo: sambacha/eth-dapp-ci
    access_token: ((prs_access_token))

jobs:
- name: unit
  public: true
  plan:
  - get: eth-dapp-ci
    version: every
    trigger: true
  - put: gh-status
    params: {path: eth-dapp-ci, state: pending}
  - task: unit
    file: eth-dapp-ci/ci/test.yml
    params:
      COVERALLS_TOKEN: ((coveralls_token))
    on_success:
      put: gh-status
      params: {path: eth-dapp-ci, state: success}
    on_failure:
      put: gh-status
      params: {path: eth-dapp-ci, state: failure}

- name: rinkeby
  public: true
  serial_groups: [version]
  plan:
  - get: eth-dapp-ci
    passed: [unit]
    trigger: true
  - get: version
    params: {pre: rinkeby}
  - put: version
    params: {file: version/version}

- name: mainnet
  public: true
  serial_groups: [version]
  plan:
  - get: eth-dapp-ci
    passed: [rinkeby]
  - get: final-version
    resource: version
    passed: [rinkeby]
    params: {bump: final}
  - get: release-notes
  - task: build
    file: eth-dapp-ci/ci/build.yml
    input_mapping: {version: final-version}
  - task: grab-release-notes
    file: eth-dapp-ci/ci/grab-release-notes.yml
  - put: version
    params: {file: final-version/version}
  - put: ethereum-dapp-rel
    params:
      tag: version/version
      tag_prefix: v
      committish: eth-dapp-ci/.git/HEAD
      name: release-info/name
      body: release-info/notes.md
      globs: [assets/*]

- name: deployed
  public: true
  serial_groups: [version]
  plan:
  - get: version
    params: {bump: deployed, pre: rinkeby}
  - put: version
    params: {file: version/version}

- name: versioning
  public: true
  serial_groups: [version]
  plan:
  - get: version
    params: {bump: versioning, pre: rinkeby}
  - put: version
    params: {file: version/version}

- name: commit
  public: true
  serial_groups: [version]
  plan:
  - get: version
    passed: [mainnet]
    params: {bump: commit, pre: rinkeby}
    trigger: true
  - put: version
    params: {file: version/version}

- name: pr-mythx
  public: true
  plan:
  - get: ethereum-dapp-pr
    version: every
    trigger: true
  - task: unit
    file: ethereum-dapp-pr/ci/test.yml
    input_mapping: {eth-dapp-ci: ethereum-dapp-pr}

Examples

TODO