response with status 400 resolved successfully instead of rejected

"apisauce": "0.6.0"
api.post('/oauth/token', data)
   .then((res) => console.log(res));

the below response is logged in "then"
{
    "duration":190,
    "problem":"CLIENT_ERROR",
    "ok":false,
    "status":400,
    "headers":{
        "content-type":"application/json;charset=UTF-8",
        "access-control-allow-origin":"",
        "pragma":"no-cache, no-cache",
        "x-xss-protection":"1; mode=block",
        "transfer-encoding":"Identity",
        "access-control-max-age":"3600",
        "expires":"0",
        "cache-control":"no-cache, no-store, max-age=0, must-revalidate, no-store",
        "date":"Mon, 23 Jan 2017 23:37:54 GMT",
        "access-control-allow-credentials":"true",
        "x-content-type-options":"nosniff",
        "vary":"Accept-Encoding",
        "x-frame-options":"DENY"
    },
    "config":{
        "transformRequest":{

        },
        "transformResponse":{

        },
        "headers":{
            "Accept":"application/json",
            "Content-Type":"application/json",
        },
        "timeout":0,
        "xsrfCookieName":"XSRF-TOKEN",
        "xsrfHeaderName":"X-XSRF-TOKEN",
        "maxContentLength":-1,
        "baseURL":"http://<IP_ADDRESS>:8000/fe-oauth",
        "method":"post",
        "url":"http://localhost:8000/oauth/token",
        "data":"{\"grant_type\":\"password\"}"
    },
    "data":{
        "error":"invalid_request",
        "error_description":"Missing grant type"
    }
}

Indeed it does!  There are two properties to check results.  ok if it was 200 series, and problem will have a constant with a better description. status is a third way if your app cares about specific codes.


Loss of incremental computation in a long chain of incremental functions

First of all Congratulations on your purescript-incremental-functions / purescript-purview. You've managed to completely eliminate the need for virtual dom diffing. However it seems like the entire dom model is still calculated each time, and the final real dom is then updated incrementally. This is still good because in frameworks like React you still do calculate the entire virtual dom, then a diffing algorithm is executed to modify only a part of the real dom. So you've still saved on diffing the dom.
There might be a way to update each intermediate state incrementally a long a chain of incremental functions.
Currently you have data Jet a = Jet a (Change a).
Giving a incremental function from a to b the following form (a,Δa) -> (b,Δb).
Say your composing some functions together E.g.
f :: (a,Δa)->(b,Δb)
g :: (b,Δb)->(c,Δc)
h :: (c,Δc)->(d,Δd)
r = h . g . f

Each time a new Δa fires down the chain of functions, b is recalculated,
c is recalculated and d is recalculated.
The functions need some way of maintaining the last a, b, c for reuse
on the next iteration.
Now if we change the definition to something like:
data IncF a b = IncF (a -> (b, IncF2 a b))
data IncF2 a b = IncF2 (a, Δa -> (Δb, IncF2 a b))

Then we will lose HOAS, leading to the end-user having to use point-free notation.
Something else can be done:
data Jet a = Jet (Cell a) (Stream (Change a))
Cell and Stream are from a FRP library of your choice.
You can now compose incremental functions, have access to past values of a, b and c.
And also you get to keep HOAS.
The FRP library you choose would have to support forward references, and I'd recommend the ability
to handle simultaneous stream events
(i.e. can bust Stream (a,b) into Stream a, and Stream b, and combined those back into Stream (a,b) that works exactly the same as the original.)
I'd recommend a purescript wrapper arround the typescript version of sodium.
And not the purescript-sodium I wrote years ago, its operational semantics are not correct.

You have also done some really nice work here: https://gist.github.com/paf31/5c1279796d66fe04a177e34b0d674ac6
That would restore HOAS for IncF / IncF2 definitions above. Just would require the end-user to use the lam function when he is making a lambda.


How to use EclipseCodeFormatter in my plugin with java code?

Is there any way to use eclipse code formatter in plugin code to format a PsiClass??
I just use CodeStyleManager.getInstance(project).reformat(psiClass);  but it looks like formatted by IDEA's formatter, not eclipse code formatter...
I hope you will help me...

Only these methods use the Eclipse formatter (if it is enabled): https://github.com/krasa/EclipseCodeFormatter/blob/57b413717c9ac6a204d9b86c85b8d6098b2b6b8d/src/java/krasa/formatter/plugin/EclipseCodeStyleManager.java#L64-L86


future::shared is unsafe (Send/Sync issue)

Hy,
futures::future::shared allows Sending non Send types to other threads
and provides Sync shared access for non Sync types, too.
Problem
Send/Sync bounds for future::Shared are wrong
Explanation
The Shared futures works similar to a Mutex,
as it makes sure there is only mutably-exclusive
access wrt. to poll-ing the underlying future.
It should only be Send/Sync if the underlying future is Send.
The created SharedItem, SharedError are basically Arc's
and implement Send/Sync correct for themself, the problem
is that they are crated using unsafe code when polling
any clone of Shared which completes or was completed,
as such they allow Sync access to a non-sync item/error.
Mini Prog of Concept
play
gist
extern crate futures;

use std::thread;
use std::cell::RefCell;

use futures::executor::block_on;
use futures::{future, FutureExt};

fn main() {
    // we use *const u8 as it is neither Send+Sync, through
    // using just e.g. RefCell<&str> would already show part
    // of the bug
    let cell_fut = future::ok::<_,()>(RefCell::new(1usize as *const u8));
    let shared = cell_fut.shared();
    let shared2 = shared.clone();
    let shared3 = shared.clone();
    let join1 = thread::spawn(move || {
        // wups RefCell is not Sync, but we access it
        // here and in the other thread. Even worse the
        // item in the RefCell is not Send but we get
        // mutable access to it here (which requires Send);
        let cell = block_on(shared2).unwrap();
        *cell.borrow_mut() = 2usize as *const u8;
    });
    let join2 = thread::spawn(move || {
        let cell = block_on(shared3).unwrap();
        *cell.borrow_mut() = 4usize as *const u8;
    });

    join1.join().unwrap();
    join2.join().unwrap();

    let cell = block_on(shared).unwrap();
    println!("raced to get: {:?}", *cell.borrow() as usize);
}

Solution
I will make a pull request soon. The solution is
to only impl Send/Sync if the Future is Send
and if the Item+Error are Send+Sync
(also if there would be a method to
access the inner future it would have
to be limited to inner futures which
are Sync)

This was fixed in #953.


[Device Support Request] for TUYA TS0601 TRV

Is your feature request related to a problem? Please describe.
Having purchased these TUYA compatible devices I can not use them. The device is discovered but only 2 entities (lqi & rssi) are shown as unavilable.
Describe the solution you'd like
For HA to recognise them so I can used them.
Device signature listed below
====BEGIN====
{
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": 260,
"device_type": "0x0051",
"in_clusters": [
"0x0000",
"0x0004",
"0x0005",
"0xef00"
],
"out_clusters": [
"0x000a",
"0x0019"
]
}
},
"manufacturer": "_TZE200_lllliz3p",
"model": "TS0601",
"class": "zigpy.device.Device"
}
====END====.

The log would suggest its not recognised:
====BEGIN====
2022-04-25 09:17:14 INFO (MainThread) [zigpy.device] [0xe007] Read model 'TS0601' and manufacturer '_TZE200_lllliz3p' from <Endpoint id=1 in=[basic:0x0000, groups:0x0004, scenes:0x0005, None:0xEF00] out=[ota:0x0019, time:0x000A] status=<Status.ZDO_INIT: 1>>
2022-04-25 09:17:14 INFO (MainThread) [zigpy.device] [0xe007] Discovered basic device information for
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.application] Device is initialized
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Checking quirks for _TZE200_lllliz3p TS0601 (0c:43:14:ff:fe:6a:e2:b7)
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1}
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1}
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {11, 13} {1}
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'bellows.zigbee.application.EZSPCoordinator'>
2022-04-25 09:17:14 DEBUG (MainThread) [zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint
2022-04-25 09:17:14 DEBUG (MainThread) [homeassistant.components.zha.core.discovery] 'sensor' component -> 'RSSISensor' using ['basic']
2022-04-25 09:17:14 DEBUG (MainThread) [homeassistant.components.zha.core.discovery] 'sensor' component -> 'LQISensor' using ['basic']
====END====

Paste any additional debug logs here.

Additional context
Add any other context or screenshots about the feature request here.

Is your TRV one of the known tuya ones that have is supported in ZHA ?
https://github.com/zigpy/zigpy/discussions/653#discussioncomment-314395.
If not pleas post one link or photos of the device.

@MattWestb
It looks identical to a Zonnsmart TV02-ZG

Aubess TV02  and i adding it in the matrix :-)))


