1. Nov 10, 2020
    • Michael Müller's avatar
    • Michael Müller's avatar
      Implement new commands `build` and `check` + introduce bundles (.contract files) (#97) · 144ea274
      Michael Müller authored
      
      
      * Fix URIs
      
      * Make `generate-metadata` output consistent with `build`
      
      * Add `cargo contract pack`
      
      * Return error instead of panicking
      
      * Use blake2_hash()
      
      * Replace match with if
      
      * Pass reference instead of ownership
      
      * Generate metadata.json and <contract>.pack
      
      * Output .wasm, .json, .pack
      
      * Return result object instead of tuple
      
      * Get it to run with '--features test-ci-only'
      
      * Rename .pack to .contract
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarAlexander Theißen <[email protected]>
      
      * Introduce '--skip-packing' and '--skip-metadata'
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarAlexander Theißen <[email protected]>
      
      * Short help message
      
      * Output deprecated error for 'generate-metadata'
      
      * Rename pack ➜ bundle
      
      * Add 'cargo contract check' command
      
      * Optimize resulting Wasm file, except on 'check'
      
      * Do not make unoptimized file easily mistake for optimized one
      
      * Get it to run with
      
      * Update readme
      
      * Make unoptimized wasm not show up in target folder
      
      * Update comments
      
      * Remove 'generate-metadata' variants
      
      * Move dispatch logic into metadata
      
      * Update src/main.rs
      
      Co-authored-by: default avatarAlexander Theißen <[email protected]>
      
      * Move logic into build.rs
      
      * Improve progress output
      
      * Make clippy happy
      
      * Fix progress output
      
      * Make it work with `--features test-ci-only`
      
      * Apply cargo fmt
      
      * Always use optimized Wasm for metadata hash
      
      * Always use optimized Wasm for metadata hash
      
      * Make it work with `--features test-ci-only`
      
      * Switch naming
      
      * Fix metadata/bundle output
      
      * Use enum `BuildArtifacts` instead of boolean flags
      
      * Improve misleading fn name
      
      * Make it work with `--features test-ci-only`
      
      * Make output more concise
      
      * Print optimization result at the end
      
      * Improve output
      
      * Replace 5-tuple return value with struct
      
      * Include hash only for bundle in metadata
      
      * Make it work with `--features test-ci-only`
      
      * Fix doc test
      
      * Remove comments
      
      * Introduce wrapper type CodeHash
      
      * Make it work with `--features test-ci-only`
      
      * Display important results bold
      
      * Include size diff for `code-only` as well
      
      * Remove comment
      
      * Shorten code
      
      * Clone metadata for correct UI output
      
      * Remove unnecessary return
      
      * Fix return type
      
      * Print metadata generation in correct step
      
      Co-authored-by: default avatarAlexander Theißen <[email protected]>
      144ea274
  2. Oct 29, 2020
  3. Sep 10, 2020
    • Andrew Jones's avatar
      Extract contract metadata to its own crate (#69) · f0e7cabb
      Andrew Jones authored
      * Extract contract metadata to its own crate
      
      * Add json serialization test
      
      * Add json test for excluding optional fields
      
      * Add doc tests and rename to contract-metadata
      
      * Fmt
      
      * Fix tests
      
      * Fmt
      
      * Builder API for contract metadata
      
      * Tests for builder pattern
      
      * Fmt
      
      * Make metadata version camel case
      
      * Builder optional fields
      
      * Check whether fields have not already been set
      
      * Check at least one author
      
      * I really should check it compiles before pushing
      
      * Oh yeah and cargo fmt fml
      
      * Yeah
      f0e7cabb
  4. Jul 23, 2020
    • Andrew Jones's avatar
      Generate extended contract metadata (#62) · d28a743b
      Andrew Jones authored
      * Generate main.rs with quote for passing extension metadata
      
      * Update template to scale-info 0.3
      
      * Rename ink_abi package to ink_metadata
      
      * Temporarily change ink dependency branch to aj-extra-metadata
      
      * Fix up metadata generation codegen
      
      * Promote metadata mod to directory
      
      * Move InkProjectExtension data structure over from ink! PR
      
      * Revert "Generate main.rs with quote for passing extension metadata"
      
      This reverts commit 0929ce8a
      
      * Make it compile
      
      * Flatten metadata struct
      
      * Fmt
      
      * Capture ink metadata from stdout
      
      * Update comment
      
      * Construct hardcoded metadata values
      
      * Remove contract metadata builder, it is redundant
      
      * Generate contract wasm hash
      
      * Refactor: extract CrateMetadata for use in both metadata and build
      
      * Fmt
      
      * Rust version
      
      * Contract version
      
      * Add remaining optional enhanced metadata
      
      * Move wasm build, make repo and license work
      
      * Just use a String for the license
      
      * Remove unused variants
      
      * Read docs and homepage urls directly from manifest
      
      * Read user defined metadata
      
      * Fmt
      
      * This PR no longer depends on an updated version of ink!
      
      * Fix test error, refactor commands to use common method name
      
      * Fmt
      
      * Refactor crate metadata collection
      
      * Remove ink_lang dependency from generated metadata crate
      
      * Fmt
      
      * Return metadata path from generation
      
      * Fmt
      
      * Test metadata wasm hash
      
      * Fmt
      
      * Read ink language version
      
      * Ensure tmp dir is cleaned up after build
      
      * Make cargo-contract tmp dir not hidden
      
      * Fmt
      
      * Test source compiler, contract name, contract version
      
      * Use ink branch temporarily
      
      * Test for authors and documentation
      
      * Test user provided metadata section
      
      * Drop automatically handles tempdir removal
      
      * Remove redundant unwind bound
      
      * Comment crate features
      
      * Revert template to point at ink master
      
      * Self
      
      * Update comment
      
      * Remove redundant comment
      d28a743b