Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

Implement Native Contracts #15

Closed
4 of 12 tasks
nathanielhourt opened this issue Apr 27, 2017 · 3 comments
Closed
4 of 12 tasks

Implement Native Contracts #15

nathanielhourt opened this issue Apr 27, 2017 · 3 comments

Comments

@nathanielhourt
Copy link
Contributor

nathanielhourt commented Apr 27, 2017

Implement the Native Contracts in C++

  • System Contract
    • Create Account (name, owner authority, active authority)
    • Update Permission (account, permissionname, parent, authority)
    • Update Script (account, new script)
  • Eos Contract
    • Transfer (to, amount, memo)
    • TransferToLocked (to, amount)
  • Staked Balance Contract
    • Create Producer (owner name, signing key)
    • Update Producer (account, signingkey)
    • Producer Vote Update (account, producer, does_approve)
    • Register As Foundation (account)
    • Foundation Vote Update (account, foundation, does_approve)
    • StartUnlockEOS (account, amount)
    • ClaimUnlockedEOS (account, amount)
nathanielhourt added a commit that referenced this issue Apr 27, 2017
The contract handlers that need the database get a reference to it in
the context. I don't need to pass another db reference to them. Fix
this.
nathanielhourt added a commit that referenced this issue Apr 27, 2017
nathanielhourt added a commit that referenced this issue Apr 27, 2017
Add a test doing some basic sanity checks on account creation
nathanielhourt added a commit that referenced this issue May 3, 2017
Also add stream insertion operators for oid<T> and PublicKey, so they
can be used in BOOST_CHECK_EQUAL tests, and also sent over ostreams.
nathanielhourt added a commit that referenced this issue May 3, 2017
Dependencies for code generation were not set up correctly (in fact,
they were cyclic) which meant that code generation never took place
after initially setting up the repo. Now it should run automatically
whenever types.eos or the generator itself changes
nathanielhourt added a commit that referenced this issue May 3, 2017
This commit implements and tests the CreateProducer and UpdateProducer
sys contract methods.
nathanielhourt added a commit that referenced this issue Jun 3, 2017
Initial work on locking EOS, beginning unlock, and claiming unlocked
EOS.

TODO: Actually split the system contract, and define names for the
different parts so we can check that the required notifications are made.
Also, figure out how to write notify handlers for the native contracts,
to handle these critical balance updates in the staking/unstaking of
EOS. See the #warning TODO comments in the commit for context.
@nathanielhourt nathanielhourt changed the title Implement System Contract Implement Native Contracts Jun 5, 2017
@nathanielhourt
Copy link
Contributor Author

Rewrote issue to reflect that the "system contract" has now been broken up into three different contracts, each responsible for different things, collectively called "the native contracts"

nathanielhourt added a commit that referenced this issue Jun 5, 2017
Create all three native contracts at genesis, and split the various
messages among them appropriately.
nathanielhourt added a commit that referenced this issue Jun 5, 2017
Define notify handlers and require notifications be set correctly for
messages moving funds from liquid to staked and back, so balances are
tracked as they move between contracts
nathanielhourt added a commit that referenced this issue Jun 5, 2017
nathanielhourt added a commit that referenced this issue Jun 9, 2017
OK, so this turned out to be a **massive** refactor that I thought I'd
never finish, and no, I don't remember everything that changed here, but
I think it all worked out to be better than before, and almost all of it
was fairly necessary/the best of available options. Whew. I am SO glad
this is finally done.

