-
Notifications
You must be signed in to change notification settings - Fork 74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
with (scopeProxy) { foo() }
leaks scopeProxy if foo mentions this
.
#31
Comments
Due to https://github.com/google/caja/wiki/SES#this-binding-of-global-function-calls The scopeProxy was never supposed to leak. The problem is only caused by At an unmodified normal JS prompt, const obj = { foo() {'use strict'; return this;} };
with (obj) { foo() === obj; } // true
with (obj) { (1,foo)() === undefined; } // true This leakage of What this means under the evaluator-shim and the realms-shim, and therefore under SES: const e = new Evaluator();
function foo() { return this; }
e.evaluate('foo()', { foo }); // evaluates to the scopeProxy. Amusingly, once #18 is fixed by Agoric/evaluator-shim#3 the following works const e = new Evaluator();
function foo() { return this; }
e.evaluate('foo()', Object.freeze({ foo })); // undefined because If we cannot practically prevent the scopeProxy from leaking, we need to ensure that no vulnerability follows from leaking the scopeProxy. We could probably make the scopeProxy no more powerful than the safeGlobal plus the values of the endowments. That should be both possible and adequate. |
valueOf()
causes surprising scopeProxy trapwith (scopeProxy) { foo() }
leaks scopeProxy if foo mentions this
.
(grr...it's too easy to accidentally loose/close a github tab with an unsaved text entry field...trying again) This should be easy (at least at the ECMA-262 spec. level) to fix. Object Environment Records already have a specification mechanism that controls whether or not they make their backing object available for inclusion in resolved References. This is controlled by the setting their withValue to true. With statements normally do that for all with objects. What we need to do is not set withValue to true when the with object is a ScopeProxy. There are various ways this might be done in the spec, but I suggest doing all the work in with statement evaluation. Specifically we need to put a "not a ScopeProxy" guard on step 5 which currently unconditionally sets withValue. What does the guard look like? We really don't want to build knowledge of a specific ScopeProxy definition into this level of ECMA-262. Instead, I suggest we define a new well-known symbol named @@hiddenWith. The guard would be: HasOwnProperty(obj, @@hiddenWith) is false. The definition of ScopeProxy (its proxy handler) would ensure that they always report that they have a @@hiddenWith own property. That's it! Actually updating implementations to do this is probably not quite so simple, I assume that they don't have anything that exactly corresponds to an Object environment record with a withValue flag. But I suspect that adapting an implementation to conform to this updated specification would be a modest effort—and well worth it. |
I left out of my redo: this ECMA-262 specification change appears be backwards compatible with all existing ES code. |
This is a use of
|
Well, it is also a mention of |
Ah. I see. Thanks. |
We've noticed that some Web APIs such as This fidelity bug of the shim causes code that would otherwise work to break if these functions are endowed to a compartment's global. |
How has multi-backflip affected this? |
It still leaks, but only the Main problem left is for module lexical created by the shim, as detailed in #912. Should we rename the title of this issue? It might be good to keep tracking an engine level change allowing to disable the current with context behavior. |
Please do! |
Narrowed scope and posted for follow-up: #1954 |
## Description This PR changes the `HIDDEN_PREFIX` of `ModuleSource` from the non-conforming `$h\u200D_` zero-width joiner (`ZWJ`) notation to the conforming `$h\u034F_` combining grapheme joiner (`CGJ`) notation. A future PR may address further changes to a `$\u034F`-prefixed and `\u034F$`-suffixed format as was suggested by @michaelfig in discussions. ### Motivation This change is motivated after encountering a parsing error when using `rollup` which was traced back to the `$h\u200D_`-prefixed identifier in an `endoScript` bundle. More importantly, this is also motivated by the subsequent discovery that `rollup`'s implementation was actually conforming to the ECMAScript Specification when it was throwing this error. To elaborate, while runtimes today will accept the special identifier notation that is currently being introduced by the `ModuleSource` rewrites, the current `$h\u200D_` zero-width joiner (`ZWJ`) notation does not conform to the specifications defined in the [ECMAScript Lexical Grammar](https://tc39.es/ecma262/#sec-names-and-keywords). In essence, what the specifications entail is that the character sequence for [Identifier Names](https://tc39.es/ecma262/#sec-identifier-names) once unescaped would be expected to match the `/^[$_\p{ID_Start}][$_\p{ID_Continue}]*$/u` pattern, aside from the additional `#` character prefix required in the case of private fields. As such, one can test this in the console by evaluating the following: ```js Object.fromEntries([String.raw`$h\u200D_`, String.raw`$h\u034F_`].map(id => [id, /^[$_\p{ID_Start}][$_\p{ID_Continue}]*$/u.test(JSON.parse(`"${id}"`))])) ``` The above would yield the following object in a runtime where the unicode escape sequences are retained: ```js {$h\u200D_: false, $h\u034F_: true} ``` Digging closer in the Unicode Standard, it seems that the zero-width joiner (`ZWJ`) may indeed be used in a conforming notation per [Emoji Profile in Annex #31 of the Unicode Standard](http://www.unicode.org/reports/tr31/#Emoji_Profile), however this is not applicable for this purpose as it would require the use of emojis. At this point, my suggestion to instead use the combining grapheme joiner (`CGJ`) is best articulated with this excerpt that I am borrowing from its canonical Wikipedia entry: > However, in contrast to the zero-width joiner and similar characters, the `CGJ` does not affect whether the two letters are rendered separately or as a ligature or cursively joined—the default behavior for this is determined by the font.[^1] > > > [^1]: https://en.wikipedia.org/wiki/Combining_grapheme_joiner The Wikipedia article offers additional nuances about the differences, while the [Proposal for addition of COMBINING GRAPHEME JOINER](https://www.unicode.org/L2/L2000/00274-N2236-grapheme-joiner.htm) offers the necessary context about its intent. It is fair to note that there are many uses of the zero-width joiner (`ZWJ`) already in the wild, and in fact there are currently `test262` tests for its occurrence. That said, unless those uses are conforming to the ECMAScript Specification and the Unicode Standard, they will limit code portability and adoption by users who may end up confused by failures similar to the one encountered with `rollup`. Ultimately, with the reasonable recommendations to exercise caution when it comes to bundling `ses` and related sources that are best bundled with `bundleSource` instead, those sources may still need to be parsed with tools like `rollup` for different purposes that would be aligned with the expectations that they are being handled safely. ### Approach #### Substituting the invisible joiner character A search across the monorepo for `(?:\u200d|\\u200d)_` yields only 3 files of interest: - `packages/module-source/TESTS.md` - `packages/module-source/src/hidden.js` - `packages/module-source/test/module-source.test.js` While making changes to the 3 files of interest, a distinction is made between matching `\$h\\u200d_` and `\$h\u200d_` where the replacements are respectively `$h\\u034f_` and `$h\u034f_`, along with their `$c` equivalents. The search across the monorepo for `(?:\u200d|\\u200d)_` yields another 978 files that are not of interest found in: - `packages/test262-runner/test262/test/language/expressions/class/elements` - `packages/test262-runner/test262/test/language/statements/class/elements` All those files remain unchanged. #### Ensuring generic wording is used For testing and other purposes where descriptive phrases are used to refer to the use of `ZWJ`, `CGJ` or other characters for this same intent, the phrase *"invisible joiner character"* is suggested. ### Security Considerations **Does not apply to my knowledge** ### Scaling Considerations **Does not apply to my knowledge** ### Documentation Considerations **Does not apply to my knowledge** ### Testing Considerations **See**: #2436 (comment) ### Compatibility Considerations While the changes do not affect compatibility when the generated code is evaluated at runtime, there can potentially be compatibility concerns with tools that have been specifically designed to work with the current notation. ### Upgrade Considerations **Does not apply to my knowledge**
) closes: #XXXX refs: endojs/endo#31 (comment) ## Description Testing on Brave, the browser's global `fetch` function works when called with its `this` bound to either `undefined` or the browser global object, but does not work if its `this` is bound to something else. The code this PR fixes was misbehaving because it was calling `powers.fetch(...)`, i.e., happening to call it as a method with its `this` bound to the irrelevant `powers` object. This refactor just expresses the intention of this code, which is just to call the `fetch` function without passing it some object as its `this` binding. This seems to fix the problem. Not at all addressed by this PR: The fact that this problem happened from a programming patterns that seems correct and would have passed review indicates a deeper hazard. This PR does nothing to mitigate this deeper hazard. It only fixes this case where we fell into the hazard. ### Security Considerations none ### Scaling Considerations none ### Documentation Considerations none, except as needed to address the more general hazard. ### Testing Considerations Only tested `fetch` behavior on Brave. Based on that, proceeding under untested assumption that this refactor will work on all supported browsers. ### Upgrade Considerations none
## Description Created as per instructions in MAINTAINERS.md. Includes an additional step to update yarn.lock for multichain-testing, a3p-integration/proposals/s:stake-bld and a3p-integration/proposals/z:acceptance ## Changes - @agoric/cosmos@0.35.0-u18.5 - @agoric/ertp@0.16.3-u18.1 - @agoric/swingset-vat@0.33.0-u18.1 - @agoric/access-token@0.4.22-u18.1 - agoric@0.22.0-u18.6 - @agoric/async-flow@0.2.0-u18.1 - @agoric/base-zone@0.1.1-u18.1 - @agoric/benchmark@0.1.1-u18.6 - @agoric/boot@0.2.0-u18.6 - @agoric/builders@0.2.0-u18.6 - @agoric/cache@0.3.3-u18.1 - @agoric/casting@0.4.3-u18.5 - @agoric/client-utils@0.2.0-u18.0 - @agoric/cosmic-proto@0.5.0-u18.5 - @agoric/cosmic-swingset@0.42.0-u18.6 - @agoric/create-dapp@0.1.1-u18.6 - @agoric/deploy-script-support@0.10.4-u18.5 - @agoric/deployment@4.0.0-u18.1 - @agoric/eslint-config@0.4.1-u18.1 - @agoric/fast-usdc@0.2.0-u18.0 - @agoric/governance@0.10.4-u18.1 - @agoric/import-manager@0.3.12-u18.1 - @agoric/inter-protocol@0.17.0-u18.6 - @agoric/internal@0.4.0-u18.1 - @agoric/kmarshal@0.1.1-u18.1 - @agoric/network@0.2.0-u18.1 - @agoric/notifier@0.7.0-u18.1 - @agoric/orchestration@0.2.0-u18.5 - @agoric/pegasus@0.8.0-u18.5 - @agoric/smart-wallet@0.5.4-u18.5 - @agoric/solo@0.11.0-u18.6 - @agoric/spawner@0.6.9-u18.1 - @agoric/stat-logger@0.4.29-u18.1 - @agoric/store@0.9.3-u18.1 - @agoric/swing-store@0.10.0-u18.1 - @agoric/swingset-liveslots@0.10.3-u18.1 - @agoric/swingset-runner@0.22.3-u18.6 - @agoric/swingset-xsnap-supervisor@0.10.3-u18.1 - @agoric/telemetry@0.6.3-u18.4 - @agoric/time@0.3.3-u18.1 - @agoric/vat-data@0.5.3-u18.1 - @agoric/vats@0.16.0-u18.5 - @agoric/vm-config@0.1.1-u18.1 - @agoric/vow@0.2.0-u18.1 - @agoric/wallet@0.19.0-u18.1 - @agoric/xsnap-lockdown@0.14.1-u18.1 - @agoric/xsnap@0.14.3-u18.1 - @agoric/zoe@0.26.3-u18.1 - @agoric/zone@0.3.0-u18.1 - @agoric/wallet-backend@0.15.0-u18.5 ## Packages that have NEWS.md updates ```diff --- a/golang/cosmos/CHANGELOG.md +++ b/golang/cosmos/CHANGELOG.md @@ -3,6 +3,32 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.35.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmos@0.35.0-u18.4...@agoric/cosmos@0.35.0-u18.5) (2024-12-24) + + +### Features + +* **cosmos:** Support arbitrary core eval builder arguments ([#10767](#10767)) ([a944f4c](a944f4c)), closes [#10752](#10752) [#10752](#10752) +* **cosmos:** use `x/vbank` ConsensusVersion to upgrade monitoring ([0e367d3](0e367d3)) +* migrate upgrade of v7-board from upgrade 19 to upgrade 18 ([#10761](#10761)) ([837776e](837776e)), closes [#10760](#10760) +* upgrade v7-board and test it ([#10516](#10516)) ([d8a109e](d8a109e)), closes [#10394](#10394) +* **vbank:** new param `allowed_monitoring_accounts` ([5ac4c52](5ac4c52)) +* **vtransfer:** extract base address from parameterized address ([3d44b53](3d44b53)) +* **vtransfer:** port some `address-hooks.js` functions to Go ([159098b](159098b)) +* **x/swingset:** Add parameters for controlling vat cleanup budget ([02c8138](02c8138)), closes [#8928](#8928) +* **x/swingset:** Define default vat cleanup budget as { default: 5, kv: 50 } ([d86ee6d](d86ee6d)) +* **x/swingset:** Read beansPerUnit in each message handler and pass down to helpers ([55b9b49](55b9b49)) +* **x/swingset:** Require a non-empty vat cleanup budget to include `default` ([28c4d8b](28c4d8b)) + + +### Bug Fixes + +* **agd:** upgrade all orchestration vats to new liveslots ([59fa82c](59fa82c)) +* **cosmos:** return an error if version is unsupported ([d17e55b](d17e55b)) +* **x/swingset:** Let migration see incomplete Params structs ([315cdd5](315cdd5)) + + + ## [0.35.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmos@0.35.0-u18.3...@agoric/cosmos@0.35.0-u18.4) (2024-12-17) **Note:** Version bump only for package @agoric/cosmos --- a/packages/ERTP/CHANGELOG.md +++ b/packages/ERTP/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.16.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/ertp@0.16.3-u18.0...@agoric/ertp@0.16.3-u18.1) (2024-12-24) + + +### Bug Fixes + +* **ertp:** remove unneeded ertp type imports ([#10467](#10467)) ([e96ff82](e96ff82)), closes [#10456](#10456) +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) + + + ### [0.16.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/ertp@0.16.2...@agoric/ertp@0.16.3-u18.0) (2024-10-31) --- a/packages/SwingSet/CHANGELOG.md +++ b/packages/SwingSet/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.33.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/swingset-vat@0.33.0-u18.0...@agoric/swingset-vat@0.33.0-u18.1) (2024-12-24) + + +### Features + +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) + + +### Bug Fixes + +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) +* **SwingSet:** Introduce a termination-dedicated "VatUndertaker" analog to "VatKeeper" ([b786414](b786414)) + + + ## [0.33.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/swingset-vat@0.32.2...@agoric/swingset-vat@0.33.0-u18.0) (2024-10-31) --- a/packages/agoric-cli/CHANGELOG.md +++ b/packages/agoric-cli/CHANGELOG.md @@ -3,6 +3,37 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.22.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/agoric@0.22.0-u18.5...agoric@0.22.0-u18.6) (2024-12-24) + + +### ⚠ BREAKING CHANGES + +* remove agoricNames from VstorageKit + +### Features + +* **agoric-cli:** Add `agoric wallet send` gas limit options ([21a03f8](21a03f8)) +* **agoric-cli:** Block `agoric wallet send` on tx inclusion ([0389a21](0389a21)) +* client-utils package ([50af71f](50af71f)) +* export cli lib ([0d2d4aa](0d2d4aa)) +* fetchEnvNetworkConfig ([9bdba57](9bdba57)) +* makeWalletUtils wo/spawn ([bc10509](bc10509)) +* makeWalletUtils wo/spawn ([20083ae](20083ae)) +* VstorageKit ([71486d7](71486d7)) + + +### Bug Fixes + +* **agoric-cli:** use readPublished consistently in agops oracle ([e8f6de2](e8f6de2)) +* proposeParamChange options ([202ba1e](202ba1e)) + + +### Miscellaneous Chores + +* remove agoricNames from VstorageKit ([1c69d39](1c69d39)) + + + ## [0.22.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/agoric@0.22.0-u18.4...agoric@0.22.0-u18.5) (2024-12-17) **Note:** Version bump only for package agoric --- a/packages/boot/CHANGELOG.md +++ b/packages/boot/CHANGELOG.md @@ -3,6 +3,27 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/boot@0.2.0-u18.5...@agoric/boot@0.2.0-u18.6) (2024-12-24) + + +### Features + +* add `bech32Prefix?: string` to `CosmosChainInfo` ([cb9e1ee](cb9e1ee)) +* consistent publishTxnRecord (record) ([dbf3934](dbf3934)) +* **fast-usdc:** publish feeConfig to vstorage ([08b2e13](08b2e13)) +* **fast-usdc:** support risk assessment arg ([ff6737a](ff6737a)) +* **fast-usdc:** write chain policies to vstorage ([#10532](#10532)) ([9d6cff1](9d6cff1)) +* **fast-usdc:** write status updates to vstorage ([#10552](#10552)) ([419df4e](419df4e)) +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) +* publish OBSERVED with first evidence ([7e62d8f](7e62d8f)) +* readPublished in SwingsetTestKit ([0b383c9](0b383c9)) +* record instances that will be replaced so we can manage them ([c883c39](c883c39)) +* send-anywhere inits chainHub ([2fa2f75](2fa2f75)) +* **types:** TransactionRecord ([ccb9e28](ccb9e28)) +* vstorage status --> txns ([aebb4d7](aebb4d7)) + + + ## [0.2.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/boot@0.2.0-u18.4...@agoric/boot@0.2.0-u18.5) (2024-12-17) **Note:** Version bump only for package @agoric/boot --- a/packages/builders/CHANGELOG.md +++ b/packages/builders/CHANGELOG.md @@ -3,6 +3,41 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/builders@0.2.0-u18.5...@agoric/builders@0.2.0-u18.6) (2024-12-24) + + +### Features + +* `ForwardOpts` accepts `intermediateRecipient` ([eb975f1](eb975f1)) +* `ForwardOptsShape` ([50b1717](50b1717)) +* add `bech32Prefix?: string` to `CosmosChainInfo` ([cb9e1ee](cb9e1ee)) +* advancer with fees ([087f3a8](087f3a8)) +* assetInfo as array of entries ([51e7a9c](51e7a9c)) +* **builders:** --noNoble option for init-fast-usdc ([508a3e0](508a3e0)) +* **builders:** fast-usdc builder w/CLI config ([9f45a05](9f45a05)) +* **builders:** fast-usdc oracleSet option for MAINNET, ... ([3bf01a2](3bf01a2)) +* **builders:** fast-usdc policy update builder ([8ded3d8](8ded3d8)) +* chain-capabilities.js constants ([52ff70a](52ff70a)) +* export `DenomDetailShape` ([2dfddb3](2dfddb3)) +* export `OrchestrationPowersShape` ([34b61ea](34b61ea)) +* **fast-usdc:** write chain policies to vstorage ([#10532](#10532)) ([9d6cff1](9d6cff1)) +* fusdc assetInfo and chainInfo by netname ([afb4f34](afb4f34)) +* parameterize fusdc with chainInfo and assetInfo ([e5a8b64](e5a8b64)) +* record instances that will be replaced so we can manage them ([c883c39](c883c39)) +* register interchain bank assets proposal ([0e20707](0e20707)) +* registerChainsAndAssets ([e72782d](e72782d)) +* save the outgoing EC Charter instance and kit ([c2c9be3](c2c9be3)) +* send-anywhere inits chainHub ([2fa2f75](2fa2f75)) +* upgrade v7-board and test it ([#10516](#10516)) ([d8a109e](d8a109e)), closes [#10394](#10394) + + +### Bug Fixes + +* **agd:** upgrade all orchestration vats to new liveslots ([59fa82c](59fa82c)) +* **orchestration:** denomAmounts must be non-negative ([#10458](#10458)) ([40e0e4e](40e0e4e)) + + + ## [0.2.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/builders@0.2.0-u18.4...@agoric/builders@0.2.0-u18.5) (2024-12-17) **Note:** Version bump only for package @agoric/builders --- a/packages/casting/CHANGELOG.md +++ b/packages/casting/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.4.3-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/casting@0.4.3-u18.4...@agoric/casting@0.4.3-u18.5) (2024-12-24) + + +### Features + +* makeTendermintRpcClient ([129516a](129516a)) + + + ### [0.4.3-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/casting@0.4.3-u18.3...@agoric/casting@0.4.3-u18.4) (2024-12-17) **Note:** Version bump only for package @agoric/casting --- a/packages/client-utils/CHANGELOG.md +++ b/packages/client-utils/CHANGELOG.md @@ -1 +1,41 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## 0.2.0-u18.0 (2024-12-24) + + +### ⚠ BREAKING CHANGES + +* remove agoricNames from VstorageKit + +### Features + +* client-utils package ([50af71f](50af71f)) +* export makeStargateClient ([186d268](186d268)) +* fetchEnvNetworkConfig ([9bdba57](9bdba57)) +* getCurrentWalletRecord ([2740748](2740748)) +* makeWalletUtils wo/spawn ([20083ae](20083ae)) +* ocap makeStargateClient ([c8f7407](c8f7407)) +* one marshaller per WalletUtils ([b141ce6](b141ce6)) +* **sync-tools:** add method to wait until offer exited ([c9370f2](c9370f2)) +* **types:** TypedPublished ([88939bf](88939bf)) +* vstorage without instance binding ([2c4e2e3](2c4e2e3)) +* VstorageKit ([71486d7](71486d7)) +* VstorageKit readPublished ([e48c53c](e48c53c)) + + +### Bug Fixes + +* **client-utils:** only call `fetch` as a function, not a method ([#10671](#10671)) ([fbae24c](fbae24c)), closes [/github.com/endojs/endo/issues/31#issuecomment-1255624116](https://github.com/Agoric//github.com/endojs/endo/issues/31/issues/issuecomment-1255624116) +* **client-utils:** Retry at least every other interval ([fd9394b](fd9394b)) + + +### Miscellaneous Chores + +* remove agoricNames from VstorageKit ([1c69d39](1c69d39)) + + + # Change Log --- a/packages/cosmic-proto/CHANGELOG.md +++ b/packages/cosmic-proto/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.5.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmic-proto@0.5.0-u18.4...@agoric/cosmic-proto@0.5.0-u18.5) (2024-12-24) + + +### Features + +* **vats:** first cut of Address Hooks in JS ([dbad30b](dbad30b)) + + +### Bug Fixes + +* **address-hooks:** throw if the version is unsupported ([e3c2665](e3c2665)) +* **address-hooks:** use `harden` (or `freeze`) ([80fee60](80fee60)) + + + ## [0.5.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmic-proto@0.5.0-u18.3...@agoric/cosmic-proto@0.5.0-u18.4) (2024-12-17) **Note:** Version bump only for package @agoric/cosmic-proto --- a/packages/cosmic-swingset/CHANGELOG.md +++ b/packages/cosmic-swingset/CHANGELOG.md @@ -3,6 +3,25 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.42.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmic-swingset@0.42.0-u18.5...@agoric/cosmic-swingset@0.42.0-u18.6) (2024-12-24) + + +### Features + +* **cosmic-swingset:** Add support for testing blocks of a mock chain ([48b6405](48b6405)) +* **cosmic-swingset:** Allow `launch` to accept an already-open swingStore ([c65e5b1](c65e5b1)) +* **cosmic-swingset:** Update parseParams to read and validate vat cleanup budget data ([80bcca0](80bcca0)), closes [#8928](#8928) +* **cosmic-swingset:** Use vat cleanup budget values to allow slow cleanup ([508ea8e](508ea8e)), closes [#8928](#8928) +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) +* **x/swingset:** Define default vat cleanup budget as { default: 5, kv: 50 } ([d86ee6d](d86ee6d)) + + +### Bug Fixes + +* **cosmic-swingset:** expect chain --halt-height exit status > 1 ([c025cb7](c025cb7)) + + + ## [0.42.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmic-swingset@0.42.0-u18.4...@agoric/cosmic-swingset@0.42.0-u18.5) (2024-12-17) --- a/packages/fast-usdc/CHANGELOG.md +++ b/packages/fast-usdc/CHANGELOG.md @@ -3,6 +3,128 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## 0.2.0-u18.0 (2024-12-24) + + +### Features + +* error on conflicting evidence ([cd2a40c](cd2a40c)) +* **fast-usdc:** add FastLP/ufastlp to vbank ([ae1963e](ae1963e)) +* **fast-usdc:** detect transfer completion in cli ([2828444](2828444)) +* **fast-usdc:** support risk assessment arg ([ff6737a](ff6737a)) +* operator majority logic ([bc28201](bc28201)) +* record fee split in transaction ([8846972](8846972)) + +## 0.35.0-u18.4 (2024-12-17) + + +### ⚠ BREAKING CHANGES + +* remove agoricNames from VstorageKit + +### Features + +* consistent publishTxnRecord (record) ([dbf3934](dbf3934)) +* deleteCompletedTxs ([f0078ee](f0078ee)) +* **fast-usdc:** cli for lp deposit and withdraw ([4c0c372](4c0c372)) +* **fast-usdc:** limited operation before connecting to noble ([eb82ae3](eb82ae3)) +* include 'sender' in CctpTxEvidence ([f99e7b8](f99e7b8)) +* publish CctpTxEvidence ([2916c8f](2916c8f)) +* publish OBSERVED with first evidence ([7e62d8f](7e62d8f)) +* simplify seenTxs key ([fd05a7e](fd05a7e)) +* **types:** TransactionRecord ([ccb9e28](ccb9e28)) +* vstorage status --> txns ([aebb4d7](aebb4d7)) + + +### Bug Fixes + +* do not stringify logs ([d04c5ea](d04c5ea)) +* vstorage fastUsdc path ([1f47164](1f47164)) + + +### Miscellaneous Chores + +* remove agoricNames from VstorageKit ([1c69d39](1c69d39)) + +## 0.35.0-u18.3 (2024-12-09) + + +### ⚠ BREAKING CHANGES + +* `getAsset` and `getDenomInfo` require `srcChainName` param + +### Features + +* `getAsset` and `getDenomInfo` require `srcChainName` param ([fc802ad](fc802ad)) +* assetInfo as array of entries ([51e7a9c](51e7a9c)) +* **fast-usdc:** core-eval to update feed policy ([db283e1](db283e1)) +* **fast-usdc:** operator attest cli command ([448aa3a](448aa3a)) +* **fast-usdc:** publish feeConfig to vstorage ([08b2e13](08b2e13)) +* **fast-usdc:** settler disburses or forwards funds ([17b0423](17b0423)) +* **fast-usdc:** write chain policies to vstorage ([#10532](#10532)) ([9d6cff1](9d6cff1)) +* **fast-usdc:** write status updates to vstorage ([#10552](#10552)) ([419df4e](419df4e)) +* operator accept cmd ([ae2cf1e](ae2cf1e)) +* parameterize fusdc with chainInfo and assetInfo ([e5a8b64](e5a8b64)) +* scaffold operator commands ([36375fd](36375fd)) + + +### Bug Fixes + +* `brandKey` not part of `DenomDetail` ([9a65478](9a65478)) + +## 0.35.0-u18.2 (2024-11-21) + + +### Features + +* `Advancer` uses `borrower` facet ([35eb7ad](35eb7ad)) +* integrate `Advancer` with contract ([c5d67af](c5d67af)) +* liquidity pool borrower and repayer facets ([3117eef](3117eef)) + +## 0.35.0-u18.1 (2024-11-19) + + +### Features + +* `Advancer` exo behaviors ([4cd2f3f](4cd2f3f)), closes [#10390](#10390) +* `CctpTxEvidenceShape`, `PendingTxShape` typeGuards ([5a7b3d2](5a7b3d2)) +* `getQueryParams` takes shape parameter ([99707ef](99707ef)) +* `StatusManager` scaffold ([980463f](980463f)) +* `StatusManager` tracks `seenTxs` ([f3d1e36](f3d1e36)) +* `TxStatus` const for `StatusManager` states ([1376020](1376020)) +* advancer with fees ([087f3a8](087f3a8)) +* defineInertInvitation ([f756412](f756412)) +* **fast-usdc:** .start.js core-eval w/oracle invitations ([7b6820a](7b6820a)) +* **fast-usdc:** add cli config and args for deposit and withdraw ([#10487](#10487)) ([fb2d05c](fb2d05c)) +* **fast-usdc:** deposit, withdraw liquidity in exchange for shares ([5ae543d](5ae543d)) +* **fast-usdc:** implement config cli command ([d121e1d](d121e1d)) +* **fast-usdc:** implement transfer cli command ([504818f](504818f)) +* **fast-usdc:** stub config cli command ([81e14b2](81e14b2)) +* **fast-usdc:** stub transfer cli command ([1b64d82](1b64d82)) +* feed access controls ([8f4a66d](8f4a66d)) +* makeTestPushInvitation handles evidence ([7e99cfa](7e99cfa)) +* minimal `addressTools` for query param parsing ([6f97e13](6f97e13)) +* operators evidence flows through feed ([2161a6f](2161a6f)) +* publish when all oracle operators agree ([d06ae2b](d06ae2b)) +* TransactionFeedKit ([8eb7dee](8eb7dee)) +* uniform configuration with LegibleCapData ([968903a](968903a)) + + +### Bug Fixes + +* **fast-usdc:** ensure cli non-zero exit code on failure ([6c0e77b](6c0e77b)) +* **fast-usdc:** fix url encoding ([d46cefd](d46cefd)) +* **fast-usdc:** use correct address format in cli ([d225974](d225974)) + +## 0.35.0-u18.0 (2024-10-31) + + +### Features + +* add CLI for fast-usdc package ([92bc5b1](92bc5b1)) + + + ### [0.1.1-u18.5](https://github.com/Agoric/agoric-sdk/compare/fast-usdc@0.1.1-u18.4...fast-usdc@0.1.1-u18.5) (2024-12-17) **Note:** Version bump only for package fast-usdc --- a/packages/governance/CHANGELOG.md +++ b/packages/governance/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.10.4-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/governance@0.10.4-u18.0...@agoric/governance@0.10.4-u18.1) (2024-12-24) + + +### Bug Fixes + +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) + + + ### [0.10.4-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/governance@0.10.3...@agoric/governance@0.10.4-u18.0) (2024-10-31) --- a/packages/inter-protocol/CHANGELOG.md +++ b/packages/inter-protocol/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.17.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/inter-protocol@0.17.0-u18.5...@agoric/inter-protocol@0.17.0-u18.6) (2024-12-24) + + +### Features + +* add an accessor for the vaultDirector's parameters ([32f1398](32f1398)) +* record instances that will be replaced so we can manage them ([c883c39](c883c39)) +* save the outgoing EC Charter instance and kit ([c2c9be3](c2c9be3)) + + +### Bug Fixes + +* makeReserveTerms ([27ce0b0](27ce0b0)) +* remove addInstance call from add-auction.js ([d16781f](d16781f)) + + + ## [0.17.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/inter-protocol@0.17.0-u18.4...@agoric/inter-protocol@0.17.0-u18.5) (2024-12-17) **Note:** Version bump only for package @agoric/inter-protocol --- a/packages/internal/CHANGELOG.md +++ b/packages/internal/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/internal@0.4.0-u18.0...@agoric/internal@0.4.0-u18.1) (2024-12-24) + + +### Features + +* consistent publishTxnRecord (record) ([dbf3934](dbf3934)) +* defaultSerializer util ([19d5e03](19d5e03)) +* getValues for sequence nodes ([b5698ce](b5698ce)) +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) +* pureDataMarshaller ([6df7f1f](6df7f1f)) +* showValue option for documentStorageSchema ([07d12d4](07d12d4)) +* storage-test-utils report missing data ([02c111b](02c111b)) + + + ## [0.4.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/internal@0.3.2...@agoric/internal@0.4.0-u18.0) (2024-10-31) --- a/packages/orchestration/CHANGELOG.md +++ b/packages/orchestration/CHANGELOG.md @@ -3,6 +3,48 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/orchestration@0.2.0-u18.4...@agoric/orchestration@0.2.0-u18.5) (2024-12-24) + + +### ⚠ BREAKING CHANGES + +* `getAsset` and `getDenomInfo` require `srcChainName` param + +### Features + +* `assetOn` `DenomDetail` helper ([05fe515](05fe515)) +* `chainHub.makeTransferRoute` ([0215b6f](0215b6f)) +* `ForwardOpts` accepts `intermediateRecipient` ([eb975f1](eb975f1)) +* `ForwardOptsShape` ([50b1717](50b1717)) +* `getAsset` and `getDenomInfo` require `srcChainName` param ([fc802ad](fc802ad)) +* `withOrchestration` returns `baggage` ([e4a6c6d](e4a6c6d)) +* add `bech32Prefix?: string` to `CosmosChainInfo` ([cb9e1ee](cb9e1ee)) +* assetInfo as array of entries ([51e7a9c](51e7a9c)) +* chain-capabilities.js constants ([52ff70a](52ff70a)) +* **chainHub:** `getChainInfoByAddress` helper ([d6c487c](d6c487c)) +* **cosmos-orch-account:** expose `.executeEncodedTx` ([9d10be1](9d10be1)) +* CosmosChainInfo includes `pfmEnabled?: boolean` ([e1c35da](e1c35da)) +* export `DenomDetailShape` ([2dfddb3](2dfddb3)) +* export `OrchestrationPowersShape` ([34b61ea](34b61ea)) +* **local-orchestration-account:** support multi-hop pfm transfers ([c35fac7](c35fac7)) +* registerChainsAndAssets ([e72782d](e72782d)) +* send-anywhere inits chainHub ([2fa2f75](2fa2f75)) + + +### Bug Fixes + +* `brandKey` not part of `DenomDetail` ([9a65478](9a65478)) +* `convertChainInfo` connection sorting ([8ba4699](8ba4699)) +* do not stringify logs ([d04c5ea](d04c5ea)) +* **orchestration:** denomAmounts must be non-negative ([#10458](#10458)) ([40e0e4e](40e0e4e)) +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) +* **orchestration:** harden result of reverseConnInfo ([5c1219c](5c1219c)) +* subscribeToTransfers atomically ([7b77993](7b77993)) +* use `asVow` in case `owned()` throws ([e67e86b](e67e86b)) +* yarn codegen script ([9eea3fd](9eea3fd)) + + + ## [0.2.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/orchestration@0.2.0-u18.3...@agoric/orchestration@0.2.0-u18.4) (2024-12-17) **Note:** Version bump only for package @agoric/orchestration --- a/packages/solo/CHANGELOG.md +++ b/packages/solo/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.11.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/solo@0.11.0-u18.5...@agoric/solo@0.11.0-u18.6) (2024-12-24) + + +### Features + +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) + + + ## [0.11.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/solo@0.11.0-u18.4...@agoric/solo@0.11.0-u18.5) (2024-12-17) **Note:** Version bump only for package @agoric/solo --- a/packages/swing-store/CHANGELOG.md +++ b/packages/swing-store/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.10.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/swing-store@0.10.0-u18.0...@agoric/swing-store@0.10.0-u18.1) (2024-12-24) + + +### Features + +* **cosmic-swingset:** Allow `launch` to accept an already-open swingStore ([c65e5b1](c65e5b1)) + + + ## [0.10.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/swing-store@0.9.1...@agoric/swing-store@0.10.0-u18.0) (2024-10-31) --- a/packages/swingset-liveslots/CHANGELOG.md +++ b/packages/swingset-liveslots/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.10.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/swingset-liveslots@0.10.3-u18.0...@agoric/swingset-liveslots@0.10.3-u18.1) (2024-12-24) + + +### Bug Fixes + +* **liveslots:** avoid slotToVal memory leak for watched promises ([874196c](874196c)), closes [#10757](#10757) [#10756](#10756) [#10706](#10706) + + + ### [0.10.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/swingset-liveslots@0.10.2...@agoric/swingset-liveslots@0.10.3-u18.0) (2024-10-31) --- a/packages/telemetry/CHANGELOG.md +++ b/packages/telemetry/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.6.3-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/telemetry@0.6.3-u18.3...@agoric/telemetry@0.6.3-u18.4) (2024-12-24) + + +### Bug Fixes + +* **telemetry:** add missing slog type ([1aec8d0](1aec8d0)) +* **telemetry:** Empty context persisted when remaining beans are negative after run finish ([#10635](#10635)) ([ad4e83e](ad4e83e)) +* **telemetry:** event name typo ([9e19321](9e19321)) +* **telemetry:** timer-poll run.id ([#10672](#10672)) ([3b478fb](3b478fb)), closes [#10357](#10357) [#10357](#10357) + + + ### [0.6.3-u18.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/telemetry@0.6.3-u18.2...@agoric/telemetry@0.6.3-u18.3) (2024-12-13) --- a/packages/time/CHANGELOG.md +++ b/packages/time/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.3.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/time@0.3.3-u18.0...@agoric/time@0.3.3-u18.1) (2024-12-24) + + +### Bug Fixes + +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) + + + ### [0.3.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/time@0.3.2...@agoric/time@0.3.3-u18.0) (2024-10-31) --- a/packages/vats/CHANGELOG.md +++ b/packages/vats/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.16.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/vats@0.16.0-u18.4...@agoric/vats@0.16.0-u18.5) (2024-12-24) + + +### Features + +* **cosmic-swingset:** Add support for testing blocks of a mock chain ([48b6405](48b6405)) +* upgrade v7-board and test it ([#10516](#10516)) ([d8a109e](d8a109e)), closes [#10394](#10394) + + +### Bug Fixes + +* **ERTP,vats:** fix 9407 AmountPatternShape ([#9863](#9863)) ([59b1a9f](59b1a9f)), closes [#9410](#9410) [#9407](#9407) [#9410](#9410) [#9407](#9407) [#9410](#9410) [#9407](#9407) [#9410](#9410) +* **vaultFactory:** fix proposal description ([bc1f87a](bc1f87a)) + + + ## [0.16.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/vats@0.16.0-u18.3...@agoric/vats@0.16.0-u18.4) (2024-12-17) **Note:** Version bump only for package @agoric/vats --- a/packages/wallet/CHANGELOG.md +++ b/packages/wallet/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.19.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/wallet@0.19.0-u18.0...@agoric/wallet@0.19.0-u18.1) (2024-12-24) + +## 0.35.0-u18.4 (2024-12-17) + +## 0.35.0-u18.3 (2024-12-09) + +## 0.35.0-u18.2 (2024-11-21) + +## 0.35.0-u18.1 (2024-11-19) + + +### Features + +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) + + + ## [0.19.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/wallet@0.18.3...@agoric/wallet@0.19.0-u18.0) (2024-10-31) --- a/packages/wallet/api/CHANGELOG.md +++ b/packages/wallet/api/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.15.0-u18.5](https://github.com/Agoric/agoric/compare/@agoric/wallet-backend@0.15.0-u18.4...@agoric/wallet-backend@0.15.0-u18.5) (2024-12-24) + + +### Features + +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) + + + ## [0.15.0-u18.4](https://github.com/Agoric/agoric/compare/@agoric/wallet-backend@0.15.0-u18.3...@agoric/wallet-backend@0.15.0-u18.4) (2024-12-17) **Note:** Version bump only for package @agoric/wallet-backend --- a/packages/zoe/CHANGELOG.md +++ b/packages/zoe/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.26.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/zoe@0.26.3-u18.0...@agoric/zoe@0.26.3-u18.1) (2024-12-24) + + +### Bug Fixes + +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) + + + ### [0.26.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/zoe@0.26.2...@agoric/zoe@0.26.3-u18.0) (2024-10-31) ```
Typing
valueOf()
into the evaluator shim playground (demo/index.html) and hitting the Evaluate button causes the errorUnlike other surprising scopeProxy traps, this does not look like an engine bug. We see identical symptoms on Brave, FF, and Safari.
[edit by @kriskowal 2020-08-12:]
Actions needed (to be independently tracked, and this issue closed)
Create a specification proposal that introduces ahiddenWith
symbol thatwith
would respect.barring eventual engine support for ahiddenWith
symbol.absentrevealing thehiddenWith
,ScopeProxy
does not break containment.The text was updated successfully, but these errors were encountered: