You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You will also need to use a version of [`pallet-contracts`](https://github.com/paritytech/substrate/tree/master/frame/contracts)
39
+
later than [polkadot-v0.9.37](https://github.com/paritytech/substrate/tree/polkadot-v0.9.37)
40
+
in your node.
41
+
42
+
The [`v0.24.0`](https://github.com/paritytech/substrate-contracts-node/releases/tag/v0.24.0)
43
+
release of the [`substrate-contracts-node`](https://github.com/paritytech/substrate-contracts-node) is
44
+
compatible with the ink! `4.0.0` release.
45
+
46
+
For full compatibility requirements see the [migration guide](https://use.ink/faq/migrating-from-ink-3-to-4/#compatibility).
47
+
48
+
### Added
49
+
- Add `Mapping::contains(key)` and `Mapping::insert_return_size(key, val)` ‒ [#1224](https://github.com/paritytech/ink/pull/1224)
50
+
- Add [`payment-channel`](https://github.com/paritytech/ink/tree/master/examples/payment-channel) example ‒ [#1248](https://github.com/paritytech/ink/pull/1248) (thanks [@kanishkatn](https://github.com/kanishkatn)!)
51
+
- Add `version` field to ink! metadata ‒ [#1313](https://github.com/paritytech/ink/pull/1313)
52
+
- The `rand-extension` example has been adapted to an updated version of the `ChainExtension` API ‒ [#1356](https://github.com/paritytech/ink/pull/1356)
53
+
- Add `ink_env::pay_with_call!` helper macro for off-chain emulation of sending payments with contract message calls ‒ [#1379](https://github.com/paritytech/ink/pull/1379)
54
+
- Allow using `Result<Self, Error>` as a return type in constructors ‒ [#1446](https://github.com/paritytech/ink/pull/1446)
55
+
- Add `Mapping::take()` function allowing to get a value removing it from storage ‒ [#1461](https://github.com/paritytech/ink/pull/1461)
- Add support for language level errors (`LangError`) ‒ [#1450](https://github.com/paritytech/ink/pull/1450)
69
+
- Return `LangError`s from constructors ‒ [#1504](https://github.com/paritytech/ink/pull/1504)
70
+
- Update `scale-info` requirement to `2.3` ‒ [#1467](https://github.com/paritytech/ink/pull/1467)
71
+
- Merge `Mapping::insert(key, val)` and `Mapping::insert_return_size(key, val)` into one method - [#1463](https://github.com/paritytech/ink/pull/1463)
72
+
- FFI: no more `__unstable__` wasm import module ‒ [#1522](https://github.com/paritytech/ink/pull/1522)
73
+
- Clean up CallBuilder `return()` type ‒ [#1525](https://github.com/paritytech/ink/pull/1525)
74
+
- Fix trait message return type metadata ‒ [#1531](https://github.com/paritytech/ink/pull/1531)
- Stabilize `take_storage` ‒ [#1568](https://github.com/paritytech/ink/pull/1568)
77
+
- Chain Extension: Evaluation of method return type at compile time ‒ [#1569](https://github.com/paritytech/ink/pull/1569)
78
+
- Make more functions be const ‒ [#1574](https://github.com/paritytech/ink/pull/1574) (thanks [@yjhmelody](https://github.com/yjhmelody)!)
79
+
- Unify fallible and non fallible `instantiate` methods ‒ [#1591](https://github.com/paritytech/ink/pull/1591)
80
+
- Make `CallBuilder` and `CreateBuilder` error handling optional ‒ [#1602](https://github.com/paritytech/ink/pull/1602)
81
+
- Rename `CallBuilder::fire()` method to `invoke()` ‒ [#1604](https://github.com/paritytech/ink/pull/1604)
82
+
- chore: add minimum rust version to the ink crate ‒ [#1609](https://github.com/paritytech/ink/pull/1609) (thanks [@Kurtsley](https://github.com/Kurtsley)!)
83
+
- Rename `_checked` codegen call methods with `try_` ‒ [#1621](https://github.com/paritytech/ink/pull/1621)
84
+
- Bump Substrate and `subxt` dependencies ‒ [#1549](https://github.com/paritytech/ink/pull/1549)
9
85
- E2E: spawn a separate contracts node instance per test ‒ [#1642](https://github.com/paritytech/ink/pull/1642)
10
86
87
+
### Fixed
88
+
- Trim single whitespace prefix in the metadata `docs` field ‒ [#1385](https://github.com/paritytech/ink/pull/1385)
89
+
- Allow pay_with_call to take multiple arguments ‒ [#1401](https://github.com/paritytech/ink/pull/1401)
90
+
- Add Determinism enum from pallet-contracts ‒ [#1547](https://github.com/paritytech/ink/pull/1547)
91
+
- Added missed `WhereClosure` for the generics into `storage_item` ‒ [#1536](https://github.com/paritytech/ink/pull/1536) (thanks [@xgreenx](https://github.com/xgreenx)!)
92
+
93
+
### Removed
94
+
- Implement `ecdsa_to_eth_address()` and remove `eth_compatibility` crate ‒ [#1233](https://github.com/paritytech/ink/pull/1233)
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -135,8 +135,22 @@ It's totally fine to extract changes made in one pull request to multiple pull r
135
135
136
136
If you've already opened a pull request, avoid force-pushing any new changes.
137
137
138
+
If your pull request is a work-in-progress, create it as a Draft pull request.
139
+
138
140
For a nice list of hints visit this [link][GitHub Perfect Pull Reqest].
139
141
142
+
### Reviews
143
+
144
+
We have GitHub set up in a way that core developers will automatically
145
+
be assigned to review your pull request. If you feel there is somebody
146
+
missing you're always free to add more people for a review.
147
+
148
+
For small changes one approval is typically enough to merge code, for
149
+
significant or critical changes there should be at least two ✅.
150
+
151
+
If you made major changes to your pull request since the last approval,
152
+
ping them for another approval please.
153
+
140
154
## I don't want to contribute, I just have some questions
141
155
142
156
For technical questions about the ink! and all other Polkadot projects, please post your questions to our [Stack Exchange community][Stack-Exchange-Link]. You can also stay tuned by joining our [Element channel][Riot-Smart-Contracts-ink] to be among first ones who gets our announcements.
Copy file name to clipboardExpand all lines: README.md
+8-5Lines changed: 8 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,16 +71,19 @@ More relevant links:
71
71
72
72
## Play with It
73
73
74
+
The best way to start is to check out the [Getting Started](https://use.ink/getting-started/setup)
75
+
page in our documentation.
76
+
74
77
If you want to have a local setup you can use our [`substrate-contracts-node`](https://github.com/paritytech/substrate-contracts-node) for a quickstart.
75
78
It's a simple Substrate blockchain which includes the Substrate module for smart contract functionality ‒ the `contracts` pallet (see [How it Works](#how-it-works) for more).
76
79
77
-
We also have a live testnet on [Rococo](https://github.com/paritytech/cumulus/#rococo-). Rococo is a Substrate based
80
+
We also have a live testnet named "Contracts" on Rococo. Rococo is a Substrate based
78
81
parachain which supports ink! smart contracts. For further instructions on using this
79
82
testnet, follow the instructions in
80
83
[our documentation](https://use.ink/testnet).
81
84
82
-
For both types of chains the [Contracts UI](https://contracts-ui.substrate.io/)
83
-
can be used to instantiate your contract to a chain and interact with it.
85
+
The [Contracts UI](https://contracts-ui.substrate.io/) can be used to instantiate your
86
+
contract to a chain and interact with it.
84
87
85
88
## Usage
86
89
@@ -111,7 +114,7 @@ In order to build the contract just execute this command in the `flipper` folder
111
114
cargo contract build
112
115
```
113
116
114
-
As a result you'll get a `target/flipper.wasm` file, a `metadata.json` file and a `<contract-name>.contract` file in the `target` folder of your contract.
117
+
As a result you'll get a `target/flipper.wasm` file, a `flipper.json` file and a `<contract-name>.contract` file in the `target` folder of your contract.
115
118
The `.contract` file combines the Wasm and metadata into one file and needs to be used when instantiating the contract.
116
119
117
120
@@ -210,7 +213,7 @@ This module is called the `contracts` pallet,
210
213
* The `contracts` pallet requires smart contracts to be uploaded to the blockchain as a Wasm blob.
211
214
* ink! is a smart contract language which targets the API exposed by `contracts`.
212
215
Hence ink! contracts are compiled to Wasm.
213
-
* When executing `cargo contract build` an additional file `metadata.json` is created.
216
+
* When executing `cargo contract build` an additional file `<contract-name>.json` is created.
214
217
It contains information about e.g. what methods the contract provides for others to call.
0 commit comments