tasks to finish 4.2 support

[ ] getting cast_type around in Column instances

[x] for MySQL/Postgres/SQLite based on AR code
[x] get type_cast working with Derby: #662
[ ] getting it to work with others (H2/HSQLDB etc.)
[x] types should work with generic adapter: jdbc

[ ] _string_to_time emulation on our 1.3.x line (for custom selects e.g. SELECT now())
[x] truncate support (4 all) https://github.com/rails/rails/commit/9a4e183fe9f8
[ ] review which of the supported adapters can support bigint (besides postgres https://github.com/rails/rails/commit/574234be06) 3c01353a6258
[x] generalize (share) columns 4.2 detection https://github.com/prathamesh-sonpatki/activerecord-jdbc-adapter/commit/cc6b487fc
[x] Column.new has new cast_type param https://github.com/rails/rails/commit/4bd5dffc85a4f3a660

[ ] likely will need to be passed around for other custom Columns in a backward-compatible way

[ ] Column type_cast needs to be reviewed 4 all adapters https://github.com/rails/rails/commit/e781aa31fc52a
[x] need to check and avoid double loading (e.g. postgresql/array_parser.rb)
[x] removed primary method rails/rails@05dd3df (see #609)
[x] [postgres] backport bit quoting https://github.com/rails/rails/commit/d5411fb37ca9a35f49a5
[x] [postgres] test XML quoting https://github.com/rails/rails/commit/f6968bd601e38fb506
[ ] [postgres] bigserial PK support https://github.com/rails/rails/commit/6dc178711de036a

... fix remaining/reported 4.2 bugs (besides getting the test suite green 4 all)
====
you can support AR 4.2 support at BountySource

I'd just like to mention that I've added a $100 bounty to this project on BountySouce.
https://www.bountysource.com/issues/5831191-tasks-to-finish-4-2-support

Any further news on progress toward Rails 4.2 compatability?

Please note that the uuid native postgres type is not supported in the 4.2 version of the adapter. It works fine with 4.0 though. Many thanks for working on this!

I've added a bounty of 250USD to the project

Added another $15 and sent the bounty around on my social medias.

JRuby-based Rails 4.2 unable to let gem to generate model for us. For example, Remexify gem (and also Devise) were unable of generating model from scratch through its generate command.

@kares What's left on this? It looks like https://github.com/jruby/activerecord-jdbc-adapter/issues/632 was closed finishing [postgres] bigserial PK support rails/rails@6dc1787, and maybe type_cast for postgres.

we're working on it ... it still might need a week or two to get pass (hopefully most) supported adapters.

Oh awesome. Need help testing anything?

@Ch4s3 you could run against our 1-3-stable branch as it's already (and still expected) to be updated.
we'll mostly need non-mysql/pg/sqlite testers later ... oracle, db2, hsqldb, h2 maybe ms-sql and firebird
... but its likely we won't cover all (thoroughly) since its just too much to handle on our own ...

Ok, so 1-3-stable seems to work fine with jRuby 9000, Rails 4.2.3 for may app. I ran rake db:reset and a bunch of Postgres heavy rspec tests.

@kares Should we close this now?  AR 4.2 is now supported on all but the special adapters:  oracle, db2, firebird, and mssql.  We could track these in separat issues, and only emit the AR 4.2 warning for these adapters.

do not see a reason why we should split it for a "few left" at least until a review is done. would prefer to keep the warning until the generic jdbc case handles type resolution to at least some degree (like it used to on pre 4.2) - travis-ci fully green ... think we're close but there's no need to rush it up. the hard work will be mostly about supporting bug reports anyways.

:+1:

after 1.3.17 that included a lot of AR 4.2 compatibility improvements, mostly for MySQL/PostgreSQL as well as the generic JDBC adapter, in 1.3.18 literally all adapters have been reviewed to support AR 4.2 to around the same extent as they handle previous AR versions ... some of course need real-world usage to confirm thus warnings are left on Oracle/DB2/MSSQL despite support being there. also worth mentioning that generic adapter: jdbc and AR-JDBC extension gems should have an easier job of handling changes such as the 'new' AR::Type system since 1.3.18


Update editor to latest version & enable support for AA >= 2.0.0

This PR includes

update of trumbowyg editor to latest version (2.21.0)
change in dependencies so we can use this gem with AA >= 2.0.0

I tested this against 3 different AA versions - 2.0.0, 2.6.1, 2.7.0 - works just fine in all, so I think we can assume it will work across the whole 2.X branch.

Thank you for your PR, but I didn't merge it.
In the end I decided to make mostly the same updates + some minor structure changes + basic specs with the latest version.


Not working on Raspberry pi

kubectl krew install edit-status/edit-status
Updated the local copy of plugin index.
Updated the local copy of plugin index "edit-status".
Installing plugin: edit-status
W0813 04:05:10.224690  762733 install.go:164] failed to install plugin "edit-status": plugin "edit-status" does not offer installation for this platform
failed to install some plugins: [edit-status]: plugin "edit-status" does not offer installation for this platform

Error: cannot merge patch object: GVK: fmapp.factory.freemud/v1, Kind=Resource, Name: 9911-test: the server rejected our request due to an error in our request (patch resources.fmapp.factory.freemud 9911-test)


python312Packages.schwifty: 2024.1.1.post0 -> 2024.4.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.schwifty is: Validate/generate IBANs and BICs
meta.homepage for python312Packages.schwifty is: https://github.com/mdomke/schwifty
meta.changelog for python312Packages.schwifty is: https://github.com/mdomke/schwifty/blob/2024.4.0/CHANGELOG.rst
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2024.4.0 with grep in /nix/store/w9s6mmiymrcf8nm3zff69zcs2c8ywjn4-python3.12-schwifty-2024.4.0
found 2024.4.0 in filename of file in /nix/store/w9s6mmiymrcf8nm3zff69zcs2c8ywjn4-python3.12-schwifty-2024.4.0

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
banking
python311Packages.schwifty
python312Packages.schwifty

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/w9s6mmiymrcf8nm3zff69zcs2c8ywjn4-python3.12-schwifty-2024.4.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.schwifty https://github.com/r-ryantm/nixpkgs/archive/7608a4d95d0b9d677be411c7ee0a9904f45313c6.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/7608a4d95d0b9d677be411c7ee0a9904f45313c6#python312Packages.schwifty

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/w9s6mmiymrcf8nm3zff69zcs2c8ywjn4-python3.12-schwifty-2024.4.0
ls -la /nix/store/w9s6mmiymrcf8nm3zff69zcs2c8ywjn4-python3.12-schwifty-2024.4.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

3 packages failed to build:

banking
python311Packages.schwifty
python311Packages.schwifty.dist

2 packages built:

python312Packages.schwifty
python312Packages.schwifty.dist

Maintainer pings
cc @milibopp for testing.

Already on master.


WIP: Enable/disable default providers (fixes #19)

Coverage increased (+18.3%) to 88.11% when pulling 1f2cc52969c3151da82bfb2618ee10ba3e30e725 on providers-enable-disable into b754a95f8ec38be73f967d8f83175e08d0377df0 on master.

Coverage increased (+18.3%) to 88.11% when pulling 1f2cc52969c3151da82bfb2618ee10ba3e30e725 on providers-enable-disable into b754a95f8ec38be73f967d8f83175e08d0377df0 on master.

Coverage increased (+18.3%) to 88.11% when pulling 1f2cc52969c3151da82bfb2618ee10ba3e30e725 on providers-enable-disable into b754a95f8ec38be73f967d8f83175e08d0377df0 on master.


testnet nodes frozen

io.ReadFull(0x7f89c43990c8, 0xc420208008, 0xc42029a000, 0x8, 0x10008, 0x8, 0x0, 0x0)
	/usr/local/go/src/io/io.go:327 +0x58
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).readFrame(0xc420238100, 0xc42029a000, 0x10008, 0x10008, 0x10301, 0x0, 0x0, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:213 +0x91
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).recvLoop(0xc420238100)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:242 +0xfa
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:76 +0x1d5

goroutine 37 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).sendLoop(0xc420238100)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:308 +0x178
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:77 +0x1f7

goroutine 38 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).keepalive(0xc420238100)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:290 +0x1c9
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:78 +0x219

goroutine 39 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).AcceptStream(0xc420238100, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:125 +0x260
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.smuxSession.Accept(0xc420238100, 0xc420230ec8, 0x855351, 0x455bf0, 0xc420230f08)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/stream.go:24 +0x2b
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*peer).accept(0xc4201f0300, 0x9d8010, 0xc42011c840, 0xcb4c20, 0xc420416f00)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:57 +0x38
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer(0xc42011c840, 0xc4201f0300)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:159 +0x11b
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).addPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:68 +0x96

