-
Notifications
You must be signed in to change notification settings - Fork 99
Expand file tree
/
Copy pathproviders.go
More file actions
63 lines (52 loc) · 2.12 KB
/
providers.go
File metadata and controls
63 lines (52 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package sdk
import (
driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
"github.com/hyperledger-labs/fabric-token-sdk/token"
"github.com/hyperledger-labs/fabric-token-sdk/token/core"
"github.com/hyperledger-labs/fabric-token-sdk/token/driver"
dbdriver "github.com/hyperledger-labs/fabric-token-sdk/token/services/storage/db/driver"
"github.com/hyperledger-labs/fabric-token-sdk/token/services/storage/db/multiplexed"
"github.com/hyperledger-labs/fabric-token-sdk/token/services/tokens"
"github.com/hyperledger-labs/fabric-token-sdk/token/services/ttx"
"github.com/hyperledger-labs/fabric-token-sdk/token/services/ttx/dep"
"go.uber.org/dig"
)
// newMultiplexedDriver creates a multiplexed database driver from registered drivers.
// It aggregates all token database drivers and provides a unified interface.
func newMultiplexedDriver(in struct {
dig.In
Drivers []dbdriver.NamedDriver `group:"token-db-drivers"`
ConfigProvider driver2.ConfigService
}) multiplexed.Driver {
return multiplexed.NewDriver(in.ConfigProvider, in.Drivers...)
}
// newTokenDriverService creates a token driver service from registered token drivers.
// It manages different token driver implementations (e.g., zkat, fabtoken).
func newTokenDriverService(in struct {
dig.In
Drivers []core.NamedFactory[driver.Driver] `group:"token-drivers"`
}) *core.TokenDriverService {
return core.NewTokenDriverService(in.Drivers)
}
type TokensServiceManager struct {
sm *tokens.ServiceManager
}
func NewTokensServiceManager(sm *tokens.ServiceManager) *TokensServiceManager {
return &TokensServiceManager{sm: sm}
}
func (t *TokensServiceManager) ServiceByTMSId(tmsid token.TMSID) (dep.TokensService, error) {
return t.sm.ServiceByTMSId(tmsid)
}
type StoreServiceManager struct {
sm ttx.StoreServiceManager
}
func NewStoreServiceManager(sm ttx.StoreServiceManager) *StoreServiceManager {
return &StoreServiceManager{sm: sm}
}
func (t *StoreServiceManager) StoreServiceByTMSId(tmsid token.TMSID) (dep.StoreService, error) {
return t.sm.StoreServiceByTMSId(tmsid)
}