@andrewkimjoseph/celina-sdk 0.15.8 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/build/abis/accounts.d.ts +18 -0
  2. package/build/abis/accounts.js +14 -0
  3. package/build/abis/accounts.js.map +1 -1
  4. package/build/abis/election.d.ts +69 -0
  5. package/build/abis/election.js +45 -0
  6. package/build/abis/election.js.map +1 -1
  7. package/build/abis/gooddollar-identity.d.ts +18 -0
  8. package/build/abis/gooddollar-identity.js +14 -0
  9. package/build/abis/gooddollar-identity.js.map +1 -1
  10. package/build/abis/governance.d.ts +31 -0
  11. package/build/abis/governance.js +27 -0
  12. package/build/abis/governance.js.map +1 -1
  13. package/build/abis/locked-gold.d.ts +162 -0
  14. package/build/abis/locked-gold.js +116 -0
  15. package/build/abis/locked-gold.js.map +1 -1
  16. package/build/analytics/mcp-tool-events.js +6 -0
  17. package/build/analytics/mcp-tool-events.js.map +1 -1
  18. package/build/analytics/wallet-extract.js +5 -0
  19. package/build/analytics/wallet-extract.js.map +1 -1
  20. package/build/index.d.ts +13 -2
  21. package/build/index.js +8 -1
  22. package/build/index.js.map +1 -1
  23. package/build/services/account.service.d.ts +17 -3
  24. package/build/services/account.service.js +62 -0
  25. package/build/services/account.service.js.map +1 -1
  26. package/build/services/gooddollar.service.d.ts +10 -0
  27. package/build/services/gooddollar.service.js +55 -0
  28. package/build/services/gooddollar.service.js.map +1 -1
  29. package/build/services/governance.service.d.ts +56 -1
  30. package/build/services/governance.service.js +253 -3
  31. package/build/services/governance.service.js.map +1 -1
  32. package/build/services/humanness.service.d.ts +30 -0
  33. package/build/services/humanness.service.js +123 -0
  34. package/build/services/humanness.service.js.map +1 -0
  35. package/build/services/staking.service.d.ts +27 -1
  36. package/build/services/staking.service.js +203 -3
  37. package/build/services/staking.service.js.map +1 -1
  38. package/build/src/abis/accounts.d.ts +18 -0
  39. package/build/src/abis/accounts.js +14 -0
  40. package/build/src/abis/accounts.js.map +1 -1
  41. package/build/src/abis/election.d.ts +69 -0
  42. package/build/src/abis/election.js +45 -0
  43. package/build/src/abis/election.js.map +1 -1
  44. package/build/src/abis/gooddollar-identity.d.ts +18 -0
  45. package/build/src/abis/gooddollar-identity.js +14 -0
  46. package/build/src/abis/gooddollar-identity.js.map +1 -1
  47. package/build/src/abis/governance.d.ts +31 -0
  48. package/build/src/abis/governance.js +27 -0
  49. package/build/src/abis/governance.js.map +1 -1
  50. package/build/src/abis/locked-gold.d.ts +162 -0
  51. package/build/src/abis/locked-gold.js +116 -0
  52. package/build/src/abis/locked-gold.js.map +1 -1
  53. package/build/src/analytics/mcp-tool-events.js +6 -0
  54. package/build/src/analytics/mcp-tool-events.js.map +1 -1
  55. package/build/src/analytics/wallet-extract.js +5 -0
  56. package/build/src/analytics/wallet-extract.js.map +1 -1
  57. package/build/src/index.d.ts +13 -2
  58. package/build/src/index.js +8 -1
  59. package/build/src/index.js.map +1 -1
  60. package/build/src/services/account.service.d.ts +17 -3
  61. package/build/src/services/account.service.js +62 -0
  62. package/build/src/services/account.service.js.map +1 -1
  63. package/build/src/services/gooddollar.service.d.ts +10 -0
  64. package/build/src/services/gooddollar.service.js +55 -0
  65. package/build/src/services/gooddollar.service.js.map +1 -1
  66. package/build/src/services/governance.service.d.ts +56 -1
  67. package/build/src/services/governance.service.js +253 -3
  68. package/build/src/services/governance.service.js.map +1 -1
  69. package/build/src/services/humanness.service.d.ts +30 -0
  70. package/build/src/services/humanness.service.js +123 -0
  71. package/build/src/services/humanness.service.js.map +1 -0
  72. package/build/src/services/staking.service.d.ts +27 -1
  73. package/build/src/services/staking.service.js +203 -3
  74. package/build/src/services/staking.service.js.map +1 -1
  75. package/build/src/tools/domains/blockchain.js +45 -1
  76. package/build/src/tools/domains/blockchain.js.map +1 -1
  77. package/build/src/tools/domains/gooddollar.js +92 -1
  78. package/build/src/tools/domains/gooddollar.js.map +1 -1
  79. package/build/src/tools/domains/governance.js +215 -1
  80. package/build/src/tools/domains/governance.js.map +1 -1
  81. package/build/src/tools/domains/humanness.d.ts +2 -0
  82. package/build/src/tools/domains/humanness.js +25 -0
  83. package/build/src/tools/domains/humanness.js.map +1 -0
  84. package/build/src/tools/domains/index.js +2 -0
  85. package/build/src/tools/domains/index.js.map +1 -1
  86. package/build/src/tools/domains/staking.js +199 -1
  87. package/build/src/tools/domains/staking.js.map +1 -1
  88. package/build/src/tools/schemas/common.d.ts +3 -0
  89. package/build/src/tools/schemas/common.js +9 -0
  90. package/build/src/tools/schemas/common.js.map +1 -1
  91. package/build/src/tools/types.d.ts +29 -0
  92. package/build/src/utils/celo-account.d.ts +3 -0
  93. package/build/src/utils/celo-account.js +22 -0
  94. package/build/src/utils/celo-account.js.map +1 -0
  95. package/build/src/utils/election-vote-neighbors.d.ts +12 -0
  96. package/build/src/utils/election-vote-neighbors.js +27 -0
  97. package/build/src/utils/election-vote-neighbors.js.map +1 -0
  98. package/build/src/utils/fixidity.d.ts +11 -0
  99. package/build/src/utils/fixidity.js +24 -0
  100. package/build/src/utils/fixidity.js.map +1 -0
  101. package/build/tests/catalog/domains/chain-ext.js +152 -0
  102. package/build/tests/catalog/domains/chain-ext.js.map +1 -1
  103. package/build/tools/domains/blockchain.js +45 -1
  104. package/build/tools/domains/blockchain.js.map +1 -1
  105. package/build/tools/domains/gooddollar.js +92 -1
  106. package/build/tools/domains/gooddollar.js.map +1 -1
  107. package/build/tools/domains/governance.js +215 -1
  108. package/build/tools/domains/governance.js.map +1 -1
  109. package/build/tools/domains/humanness.d.ts +2 -0
  110. package/build/tools/domains/humanness.js +25 -0
  111. package/build/tools/domains/humanness.js.map +1 -0
  112. package/build/tools/domains/index.js +2 -0
  113. package/build/tools/domains/index.js.map +1 -1
  114. package/build/tools/domains/staking.js +199 -1
  115. package/build/tools/domains/staking.js.map +1 -1
  116. package/build/tools/schemas/common.d.ts +3 -0
  117. package/build/tools/schemas/common.js +9 -0
  118. package/build/tools/schemas/common.js.map +1 -1
  119. package/build/tools/types.d.ts +29 -0
  120. package/build/utils/celo-account.d.ts +3 -0
  121. package/build/utils/celo-account.js +22 -0
  122. package/build/utils/celo-account.js.map +1 -0
  123. package/build/utils/election-vote-neighbors.d.ts +12 -0
  124. package/build/utils/election-vote-neighbors.js +27 -0
  125. package/build/utils/election-vote-neighbors.js.map +1 -0
  126. package/build/utils/fixidity.d.ts +11 -0
  127. package/build/utils/fixidity.js +24 -0
  128. package/build/utils/fixidity.js.map +1 -0
  129. package/package.json +4 -1