goroutine 19 [select, 238 minutes]:
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer.func1(0xc42028c0c0, 0xc42011c840, 0xc42028c120, 0xc4201f0300)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:144 +0x127
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:138 +0x10a

goroutine 40 [chan receive, 238 minutes]:
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/pkg/daemon.StartDaemon.func9(0xc4201e05a0, 0xc420082dc0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/pkg/daemon/daemon.go:411 +0x38
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/pkg/daemon.StartDaemon
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/pkg/daemon/daemon.go:410 +0x988

goroutine 21 [IO wait]:
internal/poll.runtime_pollWait(0x7f89c43ddd30, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420262198, 0x72, 0xffffffffffffff00, 0xcad0c0, 0xca83e8)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420262198, 0xc420356000, 0x8, 0x10008)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420262180, 0xc420356000, 0x8, 0x10008, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420262180, 0xc420356000, 0x8, 0x10008, 0x8, 0x0, 0x0)
	/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420212020, 0xc420356000, 0x8, 0x10008, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/net.go:176 +0x6d
io.ReadAtLeast(0x7f89c43990c8, 0xc420212020, 0xc420356000, 0x8, 0x10008, 0x8, 0x98e4e0, 0x0, 0x7f89c43990c8)
	/usr/local/go/src/io/io.go:309 +0x86
io.ReadFull(0x7f89c43990c8, 0xc420212020, 0xc420356000, 0x8, 0x10008, 0x8, 0x0, 0x0)
	/usr/local/go/src/io/io.go:327 +0x58
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).readFrame(0xc420262200, 0xc420356000, 0x10008, 0x10008, 0x6c900010100, 0x0, 0x0, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:213 +0x91
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).recvLoop(0xc420262200)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:242 +0xfa
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:76 +0x1d5

goroutine 22 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).sendLoop(0xc420262200)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:308 +0x178
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:77 +0x1f7

goroutine 23 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).keepalive(0xc420262200)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:290 +0x1c9
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:78 +0x219

goroutine 24 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).AcceptStream(0xc420262200, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:125 +0x260
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.smuxSession.Accept(0xc420262200, 0xc4201e8ec8, 0x855351, 0x455bf0, 0xc4201e8f08)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/stream.go:24 +0x2b
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*peer).accept(0xc42020a3c0, 0x9d8010, 0xc42011c840, 0xcb4c20, 0xc4206d1d20)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:57 +0x38
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer(0xc42011c840, 0xc42020a3c0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:159 +0x11b
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).addPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:68 +0x96

goroutine 67 [select, 238 minutes]:
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer.func1(0xc420057140, 0xc42011c840, 0xc4200571a0, 0xc42020a3c0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:144 +0x127
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:138 +0x10a

goroutine 58 [select, 238 minutes]:
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer.func1(0xc42028c000, 0xc42011c840, 0xc42028c180, 0xc42020a940)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:144 +0x127
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:138 +0x10a

goroutine 75 [IO wait]:
internal/poll.runtime_pollWait(0x7f89c43dda30, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc42007e818, 0x72, 0xffffffffffffff00, 0xcad0c0, 0xca83e8)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc42007e818, 0xc4203fa000, 0x8, 0x10008)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc42007e800, 0xc4203fa000, 0x8, 0x10008, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc42007e800, 0xc4203fa000, 0x8, 0x10008, 0x8, 0x0, 0x0)
	/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420212048, 0xc4203fa000, 0x8, 0x10008, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/net.go:176 +0x6d
io.ReadAtLeast(0x7f89c43990c8, 0xc420212048, 0xc4203fa000, 0x8, 0x10008, 0x8, 0x98e4e0, 0x0, 0x7f89c43990c8)
	/usr/local/go/src/io/io.go:309 +0x86
io.ReadFull(0x7f89c43990c8, 0xc420212048, 0xc4203fa000, 0x8, 0x10008, 0x8, 0x0, 0x0)
	/usr/local/go/src/io/io.go:327 +0x58
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).readFrame(0xc42007e880, 0xc4203fa000, 0x10008, 0x10008, 0x10301, 0x0, 0x0, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:213 +0x91
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).recvLoop(0xc42007e880)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:242 +0xfa
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:76 +0x1d5

goroutine 89 [select, 238 minutes]:
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer.func1(0xc42028ca80, 0xc42011c840, 0xc42028cae0, 0xc420049b00)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:144 +0x127
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:138 +0x10a

goroutine 76 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).sendLoop(0xc42007e880)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:308 +0x178
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:77 +0x1f7

goroutine 77 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).keepalive(0xc42007e880)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:290 +0x1c9
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:78 +0x219

goroutine 78 [select, 238 minutes]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).AcceptStream(0xc42007e880, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:125 +0x260
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.smuxSession.Accept(0xc42007e880, 0xc4203d46c8, 0x85519a, 0x455bf0, 0xc4203d4708)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/stream.go:24 +0x2b
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*peer).accept(0xc420049b00, 0x9d8020, 0xc42028ca80, 0xc42011c840, 0xc42028cae0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:57 +0x38
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer(0xc42011c840, 0xc420049b00)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:159 +0x11b
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).addPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:68 +0x96

goroutine 160 [select, 238 minutes]:
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer.func1(0xc420056120, 0xc42011c840, 0xc420056180, 0xc42022f000)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:144 +0x127
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:138 +0x10a

goroutine 123 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).sendLoop(0xc420238800)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:308 +0x178
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:77 +0x1f7

goroutine 109 [IO wait]:
internal/poll.runtime_pollWait(0x7f89c43dd7f0, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420238218, 0x72, 0xffffffffffffff00, 0xcad0c0, 0xca83e8)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420238218, 0xc420534000, 0x8, 0x10008)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420238200, 0xc420534000, 0x8, 0x10008, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420238200, 0xc420534000, 0x8, 0x10008, 0x8, 0x0, 0x0)
	/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc42000c0c0, 0xc420534000, 0x8, 0x10008, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/net.go:176 +0x6d
io.ReadAtLeast(0x7f89c43990c8, 0xc42000c0c0, 0xc420534000, 0x8, 0x10008, 0x8, 0x98e4e0, 0x0, 0x7f89c43990c8)
	/usr/local/go/src/io/io.go:309 +0x86
io.ReadFull(0x7f89c43990c8, 0xc42000c0c0, 0xc420534000, 0x8, 0x10008, 0x8, 0x0, 0x0)
	/usr/local/go/src/io/io.go:327 +0x58
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).readFrame(0xc420238280, 0xc420534000, 0x10008, 0x10008, 0x10301, 0x0, 0x0, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:213 +0x91
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).recvLoop(0xc420238280)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:242 +0xfa
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:76 +0x1d5

goroutine 110 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).sendLoop(0xc420238280)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:308 +0x178
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:77 +0x1f7

goroutine 111 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).keepalive(0xc420238280)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:290 +0x1c9
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:78 +0x219

goroutine 112 [select, 238 minutes]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).AcceptStream(0xc420238280, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:125 +0x260
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.smuxSession.Accept(0xc420238280, 0xc4202d1ec8, 0x855351, 0x455bf0, 0xc4202d1f08)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/stream.go:24 +0x2b
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*peer).accept(0xc42020a940, 0x9d8010, 0xc42011c840, 0xcb4c20, 0xc4200e1460)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:57 +0x38
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer(0xc42011c840, 0xc42020a940)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:159 +0x11b
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).addPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:68 +0x96

goroutine 122 [IO wait]:
internal/poll.runtime_pollWait(0x7f89c43dd730, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420238798, 0x72, 0xffffffffffffff00, 0xcad0c0, 0xca83e8)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420238798, 0xc420624000, 0x8, 0x10008)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420238780, 0xc420624000, 0x8, 0x10008, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420238780, 0xc420624000, 0x8, 0x10008, 0x8, 0x0, 0x0)
	/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420212538, 0xc420624000, 0x8, 0x10008, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/net.go:176 +0x6d
io.ReadAtLeast(0x7f89c43990c8, 0xc420212538, 0xc420624000, 0x8, 0x10008, 0x8, 0x98e4e0, 0x0, 0x7f89c43990c8)
	/usr/local/go/src/io/io.go:309 +0x86
io.ReadFull(0x7f89c43990c8, 0xc420212538, 0xc420624000, 0x8, 0x10008, 0x7fd2cc, 0x1, 0xc420397e78)
	/usr/local/go/src/io/io.go:327 +0x58
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).readFrame(0xc420238800, 0xc420624000, 0x10008, 0x10008, 0x89c00010101, 0x0, 0x0, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:213 +0x91
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).recvLoop(0xc420238800)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:242 +0xfa
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:76 +0x1d5

goroutine 124 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).keepalive(0xc420238800)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:290 +0x1c9
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:78 +0x219

