chore(v2): P3 终审收尾——GetReserved 移 export_test / BuildRegistry 表测试 / 坏签名负路径 / 注释更正

This commit is contained in:
wangjia
2026-07-10 15:32:10 +08:00
parent c933657350
commit c4fc962db2
6 changed files with 167 additions and 13 deletions
-11
View File
@@ -99,17 +99,6 @@ func (p *Provider) apiKey(accountID string) string {
return os.Getenv("TRONGRID_API_KEY")
}
// GetReserved 仅用于测试,返回预留表副本。
func (p *Provider) GetReserved() map[string]time.Time {
p.mu.Lock()
defer p.mu.Unlock()
m := make(map[string]time.Time, len(p.reserved))
for k, v := range p.reserved {
m[k] = v
}
return m
}
// allocateAmount 移植 canonical pay/service.go:随机尾数 [1,tailMax] + 冷却预留,
// 保证同(地址,金额)在冷却窗内唯一——迟到付款绝不可能匹配到新单。64 次重试。
// 预留键基于地址(链上匹配维度),防止共享地址的不同账户产生同金额碰撞。
+19
View File
@@ -0,0 +1,19 @@
package crypto
import "time"
// GetReserved 仅用于测试,返回预留表副本。
//
// 这是标准 Go export_test.go 手法:本文件属 package crypto(内部包),
// 但文件名以 _test.go 结尾只在 `go test` 时编译,不进生产二进制/生产 API 面;
// crypto_test.go(package crypto_test,黑盒测试)通过它访问私有字段
// p.reserved,而无需在 crypto.go 上暴露一个只为测试存在的导出方法。
func (p *Provider) GetReserved() map[string]time.Time {
p.mu.Lock()
defer p.mu.Unlock()
m := make(map[string]time.Time, len(p.reserved))
for k, v := range p.reserved {
m[k] = v
}
return m
}