Skip to content

Releases: firm-org/firm-protocol

v1.0

25 Feb 10:40
c8a01f3
Compare
Choose a tag to compare

v1 is the first production-ready release of Firm protocol 🥳

We conducted an audit with security firm Coinspect which you can find here. This release was mostly about addressing findings found it the audit.

What's Changed

🆕 Semaphore

Semaphore is a new optional module that allows to balance power between Safe signers and Voting.

  • #183: Semaphore module implementation
  • #184: Semaphore: integrate into Voting with SemaphoreAuth

🆕 Open source license

  • #158: Firm protocol is now licensed under the open source GPL-3.0 license (except for interfaces which are MIT)

Captable

  • #163: Vestings can no longer be revoked retroactively (but still allow future effective dates)
  • #169: Controllers can now only be set in accounts with a positive balance
  • #179: Added limits to avoid overflows on vote counts
  • #186: Removed ':' for token names

Misc

  • #182: Ensure all role admin roles exist in Roles
  • #186: Check actual balance delta for debit amount to handle fee on transfer tokens
  • #170: Use msg.sender from ERC2771Context across the protocol to allow Safe to use FirmRelayer for batching
  • #180: Increase nonce even if execution fails in FirmRelayer to prevent replays

Testing and development

  • #160, #187: Added Captable and Semaphore state and actions to seed state script
  • #159: Added tests for VestingController
  • #161: Reorganized flag helpers

Deployment

  • #188: v1 deployed to Ethereum mainnet, Polygon mainnet and Ethereum Goerli

Deployment addresses

Network FirmFactory UpgradeableModuleProxyFactory
Ethereum mainnet 0xFbeC16EECD4558297FB3deA9934A162Ef76b14bd 0x8EBa12de23C24D27469a748904CA6ba16aff6803
Polygon mainnet 0xaC722c66312fC581Bc57Ee4141871Fe0bf22fA08 0x6232B169db8e0f5A1FD1eEC3B802aa3FFC430bB4
Ethereum Goerli 0x1Ce5621D386B2801f5600F1dBe29522805b8AC11 0x159200D27301776D5412D52Ed2605b7c5371AcFe

Historic deployments: https://github.com/firm-org/firm-protocol/blob/master/deployments/factory.json

Full Changelog: v0.5.0...v1.0.0

v0.5

18 Jan 10:43
095958c
Compare
Choose a tag to compare
v0.5 Pre-release
Pre-release

v0.5 is the feature-complete pre-audit release version of Firm protocol v1

What's Changed

🆕 Voting

  • #129: 🆕 Voting module for Captable based on OpenZeppelin's Governor
  • #143, #151: Docs, polish and nitpicks

Firm Factory

  • #146: Rebuilt for production, now allows configuration options when creating firms (deprecated TestinprodFactory)
  • #156: New state seeder using new factory

General polish and docs

Meta

  • #154: Solidity version upgraded to v0.8.17
  • #153: Reorganized file structure
  • #148: Code formatting

Full Changelog: v0.4.0...v0.5.0

Testinprod: v0.4

09 Jan 10:35
Compare
Choose a tag to compare
Testinprod: v0.4 Pre-release
Pre-release

⛔️ Breaking release. Non-compatible storage layout and ABI (last intended one before v0.1)

What's Changed

🆕 Captable

  • #27: 🆕 Initial implementation + VestingController
  • #125: Events

Budget

  • #114: 🆕 Non-recurrent allowances (one-time budgets)
  • #102: Disallow inheriting amount in non-inherited recurrency allowances
  • #106: Optimize TimeShiftLib for most common cases
  • #123, #122: Optimizations, polish and nitpicks

Roles

  • #107, #109: 🆕 Safe owner dynamic role
  • #95: Role admins are always considered to have a role that they can admin
  • #109, #115: Optimizations, polish and nitpicks

General

  • #113: RolesAuth uses unstructured storage for roles state var (storage layout breaking ⚠️)
  • #105: Drop Zodiac support and use minimal Safe interface
  • #112: Dependency cleanup
  • #124: Overall increase in coverage (almost 100%)
  • #126: Formatting

Full Changelog: v0.3.0...v0.4.0

Testinprod: v0.3.0

28 Oct 09:55
08bf71e
Compare
Choose a tag to compare
Testinprod: v0.3.0 Pre-release
Pre-release

⛔️ Breaking release. Non-compatible storage layout and ABI.

What's changed

Budget

  • #76: uint40 dates (STORAGE LAYOUT/ABI ENCODING IMPACT)
  • #79: Debit payment

🆕 Budget modules

  • #75: Module base
  • #79: 🆕 Llamapay streams
    • #84 Optimize Llamapay forwarders

Factory

  • #80: Module registry in UpgradeableModuleProxy

Test environment

  • #77: Testnet faucet
  • #78: Better state seeding
  • #85: Forking tests

Full Changelog: v0.2.0...v0.3.0

Testinprod: v0.2.0

17 Oct 15:47
424373e
Compare
Choose a tag to compare
Testinprod: v0.2.0 Pre-release
Pre-release
  • #67: Relayer and metatxs
  • #61, #62: Event signature changes
  • #65: Bulk payments
  • #69: Forcing modules are upgradeable and constructor initialization
  • #63: Better versioning tracking

Testinprod: v0.1.0

06 Sep 09:48
8046a8f
Compare
Choose a tag to compare
Testinprod: v0.1.0 Pre-release
Pre-release
Testinprod: deploy to mainnet (#58)

* Testinprod: deploy to mainnet

* Deployments: track deployment block number