goroutine 125 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).AcceptStream(0xc420238800, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:125 +0x260
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.smuxSession.Accept(0xc420238800, 0xc4202d3ec8, 0x855351, 0x455bf0, 0xc4202d3f08)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/stream.go:24 +0x2b
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*peer).accept(0xc42022f000, 0x9d8010, 0xc42011c840, 0xcb4c20, 0xc4204401c0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:57 +0x38
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer(0xc42011c840, 0xc42022f000)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:159 +0x11b
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).addPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:68 +0x96

goroutine 4653 [select, 152 minutes]:
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer.func1(0xc42063cd20, 0xc42011c840, 0xc42063cd80, 0xc42020a200)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:144 +0x127
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:138 +0x10a

goroutine 4635 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).sendLoop(0xc420238c00)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:308 +0x178
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:77 +0x1f7

goroutine 4634 [IO wait]:
internal/poll.runtime_pollWait(0x7f89c43dd670, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420238b98, 0x72, 0xffffffffffffff00, 0xcad0c0, 0xca83e8)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420238b98, 0xc42049c000, 0x8, 0x10008)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420238b80, 0xc42049c000, 0x8, 0x10008, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420238b80, 0xc42049c000, 0x8, 0x10008, 0x8, 0x0, 0x0)
	/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc42000c080, 0xc42049c000, 0x8, 0x10008, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/net.go:176 +0x6d
io.ReadAtLeast(0x7f89c43990c8, 0xc42000c080, 0xc42049c000, 0x8, 0x10008, 0x8, 0x98e4e0, 0x0, 0x7f89c43990c8)
	/usr/local/go/src/io/io.go:309 +0x86
io.ReadFull(0x7f89c43990c8, 0xc42000c080, 0xc42049c000, 0x8, 0x10008, 0x7fd2cc, 0x0, 0xc4202dfe78)
	/usr/local/go/src/io/io.go:327 +0x58
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).readFrame(0xc420238c00, 0xc42049c000, 0x10008, 0x10008, 0xbd500010101, 0x0, 0x0, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:213 +0x91
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).recvLoop(0xc420238c00)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:242 +0xfa
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:76 +0x1d5

goroutine 4637 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).AcceptStream(0xc420238c00, 0x0, 0x0, 0x0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:125 +0x260
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.smuxSession.Accept(0xc420238c00, 0xc4201e6ec8, 0x855351, 0x455bf0, 0xc4201e6f08)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/stream.go:24 +0x2b
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*peer).accept(0xc42020a200, 0x9d8010, 0xc42011c840, 0xcb4c20, 0xc4204404e0)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:57 +0x38
github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).threadedListenPeer(0xc42011c840, 0xc42020a200)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/rpc.go:159 +0x11b
created by github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway.(*Gateway).addPeer
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/rivine/rivine/modules/gateway/peers.go:68 +0x96

goroutine 4636 [select]:
github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.(*Session).keepalive(0xc420238c00)
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:290 +0x1c9
created by github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux.newSession
	/go/src/github.com/threefoldfoundation/tfchain/vendor/github.com/xtaci/smux/session.go:78 +0x219

rax    0xfffffffffffffffc
rbx    0x0
rcx    0x45a8d3
rdx    0x0
rdi    0xd99278
rsi    0x0
rbp    0xc420033ec8
rsp    0xc420033e80
r8     0x0
r9     0x0
r10    0xc420033eb8
r11    0x246
r12    0x42f3c0
r13    0xf1
r14    0x11
r15    0x0
rip    0x45a8d3
rflags 0x246
cs     0x33
fs     0x0
gs     0x0

Part of one of the stacktraces since the terminal buffer could not handle it

Nodes sat there, refused to accept any new connection even though they only had 4 active connections, did not make any new blocks for the last 3-4 hours

Please verify if this is still an active issue.


Language system doesnt works

I did everythink which is in Docs but it didnt worked

You need to update the next.js configuration

also can i make the backend api with express.js ?

also can i make the backend api with express.js?

Nest.js actually uses express.js under the hood, there's definitely no problem to use express.js directly
Also, we have a list of required routes for your backend, you are able to write the backend in any programming language such as Go, Java, Rust or Javascript


Search does not exclude absolute path

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:  1.85.2
OS Version:  Fedora 39

Note