High level goal: Continue refining the native contracts (ref #15),
specifically
walling off their state into their own contract DBs rather than globally
shared (read: stuff that race conditions are made of) general blockchain
state.

The first real change I made in this commit, which precipitated the
avalanche of changes that followed before the project became consistent
again, was to move the account balance out of account_object (globally
shared) to an object known only to the Eos Contract, thus eliminating
the possibility of race conditions/nondeterministic behavior.

The trouble is, balances are set at genesis. Genesis is processed by
chain_controller. chain_controller cannot know about balances, since
those are an abstraction defined on top of the Eos contract, which is an
abstraction defined on top of chain_controller. So all of genesis had to
be reimagined, and quite a lot of architectural changes had to be made
in order to create a logically consistent solution.

Changes (probably incomplete):
 - Fix up notifications within the native contract to support
precondition validation as well as application

 - Add notify handlers for CreateAccount to Eos and Staked Balance
contracts

 - Move account's liquid balance of EOS from account_object to
BalanceObject

 - Replace {producer,account}_object::id_type with AccountName most
everywhere except block_header, which still contains a
producer_object::id_type (potentially in violation of protocol
standards, but I want to confirm that before fixing it)
   - Reason: The name is not significantly slower, as it's fixed length so
no heap allocs, and it simplifies the code in quite a few places by
allowing us to look up objects directly rather than indirectly by
looking up an ID to get an intermediate object to get a handle for the
object we really wanted

 - Replace native_system_contract_plugin with native_contract library
   - Reason: The plugin was getting in the way. The native system
contract C++ implementation is simply too fundamental unless/until we
have a scripted implementation that works until the native
implementation gets installed

 - Completely reimagine genesis initialization, taking it largely out of
the hands of chain_controller and putting it in the hands of
native_contract
   - Reason: chain_controller understands relatively little about
genesis. It understands global_property_object and producer_object, but
not BalanceObject or StakedBalanceObject, etc... It also doesn't
understand the native_contract, and things like installing the native
contract, setting up accounts/balances, etc. all need to be handled by
something... native_contract is the most logical place to put it.

Sorry for the enormous commit... alas, this was the first time I got it
all building again and passing tests in days.
@bytemaster
Copy link
Contributor

I think we can merge all of these into a single "eos" contract that have different scope requirements:

For example, eos::transfer(from,to,amount) only requires scope of from and to where as eos::lock(from,to,amount) requires scope of from, to, and eos.

Under this model we could remove some of the 'notify' handlers and complexity associated with having some logic enforced in 'eos' and other logic enforced in 'system' and still more in 'staked'.

In other words, via scope requirements we can merge all of these into a single contract while still having parallelism.

@heifner
Copy link
Contributor

heifner commented May 15, 2018

This is all OBE.

@heifner heifner closed this as completed May 15, 2018
notchxor pushed a commit to EOSArgentina/eos that referenced this issue Jun 2, 2018
taokayan pushed a commit to taokayan/eos that referenced this issue Nov 28, 2018
Add additional sync msync after clearing dirty flag
terradacs pushed a commit to terradacs/beos-core that referenced this issue Feb 26, 2019
…s but it still needs to be supplemented

              [Ign] Added ifdefed code that enables unconditional output from eosio::print even during unit tests
terradacs pushed a commit to terradacs/beos-core that referenced this issue Feb 26, 2019
…s but it still needs to be supplemented

              [Ign] Added ifdefed code that enables unconditional output from eosio::print even during unit tests
terradacs pushed a commit to terradacs/beos-core that referenced this issue Feb 26, 2019
Issue EOSIO#15

See merge request blocktrades/beos-core!18
qianxiaofeng referenced this issue in eosiosg/eos Apr 5, 2019
* Remove unnecessary conversion of contractPath to empty path

* enhance cleos multisig review to show proposed transaction ID and optionally show requested approvals EOSIO#6272

* add cleos multisig invalidate command to call eosio.msig::invalidate

* state history plugin

* fix GMP & secp256 linker order for EosioTesterBuild.cmake.in

This is the same fix from pr EOSIO#6268 but for EosioTesterBuild.cmake.in too

* state history plugin

* bump version to 1.5.0-rc1

* Update README to reflect new package names

* Change from 1.5.0 to 1.5.0-rc1

* Fix requires in spec file to resolve dependency resolution issues with rpms

* Fix requires in spec file to resolve dependency resolution issues with rpms

* Remove unneeded req_trx vector

* Remove needless copy of signed_block. Only create pending_notify if needed.

* Remove unused blk_buffer

* separate out version suffix so that RPM packages produce an acceptable specfile

* address PR review feedback

* Make signed_block copy constructor private to avoid accidental copies.

* add release suffix to doxygen cmake module

* move signed_block instead of making copy

* Avoid copy constructor for push_block

* add release suffix to EOSIO_VERSION in tester cmake modules

* Add which comment

* Update tests for private signed_block copy constructor

* Avoid making copies of signed_block

* export the new bash vars

* Use rvalue for signed_block

* Update buildkite pipeline to use new queues

* Update buildkite pipeline to use new queues

* Special case msg_handler visit of signed_block to avoid hidden move from net_message

* pass along trigger_send

* Use move for rvalue

* Added Mongo History API link

* Added ZMQ Light History API

* Added Chintai ZMQ Watcher

* Added State History API

* Stop the unix_server from listening in shutdown stage as well.

* bump version to rc2

* update rpm names to match the real files

* Fix deb package names in README

* Fix package naming scheme for debs

* Update LICENSE path

* add a test that reduces the size of the producer set to validate that it does not create protocol level issues

* promote rc2 to release

* add missing release to deb packages

* remove x86_64 arch dep specification on AMI2 build script

I can't find any reason we need to explcitly request the x86_64 versions of packages for AMI2. Removing this apparently extraneous specification makes the build script "just work" on new ARM8 instances

* Use 64-bit float printing of 128-bit floats on non x86_64

For platforms other then x86_64, have the 128-bit float console print API (printqf()) convert to a 64-bit float before printing. While this loses precision it’s enough to get the unit tests for printqf() working on ARM8, which actually was the only unit_test unit test that failed on that platform.

* prebump to 1.6.0 and add develop suffix

* Do not broadcast block if peer lib is larger than block number

* Provide more efficient sha256_less

* Simply by removing unused large_msg_notify

* Remove unused node_transaction_state.packed_txn

* Store serialized transaction as shared_ptr to minimize copies

* Not possible for serialized_txn to be empty

* Remove find_plugin overhead

* Minimize shared_ptr copies

* Use sha256_less for all sets/maps with ids

* Add explicit constructors

* Add accept_transaction that takes a packed_transaction_ptr to avoid copy

* Pass id and packed_transaction by const& since never moved

* Remove copy assignment operator. Remove used std::move.

* Minimize packed_transaction copies. Store packed_transaction_ptr in transaction_metadata.

* Cache chain_plugin lookup

* Update tester for transaction_metadata packed_transaction_ptr

* Remove packed_tansaction to net_message copy

* Remove unused constructor

* Explicitly disable copy/move construction

* Remove inflight update of node_transaction_state as it is not needed

* Remove connections for unused signals that only logged

* Fix sync check for lib

* add a test that verifies proposing an empty producer schedule does not break things

* Allow disablement of net_plugin's listen socket

Disable net_plugin's listen socket when p2p-listen-endpoint is empty. This is useful for security and for an easier way of running multiple nodeos without it conflicting when you don't actually need to service incoming connections.

* More descriptive memo to distinguish from other transfers

* Revert "Fix sync check for lib"

This reverts commit 52a6f19.

* Update the bios-boot-tutorial.py script and readme.md:
1. args.contracts_dir doesn't end in a forward slash, therefor when it is concatenated with a subpath, the subpath has to start with a forward slash; this pattern is present in other similar variables as well
2. system contract has to be initialized before it can be used (e.g. creating staked acconts)
3. commands list updated to include the new addition stepInitSystemContract
4. readme.md updated as well to reflect the current status of the script and requirements

* README.md refactored
- correcting spelling errors, and caps
- better bash commands
- simpler command line to launch the script
- improved prerequisites
- include steps to follow after prerequisites

* Correct typos

* Correct link format

* Add eosio.cdt steps

* merge v1.0.2 (#12)

* boscore basic improvement (#2)

* kafka_plugin code

* Automatic installation librdkafka/cppkafka

* Feature/ci

* Feature/48 kafka plugin

* add CMakeModules/FindCppkafka.cmake

* Production of block in time zone sequence

* P2p self discovery

* P2p self discovery

* add notify_plugin

* add api "get_block_detail"

* add free res limit and blklst code

* update free res limit and blklst code

* update res code

* update unittest code

* revert submodule version

* code typo

* update  blklist code

* update sync name list db object error code

* update  code

* update  index code

* Feature/5 ramdom

* Revert "Merge branch 'feature/5-ramdom' into 'develop'"

This reverts merge request !8

* adjust for setup BOSCore

* change description

* adjust the kafka plugin dependency be more special

* use boscore repository to improve security

* change version tag

* finish for docker/builder

* pass to build docker and update readme

* add actionseed, global action sequence (#5)

* delete renamed old file

* BOSCore v1.0.1-1.4.3

* restructure the version schema

* fix __gmpn_set_str error when build bos.contract

* prepare for the v1.0.1

* finish BOS basic functions

* add README files

* update info

* Release/1.0.x (#11)

* boscore basic improvement (#2)

* kafka_plugin code

* Automatic installation librdkafka/cppkafka

* Feature/ci

* Feature/48 kafka plugin

* add CMakeModules/FindCppkafka.cmake

* Production of block in time zone sequence

* P2p self discovery

* P2p self discovery

* add notify_plugin

* add api "get_block_detail"

* add free res limit and blklst code

* update free res limit and blklst code

* update res code

* update unittest code

* revert submodule version

* code typo

* update  blklist code

* update sync name list db object error code

* update  code

* update  index code

* Feature/5 ramdom

* Revert "Merge branch 'feature/5-ramdom' into 'develop'"

This reverts merge request !8

* adjust for setup BOSCore

* change description

* adjust the kafka plugin dependency be more special

* use boscore repository to improve security

* change version tag

* finish for docker/builder

* pass to build docker and update readme

* add actionseed, global action sequence (#5)

* delete renamed old file

* BOSCore v1.0.1-1.4.3

* restructure the version schema

* fix __gmpn_set_str error when build bos.contract

* prepare for the v1.0.1

* add README files

* update info

* readme for kafka & add time for action (#5)

* 重启 节点,黑名单 失效,fixes #7 (#8)

* restart sync list db

* recovery system account bos to eosio

* recovery system account bos to eosio

* recovery system account bos to eosio

* Fix/#3 notify plugin (#10)

* Add debug info

* comment log

* rm log for notify_plugin

* prepare for v1.0.2

* Better name for eosio contracts directory

* dummy checkin to trigger another build

* Added scrit to support recursive search for files with FC_REFLECT or FC_REFLECT_ENUM to verify order and completeness.  Supports comments with @swap to support different order from definition and @ignore to ignore a specific field for reflection.  Still need to support FC_REFLECT_DERIVED. GH EOSIO#3127

* Added @ignore comment for field that is left out of reflect definition. GH EOSIO#3127

* Fixed pull request comments.

* bump version to 1.5.1

* Consolidated Security Fixes for 1.5.1

- Only allow authorizations that are satisfiable by `eosio.code` for self-addressed deferred transactions
- Only allow authorizations that are satisfiable by `eosio.code` OR on the parent action for self-addressed inline actions sent from direct actions
- Only allow authorizations that are satisfiable by `eosio.code` for self-addressed inline actions sent from recipient handlers

Co-authored-by: arhag <arhag@users.noreply.github.com>
Co-authored-by: Bart Wyatt <bart.wyatt@block.one>

* Peer review changes. Fix move.

* Spelling correction

* Spelling correction #2

* Remove unused max-implicit-request config

* Switch interface from packed_transaction_ptr to transaction_metadata_ptr

* Thread pool does not need to be optional

* Add transaction_metadata create_signing_keys_future method

* Start transaction signature earily in thread pool

* Refactor packed_transaction for better encapsulation

* Add transaction_metadata create_signing_keys_future method

* Start transaction signature earily in thread pool

* Update txn_test_gen_plugin to overlap transaction submit @taokayan

* release v1.0.3 to master (#15)

* boscore basic improvement (#2)

* kafka_plugin code

* Automatic installation librdkafka/cppkafka

* Feature/ci

* Feature/48 kafka plugin

* add CMakeModules/FindCppkafka.cmake

* Production of block in time zone sequence

* P2p self discovery

* P2p self discovery

* add notify_plugin

* add api "get_block_detail"

* add free res limit and blklst code

* update free res limit and blklst code

* update res code

* update unittest code

* revert submodule version

* code typo

* update  blklist code

* update sync name list db object error code

* update  code

* update  index code

* Feature/5 ramdom

* Revert "Merge branch 'feature/5-ramdom' into 'develop'"

This reverts merge request !8

* adjust for setup BOSCore

* change description

* adjust the kafka plugin dependency be more special

* use boscore repository to improve security

* change version tag

* finish for docker/builder

* pass to build docker and update readme

* add actionseed, global action sequence (#5)

* delete renamed old file

* BOSCore v1.0.1-1.4.3

* restructure the version schema

* fix __gmpn_set_str error when build bos.contract

* prepare for the v1.0.1

* finish BOS basic functions

* add README files

* update info

* Release/1.0.x (#11)

* boscore basic improvement (#2)

* kafka_plugin code

* Automatic installation librdkafka/cppkafka

* Feature/ci

* Feature/48 kafka plugin

* add CMakeModules/FindCppkafka.cmake

* Production of block in time zone sequence

* P2p self discovery

* P2p self discovery

* add notify_plugin

* add api "get_block_detail"

* add free res limit and blklst code

* update free res limit and blklst code

* update res code

* update unittest code

* revert submodule version

* code typo

* update  blklist code

* update sync name list db object error code

* update  code

* update  index code

* Feature/5 ramdom

* Revert "Merge branch 'feature/5-ramdom' into 'develop'"

This reverts merge request !8

* adjust for setup BOSCore

* change description

* adjust the kafka plugin dependency be more special

* use boscore repository to improve security

* change version tag

* finish for docker/builder

* pass to build docker and update readme

* add actionseed, global action sequence (#5)

* delete renamed old file

* BOSCore v1.0.1-1.4.3

* restructure the version schema

* fix __gmpn_set_str error when build bos.contract

* prepare for the v1.0.1

* add README files

* update info

* readme for kafka & add time for action (#5)

* 重启 节点,黑名单 失效,fixes #7 (#8)

* restart sync list db

* recovery system account bos to eosio

* recovery system account bos to eosio

* recovery system account bos to eosio

* Fix/#3 notify plugin (#10)

* Add debug info

* comment log

* rm log for notify_plugin

* prepare for v1.0.2

* merge v1.0.2 (#13)

* boscore basic improvement (#2)

* kafka_plugin code

* Automatic installation librdkafka/cppkafka

* Feature/ci

* Feature/48 kafka plugin

* add CMakeModules/FindCppkafka.cmake

* Production of block in time zone sequence

* P2p self discovery

* P2p self discovery

* add notify_plugin

* add api "get_block_detail"

* add free res limit and blklst code

* update free res limit and blklst code

* update res code

* update unittest code

* revert submodule version

* code typo

* update  blklist code

* update sync name list db object error code

* update  code

* update  index code

* Feature/5 ramdom

* Revert "Merge branch 'feature/5-ramdom' into 'develop'"

This reverts merge request !8

* adjust for setup BOSCore

* change description

* adjust the kafka plugin dependency be more special

* use boscore repository to improve security

* change version tag

* finish for docker/builder

* pass to build docker and update readme

* add actionseed, global action sequence (#5)

* delete renamed old file

* BOSCore v1.0.1-1.4.3

* restructure the version schema

* fix __gmpn_set_str error when build bos.contract

* prepare for the v1.0.1

* add README files

* update info

* prepare for v1.0.2

* patch the EOSIO 1.5.1 security bug fixes

* prepare for v1.0.3

* adjust the slogon

* Remove redundant signing_keys check

* state history plugin: permission_object bug EOSIO#6495

* Add deadline to key recovery

* Modify producer_plugin to have its own thead_pool instead of using chain-threads

* Move thread_pool join/stop to plugin shutdown so that they are joined before application quit

* Fix signature future deadline from starting too early

* Fix overflow of deadline and deadline check

* initial setup of billing CPU for signatures recovered earlier

* Return 400 on get_block with uonexist block number.
For issue 6374

* fix issue 5488

* Add action_trace.block_num index. Remove action_trace.trx_id index.

* Fix return codes of build scripts so that buildkite can fail properly

* Make recovery cache non-thread local and guard by mutex

* Calculate cpu usage of signature recovery

* Add signature-cpu-billable-pct option to chain_plugin

* Add missing include of mutex

* Assert signature-cpu-billable-pct is 0-100

* Fix capture of cpu_usage. move flat_set<public_key_type> into attribute

* clear recovered_pub_keys to preserve previous behaviour

* use `assign` instead of `resize`+`memcpy` to update `shared_blob` data

Co-Authored-By: Kayan <taokayan13@gmail.com>

* Add move into tuple creation

* bump version to 1.6.0-rc1

* add explicitly defaulted move semantics

* Store unpacked_trx as signed_transaction

* get_uncached_id no longer needed for thread safety

* get_raw_transaction no longer needed for thread safety

* Remove cached signed_transaction since now cached in packed_transaction

* Test should honor existing compression

* Cleanup of packed_transaction interface. Fixes for comments on PR EOSIO#6471

* Update to fc with unpack verify

* fc renamed reflector_verify to reflector_init

* bump version to 1.5.2

* Update to latest fc with updated verify_init

* Consolidated Security Fixes for 1.5.3

- Add missing implementation of dtor, copy ctor, etc for blob_types of fc::variant

Co-Authored-By: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com>

* bump version to 1.5.3

* bump version to 1.6.0-rc2

* Consolidated Security Fixes for 1.6.0-rc2

- Add missing implementation of dtor, copy ctor, etc for blob_types of fc::variant

Co-Authored-By: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com>

* update developer portal link

update the getting started link to the latest version

* prepare for 2.0.1

* adjust the location paramater

* apply 1.5.3 patch

* modify the location type

* fix cmake error

* Use https url for wabt submodule

A user agent that doesn't respect hsts could potentially be coerced into downloading malicious sources for wabt via a mitm attack. Prevent this by using a https upstream like the other submodules already do

* Add libtinfo5 dependency to deb package. Resolves EOSIO#6590

Also clean up unused variables and force control directory permissions
to comply with Debian specifications regardless of umask.

* fix aragument name error

* merge v2.0.1 version (EOSIO#36)

* Bump version to 1.6.0

* Consolidated Security Fixes for 1.6.0

- Force compilation support for c++ exceptions for the wabt submodule
- Allow limiting the time a node will spend processing scheduled transactions

Co-Authored-By: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com>
Co-Authored-By: Bart Wyatt <bart.wyatt@block.one>

* Consolidated Security Fixes for 1.6.1

- net_plugin security fixes
- Additional checktime calls to limit cpu usage
- Limit memory usage in producer_plugin

Co-Authored-By: Kevin Heifner <heifnerk@objectcomputing.com>
Co-Authored-By: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com>
Co-authored-by: Kayan <taokayan13@gmail.com>

* Bump version to 1.6.1

* Fix boost 1.67 brew install

The latest homebrew code balks at something in the old 1.67 package file. Fix the package file and store it locally in our repo for now.

We try and pin the boost version because boost upgrades invalidate nodeos data files.

* Set proper directory for baked in macOS LLVM_DIR

Some users (including myself) were seeing llvm@4 unpacked to 4.0.1_1 instead of 4.0.1. Stuff unpacked to the Cellar directory appears to be a kind of implementation detail — /usr/local/opt is the proper place to reference here.

* Add bk step to gather brew files for automatic update

* Update version to 1.6.2

* add noninteractive option for build scripts

* Limit assert message to 1024 chars

* Don't unlink what we install via brew

unlinking eveything we install makes no sense -- it means things like cmake aren't in the path any longer like the script expects. So don't do that any more. Unfortuately this old script requires that gettext be force linked. So implement that behavior explictly for now

* Make sure python-devel is installed for amazon linux builds

* fc version 1.6.x

* merge missed code

* merge missed code

* merge missed code

* prepare v2.0.2
taokayan pushed a commit to taokayan/eos that referenced this issue May 15, 2019
Added pass through of --std option for eosio-cpp
NorseGaud pushed a commit that referenced this issue Jul 30, 2019
# This is the 1st commit message:

various improvements

# This is the commit message #2:

new hash

# This is the commit message #3:

fix for script path

# This is the commit message #4:

fixes

# This is the commit message #5:

fixes

# This is the commit message #6:

fixes

# This is the commit message #7:

fixes

# This is the commit message #8:

fixes

# This is the commit message #9:

fixes

# This is the commit message #10:

fixes

# This is the commit message #11:

fixes

# This is the commit message #12:

fixes

# This is the commit message #13:

fixes

# This is the commit message #14:

fixes

# This is the commit message #15:

fixes

# This is the commit message #16:

fixes

# This is the commit message #17:

fixes

# This is the commit message #18:

fixes

# This is the commit message #19:

fixes

# This is the commit message #20:

fixes

# This is the commit message #21:

fixes

# This is the commit message #22:

fixes

# This is the commit message #23:

fixes

# This is the commit message #24:

fixes

# This is the commit message #25:

fixes

# This is the commit message #26:

testing

# This is the commit message #27:

testing

# This is the commit message #28:

testing

# This is the commit message #29:

testing

# This is the commit message #30:

testing

# This is the commit message #31:

testing

# This is the commit message #32:

testing

# This is the commit message #33:

testing

# This is the commit message #34:

testing

# This is the commit message #35:

testing

# This is the commit message #36:

testing

# This is the commit message #37:

testing

# This is the commit message #38:

testing

# This is the commit message #39:

testing

# This is the commit message #40:

testing

# This is the commit message #41:

testing

# This is the commit message #42:

testing

# This is the commit message #43:

testing

# This is the commit message #44:

fixes

# This is the commit message #45:

fixes

# This is the commit message #46:

fixes

# This is the commit message #47:

fixes

# This is the commit message #48:

fixes

# This is the commit message #49:

fixes

# This is the commit message #50:

fixes

# This is the commit message #51:

fixes

# This is the commit message #52:

fixes

# This is the commit message #53:

fixes

# This is the commit message #54:

fixes

# This is the commit message #55:

fixes

# This is the commit message #56:

fixes

# This is the commit message #57:

fixes

# This is the commit message #58:

fixes

# This is the commit message #59:

fixes

# This is the commit message #60:

fixes

# This is the commit message #61:

fixes

# This is the commit message #62:

fixes

# This is the commit message #63:

fixes

# This is the commit message #64:

fixes

# This is the commit message #65:

fixes

# This is the commit message #66:

fixes

# This is the commit message #67:

fixes

# This is the commit message #68:

fixes

# This is the commit message #69:

fixes

# This is the commit message #70:

fixes

# This is the commit message #71:

fixes

# This is the commit message #72:

fixes

# This is the commit message #73:

fixes

# This is the commit message #74:

fixes

# This is the commit message #75:

fixes

# This is the commit message #76:

fixes

# This is the commit message #77:

fixes

# This is the commit message #78:

fixes

# This is the commit message #79:

more testing

# This is the commit message #80:

testing

# This is the commit message #81:

fixes

# This is the commit message #82:

fixes

# This is the commit message #83:

fixes

# This is the commit message #84:

fixes

# This is the commit message #85:

fixes

# This is the commit message #86:

fixes

# This is the commit message #87:

fixes

# This is the commit message #88:

fixes

# This is the commit message #89:

fixes

# This is the commit message #90:

fixes

# This is the commit message #91:

fixes

# This is the commit message #92:

fixes

# This is the commit message #93:

propagate-environment for buildkite-agent

# This is the commit message #94:

propagate-environment for buildkite-agent

# This is the commit message #95:

propagate-environment for buildkite-agent

# This is the commit message #96:

propagate-environment for buildkite-agent

# This is the commit message #97:

fixes

# This is the commit message #98:

fixes

# This is the commit message #99:

fixes

# This is the commit message #100:

fixes

# This is the commit message #101:

fixes

# This is the commit message #102:

fixes

# This is the commit message #103:

fixes

# This is the commit message #104:

fixes

# This is the commit message #105:

fixes

# This is the commit message #106:

fixes

# This is the commit message #107:

fixes

# This is the commit message #108:

fixes

# This is the commit message #109:

fixes

# This is the commit message #110:

fixes

# This is the commit message #111:

fixes

# This is the commit message #112:

fixes

# This is the commit message #113:

fixes

# This is the commit message #114:

fixes

# This is the commit message #115:

fixes

# This is the commit message #116:

fixes

# This is the commit message #117:

fixes

# This is the commit message #118:

fixes

# This is the commit message #119:

fixes

# This is the commit message #120:

fixes

# This is the commit message #121:

fixes

# This is the commit message #122:

fixes

# This is the commit message #123:

fixes

# This is the commit message #124:

fixes

# This is the commit message #125:

fixes

# This is the commit message #126:

fixes

# This is the commit message #127:

fixes

# This is the commit message #128:

fixes

# This is the commit message #129:

fixes

# This is the commit message #130:

fixes

# This is the commit message #131:

fixes

# This is the commit message #132:

fixes

# This is the commit message #133:

fixes

# This is the commit message #134:

fixes

# This is the commit message #135:

fixes

# This is the commit message #136:

fixes

# This is the commit message #137:

fixes

# This is the commit message #138:

fixes

# This is the commit message #139:

fixes

# This is the commit message #140:

fixes

# This is the commit message #141:

fixes

# This is the commit message #142:

fixes

# This is the commit message #143:

fixes

# This is the commit message #144:

fixes

# This is the commit message #145:

fixes

# This is the commit message #146:

fixes

# This is the commit message #147:

fixes

# This is the commit message #148:

fixes

# This is the commit message #149:

fixes

# This is the commit message #150:

fixes

# This is the commit message #151:

fixes

# This is the commit message #152:

fixes

# This is the commit message #153:

testing

# This is the commit message #154:

fixes

# This is the commit message #155:

fixes

# This is the commit message #156:

fixes

# This is the commit message #157:

fixes

# This is the commit message #158:

fixes

# This is the commit message #159:

fixes

# This is the commit message #160:

fixes

# This is the commit message #161:

fixes

# This is the commit message #162:

fixes

# This is the commit message #163:

fixes

# This is the commit message #164:

fixes

# This is the commit message #165:

fixes

# This is the commit message #166:

fixes

# This is the commit message #167:

fixes

# This is the commit message #168:

fixes

# This is the commit message #169:

fixes

# This is the commit message #170:

fixes

# This is the commit message #171:

fixes

# This is the commit message #172:

fixes

# This is the commit message #173:

fixes

# This is the commit message #174:

fixes

# This is the commit message #175:

fixes

# This is the commit message #176:

fixes

# This is the commit message #177:

fixes

# This is the commit message #178:

fixes

# This is the commit message #179:

fixes

# This is the commit message #180:

fixes

# This is the commit message #181:

fixes

# This is the commit message #182:

fixes

# This is the commit message #183:

fixes

# This is the commit message #184:

fixes

# This is the commit message #185:

fixes

# This is the commit message #186:

fixes
heifner pushed a commit that referenced this issue Feb 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants