Comments (6)
system.account
is the storage key, it will subscribe to all balance changes of every account. If you want a specific account would be system.account(the account)
. I'm not in the computer right now so can't write a sample for you but I can do it in a few hours.
from polkadart.
Hello, I believe you can subscribe to the storage key system.accounts
, let me know if it works out.
from polkadart.
I've tried to do it like in code below.
Should I add System and Account? Is it right launch point to subscribe?
And also I didn't get any updates and I suppose I have some mistakes with address encoding.
Future startBalanceListening(String address, Function(BalanceData) onUpdate) async {
// address for example == '5GTCTWCBQ797s8cf9KFBgAGQgpwdAHnoy37aTT1PgC37PEEN'
final account = Address.decode(address);
_subscription = await _myDot.rpc.state.subscribeStorage(
[account.pubkey], // should I add ['System', 'Account'] here and how ?
(set) async {
// do something after changing
},
);
}
from polkadart.
thanks, I'll try :)
from polkadart.
Thanks to your help, chatGpt and official Polkadot.js documentation I find out everything work correct with this code :)
final MyChainDot _myChainDot;
final Map<String, StreamSubscription<StorageChangeSet>> _addressSubscriptionMap = {};
@override
Future<void> startBalanceListening(String? address, Function(BalanceData) onUpdate) async {
if (address == null || address.isEmpty || _addressSubscriptionMap[address] != null) return;
final accountPubKey = Address.decode(address).pubkey;
final storageAccountKeyQuery = [_myChainDot.query.system.accountKey(accountPubKey)];
_addressSubscriptionMap[address] = await _myChainDot.rpc.state.subscribeStorage(
storageAccountKeyQuery,
(storageChangeSet) async {
final accountInfo = await _myChainDot.query.system.account(accountPubKey);
onUpdate.call(
BalanceData(
accountId: address,
accountNonce: accountInfo.nonce,
availableBalance: (accountInfo.data.free + accountInfo.data.reserved + accountInfo.data.frozen),
),
);
},
);
}
@override
Future<void> stopBalancesListening(String? address) async {
if (address == null || address.isEmpty || _addressSubscriptionMap[address] == null) return;
final subscription = _addressSubscriptionMap[address];
if (subscription == null) return;
_addressSubscriptionMap.remove(address);
await subscription.cancel();
}
from polkadart.
Great, glad it helped
from polkadart.
Related Issues (20)
- Build failed with an exception. HOT 3
- How to support sr25519 in addFromMnemonic()? HOT 1
- Runtime Api calls HOT 3
- type 'Id' is not a subtype of type 'MultiAddress' HOT 9
- No reconnect method in WsProvider. HOT 5
- Strongly type parameters of extrinsic api HOT 4
- Redundant `Tuple2` definition in generated types lead to conflict HOT 3
- bad signature error for signing payloads > 256 bytes
- Transaction to an address in string HOT 4
- After using the private key to sign the data, the array length in R is 32, and the first element appears 0. How should I solve this problem? HOT 10
- Project Status HOT 3
- Secure keyring storage HOT 3
- Correct way to catch tx errors
- decode Extrinsic error on Avail chain, but some logic works on polkadot,kusama,westend... HOT 12
- [question] any plan to add sr25519 support on substrate_bip39? HOT 2
- cli gen code error on manta network with 'type 'Null' is not a subtype of type 'String'' HOT 1
- How to use git url deps on yaml HOT 1
- Flutter 3.22.0 version solving failed HOT 2
- Support `CheckMetadata` signed extension HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from polkadart.