@@ -7,4 +7,166 @@ export declare const lockedGoldAbi: readonly [{
7
7
  readonly type: "uint256";
8
8
  }];
9
9
  readonly stateMutability: "view";
10
+ }, {
11
+ readonly type: "function";
12
+ readonly name: "getAccountTotalLockedGold";
13
+ readonly inputs: readonly [{
14
+ readonly name: "account";
15
+ readonly type: "address";
16
+ }];
17
+ readonly outputs: readonly [{
18
+ readonly name: "";
19
+ readonly type: "uint256";
20
+ }];
21
+ readonly stateMutability: "view";
22
+ }, {
23
+ readonly type: "function";
24
+ readonly name: "getAccountNonvotingLockedGold";
25
+ readonly inputs: readonly [{
26
+ readonly name: "account";
27
+ readonly type: "address";
28
+ }];
29
+ readonly outputs: readonly [{
30
+ readonly name: "";
31
+ readonly type: "uint256";
32
+ }];
33
+ readonly stateMutability: "view";
34
+ }, {
35
+ readonly type: "function";
36
+ readonly name: "getAccountTotalGovernanceVotingPower";
37
+ readonly inputs: readonly [{
38
+ readonly name: "account";
39
+ readonly type: "address";
40
+ }];
41
+ readonly outputs: readonly [{
42
+ readonly name: "";
43
+ readonly type: "uint256";
44
+ }];
45
+ readonly stateMutability: "view";
46
+ }, {
47
+ readonly type: "function";
48
+ readonly name: "getAccountTotalDelegatedFraction";
49
+ readonly inputs: readonly [{
50
+ readonly name: "account";
51
+ readonly type: "address";
52
+ }];
53
+ readonly outputs: readonly [{
54
+ readonly name: "";
55
+ readonly type: "uint256";
56
+ }];
57
+ readonly stateMutability: "view";
58
+ }, {
59
+ readonly type: "function";
60
+ readonly name: "getPendingWithdrawals";
61
+ readonly inputs: readonly [{
62
+ readonly name: "account";
63
+ readonly type: "address";
64
+ }];
65
+ readonly outputs: readonly [{
66
+ readonly name: "values";
67
+ readonly type: "uint256[]";
68
+ }, {
69
+ readonly name: "timestamps";
70
+ readonly type: "uint256[]";
71
+ }];
72
+ readonly stateMutability: "view";
73
+ }, {
74
+ readonly type: "function";
75
+ readonly name: "unlockingPeriod";
76
+ readonly inputs: readonly [];
77
+ readonly outputs: readonly [{
78
+ readonly name: "";
79
+ readonly type: "uint256";
80
+ }];
81
+ readonly stateMutability: "view";
82
+ }, {
83
+ readonly type: "function";
84
+ readonly name: "getDelegateesOfDelegator";
85
+ readonly inputs: readonly [{
86
+ readonly name: "delegator";
87
+ readonly type: "address";
88
+ }];
89
+ readonly outputs: readonly [{
90
+ readonly name: "";
91
+ readonly type: "address[]";
92
+ }];
93
+ readonly stateMutability: "view";
94
+ }, {
95
+ readonly type: "function";
96
+ readonly name: "getDelegatorDelegateeInfo";
97
+ readonly inputs: readonly [{
98
+ readonly name: "delegator";
99
+ readonly type: "address";
100
+ }, {
101
+ readonly name: "delegatee";
102
+ readonly type: "address";
103
+ }];
104
+ readonly outputs: readonly [{
105
+ readonly name: "fraction";
106
+ readonly type: "uint256";
107
+ }, {
108
+ readonly name: "currentAmount";
109
+ readonly type: "uint256";
110
+ }];
111
+ readonly stateMutability: "view";
112
+ }, {
113
+ readonly type: "function";
114
+ readonly name: "lock";
115
+ readonly inputs: readonly [];
116
+ readonly outputs: readonly [];
117
+ readonly stateMutability: "payable";
118
+ }, {
119
+ readonly type: "function";
120
+ readonly name: "unlock";
121
+ readonly inputs: readonly [{
122
+ readonly name: "value";
123
+ readonly type: "uint256";
124
+ }];
125
+ readonly outputs: readonly [];
126
+ readonly stateMutability: "nonpayable";
127
+ }, {
128
+ readonly type: "function";
129
+ readonly name: "relock";
130
+ readonly inputs: readonly [{
131
+ readonly name: "index";
132
+ readonly type: "uint256";
133
+ }, {
134
+ readonly name: "value";
135
+ readonly type: "uint256";
136
+ }];
137
+ readonly outputs: readonly [];
138
+ readonly stateMutability: "nonpayable";
139
+ }, {
140
+ readonly type: "function";
141
+ readonly name: "withdraw";
142
+ readonly inputs: readonly [{
143
+ readonly name: "index";
144
+ readonly type: "uint256";
145
+ }];
146
+ readonly outputs: readonly [];
147
+ readonly stateMutability: "nonpayable";
148
+ }, {
149
+ readonly type: "function";
150
+ readonly name: "delegateGovernanceVotes";
151
+ readonly inputs: readonly [{
152
+ readonly name: "delegatee";
153
+ readonly type: "address";
154
+ }, {
155
+ readonly name: "delegateFraction";
156
+ readonly type: "uint256";
157
+ }];
158
+ readonly outputs: readonly [];
159
+ readonly stateMutability: "nonpayable";
160
+ }, {
161
+ readonly type: "function";
162
+ readonly name: "revokeDelegatedGovernanceVotes";
163
+ readonly inputs: readonly [{
164
+ readonly name: "delegatee";
165
+ readonly type: "address";
166
+ }, {
167
+ readonly name: "revokeFraction";
168
+ readonly type: "uint256";
169
+ }];
170
+ readonly outputs: readonly [];
171
+ readonly stateMutability: "nonpayable";
10
172
  }];