I checked: [Cannot exclude workspace folder from search when using absolute paths for workspace folders · Issue #135454 · microsoft/vscode](https://github.com/microsoft/vscode/issues/135454) and [Basic Editing in Visual Studio Code](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)

Steps to Reproduce:

code.workspace file

{
  "folders": [
    {
      "path": "/mnt/Documents/Git"
    },
    {
      "name": "Git - Mobile",
      "path": "/mnt/Documents/Mobile/Git"
    },
    {
      "name": "Opt",
      "path": "/mnt/Data/opt"
    },
    {
      "path": "/mnt/Documents/Mobile/Software/Data/Common/Task"
    },
    {
      "path": "/mnt/Documents/Mobile/Desktop"
    },
    {
      "name": "BrowserSession",
      "path": "/mnt/Documents/Mobile/Software/Data/Common/Task/BrowserSession"
    }
  ],
  "settings": {
    "files.exclude": {
      "**/_config.yml": true,
      "**/.Archive/": true,
      "**/.Backup/": true,
      "**/.clang-format": true,
      "**/.Commit/": true,
      "**/.editorconfig": true,
      "**/.gitignore": true,
      "**/.gitlab-ci.yml": true,
      "**/.gitmessage": true,
      "**/.gitmodules": true,
      "**/.GitSettings/": true,
      "**/.huskyrc": true,
      "**/.lintstagedrc": true,
      "**/.prettierignore": true,
      "**/.Rendered/": true,
      "**/.Tag/": true,
      "**/.trash/": true,
      "**/.vscode/": true,
      "**/.Ws/": true,
      "**/*.code-workspace": true,
      "**/*.temp": true,
      "**/Bin/": true,
      "**/bin/": true,
      "**/CHANGELOG.md": true,
      "**/commitlint.config.js": true,
      "**/Image/": true,
      "**/LICENSE": true,
      "**/LocateDatabase.gen.db": true,
      "**/Media/": true,
      "**/Note/": true,
      "**/Output/": true,
      "**/package-lock.json": true,
      "**/package.json": true,
      "**/README.md": true,
      "**/Readme/": true,
      "**/Test/": true
    }
  }

In the following image we can see that even though /mnt/Data/opt is excluded in setting.json (see editor), but the Search tab list files in Opt  (Opt is name for Workspace path /mnt/Data/opt (look above at the content for workspace file.

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.86.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

@andreamah  What should I do?
In the following image we can see that LaptopGit is excluded in config settings (see editor), but the search is still showing the search in the right pane.  Also, please note that "search.followSymlinks": false is set, and LaptopGit is a symlink but it  is still showing!

Are these files open in your editor?

@andreamah
I closed everything except the config file as you can see in the below screenshot, and we can see that I am still facing the problem as described above

@andreamah  Please let me know if this is not a priority. I would better close this if its not an important issue!

We do not support absolute file paths for search.excludes, which is the same for files.exclude. We try to match the behavior there. Please see the discussion about this here https://github.com/microsoft/vscode/issues/70438


Layer Manager Issue- On Loading MJML

Hi
I am facing a weird issue on loading some mjml created by editor.
Basically it was nesting layers inside image and hence those nested elements like Text, social are not appearing on editor.
And I need to fix every time by using layer manager. Please find attached image to get better idea.

Thank you,
Nouman

Hello
i get the same problem when i tried to create a custom block like this :
bm.add('mj-2-columns', {
    label: 'Section uep',
    content: `
      <mj-section>
        <mj-column>
          <mj-image src="http://placehold.it/350x250/78c5d6/fff" />
          <mj-text>Content 1</mj-text>
        </mj-column>
        <mj-column>
          <mj-image src="http://placehold.it/350x250/78c5d6/fff" />
          <mj-text>Content 2</mj-text>
        </mj-column>
      </mj-section>`,
    attributes: {
      class: 'gjs-fonts gjs-f-b2',
      // Workaround
      'data-type': 'mj-section',
    },
  });

The text is nested inside the image :

PS: i just cloned the grapejs-mjml repo today

@julienchazal update grapesjs first (not just grapesjs-mjml)

@artf same with v0.10.6

Unfortunately, it seems related to the fact HTML5 doesn't accept custom void elements so you have to close the mj-image tag (eg. <mj-image src="..."></mj-image>). Can't do much about it currently
More info about it:
https://stackoverflow.com/questions/17700179/can-you-define-your-own-self-closing-tag-in-html5
https://stackoverflow.com/questions/3558119/are-non-void-self-closing-tags-valid-in-html5
http://w3c.github.io/html/single-page.html#void-elements

Any update on this? Like @kickbk said, the editor.getHtml removes the closing tag.

Update the custom mj-image component and inside defaults of its model put void: false,


#798 use correct location and redirect to post owner

Same comits are already in another PullRequest so they can be combined.


fix: require extensions in imports

depends on https://github.com/ExodusMovement/taquito/pull/9

review commit by commit
tests should pass locally, except one test in taquito-taquito

Tests completed, but still have asynchronous activity after additional 5000ms. Terminating with a failure...
✖ /Users/mv/code/taquito/packages/taquito/test/wallet/operation-factory.spec.ts (5762.568416ms)
  'test failed'

this PR was mostly generated by using our require-extensions plugin autofix, from this PR https://github.com/ExodusMovement/eslint-plugin-require-extensions/pull/4
then a couple manual fixes for RXJS and elliptic
then refactor to exodus-test to avoid fighting jest and ts on path resolution

#!/bin/bash

for package in ./packages/*; do
  echo "Linting $package"
  cd "$package"
  yarn lint --fix
  git add -u .
  git commit -m "fix($package): require file extensions"
  cd ../..
done

Test Plan
check that main loads for every package:
#!/bin/bash

set -euo pipefail

PACKAGES=(
  "taquito-http-utils"
  "taquito-local-forging"
  "taquito-michel-codec"
  "taquito-michelson-encoder"
  "taquito-rpc"
  "taquito-signer"
  "taquito"
  "taquito-utils"
)

for package in "${PACKAGES[@]}"
do
  echo "checking $package"
  cd "./packages/$package"
  MAIN=$(jq -r '.main' package.json)
  if [ -z "$MAIN" ]; then
    echo "No main field in package.json"
    exit 1
  fi

  node "$MAIN"
  cd ../..
done

output should be
checking taquito-http-utils
checking taquito-local-forging
checking taquito-michel-codec
checking taquito-michelson-encoder
checking taquito-rpc
checking taquito-signer
checking taquito
checking taquito-utils

jest + ts was being stupid with paths, replaced with exodus-test

there's still one test failing in taquito-taquito, not sure what the issue is

fails cause of timeoutAfter apparently https://github.com/ExodusMovement/taquito/blob/16ef4769a85e630c3be59475f177b7eacc5b91a0/packages/taquito/src/wallet/operation-factory.ts#L47
removing that makes tests pass

@mvayngrib why isn't the timeout timer cancelled? Does the method fullfill or not?

nothing clears the setTimeout that timeoutWith schedules. Not familiar with rxjs, having a look

using fake timers also lets the test pass without any other changes, should we do that?

updated to use fake timers, all tests pass locally

bumped to node 20 and disabled testing with other versions

if the test passes though, seems like the timeout is irrelevant


Update Application / ApplicationVersion types

Use type narrowing to return better types.
@ThomasReyskens could you add your code snippet?

`  const app = await sdk.auth.applications.create({
name: "hey",
description: "hallo",
type: 'oauth1'
});
const version = await sdk.auth.applications.createVersion(app.id, {name: '1.0.0'});
app.versions.push(version);`

proposed solution:
const version = await sdk.auth.applications.createVersion(app.id, {type: 'oauth1', name: '1.0.0'});

[ ] affectedRecords return type on update
[ ] typeguards in README ( auth )
[ ] expose types

https://docs.extrahorizon.com/javascript-sdk/examples/authentication#typeguards


Browsing and advertising at the same time

Hi,
First of all thanks for this plugin. To let you know what I try to accomplish: imagine a room with 2 phones, when phone is on "scanning room" page, the phone will start advertising a custom ID (passed to deviceName) and at the same time browse for other users. During my testing, I've been able to see other phones, but not if I'm trying to browse AND advertise at the same time. Is that normal? I think yes, but to be sure I prefer to ask.
With this code I can't see any devices neither can be seen
await nearbyService.init(
      serviceType: 'mpconn',
      deviceName: devInfo,
      strategy: Strategy.P2P_CLUSTER,
      callback: (isRunning) async {
        if (isRunning) {
            await nearbyService.stopAdvertisingPeer();
            await nearbyService.stopBrowsingForPeers();
            await Future.delayed(Duration(microseconds: 200));
            await nearbyService.startAdvertisingPeer();
            await nearbyService.startBrowsingForPeers();
        }
      });

But if I'm commenting "startAdvertisingPeer()" on one device and "startBrowsingForPeer" on the other, I can see the device that is advertising perfectly with the one in "browsing mode".
Thank you

SDK scan only devices started advertisingPeer and the device scan must is BrowsingPeers

So a device can't scan (BrowsingPeers) and simultaneously be visible for others (advertisingPeer)?

Just use both startAdvertisingPeer() AND startBrowsingForPeer() without await.

Just use both startAdvertisingPeer() and startBrowsingForPeer() without await.

Thank you, that seems to do the job :)


[Espresso Android] How to find element on Flutter screen in Android Instrument Testing

I have integrated Flutter module to existing native app. Then we need to assert some element when the Flutter screen is showing on android instrument testing [espresso framework]
I already added these framework but that's not working fine

Flutter driver
Flutter espresso

I got some error when assert element --> Flutter testing APIs not registered with Dart isolate. onFlutterWidget(withValueKey("waiting_order_label")).check(matches(FlutterMatchers.withText("please wait...")))

@TBoonkwan
Can you provide flutter doctor -v and a minimal complete reproducible code sample that has the test setup ?
Does your Flutter module to existing Android native app tries to call platform channel from another isolate ? If so, then then check this open issue, https://github.com/flutter/flutter/issues/13937. which may be limiting your testing scope and cause of the error you are getting Flutter testing APIs not registered with Dart isolate.
If not, then have you looked at integration_testing plugin which is now preferred way to writing integration tests  and see if using it in your test setup helps ?

@TBoonkwan
Can you provide flutter doctor -v and a minimal complete reproducible code sample that has the test setup ?
Does your Flutter module to existing Android native app tries to call platform channel from another isolate ? If so, then then check this open issue, #13937. which may be limiting your testing scope and cause of the error you are getting Flutter testing APIs not registered with Dart isolate.
If not, then have you looked at integration_testing plugin which is now preferred way to writing integration tests and see if using it in your test setup helps ?

Thanks, I will try integration_testing to flutter module and existing android app with espresso and flutter driver

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Create github-saas.md

Add instructions for enabling SSO on GitHub Enterprise Cloud. I took Atlassian SSO as a template.
Summary
No instructions were available to enable SSO on GitHub Enterprise Cloud, so I wrote it based on Atlassian Cloud instructions.
Documentation checklist

[x] The documentation style guide has been adhered to.
[x] If a larger change - such as adding a new page- an issue has been opened in relation to any incorrect or out of date information that this PR fixes.
[ ] Files which have changed name or location have been allocated redirects.

Ticket: PCX-11901


YAML loader

A loader for YAML files maybe based on an existing library. It should convert it into a JsonDOM representation.
$fd = FluentDOM::load($source, 'text/yaml');

The loader will not be implemented into the core repository. It will depend on a 3rd party library for YAML, so it needs to be a separate package that plugs into the basic library.

Implemented in FluentDOM/YAML-Dipper and FluentDOM/YAML-Symfony.


Update nullability specifier syntax to latest.

Since we require Xcode 7 - we can use this syntax now for everything.

Now next beta they're probably going to change it again...


Support HTTP gzip compression in internal Portainer server

Is your feature request related to a problem? Please describe.
There is no way to configure HTTP gzip compression for the internal Portainer server.
Portainer currently is not using HTTP gzip compression:
$ curl -H "Accept-Encoding: gzip" -I https://my-portainer-instance:9000
HTTP/2 200
accept-ranges: bytes
cache-control: max-age=31536000
content-type: text/html; charset=utf-8
last-modified: Thu, 19 Mar 2020 22:46:17 GMT
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
content-length: 23032
date: Mon, 23 Mar 2020 15:41:09 GMT

There is no Content-Encoding: gzip header indicating that compression was active.
Describe the solution you'd like
I would like a command-line switch to enable HTTP gzip compression for the internal Portainer server,  for example --enable-compression.
Additional context
HTTP gzip compression is a standard mechanism to improve peformance by compression text-content transferred between the HTTP server and client. In other software that implements HTTP gzip compression I can easily observe faster loading times within the UI, for example Grafana or Artifactory.
It looks like the Go's http package does support compression already, so it should not be that complicated to bring to Portainer.

Gist with a potential implementation for this feature request: https://gist.github.com/CJEnright/bc2d8b8dc0c1389a9feeddb110f822d7

Sounds cool @hhromic
Keen to write a first draft of implementation that we can discuss?

Okay, I'll try to put sometihng together soon. Thanks for supporting!

Sounds great, thanks !

Hello @deviantony , @itsconquest , @ncresswell !
I started working on the HTTP gzip compression feature for Portainer (sorry for the long delay, been quite busy at work).
After researching I found a very mature (i.e. includes tests) Go library from NYtimes implementing the required functionality already: https://github.com/nytimes/gziphandler
I'm putting together a prototype for Portainer and using this library makes it very simple :)
So I'm wondering if it is okay to use third-party libraries such as this one? The license of the NYtimes library is Apache-2.0. I understand Portainer uses the zlib license but I'm not very versed on licensing so your advise is highly appreciated. Thanks!

@deviantony thoughts on this?

Sorry missed the notification !
@hhromic it is ok to use third-party libraries yes ! Just make sure that it can be added through go modules.

Created a PR implementing this functionality now. Looking forward for feedback :)


MaxFee improvement

Expected behavior and actual behavior.

By definition, the effective fee is calculated as effectiveFee=transaction::size∗block::feeMultiplier.
For that reason, we need to know the transaction's size before announcing it to the network and multiply it by an estimated maximum value to get an estimated maximum value we are willing to pay.
Although it's possible to retrieve the transaction's size, this is only possible once the fee has been defined. This leads to having to create the Transaction object twice: the first time to get the Transaction object size, and the second one to add the correspondent maxFee value.
Let's discuss in this issue how we can solve this problem. Ideally, it should be possible to define an arbitrary maxFee, but just to pass a multiplier to not to have to know the transaction' size beforehand.

Steps to reproduce the problem.

To set a reasonable maxFee, we need to define the same tx twice:
const size = SecretProofTransaction.create(
    Deadline.create(),
    HashType.Op_Sha3_256,
    secret,
    bobPrivateChainAccount.address,
    proof,
    NetworkType.MIJIN).size;

const maxFee = UInt64.fromUint(size * 2);

const transaction = const size = SecretProofTransaction.create(
    Deadline.create(),
    HashType.Op_Sha3_256,
    secret,
    bobPrivateChainAccount.address,
    proof,
    NetworkType.MIJIN,
    maxFee);

Good catch David.  In java we have the factories. We can calculate the fee
before the transaction is created and the user can update the max fee
before getting the final transaction. I'll work on examples.
On Fri, 15 Nov 2019, 22:18 David Garcia<EMAIL_ADDRESS>wrote:

Expected behavior and actual behavior.

By definition, the effective fee is calculated as
effectiveFee=transaction::size∗block::feeMultiplier.
For that reason, we need to know the transaction's size before announcing
it to the network and multiply it by an estimated maximum value to get an
estimated maximum value we are willing to pay.
Although it's possible to retrieve the transaction's size, this is only
possible once the fee has been defined. This leads to having to create the
Transaction object twice: the first time to get the Transaction object
size, and the second one to add the correspondent maxFee value.
Let's discuss in this issue how we can solve this problem. Ideally, it
should be possible to define an arbitrary maxFee, but just to pass a
multiplier to not to have to know the transaction' size beforehand.

Steps to reproduce the problem.

To set a reasonable maxFee, we need to define the same tx twice:
const size = SecretProofTransaction.create(
Deadline.create(),

HashType.Op_Sha3_256,

secret,

bobPrivateChainAccount.address,

proof,

NetworkType.MIJIN).size;

const maxFee = UInt64.fromUint(size * 2);
const transaction = const size = SecretProofTransaction.create(
Deadline.create(),

HashType.Op_Sha3_256,

secret,

bobPrivateChainAccount.address,

proof,

NetworkType.MIJIN,

maxFee);

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nemtech/nem2-sdk-typescript-javascript/issues/353?email_source=notifications&email_token=ABJEBXTE77WMQLB3AC7OIMDQT4GZZA5CNFSM4JOATLN2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HZW5OHQ,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABJEBXQQZEKTINFEMHBNDQLQT4GZZANCNFSM4JOATLNQ
.

Good catch David.  In java we have the factories. We can calculate the fee
before the transaction is created and the user can update the max fee
before getting the final transaction.
Example:
TransferTransactionFactory factory = TransferTransactionFactory.create(
       getNetworkType(),
       recipient.getAddress(),
       Collections.singletonList(NetworkCurrencyMosaic.createAbsolute(amount)),
       new PlainMessage("Some Message")
);
factory.maxFee(BigInteger.valueOf(2 * factory.getSize()));
TransferTransaction transferTransaction = factory.build();

This problem is general to any fields in transactions.
I have elevated the issue with for example addTransactions and addCosignatures in AggregateTransaction.
Talking about maxFee is the same, making it editable outside the constructor fixes the problem.
Factories seem to be good but add one more layer of classes to maintain and unsure whether there should be a factory for each type of transaction or one factory (à la CreateTransactionFromDTO monster).

Hi @dgarcia360 , should we get the maxFee multiplier (2 in your example) from rest/server? What's the best way to load it?

FeeMultiplier is currently returned in BlockInfo. So IMO Option would be

Make the maxFee mutable by removing the readonly / adding a setter etc... and feeMultiplier can be getter from BlockInfo by calling the rest endpoint.
Auto calculate maxFee when announcing (MergeMap the BlockInfo), then add the actually maxFee in the response payload to inform the announcer?

⚠ Note that there is not a single valid feeMultiplier value. The account defining the transaction could decide to pay more or fewer fees to get their transaction accepted faster.
What we are proposing here is to have an endpoint to receive a range of recommended  feeMultipliers based on the latest network behavior (last maxRollBackBlocks): https://github.com/nemtech/catapult-rest/issues/98

averageFeeMultiplier = average fee multiplier over a period of maxRollbackBlocks.
medianFeeMultiplier = median fee multiplier over a period of maxRollbackBlocks.
highestFeeMultiplier = highest fee multiplier over a period of maxRollbackBlocks.
lowestFeeMultiplier = lowest fee multiplier over a period of maxRollbackBlocks.

I believe that this issue does not have any dependency to be blocked. Without the REST endpoint, we can still define max_fee based on the transaction size:
 SecretProofTransaction.createWithFeeMultiplier(
    Deadline.create(),
    HashType.Op_Sha3_256,
    secret,
    bobPrivateChainAccount.address,
    proof,
    NetworkType.MIJIN,
    2 ) // size * 2 (multiplier)

or as @fboucquez has defined before using a factory:
TransferTransactionFactory factory = TransferTransactionFactory.create(
       getNetworkType(),
       recipient.getAddress(),
       Collections.singletonList(NetworkCurrencyMosaic.createAbsolute(amount)),
       new PlainMessage("Some Message")
);
factory.maxFee(BigInteger.valueOf(2 * factory.getSize()));
TransferTransaction transferTransaction = factory.build();

What https://github.com/nemtech/catapult-rest/issues/98 will provide is the optimal network multiplier (2 in the examples above), but to get this value we can create an issue once the endpoint is implemented.


Inject skywalking context.

https://github.com/apache/skywalking/issues/11885

Should we consider the whole trace context?

Should we consider the whole trace context?

$serviceName, $instanceName, $traceId, $traceSegmentId are injected.

Should we consider the whole trace context?

$serviceName, $instanceName, $traceId, $traceSegmentId are injected.

How about $spanId?

And please update the docs according, after you added the span ID.

How about $spanId?

$spanId should not be for the entire request, right?

How about $spanId?

$spanId should not be for the entire request, right?

It is not. It is variable according to span creation and stop status.

$spanId should not be for the entire request, right?

It is not. It is variable according to span creation and stop status.

I would like to implement $spanId in the future (if there is user demand)

$spanId should not be for the entire request, right?

It is not. It is variable according to span creation and stop status.

I would like to implement $spanId in the future (if there is user demand)

If that is the case, please remove segmentId as well, that is useless without span ID. Both IDs lock the specific span.


Fix same line let with in in next line

The full build suggests, that there is a problem, that our small test suite doesn't cover. So this code breaks many files right now :/


How can i add chrome extensions?

Hi, How can i add chrome extensions?

chromedp doesn't have anything to do with Chrome extensions. The way you would accomplish this is to use a specified user data directory, and then do a manual install using Chrome's command line flags. You would then specify using that directory using the UserDataDir flag in chromedp.

chromedp doesn't have anything to do with Chrome extensions. The way you would accomplish this is to use a specified user data directory, and then do a manual install using Chrome's command line flags. You would then specify using that directory using the UserDataDir flag in chromedp.

can you elaborate and give specifics on what exavt chromes command line flags needed to be used to add extension in Chromedp


Add an example of vue component testing via browser mode with playwright

Clear and concise description of the problem
Hi 👋🏻
I'm building Vue UI framework - Anu
I really liked browser mode and I'm eagerly waiting for the stability of this feature. I must say we can't completely test our
vue components with jsdom when we build the UI framework and use vitest for testing. Browser mode is a huge encouragement for using vitest but in the early stage I did experience the #3124 and found that adding an example of testing vue component with Playwright's chrome as a browser provider that demonstrates browser API access like window.getComputedStyle will be easy for us to adopt and use, Moreover, it will also allow vitest team to quickly identify if there's any bug.
Suggested solution
n/a
Alternative
Not writing tests at all 😓
Additional context
I'm waiting for browser mode stability to make robust tests for testing vue components. I hope using browser mode will provide the same environment as the real browsers for robustness.
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

I'm happy you find this feature useful, sure, I think an example would help! Feel free to send a PR if you want. I'm not that experienced in vue.

Hey, Thanks for the response. I'm still learning tests so I created this issue for creating example for beginners like me.

Ok then, PRs are welcome!

Not a direct solution, but I've been working on testing Vue at Cypress - we've got a Vite dev server that works great, this might an alternative (it should all just work out of the box - some other projects I work on use it pretty successfully, like Vuetify).

@lmiller1990 Why not? If it works, then it'd be good to have those examples. Anyone can send a PR if they want, so feel free to do so. Thank you so much.

@Aslemammad, I think lmiller mean we can test component with Cypress alone, not with vitest browser mode.

Yeah, I meant if you want a client side runner, Cypress might work for your use case. It runs in the browser - doing all the execution in the browser makes a lot of sense for components, everything will just work as you'd expect, no need to mess about with jsdom or a Node.js runner shuttling messages back and forth.

Meanwhile here is a not a vue but general example implementation of how Playwright and browsermode is expected to work:
https://github.com/vitest-dev/vitest/tree/main/examples/playwright

There are now examples in the documentation (https://vitest.dev/guide/browser/#examples).


orocos-kdl_python3: 1.4.1-1 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository orocos-kdl_python3 to 1.4.1-1:

upstream repository: https://github.com/jsk-ros-pkg/orocos_kinematics_dynamics_python3.git
release repository: https://github.com/tork-a/orocos-kdl_python3-release.git
distro file: melodic/distribution.yaml
bloom version: 0.11.1
previous version for package: null

same motivation as https://github.com/ros/rosdistro/pull/32505, cc: @iory

https://github.com/ros/rosdistro/pull/33330#pullrequestreview-1007968618

Continued in https://github.com/ros/rosdistro/pull/33631


rewrite wysiwyg property updating

So, at first I started making a few fixes which then turned into a full rewrite :smile:.
First, I wanted to fix problems with previous solution that discarded wysiwyg's blur event altogether. Problem with finalizing wysiwyg on explicit pointerDown on canvas is that we don't finalize when e.g. changing tools (which we should), or zooming in/out (which resulted in visual bugs) and who knows what else.
So instead I used a different workaround: when clicking inside the menu, temporarily remove the blur event, and re-enable it on pointerup (plus some logic on top to handle edge-cases).
I've also fixed a case when you click on the same property which doesn't result in update, so on previous solution the wysiwyg wasn't focused.
Another bug this PR fixes is trying to type into color inputs, which previously resulted in wysiwyg stealing focus again.
And on top, I enabled this only for desktop shape menu, because previously it resulted in some very weird stuff going on when you tried to edit wysiwyg props on mobile (there I'd argue it should blur & confirm on trying to open mobile menu).
Second, I wanted to simplify the wysiwyg updating. I realized we have a global element mutation event we can subscribe to, so I used that. For now, I'm updating the wysiwyg on every mutation update, which is a bit inefficient but it doesn't matter for now.
Both of the above changes resulted in not having to expose any wysiwyg API outside, and not needing any extra appState properties either.
This way all logic related to wysiwyg is encapsulated in the module, which I think is a good thing.
Now, I'm not sure if this is 100% working solution, so try to break it and let me know.

One thing I found is that color makes the text element to disappear like its color becomes none.

Tbh, I'm not sure how that compares to the previous approach, it seems a bit more computational heavy since it needs to iterate all elements from the scene to find which one to take styles from and also has to do all these bind/rebind/unbind.
I understand the approach of keeping the main state as the single source of truth though which can make things easier.
It would be interesting I think if we could measure these kind of things and compare with different approaches. Just an idea.
In any case, it looks good, I only played with it for a few minutes so let us give it another look tomorrow. 👍 great work! :)

It's not that heavy, each loop takes between 0.1-0.8ms and happens only once per keystroke, and twice per prop update. It can be optimized later, if need be.
The main point of this PR is to fix several bugs, some of which would be hard to fix with previous solution.
It also encapsulates all logic within the module.
As for the color picker bug.. mhm, lemme see.

Well it’s O(n) compared to the previous O(1).
One question, what do you mean the loop happen on each keystroke? Is that on every type inside the text element? Can’t we do that on every time a property changes?

Well it’s O(n) compared to the previous O(1).

Yea, but as Pete Hunt pointed out, it's negligible. E.g., we do this for every globalSceneState.getElements(), which is a lot (look it up in the codebase).
And I am looking into ways how to optimize it.

One question, what do you mean the loop happen on each keystroke? Is that on every type inside the text element? Can’t we do that on every time a property changes?

I initially wanted to do that, but that would be non-deterministic because e.g. most props changes trigger 2 updates (we care about the 2nd), but some may do even more. And we can distinguish between prop change updates we care in this wysiwyg case.

Of course I can pass appState into the wysiwyg, and use state.editingElement. I just didn't bother because it doesn't matter right now → it'd be premature optim. Wysiwyg isn't a tight loop we need to optimize.

Whatever you did, it seems to be fixing the issue when zooming in / out on mobile. I can’t repro on this branch but can super quickly on master

Ad the DOM removal. Not sure what I did, but I just pushed a safeguard on top to ensure we don't run cleanup twice.
Ready for merge.

@kbariotis @lipis https://github.com/excalidraw/excalidraw/pull/1387/commits/f112ebc72d75a80ca9a37192101ca0951c17cb0a

@dwelle No opinion here, in general I prefer CSS in JS.. :) No classes. :)

@lipis well the class was there to begin with, I just used it for the JS logic (which also has nothing to do with styling).


Does this library work for RN 0.60.3?

Hi - I copy pasted the iOS example and the result is below. Am I doing something wrong or this library is not compatible with 0.60.3 yet?

same issue ??

Seems to have broken in 0.60.x

Actually it works but there was an API change a while ago, so when updating the package you need to do this
//Before
renderItem: (item) => React.Node
//Now
renderItem: ({item, index}) => React.Node
renderItem={(item) => (
      <TouchableOpacity onPress={() => this.setState({ query: item })}>
        <Text>{item}</Text>
      </TouchableOpacity>
    )}
to:

renderItem={({ item, i }) => (
      <TouchableOpacity onPress={() => this.setState({ query: item })}>
        <Text>{item}</Text>
      </TouchableOpacity>
    )}

It's in the release notes, see here: https://github.com/mrlaessig/react-native-autocomplete-input/releases/tag/v4.0.0


Entry not found in cache by Deploy to Web App

Does this occur consistently?
Repro steps:

Action: appService.Deploy
Error type: Error
Error Message: Entry not found in cache.
Version: 0.20.0
OS: darwin
OS Release: 19.6.0
Product: Visual Studio Code
Product Version: 1.51.1
Language: en

Call Stack
s.createError extension.js:16:58035
b.<anonymous> extension.js:393:42004
extension.js:393:36599
extension.js:243:75486
extension.js:243:73467
extension.js:243:73087
i.find extension.js:243:107619
extension.js:243:53535
processTicksAndRejections task_queues.js:94:5

As a workaround you could try reloading your window or signing out and signing back in to your Azure Account using the command palette.
Unfortunately there's not much we can do in this extension, but this is being tracked upstream here: microsoft/vscode-azure-account#53


cmake: fix c++17 build requirement for msc

Thanks!

np. thanks for organizing a Qt6 migration for this project!


Injecting Context/Application in multi module app doesn't work

Describe the bug
Injecting Context/Application in single module app works but doesn't work in multi module app
To Reproduce
Steps to reproduce the behavior:

Create multi module app

app
startKoin{         androidContext(applicationContext) }

This works in app module
@Single fun prefsApp(context: Context) = Preferences(context)

feature1
This doesn't work in feature module

@Single fun prefsFeature(context: Context) = Preferences(context)
Expected behavior
prefsFeature should be able to inject context
Koin project used and used version (please complete the following information):
koin-annotations-bom version 1.3.0

why this doesn't work. Can you provide mode details?

Created a sample project with bug
https://github.com/sudansh/koinBug/
Error while building
e: [ksp] --> Missing Definition type 'android.content.Context' for 'app.sudansh.domain.PreferencesHelper'. Fix your configuration to define type 'Context'. e: Error occurred in KSP, check log for detail

I saw this issue https://github.com/InsertKoinIO/koin-annotations/issues/49 and I believe this is not possible yet now to pass context with annotations.

it's possible with androidContext(...) line in your startKoin section. But verification seems to look for it

Have already put androidContext() in startKoin but context isn't found in multi module app. It works if PreferenceHelper is in same module as startKoin

I don't see why your other module couldn't find your android Context if it's been injected since your startKoin section?! 🤔
Can you gives more details about how your are launching your other modules?

yes, definitely need to update this project with the new compiler option. Also linked to this PR: https://github.com/InsertKoinIO/koin-annotations/pull/101

same issue
when using context for create a database in the data module, context doesn't work
:(

same issue
when using context for create a database in the data module, context doesn't work
:(

is it a KMP app? are you injecting on Android part?

same issue
when using context for create a database in the data module, context doesn't work
:(

is it a KMP app? are you injecting on Android part?

Hello Arnaudgiuliani,
I have been using the Koin annotation in my Android project, but unfortunately, it doesn't work in multi-module setups. I then switched to using Koin without annotations.
I like the annotation feature, it just didn't work for me in this case (multi module). In my open-source project with a multi-module app, I have successfully used Koin (without annotations), which has worked well for me.

can you check with the latest 1.3.1? Some of you here were having config validation problem

Absolutely, I will keep you informed.


an inline-assemble problem

about the BasicOrderParameters below,I really can't understand why the offset begin from 0x24 but not 0x4,I write some program for testing and the result just as I said indicate the offset of the first item in a struct begin from 0x04
struct BasicOrderParameters {
// calldata offset
address considerationToken; // 0x24
uint256 considerationIdentifier; // 0x44
uint256 considerationAmount; // 0x64
address payable offerer; // 0x84
address zone; // 0xa4
address offerToken; // 0xc4
uint256 offerIdentifier; // 0xe4
uint256 offerAmount; // 0x104
BasicOrderType basicOrderType; // 0x124
uint256 startTime; // 0x144
uint256 endTime; // 0x164
bytes32 zoneHash; // 0x184
uint256 salt; // 0x1a4
bytes32 offererConduitKey; // 0x1c4
bytes32 fulfillerConduitKey; // 0x1e4
uint256 totalOriginalAdditionalRecipients; // 0x204
AdditionalRecipient[] additionalRecipients; // 0x224
bytes signature; // 0x244
// Total length, excluding dynamic array data: 0x264 (580)
}

answer by myself:
If there exists dynamic type such as bytes or string ,then the first slot(after the selector) must be the offset generally a value of 0x0000...02, if not then it dose not need add the extra offset slot in the beginning of the abi-encoding


[idea] pseudo inline styles

An idea for handling CSS:
var bel = require('bel')
var css = {
  position: 'absolute',
  top: 100,
  left: 200
}
var element = bel`<div style=${css}>Hello!</div>`

Which would detect the style key and use dom-css to set the .style[prop] directly on the elements (CSP safe). It will even do vendor prefixing.

@shama @yoshuawuyts could we revive that by adding really few bytes?
Very basic and almost enough support for this can be implemented in 2-4 lines
      // support style as object
      // both `fontSize` and `font-size` work that way
      if (key === 'style' && typeof p === 'object') {
        for (var k in p) {
          el.style[k] = p[k]
        }
        continue
      }

The cool thing is that DOM is smart enough, so it accepts el.style.fontSize and el.style['font-size'] by default.

var bel = require('bel')
var css = require('dom-css')
var element = bel`<div>Hello!</div>`
css(element, {
  position: 'absolute',
  top: 100,
  left: 200
})

Is pretty much the same code but then you can control which version of dom-css you use or even use an entirely different CSS library. It's not about implementation difficultly but rather keeping this library generic.

That starts to be a lot less convenient when element is a tree and you want to style its children though. You'd have to use querySelector and such. :-/

Maybe it's because I rarely use inline styles and when I do, it's almost always directly on the element. Non-inline CSS is far superior IMO so this convenience isn't useful to me.
But, if the overwhelming consensus is to add this back then we can.

Probably. But it cost nothing and DOM itself supports it. If anyone want more then he can use something like dom-css or such.

Agree with @shama. Yeah, also wouldn't use this, but not opposed tho if
people want it. It would need to be ported to yo-yoify and tested on both
projects before we could land it
On Sun, May 21, 2017, 19:20 Charlike Mike Reagent<EMAIL_ADDRESS>wrote:

Probably. But it cost nothing and DOM itself supports it. If anyone want
more then he can use something like dom-css or such.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/shama/bel/issues/3#issuecomment-302950200, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ACWlek5rUUmWhrcR4TI9RwcZzo5OYudEks5r8HJIgaJpZM4Hnzkh
.


Feature/better examples

There's a weird validation issue when reloading the page on Q2 (after making it all the way to the end and coming back to Q2)

I've updated it to use a hint (which also doesn't support html) and i've added the step links to the question pages


Changes for updated competition layout

Our competition setup was improved. In that process, we need to adjust the benchmark files.

Replaced by https://gitlab.com/sosy-lab/sv-comp/bench-defs/-/merge_requests/170


Is there a decent way to model this odd relationship?

is it possible to model this data relationship? I can't quite wrap my head around how to get this to work with objection. I have the following tables

lists (id, user_id, title, etc.)
books (id, title, etc.)
editions (id, book_id, publisher, editor, etc.)

Each book may belong to many lists, each list may have many books.
Additionally for each book in the list, there should be a relation to a subset of that book's editions.
Specifically I'm looking to be able to eager load on the list model to get back something in this shape.
{
    id,
    user_id,
    title,
    books: [{
        id,
        title,
        editions: [{
            // only editions related to the book for this specific list
            // each list has its own subset of editions for books
            id,
            publisher,
            editor
        }]
    }]
}

I'm struggling trying to figure out how to create a join table to relate editions/books/list so that the editions relation from list -> books -> editions subsets the editions properly.
Is this possible with objection?

If I understood your problem correctly, the following should work. I didn't run the code, so there may be typos etc, but you should get the gist.
The key is to add a filter for the relation and in that filter refer back to the lists from the editions query.
class Edition extends Model {
  static get tableName() {
    return 'editions'
  }

  static get relationMappings() {
    const Book = require('./book')

    return {
      book: {
        modelClass: Book,
        relation: Model.BelongsToOneRelation,
        join: {
          from: 'editions.book_id',
          to: 'books.id'
        }
      }
    }
  }
}

class Book extends Model {
  static get tableName() {
    return 'books'
  }

  static get relationMappings() {
    const List = require('./list')

    return {
      lists: {
        modelClass: List,
        relation: Model.ManyToManyRelation,
        join: {
          from: 'book.id'
          through: {
            from: 'lists_books.book_id',
            to: 'lists_books.list_id'
          }
          to: 'lists.id'
        }
      },

      editions: {
        modelClass: Edition,
        relation: Model.HasManyRelation,

        // This is the key!
        filter(query) {
          query.whereExists(
            Edition.relatedQuery('book')
              .joinRelation('lists')
              // Write the subset condition here.
              .where('lists.something', ref('editions.something_else'))
          )
        }

        join: {
          from: 'book.id',
          to: 'editions.id'
        }
      }
    }
  }
}

class List  extends Model {
  static get tableName() {
    return 'lists'
  }

  static get relationMappings() {
    return {
      books: {
        modelClass: Book,
        relation: Model.ManyToManyRelation,
        join: {
          from: 'lists.id',
          through: {
            from: 'lists_books.list_id',
            to: 'lists_books.book_id'
          },
          to: 'book.id'
        }
      }
    }
  }
}

Crap! I just realized that in my example, there's no way to refer to the specific list item in the query. Another option is to not add that filter and use joinEager. That way you can't do it on the relation level, but need to add the filters each time you write the query.
await List.query()
  .joinEager('books.editions(subset)', {
    subset(query) {
      query.where('lists.something', ref('editions.something_else'))
    }
  })

You can add that as a modifier of the Edition model
class Edition extends Model {
  static get modifiers() {
    return {
      listSubset(query) {
        query.where('lists.something', ref('editions.something_else'))
      }
    }
  }
}

and then just use that when needed
await List.query()
  .joinEager('books.editions(listSubset)')

Thanks for these responses... This gets me headed in the right direction. :smiley:


[Linux] Disable speech-dispatcher, pulseaudio and udev wrapper builds, when library is not found.

Fixes #60586

Note: pulseaudio might also have the same issue with the wrapper.

Indeed, and udev. Could you add the same fix for those?

Indeed, and udev. Could you add the same fix for those?

Done.

Thanks!

3.x now also needs this.

3.x now also needs this.

Done - #63991