@@ -6,5 +6,121 @@ export const lockedGoldAbi = [
6
6
  outputs: [{ name: "", type: "uint256" }],
7
7
  stateMutability: "view",
8
8
  },
9
+ {
10
+ type: "function",
11
+ name: "getAccountTotalLockedGold",
12
+ inputs: [{ name: "account", type: "address" }],
13
+ outputs: [{ name: "", type: "uint256" }],
14
+ stateMutability: "view",
15
+ },
16
+ {
17
+ type: "function",
18
+ name: "getAccountNonvotingLockedGold",
19
+ inputs: [{ name: "account", type: "address" }],
20
+ outputs: [{ name: "", type: "uint256" }],
21
+ stateMutability: "view",
22
+ },
23
+ {
24
+ type: "function",
25
+ name: "getAccountTotalGovernanceVotingPower",
26
+ inputs: [{ name: "account", type: "address" }],
27
+ outputs: [{ name: "", type: "uint256" }],
28
+ stateMutability: "view",
29
+ },
30
+ {
31
+ type: "function",
32
+ name: "getAccountTotalDelegatedFraction",
33
+ inputs: [{ name: "account", type: "address" }],
34
+ outputs: [{ name: "", type: "uint256" }],
35
+ stateMutability: "view",
36
+ },
37
+ {
38
+ type: "function",
39
+ name: "getPendingWithdrawals",
40
+ inputs: [{ name: "account", type: "address" }],
41
+ outputs: [
42
+ { name: "values", type: "uint256[]" },
43
+ { name: "timestamps", type: "uint256[]" },
44
+ ],
45
+ stateMutability: "view",
46
+ },
47
+ {
48
+ type: "function",
49
+ name: "unlockingPeriod",
50
+ inputs: [],
51
+ outputs: [{ name: "", type: "uint256" }],
52
+ stateMutability: "view",
53
+ },
54
+ {
55
+ type: "function",
56
+ name: "getDelegateesOfDelegator",
57
+ inputs: [{ name: "delegator", type: "address" }],
58
+ outputs: [{ name: "", type: "address[]" }],
59
+ stateMutability: "view",
60
+ },
61
+ {
62
+ type: "function",
63
+ name: "getDelegatorDelegateeInfo",
64
+ inputs: [
65
+ { name: "delegator", type: "address" },
66
+ { name: "delegatee", type: "address" },
67
+ ],
68
+ outputs: [
69
+ { name: "fraction", type: "uint256" },
70
+ { name: "currentAmount", type: "uint256" },
71
+ ],
72
+ stateMutability: "view",
73
+ },
74
+ {
75
+ type: "function",
76
+ name: "lock",
77
+ inputs: [],
78
+ outputs: [],
79
+ stateMutability: "payable",
80
+ },
81
+ {
82
+ type: "function",
83
+ name: "unlock",
84
+ inputs: [{ name: "value", type: "uint256" }],
85
+ outputs: [],
86
+ stateMutability: "nonpayable",
87
+ },
88
+ {
89
+ type: "function",
90
+ name: "relock",
91
+ inputs: [
92
+ { name: "index", type: "uint256" },
93
+ { name: "value", type: "uint256" },
94
+ ],
95
+ outputs: [],
96
+ stateMutability: "nonpayable",
97
+ },
98
+ {
99
+ type: "function",
100
+ name: "withdraw",
101
+ inputs: [{ name: "index", type: "uint256" }],
102
+ outputs: [],
103
+ stateMutability: "nonpayable",
104
+ },
105
+ {
106
+ type: "function",
107
+ name: "delegateGovernanceVotes",
108
+ inputs: [
109
+ { name: "delegatee", type: "address" },
110
+ { name: "delegateFraction", type: "uint256" },
111
+ ],
112
+ outputs: [],
113
+ stateMutability: "nonpayable",
114
+ },
115
+ {
116
+ type: "function",
117
+ name: "revokeDelegatedGovernanceVotes",
118
+ inputs: [
119
+ { name: "delegatee", type: "address" },
120
+ { name: "revokeFraction", type: "uint256" },
121
+ ],
122
+ outputs: [],
123
+ stateMutability: "nonpayable",
124
+ },
9
125
  ];
10
126
  //# sourceMappingURL=locked-gold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"locked-gold.js","sourceRoot":"","sources":["../../../src/abis/locked-gold.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;CACO,CAAC"}
1
+ {"version":3,"file":"locked-gold.js","sourceRoot":"","sources":["../../../src/abis/locked-gold.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  export const MCP_TOOL_EVENT_BY_SDK_METHOD = {
6
6
  "aave.getBalances": "get_aave_balances",
7
7
  "account.getAccount": "get_account",
8
+ "account.getAccountRegistration": "get_celo_account_registration",
8
9
  "account.getWalletAddress": "get_wallet_address",
9
10
  "blockchain.getBlock": "get_block",
10
11
  "blockchain.getBlockWithTransactions": "get_block",
@@ -23,7 +24,11 @@ export const MCP_TOOL_EVENT_BY_SDK_METHOD = {
23
24
  "gooddollar.getUbiClaimEligibility": "get_gooddollar_ubi_entitlement",
24
25
  "gooddollar.getWhitelistingInfo": "get_gooddollar_whitelisting_info",
25
26
  "governance.getGovernanceProposals": "get_governance_proposals",
27
+ "governance.getLockedCeloBalance": "get_locked_celo_balance",
28
+ "governance.getPendingWithdrawals": "get_pending_withdrawals",
26
29
  "governance.getProposalDetails": "get_proposal_details",
30
+ "governance.getVotableProposals": "get_votable_proposals",
31
+ "humanness.checkHumanness": "check_humanness",
27
32
  "mentoFx.estimateFx": "estimate_mento_fx",
28
33
  "mentoFx.getFxQuote": "get_mento_fx_quote",
29
34
  "nft.getNftBalance": "get_nft_balance",
@@ -36,6 +41,7 @@ export const MCP_TOOL_EVENT_BY_SDK_METHOD = {
36
41
  "self.verifySelfAgent": "verify_self_agent",
37
42
  "self.verifySelfRequest": "verify_self_request",
38
43
  "staking.getActivatableStakes": "get_activatable_stakes",
44
+ "staking.getDelegationInfo": "get_delegation_info",
39
45
  "staking.getStakingBalances": "get_staking_balances",
40
46
  "staking.getTotalStakingInfo": "get_total_staking_info",
41
47
  "staking.getValidatorGroupDetails": "get_validator_group_details",
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tool-events.js","sourceRoot":"","sources":["../../../src/analytics/mcp-tool-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAqC;IAC5E,kBAAkB,EAAE,mBAAmB;IACvC,oBAAoB,EAAE,aAAa;IACnC,0BAA0B,EAAE,oBAAoB;IAChD,qBAAqB,EAAE,WAAW;IAClC,qCAAqC,EAAE,WAAW;IAClD,4BAA4B,EAAE,mBAAmB;IACjD,6BAA6B,EAAE,oBAAoB;IACnD,2BAA2B,EAAE,iBAAiB;IAC9C,uBAAuB,EAAE,wBAAwB;IACjD,sBAAsB,EAAE,uBAAuB;IAC/C,gBAAgB,EAAE,aAAa;IAC/B,qCAAqC,EAAE,kCAAkC;IACzE,4BAA4B,EAAE,8BAA8B;IAC5D,gCAAgC,EAAE,8BAA8B;IAChE,yCAAyC,EAAE,8BAA8B;IACzE,iCAAiC,EAAE,8BAA8B;IACjE,0CAA0C,EAAE,8BAA8B;IAC1E,mCAAmC,EAAE,gCAAgC;IACrE,gCAAgC,EAAE,kCAAkC;IACpE,mCAAmC,EAAE,0BAA0B;IAC/D,+BAA+B,EAAE,sBAAsB;IACvD,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,oBAAoB;IAC1C,mBAAmB,EAAE,iBAAiB;IACtC,gBAAgB,EAAE,cAAc;IAChC,6BAA6B,EAAE,0BAA0B;IACzD,4BAA4B,EAAE,yBAAyB;IACvD,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,qBAAqB;IAC/C,8BAA8B,EAAE,wBAAwB;IACxD,4BAA4B,EAAE,sBAAsB;IACpD,6BAA6B,EAAE,wBAAwB;IACvD,kCAAkC,EAAE,6BAA6B;IACjE,4BAA4B,EAAE,sBAAsB;IACpD,mBAAmB,EAAE,mBAAmB;IACxC,6BAA6B,EAAE,yBAAyB;IACxD,uBAAuB,EAAE,mBAAmB;IAC5C,oBAAoB,EAAE,gBAAgB;IACtC,0BAA0B,EAAE,eAAe;IAC3C,iCAAiC,EAAE,sBAAsB;IACzD,2BAA2B,EAAE,kBAAkB;IAC/C,sBAAsB,EAAE,uBAAuB;IAC/C,sBAAsB,EAAE,mBAAmB;CACnC,CAAC"}
1
+ {"version":3,"file":"mcp-tool-events.js","sourceRoot":"","sources":["../../../src/analytics/mcp-tool-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAqC;IAC5E,kBAAkB,EAAE,mBAAmB;IACvC,oBAAoB,EAAE,aAAa;IACnC,gCAAgC,EAAE,+BAA+B;IACjE,0BAA0B,EAAE,oBAAoB;IAChD,qBAAqB,EAAE,WAAW;IAClC,qCAAqC,EAAE,WAAW;IAClD,4BAA4B,EAAE,mBAAmB;IACjD,6BAA6B,EAAE,oBAAoB;IACnD,2BAA2B,EAAE,iBAAiB;IAC9C,uBAAuB,EAAE,wBAAwB;IACjD,sBAAsB,EAAE,uBAAuB;IAC/C,gBAAgB,EAAE,aAAa;IAC/B,qCAAqC,EAAE,kCAAkC;IACzE,4BAA4B,EAAE,8BAA8B;IAC5D,gCAAgC,EAAE,8BAA8B;IAChE,yCAAyC,EAAE,8BAA8B;IACzE,iCAAiC,EAAE,8BAA8B;IACjE,0CAA0C,EAAE,8BAA8B;IAC1E,mCAAmC,EAAE,gCAAgC;IACrE,gCAAgC,EAAE,kCAAkC;IACpE,mCAAmC,EAAE,0BAA0B;IAC/D,iCAAiC,EAAE,yBAAyB;IAC5D,kCAAkC,EAAE,yBAAyB;IAC7D,+BAA+B,EAAE,sBAAsB;IACvD,gCAAgC,EAAE,uBAAuB;IACzD,0BAA0B,EAAE,iBAAiB;IAC7C,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,oBAAoB;IAC1C,mBAAmB,EAAE,iBAAiB;IACtC,gBAAgB,EAAE,cAAc;IAChC,6BAA6B,EAAE,0BAA0B;IACzD,4BAA4B,EAAE,yBAAyB;IACvD,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,qBAAqB;IAC/C,8BAA8B,EAAE,wBAAwB;IACxD,2BAA2B,EAAE,qBAAqB;IAClD,4BAA4B,EAAE,sBAAsB;IACpD,6BAA6B,EAAE,wBAAwB;IACvD,kCAAkC,EAAE,6BAA6B;IACjE,4BAA4B,EAAE,sBAAsB;IACpD,mBAAmB,EAAE,mBAAmB;IACxC,6BAA6B,EAAE,yBAAyB;IACxD,uBAAuB,EAAE,mBAAmB;IAC5C,oBAAoB,EAAE,gBAAgB;IACtC,0BAA0B,EAAE,eAAe;IAC3C,iCAAiC,EAAE,sBAAsB;IACzD,2BAA2B,EAAE,kBAAkB;IAC/C,sBAAsB,EAAE,uBAAuB;IAC/C,sBAAsB,EAAE,mBAAmB;CACnC,CAAC"}
@@ -1,15 +1,20 @@
1
1
  export const WALLET_EXTRACT_BY_SDK_METHOD = {
2
2
  "aave.getBalances": { positional: 0, objectKeys: ["address"] },
3
3
  "account.getAccount": { positional: 0, objectKeys: ["address"] },
4
+ "account.getAccountRegistration": { positional: 0, objectKeys: ["address"] },
4
5
  "contract.callFunction": { objectKeys: ["address"] },
5
6
  "contract.estimateGas": { objectKeys: ["address"] },
6
7
  "gooddollar.getIdentityLink": { positional: 0, objectKeys: ["address"] },
7
8
  "gooddollar.getUbiClaimEligibility": { positional: 0, objectKeys: ["address"] },
8
9
  "gooddollar.getWhitelistingInfo": { positional: 0, objectKeys: ["address"] },
10
+ "governance.getLockedCeloBalance": { positional: 0, objectKeys: ["address"] },
11
+ "governance.getPendingWithdrawals": { positional: 0, objectKeys: ["address"] },
12
+ "humanness.checkHumanness": { positional: 0, objectKeys: ["address"] },
9
13
  "nft.getNftBalance": { objectKeys: ["address"] },
10
14
  "nft.getNftInfo": { objectKeys: ["address"] },
11
15
  "self.verifySelfAgent": { objectKeys: ["address", "agent_address"] },
12
16
  "staking.getActivatableStakes": { positional: 0, objectKeys: ["address"] },
17
+ "staking.getDelegationInfo": { positional: 0, objectKeys: ["address"] },
13
18
  "staking.getStakingBalances": { positional: 0, objectKeys: ["address"] },
14
19
  "staking.getValidatorGroupDetails": { objectKeys: ["address"] },
15
20
  "token.getBalances": { objectKeys: ["address"] },
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-extract.js","sourceRoot":"","sources":["../../../src/analytics/wallet-extract.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,4BAA4B,GAErC;IACF,kBAAkB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC9D,oBAAoB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChE,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACpD,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACnD,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACxE,mCAAmC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC/E,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC5E,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChD,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC7C,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,EAAC,eAAe,CAAC,EAAE;IACnE,8BAA8B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC1E,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACxE,kCAAkC,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC/D,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChD,6BAA6B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACzE,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACnE,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;IAC7C,iCAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;CACnD,CAAC"}
1
+ {"version":3,"file":"wallet-extract.js","sourceRoot":"","sources":["../../../src/analytics/wallet-extract.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,4BAA4B,GAErC;IACF,kBAAkB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC9D,oBAAoB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChE,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC5E,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACpD,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACnD,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACxE,mCAAmC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC/E,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC5E,iCAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC7E,kCAAkC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC9E,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACtE,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChD,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC7C,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,EAAC,eAAe,CAAC,EAAE;IACnE,8BAA8B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC1E,2BAA2B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACvE,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACxE,kCAAkC,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC/D,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChD,6BAA6B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACzE,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACnE,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;IAC7C,iCAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;CACnD,CAAC"}
@@ -7,6 +7,7 @@ import { ContractService } from "./services/contract.service.js";
7
7
  import { EnsService } from "./services/ens.service.js";
8
8
  import { GoodDollarService } from "./services/gooddollar.service.js";
9
9
  import { GovernanceService } from "./services/governance.service.js";
10
+ import { HumannessService } from "./services/humanness.service.js";
10
11
  import { MentoFxService } from "./services/mento-fx.service.js";
11
12
  import { UniswapService } from "./services/uniswap.service.js";
12
13
  import { NftService } from "./services/nft.service.js";
@@ -42,10 +43,12 @@ export interface CelinaClient {
42
43
  gooddollar: GoodDollarService;
43
44
  /** Celo and Ethereum ENS resolution. */
44
45
  ens: EnsService;
45
- /** Celo governance proposals and details. */
46
+ /** Celo governance proposals, LockedGold locking, and voting. */
46
47
  governance: GovernanceService;
47
- /** Validator election staking reads. */
48
+ /** Validator election staking reads and writes. */
48
49
  staking: StakingService;
50
+ /** Dual-rail humanness verification (Self + GoodDollar). */
51
+ humanness: HumannessService;
49
52
  /** ERC-721 / ERC-1155 NFT reads. */
50
53
  nft: NftService;
51
54
  /** Generic contract reads, gas estimates, and write prepares. */
@@ -90,6 +93,14 @@ export type { MentoFxParams } from "./services/mento-fx.service.js";
90
93
  export type { UniswapSwapParams } from "./services/uniswap.service.js";
91
94
  /** Pagination and metadata options for governance proposal lists. */
92
95
  export type { GovernanceProposalsOptions } from "./services/governance.service.js";
96
+ /** On-chain VoteValue enum names for governance voting. */
97
+ export type { VoteValueName } from "./abis/governance.js";
98
+ export { VOTE_VALUES, voteValueToInt } from "./abis/governance.js";
99
+ /** Humanness check result across Self and GoodDollar rails. */
100
+ export type { HumannessCheckResult, HumannessRailResult, } from "./services/humanness.service.js";
101
+ export { assertHumanness } from "./services/humanness.service.js";
102
+ export { toFixidity, percentToFixidity, fromFixidity, FIXIDITY_ONE } from "./utils/fixidity.js";
103
+ export { findLesserAndGreaterAfterVote } from "./utils/election-vote-neighbors.js";
93
104
  /** Parameters for generic contract reads, estimates, and write prepares. */
94
105
  export type { ContractCallParams } from "./services/contract.service.js";
95
106
  /** Aave V3 Celo pool address and supported asset symbols. */
@@ -15,6 +15,7 @@ import { ContractService } from "./services/contract.service.js";
15
15
  import { EnsService } from "./services/ens.service.js";
16
16
  import { GoodDollarService } from "./services/gooddollar.service.js";
17
17
  import { GovernanceService } from "./services/governance.service.js";
18
+ import { HumannessService } from "./services/humanness.service.js";
18
19
  import { MentoFxService } from "./services/mento-fx.service.js";
19
20
  import { UniswapService } from "./services/uniswap.service.js";
20
21
  import { NftService } from "./services/nft.service.js";
@@ -39,6 +40,7 @@ export function createCelinaClient(opts) {
39
40
  const ensClientFactory = new EnsClientFactory(config);
40
41
  const tokenService = new TokenService(clientFactory);
41
42
  const wrap = (key, service) => wrapServiceForAnalytics(key, service, config);
43
+ const selfService = new SelfService(clientFactory, config);
42
44
  return {
43
45
  blockchain: wrap("blockchain", new BlockchainService(clientFactory)),
44
46
  account: wrap("account", new AccountService(clientFactory)),
@@ -51,15 +53,20 @@ export function createCelinaClient(opts) {
51
53
  ens: wrap("ens", new EnsService(ensClientFactory)),
52
54
  governance: wrap("governance", new GovernanceService(clientFactory)),
53
55
  staking: wrap("staking", new StakingService(clientFactory)),
56
+ humanness: wrap("humanness", new HumannessService(clientFactory, selfService)),
54
57
  nft: wrap("nft", new NftService(clientFactory)),
55
58
  contract: wrap("contract", new ContractService(clientFactory)),
56
- self: wrap("self", new SelfService(clientFactory, config)),
59
+ self: wrap("self", selfService),
57
60
  // Optional ecosystem adapter. Not analytics-wrapped: AgentKarma is an
58
61
  // external reputation service, not a Celo on-chain read Celina tracks.
59
62
  agentKarma: new AgentKarmaService(opts?.agentKarma),
60
63
  };
61
64
  }
62
65
  export { serializePreparedFlow } from "./types/prepared.js";
66
+ export { VOTE_VALUES, voteValueToInt } from "./abis/governance.js";
67
+ export { assertHumanness } from "./services/humanness.service.js";
68
+ export { toFixidity, percentToFixidity, fromFixidity, FIXIDITY_ONE } from "./utils/fixidity.js";
69
+ export { findLesserAndGreaterAfterVote } from "./utils/election-vote-neighbors.js";
63
70
  /** Aave V3 Celo pool address and supported asset symbols. */
64
71
  export { AAVE_POOL, AAVE_SUPPORTED_SYMBOLS, resolveAaveAsset, } from "./config/aave.js";
65
72
  export { CHAIN, DEFAULT_RPC_URL } from "./config/chains.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAkB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,iBAAiB,GAElB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAiDtE;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA0B;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,CAAmB,GAAW,EAAE,OAAU,EAAE,EAAE,CACzD,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEhD,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3D,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;QAClC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACvE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3D,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,aAAa,CAAC,CAAC;QAClD,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAClD,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3D,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;QAC/C,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC1D,sEAAsE;QACtE,uEAAuE;QACvE,UAAU,EAAE,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC;KACpD,CAAC;AACJ,CAAC;AAYD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAa5D,6DAA6D;AAC7D,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAavB,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACvB,kCAAkC,EAClC,6BAA6B,EAC7B,wBAAwB,EACxB,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,WAAW,GAIZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAE9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,wEAAwE;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- /**
2
- * Account reads: native CELO balance, transaction nonce, and contract detection.
3
- */
4
1
  import type { CeloClientFactory } from "../clients/celo-client.js";
2
+ import { type SerializedPreparedFlow } from "../types/prepared.js";
5
3
  /** CELO mainnet account snapshot for a wallet or contract address. */
6
4
  export declare class AccountService {
7
5
  private readonly clientFactory;
6
+ private readonly attributionTags?;
8
7
  constructor(clientFactory: CeloClientFactory);
9
8
  /**
10
9
  * Fetch CELO balance, nonce, and whether the address has contract bytecode.
@@ -19,4 +18,19 @@ export declare class AccountService {
19
18
  nonce: number;
20
19
  isContract: boolean;
21
20
  }>;
21
+ /**
22
+ * Whether an address is registered in the Celo Accounts contract.
23
+ * Required before LockedGold lock/unlock operations.
24
+ */
25
+ getAccountRegistration(address: `0x${string}`): Promise<{
26
+ network: "mainnet";
27
+ address: `0x${string}`;
28
+ isRegistered: boolean;
29
+ accountsContract: "0x7d21685C17607338b313a7174bAb6620baD0aaB7";
30
+ message: string;
31
+ }>;
32
+ /**
33
+ * Build unsigned Accounts.createAccount() step.
34
+ */
35
+ prepareRegisterAccount(from: `0x${string}`): Promise<SerializedPreparedFlow>;
22
36
  }
@@ -1,8 +1,20 @@
1
+ /**
2
+ * Account reads: native CELO balance, transaction nonce, contract detection,
3
+ * and Celo Accounts registry status.
4
+ */
5
+ import { encodeFunctionData } from "viem";
6
+ import { accountsAbi } from "../abis/accounts.js";
7
+ import { CELO_CORE_CONTRACTS } from "../config/celo-core-contracts.js";
8
+ import { appendCelinaCalldataTag } from "../config/celina-tag.js";
9
+ import { CHAIN } from "../config/chains.js";
10
+ import { serializePreparedFlow, } from "../types/prepared.js";
1
11
  /** CELO mainnet account snapshot for a wallet or contract address. */
2
12
  export class AccountService {
3
13
  clientFactory;
14
+ attributionTags;
4
15
  constructor(clientFactory) {
5
16
  this.clientFactory = clientFactory;
17
+ this.attributionTags = clientFactory.getConfig().attributionTags;
6
18
  }
7
19
  /**
8
20
  * Fetch CELO balance, nonce, and whether the address has contract bytecode.
@@ -25,5 +37,55 @@ export class AccountService {
25
37
  isContract: bytecode !== undefined && bytecode !== "0x",
26
38
  };
27
39
  }
40
+ /**
41
+ * Whether an address is registered in the Celo Accounts contract.
42
+ * Required before LockedGold lock/unlock operations.
43
+ */
44
+ async getAccountRegistration(address) {
45
+ const { public: client } = this.clientFactory.getClients();
46
+ const isRegistered = await client.readContract({
47
+ address: CELO_CORE_CONTRACTS.accounts,
48
+ abi: accountsAbi,
49
+ functionName: "isAccount",
50
+ args: [address],
51
+ });
52
+ return {
53
+ network: "mainnet",
54
+ address,
55
+ isRegistered,
56
+ accountsContract: CELO_CORE_CONTRACTS.accounts,
57
+ message: isRegistered
58
+ ? "Address is a registered Celo account."
59
+ : "Address is not registered. Call createAccount before locking CELO or staking.",
60
+ };
61
+ }
62
+ /**
63
+ * Build unsigned Accounts.createAccount() step.
64
+ */
65
+ async prepareRegisterAccount(from) {
66
+ const registration = await this.getAccountRegistration(from);
67
+ if (registration.isRegistered) {
68
+ throw new Error(`Address ${from} is already a registered Celo account.`);
69
+ }
70
+ const data = appendCelinaCalldataTag(encodeFunctionData({
71
+ abi: accountsAbi,
72
+ functionName: "createAccount",
73
+ }), this.attributionTags);
74
+ const steps = [
75
+ {
76
+ kind: "contract",
77
+ to: CELO_CORE_CONTRACTS.accounts,
78
+ data,
79
+ description: "Register Celo account (Accounts.createAccount)",
80
+ },
81
+ ];
82
+ const flow = {
83
+ steps,
84
+ summary: `Register ${from} as a Celo account`,
85
+ chainId: CHAIN.id,
86
+ from,
87
+ };
88
+ return serializePreparedFlow(flow);
89
+ }
28
90
  }
29
91
  //# sourceMappingURL=account.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.service.js","sourceRoot":"","sources":["../../../src/services/account.service.ts"],"names":[],"mappings":"AAKA,sEAAsE;AACtE,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,aAAgC;QAAhC,kBAAa,GAAb,aAAa,CAAmB;IAAG,CAAC;IAEjE;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO;YACP,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE;YAC9B,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI;YACnC,KAAK;YACL,UAAU,EAAE,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;SACxD,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"account.service.js","sourceRoot":"","sources":["../../../src/services/account.service.ts"],"names":[],"mappings":"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"}
@@ -181,4 +181,14 @@ export declare class GoodDollarService {
181
181
  private effectiveAuthCount;
182
182
  private fetchReverifyDaysOptions;
183
183
  private buildReverificationProgress;
184
+ /**
185
+ * Link a secondary wallet to the caller's whitelisted GoodDollar identity.
186
+ * The whitelisted root must be the signer (`from`).
187
+ */
188
+ prepareConnectIdentity(from: `0x${string}`, connectedAccount: `0x${string}`): Promise<SerializedPreparedFlow>;
189
+ /**
190
+ * Disconnect a secondary wallet from a GoodDollar identity.
191
+ * Callable by the root or the connected account.
192
+ */
193
+ prepareDisconnectIdentity(from: `0x${string}`, connectedAccount: `0x${string}`): Promise<SerializedPreparedFlow>;
184
194
  }
@@ -671,5 +671,60 @@ export class GoodDollarService {
671
671
  isReverificationOverdue,
672
672
  };
673
673
  }
674
+ /**
675
+ * Link a secondary wallet to the caller's whitelisted GoodDollar identity.
676
+ * The whitelisted root must be the signer (`from`).
677
+ */
678
+ async prepareConnectIdentity(from, connectedAccount) {
679
+ const whitelisting = await this.getWhitelistingInfo(from);
680
+ if (!whitelisting.isWhitelisted) {
681
+ throw new Error(`Signer ${from} is not a whitelisted GoodDollar identity root. ` +
682
+ "Use get_gooddollar_face_verification_link to verify first.");
683
+ }
684
+ const data = appendCelinaCalldataTag(encodeFunctionData({
685
+ abi: goodDollarIdentityAbi,
686
+ functionName: "connectAccount",
687
+ args: [connectedAccount],
688
+ }), this.attributionTags);
689
+ const flow = {
690
+ steps: [
691
+ {
692
+ kind: "contract",
693
+ to: GOODDOLLAR_IDENTITY_ADDRESS,
694
+ data,
695
+ description: `Connect ${connectedAccount} to GoodDollar identity ${from}`,
696
+ },
697
+ ],
698
+ summary: `Connect ${connectedAccount} to GoodDollar identity`,
699
+ chainId: CHAIN.id,
700
+ from,
701
+ };
702
+ return serializePreparedFlow(flow);
703
+ }
704
+ /**
705
+ * Disconnect a secondary wallet from a GoodDollar identity.
706
+ * Callable by the root or the connected account.
707
+ */
708
+ async prepareDisconnectIdentity(from, connectedAccount) {
709
+ const data = appendCelinaCalldataTag(encodeFunctionData({
710
+ abi: goodDollarIdentityAbi,
711
+ functionName: "disconnectAccount",
712
+ args: [connectedAccount],
713
+ }), this.attributionTags);
714
+ const flow = {
715
+ steps: [
716
+ {
717
+ kind: "contract",
718
+ to: GOODDOLLAR_IDENTITY_ADDRESS,
719
+ data,
720
+ description: `Disconnect ${connectedAccount} from GoodDollar identity`,
721
+ },
722
+ ],
723
+ summary: `Disconnect ${connectedAccount} from GoodDollar identity`,
724
+ chainId: CHAIN.id,
725
+ from,
726
+ };
727
+ return serializePreparedFlow(flow);
728
+ }
674
729
  }
675
730
  //# sourceMappingURL=gooddollar.service.js.map